mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-07-27 10:31:38 +08:00
🍕 Sync 2026-03-09 23:48:08
This commit is contained in:
parent
6541db9764
commit
2ccca0e195
@ -1,4 +1,6 @@
|
||||
#
|
||||
# Copyright (C) 2015-2016 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v3.
|
||||
#
|
||||
|
||||
@ -7,14 +9,15 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_ARCH_FASTNET:=$(ARCH)
|
||||
|
||||
PKG_NAME:=fastnet
|
||||
PKG_VERSION:=0.7.5
|
||||
PKG_RELEASE:=1
|
||||
# use PKG_SOURCE_DATE instead of PKG_VERSION for compatible
|
||||
PKG_SOURCE_DATE:=0.7.2
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_SOURCE_DATE).tar.gz
|
||||
PKG_SOURCE_URL:=http://dl.istoreos.com/binary/fastnet/
|
||||
PKG_HASH:=skip
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-binary-$(PKG_VERSION)
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-binary-$(PKG_SOURCE_DATE)
|
||||
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_USE_MIPS16:=0
|
||||
@ -27,6 +30,7 @@ define Package/$(PKG_NAME)
|
||||
SUBMENU:=Web Servers/Proxies
|
||||
TITLE:=FastNet - network test Web UI
|
||||
DEPENDS:=@(arm||x86_64||aarch64)
|
||||
PKGARCH:=all
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/description
|
||||
@ -53,7 +57,7 @@ endef
|
||||
|
||||
define Package/$(PKG_NAME)/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d $(1)/etc/uci-defaults
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/fastnet.$(PKG_ARCH_FASTNET) $(1)/usr/sbin/FastNet
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/fastnet.$(PKG_ARCH_FASTNET) $(1)/usr/sbin/fastnet
|
||||
$(INSTALL_CONF) ./files/fastnet.config $(1)/etc/config/fastnet
|
||||
$(INSTALL_BIN) ./files/fastnet.init $(1)/etc/init.d/fastnet
|
||||
$(INSTALL_BIN) ./files/fastnet.uci-default $(1)/etc/uci-defaults/fastnet
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
config fastnet
|
||||
option enabled '1'
|
||||
option host '0.0.0.0'
|
||||
option port '3200'
|
||||
option token ''
|
||||
option logger '0'
|
||||
|
||||
5
fastnet/files/fastnet.init
Normal file → Executable file
5
fastnet/files/fastnet.init
Normal file → Executable file
@ -5,6 +5,7 @@ USE_PROCD=1
|
||||
|
||||
get_config() {
|
||||
config_get_bool enabled "$1" enabled 1
|
||||
config_get host "$1" host "0.0.0.0"
|
||||
config_get port "$1" port 3200
|
||||
config_get token "$1" token ""
|
||||
config_get_bool logger "$1" logger 0
|
||||
@ -15,11 +16,11 @@ start_service() {
|
||||
config_foreach get_config fastnet
|
||||
[ "$enabled" != 1 ] && return 1
|
||||
|
||||
addr="0.0.0.0:${port}"
|
||||
addr="${host}:${port}"
|
||||
|
||||
procd_open_instance
|
||||
procd_set_param limits nofile="65535 65535"
|
||||
procd_set_param command /usr/sbin/FastNet web --addr "$addr" --no-open
|
||||
procd_set_param command /usr/sbin/fastnet web --addr "$addr" --no-open
|
||||
[ -n "$token" ] && procd_append_param command --token "$token"
|
||||
[ "$logger" = 1 ] && procd_set_param stderr 1
|
||||
procd_set_param respawn
|
||||
|
||||
@ -14,6 +14,14 @@ uci -q batch <<-EOF_UCI >/dev/null
|
||||
set ucitrack.@fastnet[-1].init=fastnet
|
||||
commit ucitrack
|
||||
|
||||
delete firewall.fastnet
|
||||
set firewall.fastnet=rule
|
||||
set firewall.fastnet.name="fastnet"
|
||||
set firewall.fastnet.target="ACCEPT"
|
||||
set firewall.fastnet.src="wan"
|
||||
set firewall.fastnet.proto="tcp"
|
||||
set firewall.fastnet.dest_port="3200"
|
||||
commit firewall
|
||||
EOF_UCI
|
||||
|
||||
/etc/init.d/fastnet enable
|
||||
|
||||
@ -10,8 +10,8 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_ARCH_kai:=$(ARCH)
|
||||
|
||||
PKG_NAME:=kai
|
||||
PKG_VERSION:=0.0.3
|
||||
PKG_RELEASE:=1
|
||||
PKG_VERSION:=0.0.5
|
||||
PKG_RELEASE:=2
|
||||
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/linkease/istore-packages/releases/download/prebuilt/
|
||||
PKG_HASH:=skip
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
config kai
|
||||
option 'enabled' '0'
|
||||
option 'cwd' '/tmp/kai'
|
||||
option 'data_dir' ''
|
||||
option 'port' '8197'
|
||||
|
||||
@ -5,24 +5,95 @@ USE_PROCD=1
|
||||
|
||||
get_config() {
|
||||
config_get_bool enabled $1 enabled 1
|
||||
config_get cwd $1 cwd "/tmp/kai"
|
||||
config_get data_dir $1 data_dir ""
|
||||
config_get port $1 port "8197"
|
||||
}
|
||||
|
||||
http_get() {
|
||||
local url="$1"
|
||||
if command -v uclient-fetch >/dev/null 2>&1; then
|
||||
uclient-fetch -O /dev/stdout "$url" 2>/dev/null
|
||||
return $?
|
||||
fi
|
||||
if command -v wget >/dev/null 2>&1; then
|
||||
wget -qO- "$url" 2>/dev/null
|
||||
return $?
|
||||
fi
|
||||
if command -v curl >/dev/null 2>&1; then
|
||||
curl -fsL "$url" 2>/dev/null
|
||||
return $?
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
maybe_refresh_opencode_skills_cache() {
|
||||
[ -n "$data_dir" ] || return 0
|
||||
[ -n "$port" ] || return 0
|
||||
command -v jsonfilter >/dev/null 2>&1 || return 0
|
||||
|
||||
local cache_root="${data_dir}/cache/opencode/skills"
|
||||
local state_root="${data_dir}/state/opencode"
|
||||
local version_file="${state_root}/skills.manifest.version"
|
||||
local managed_file="${state_root}/skills.managed.list"
|
||||
local manifest_url="http://127.0.0.1:${port}/agentconf/skills/manifest.json"
|
||||
|
||||
[ -d "$cache_root" ] || mkdir -p "$cache_root"
|
||||
[ -d "$state_root" ] || mkdir -p "$state_root"
|
||||
|
||||
local manifest version prev_version skills
|
||||
manifest="$(http_get "$manifest_url")" || return 0
|
||||
version="$(printf '%s' "$manifest" | jsonfilter -e '@.version' 2>/dev/null)"
|
||||
[ -n "$version" ] || return 0
|
||||
|
||||
prev_version=""
|
||||
[ -f "$version_file" ] && prev_version="$(cat "$version_file" 2>/dev/null)"
|
||||
[ "$version" = "$prev_version" ] && return 0
|
||||
|
||||
logger -t kai "opencode skills manifest changed; refreshing managed skill cache"
|
||||
|
||||
if [ -f "$managed_file" ]; then
|
||||
while IFS= read -r s; do
|
||||
[ -n "$s" ] || continue
|
||||
rm -rf "${cache_root}/${s}"
|
||||
done <"$managed_file"
|
||||
fi
|
||||
|
||||
skills="$(printf '%s' "$manifest" | jsonfilter -e '@.skills[*]' 2>/dev/null)"
|
||||
if [ -n "$skills" ]; then
|
||||
printf '%s\n' "$skills" >"$managed_file"
|
||||
printf '%s\n' "$skills" | while IFS= read -r s; do
|
||||
[ -n "$s" ] || continue
|
||||
rm -rf "${cache_root}/${s}"
|
||||
done
|
||||
else
|
||||
: >"$managed_file"
|
||||
fi
|
||||
|
||||
printf '%s\n' "$version" >"$version_file"
|
||||
return 0
|
||||
}
|
||||
|
||||
start_kai_bin(){
|
||||
procd_open_instance kai_bin
|
||||
procd_set_param command /usr/sbin/kai_bin
|
||||
procd_set_param command /usr/sbin/kai_bin -a 0.0.0.0 -p "$port"
|
||||
procd_set_param stderr 1
|
||||
procd_set_param respawn
|
||||
procd_close_instance
|
||||
}
|
||||
mkdir_cwd(){
|
||||
if [ ! -d $1 ]; then
|
||||
mkdir -p $1
|
||||
fi
|
||||
[ -d "$1" ] || mkdir -p "$1"
|
||||
}
|
||||
start_kai_session(){
|
||||
procd_open_instance kai_session
|
||||
procd_set_param env OPENCODE_CWD=$1 OPENCODE_CONFIG=http://127.0.0.1:8197/config/opencode/opencode.json
|
||||
local root="${data_dir}"
|
||||
local cwd="${data_dir}/cwd"
|
||||
procd_set_param env \
|
||||
OPENCODE_CWD="${cwd}" \
|
||||
OPENCODE_CONFIG="http://127.0.0.1:${port}/agentconf/opencode.json" \
|
||||
XDG_CACHE_HOME="${root}/cache" \
|
||||
XDG_DATA_HOME="${root}/data" \
|
||||
XDG_CONFIG_HOME="${root}/config" \
|
||||
XDG_STATE_HOME="${root}/state"
|
||||
procd_set_param command /usr/sbin/kai_session
|
||||
procd_append_param command serve --port "8196" --hostname "127.0.0.1"
|
||||
procd_set_param stderr 1
|
||||
@ -35,14 +106,24 @@ start_service() {
|
||||
if [ $enabled != 1 ]; then
|
||||
return 1
|
||||
fi
|
||||
if [ -z "${data_dir}" ]; then
|
||||
logger -t kai "data_dir is empty; please set option data_dir in /etc/config/kai"
|
||||
return 1
|
||||
fi
|
||||
logger -t kai "Starting KAI Service"
|
||||
start_kai_bin
|
||||
sleep 1
|
||||
mkdir_cwd $cwd
|
||||
start_kai_session $cwd
|
||||
mkdir_cwd "${data_dir}"
|
||||
mkdir_cwd "${data_dir}/cwd"
|
||||
mkdir_cwd "${data_dir}/cache"
|
||||
mkdir_cwd "${data_dir}/data"
|
||||
mkdir_cwd "${data_dir}/config"
|
||||
mkdir_cwd "${data_dir}/state"
|
||||
maybe_refresh_opencode_skills_cache
|
||||
start_kai_session
|
||||
logger -t kai "Starting KAI Service Completed"
|
||||
}
|
||||
|
||||
service_triggers() {
|
||||
procd_add_reload_trigger "kai"
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,8 +10,8 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_ARCH_kai_session:=$(ARCH)
|
||||
|
||||
PKG_NAME:=kai_session
|
||||
PKG_VERSION:=0.0.3
|
||||
PKG_RELEASE:=1
|
||||
PKG_VERSION:=0.0.5
|
||||
PKG_RELEASE:=2
|
||||
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/linkease/istore-packages/releases/download/prebuilt/
|
||||
PKG_HASH:=skip
|
||||
|
||||
@ -11,7 +11,7 @@ LUCI_DEPENDS:=+luci-base +luci-lib-jsonc +curl +bandix
|
||||
PKG_MAINTAINER:=timsaya
|
||||
|
||||
PKG_VERSION:=0.12.6
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
|
||||
@ -1059,8 +1059,14 @@ return view.extend({
|
||||
var stateSelect = E('select', { 'class': 'cbi-input-select', 'id': 'flows-state' }, [
|
||||
E('option', { 'value': '' }, _('All')),
|
||||
E('option', { 'value': 'ESTABLISHED' }, 'ESTABLISHED'),
|
||||
E('option', { 'value': 'SYN_SENT' }, 'SYN_SENT'),
|
||||
E('option', { 'value': 'SYN_RECV' }, 'SYN_RECV'),
|
||||
E('option', { 'value': 'FIN_WAIT' }, 'FIN_WAIT'),
|
||||
E('option', { 'value': 'FIN_WAIT2' }, 'FIN_WAIT2'),
|
||||
E('option', { 'value': 'TIME_WAIT' }, 'TIME_WAIT'),
|
||||
E('option', { 'value': 'CLOSE_WAIT' }, 'CLOSE_WAIT')
|
||||
E('option', { 'value': 'CLOSE_WAIT' }, 'CLOSE_WAIT'),
|
||||
E('option', { 'value': 'LAST_ACK' }, 'LAST_ACK'),
|
||||
E('option', { 'value': 'CLOSE' }, 'CLOSE')
|
||||
]);
|
||||
var tableBody = E('tbody', { 'class': 'flows-table-body' });
|
||||
var tableWrap = E('div', { 'class': 'flows-table-wrap' }, [
|
||||
|
||||
@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
LUCI_TITLE:=kai
|
||||
PKG_VERSION:=1.0.0
|
||||
PKG_RELEASE:=1
|
||||
LUCI_DEPENDS:=+kai +kai_session
|
||||
PKG_RELEASE:=2
|
||||
LUCI_DEPENDS:=+kai +kai_session +luci-compat
|
||||
LUCI_MINIFY_CSS:=0
|
||||
LUCI_MINIFY_JS:=0
|
||||
|
||||
@ -25,4 +25,4 @@ endef
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
|
||||
@ -8,6 +8,16 @@ s.addremove=false
|
||||
s.anonymous=true
|
||||
|
||||
s:option(Flag, "enabled", translate("Enable")).rmempty=false
|
||||
|
||||
local data_dir = s:option(Value, "data_dir", translate("Data directory"))
|
||||
data_dir.placeholder = ""
|
||||
data_dir.rmempty = false
|
||||
data_dir.description = translate("Required. KAI session will store cwd/cache/data/config/state under this directory (subfolders: cwd, cache, data, config, state).")
|
||||
|
||||
local port = s:option(Value, "port", translate("API port"))
|
||||
port.default = "8197"
|
||||
port.rmempty = false
|
||||
port.datatype = "port"
|
||||
port.description = translate("Port for KAI HTTP server (kai_bin). kai_session will read OPENCODE_CONFIG via 127.0.0.1:<port>.")
|
||||
|
||||
return m
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user