agim-cli 1.2.102 → 1.2.103
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 +29 -0
- package/dist/cli.js +16 -3
- package/dist/cli.js.map +1 -1
- package/dist/core/acp-server.d.ts.map +1 -1
- package/dist/core/acp-server.js +2 -1
- package/dist/core/acp-server.js.map +1 -1
- package/dist/core/live-config.d.ts +19 -0
- package/dist/core/live-config.d.ts.map +1 -0
- package/dist/core/live-config.js +64 -0
- package/dist/core/live-config.js.map +1 -0
- package/dist/core/registry.d.ts +5 -0
- package/dist/core/registry.d.ts.map +1 -1
- package/dist/core/registry.js +23 -3
- package/dist/core/registry.js.map +1 -1
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +17 -6
- package/dist/web/server.js.map +1 -1
- package/package.json +1 -1
package/dist/core/registry.d.ts
CHANGED
|
@@ -14,6 +14,11 @@ declare class PluginRegistry {
|
|
|
14
14
|
findAgent(nameOrAlias: string): AgentAdapter | undefined;
|
|
15
15
|
listMessengers(): string[];
|
|
16
16
|
listAgents(): string[];
|
|
17
|
+
/** Visible-for-test escape hatch: list every registered agent regardless
|
|
18
|
+
* of the enabled-list filter. Used by the SPA's "agent status" probe
|
|
19
|
+
* that needs to render rows for ALL installed agents (the SPA itself
|
|
20
|
+
* decides which are enabled visually). */
|
|
21
|
+
listAllAgents(): string[];
|
|
17
22
|
/**
|
|
18
23
|
* Load ACP (remote) agents from config. Uses Promise.allSettled
|
|
19
24
|
* for parallel loading so one slow endpoint doesn't block startup.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAOpE;;GAEG;AACH,cAAM,cAAc;IAClB,OAAO,CAAC,UAAU,CAAsC;IACxD,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,YAAY,CAA4B;IAEhD,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAuBlD,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAe1C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIxD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIhD,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAsBxD,cAAc,IAAI,MAAM,EAAE;IAI1B,UAAU,IAAI,MAAM,EAAE;IAQtB;;;+CAG2C;IAC3C,aAAa,IAAI,MAAM,EAAE;IAIzB;;;;;;;OAOG;IACG,aAAa,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkChE;;;;;;;;OAQG;IACG,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB5D,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;CA+D1C;AAGD,eAAO,MAAM,QAAQ,gBAAuB,CAAA;AAe5C;;4BAE4B;AAC5B,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAU3E;AAED;;6DAE6D;AAC7D,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAI/D;AAED,qEAAqE;AACrE,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C"}
|
package/dist/core/registry.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Plugin registry for messengers and agents
|
|
2
2
|
import { logger as rootLogger } from './logger.js';
|
|
3
3
|
import { isGlobalImEnabled, isRemoteAgentEnabled } from './feature-flags.js';
|
|
4
|
+
import { isAgentEnabled } from './live-config.js';
|
|
4
5
|
const log = rootLogger.child({ component: 'registry' });
|
|
5
6
|
/**
|
|
6
7
|
* Global registry for all adapters
|
|
@@ -53,12 +54,20 @@ class PluginRegistry {
|
|
|
53
54
|
findAgent(nameOrAlias) {
|
|
54
55
|
// Try exact name first
|
|
55
56
|
const agent = this.agents.get(nameOrAlias);
|
|
56
|
-
if (agent)
|
|
57
|
-
|
|
57
|
+
if (agent) {
|
|
58
|
+
// v1.2.103 — honour the SPA's enabled-agents toggle. An agent that
|
|
59
|
+
// was registered at boot but later switched off via PUT /api/config
|
|
60
|
+
// should stop being routable on the very next request. Empty / unset
|
|
61
|
+
// enabled-list is back-compat "allow all".
|
|
62
|
+
return isAgentEnabled(agent.name) ? agent : undefined;
|
|
63
|
+
}
|
|
58
64
|
// Try alias
|
|
59
65
|
const realName = this.agentAliases.get(nameOrAlias);
|
|
60
66
|
if (realName) {
|
|
61
|
-
|
|
67
|
+
const resolved = this.agents.get(realName);
|
|
68
|
+
if (resolved && !isAgentEnabled(resolved.name))
|
|
69
|
+
return undefined;
|
|
70
|
+
return resolved;
|
|
62
71
|
}
|
|
63
72
|
return undefined;
|
|
64
73
|
}
|
|
@@ -66,6 +75,17 @@ class PluginRegistry {
|
|
|
66
75
|
return Array.from(this.messengers.keys());
|
|
67
76
|
}
|
|
68
77
|
listAgents() {
|
|
78
|
+
// v1.2.103 — same enabled-list filter as findAgent. Callers include
|
|
79
|
+
// the intent classifier, ACP advertisement, /agents handler, and the
|
|
80
|
+
// helper-agent selector — all should reflect the operator's current
|
|
81
|
+
// enable/disable choices without a service restart.
|
|
82
|
+
return Array.from(this.agents.keys()).filter((n) => isAgentEnabled(n));
|
|
83
|
+
}
|
|
84
|
+
/** Visible-for-test escape hatch: list every registered agent regardless
|
|
85
|
+
* of the enabled-list filter. Used by the SPA's "agent status" probe
|
|
86
|
+
* that needs to render rows for ALL installed agents (the SPA itself
|
|
87
|
+
* decides which are enabled visually). */
|
|
88
|
+
listAllAgents() {
|
|
69
89
|
return Array.from(this.agents.keys());
|
|
70
90
|
}
|
|
71
91
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAI5C,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/web/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAyQA,wBAAgB,iBAAiB,IAAI,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAOrE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;CACrB,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAspC/C"}
|
package/dist/web/server.js
CHANGED
|
@@ -9,6 +9,7 @@ import { WebSocketServer } from 'ws';
|
|
|
9
9
|
import { parseMessage, routeMessage } from '../core/router.js';
|
|
10
10
|
import { sessionManager } from '../core/session.js';
|
|
11
11
|
import { registry } from '../core/registry.js';
|
|
12
|
+
import { getDefaultAgent } from '../core/live-config.js';
|
|
12
13
|
import { sink, resolveMessenger } from '../core/message-sink.js';
|
|
13
14
|
import { generateTraceId, createLogger, logger as rootLogger, sanitizeUserText } from '../core/logger.js';
|
|
14
15
|
import { validateConfig } from '../core/config-schema.js';
|
|
@@ -924,7 +925,7 @@ export async function startWebServer(options) {
|
|
|
924
925
|
if (url.pathname === '/api/jobs/batch-run' && req.method === 'POST') {
|
|
925
926
|
if (!requireAdmin(req, res))
|
|
926
927
|
return;
|
|
927
|
-
return handleBatchJob(req, res, 'run', options.defaultAgent);
|
|
928
|
+
return handleBatchJob(req, res, 'run', getDefaultAgent(options.defaultAgent));
|
|
928
929
|
}
|
|
929
930
|
// PR-C: SSE event stream — audit / approval / job / metrics events
|
|
930
931
|
// pushed real-time so the dashboard stops polling. Open access; same
|
|
@@ -981,7 +982,7 @@ export async function startWebServer(options) {
|
|
|
981
982
|
if (url.pathname === '/api/invoke' && req.method === 'POST') {
|
|
982
983
|
if (!requireAdmin(req, res))
|
|
983
984
|
return;
|
|
984
|
-
return handleInvoke(req, res, options.defaultAgent);
|
|
985
|
+
return handleInvoke(req, res, getDefaultAgent(options.defaultAgent));
|
|
985
986
|
}
|
|
986
987
|
// WeChat QR login — drives the "扫码登录" button in the web settings
|
|
987
988
|
// page. /qr-start returns the QR image URL + the token used to poll;
|
|
@@ -1222,7 +1223,7 @@ export async function startWebServer(options) {
|
|
|
1222
1223
|
// same-tokenId tabs (which is fine), but the stronger id closes the
|
|
1223
1224
|
// pre-rekey race window.
|
|
1224
1225
|
const clientId = `web-${randomBytes(12).toString('base64url')}`;
|
|
1225
|
-
const client = { ws, id: clientId, agent: options.defaultAgent };
|
|
1226
|
+
const client = { ws, id: clientId, agent: getDefaultAgent(options.defaultAgent) };
|
|
1226
1227
|
clients.set(clientId, client);
|
|
1227
1228
|
// First-claim ownership: this connection's tokenId owns this
|
|
1228
1229
|
// brand-new threadId until disconnect.
|
|
@@ -1232,11 +1233,11 @@ export async function startWebServer(options) {
|
|
|
1232
1233
|
sendToClient(ws, {
|
|
1233
1234
|
type: 'init',
|
|
1234
1235
|
agents: registry.listAgents(),
|
|
1235
|
-
defaultAgent: options.defaultAgent,
|
|
1236
|
+
defaultAgent: getDefaultAgent(options.defaultAgent),
|
|
1236
1237
|
clientId,
|
|
1237
1238
|
});
|
|
1238
1239
|
// Load existing session history if available
|
|
1239
|
-
sendSessionHistory(ws, clientId, options.defaultAgent);
|
|
1240
|
+
sendSessionHistory(ws, clientId, getDefaultAgent(options.defaultAgent));
|
|
1240
1241
|
const enqueueInbound = createSerialQueue();
|
|
1241
1242
|
ws.on('message', (data) => {
|
|
1242
1243
|
enqueueInbound(async () => {
|
|
@@ -1298,7 +1299,7 @@ export async function startWebServer(options) {
|
|
|
1298
1299
|
// with its persisted threadId. Otherwise the map stays keyed
|
|
1299
1300
|
// by the WS-assigned id, and the web messenger's outbound
|
|
1300
1301
|
// approval-card lookup misses the live client.
|
|
1301
|
-
await handleClientMessage(client, msg, options.defaultAgent, (oldId, newId) => {
|
|
1302
|
+
await handleClientMessage(client, msg, getDefaultAgent(options.defaultAgent), (oldId, newId) => {
|
|
1302
1303
|
// Only reassign if we actually owned `oldId` — defensive
|
|
1303
1304
|
// against the (impossible-but-cheap-to-guard) case of two
|
|
1304
1305
|
// clients colliding on the rekey path.
|
|
@@ -1690,6 +1691,16 @@ async function handlePutConfig(req, res) {
|
|
|
1690
1691
|
return;
|
|
1691
1692
|
}
|
|
1692
1693
|
await saveConfig(result.config);
|
|
1694
|
+
// v1.2.103 — propagate the new config to the live-config singleton.
|
|
1695
|
+
// Without this, the SPA's "enabled agents" / "default agent" toggles
|
|
1696
|
+
// were persisted to disk but the running process kept its boot-time
|
|
1697
|
+
// snapshot until a service restart. registry filters + routeCtx now
|
|
1698
|
+
// pick up the change on the very next request.
|
|
1699
|
+
try {
|
|
1700
|
+
const { setLiveConfig } = await import('../core/live-config.js');
|
|
1701
|
+
setLiveConfig(result.config);
|
|
1702
|
+
}
|
|
1703
|
+
catch { /* best-effort — old configs without live-config still work */ }
|
|
1693
1704
|
// R12 ⑤ — persistent audit. `details.keys` is the list of top-level
|
|
1694
1705
|
// config keys touched (e.g. ['feishu', 'discord']) — never the raw
|
|
1695
1706
|
// values, which would leak tokens / app secrets through the audit
|