agim-cli 1.1.9 → 1.1.11
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/CHANGELOG.md +100 -0
- package/dist/cli-ui/entry-menu.d.ts +2 -0
- package/dist/cli-ui/entry-menu.d.ts.map +1 -1
- package/dist/cli-ui/entry-menu.js +2 -1
- package/dist/cli-ui/entry-menu.js.map +1 -1
- package/dist/cli-ui/i18n.d.ts +14 -0
- package/dist/cli-ui/i18n.d.ts.map +1 -1
- package/dist/cli-ui/i18n.js +30 -0
- package/dist/cli-ui/i18n.js.map +1 -1
- package/dist/cli-ui/token-menu.d.ts +3 -0
- package/dist/cli-ui/token-menu.d.ts.map +1 -0
- package/dist/cli-ui/token-menu.js +127 -0
- package/dist/cli-ui/token-menu.js.map +1 -0
- package/dist/cli.js +89 -12
- package/dist/cli.js.map +1 -1
- package/dist/core/a2a-notify.d.ts +35 -0
- package/dist/core/a2a-notify.d.ts.map +1 -0
- package/dist/core/a2a-notify.js +265 -0
- package/dist/core/a2a-notify.js.map +1 -0
- package/dist/core/a2a.d.ts +5 -0
- package/dist/core/a2a.d.ts.map +1 -1
- package/dist/core/a2a.js +59 -3
- package/dist/core/a2a.js.map +1 -1
- package/dist/core/access-token.d.ts +41 -0
- package/dist/core/access-token.d.ts.map +1 -0
- package/dist/core/access-token.js +179 -0
- package/dist/core/access-token.js.map +1 -0
- package/dist/core/agent-base.d.ts.map +1 -1
- package/dist/core/agent-base.js +4 -1
- package/dist/core/agent-base.js.map +1 -1
- package/dist/core/restart-flow.d.ts.map +1 -1
- package/dist/core/restart-flow.js +50 -12
- package/dist/core/restart-flow.js.map +1 -1
- package/dist/core/types.d.ts +6 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/web/public/_app.js +59 -0
- package/dist/web/public/login.html +196 -0
- package/dist/web/public/settings.html +140 -1
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +190 -8
- package/dist/web/server.js.map +1 -1
- package/dist/web/viewer-render.d.ts.map +1 -1
- package/dist/web/viewer-render.js +7 -4
- package/dist/web/viewer-render.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,106 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [1.1.11] - 2026-05-17
|
|
8
|
+
|
|
9
|
+
### Fixed — Viewer page unreadable in OS dark mode
|
|
10
|
+
|
|
11
|
+
`/v/:id` loaded `github-markdown-light.min.css` + `highlight.js github.min.css`
|
|
12
|
+
— both light-mode-only stylesheets. When the user's OS / browser was in
|
|
13
|
+
dark mode, the page background flipped (via our custom dark-mode CSS) but
|
|
14
|
+
the markdown body kept its hard-coded dark text on the new dark background,
|
|
15
|
+
rendering as low-contrast grey-on-black.
|
|
16
|
+
|
|
17
|
+
Fix: switch to `github-markdown-css`'s auto-mode bundle (`github-markdown.min.css`,
|
|
18
|
+
respects `prefers-color-scheme`) and load both highlight.js light + dark
|
|
19
|
+
themes gated by `media="(prefers-color-scheme: …)"` so the right code-block
|
|
20
|
+
palette loads per OS preference.
|
|
21
|
+
|
|
22
|
+
## [1.1.10] - 2026-05-16
|
|
23
|
+
|
|
24
|
+
### Added — Web console token authentication
|
|
25
|
+
|
|
26
|
+
Web console used to ship with **no built-in auth**: anyone who could reach
|
|
27
|
+
the port (after a reverse-proxy / tunnel) had full dashboard access. v1.1.10
|
|
28
|
+
adds token-gated login.
|
|
29
|
+
|
|
30
|
+
- **`agim token` CLI**: `create [label]` / `list` / `revoke <id>`.
|
|
31
|
+
Bootstrap token auto-generated at first start and printed to stdout +
|
|
32
|
+
`journalctl -u agim` so the operator can copy it from logs.
|
|
33
|
+
- **Interactive menu**: bare `agim` → "Manage web access tokens" submenu
|
|
34
|
+
(create / list / revoke). Mirrors the CLI flow for non-power-users.
|
|
35
|
+
- **`/login` page** (bilingual EN/中文) with step-by-step instructions
|
|
36
|
+
for getting a token from the terminal.
|
|
37
|
+
- **Auth gate** in `web/server.ts`:
|
|
38
|
+
- Loopback peers (127.0.0.1 / ::1) bypass (local dev unaffected).
|
|
39
|
+
- Public paths bypass: `/v/:id` viewer pages, `/loc` location capture,
|
|
40
|
+
`/l/<token>` short links, `/api/health`, `/api/loc{,/*}` (single-use
|
|
41
|
+
location token still required by the loc layer itself).
|
|
42
|
+
- All other paths require an `Authorization: Bearer <token>`, an
|
|
43
|
+
`agim_token` cookie, or `?token=` query (for WS upgrade).
|
|
44
|
+
- 401 for `/api/*`; 302 → `/login?next=…` for HTML routes.
|
|
45
|
+
- **Storage**: `~/.agim/tokens.json` (chmod 600). Server only stores
|
|
46
|
+
SHA-256; raw token is shown once at create time.
|
|
47
|
+
- **Cookie**: 30-day `agim_token` cookie set on successful login;
|
|
48
|
+
`SameSite=Strict`, `Path=/`. Logout via `POST /api/auth/logout`.
|
|
49
|
+
- **Disable**: `IMHUB_WEB_AUTH=off` reverts to pre-1.1.10 open access
|
|
50
|
+
(for ops who do auth at the reverse proxy layer).
|
|
51
|
+
- **Global fetch interceptor** in `_app.js` auto-attaches `Authorization`
|
|
52
|
+
+ redirects to `/login` on 401. Existing pages keep working without
|
|
53
|
+
changes; new tabs get auth transparently.
|
|
54
|
+
|
|
55
|
+
### Changed — A2A robustness
|
|
56
|
+
|
|
57
|
+
The HSTECH / Lens debate sessions surfaced two pain points:
|
|
58
|
+
|
|
59
|
+
- **Default timeout raised from 10 min → 30 min** (`IMHUB_A2A_TIMEOUT_DEFAULT_MS`).
|
|
60
|
+
Codex routinely takes 15-25 min for a 4-API-pull + writing-a-report job;
|
|
61
|
+
the old 10 min cutoff killed it mid-flight and left orphan files in
|
|
62
|
+
`_agim-output/`. New `IMHUB_A2A_MAX_TIMEOUT_MS` (default 1h) caps the
|
|
63
|
+
ceiling so an agent can't accidentally write `timeoutMs: 86400000`.
|
|
64
|
+
- **Abort on timeout** — `AgentSendOpts.signal` plumbed through `sendPrompt`
|
|
65
|
+
→ `spawnStream` so callees actually get SIGTERM'd when A2A gives up.
|
|
66
|
+
No more orphan child processes writing into shared output dirs.
|
|
67
|
+
- **New `src/core/a2a-notify.ts`** pushes 4 lifecycle events to the
|
|
68
|
+
caller's IM thread so users see what's happening downstream:
|
|
69
|
+
- `🔀 转给 codex (#jobId · depth N)` — start
|
|
70
|
+
- `✓ codex 完成 (耗时 5m20s) 📎 file.md 🔗 viewer-link` — complete
|
|
71
|
+
with auto-snapshot of the first `.md` output as a viewer paste
|
|
72
|
+
- `⌛ codex 超时 (10m 未返回) — 子进程已停` — timeout
|
|
73
|
+
- `❌ codex 失败 ... <err>` — failure
|
|
74
|
+
- **Verbose heartbeat mode** detects file changes in `_agim-output/`
|
|
75
|
+
every `IMHUB_A2A_HEARTBEAT_MIN` minutes (default 5):
|
|
76
|
+
- With change: lists new files + links the first new `.md` once.
|
|
77
|
+
- Without change: "still thinking" note.
|
|
78
|
+
- **Notify scope**: source='system' (never routes through viewer);
|
|
79
|
+
default mode 'essential' (start + terminal events only); depth ≤1
|
|
80
|
+
by default (no spam on deep call chains).
|
|
81
|
+
- **Settings UI** has a new 🔀 A2A Notifications card (timeouts in
|
|
82
|
+
minutes, mode dropdown, depth, heartbeat interval — bilingual).
|
|
83
|
+
|
|
84
|
+
### Fixed
|
|
85
|
+
|
|
86
|
+
- **Restart message order**: `/restart` used to send "🔄 重启中…" via the
|
|
87
|
+
outbox queue, which the dying process never drained — the new process's
|
|
88
|
+
high-priority "✅ 已重启完成…" then arrived first. Now `initiateRestart()`
|
|
89
|
+
delivers the in-flight ack synchronously (`priority: 'high'`) before
|
|
90
|
+
spawning `systemctl restart`. Command return becomes `''` so the
|
|
91
|
+
pipeline doesn't double-deliver.
|
|
92
|
+
- **Slash command outputs no longer route through viewer**: `cli.ts`
|
|
93
|
+
string-branch was incorrectly tagged `source: 'agent'` in 1.1.9.
|
|
94
|
+
Corrected to `source: 'system'` so `/job list`, `/a2a tree`, `/outbox`,
|
|
95
|
+
`/audit` etc always render inline regardless of length.
|
|
96
|
+
|
|
97
|
+
### Migration
|
|
98
|
+
|
|
99
|
+
- After upgrade, **set up at least one access token** before exposing the
|
|
100
|
+
web port publicly. First start auto-creates a bootstrap token — copy
|
|
101
|
+
the value from `journalctl -u agim` or `agim status` output.
|
|
102
|
+
- Existing users on a reverse proxy with their own auth: set
|
|
103
|
+
`IMHUB_WEB_AUTH=off` if you don't want a second factor.
|
|
104
|
+
- Local-only / loopback users: nothing changes (auth bypassed on
|
|
105
|
+
127.0.0.1).
|
|
106
|
+
|
|
7
107
|
## [1.1.9] - 2026-05-16
|
|
8
108
|
|
|
9
109
|
### Fixed — Viewer no longer steals operational/system replies
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-menu.d.ts","sourceRoot":"","sources":["../../src/cli-ui/entry-menu.ts"],"names":[],"mappings":"AAWA,OAAO,EAAK,KAAK,IAAI,EAAE,MAAM,WAAW,CAAA;AAExC,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpB;;;;;GAKG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"entry-menu.d.ts","sourceRoot":"","sources":["../../src/cli-ui/entry-menu.ts"],"names":[],"mappings":"AAWA,OAAO,EAAK,KAAK,IAAI,EAAE,MAAM,WAAW,CAAA;AAExC,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpB;;;;;GAKG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CA4BjF"}
|
|
@@ -31,7 +31,8 @@ export async function runEntryMenu() {
|
|
|
31
31
|
{ value: 'start_bg', name: t(lang, 'menu.start_bg') },
|
|
32
32
|
{ value: 'restart', name: t(lang, 'menu.restart') },
|
|
33
33
|
{ value: 'stop', name: t(lang, 'menu.stop') },
|
|
34
|
-
{ value: '
|
|
34
|
+
{ value: 'token', name: t(lang, 'menu.token'), separatorBefore: true },
|
|
35
|
+
{ value: 'uninstall', name: t(lang, 'menu.uninstall') },
|
|
35
36
|
{ value: 'quit', name: t(lang, 'menu.quit'), separatorBefore: true },
|
|
36
37
|
],
|
|
37
38
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-menu.js","sourceRoot":"","sources":["../../src/cli-ui/entry-menu.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,oEAAoE;AACpE,wDAAwD;AACxD,EAAE;AACF,yEAAyE;AACzE,0EAA0E;AAC1E,iEAAiE;AACjE,4CAA4C;AAE5C,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,CAAC,EAAa,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"entry-menu.js","sourceRoot":"","sources":["../../src/cli-ui/entry-menu.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,oEAAoE;AACpE,wDAAwD;AACxD,EAAE;AACF,yEAAyE;AACzE,0EAA0E;AAC1E,iEAAiE;AACjE,4CAA4C;AAE5C,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,CAAC,EAAa,MAAM,WAAW,CAAA;AAYxC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAA;IAC7B,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAA;IAClC,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAmC;YAC3D,IAAI;YACJ,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC;YACjC,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,QAAQ,EAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE;gBACpD,EAAE,KAAK,EAAE,QAAQ,EAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,EAAK,eAAe,EAAE,IAAI,EAAE;gBAC9E,EAAE,KAAK,EAAE,OAAO,EAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE;gBACnD,EAAE,KAAK,EAAE,UAAU,EAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE;gBACtD,EAAE,KAAK,EAAE,SAAS,EAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE;gBACrD,EAAE,KAAK,EAAE,MAAM,EAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;gBAClD,EAAE,KAAK,EAAE,OAAO,EAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,EAAM,eAAe,EAAE,IAAI,EAAE;gBAC9E,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE;gBACvD,EAAE,KAAK,EAAE,MAAM,EAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAO,eAAe,EAAE,IAAI,EAAE;aAC/E;SACF,CAAC,CAAqC,CAAA;QACvC,IAAI,MAAM,KAAK,UAAU;YAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAA;QAC/E,IAAI,MAAM,KAAK,OAAO;YAAK,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAA;QAChF,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAiB,EAAE,IAAI,EAAE,CAAA;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,cAAc;YAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAA;QAC5E,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC"}
|
package/dist/cli-ui/i18n.d.ts
CHANGED
|
@@ -12,8 +12,22 @@ declare const en: {
|
|
|
12
12
|
readonly 'menu.start_bg': "Start the service (background)";
|
|
13
13
|
readonly 'menu.restart': "Restart the service";
|
|
14
14
|
readonly 'menu.stop': "Stop the service";
|
|
15
|
+
readonly 'menu.token': "Manage web access tokens";
|
|
15
16
|
readonly 'menu.uninstall': "Uninstall Agim (keeps workspaces)";
|
|
16
17
|
readonly 'menu.quit': "Quit";
|
|
18
|
+
readonly 'token.title': "Web access tokens";
|
|
19
|
+
readonly 'token.subtitle': "Tokens grant access to the web console at http://<host>:3000/.";
|
|
20
|
+
readonly 'token.choice.create': "Generate a new token";
|
|
21
|
+
readonly 'token.choice.list': "List existing tokens";
|
|
22
|
+
readonly 'token.choice.revoke': "Revoke a token";
|
|
23
|
+
readonly 'token.choice.back': "← Back";
|
|
24
|
+
readonly 'token.create.label_prompt': "Optional label (e.g. \"macbook\"):";
|
|
25
|
+
readonly 'token.create.printed': "Save this token now — the raw value is not recoverable later:";
|
|
26
|
+
readonly 'token.list.empty': "(no tokens yet)";
|
|
27
|
+
readonly 'token.revoke.prompt': "Pick a token to revoke:";
|
|
28
|
+
readonly 'token.revoke.confirm': "Revoke {label} ({id})?";
|
|
29
|
+
readonly 'token.revoke.success': "✓ token revoked";
|
|
30
|
+
readonly 'token.revoke.not_found': "✗ token not found";
|
|
17
31
|
readonly 'config.title': "Agim · config";
|
|
18
32
|
readonly 'config.subtitle': "Pick a section to edit. Each section has a Back option.";
|
|
19
33
|
readonly 'config.section.messengers': "Messengers (WeChat / Telegram / Feishu / Discord / Email)";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/cli-ui/i18n.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAI9B,QAAA,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/cli-ui/i18n.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAI9B,QAAA,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2PE,CAAA;AAEV,MAAM,MAAM,GAAG,GAAG,MAAM,OAAO,EAAE,CAAA;AAkQjC,0FAA0F;AAC1F,wBAAgB,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAM,GAAG,MAAM,CAM1F;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,IAAI,IAAI,GAAG,IAAI,CAM3C;AAED,uEAAuE;AACvE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAOzC;AAED,eAAO,MAAM,cAAc,QAAY,CAAA"}
|
package/dist/cli-ui/i18n.js
CHANGED
|
@@ -26,8 +26,23 @@ const en = {
|
|
|
26
26
|
'menu.start_bg': 'Start the service (background)',
|
|
27
27
|
'menu.restart': 'Restart the service',
|
|
28
28
|
'menu.stop': 'Stop the service',
|
|
29
|
+
'menu.token': 'Manage web access tokens',
|
|
29
30
|
'menu.uninstall': 'Uninstall Agim (keeps workspaces)',
|
|
30
31
|
'menu.quit': 'Quit',
|
|
32
|
+
// ─── token management submenu ────────────────────────────────────────
|
|
33
|
+
'token.title': 'Web access tokens',
|
|
34
|
+
'token.subtitle': 'Tokens grant access to the web console at http://<host>:3000/.',
|
|
35
|
+
'token.choice.create': 'Generate a new token',
|
|
36
|
+
'token.choice.list': 'List existing tokens',
|
|
37
|
+
'token.choice.revoke': 'Revoke a token',
|
|
38
|
+
'token.choice.back': '← Back',
|
|
39
|
+
'token.create.label_prompt': 'Optional label (e.g. "macbook"):',
|
|
40
|
+
'token.create.printed': 'Save this token now — the raw value is not recoverable later:',
|
|
41
|
+
'token.list.empty': '(no tokens yet)',
|
|
42
|
+
'token.revoke.prompt': 'Pick a token to revoke:',
|
|
43
|
+
'token.revoke.confirm': 'Revoke {label} ({id})?',
|
|
44
|
+
'token.revoke.success': '✓ token revoked',
|
|
45
|
+
'token.revoke.not_found': '✗ token not found',
|
|
31
46
|
// ─── config root ─────────────────────────────────────────────────────
|
|
32
47
|
'config.title': 'Agim · config',
|
|
33
48
|
'config.subtitle': 'Pick a section to edit. Each section has a Back option.',
|
|
@@ -244,8 +259,23 @@ const zh = {
|
|
|
244
259
|
'menu.start_bg': '启动服务(后台)',
|
|
245
260
|
'menu.restart': '重启服务',
|
|
246
261
|
'menu.stop': '停止服务',
|
|
262
|
+
'menu.token': '管理 Web 访问 Token',
|
|
247
263
|
'menu.uninstall': '卸载阿吉姆(保留 workspaces)',
|
|
248
264
|
'menu.quit': '退出',
|
|
265
|
+
// ─── token management submenu ────────────────────────────────────
|
|
266
|
+
'token.title': 'Web 访问 Token',
|
|
267
|
+
'token.subtitle': 'Token 用于登录 Web 控制台(http://<主机>:3000/)。',
|
|
268
|
+
'token.choice.create': '生成新 Token',
|
|
269
|
+
'token.choice.list': '查看现有 Token',
|
|
270
|
+
'token.choice.revoke': '撤销 Token',
|
|
271
|
+
'token.choice.back': '← 返回',
|
|
272
|
+
'token.create.label_prompt': '可选 label(例如 "macbook"):',
|
|
273
|
+
'token.create.printed': '请立即保存这个 Token —— 原文不可再次找回:',
|
|
274
|
+
'token.list.empty': '(暂无 Token)',
|
|
275
|
+
'token.revoke.prompt': '选择要撤销的 Token:',
|
|
276
|
+
'token.revoke.confirm': '撤销 {label} ({id})?',
|
|
277
|
+
'token.revoke.success': '✓ Token 已撤销',
|
|
278
|
+
'token.revoke.not_found': '✗ 找不到对应 Token',
|
|
249
279
|
// ─── config root ─────────────────────────────────────────────────
|
|
250
280
|
'config.title': '阿吉姆 · 配置',
|
|
251
281
|
'config.subtitle': '选要编辑的分类。每个分类内部都能 Back 回上一层。',
|
package/dist/cli-ui/i18n.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/cli-ui/i18n.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/cli-ui/i18n.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-menu.d.ts","sourceRoot":"","sources":["../../src/cli-ui/token-menu.ts"],"names":[],"mappings":"AAOA,OAAO,EAAK,KAAK,IAAI,EAAE,MAAM,WAAW,CAAA;AAaxC,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B5D"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
// cli-ui/token-menu.ts — interactive menu the entry-menu dispatches to
|
|
2
|
+
// when the user picks "Manage web access tokens".
|
|
3
|
+
//
|
|
4
|
+
// Wraps src/core/access-token.ts CRUD with a small terminal UI that
|
|
5
|
+
// matches the rest of the agim wizard look (menu / input / confirm).
|
|
6
|
+
import { menu, inputText, yesNo, BACK, UserAbortError } from './prompts.js';
|
|
7
|
+
import { t } from './i18n.js';
|
|
8
|
+
import { createToken, listTokens, revokeToken, TOKENS_FILE_PATH, } from '../core/access-token.js';
|
|
9
|
+
function fmtDate(unix) {
|
|
10
|
+
if (!unix)
|
|
11
|
+
return '(never)';
|
|
12
|
+
return new Date(unix * 1000).toISOString().replace('T', ' ').slice(0, 19);
|
|
13
|
+
}
|
|
14
|
+
export async function runTokenMenu(lang) {
|
|
15
|
+
while (true) {
|
|
16
|
+
console.log('');
|
|
17
|
+
console.log(t(lang, 'token.title'));
|
|
18
|
+
console.log(t(lang, 'token.subtitle'));
|
|
19
|
+
console.log(` ${TOKENS_FILE_PATH}`);
|
|
20
|
+
console.log('');
|
|
21
|
+
let pick;
|
|
22
|
+
try {
|
|
23
|
+
pick = await menu({
|
|
24
|
+
lang,
|
|
25
|
+
message: '?',
|
|
26
|
+
choices: [
|
|
27
|
+
{ value: 'create', name: t(lang, 'token.choice.create') },
|
|
28
|
+
{ value: 'list', name: t(lang, 'token.choice.list') },
|
|
29
|
+
{ value: 'revoke', name: t(lang, 'token.choice.revoke') },
|
|
30
|
+
{ value: 'back', name: t(lang, 'token.choice.back'), separatorBefore: true },
|
|
31
|
+
],
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
if (err instanceof UserAbortError)
|
|
36
|
+
return;
|
|
37
|
+
throw err;
|
|
38
|
+
}
|
|
39
|
+
if (pick === 'back' || pick === BACK)
|
|
40
|
+
return;
|
|
41
|
+
if (pick === 'create')
|
|
42
|
+
await handleCreate(lang);
|
|
43
|
+
else if (pick === 'list')
|
|
44
|
+
await handleList(lang);
|
|
45
|
+
else if (pick === 'revoke')
|
|
46
|
+
await handleRevoke(lang);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async function handleCreate(lang) {
|
|
50
|
+
let label = '';
|
|
51
|
+
try {
|
|
52
|
+
label = await inputText({ message: t(lang, 'token.create.label_prompt') });
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
if (err instanceof UserAbortError)
|
|
56
|
+
return;
|
|
57
|
+
throw err;
|
|
58
|
+
}
|
|
59
|
+
const r = createToken(label.trim());
|
|
60
|
+
console.log('');
|
|
61
|
+
console.log(t(lang, 'token.create.printed'));
|
|
62
|
+
console.log('');
|
|
63
|
+
console.log(` id : ${r.id}`);
|
|
64
|
+
console.log(` label : ${label.trim() || '(unlabeled)'}`);
|
|
65
|
+
console.log(` token : ${r.raw}`);
|
|
66
|
+
console.log('');
|
|
67
|
+
}
|
|
68
|
+
async function handleList(lang) {
|
|
69
|
+
const rows = listTokens();
|
|
70
|
+
console.log('');
|
|
71
|
+
if (rows.length === 0) {
|
|
72
|
+
console.log(t(lang, 'token.list.empty'));
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
for (const r of rows) {
|
|
76
|
+
console.log(` ${r.id} label=${r.label || '(unlabeled)'} created=${fmtDate(r.created_at)} last_used=${fmtDate(r.last_used_at)}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async function handleRevoke(lang) {
|
|
80
|
+
const rows = listTokens();
|
|
81
|
+
if (rows.length === 0) {
|
|
82
|
+
console.log(t(lang, 'token.list.empty'));
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
let pickId;
|
|
86
|
+
try {
|
|
87
|
+
pickId = await menu({
|
|
88
|
+
lang,
|
|
89
|
+
message: t(lang, 'token.revoke.prompt'),
|
|
90
|
+
choices: rows.map((r) => ({
|
|
91
|
+
value: r.id,
|
|
92
|
+
name: `${r.id} ${r.label || '(unlabeled)'} (created ${fmtDate(r.created_at)})`,
|
|
93
|
+
})),
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
if (err instanceof UserAbortError)
|
|
98
|
+
return;
|
|
99
|
+
throw err;
|
|
100
|
+
}
|
|
101
|
+
if (pickId === BACK)
|
|
102
|
+
return;
|
|
103
|
+
const row = rows.find((r) => r.id === pickId);
|
|
104
|
+
if (!row)
|
|
105
|
+
return;
|
|
106
|
+
let ok = false;
|
|
107
|
+
try {
|
|
108
|
+
ok = await yesNo({
|
|
109
|
+
message: t(lang, 'token.revoke.confirm')
|
|
110
|
+
.replace('{label}', row.label || '(unlabeled)')
|
|
111
|
+
.replace('{id}', row.id),
|
|
112
|
+
default: false,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
if (err instanceof UserAbortError)
|
|
117
|
+
return;
|
|
118
|
+
throw err;
|
|
119
|
+
}
|
|
120
|
+
if (!ok)
|
|
121
|
+
return;
|
|
122
|
+
if (revokeToken(row.id))
|
|
123
|
+
console.log(t(lang, 'token.revoke.success'));
|
|
124
|
+
else
|
|
125
|
+
console.log(t(lang, 'token.revoke.not_found'));
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=token-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-menu.js","sourceRoot":"","sources":["../../src/cli-ui/token-menu.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -424,10 +424,16 @@ program
|
|
|
424
424
|
reply = await handleStopCommand('', routeCtx);
|
|
425
425
|
else
|
|
426
426
|
reply = await handleStatusCommand('', routeCtx);
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
427
|
+
// v1.1.10: /restart now delivers its "重启中…" ack synchronously
|
|
428
|
+
// from inside initiateRestart() to win the race against the new
|
|
429
|
+
// process's "✅ 已重启完成…" push. In that case the handler
|
|
430
|
+
// returns an empty string — skip the duplicate sink call.
|
|
431
|
+
if (reply && reply.length > 0) {
|
|
432
|
+
await sink.deliver({
|
|
433
|
+
platform: ctx.platform, channelId: ctx.channelId, threadId: ctx.message.threadId,
|
|
434
|
+
payload: reply, kind: 'text',
|
|
435
|
+
});
|
|
436
|
+
}
|
|
431
437
|
return;
|
|
432
438
|
}
|
|
433
439
|
}
|
|
@@ -918,14 +924,27 @@ async function handleMessage(ctx, defaultAgent) {
|
|
|
918
924
|
await stopTyping();
|
|
919
925
|
await dismiss();
|
|
920
926
|
markJobCompleted(inlineJobId, result);
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
927
|
+
// v1.1.10: string branch is the slash-command path (e.g. /job list,
|
|
928
|
+
// /a2a tree, /outbox status, /restart, /audit). These are
|
|
929
|
+
// operational replies and must stay inline regardless of length —
|
|
930
|
+
// truncating a /job list table behind a viewer link defeats the
|
|
931
|
+
// command. Only the streaming-generator branch below is true
|
|
932
|
+
// freeform agent output and gets source: 'agent'.
|
|
933
|
+
//
|
|
934
|
+
// Empty-string return signals "I already delivered the reply
|
|
935
|
+
// myself" — used by /restart which pushes its in-flight ack via
|
|
936
|
+
// sink with priority='high' to win the race against the new
|
|
937
|
+
// process's completion push. Skip the duplicate sink call.
|
|
938
|
+
if (result.length > 0) {
|
|
939
|
+
const sinkRes = await sink.deliver({
|
|
940
|
+
platform, channelId: ctx.channelId, threadId: message.threadId,
|
|
941
|
+
payload: await maybePrefix(result), kind: 'text',
|
|
942
|
+
jobId: inlineJobId > 0 ? inlineJobId : undefined,
|
|
943
|
+
source: 'system',
|
|
944
|
+
});
|
|
945
|
+
if (sinkRes.outboxId > 0)
|
|
946
|
+
linkJobOutbox(inlineJobId, sinkRes.outboxId);
|
|
947
|
+
}
|
|
929
948
|
logger.info({ event: 'message.sent', responseLen: result.length });
|
|
930
949
|
}
|
|
931
950
|
else {
|
|
@@ -1448,6 +1467,59 @@ program
|
|
|
1448
1467
|
const { cmdUninstall } = await import('./cli-ui/cmd-handlers.js');
|
|
1449
1468
|
await cmdUninstall();
|
|
1450
1469
|
});
|
|
1470
|
+
// ─── access tokens for the web console (v1.1.10+) ───────────────────
|
|
1471
|
+
//
|
|
1472
|
+
// Generates / lists / revokes tokens stored under ~/.agim/tokens.json.
|
|
1473
|
+
// Required to log into the web UI when bound to a non-loopback address.
|
|
1474
|
+
// See src/core/access-token.ts for storage details + bootstrap behavior.
|
|
1475
|
+
const tokenCmd = program.command('token').description('Manage web console access tokens');
|
|
1476
|
+
tokenCmd
|
|
1477
|
+
.command('create [label]')
|
|
1478
|
+
.description('Create a new web access token (raw value printed once)')
|
|
1479
|
+
.action(async (label) => {
|
|
1480
|
+
const { createToken } = await import('./core/access-token.js');
|
|
1481
|
+
const t = createToken(label || '');
|
|
1482
|
+
console.log('');
|
|
1483
|
+
console.log('✓ New access token created.');
|
|
1484
|
+
console.log(` id : ${t.id}`);
|
|
1485
|
+
console.log(` label : ${label || '(unlabeled)'}`);
|
|
1486
|
+
console.log(` token : ${t.raw}`);
|
|
1487
|
+
console.log('');
|
|
1488
|
+
console.log('⚠️ This is the only time the raw value is shown. Save it now.');
|
|
1489
|
+
console.log(' Paste it at the /login page or send it as an "Authorization: Bearer <token>" header.');
|
|
1490
|
+
});
|
|
1491
|
+
tokenCmd
|
|
1492
|
+
.command('list')
|
|
1493
|
+
.description('List existing tokens (no secrets shown)')
|
|
1494
|
+
.action(async () => {
|
|
1495
|
+
const { listTokens, TOKENS_FILE_PATH } = await import('./core/access-token.js');
|
|
1496
|
+
const rows = listTokens();
|
|
1497
|
+
console.log(`Stored at: ${TOKENS_FILE_PATH}`);
|
|
1498
|
+
if (rows.length === 0) {
|
|
1499
|
+
console.log('(no tokens — run `agim token create` to create one)');
|
|
1500
|
+
return;
|
|
1501
|
+
}
|
|
1502
|
+
for (const r of rows) {
|
|
1503
|
+
const created = new Date(r.created_at * 1000).toISOString().replace('T', ' ').slice(0, 19);
|
|
1504
|
+
const lastUsed = r.last_used_at
|
|
1505
|
+
? new Date(r.last_used_at * 1000).toISOString().replace('T', ' ').slice(0, 19)
|
|
1506
|
+
: '(never)';
|
|
1507
|
+
console.log(` ${r.id} label=${r.label} created=${created} last_used=${lastUsed}`);
|
|
1508
|
+
}
|
|
1509
|
+
});
|
|
1510
|
+
tokenCmd
|
|
1511
|
+
.command('revoke <id>')
|
|
1512
|
+
.description('Revoke (delete) a token by id')
|
|
1513
|
+
.action(async (id) => {
|
|
1514
|
+
const { revokeToken } = await import('./core/access-token.js');
|
|
1515
|
+
const ok = revokeToken(id);
|
|
1516
|
+
if (ok)
|
|
1517
|
+
console.log(`✓ token ${id} revoked.`);
|
|
1518
|
+
else {
|
|
1519
|
+
console.log(`✗ token ${id} not found.`);
|
|
1520
|
+
process.exit(1);
|
|
1521
|
+
}
|
|
1522
|
+
});
|
|
1451
1523
|
// ─── bare `agim` → entry menu (v0.5.0+) ─────────────────────────────
|
|
1452
1524
|
// If the user invoked us with no args (just `agim`), drop them at
|
|
1453
1525
|
// the language picker + maintenance menu instead of dumping --help text.
|
|
@@ -1500,6 +1572,11 @@ async function maybeRunEntryMenu() {
|
|
|
1500
1572
|
case 'stop':
|
|
1501
1573
|
await cmdStop();
|
|
1502
1574
|
return true;
|
|
1575
|
+
case 'token': {
|
|
1576
|
+
const { runTokenMenu } = await import('./cli-ui/token-menu.js');
|
|
1577
|
+
await runTokenMenu(lang);
|
|
1578
|
+
return true;
|
|
1579
|
+
}
|
|
1503
1580
|
case 'uninstall':
|
|
1504
1581
|
await cmdUninstall();
|
|
1505
1582
|
return true;
|