agim-cli 1.2.1 → 1.2.17
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 +52 -0
- package/README.md +18 -5
- package/README.zh-CN.md +20 -7
- 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 +1 -0
- package/dist/cli-ui/entry-menu.js.map +1 -1
- package/dist/cli-ui/i18n.d.ts +5 -0
- package/dist/cli-ui/i18n.d.ts.map +1 -1
- package/dist/cli-ui/i18n.js +10 -0
- package/dist/cli-ui/i18n.js.map +1 -1
- package/dist/cli.js +117 -0
- package/dist/cli.js.map +1 -1
- package/dist/core/admin-bootstrap.d.ts +14 -0
- package/dist/core/admin-bootstrap.d.ts.map +1 -1
- package/dist/core/admin-bootstrap.js +21 -0
- package/dist/core/admin-bootstrap.js.map +1 -1
- package/dist/core/commands/builtin.d.ts.map +1 -1
- package/dist/core/commands/builtin.js +2 -0
- package/dist/core/commands/builtin.js.map +1 -1
- package/dist/core/commands/router.js +1 -1
- package/dist/core/commands/router.js.map +1 -1
- package/dist/core/commands/web.d.ts +3 -0
- package/dist/core/commands/web.d.ts.map +1 -0
- package/dist/core/commands/web.js +28 -0
- package/dist/core/commands/web.js.map +1 -0
- package/dist/core/intent.d.ts +11 -2
- package/dist/core/intent.d.ts.map +1 -1
- package/dist/core/intent.js +26 -4
- package/dist/core/intent.js.map +1 -1
- package/dist/core/memory.js.map +1 -1
- package/dist/core/render-router.d.ts.map +1 -1
- package/dist/core/render-router.js +3 -2
- package/dist/core/render-router.js.map +1 -1
- package/dist/core/router.d.ts.map +1 -1
- package/dist/core/router.js +8 -1
- package/dist/core/router.js.map +1 -1
- package/dist/core/types.d.ts +3 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/plugins/agents/acp/acp-client.d.ts.map +1 -1
- package/dist/plugins/agents/acp/acp-client.js +7 -0
- package/dist/plugins/agents/acp/acp-client.js.map +1 -1
- package/dist/plugins/agents/acp/discovery.d.ts.map +1 -1
- package/dist/plugins/agents/acp/discovery.js +4 -0
- package/dist/plugins/agents/acp/discovery.js.map +1 -1
- package/dist/plugins/agents/acp/url-guard.d.ts +44 -0
- package/dist/plugins/agents/acp/url-guard.d.ts.map +1 -0
- package/dist/plugins/agents/acp/url-guard.js +109 -0
- package/dist/plugins/agents/acp/url-guard.js.map +1 -0
- package/dist/web/env-mask.d.ts +21 -0
- package/dist/web/env-mask.d.ts.map +1 -0
- package/dist/web/env-mask.js +44 -0
- package/dist/web/env-mask.js.map +1 -0
- package/dist/web/public/assets/a2a-Dk2fSs33.js +7 -0
- package/dist/web/public/assets/a2a-Dk2fSs33.js.map +1 -0
- package/dist/web/public/assets/activity-eiIPshcV.js +7 -0
- package/dist/web/public/assets/activity-eiIPshcV.js.map +1 -0
- package/dist/web/public/assets/admins-DlbQYdW_.js +12 -0
- package/dist/web/public/assets/admins-DlbQYdW_.js.map +1 -0
- package/dist/web/public/assets/agents-BMI1WbZj.js +12 -0
- package/dist/web/public/assets/agents-BMI1WbZj.js.map +1 -0
- package/dist/web/public/assets/approvals-DlXS_sKD.js +10 -0
- package/dist/web/public/assets/approvals-DlXS_sKD.js.map +1 -0
- package/dist/web/public/assets/audit-C8I8xC_6.js +2 -0
- package/dist/web/public/assets/audit-C8I8xC_6.js.map +1 -0
- package/dist/web/public/assets/bgjobs-PFYinH7D.js +7 -0
- package/dist/web/public/assets/bgjobs-PFYinH7D.js.map +1 -0
- package/dist/web/public/assets/brain-DEEJttEL.js +7 -0
- package/dist/web/public/assets/brain-DEEJttEL.js.map +1 -0
- package/dist/web/public/assets/briefcase-BlMy8gI6.js +7 -0
- package/dist/web/public/assets/briefcase-BlMy8gI6.js.map +1 -0
- package/dist/web/public/assets/browser-ponyfill-BOcGq8h9.js +3 -0
- package/dist/web/public/assets/browser-ponyfill-BOcGq8h9.js.map +1 -0
- package/dist/web/public/assets/chevron-right-DmABPvoA.js +7 -0
- package/dist/web/public/assets/chevron-right-DmABPvoA.js.map +1 -0
- package/dist/web/public/assets/circle-check-C0Qpg1vL.js +7 -0
- package/dist/web/public/assets/circle-check-C0Qpg1vL.js.map +1 -0
- package/dist/web/public/assets/circle-check-big-C8LG3beV.js +7 -0
- package/dist/web/public/assets/circle-check-big-C8LG3beV.js.map +1 -0
- package/dist/web/public/assets/circle-x-D_cRHcHK.js +7 -0
- package/dist/web/public/assets/circle-x-D_cRHcHK.js.map +1 -0
- package/dist/web/public/assets/confirm-dialog-Baz_xFle.js +2 -0
- package/dist/web/public/assets/confirm-dialog-Baz_xFle.js.map +1 -0
- package/dist/web/public/assets/data-table--I_ktDF4.js +17 -0
- package/dist/web/public/assets/data-table--I_ktDF4.js.map +1 -0
- package/dist/web/public/assets/dialog-DZpoEskO.js +6 -0
- package/dist/web/public/assets/dialog-DZpoEskO.js.map +1 -0
- package/dist/web/public/assets/download-DbFGHwZ5.js +7 -0
- package/dist/web/public/assets/download-DbFGHwZ5.js.map +1 -0
- package/dist/web/public/assets/email-BB1Hq8eE.js +7 -0
- package/dist/web/public/assets/email-BB1Hq8eE.js.map +1 -0
- package/dist/web/public/assets/empty-state-DXNa90pP.js +2 -0
- package/dist/web/public/assets/empty-state-DXNa90pP.js.map +1 -0
- package/dist/web/public/assets/env-Bqrb9XkC.js +2 -0
- package/dist/web/public/assets/env-Bqrb9XkC.js.map +1 -0
- package/dist/web/public/assets/external-link-nhnJN0qg.js +7 -0
- package/dist/web/public/assets/external-link-nhnJN0qg.js.map +1 -0
- package/dist/web/public/assets/eye-IKkn_oUo.js +12 -0
- package/dist/web/public/assets/eye-IKkn_oUo.js.map +1 -0
- package/dist/web/public/assets/facts-C7Qy9vTw.js +2 -0
- package/dist/web/public/assets/facts-C7Qy9vTw.js.map +1 -0
- package/dist/web/public/assets/health-CMRdeNEW.js +2 -0
- package/dist/web/public/assets/health-CMRdeNEW.js.map +1 -0
- package/dist/web/public/assets/hot-Bh5Nrc7i.js +17 -0
- package/dist/web/public/assets/hot-Bh5Nrc7i.js.map +1 -0
- package/dist/web/public/assets/index-CpGWCLE5.js +166 -0
- package/dist/web/public/assets/index-CpGWCLE5.js.map +1 -0
- package/dist/web/public/assets/index-GpceOxum.css +1 -0
- package/dist/web/public/assets/installed-FYLkPij2.js +7 -0
- package/dist/web/public/assets/installed-FYLkPij2.js.map +1 -0
- package/dist/web/public/assets/jobs-BmqLUzHp.js +2 -0
- package/dist/web/public/assets/jobs-BmqLUzHp.js.map +1 -0
- package/dist/web/public/assets/layout-9Gp_myEd.js +2 -0
- package/dist/web/public/assets/layout-9Gp_myEd.js.map +1 -0
- package/dist/web/public/assets/layout-BZaHqf69.js +2 -0
- package/dist/web/public/assets/layout-BZaHqf69.js.map +1 -0
- package/dist/web/public/assets/layout-CXsUyEpG.js +2 -0
- package/dist/web/public/assets/layout-CXsUyEpG.js.map +1 -0
- package/dist/web/public/assets/layout-DFxtpNut.js +2 -0
- package/dist/web/public/assets/layout-DFxtpNut.js.map +1 -0
- package/dist/web/public/assets/layout-d8qxPKQk.js +2 -0
- package/dist/web/public/assets/layout-d8qxPKQk.js.map +1 -0
- package/dist/web/public/assets/loader-circle-JaKY-xMt.js +7 -0
- package/dist/web/public/assets/loader-circle-JaKY-xMt.js.map +1 -0
- package/dist/web/public/assets/map-pin-hFFSWZ3B.js +7 -0
- package/dist/web/public/assets/map-pin-hFFSWZ3B.js.map +1 -0
- package/dist/web/public/assets/memos-EhjMUvVZ.js +12 -0
- package/dist/web/public/assets/memos-EhjMUvVZ.js.map +1 -0
- package/dist/web/public/assets/messengers-BRV1IVGX.js +7 -0
- package/dist/web/public/assets/messengers-BRV1IVGX.js.map +1 -0
- package/dist/web/public/assets/network-DtCI2ZUU.js +7 -0
- package/dist/web/public/assets/network-DtCI2ZUU.js.map +1 -0
- package/dist/web/public/assets/outbox-CxUbMp6o.js +7 -0
- package/dist/web/public/assets/outbox-CxUbMp6o.js.map +1 -0
- package/dist/web/public/assets/pagination-CkZY8YNa.js +17 -0
- package/dist/web/public/assets/pagination-CkZY8YNa.js.map +1 -0
- package/dist/web/public/assets/persona-B6TFMSnI.js +2 -0
- package/dist/web/public/assets/persona-B6TFMSnI.js.map +1 -0
- package/dist/web/public/assets/play-BxRcWaH5.js +7 -0
- package/dist/web/public/assets/play-BxRcWaH5.js.map +1 -0
- package/dist/web/public/assets/policy-ndE1Y8zD.js +2 -0
- package/dist/web/public/assets/policy-ndE1Y8zD.js.map +1 -0
- package/dist/web/public/assets/react-C9F3QeMB.js +33 -0
- package/dist/web/public/assets/react-C9F3QeMB.js.map +1 -0
- package/dist/web/public/assets/refresh-ccw-Bx817_KW.js +7 -0
- package/dist/web/public/assets/refresh-ccw-Bx817_KW.js.map +1 -0
- package/dist/web/public/assets/reminders-XynkGQc5.js +17 -0
- package/dist/web/public/assets/reminders-XynkGQc5.js.map +1 -0
- package/dist/web/public/assets/save-CqMcATrh.js +7 -0
- package/dist/web/public/assets/save-CqMcATrh.js.map +1 -0
- package/dist/web/public/assets/schedules-VM02w_Om.js +7 -0
- package/dist/web/public/assets/schedules-VM02w_Om.js.map +1 -0
- package/dist/web/public/assets/search-Ba-e1t1P.js +7 -0
- package/dist/web/public/assets/search-Ba-e1t1P.js.map +1 -0
- package/dist/web/public/assets/service-C-wnwJ-b.js +7 -0
- package/dist/web/public/assets/service-C-wnwJ-b.js.map +1 -0
- package/dist/web/public/assets/status-badge-CsdJ6k8Q.js +2 -0
- package/dist/web/public/assets/status-badge-CsdJ6k8Q.js.map +1 -0
- package/dist/web/public/assets/subtasks-mGRKpF0G.js +7 -0
- package/dist/web/public/assets/subtasks-mGRKpF0G.js.map +1 -0
- package/dist/web/public/assets/table-vmLMgj6_.js +2 -0
- package/dist/web/public/assets/table-vmLMgj6_.js.map +1 -0
- package/dist/web/public/assets/topn-nu66Fotx.js +7 -0
- package/dist/web/public/assets/topn-nu66Fotx.js.map +1 -0
- package/dist/web/public/assets/trash-2-ZIitN_U3.js +7 -0
- package/dist/web/public/assets/trash-2-ZIitN_U3.js.map +1 -0
- package/dist/web/public/assets/use-event-stream-BGeFcayX.js +2 -0
- package/dist/web/public/assets/use-event-stream-BGeFcayX.js.map +1 -0
- package/dist/web/public/assets/use-memory-DgEqHEca.js +2 -0
- package/dist/web/public/assets/use-memory-DgEqHEca.js.map +1 -0
- package/dist/web/public/assets/use-observability-CQev_A8e.js +2 -0
- package/dist/web/public/assets/use-observability-CQev_A8e.js.map +1 -0
- package/dist/web/public/assets/use-settings-CU-UcrVD.js +2 -0
- package/dist/web/public/assets/use-settings-CU-UcrVD.js.map +1 -0
- package/dist/web/public/assets/use-skills-Dr77CXLA.js +2 -0
- package/dist/web/public/assets/use-skills-Dr77CXLA.js.map +1 -0
- package/dist/web/public/assets/use-workspace-PNv9Z4de.js +2 -0
- package/dist/web/public/assets/use-workspace-PNv9Z4de.js.map +1 -0
- package/dist/web/public/assets/useQuery-BTyugXYV.js +2 -0
- package/dist/web/public/assets/useQuery-BTyugXYV.js.map +1 -0
- package/dist/web/public/assets/vector-w-Ea3pg6.js +2 -0
- package/dist/web/public/assets/vector-w-Ea3pg6.js.map +1 -0
- package/dist/web/public/assets/viewer-DKA7QP9U.js +12 -0
- package/dist/web/public/assets/viewer-DKA7QP9U.js.map +1 -0
- package/dist/web/public/assets/workspace-DVLZca7t.js +17 -0
- package/dist/web/public/assets/workspace-DVLZca7t.js.map +1 -0
- package/dist/web/public/assets/workspaces-DYZsMmY-.js +7 -0
- package/dist/web/public/assets/workspaces-DYZsMmY-.js.map +1 -0
- package/dist/web/public/assets/x-Ru3rHT82.js +7 -0
- package/dist/web/public/assets/x-Ru3rHT82.js.map +1 -0
- package/dist/web/public/favicon.svg +4 -0
- package/dist/web/public/index.html +37 -928
- package/dist/web/public/manifest.webmanifest +19 -0
- package/dist/web/public/tasks.html +362 -6
- package/dist/web/public/vendor/chart.umd.min.js +20 -0
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +694 -60
- package/dist/web/server.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,58 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [1.2.2] - 2026-05-17
|
|
8
|
+
|
|
9
|
+
Three small but noticeable hotfixes on top of 1.2.1:
|
|
10
|
+
|
|
11
|
+
### Added — Admin invite from CLI / interactive menu
|
|
12
|
+
|
|
13
|
+
Onboarding the FIRST admin uses an auto-generated bootstrap token. Adding
|
|
14
|
+
MORE admins after the fact required either editing `~/.agim/env` by hand
|
|
15
|
+
or having the new admin send their `platform:userId` to the existing
|
|
16
|
+
admin so it could be typed into the web Safety card. Tedious.
|
|
17
|
+
|
|
18
|
+
- `agim admin invite` (CLI) — generates a fresh single-use token,
|
|
19
|
+
overwrites `~/.agim/admin-bootstrap-token`, and prints
|
|
20
|
+
`/setup admin <token>` ready to forward to the invitee.
|
|
21
|
+
- `agim admin list` (CLI) — show current allowlist (env + runtime).
|
|
22
|
+
- Entry menu (bare `agim`) gains "邀请新管理员 / Invite a new admin"
|
|
23
|
+
between "Manage web access tokens" and "Uninstall".
|
|
24
|
+
- Reuses the existing `/setup admin <token>` IM flow — no IM-side code
|
|
25
|
+
changes; works on every messenger the bot is on.
|
|
26
|
+
- Invite tokens stay single-use and overwrite the previous unconsumed
|
|
27
|
+
one, so abandoned invites can't accumulate.
|
|
28
|
+
|
|
29
|
+
### Changed — Vector backend eager-warm at boot
|
|
30
|
+
|
|
31
|
+
`LocalBgeBackend`'s autowarm (1.2.1) only fired when `getActiveBackend()`
|
|
32
|
+
was first called — i.e. on the first inbound message OR the first Memory
|
|
33
|
+
tab visit. In quiet periods the backend stayed cold and the status badge
|
|
34
|
+
showed "未就绪" until something poked it.
|
|
35
|
+
|
|
36
|
+
- `cli.ts` boot now calls `getActiveBackend()` once after `setBootPhase('ready')`
|
|
37
|
+
when memory is enabled, triggering the constructor's autowarm
|
|
38
|
+
immediately. Status badge flips to `↻ 加载中…` → `✓ ready` within a
|
|
39
|
+
few seconds of restart.
|
|
40
|
+
|
|
41
|
+
### Changed — Async consolidate (no more "失败: 554" timeout)
|
|
42
|
+
|
|
43
|
+
`POST /api/memory/consolidate` used to hold the connection for the full
|
|
44
|
+
30–60s LLM call. Intermediate proxies / cloudflare / browser fetch
|
|
45
|
+
defaults would close the connection long before the work finished,
|
|
46
|
+
surfacing as a cryptic "失败: 554" in the UI even when the persona was
|
|
47
|
+
actually rebuilt.
|
|
48
|
+
|
|
49
|
+
- Endpoint now returns `202 + { jobId }` immediately and runs the
|
|
50
|
+
consolidation in the background.
|
|
51
|
+
- New `GET /api/memory/consolidate/status` returns the recent jobs +
|
|
52
|
+
phase (`running` / `done` / `failed`).
|
|
53
|
+
- Memory tab button polls every 2s, shows elapsed seconds during
|
|
54
|
+
`running`, terminal text on completion. 5min poll cap; UI hint to
|
|
55
|
+
refresh if exceeded.
|
|
56
|
+
- Concurrent click protection: a 2nd POST while one is `running`
|
|
57
|
+
returns the same `jobId`.
|
|
58
|
+
|
|
7
59
|
## [1.2.1] - 2026-05-17
|
|
8
60
|
|
|
9
61
|
Hotfix for two issues found right after 1.2.0 went live.
|
package/README.md
CHANGED
|
@@ -22,10 +22,14 @@
|
|
|
22
22
|
- **A2A shared artifacts (v1.1.3+)** — caller drops files into the callee's workspace via `inputs[]` (`fromAbsolutePath` / `fromCallerOutput` / inline `content`), and callee writes products to `~/.agim/artifacts/<jobId>/_agim-output/`. Returned `outputs[]` lets the caller read files on demand. Hard-link first, copy fallback. Size caps configurable.
|
|
23
23
|
- **IM long-message viewer (v1.1.6+)** — WeChat / Feishu and friends render rich markdown poorly. When an agent's reply exceeds the size threshold (or contains a markdown table / large code block), agim stashes the full markdown in `~/.agim/viewer.db` (permanent, local-only — content never leaves your host) and sends the IM a short summary + a link `https://<your-host>/v/<uuid>`. The link is served by agim's own web console — operator exposes the web port (cloudflared / caddy / tailscale of choice). Agents can opt in explicitly by wrapping long answers in `<im-summary>…</im-summary><full-md>…</full-md>`. Enable with `IMHUB_VIEWER_ENABLED=1` + `IMHUB_VIEWER_PUBLIC_BASE_URL=https://your-host`.
|
|
24
24
|
- **Crash-safe delivery** — every outbound message (replies, reminders, approvals, restart notices) flows through a SQLite outbox; a worker drains pending rows with exponential backoff. IM glitches and brief disconnects no longer drop replies. `/outbox status | list | failed | retry <id>`.
|
|
25
|
-
- **In-flight job recovery** — every inbound message becomes a tracked inline job
|
|
25
|
+
- **In-flight job recovery** — every inbound message becomes a tracked inline job. When agim is restarted mid-flight, the next startup notifies each affected thread within 10 min. **v1.2.0+** uses native inline-button cards (`🔁 重发 / ✖ 取消`) on Telegram / Feishu, falling back to text on adapters without buttons. Bystander-safe: only the original requester can resolve in group chats.
|
|
26
|
+
- **Long-term memory (v1.2.0+)** — per-user fact store + auto-distilled "persona" summary injected into every prompt. SQLite + FTS5 default; optional vector retrieval (local BGE via `@xenova/transformers` ONNX, or any OpenAI-compatible `/v1/embeddings` endpoint) with reciprocal-rank fusion. Default OFF; enable in Settings → 自动化记忆. Web admin tab `/tasks#memory` exposes per-user persona editor + paginated facts table + JSON export. All data stays in `~/.agim/memory.db` locally.
|
|
27
|
+
- **Cost & Health dashboard (v1.2.0+)** — `/tasks#cost` aggregates per-day spend / calls / errors / p95 latency from the audit log. Filter 1 / 7 / 30 / 90 days; top-N by user / agent / platform; daily trend chart with metric toggle. Claude per-run cost extracted from `--output-format json`.
|
|
28
|
+
- **Agent-initiated push (v1.2.0+)** — `mcp__imhub__push_message` MCP tool lets a running agent push a follow-up message back into the IM thread without an inbound trigger (long-running jobs, schedule-aware notifications). `POST /api/notify` exposes the same primitive to webhooks / cron. Per-user rate limit + cross-thread gating.
|
|
29
|
+
- **Admin invite (v1.2.2+)** — `agim admin invite` (or the entry-menu's "邀请新管理员" option) generates a single-use IM token; the invitee runs `/setup admin <token>` to onboard without ever touching `~/.agim/env`. `agim admin list` shows the current allowlist.
|
|
26
30
|
- **`/remind` reminders subsystem** — one-shot + recurring (`每天8点喝水`); LLM auto-detects reminder intent in casual chat; LLM polishes delivery; agent MCP tools; web `/reminders` page; email + IM delivery
|
|
27
31
|
- **`/memo` 5W1H persistent memory** — generic "what / who / when / where / how / why" notes with optional GPS capture (browser geolocation H5 + Baidu geocoder); permanent by default, transient bucket for parking spots / today's meeting; agents store + retrieve via MCP tools so casual mentions get remembered automatically
|
|
28
|
-
- **Browser dashboard** — chat UI; Tasks panel with
|
|
32
|
+
- **Browser dashboard** — chat UI; Tasks panel with 12 tabs (jobs / background / subtasks / schedules / approvals / health / files / audit / outbox / a2a / **cost / memory**); reminders panel; memos panel; settings page with workspace CRUD + admin allowlist + Safety card (restart / stop). Bilingual (EN / 中文) with per-page lang switcher and contextual `(?)` help tooltips on jargon (v1.1.4+)
|
|
29
33
|
- **Human-in-the-loop tool approval** — Claude tool calls pause for `y`/`n` in IM or in-page card; works across all platforms
|
|
30
34
|
- **Rich media in WeChat / Telegram / DingTalk** — receive images, files, videos; voice messages transcribed via WeChat STT, DingTalk's server-side ASR, OpenAI Whisper, or whisper.cpp (per-platform fallback chain)
|
|
31
35
|
- **Smart routing** — intent classifier (CJK + ASCII), sticky sessions, circuit breaker, rate limiter
|
|
@@ -383,7 +387,7 @@ npm run typecheck # tsc --noEmit
|
|
|
383
387
|
|
|
384
388
|
## Deployment
|
|
385
389
|
|
|
386
|
-
See [`docs/deployment.md`](docs/deployment.md) for systemd, Docker, nginx, monitoring, and upgrade instructions.
|
|
390
|
+
See [`docs/deployment.md`](docs/deployment.md) for systemd, Docker, nginx, monitoring, admin-allowlist management, backup, and upgrade instructions. For long-term memory + vector retrieval setup / tuning / privacy, see [`docs/memory-and-vector.md`](docs/memory-and-vector.md).
|
|
387
391
|
|
|
388
392
|
## Roadmap
|
|
389
393
|
|
|
@@ -409,13 +413,22 @@ See [`docs/deployment.md`](docs/deployment.md) for systemd, Docker, nginx, monit
|
|
|
409
413
|
| v0.6.0 | DingTalk Stream-mode adapter — bidirectional bot bridge via WebSocket, image inbound (`messageFiles/download` → claude-code multimodal Read), voice inbound (server-side ASR `recognition` field, whisper.cpp fallback) |
|
|
410
414
|
| v0.6.3 | Per-platform coord-system handling for native location messages (Telegram defaults WGS pass-through; H5 WGS pass-through fixes WeChat-X5 markers; DingTalk routes Baidu link URLs through BD-09→WGS) |
|
|
411
415
|
| **v1.0.0** | Brand rename to **Agim · 阿吉姆**. New canonical bin `agim`; `im-hub-pro` retained as deprecation alias. On-disk paths / env vars / HTTP headers / systemd unit name kept stable for drop-in compat with 0.x installs. |
|
|
416
|
+
| v1.1.2–1.1.3 | A2A L1 (call chain visualization) + L2 (shared artifact pool between agents) |
|
|
417
|
+
| v1.1.4 | Web dashboard bilingual + jargon tooltips |
|
|
418
|
+
| v1.1.6–1.1.8 | IM long-message viewer + cloudflared auto-tunnel |
|
|
419
|
+
| v1.1.10 | Web console token authentication (cookie + Bearer + loopback bypass), restart message-order fix |
|
|
420
|
+
| v1.1.11 | Viewer dark-mode readability |
|
|
421
|
+
| **v1.2.0** | **Long-term memory** (SQLite + FTS5 + persona + 4 MCP tools + auto-distillation + Web admin tab); **vector retrieval** (local BGE / OpenAI-compatible, RRF fusion); **Cost & Health dashboard**; **agent-initiated push** (`mcp__imhub__push_message`); recovery card with native inline buttons. |
|
|
422
|
+
| v1.2.1 | Vector backend auto-warm on restart; Memory + Cost tab i18n. |
|
|
423
|
+
| v1.2.2 | `agim admin invite` for onboarding additional admins via IM; vector eager-warm at boot; async consolidate (jobId + polling). |
|
|
412
424
|
|
|
413
|
-
###
|
|
425
|
+
### Next
|
|
414
426
|
|
|
415
427
|
- [ ] Slack adapter
|
|
416
|
-
- [ ]
|
|
428
|
+
- [ ] DingTalk button-style approval cards (Telegram + Feishu done)
|
|
417
429
|
- [ ] Multi-instance event bus (Redis Streams / NATS)
|
|
418
430
|
- [ ] Workspace member picker UI
|
|
431
|
+
- [ ] Memory consolidation: scheduled boot+5min first run (currently waits a full 24h)
|
|
419
432
|
|
|
420
433
|
## Community
|
|
421
434
|
|
package/README.zh-CN.md
CHANGED
|
@@ -18,10 +18,14 @@
|
|
|
18
18
|
- **A2A 共享文件传递(v1.1.3+)** — caller 可通过 `inputs[]`(`fromAbsolutePath` / `fromCallerOutput` / 内联 `content`)把文件放进 callee 工作区;callee 把产物写到 `~/.agim/artifacts/<jobId>/_agim-output/`,返回的 `outputs[]` 让 caller 按需读。同文件系统优先 hard-link,否则复制。大小上限 env 可调
|
|
19
19
|
- **IM 长内容 viewer(v1.1.6+)** — 微信 / 飞书等对富 markdown 渲染差。Agent 回复超过阈值(行数 / 字符数 / 含表格 / 大段代码)时,agim 把完整 markdown 永久存进本机 `~/.agim/viewer.db`(**永远不离开你的机器**),IM 里只发短摘要 + 链接 `https://<你的域名>/v/<uuid>`。链接背后是 agim 自己的 web console,由你自己反代(cloudflared / caddy / tailscale 任选)。Agent 可显式用 `<im-summary>…</im-summary><full-md>…</full-md>` 包装长回答获得最干净体验。开启:`IMHUB_VIEWER_ENABLED=1` + `IMHUB_VIEWER_PUBLIC_BASE_URL=https://你的域名`
|
|
20
20
|
- **投递不丢消息** — Agent 回复 / 提醒 / 审批卡片 / 重启通知 全部走 SQLite outbox + 指数退避 worker,IM 平台抖动或断连不再丢回复;`/outbox status | list | failed | retry <id>`
|
|
21
|
-
- **崩溃中断可恢复** —
|
|
21
|
+
- **崩溃中断可恢复** — 每条入站消息建 inline job;agim 重启时正在跑的会标 `interrupted`,下次启动 10 分钟窗口内通知对应会话。**v1.2.0+** 在 Telegram / 飞书等支持的渠道走原生 `🔁 重发 / ✖ 取消` 内联按钮卡片,其余渠道兜底为文字提示。群聊内只有原发起者可点按钮
|
|
22
|
+
- **长期记忆(v1.2.0+)** — 按用户的事实库 + 自动蒸馏的 persona 摘要,每次对话自动注入 prompt。默认 SQLite + FTS5;可选向量召回(本地 BGE via `@xenova/transformers` ONNX,或任意 OpenAI 兼容 `/v1/embeddings` 端点),RRF 融合双路。默认关闭,Settings → 自动化记忆 开启。Web 管理 Tab `/tasks#memory` 可看 / 改 / 导出。**全量数据留本机** `~/.agim/memory.db`
|
|
23
|
+
- **成本与健康仪表盘(v1.2.0+)** — `/tasks#cost` 基于 audit log 聚合每日成本 / 调用数 / 错误数 / p95 延迟。1/7/30/90 天过滤,按用户 / agent / 平台 top-N,日趋势图带指标切换。Claude 每次调用费用自动从 `--output-format json` 提取
|
|
24
|
+
- **Agent 主动推送(v1.2.0+)** — 新的 `mcp__imhub__push_message` MCP 工具让运行中的 agent 不需要外部触发就把后续消息推回原 IM 会话(长任务通知、定时类提醒)。`POST /api/notify` 同一能力也暴露给 webhook / 外部脚本。每用户限流 + 跨会话开关防刷屏
|
|
25
|
+
- **管理员邀请(v1.2.2+)** — `agim admin invite`(或 `agim` 交互菜单「邀请新管理员」)生成一次性 IM token,受邀者在 IM 发 `/setup admin <token>` 即升级,不用动 `~/.agim/env`。`agim admin list` 查当前白名单
|
|
22
26
|
- **`/remind` 提醒子系统** — 一次性 + 定期(`每天8点喝水`);非 slash 消息 LLM 自动识别意图;LLM 润色投递文本;Agent MCP 工具直接创建;Web `/reminders` 管理页;邮件 + IM 双通道投递
|
|
23
27
|
- **`/memo` 5W1H 持久记忆库** — 通用「what / who / when / where / how / why」记事本,可选 GPS(浏览器地理定位 H5 + 百度地理编码);默认永久保存,临时类(停车、当天会议)单独走 24h 桶;Agent 通过 MCP 工具自动落库 + 检索,闲聊里提到的地点 / 生日 / 待办都能记下
|
|
24
|
-
- **浏览器控制台** — 对话界面;任务面板含
|
|
28
|
+
- **浏览器控制台** — 对话界面;任务面板含 12 个 Tab(Jobs / 后台脚本 / 子任务 / 定时 / 审批 / 健康 / 工作区 / 审计 / 投递队列 / A2A 调用 / **成本与健康 / 记忆**);提醒、备忘、设置页含工作区 CRUD + 管理员白名单 + Safety 卡片(重启 / 停止)。完整中英双语 + 每页语言切换 + 专业名词 `(?)` 帮助弹窗(v1.1.4+)
|
|
25
29
|
- **工具调用人审(HITL)** — Claude 调用工具时暂停,IM 回复 `y`/`n` 或在页面点卡片审批;全平台一致
|
|
26
30
|
- **微信 / Telegram / 钉钉 富媒体** — 接收图片、文件、视频;语音消息按平台走最佳转写链路:微信 STT、钉钉服务端 ASR、OpenAI Whisper、whisper.cpp
|
|
27
31
|
- **智能路由** — 意图分类(中英文)、Sticky 会话、断路器、限流器
|
|
@@ -375,7 +379,7 @@ npm run typecheck # tsc --noEmit
|
|
|
375
379
|
|
|
376
380
|
## 部署
|
|
377
381
|
|
|
378
|
-
systemd、Docker、nginx
|
|
382
|
+
systemd、Docker、nginx、监控、管理员管理、备份、升级详见 [`docs/deployment.md`](docs/deployment.md)。长期记忆 + 向量召回的启用 / 调优 / 隐私见 [`docs/memory-and-vector.md`](docs/memory-and-vector.md)。
|
|
379
383
|
|
|
380
384
|
## 路线图
|
|
381
385
|
|
|
@@ -400,14 +404,23 @@ systemd、Docker、nginx、监控与升级详见 [`docs/deployment.md`](docs/dep
|
|
|
400
404
|
| v0.5.0–0.5.2 | `agim` 双语方向键向导(当时叫 `im-hub-pro`);按渠道独立配置(微信扫码、飞书 / Telegram / Discord 凭据输入;agent CLI 安装态实时探测);systemd unit env fallback;完整服务生命周期命令(`status / start --bg / restart / stop / uninstall`) |
|
|
401
405
|
| v0.6.0 | 钉钉 Stream 模式适配器——WebSocket 双向桥、图片消息(`messageFiles/download` → claude-code 多模态 Read)、语音消息(钉钉服务端 ASR `recognition`,whisper.cpp 兜底) |
|
|
402
406
|
| v0.6.3 | 各平台原生位置消息的坐标系按来源处理(Telegram 改为 WGS 直通;H5 改为 WGS 直通解决微信 X5 的偏移;钉钉 link 中的百度地图 URL 走 BD-09→WGS) |
|
|
403
|
-
| **v1.0.0** | 品牌升级为 **Agim · 阿吉姆**。新主命令 `agim`,老命令 `
|
|
404
|
-
|
|
405
|
-
|
|
407
|
+
| **v1.0.0** | 品牌升级为 **Agim · 阿吉姆**。新主命令 `agim`,老命令 `im-hub-pro` 保留为废弃别名。配置目录 / 环境变量 / HTTP 头 / systemd 单元名都保留以兼容 0.x 部署。 |
|
|
408
|
+
| v1.1.2–1.1.3 | A2A L1(调用链可视化)+ L2(Agent 之间共享 artifact 池) |
|
|
409
|
+
| v1.1.4 | Web 仪表盘双语 + 专业名词 (?) 帮助弹窗 |
|
|
410
|
+
| v1.1.6–1.1.8 | IM 长消息 viewer + cloudflared 自动开隧道 |
|
|
411
|
+
| v1.1.10 | Web 控制台 token 鉴权(cookie + Bearer + loopback 旁路);重启消息顺序修复 |
|
|
412
|
+
| v1.1.11 | Viewer 暗黑模式可读性修复 |
|
|
413
|
+
| **v1.2.0** | **长期记忆**(SQLite + FTS5 + 记忆画像 + 4 个 MCP 工具 + 自动蒸馏 + Web 管理 Tab);**向量召回**(本地 BGE / OpenAI 兼容、RRF 融合);**成本与健康仪表盘**;**Agent 主动推送**(`mcp__imhub__push_message`);带原生内联按钮的崩溃恢复卡片 |
|
|
414
|
+
| v1.2.1 | 向量后端重启后自动加载;Memory + Cost tab 中文 i18n |
|
|
415
|
+
| v1.2.2 | `agim admin invite` 通过 IM 邀请新管理员;向量后端 boot 时主动 warm;consolidate 改异步(jobId + 轮询) |
|
|
416
|
+
|
|
417
|
+
### 接下来
|
|
406
418
|
|
|
407
419
|
- [ ] Slack 适配器
|
|
408
|
-
- [ ]
|
|
420
|
+
- [ ] 钉钉卡片按钮版审批(Telegram + 飞书已完成)
|
|
409
421
|
- [ ] 多实例事件总线(Redis Streams / NATS)
|
|
410
422
|
- [ ] 工作区成员选择 UI
|
|
423
|
+
- [ ] 记忆 consolidation:boot 后 5 分钟先跑一次(当前要等满 24h)
|
|
411
424
|
|
|
412
425
|
## 社区
|
|
413
426
|
|
|
@@ -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,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,
|
|
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,cAAc,CAAA;CAAE,GACxB;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,CA6BjF"}
|
|
@@ -32,6 +32,7 @@ export async function runEntryMenu() {
|
|
|
32
32
|
{ value: 'restart', name: t(lang, 'menu.restart') },
|
|
33
33
|
{ value: 'stop', name: t(lang, 'menu.stop') },
|
|
34
34
|
{ value: 'token', name: t(lang, 'menu.token'), separatorBefore: true },
|
|
35
|
+
{ value: 'invite_admin', name: t(lang, 'menu.invite_admin') },
|
|
35
36
|
{ value: 'uninstall', name: t(lang, 'menu.uninstall') },
|
|
36
37
|
{ value: 'quit', name: t(lang, 'menu.quit'), separatorBefore: true },
|
|
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;AAaxC;;;;;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,EAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,EAAS,eAAe,EAAE,IAAI,EAAE;gBACpF,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE;gBAC7D,EAAE,KAAK,EAAE,WAAW,EAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE;gBAC1D,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
|
@@ -13,8 +13,13 @@ declare const en: {
|
|
|
13
13
|
readonly 'menu.restart': "Restart the service";
|
|
14
14
|
readonly 'menu.stop': "Stop the service";
|
|
15
15
|
readonly 'menu.token': "Manage web access tokens";
|
|
16
|
+
readonly 'menu.invite_admin': "Invite a new admin (one-time IM token)";
|
|
16
17
|
readonly 'menu.uninstall': "Uninstall Agim (keeps workspaces)";
|
|
17
18
|
readonly 'menu.quit': "Quit";
|
|
19
|
+
readonly 'invite_admin.title': "👥 Admin invite";
|
|
20
|
+
readonly 'invite_admin.generated': "✓ Invite token generated:";
|
|
21
|
+
readonly 'invite_admin.howto': "Forward this command to the invitee — they paste it into IM (any messenger this bot is on):";
|
|
22
|
+
readonly 'invite_admin.note': "⚠️ Single-use. Generating another invite invalidates the previous one. Token also at:";
|
|
18
23
|
readonly 'token.title': "Web access tokens";
|
|
19
24
|
readonly 'token.subtitle': "Tokens grant access to the web console at http://<host>:3000/.";
|
|
20
25
|
readonly 'token.choice.create': "Generate a new token";
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgQE,CAAA;AAEV,MAAM,MAAM,GAAG,GAAG,MAAM,OAAO,EAAE,CAAA;AAuQjC,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
|
@@ -27,8 +27,13 @@ const en = {
|
|
|
27
27
|
'menu.restart': 'Restart the service',
|
|
28
28
|
'menu.stop': 'Stop the service',
|
|
29
29
|
'menu.token': 'Manage web access tokens',
|
|
30
|
+
'menu.invite_admin': 'Invite a new admin (one-time IM token)',
|
|
30
31
|
'menu.uninstall': 'Uninstall Agim (keeps workspaces)',
|
|
31
32
|
'menu.quit': 'Quit',
|
|
33
|
+
'invite_admin.title': '👥 Admin invite',
|
|
34
|
+
'invite_admin.generated': '✓ Invite token generated:',
|
|
35
|
+
'invite_admin.howto': 'Forward this command to the invitee — they paste it into IM (any messenger this bot is on):',
|
|
36
|
+
'invite_admin.note': '⚠️ Single-use. Generating another invite invalidates the previous one. Token also at:',
|
|
32
37
|
// ─── token management submenu ────────────────────────────────────────
|
|
33
38
|
'token.title': 'Web access tokens',
|
|
34
39
|
'token.subtitle': 'Tokens grant access to the web console at http://<host>:3000/.',
|
|
@@ -260,8 +265,13 @@ const zh = {
|
|
|
260
265
|
'menu.restart': '重启服务',
|
|
261
266
|
'menu.stop': '停止服务',
|
|
262
267
|
'menu.token': '管理 Web 访问 Token',
|
|
268
|
+
'menu.invite_admin': '邀请新管理员(生成一次性 IM token)',
|
|
263
269
|
'menu.uninstall': '卸载阿吉姆(保留 workspaces)',
|
|
264
270
|
'menu.quit': '退出',
|
|
271
|
+
'invite_admin.title': '👥 邀请新管理员',
|
|
272
|
+
'invite_admin.generated': '✓ 已生成邀请 token:',
|
|
273
|
+
'invite_admin.howto': '把下面这条命令发给受邀者,让他粘到 IM 里(本 bot 接入的任何渠道):',
|
|
274
|
+
'invite_admin.note': '⚠️ 单次有效。再生成新的会作废上一个未消费的。Token 同时写入:',
|
|
265
275
|
// ─── token management submenu ────────────────────────────────────
|
|
266
276
|
'token.title': 'Web 访问 Token',
|
|
267
277
|
'token.subtitle': 'Token 用于登录 Web 控制台(http://<主机>:3000/)。',
|
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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"}
|
package/dist/cli.js
CHANGED
|
@@ -673,6 +673,19 @@ program
|
|
|
673
673
|
console.log(` Boot ready in ${(info.msSinceStart / 1000).toFixed(1)}s`);
|
|
674
674
|
}
|
|
675
675
|
catch { /* ignore */ }
|
|
676
|
+
// v1.2.2 — eager-warm the vector backend so post-restart status is
|
|
677
|
+
// accurate without waiting for the first inbound message / Memory tab
|
|
678
|
+
// visit. The constructor's autowarm only fires when getActiveBackend()
|
|
679
|
+
// is first called, so we trigger it here. Fire-and-forget; failures
|
|
680
|
+
// are logged inside the backend.
|
|
681
|
+
try {
|
|
682
|
+
const { isMemoryEnabled } = await import('./core/persona.js');
|
|
683
|
+
if (isMemoryEnabled()) {
|
|
684
|
+
const { getActiveBackend } = await import('./core/memory-vector.js');
|
|
685
|
+
getActiveBackend(); // constructor → autowarm
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
catch { /* ignore */ }
|
|
676
689
|
// If we came back from a `/restart`, the previous instance dropped a
|
|
677
690
|
// ~/.agim/restart-pending.json with the initiator's IM thread. Now
|
|
678
691
|
// that messengers + agents are all up, push the completion message
|
|
@@ -1598,6 +1611,94 @@ tokenCmd
|
|
|
1598
1611
|
process.exit(1);
|
|
1599
1612
|
}
|
|
1600
1613
|
});
|
|
1614
|
+
// ─── admin allowlist management (v1.2.2+) ───────────────────────────
|
|
1615
|
+
//
|
|
1616
|
+
// Non-interactive companion to the entry menu's "邀请新管理员" option.
|
|
1617
|
+
// Useful from ansible / setup scripts.
|
|
1618
|
+
const adminCmd = program.command('admin').description('Manage the admin allowlist');
|
|
1619
|
+
adminCmd
|
|
1620
|
+
.command('invite')
|
|
1621
|
+
.description('Generate a one-time IM invite token. The invitee runs `/setup admin <token>` to onboard.')
|
|
1622
|
+
.action(async () => {
|
|
1623
|
+
const { generateAdminInviteToken } = await import('./core/admin-bootstrap.js');
|
|
1624
|
+
const { token, file } = generateAdminInviteToken();
|
|
1625
|
+
console.log('');
|
|
1626
|
+
console.log('✓ Admin invite token generated.');
|
|
1627
|
+
console.log(` token : ${token}`);
|
|
1628
|
+
console.log(` file : ${file}`);
|
|
1629
|
+
console.log('');
|
|
1630
|
+
console.log('Forward this to the invitee:');
|
|
1631
|
+
console.log(` /setup admin ${token}`);
|
|
1632
|
+
console.log('');
|
|
1633
|
+
console.log('⚠️ Single-use. Generating another invite invalidates the previous one.');
|
|
1634
|
+
});
|
|
1635
|
+
adminCmd
|
|
1636
|
+
.command('list')
|
|
1637
|
+
.description('List current admins (env + runtime-added)')
|
|
1638
|
+
.action(async () => {
|
|
1639
|
+
// Load ~/.agim/env so IMHUB_ADMIN_USERS is visible when this CLI runs
|
|
1640
|
+
// outside the daemon's process env (e.g. fresh shell invoking the CLI
|
|
1641
|
+
// directly). The daemon already loads this at start.
|
|
1642
|
+
try {
|
|
1643
|
+
const { readEnvFile } = await import('./cli-ui/env-file.js');
|
|
1644
|
+
const f = readEnvFile();
|
|
1645
|
+
if (f.IMHUB_ADMIN_USERS && !process.env.IMHUB_ADMIN_USERS) {
|
|
1646
|
+
process.env.IMHUB_ADMIN_USERS = f.IMHUB_ADMIN_USERS;
|
|
1647
|
+
}
|
|
1648
|
+
}
|
|
1649
|
+
catch { /* ignore */ }
|
|
1650
|
+
const { listAdmins } = await import('./core/admin-allowlist.js');
|
|
1651
|
+
const rows = listAdmins();
|
|
1652
|
+
if (rows.length === 0) {
|
|
1653
|
+
console.log('(no admins configured — run `agim admin invite` and have the invitee onboard via /setup admin <token>)');
|
|
1654
|
+
return;
|
|
1655
|
+
}
|
|
1656
|
+
console.log(`Admins (${rows.length}):`);
|
|
1657
|
+
for (const r of rows)
|
|
1658
|
+
console.log(` ${r.platform}:${r.userId}`);
|
|
1659
|
+
});
|
|
1660
|
+
// ─── `agim web` — print the web console URL ─────────────────────────
|
|
1661
|
+
//
|
|
1662
|
+
// Reads the same Viewer config the IM `/web` command uses, but resolves
|
|
1663
|
+
// from env directly (no running daemon needed for the env / publicBaseUrl
|
|
1664
|
+
// branch). Cloudflared URLs live in the daemon's memory — when the
|
|
1665
|
+
// operator uses tunnel-mode but isn't running the daemon, we surface a
|
|
1666
|
+
// hint to use IM `/web` instead.
|
|
1667
|
+
program
|
|
1668
|
+
.command('web')
|
|
1669
|
+
.description('Print the URL of this host\'s web console')
|
|
1670
|
+
.action(async () => {
|
|
1671
|
+
// Pull ~/.agim/env into process.env so IMHUB_VIEWER_* configured via
|
|
1672
|
+
// the entry menu is visible when this CLI runs in a fresh shell.
|
|
1673
|
+
try {
|
|
1674
|
+
const { readEnvFile } = await import('./cli-ui/env-file.js');
|
|
1675
|
+
const f = readEnvFile();
|
|
1676
|
+
for (const k of ['IMHUB_VIEWER_PUBLIC_BASE_URL', 'IMHUB_VIEWER_TUNNEL_MODE', 'IMHUB_VIEWER_ENABLED']) {
|
|
1677
|
+
if (f[k] && !process.env[k])
|
|
1678
|
+
process.env[k] = f[k];
|
|
1679
|
+
}
|
|
1680
|
+
}
|
|
1681
|
+
catch { /* ignore */ }
|
|
1682
|
+
const { getEffectivePublicBaseUrl, getViewerConfig } = await import('./core/viewer-config.js');
|
|
1683
|
+
const cfg = getViewerConfig();
|
|
1684
|
+
const url = getEffectivePublicBaseUrl();
|
|
1685
|
+
if (url) {
|
|
1686
|
+
const source = cfg.publicBaseUrl ? 'IMHUB_VIEWER_PUBLIC_BASE_URL' : 'cloudflared tunnel';
|
|
1687
|
+
console.log(url);
|
|
1688
|
+
console.log(`(来源: ${source})`);
|
|
1689
|
+
return;
|
|
1690
|
+
}
|
|
1691
|
+
if (cfg.tunnelMode === 'quick') {
|
|
1692
|
+
console.log('Web 后台地址当前由 cloudflared 临时隧道提供,但本进程查不到隧道 URL。');
|
|
1693
|
+
console.log('请在 IM 内发送 /web 让运行中的 daemon 返回最新地址。');
|
|
1694
|
+
process.exit(2);
|
|
1695
|
+
}
|
|
1696
|
+
console.log('Web 后台地址未配置。');
|
|
1697
|
+
console.log('设置以下任一项后重启服务:');
|
|
1698
|
+
console.log(' IMHUB_VIEWER_PUBLIC_BASE_URL=https://your-domain (反代 / 自定义域名)');
|
|
1699
|
+
console.log(' IMHUB_VIEWER_TUNNEL_MODE=quick (cloudflared 临时隧道)');
|
|
1700
|
+
process.exit(2);
|
|
1701
|
+
});
|
|
1601
1702
|
// ─── bare `agim` → entry menu (v0.5.0+) ─────────────────────────────
|
|
1602
1703
|
// If the user invoked us with no args (just `agim`), drop them at
|
|
1603
1704
|
// the language picker + maintenance menu instead of dumping --help text.
|
|
@@ -1655,6 +1756,22 @@ async function maybeRunEntryMenu() {
|
|
|
1655
1756
|
await runTokenMenu(lang);
|
|
1656
1757
|
return true;
|
|
1657
1758
|
}
|
|
1759
|
+
case 'invite_admin': {
|
|
1760
|
+
const { generateAdminInviteToken } = await import('./core/admin-bootstrap.js');
|
|
1761
|
+
const { t } = await import('./cli-ui/i18n.js');
|
|
1762
|
+
const { token, file } = generateAdminInviteToken();
|
|
1763
|
+
console.log();
|
|
1764
|
+
console.log(t(lang, 'invite_admin.title'));
|
|
1765
|
+
console.log();
|
|
1766
|
+
console.log(` ${t(lang, 'invite_admin.generated')} ${token}`);
|
|
1767
|
+
console.log();
|
|
1768
|
+
console.log(` ${t(lang, 'invite_admin.howto')}`);
|
|
1769
|
+
console.log(` /setup admin ${token}`);
|
|
1770
|
+
console.log();
|
|
1771
|
+
console.log(` ${t(lang, 'invite_admin.note')} ${file}`);
|
|
1772
|
+
console.log();
|
|
1773
|
+
return true;
|
|
1774
|
+
}
|
|
1658
1775
|
case 'uninstall':
|
|
1659
1776
|
await cmdUninstall();
|
|
1660
1777
|
return true;
|