@a5c-ai/agent-catalog 5.0.1-staging.f672fe79b → 5.0.1-staging.f6da8cd208d2

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/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  `@a5c-ai/agent-catalog` is a public package for the shared agent ontology, discovery catalog, packaged evidence shards, and graph-backed helper APIs used across the Babysitter toolchain.
4
4
 
5
- The package is published through the central `release.yml` and `staging-publish.yml` workflows. `main` publishes production releases, and `staging` publishes prerelease builds with the `staging` dist-tag.
5
+ The package is published through the central `publish.yml` and `publish-packages-from-tag.yml` workflows. `main` publishes production releases, and `staging` publishes prerelease builds with the `staging` dist-tag.
6
6
 
7
7
  ## What ships
8
8
 
@@ -79,7 +79,7 @@ When graph structure or evidence claims change, update the YAML inputs first, th
79
79
 
80
80
  - The package must stay publishable: it ships with `publishConfig.access = public`, includes this README in `files`, and is owned by the central publish workflows.
81
81
  - `npm run ci:test --workspace=@a5c-ai/agent-catalog` is the release-equivalent contract for this workspace. It covers build output, graph validation, evidence freshness, package contract tests, and the publish lifecycle policy check.
82
- - `release.yml` and `staging-publish.yml` version, pack, and publish this package alongside the SDK, hooks-mux, agent-mux, and plugin compiler surfaces that consume it.
82
+ - `publish.yml` and `publish-packages-from-tag.yml` version, pack, and publish this package alongside the SDK, hooks-mux, agent-mux, and plugin compiler surfaces that consume it.
83
83
 
84
84
  ## Downstream compatibility
85
85
 
@@ -27,12 +27,12 @@ const atlas_1 = require("@a5c-ai/atlas");
27
27
  // Record adaptation: Atlas `_kind` -> agent-catalog `kind`
28
28
  // ---------------------------------------------------------------------------
29
29
  const AGENT_CATALOG_KINDS = new Set([
30
- "AgentProduct", "AgentVersion", "Capability", "CapabilitySupport",
30
+ "AdapterModel", "AgentProduct", "AgentVersion", "Capability", "CapabilitySupport",
31
31
  "CiSurface", "Claim", "DiscoverySignal", "EvidenceSource",
32
32
  "HookMapping", "HookSurface", "LifecycleSemantics", "Modality",
33
33
  "ModelFamily", "ModelProviderProduct", "ModelProviderVersion", "ModelVersion",
34
34
  "PackageSurface", "PathDescriptor", "PluginArtifact", "PluginTarget",
35
- "ProcessDescriptor", "SessionSemantics", "TransportProtocol", "TransportRuntime",
35
+ "ProcessDescriptor", "ProviderTranslation", "SessionSemantics", "TransportProtocol", "TransportRuntime",
36
36
  ]);
37
37
  function isAgentCatalogRecord(record) {
38
38
  return AGENT_CATALOG_KINDS.has(record._kind);
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EAIpB,WAAW,EACX,cAAc,EAEd,aAAa,EAGb,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAGlB,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACf,MAAM,UAAU,CAAC;AAswBlB,UAAU,qBAAqB;IAC7B,KAAK,EAAE,YAAY,CAAC;IACpB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACxD,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IAChD,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAC1D,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,aAAa,EAAE,sBAAsB,EAAE,CAAC;IACxC,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAC5C,YAAY,EAAE,YAAY,CAAC;CAC5B;AA2FD,wBAAgB,0BAA0B,IAAI,IAAI,CAGjD;AAED,wBAAgB,mBAAmB,IAAI,qBAAqB,CAK3D;AAoDD,eAAO,MAAM,cAAc,eAA8D,CAAC;AAC1F,eAAO,MAAM,eAAe,gBAA+D,CAAC;AAC5F,eAAO,MAAM,QAAQ,kBAAwD,CAAC;AAC9E,eAAO,MAAM,MAAM,eAAsD,CAAC;AAC1E,eAAO,MAAM,SAAS,wBAAyD,CAAC;AAChF,eAAO,MAAM,MAAM,gBAAsD,CAAC;AAC1E,eAAO,MAAM,UAAU,uBAA0D,CAAC;AAClF,eAAO,MAAM,YAAY,wBAA4D,CAAC;AACtF,eAAO,MAAM,UAAU,sBAA0D,CAAC;AAClF,eAAO,MAAM,KAAK,kBAAqD,CAAC;AACxE,eAAO,MAAM,eAAe,iBAA8D,CAAC;AAC3F,eAAO,MAAM,iBAAiB,mBAAgE,CAAC;AAC/F,eAAO,MAAM,SAAS,qBAAyD,CAAC;AAChF,eAAO,MAAM,oBAAoB,qBAAkE,CAAC;AACpG,eAAO,MAAM,MAAM,gBAAsD,CAAC;AAC1E,eAAO,MAAM,eAAe,0BAA8D,CAAC;AAC3F,eAAO,MAAM,oBAAoB,qCAAmE,CAAC;AACrG,eAAO,MAAM,yBAAyB,yBAAsE,CAAC;AAC7G,eAAO,MAAM,iBAAiB,yCAAiE,CAAC;AAChG,eAAO,MAAM,cAAc,qBAA6D,CAAC;AACzF,eAAO,MAAM,cAAc,0BAA6D,CAAC;AACzF,eAAO,MAAM,qBAAqB,uBAAoE,CAAC;AACvG,eAAO,MAAM,aAAa,cAA6D,CAAC"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EAEZ,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EAIpB,WAAW,EAEX,cAAc,EAEd,aAAa,EAKb,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAGlB,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EAEb,mBAAmB,EACnB,cAAc,EACf,MAAM,UAAU,CAAC;AAq3BlB,UAAU,qBAAqB;IAC7B,KAAK,EAAE,YAAY,CAAC;IACpB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACxD,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IAChD,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAC1D,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,aAAa,EAAE,sBAAsB,EAAE,CAAC;IACxC,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAC5C,YAAY,EAAE,YAAY,CAAC;CAC5B;AA2FD,wBAAgB,0BAA0B,IAAI,IAAI,CAGjD;AAED,wBAAgB,mBAAmB,IAAI,qBAAqB,CAK3D;AAoDD,eAAO,MAAM,cAAc,eAA8D,CAAC;AAC1F,eAAO,MAAM,eAAe,gBAA+D,CAAC;AAC5F,eAAO,MAAM,QAAQ,kBAAwD,CAAC;AAC9E,eAAO,MAAM,MAAM,eAAsD,CAAC;AAC1E,eAAO,MAAM,SAAS,wBAAyD,CAAC;AAChF,eAAO,MAAM,MAAM,gBAAsD,CAAC;AAC1E,eAAO,MAAM,UAAU,uBAA0D,CAAC;AAClF,eAAO,MAAM,YAAY,wBAA4D,CAAC;AACtF,eAAO,MAAM,UAAU,sBAA0D,CAAC;AAClF,eAAO,MAAM,KAAK,kBAAqD,CAAC;AACxE,eAAO,MAAM,eAAe,iBAA8D,CAAC;AAC3F,eAAO,MAAM,iBAAiB,mBAAgE,CAAC;AAC/F,eAAO,MAAM,SAAS,qBAAyD,CAAC;AAChF,eAAO,MAAM,oBAAoB,qBAAkE,CAAC;AACpG,eAAO,MAAM,MAAM,gBAAsD,CAAC;AAC1E,eAAO,MAAM,eAAe,0BAA8D,CAAC;AAC3F,eAAO,MAAM,oBAAoB,qCAAmE,CAAC;AACrG,eAAO,MAAM,yBAAyB,yBAAsE,CAAC;AAC7G,eAAO,MAAM,iBAAiB,yCAAiE,CAAC;AAChG,eAAO,MAAM,cAAc,qBAA6D,CAAC;AACzF,eAAO,MAAM,cAAc,0BAA6D,CAAC;AACzF,eAAO,MAAM,qBAAqB,uBAAoE,CAAC;AACvG,eAAO,MAAM,aAAa,cAA6D,CAAC"}
package/dist/data.js CHANGED
@@ -121,6 +121,7 @@ function toTransportDescriptor(node) {
121
121
  persistentSession: Boolean(node.persistentSession),
122
122
  stdinInjection: Boolean(node.stdinInjection),
123
123
  blockingStopHook: Boolean(node.blockingStopHook),
124
+ codecCapabilities: parseCodecCapabilities(node.codecCapabilities),
124
125
  evidenceIds: nodeEvidenceIds(node),
125
126
  };
126
127
  }
@@ -318,6 +319,110 @@ function agentLifecycleNuanceIds(agentNodeId) {
318
319
  .map((node) => valueAsString(node.lifecycleSemanticsId))
319
320
  .filter(Boolean);
320
321
  }
322
+ function toHookSupportLevel(value) {
323
+ const normalized = valueAsString(value);
324
+ if (normalized === 'native' || normalized === 'emulated')
325
+ return normalized;
326
+ return 'unsupported';
327
+ }
328
+ function parseHookSupportMap(value) {
329
+ const obj = (value && typeof value === 'object') ? value : {};
330
+ return {
331
+ sessionStart: toHookSupportLevel(obj.sessionStart),
332
+ stop: toHookSupportLevel(obj.stop),
333
+ userPromptSubmit: toHookSupportLevel(obj.userPromptSubmit),
334
+ preToolUse: toHookSupportLevel(obj.preToolUse),
335
+ sessionEnd: toHookSupportLevel(obj.sessionEnd),
336
+ };
337
+ }
338
+ function parsePartialHookSupportMap(value) {
339
+ const obj = (value && typeof value === 'object') ? value : {};
340
+ const result = {};
341
+ if (obj.sessionStart != null)
342
+ result.sessionStart = toHookSupportLevel(obj.sessionStart);
343
+ if (obj.stop != null)
344
+ result.stop = toHookSupportLevel(obj.stop);
345
+ if (obj.userPromptSubmit != null)
346
+ result.userPromptSubmit = toHookSupportLevel(obj.userPromptSubmit);
347
+ if (obj.preToolUse != null)
348
+ result.preToolUse = toHookSupportLevel(obj.preToolUse);
349
+ if (obj.sessionEnd != null)
350
+ result.sessionEnd = toHookSupportLevel(obj.sessionEnd);
351
+ return result;
352
+ }
353
+ function parseHookSupport(value) {
354
+ if (!value || typeof value !== 'object')
355
+ return undefined;
356
+ const obj = value;
357
+ if (!obj.interactive || typeof obj.interactive !== 'object')
358
+ return undefined;
359
+ return {
360
+ interactive: parseHookSupportMap(obj.interactive),
361
+ nonInteractive: parsePartialHookSupportMap(obj.nonInteractive),
362
+ };
363
+ }
364
+ function parseBridgeCapabilities(value) {
365
+ if (!value || typeof value !== 'object')
366
+ return undefined;
367
+ const obj = value;
368
+ return {
369
+ interactiveBridge: Boolean(obj.interactiveBridge),
370
+ sessionResume: Boolean(obj.sessionResume),
371
+ positionalPrompt: Boolean(obj.positionalPrompt),
372
+ };
373
+ }
374
+ function parseAdapterMetadata(value) {
375
+ if (!value || typeof value !== 'object')
376
+ return undefined;
377
+ const obj = value;
378
+ return {
379
+ installCommands: Array.isArray(obj.installCommands) ? obj.installCommands.map((c) => {
380
+ const cmd = c;
381
+ return { type: valueAsString(cmd.type), command: valueAsString(cmd.command) };
382
+ }) : undefined,
383
+ authMethods: Array.isArray(obj.authMethods) ? obj.authMethods.map((m) => {
384
+ const method = m;
385
+ return {
386
+ type: valueAsString(method.type),
387
+ name: valueAsString(method.name),
388
+ envVars: Array.isArray(method.envVars) ? method.envVars.map(String) : undefined,
389
+ };
390
+ }) : undefined,
391
+ authFiles: Array.isArray(obj.authFiles) ? obj.authFiles.map(String) : undefined,
392
+ hostEnvSignals: Array.isArray(obj.hostEnvSignals) ? obj.hostEnvSignals.map(String) : undefined,
393
+ sessionDir: valueAsString(obj.sessionDir) || undefined,
394
+ sessionPersistence: (['file', 'sqlite', 'none'].includes(valueAsString(obj.sessionPersistence)) ? valueAsString(obj.sessionPersistence) : undefined),
395
+ automationEnv: obj.automationEnv && typeof obj.automationEnv === 'object' ? Object.fromEntries(Object.entries(obj.automationEnv).map(([k, v]) => [k, String(v)])) : undefined,
396
+ approvalModes: Array.isArray(obj.approvalModes) ? obj.approvalModes.map(String) : undefined,
397
+ capabilityFlags: obj.capabilityFlags && typeof obj.capabilityFlags === 'object' ? obj.capabilityFlags : undefined,
398
+ runtimeHooks: obj.runtimeHooks && typeof obj.runtimeHooks === 'object' ? obj.runtimeHooks : undefined,
399
+ configSchema: obj.configSchema && typeof obj.configSchema === 'object' ? {
400
+ configFormat: valueAsString(obj.configSchema.configFormat) || undefined,
401
+ configFilePaths: Array.isArray(obj.configSchema.configFilePaths) ? obj.configSchema.configFilePaths.map(String) : undefined,
402
+ projectConfigFilePaths: Array.isArray(obj.configSchema.projectConfigFilePaths) ? obj.configSchema.projectConfigFilePaths.map(String) : undefined,
403
+ } : undefined,
404
+ displayName: valueAsString(obj.displayName) || undefined,
405
+ defaultModelId: valueAsString(obj.defaultModelId) || undefined,
406
+ };
407
+ }
408
+ function parseToolSchemaFormat(value) {
409
+ const normalized = valueAsString(value);
410
+ if (normalized === "openai" || normalized === "anthropic" || normalized === "google")
411
+ return normalized;
412
+ return "none";
413
+ }
414
+ function parseCodecCapabilities(value) {
415
+ if (!value || typeof value !== 'object')
416
+ return undefined;
417
+ const obj = value;
418
+ return {
419
+ supportsTools: obj.supportsTools === true || obj.supportsTools === "true",
420
+ supportsStreaming: obj.supportsStreaming === true || obj.supportsStreaming === "true",
421
+ supportsTokenCounting: obj.supportsTokenCounting === true || obj.supportsTokenCounting === "true",
422
+ costTracking: obj.costTracking === true || obj.costTracking === "true",
423
+ toolSchemaFormat: parseToolSchemaFormat(obj.toolSchemaFormat),
424
+ };
425
+ }
321
426
  function toAgentVersion(node) {
322
427
  return {
323
428
  agentId: valueAsString(node.agentId),
@@ -341,6 +446,15 @@ function toAgentVersion(node) {
341
446
  sessionNuanceIds: agentSessionNuanceIds(node.id),
342
447
  lifecycleNuanceIds: agentLifecycleNuanceIds(node.id),
343
448
  evidenceIds: nodeEvidenceIds(node),
449
+ interactiveSignals: node.interactiveSignals != null ? {
450
+ turnCompletePattern: valueAsString(node.interactiveSignals?.turnCompletePattern) || undefined,
451
+ exitOnNonInteractive: node.interactiveSignals?.exitOnNonInteractive === true ? true : undefined,
452
+ nonInteractiveMode: valueAsString(node.interactiveSignals?.nonInteractiveMode) || undefined,
453
+ interactiveMode: valueAsString(node.interactiveSignals?.interactiveMode),
454
+ } : undefined,
455
+ hookSupport: parseHookSupport(node.hookSupport),
456
+ bridgeCapabilities: parseBridgeCapabilities(node.bridgeCapabilities),
457
+ adapterMetadata: parseAdapterMetadata(node.adapterMetadata),
344
458
  };
345
459
  }
346
460
  function evidenceIdFromNode(node) {
@@ -619,6 +733,7 @@ const BABYSITTER_PLUGIN_TARGETS = new Set([
619
733
  "plugin-target:claude-code", "plugin-target:codex", "plugin-target:cursor",
620
734
  "plugin-target:gemini-cli", "plugin-target:copilot-cli", "plugin-target:pi",
621
735
  "plugin-target:omp", "plugin-target:opencode", "plugin-target:openclaw",
736
+ "plugin-target:hermes",
622
737
  ]);
623
738
  // Atlas uses different IDs for some targets
624
739
  const TARGET_ID_ALIASES = {