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.
@@ -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;AAMpE;;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;IAcxD,cAAc,IAAI,MAAM,EAAE;IAI1B,UAAU,IAAI,MAAM,EAAE;IAItB;;;;;;;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"}
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"}
@@ -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
- return agent;
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
- return this.agents.get(realName);
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":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAwQA,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"}
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"}
@@ -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