nexus-agentd 0.2.5 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +359 -250
- package/dist/a2a/runtime.d.ts +7 -1
- package/dist/a2a/runtime.js +290 -17
- package/dist/acp/runtime.d.ts +5 -1
- package/dist/acp/runtime.js +88 -39
- package/dist/artifact-store.d.ts +162 -0
- package/dist/artifact-store.js +1081 -0
- package/dist/cli.js +13 -14
- package/dist/completion-contract.js +1 -1
- package/dist/config.js +45 -5
- package/dist/control-plane-validation.d.ts +54 -0
- package/dist/control-plane-validation.js +152 -0
- package/dist/control-plane.d.ts +9 -32
- package/dist/control-plane.js +52 -158
- package/dist/drivers/index.js +12 -0
- package/dist/drivers/pi.js +1 -1
- package/dist/drivers/stdio.d.ts +4 -1
- package/dist/drivers/stdio.js +135 -19
- package/dist/events.d.ts +9 -0
- package/dist/events.js +17 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.js +33 -6
- package/dist/process-tree.js +15 -6
- package/dist/run-store.d.ts +57 -7
- package/dist/run-store.js +188 -23
- package/dist/server/auth-policy.d.ts +27 -0
- package/dist/server/auth-policy.js +143 -0
- package/dist/server/connection.d.ts +8 -0
- package/dist/server/connection.js +67 -0
- package/dist/server/diagnostics.d.ts +40 -0
- package/dist/server/diagnostics.js +130 -0
- package/dist/server/metrics.d.ts +51 -0
- package/dist/server/metrics.js +56 -0
- package/dist/server/quota.d.ts +59 -0
- package/dist/server/quota.js +176 -0
- package/dist/server/validation.d.ts +29 -0
- package/dist/server/validation.js +221 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.js +682 -418
- package/dist/session/admin-runs.d.ts +73 -0
- package/dist/session/admin-runs.js +297 -0
- package/dist/session/admission.d.ts +32 -0
- package/dist/session/admission.js +62 -0
- package/dist/session/readiness.d.ts +33 -0
- package/dist/session/readiness.js +174 -0
- package/dist/session-contract.d.ts +1 -0
- package/dist/session.d.ts +64 -7
- package/dist/session.js +321 -159
- package/dist/sse-writer.d.ts +7 -0
- package/dist/sse-writer.js +60 -0
- package/dist/types.d.ts +44 -2
- package/dist/types.js +1 -0
- package/dist/webui/app/sources.js +18 -10
- package/dist/webui/index.js +11 -11
- package/dist/webui/markup.js +69 -66
- package/dist/webui/styles.js +791 -616
- package/dist/workspace.d.ts +30 -0
- package/dist/workspace.js +67 -2
- package/examples/client.mjs +102 -0
- package/nexus-agentd.example.json +21 -2
- package/package.json +6 -3
package/dist/webui/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { markup } from './markup.js';
|
|
2
2
|
import { styles } from './styles.js';
|
|
3
3
|
import { sources } from './app/sources.js';
|
|
4
|
-
const page = `<!doctype html>
|
|
5
|
-
<html lang="zh-CN">
|
|
6
|
-
<head>
|
|
7
|
-
<meta charset="utf-8">
|
|
8
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
9
|
-
<meta name="color-scheme" content="light dark">
|
|
10
|
-
<title>Agent Nexus</title>
|
|
11
|
-
<style>${styles}</style>
|
|
12
|
-
<script type="module" defer src="/ui/app.js"></script>
|
|
13
|
-
</head>
|
|
14
|
-
<body>${markup}</body>
|
|
4
|
+
const page = `<!doctype html>
|
|
5
|
+
<html lang="zh-CN">
|
|
6
|
+
<head>
|
|
7
|
+
<meta charset="utf-8">
|
|
8
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
9
|
+
<meta name="color-scheme" content="light dark">
|
|
10
|
+
<title>Agent Nexus</title>
|
|
11
|
+
<style>${styles}</style>
|
|
12
|
+
<script type="module" defer src="/ui/app.js"></script>
|
|
13
|
+
</head>
|
|
14
|
+
<body>${markup}</body>
|
|
15
15
|
</html>`;
|
|
16
16
|
const entryModule = `import './app/main.js'\n`;
|
|
17
17
|
const modules = { '/ui/app.js': entryModule };
|
package/dist/webui/markup.js
CHANGED
|
@@ -1,68 +1,71 @@
|
|
|
1
1
|
import { icons } from './icons.js';
|
|
2
|
-
export const markup = String.raw `
|
|
3
|
-
<div id="
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
<
|
|
7
|
-
<
|
|
8
|
-
<div class="field"><label for="setup-
|
|
9
|
-
<
|
|
10
|
-
<
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
<
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
<
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
</
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
<
|
|
55
|
-
<div id="page-
|
|
56
|
-
</
|
|
57
|
-
<
|
|
58
|
-
</main>
|
|
59
|
-
</div>
|
|
60
|
-
|
|
61
|
-
<div id="drawer-backdrop" class="drawer-backdrop hidden"></div>
|
|
62
|
-
<aside id="drawer" class="drawer hidden" aria-modal="true" role="dialog">
|
|
63
|
-
<div class="drawer-header"><h2 id="drawer-title"></h2><button id="drawer-close" class="icon-button" aria-label="关闭">${icons.close}</button></div>
|
|
64
|
-
<form id="drawer-form" class="drawer-body"></form>
|
|
65
|
-
<div id="drawer-footer" class="drawer-footer"></div>
|
|
66
|
-
</aside>
|
|
67
|
-
<div id="
|
|
2
|
+
export const markup = String.raw `
|
|
3
|
+
<div id="boot-screen" class="auth-screen"><p role="status">正在加载控制台…</p></div>
|
|
4
|
+
<div id="setup-screen" class="auth-screen hidden">
|
|
5
|
+
<form id="setup-form" class="auth-card">
|
|
6
|
+
<header><span class="brand-mark">N</span><h1>初始化 Agent Nexus</h1></header>
|
|
7
|
+
<p>此密码仅用于登录控制台;客户端 API 密钥在登录后单独创建。</p>
|
|
8
|
+
<div class="field"><label for="setup-token">初始化令牌</label><input id="setup-token" name="setupToken" type="password" autocomplete="off" required><small class="field-help">从网关启动终端复制 Setup token。重启后令牌会更新;远程初始化请使用可信网络或 HTTPS。</small></div>
|
|
9
|
+
<div class="field"><label for="setup-password">控制台密码</label><input id="setup-password" name="password" type="password" minlength="12" autocomplete="new-password" required></div>
|
|
10
|
+
<div class="field"><label for="setup-confirm">确认密码</label><input id="setup-confirm" name="confirmPassword" type="password" minlength="12" autocomplete="new-password" required></div>
|
|
11
|
+
<button class="button primary auth-submit" type="submit">完成初始化</button>
|
|
12
|
+
<p class="form-error" data-form-error></p>
|
|
13
|
+
</form>
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
<div id="login-screen" class="auth-screen hidden">
|
|
17
|
+
<form id="login-form" class="auth-card">
|
|
18
|
+
<header><span class="brand-mark">N</span><h1>Agent Nexus</h1></header>
|
|
19
|
+
<div class="field"><label for="login-password">控制台密码</label><input id="login-password" name="password" type="password" autocomplete="current-password" required autofocus></div>
|
|
20
|
+
<button class="button primary auth-submit" type="submit">登录</button>
|
|
21
|
+
<p class="form-error" data-form-error></p>
|
|
22
|
+
</form>
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<div id="app" class="app-shell hidden">
|
|
26
|
+
<aside class="sidebar">
|
|
27
|
+
<div class="brand"><span class="brand-mark">N</span><span>Agent Nexus</span></div>
|
|
28
|
+
<nav aria-label="主导航">
|
|
29
|
+
<div class="nav-group" role="group" aria-labelledby="nav-group-run">
|
|
30
|
+
<p class="nav-group-label" id="nav-group-run">运行</p>
|
|
31
|
+
<button class="nav-item active" data-page="overview">${icons.overview}<span>总览</span></button>
|
|
32
|
+
<button class="nav-item" data-page="runs">${icons.runs}<span>运行记录</span></button>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="nav-group" role="group" aria-labelledby="nav-group-config">
|
|
35
|
+
<p class="nav-group-label" id="nav-group-config">网关配置</p>
|
|
36
|
+
<button class="nav-item" data-page="agents">${icons.agents}<span>智能体</span></button>
|
|
37
|
+
<button class="nav-item" data-page="workspaces">${icons.workspaces}<span>工作区</span></button>
|
|
38
|
+
<button class="nav-item" data-page="keys">${icons.keys}<span>API 密钥</span></button>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="nav-group nav-group-footer">
|
|
41
|
+
<button class="nav-item" data-page="settings">${icons.settings}<span>设置</span></button>
|
|
42
|
+
<button class="nav-item nav-item-danger" data-action="logout">${icons.logout}<span>退出登录</span></button>
|
|
43
|
+
</div>
|
|
44
|
+
</nav>
|
|
45
|
+
</aside>
|
|
46
|
+
<main class="main">
|
|
47
|
+
<header class="topbar">
|
|
48
|
+
<h1 id="page-title"></h1>
|
|
49
|
+
<div id="page-actions" class="page-actions"></div>
|
|
50
|
+
</header>
|
|
51
|
+
<section id="page-content" class="page-content">
|
|
52
|
+
<p id="connection-status" class="connection-status hidden" role="status"></p>
|
|
53
|
+
<div id="page-stats"></div>
|
|
54
|
+
<div id="page-toolbar"></div>
|
|
55
|
+
<div id="page-results"></div>
|
|
56
|
+
</section>
|
|
57
|
+
<p id="page-status" class="visually-hidden" role="status" aria-atomic="true"></p>
|
|
58
|
+
</main>
|
|
59
|
+
</div>
|
|
60
|
+
|
|
61
|
+
<div id="drawer-backdrop" class="drawer-backdrop hidden"></div>
|
|
62
|
+
<aside id="drawer" class="drawer hidden" aria-modal="true" role="dialog" aria-labelledby="drawer-title" tabindex="-1">
|
|
63
|
+
<div class="drawer-header"><h2 id="drawer-title"></h2><button id="drawer-close" class="icon-button" aria-label="关闭">${icons.close}</button></div>
|
|
64
|
+
<form id="drawer-form" class="drawer-body"></form>
|
|
65
|
+
<div id="drawer-footer" class="drawer-footer"></div>
|
|
66
|
+
</aside>
|
|
67
|
+
<div id="notifications" class="toast-region">
|
|
68
|
+
<div id="toast-status" role="status" aria-live="polite" aria-relevant="additions"></div>
|
|
69
|
+
<div id="toast-alert" role="alert" aria-live="assertive" aria-relevant="additions"></div>
|
|
70
|
+
</div>
|
|
68
71
|
`;
|