@geminilight/mindos 1.1.49 → 1.1.51

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.
Files changed (132) hide show
  1. package/dist/agent/prompt/agent-prompt.txt +26 -4
  2. package/dist/agent/runtime/adapter-contracts.d.ts +10 -0
  3. package/dist/agent/runtime/adapter-contracts.d.ts.map +1 -0
  4. package/dist/agent/runtime/adapter-contracts.js +144 -0
  5. package/dist/agent/runtime/adapter-contracts.js.map +1 -0
  6. package/dist/agent/runtime/compatibility.d.ts +12 -0
  7. package/dist/agent/runtime/compatibility.d.ts.map +1 -0
  8. package/dist/agent/runtime/compatibility.js +401 -0
  9. package/dist/agent/runtime/compatibility.js.map +1 -0
  10. package/dist/agent/runtime/descriptors.d.ts.map +1 -1
  11. package/dist/agent/runtime/descriptors.js +41 -3
  12. package/dist/agent/runtime/descriptors.js.map +1 -1
  13. package/dist/agent/runtime/detection.d.ts.map +1 -1
  14. package/dist/agent/runtime/detection.js +116 -0
  15. package/dist/agent/runtime/detection.js.map +1 -1
  16. package/dist/agent/runtime/index.d.ts +2 -0
  17. package/dist/agent/runtime/index.d.ts.map +1 -1
  18. package/dist/agent/runtime/index.js +2 -0
  19. package/dist/agent/runtime/index.js.map +1 -1
  20. package/dist/agent/runtime/lifecycle.d.ts +6 -0
  21. package/dist/agent/runtime/lifecycle.d.ts.map +1 -0
  22. package/dist/agent/runtime/lifecycle.js +311 -0
  23. package/dist/agent/runtime/lifecycle.js.map +1 -0
  24. package/dist/agent/runtime/registry.d.ts +139 -2
  25. package/dist/agent/runtime/registry.d.ts.map +1 -1
  26. package/dist/agent/runtime/registry.js.map +1 -1
  27. package/dist/agent/runtime/skill-runtime-matcher.d.ts +32 -0
  28. package/dist/agent/runtime/skill-runtime-matcher.d.ts.map +1 -0
  29. package/dist/agent/runtime/skill-runtime-matcher.js +380 -0
  30. package/dist/agent/runtime/skill-runtime-matcher.js.map +1 -0
  31. package/dist/agent/runtime/skill-runtime-requirements.d.ts +23 -0
  32. package/dist/agent/runtime/skill-runtime-requirements.d.ts.map +1 -0
  33. package/dist/agent/runtime/skill-runtime-requirements.js +15 -0
  34. package/dist/agent/runtime/skill-runtime-requirements.js.map +1 -0
  35. package/dist/agent/tool/capability-registry.js +2 -0
  36. package/dist/agent/tool/capability-registry.js.map +1 -1
  37. package/dist/agent/turn/index.d.ts +18 -2
  38. package/dist/agent/turn/index.d.ts.map +1 -1
  39. package/dist/agent/turn/index.js +52 -1
  40. package/dist/agent/turn/index.js.map +1 -1
  41. package/dist/protocols/acp/agent-descriptors.d.ts +49 -2
  42. package/dist/protocols/acp/agent-descriptors.d.ts.map +1 -1
  43. package/dist/protocols/acp/agent-descriptors.js +281 -19
  44. package/dist/protocols/acp/agent-descriptors.js.map +1 -1
  45. package/dist/protocols/acp/detect-local.d.ts +2 -1
  46. package/dist/protocols/acp/detect-local.d.ts.map +1 -1
  47. package/dist/protocols/acp/detect-local.js +150 -3
  48. package/dist/protocols/acp/detect-local.js.map +1 -1
  49. package/dist/protocols/acp/index.d.ts +4 -4
  50. package/dist/protocols/acp/index.d.ts.map +1 -1
  51. package/dist/protocols/acp/index.js +24 -24
  52. package/dist/protocols/acp/index.js.map +1 -1
  53. package/dist/protocols/acp/session.d.ts +4 -1
  54. package/dist/protocols/acp/session.d.ts.map +1 -1
  55. package/dist/protocols/acp/session.js +287 -11
  56. package/dist/protocols/acp/session.js.map +1 -1
  57. package/dist/protocols/acp/subprocess.d.ts +3 -1
  58. package/dist/protocols/acp/subprocess.d.ts.map +1 -1
  59. package/dist/protocols/acp/subprocess.js +67 -2
  60. package/dist/protocols/acp/subprocess.js.map +1 -1
  61. package/dist/protocols/acp/types.d.ts +104 -13
  62. package/dist/protocols/acp/types.d.ts.map +1 -1
  63. package/dist/protocols/acp/types.js.map +1 -1
  64. package/dist/server/contract.d.ts.map +1 -1
  65. package/dist/server/contract.js +8 -0
  66. package/dist/server/contract.js.map +1 -1
  67. package/dist/server/handlers/acp.d.ts +13 -9
  68. package/dist/server/handlers/acp.d.ts.map +1 -1
  69. package/dist/server/handlers/acp.js +34 -36
  70. package/dist/server/handlers/acp.js.map +1 -1
  71. package/dist/server/handlers/agent-runtimes.d.ts +1 -1
  72. package/dist/server/handlers/agent-runtimes.d.ts.map +1 -1
  73. package/dist/server/handlers/agent-runtimes.js.map +1 -1
  74. package/dist/server/handlers/agent-turn.d.ts +5 -0
  75. package/dist/server/handlers/agent-turn.d.ts.map +1 -1
  76. package/dist/server/handlers/agent-turn.js +47 -0
  77. package/dist/server/handlers/agent-turn.js.map +1 -1
  78. package/dist/server/handlers/mcp-runtime-projections.d.ts +49 -0
  79. package/dist/server/handlers/mcp-runtime-projections.d.ts.map +1 -0
  80. package/dist/server/handlers/mcp-runtime-projections.js +216 -0
  81. package/dist/server/handlers/mcp-runtime-projections.js.map +1 -0
  82. package/dist/server/handlers/runtime-adapter-projections.d.ts +90 -0
  83. package/dist/server/handlers/runtime-adapter-projections.d.ts.map +1 -0
  84. package/dist/server/handlers/runtime-adapter-projections.js +329 -0
  85. package/dist/server/handlers/runtime-adapter-projections.js.map +1 -0
  86. package/dist/server/handlers/runtime-artifact-projections.d.ts +57 -0
  87. package/dist/server/handlers/runtime-artifact-projections.d.ts.map +1 -0
  88. package/dist/server/handlers/runtime-artifact-projections.js +147 -0
  89. package/dist/server/handlers/runtime-artifact-projections.js.map +1 -0
  90. package/dist/server/handlers/runtime-automation-projections.d.ts +49 -0
  91. package/dist/server/handlers/runtime-automation-projections.d.ts.map +1 -0
  92. package/dist/server/handlers/runtime-automation-projections.js +114 -0
  93. package/dist/server/handlers/runtime-automation-projections.js.map +1 -0
  94. package/dist/server/handlers/runtime-permission-projections.d.ts +71 -0
  95. package/dist/server/handlers/runtime-permission-projections.d.ts.map +1 -0
  96. package/dist/server/handlers/runtime-permission-projections.js +223 -0
  97. package/dist/server/handlers/runtime-permission-projections.js.map +1 -0
  98. package/dist/server/handlers/runtime-readiness.d.ts +68 -0
  99. package/dist/server/handlers/runtime-readiness.d.ts.map +1 -0
  100. package/dist/server/handlers/runtime-readiness.js +481 -0
  101. package/dist/server/handlers/runtime-readiness.js.map +1 -0
  102. package/dist/server/handlers/runtime-session-projections.d.ts +81 -0
  103. package/dist/server/handlers/runtime-session-projections.d.ts.map +1 -0
  104. package/dist/server/handlers/runtime-session-projections.js +267 -0
  105. package/dist/server/handlers/runtime-session-projections.js.map +1 -0
  106. package/dist/server/handlers/skill-links.d.ts +1 -1
  107. package/dist/server/handlers/skill-links.d.ts.map +1 -1
  108. package/dist/server/handlers/skill-links.js +17 -2
  109. package/dist/server/handlers/skill-links.js.map +1 -1
  110. package/dist/server/handlers/skill-metadata.d.ts +12 -0
  111. package/dist/server/handlers/skill-metadata.d.ts.map +1 -0
  112. package/dist/server/handlers/skill-metadata.js +179 -0
  113. package/dist/server/handlers/skill-metadata.js.map +1 -0
  114. package/dist/server/handlers/skill-runtime-matches.d.ts +25 -0
  115. package/dist/server/handlers/skill-runtime-matches.d.ts.map +1 -0
  116. package/dist/server/handlers/skill-runtime-matches.js +75 -0
  117. package/dist/server/handlers/skill-runtime-matches.js.map +1 -0
  118. package/dist/server/handlers/skills.d.ts +2 -0
  119. package/dist/server/handlers/skills.d.ts.map +1 -1
  120. package/dist/server/handlers/skills.js +8 -24
  121. package/dist/server/handlers/skills.js.map +1 -1
  122. package/dist/server/http.d.ts.map +1 -1
  123. package/dist/server/http.js +95 -5
  124. package/dist/server/http.js.map +1 -1
  125. package/dist/server/index.d.ts +13 -2
  126. package/dist/server/index.d.ts.map +1 -1
  127. package/dist/server/index.js +12 -1
  128. package/dist/server/index.js.map +1 -1
  129. package/dist/server/route-ownership.d.ts.map +1 -1
  130. package/dist/server/route-ownership.js +8 -0
  131. package/dist/server/route-ownership.js.map +1 -1
  132. package/package.json +9 -9
@@ -167,16 +167,21 @@ export function getDescriptorDescription(agentId) {
167
167
  * Return the canonical list of agents for local detection.
168
168
  * Pure local data — no CDN fetch, no async, no network dependency.
169
169
  */
170
- export function getDetectableAgents() {
171
- return Object.entries(AGENT_DESCRIPTORS).map(([id, desc]) => ({
172
- id,
173
- name: desc.displayName ?? id,
174
- binary: desc.binary,
175
- detectCommands: desc.detectCommands,
176
- presenceDirs: desc.presenceDirs,
177
- installCmd: desc.installCmd,
178
- description: desc.description,
179
- }));
170
+ export function getDetectableAgents(overrides) {
171
+ return [
172
+ ...Object.entries(AGENT_DESCRIPTORS).map(([id, desc]) => ({
173
+ id,
174
+ name: desc.displayName ?? id,
175
+ binary: desc.binary,
176
+ detectCommands: desc.detectCommands,
177
+ presenceDirs: desc.presenceDirs,
178
+ installCmd: desc.installCmd,
179
+ description: desc.description,
180
+ adapterMetadata: desc.adapterMetadata,
181
+ source: 'descriptor',
182
+ })),
183
+ ...getConfiguredDetectableAgents(overrides),
184
+ ];
180
185
  }
181
186
  /**
182
187
  * Look up user override for an agent, checking canonical ID, alias → canonical,
@@ -198,21 +203,29 @@ export function findUserOverride(agentId, overrides) {
198
203
  }
199
204
  /** Parse and validate acpAgents config from raw settings JSON. */
200
205
  export function parseAcpAgentOverrides(raw) {
201
- if (!raw || typeof raw !== 'object' || Array.isArray(raw))
206
+ const entries = normalizeAcpAgentOverrideEntries(raw);
207
+ if (!entries)
202
208
  return undefined;
203
- const obj = raw;
204
209
  const result = {};
205
210
  let hasEntries = false;
206
- for (const [key, val] of Object.entries(obj)) {
207
- if (!val || typeof val !== 'object' || Array.isArray(val))
211
+ for (const [key, entry] of entries) {
212
+ if (!isSafeAgentId(key))
208
213
  continue;
209
- const entry = val;
210
214
  const override = {};
211
- if (typeof entry.command === 'string' && entry.command.trim()) {
212
- override.command = entry.command.trim();
215
+ const name = sanitizeOptionalString(entry.name, 80);
216
+ if (name)
217
+ override.name = name;
218
+ const description = sanitizeOptionalString(entry.description, 500);
219
+ if (description)
220
+ override.description = description;
221
+ const command = sanitizeOptionalString(entry.command ?? entry.cliCommand ?? entry.defaultCliPath, 500);
222
+ if (command) {
223
+ override.command = command;
213
224
  }
214
- if (Array.isArray(entry.args)) {
215
- override.args = entry.args.filter((a) => typeof a === 'string');
225
+ if (Array.isArray(entry.args) || Array.isArray(entry.acpArgs)) {
226
+ const args = sanitizeStringArray(entry.args ?? entry.acpArgs, 100, 500);
227
+ if (args)
228
+ override.args = args;
216
229
  }
217
230
  if (entry.env && typeof entry.env === 'object' && !Array.isArray(entry.env)) {
218
231
  const env = {};
@@ -226,6 +239,18 @@ export function parseAcpAgentOverrides(raw) {
226
239
  if (typeof entry.enabled === 'boolean') {
227
240
  override.enabled = entry.enabled;
228
241
  }
242
+ const detectCommands = sanitizeStringArray(entry.detectCommands ?? (entry.cliCommand ? [entry.cliCommand] : undefined), 16, 160);
243
+ if (detectCommands)
244
+ override.detectCommands = detectCommands;
245
+ const presenceDirs = sanitizeStringArray(entry.presenceDirs, 16, 500);
246
+ if (presenceDirs)
247
+ override.presenceDirs = presenceDirs;
248
+ const installCmd = sanitizeOptionalString(entry.installCmd, 500);
249
+ if (installCmd)
250
+ override.installCmd = installCmd;
251
+ const adapterMetadata = sanitizeAdapterMetadata(mergeAdapterMetadataInput(entry));
252
+ if (adapterMetadata)
253
+ override.adapterMetadata = adapterMetadata;
229
254
  if (Object.keys(override).length > 0) {
230
255
  result[key] = override;
231
256
  hasEntries = true;
@@ -233,10 +258,247 @@ export function parseAcpAgentOverrides(raw) {
233
258
  }
234
259
  return hasEntries ? result : undefined;
235
260
  }
261
+ /** Return user-configured ACP agents that are not built into MindOS. */
262
+ export function getConfiguredDetectableAgents(overrides) {
263
+ if (!overrides)
264
+ return [];
265
+ const agents = [];
266
+ for (const [agentId, override] of Object.entries(overrides)) {
267
+ const agent = overrideToDetectableAgent(agentId, override);
268
+ if (agent)
269
+ agents.push(agent);
270
+ }
271
+ return agents;
272
+ }
273
+ /** Convert a user-configured custom ACP agent into a registry entry for runtime launch. */
274
+ export function resolveConfiguredAcpAgentEntry(agentId, overrides) {
275
+ if (!isSafeAgentId(agentId))
276
+ return null;
277
+ const override = findUserOverride(agentId, overrides);
278
+ if (!isCustomAcpAgentOverride(agentId, override))
279
+ return null;
280
+ return {
281
+ id: agentId,
282
+ name: override.name ?? agentId,
283
+ description: override.description ?? '',
284
+ transport: 'stdio',
285
+ command: override.command,
286
+ args: override.args ?? [],
287
+ env: override.env,
288
+ };
289
+ }
236
290
  function isSafeEnvKey(key) {
237
291
  return /^[A-Za-z_][A-Za-z0-9_]*$/.test(key)
238
292
  && key !== '__proto__'
239
293
  && key !== 'constructor'
240
294
  && key !== 'prototype';
241
295
  }
296
+ function isSafeAgentId(agentId) {
297
+ return /^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(agentId)
298
+ && agentId !== '__proto__'
299
+ && agentId !== 'constructor'
300
+ && agentId !== 'prototype';
301
+ }
302
+ function sanitizeOptionalString(value, maxLength) {
303
+ if (typeof value !== 'string')
304
+ return undefined;
305
+ const trimmed = value.trim();
306
+ return trimmed ? trimmed.slice(0, maxLength) : undefined;
307
+ }
308
+ function isRecord(value) {
309
+ return !!value && typeof value === 'object' && !Array.isArray(value);
310
+ }
311
+ function normalizeAcpAgentOverrideEntries(raw) {
312
+ const contributedAdapters = extractContributedAcpAdapters(raw);
313
+ if (contributedAdapters) {
314
+ const entries = contributedAdapters
315
+ .map((adapter) => {
316
+ const id = sanitizeOptionalString(adapter.id, 120);
317
+ return id ? [id, adapter] : null;
318
+ })
319
+ .filter((entry) => entry !== null);
320
+ return entries.length > 0 ? entries : undefined;
321
+ }
322
+ if (!isRecord(raw))
323
+ return undefined;
324
+ return Object.entries(raw)
325
+ .filter((entry) => isRecord(entry[1]));
326
+ }
327
+ function extractContributedAcpAdapters(raw) {
328
+ if (Array.isArray(raw)) {
329
+ const entries = raw.filter(isRecord);
330
+ return entries.length > 0 ? entries : undefined;
331
+ }
332
+ if (!isRecord(raw))
333
+ return undefined;
334
+ const contributes = isRecord(raw.contributes) ? raw.contributes : undefined;
335
+ const candidates = Array.isArray(raw.acpAdapters)
336
+ ? raw.acpAdapters
337
+ : Array.isArray(contributes?.acpAdapters)
338
+ ? contributes.acpAdapters
339
+ : undefined;
340
+ if (!candidates)
341
+ return undefined;
342
+ const entries = candidates.filter(isRecord);
343
+ return entries.length > 0 ? entries : undefined;
344
+ }
345
+ function mergeAdapterMetadataInput(entry) {
346
+ const nested = isRecord(entry.adapterMetadata) ? entry.adapterMetadata : {};
347
+ return {
348
+ ...nested,
349
+ connectionType: nested.connectionType ?? entry.connectionType,
350
+ authRequired: nested.authRequired ?? entry.authRequired,
351
+ supportsStreaming: nested.supportsStreaming ?? entry.supportsStreaming,
352
+ models: nested.models ?? entry.models,
353
+ promptCapabilities: nested.promptCapabilities ?? entry.promptCapabilities,
354
+ mcpCapabilities: nested.mcpCapabilities ?? entry.mcpCapabilities,
355
+ sessionCapabilities: nested.sessionCapabilities ?? entry.sessionCapabilities,
356
+ healthCheck: nested.healthCheck ?? entry.healthCheck,
357
+ commands: nested.commands ?? entry.commands,
358
+ };
359
+ }
360
+ function sanitizeStringArray(value, maxItems, maxLength) {
361
+ if (!Array.isArray(value))
362
+ return undefined;
363
+ const result = Array.from(new Set(value
364
+ .filter((entry) => typeof entry === 'string')
365
+ .map((entry) => entry.trim())
366
+ .filter(Boolean)
367
+ .map((entry) => entry.slice(0, maxLength))))
368
+ .slice(0, maxItems);
369
+ return result.length > 0 ? result : undefined;
370
+ }
371
+ function sanitizeBoolean(value) {
372
+ return typeof value === 'boolean' ? value : undefined;
373
+ }
374
+ function sanitizeConnectionType(value) {
375
+ return value === 'stdio' || value === 'cli' || value === 'http' || value === 'sse' ? value : undefined;
376
+ }
377
+ function sanitizeCapabilityFlags(value, keys) {
378
+ if (!isRecord(value))
379
+ return undefined;
380
+ const result = {};
381
+ for (const key of keys) {
382
+ if (typeof value[key] === 'boolean')
383
+ result[key] = value[key];
384
+ }
385
+ return Object.keys(result).length > 0 ? result : undefined;
386
+ }
387
+ function sanitizeModels(value) {
388
+ if (!Array.isArray(value))
389
+ return undefined;
390
+ const result = value
391
+ .map((model) => {
392
+ if (typeof model === 'string') {
393
+ const id = sanitizeOptionalString(model, 120);
394
+ return id ? { id, label: id } : null;
395
+ }
396
+ if (!isRecord(model))
397
+ return null;
398
+ const id = sanitizeOptionalString(model.id ?? model.value, 120);
399
+ if (!id)
400
+ return null;
401
+ const label = sanitizeOptionalString(model.label ?? model.name, 120);
402
+ const description = sanitizeOptionalString(model.description, 300);
403
+ return {
404
+ id,
405
+ ...(label ? { label } : {}),
406
+ ...(description ? { description } : {}),
407
+ };
408
+ })
409
+ .filter((model) => model !== null)
410
+ .slice(0, 100);
411
+ return result.length > 0 ? result : undefined;
412
+ }
413
+ function isCustomAcpAgentOverride(agentId, override) {
414
+ if (!override || override.enabled === false || !override.command)
415
+ return false;
416
+ return !AGENT_DESCRIPTORS[resolveAlias(agentId)];
417
+ }
418
+ function overrideToDetectableAgent(agentId, override) {
419
+ if (!isSafeAgentId(agentId))
420
+ return null;
421
+ if (!isCustomAcpAgentOverride(agentId, override))
422
+ return null;
423
+ const command = override.command.trim();
424
+ const detectCommands = override.detectCommands ?? [command];
425
+ return {
426
+ id: agentId,
427
+ name: override.name ?? agentId,
428
+ binary: detectCommands[0] ?? command,
429
+ detectCommands,
430
+ presenceDirs: override.presenceDirs,
431
+ installCmd: override.installCmd,
432
+ description: override.description,
433
+ adapterMetadata: override.adapterMetadata,
434
+ source: 'user-config',
435
+ };
436
+ }
437
+ function sanitizePositiveInteger(value, max) {
438
+ if (typeof value !== 'number' || !Number.isFinite(value))
439
+ return undefined;
440
+ const normalized = Math.floor(value);
441
+ if (normalized <= 0)
442
+ return undefined;
443
+ return Math.min(normalized, max);
444
+ }
445
+ function sanitizeAdapterMetadata(value) {
446
+ if (!isRecord(value))
447
+ return undefined;
448
+ const entry = value;
449
+ const metadata = {};
450
+ const connectionType = sanitizeConnectionType(entry.connectionType);
451
+ if (connectionType)
452
+ metadata.connectionType = connectionType;
453
+ const authRequired = sanitizeBoolean(entry.authRequired);
454
+ if (authRequired !== undefined)
455
+ metadata.authRequired = authRequired;
456
+ const supportsStreaming = sanitizeBoolean(entry.supportsStreaming);
457
+ if (supportsStreaming !== undefined)
458
+ metadata.supportsStreaming = supportsStreaming;
459
+ const models = sanitizeModels(entry.models);
460
+ if (models)
461
+ metadata.models = models;
462
+ const promptCapabilities = sanitizeCapabilityFlags(entry.promptCapabilities, ['image', 'audio', 'embeddedContext']);
463
+ if (promptCapabilities)
464
+ metadata.promptCapabilities = promptCapabilities;
465
+ const mcpCapabilities = sanitizeCapabilityFlags(entry.mcpCapabilities, ['stdio', 'http', 'sse']);
466
+ if (mcpCapabilities)
467
+ metadata.mcpCapabilities = mcpCapabilities;
468
+ const sessionCapabilities = sanitizeCapabilityFlags(entry.sessionCapabilities, ['loadSession', 'list', 'resume', 'fork', 'close']);
469
+ if (sessionCapabilities)
470
+ metadata.sessionCapabilities = sessionCapabilities;
471
+ if (entry.healthCheck && typeof entry.healthCheck === 'object' && !Array.isArray(entry.healthCheck)) {
472
+ const health = entry.healthCheck;
473
+ const command = sanitizeOptionalString(health.command ?? health.versionCommand, 240);
474
+ const summary = sanitizeOptionalString(health.summary, 300);
475
+ const timeoutMs = sanitizePositiveInteger(health.timeoutMs ?? health.timeout, 60_000);
476
+ if (command || summary || timeoutMs !== undefined) {
477
+ metadata.healthCheck = {
478
+ ...(command ? { command } : {}),
479
+ ...(timeoutMs !== undefined ? { timeoutMs } : {}),
480
+ ...(summary ? { summary } : {}),
481
+ };
482
+ }
483
+ }
484
+ if (Array.isArray(entry.commands)) {
485
+ const commands = entry.commands
486
+ .filter((command) => !!command && typeof command === 'object' && !Array.isArray(command))
487
+ .map((command) => {
488
+ const name = sanitizeOptionalString(command.name, 80);
489
+ if (!name)
490
+ return null;
491
+ const description = sanitizeOptionalString(command.description, 240);
492
+ return {
493
+ name,
494
+ ...(description ? { description } : {}),
495
+ };
496
+ })
497
+ .filter((command) => command !== null)
498
+ .slice(0, 50);
499
+ if (commands.length > 0)
500
+ metadata.commands = commands;
501
+ }
502
+ return Object.keys(metadata).length > 0 ? metadata : undefined;
503
+ }
242
504
  //# sourceMappingURL=agent-descriptors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-descriptors.js","sourceRoot":"","sources":["../../../src/protocols/acp/agent-descriptors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-descriptors.js","sourceRoot":"","sources":["../../../src/protocols/acp/agent-descriptors.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AcpAgentOverride } from './agent-descriptors.js';
1
+ import type { AcpAgentAdapterMetadata, AcpAgentOverride } from './agent-descriptors.js';
2
2
  export interface InstalledAgent {
3
3
  id: string;
4
4
  name: string;
@@ -8,6 +8,7 @@ export interface InstalledAgent {
8
8
  args: string[];
9
9
  source: 'user-override' | 'descriptor' | 'registry';
10
10
  };
11
+ adapterMetadata?: AcpAgentAdapterMetadata;
11
12
  }
12
13
  export interface NotInstalledAgent {
13
14
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"detect-local.d.ts","sourceRoot":"","sources":["../../../src/protocols/acp/detect-local.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,MAAM,EAAE,eAAe,GAAG,YAAY,GAAG,UAAU,CAAC;KACrD,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC9C;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQnD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAMnF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAOrF;AA6GD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAO5F;AAED,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAejG;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAOjF;AAQD,wBAAsB,oBAAoB,CACxC,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC;IAAE,SAAS,EAAE,cAAc,EAAE,CAAC;IAAC,YAAY,EAAE,iBAAiB,EAAE,CAAA;CAAE,CAAC,CAiD7E"}
1
+ {"version":3,"file":"detect-local.d.ts","sourceRoot":"","sources":["../../../src/protocols/acp/detect-local.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAExF,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,MAAM,EAAE,eAAe,GAAG,YAAY,GAAG,UAAU,CAAC;KACrD,CAAC;IACF,eAAe,CAAC,EAAE,uBAAuB,CAAC;CAC3C;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC9C;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQnD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAMnF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAOrF;AA4PD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAS5F;AAED,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAgBjG;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CASjF;AAQD,wBAAsB,oBAAoB,CACxC,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC;IAAE,SAAS,EAAE,cAAc,EAAE,CAAC;IAAC,YAAY,EAAE,iBAAiB,EAAE,CAAA;CAAE,CAAC,CAoD7E"}
@@ -64,6 +64,145 @@ function parseResolvedPaths(stdout) {
64
64
  }
65
65
  return resolved;
66
66
  }
67
+ function dedupePathEntries(entries) {
68
+ const seen = new Set();
69
+ const result = [];
70
+ for (const entry of entries) {
71
+ const trimmed = entry.trim().replace(/^"|"$/g, '');
72
+ if (!trimmed)
73
+ continue;
74
+ const key = process.platform === 'win32' ? trimmed.toLowerCase() : trimmed;
75
+ if (seen.has(key))
76
+ continue;
77
+ seen.add(key);
78
+ result.push(trimmed);
79
+ }
80
+ return result;
81
+ }
82
+ function isExistingDirectory(dirPath) {
83
+ try {
84
+ return fs.statSync(dirPath).isDirectory();
85
+ }
86
+ catch {
87
+ return false;
88
+ }
89
+ }
90
+ function isExecutableFile(filePath) {
91
+ try {
92
+ const stat = fs.statSync(filePath);
93
+ if (!stat.isFile())
94
+ return false;
95
+ if (process.platform === 'win32')
96
+ return true;
97
+ fs.accessSync(filePath, fs.constants.X_OK);
98
+ return true;
99
+ }
100
+ catch {
101
+ return false;
102
+ }
103
+ }
104
+ function envPathValue(env = process.env) {
105
+ return env.PATH ?? env.Path ?? env.path ?? '';
106
+ }
107
+ function splitEnvPath(value) {
108
+ return value.split(path.delimiter).map((entry) => entry.trim()).filter(Boolean);
109
+ }
110
+ function pathFromHome(...segments) {
111
+ try {
112
+ const home = os.homedir();
113
+ return home ? path.join(home, ...segments) : null;
114
+ }
115
+ catch {
116
+ return null;
117
+ }
118
+ }
119
+ function collectChildBinDirs(parentDir) {
120
+ if (!parentDir || !isExistingDirectory(parentDir))
121
+ return [];
122
+ try {
123
+ return fs.readdirSync(parentDir, { withFileTypes: true })
124
+ .filter((entry) => entry.isDirectory())
125
+ .map((entry) => path.join(parentDir, entry.name, 'bin'))
126
+ .filter(isExistingDirectory)
127
+ .sort()
128
+ .reverse();
129
+ }
130
+ catch {
131
+ return [];
132
+ }
133
+ }
134
+ function supplementalPathEntries(env = process.env) {
135
+ const entries = [
136
+ pathFromHome('.local', 'bin'),
137
+ pathFromHome('bin'),
138
+ pathFromHome('.npm-global', 'bin'),
139
+ pathFromHome('.cargo', 'bin'),
140
+ pathFromHome('.bun', 'bin'),
141
+ pathFromHome('.deno', 'bin'),
142
+ pathFromHome('.volta', 'bin'),
143
+ pathFromHome('.asdf', 'shims'),
144
+ pathFromHome('.nodenv', 'shims'),
145
+ pathFromHome('.pyenv', 'shims'),
146
+ pathFromHome('.local', 'share', 'pnpm'),
147
+ pathFromHome('Library', 'pnpm'),
148
+ pathFromHome('.codex', 'bin'),
149
+ pathFromHome('.claude', 'bin'),
150
+ pathFromHome('.claude', 'local'),
151
+ pathFromHome('.gemini', 'bin'),
152
+ pathFromHome('.qwen', 'bin'),
153
+ pathFromHome('.kimi-code', 'bin'),
154
+ ...collectChildBinDirs(pathFromHome('.nvm', 'versions', 'node')),
155
+ ].filter((entry) => Boolean(entry));
156
+ if (process.platform === 'win32') {
157
+ const userProfile = env.USERPROFILE ?? env.HOME;
158
+ const appData = env.APPDATA ?? (userProfile ? path.win32.join(userProfile, 'AppData', 'Roaming') : undefined);
159
+ const localAppData = env.LOCALAPPDATA ?? (userProfile ? path.win32.join(userProfile, 'AppData', 'Local') : undefined);
160
+ entries.push(...(appData ? [path.win32.join(appData, 'npm')] : []), ...(localAppData ? [path.win32.join(localAppData, 'pnpm')] : []), ...(userProfile ? [
161
+ path.win32.join(userProfile, 'scoop', 'shims'),
162
+ path.win32.join(userProfile, '.cargo', 'bin'),
163
+ path.win32.join(userProfile, '.bun', 'bin'),
164
+ path.win32.join(userProfile, '.deno', 'bin'),
165
+ path.win32.join(userProfile, '.volta', 'bin'),
166
+ ] : []));
167
+ }
168
+ else {
169
+ entries.push('/opt/homebrew/bin', '/usr/local/bin', '/usr/bin', '/bin', '/usr/sbin', '/sbin');
170
+ }
171
+ return dedupePathEntries(entries).filter(isExistingDirectory);
172
+ }
173
+ function commandSearchPaths(env = process.env) {
174
+ return dedupePathEntries([
175
+ ...splitEnvPath(envPathValue(env)),
176
+ ...supplementalPathEntries(env),
177
+ ]);
178
+ }
179
+ function commandFileNames(command, env = process.env) {
180
+ if (process.platform !== 'win32')
181
+ return [command];
182
+ if (path.win32.extname(command))
183
+ return [command];
184
+ const extensions = (env.PATHEXT ?? '.COM;.EXE;.BAT;.CMD')
185
+ .split(';')
186
+ .map((entry) => entry.trim())
187
+ .filter(Boolean);
188
+ return dedupePathEntries([command, ...extensions.map((extension) => `${command}${extension}`)]);
189
+ }
190
+ function lookupCommandPathFromSearchPaths(command, env = process.env) {
191
+ return lookupCommandPathCandidatesFromSearchPaths(command, env)[0] ?? null;
192
+ }
193
+ function lookupCommandPathCandidatesFromSearchPaths(command, env = process.env) {
194
+ const candidates = [];
195
+ for (const dir of commandSearchPaths(env)) {
196
+ for (const fileName of commandFileNames(command, env)) {
197
+ const candidate = path.join(dir, fileName);
198
+ if (!isExecutableFile(candidate))
199
+ continue;
200
+ if (!candidates.includes(candidate))
201
+ candidates.push(candidate);
202
+ }
203
+ }
204
+ return candidates;
205
+ }
67
206
  function shellEscape(command) {
68
207
  return `'${command.replace(/'/g, `'\\''`)}'`;
69
208
  }
@@ -152,7 +291,9 @@ export async function resolveCommandPath(command) {
152
291
  const trimmed = command.trim();
153
292
  if (!trimmed || isPathLikeCommand(trimmed))
154
293
  return null;
155
- return await lookupCommandPathCurrentEnv(trimmed) ?? await lookupCommandPathLoginShell(trimmed);
294
+ return await lookupCommandPathCurrentEnv(trimmed)
295
+ ?? await lookupCommandPathLoginShell(trimmed)
296
+ ?? lookupCommandPathFromSearchPaths(trimmed);
156
297
  }
157
298
  export async function resolveCommandPathCandidates(command) {
158
299
  if (!command)
@@ -167,6 +308,7 @@ export async function resolveCommandPathCandidates(command) {
167
308
  for (const candidate of [
168
309
  ...await lookupCommandPathCandidatesCurrentEnv(trimmed),
169
310
  ...await lookupCommandPathCandidatesLoginShell(trimmed),
311
+ ...lookupCommandPathCandidatesFromSearchPaths(trimmed),
170
312
  ]) {
171
313
  if (!candidates.includes(candidate))
172
314
  candidates.push(candidate);
@@ -182,7 +324,9 @@ export function resolveCommandPathSync(command) {
182
324
  const trimmed = command.trim();
183
325
  if (!trimmed || isPathLikeCommand(trimmed))
184
326
  return null;
185
- return lookupCommandPathCurrentEnvSync(trimmed) ?? lookupCommandPathLoginShellSync(trimmed);
327
+ return lookupCommandPathCurrentEnvSync(trimmed)
328
+ ?? lookupCommandPathLoginShellSync(trimmed)
329
+ ?? lookupCommandPathFromSearchPaths(trimmed);
186
330
  }
187
331
  async function lookupCommandPaths(commands) {
188
332
  const unique = [...new Set(commands.map((command) => command.trim()).filter(Boolean))];
@@ -190,7 +334,7 @@ async function lookupCommandPaths(commands) {
190
334
  return new Map(entries);
191
335
  }
192
336
  export async function detectLocalAcpAgents(options = {}) {
193
- const agents = getDetectableAgents();
337
+ const agents = getDetectableAgents(options.overrides);
194
338
  const plans = agents.map((agent) => {
195
339
  const userOverride = findUserOverride(agent.id, options.overrides);
196
340
  const resolved = resolveAgentCommand(agent.id, undefined, userOverride);
@@ -206,6 +350,8 @@ export async function detectLocalAcpAgents(options = {}) {
206
350
  const installed = [];
207
351
  const notInstalled = [];
208
352
  for (const { agent, resolved, directOverridePath, presenceCommands } of plans) {
353
+ if (!resolved.enabled)
354
+ continue;
209
355
  const detectedCommandPath = presenceCommands.map((command) => presenceLookup.get(command) ?? null).find(Boolean);
210
356
  const presencePath = directOverridePath
211
357
  ?? detectedCommandPath
@@ -220,6 +366,7 @@ export async function detectLocalAcpAgents(options = {}) {
220
366
  name: agent.name,
221
367
  binaryPath: launchPath,
222
368
  resolvedCommand: { cmd: resolved.cmd, args: resolved.args, source: resolved.source },
369
+ ...(agent.adapterMetadata ? { adapterMetadata: agent.adapterMetadata } : {}),
223
370
  });
224
371
  }
225
372
  else {