@agentxm/extension-model 0.37.3 → 0.38.0

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 (161) hide show
  1. package/dist/src/unstable/agent-capabilities/catalog.d.ts +24968 -12723
  2. package/dist/src/unstable/agent-capabilities/catalog.js +5 -1
  3. package/dist/src/unstable/agent-capabilities/data/agents/adal.d.ts +58 -6
  4. package/dist/src/unstable/agent-capabilities/data/agents/adal.js +75 -6
  5. package/dist/src/unstable/agent-capabilities/data/agents/aider-desk.d.ts +94 -13
  6. package/dist/src/unstable/agent-capabilities/data/agents/aider-desk.js +119 -14
  7. package/dist/src/unstable/agent-capabilities/data/agents/amp.d.ts +126 -2
  8. package/dist/src/unstable/agent-capabilities/data/agents/amp.js +160 -6
  9. package/dist/src/unstable/agent-capabilities/data/agents/antigravity-cli.d.ts +66 -6
  10. package/dist/src/unstable/agent-capabilities/data/agents/antigravity-cli.js +71 -6
  11. package/dist/src/unstable/agent-capabilities/data/agents/antigravity.d.ts +66 -5
  12. package/dist/src/unstable/agent-capabilities/data/agents/antigravity.js +71 -5
  13. package/dist/src/unstable/agent-capabilities/data/agents/augment.d.ts +109 -0
  14. package/dist/src/unstable/agent-capabilities/data/agents/augment.js +133 -4
  15. package/dist/src/unstable/agent-capabilities/data/agents/chatgpt.d.ts +34 -10
  16. package/dist/src/unstable/agent-capabilities/data/agents/chatgpt.js +111 -25
  17. package/dist/src/unstable/agent-capabilities/data/agents/claude-ai.d.ts +35 -4
  18. package/dist/src/unstable/agent-capabilities/data/agents/claude-ai.js +108 -21
  19. package/dist/src/unstable/agent-capabilities/data/agents/claude-code.d.ts +25 -1
  20. package/dist/src/unstable/agent-capabilities/data/agents/claude-code.js +230 -49
  21. package/dist/src/unstable/agent-capabilities/data/agents/cline.d.ts +20 -3
  22. package/dist/src/unstable/agent-capabilities/data/agents/cline.js +111 -28
  23. package/dist/src/unstable/agent-capabilities/data/agents/codearts-agent.d.ts +37 -0
  24. package/dist/src/unstable/agent-capabilities/data/agents/codearts-agent.js +47 -2
  25. package/dist/src/unstable/agent-capabilities/data/agents/codebuddy.d.ts +34 -3
  26. package/dist/src/unstable/agent-capabilities/data/agents/codebuddy.js +54 -3
  27. package/dist/src/unstable/agent-capabilities/data/agents/codemaker.d.ts +29 -12
  28. package/dist/src/unstable/agent-capabilities/data/agents/codemaker.js +32 -12
  29. package/dist/src/unstable/agent-capabilities/data/agents/coder-agents.d.ts +269 -0
  30. package/dist/src/unstable/agent-capabilities/data/agents/coder-agents.js +294 -0
  31. package/dist/src/unstable/agent-capabilities/data/agents/codestudio.d.ts +32 -7
  32. package/dist/src/unstable/agent-capabilities/data/agents/codestudio.js +43 -8
  33. package/dist/src/unstable/agent-capabilities/data/agents/codex.d.ts +28 -4
  34. package/dist/src/unstable/agent-capabilities/data/agents/codex.js +226 -50
  35. package/dist/src/unstable/agent-capabilities/data/agents/command-code.d.ts +25 -1
  36. package/dist/src/unstable/agent-capabilities/data/agents/command-code.js +31 -1
  37. package/dist/src/unstable/agent-capabilities/data/agents/continue.d.ts +23 -2
  38. package/dist/src/unstable/agent-capabilities/data/agents/continue.js +159 -33
  39. package/dist/src/unstable/agent-capabilities/data/agents/cortex.d.ts +46 -1
  40. package/dist/src/unstable/agent-capabilities/data/agents/cortex.js +63 -1
  41. package/dist/src/unstable/agent-capabilities/data/agents/cowork.d.ts +21 -4
  42. package/dist/src/unstable/agent-capabilities/data/agents/cowork.js +108 -30
  43. package/dist/src/unstable/agent-capabilities/data/agents/crush.d.ts +85 -2
  44. package/dist/src/unstable/agent-capabilities/data/agents/crush.js +119 -10
  45. package/dist/src/unstable/agent-capabilities/data/agents/cursor.d.ts +21 -0
  46. package/dist/src/unstable/agent-capabilities/data/agents/cursor.js +138 -34
  47. package/dist/src/unstable/agent-capabilities/data/agents/deepagents.d.ts +143 -13
  48. package/dist/src/unstable/agent-capabilities/data/agents/deepagents.js +175 -11
  49. package/dist/src/unstable/agent-capabilities/data/agents/devin.d.ts +17 -0
  50. package/dist/src/unstable/agent-capabilities/data/agents/devin.js +183 -38
  51. package/dist/src/unstable/agent-capabilities/data/agents/dexto.d.ts +23 -6
  52. package/dist/src/unstable/agent-capabilities/data/agents/dexto.js +31 -6
  53. package/dist/src/unstable/agent-capabilities/data/agents/droid.d.ts +100 -3
  54. package/dist/src/unstable/agent-capabilities/data/agents/droid.js +130 -5
  55. package/dist/src/unstable/agent-capabilities/data/agents/firebender.d.ts +29 -4
  56. package/dist/src/unstable/agent-capabilities/data/agents/firebender.js +39 -5
  57. package/dist/src/unstable/agent-capabilities/data/agents/forgecode.d.ts +26 -2
  58. package/dist/src/unstable/agent-capabilities/data/agents/forgecode.js +29 -2
  59. package/dist/src/unstable/agent-capabilities/data/agents/fx.d.ts +282 -0
  60. package/dist/src/unstable/agent-capabilities/data/agents/fx.js +312 -0
  61. package/dist/src/unstable/agent-capabilities/data/agents/gemini-app.d.ts +34 -10
  62. package/dist/src/unstable/agent-capabilities/data/agents/gemini-app.js +109 -25
  63. package/dist/src/unstable/agent-capabilities/data/agents/gemini-cli.d.ts +25 -4
  64. package/dist/src/unstable/agent-capabilities/data/agents/gemini-cli.js +225 -55
  65. package/dist/src/unstable/agent-capabilities/data/agents/github-copilot-cli.d.ts +32 -1
  66. package/dist/src/unstable/agent-capabilities/data/agents/github-copilot-cli.js +133 -30
  67. package/dist/src/unstable/agent-capabilities/data/agents/goose.d.ts +213 -12
  68. package/dist/src/unstable/agent-capabilities/data/agents/goose.js +258 -18
  69. package/dist/src/unstable/agent-capabilities/data/agents/grok-cli.d.ts +17 -0
  70. package/dist/src/unstable/agent-capabilities/data/agents/grok-cli.js +108 -28
  71. package/dist/src/unstable/agent-capabilities/data/agents/hermes.d.ts +50 -9
  72. package/dist/src/unstable/agent-capabilities/data/agents/hermes.js +148 -23
  73. package/dist/src/unstable/agent-capabilities/data/agents/ibm-bob.d.ts +27 -3
  74. package/dist/src/unstable/agent-capabilities/data/agents/ibm-bob.js +30 -3
  75. package/dist/src/unstable/agent-capabilities/data/agents/iflow-cli.d.ts +17 -0
  76. package/dist/src/unstable/agent-capabilities/data/agents/iflow-cli.js +20 -0
  77. package/dist/src/unstable/agent-capabilities/data/agents/index.d.ts +4 -0
  78. package/dist/src/unstable/agent-capabilities/data/agents/index.js +4 -0
  79. package/dist/src/unstable/agent-capabilities/data/agents/junie.d.ts +18 -1
  80. package/dist/src/unstable/agent-capabilities/data/agents/junie.js +96 -24
  81. package/dist/src/unstable/agent-capabilities/data/agents/kilo.d.ts +39 -2
  82. package/dist/src/unstable/agent-capabilities/data/agents/kilo.js +49 -4
  83. package/dist/src/unstable/agent-capabilities/data/agents/kimi-cli.d.ts +17 -0
  84. package/dist/src/unstable/agent-capabilities/data/agents/kimi-cli.js +192 -39
  85. package/dist/src/unstable/agent-capabilities/data/agents/kiro-cli.d.ts +47 -3
  86. package/dist/src/unstable/agent-capabilities/data/agents/kiro-cli.js +65 -4
  87. package/dist/src/unstable/agent-capabilities/data/agents/kode.d.ts +40 -3
  88. package/dist/src/unstable/agent-capabilities/data/agents/kode.js +50 -5
  89. package/dist/src/unstable/agent-capabilities/data/agents/lingma.d.ts +28 -4
  90. package/dist/src/unstable/agent-capabilities/data/agents/lingma.js +34 -4
  91. package/dist/src/unstable/agent-capabilities/data/agents/mcpjam.d.ts +32 -8
  92. package/dist/src/unstable/agent-capabilities/data/agents/mcpjam.js +38 -8
  93. package/dist/src/unstable/agent-capabilities/data/agents/mimo-code.d.ts +276 -0
  94. package/dist/src/unstable/agent-capabilities/data/agents/mimo-code.js +311 -0
  95. package/dist/src/unstable/agent-capabilities/data/agents/minimax-code.d.ts +181 -23
  96. package/dist/src/unstable/agent-capabilities/data/agents/minimax-code.js +224 -25
  97. package/dist/src/unstable/agent-capabilities/data/agents/mistral-vibe.d.ts +38 -1
  98. package/dist/src/unstable/agent-capabilities/data/agents/mistral-vibe.js +48 -3
  99. package/dist/src/unstable/agent-capabilities/data/agents/muse-code.d.ts +275 -0
  100. package/dist/src/unstable/agent-capabilities/data/agents/muse-code.js +299 -0
  101. package/dist/src/unstable/agent-capabilities/data/agents/mux.d.ts +146 -17
  102. package/dist/src/unstable/agent-capabilities/data/agents/mux.js +198 -21
  103. package/dist/src/unstable/agent-capabilities/data/agents/neovate.d.ts +72 -9
  104. package/dist/src/unstable/agent-capabilities/data/agents/neovate.js +95 -13
  105. package/dist/src/unstable/agent-capabilities/data/agents/ona.d.ts +40 -6
  106. package/dist/src/unstable/agent-capabilities/data/agents/ona.js +50 -6
  107. package/dist/src/unstable/agent-capabilities/data/agents/openclaw.d.ts +158 -16
  108. package/dist/src/unstable/agent-capabilities/data/agents/openclaw.js +191 -17
  109. package/dist/src/unstable/agent-capabilities/data/agents/opencode.d.ts +24 -0
  110. package/dist/src/unstable/agent-capabilities/data/agents/opencode.js +63 -12
  111. package/dist/src/unstable/agent-capabilities/data/agents/openhands.d.ts +41 -4
  112. package/dist/src/unstable/agent-capabilities/data/agents/openhands.js +57 -8
  113. package/dist/src/unstable/agent-capabilities/data/agents/pi.d.ts +21 -4
  114. package/dist/src/unstable/agent-capabilities/data/agents/pi.js +28 -4
  115. package/dist/src/unstable/agent-capabilities/data/agents/pochi.d.ts +93 -8
  116. package/dist/src/unstable/agent-capabilities/data/agents/pochi.js +113 -10
  117. package/dist/src/unstable/agent-capabilities/data/agents/qoder-cn.d.ts +17 -0
  118. package/dist/src/unstable/agent-capabilities/data/agents/qoder-cn.js +22 -0
  119. package/dist/src/unstable/agent-capabilities/data/agents/qoder.d.ts +25 -1
  120. package/dist/src/unstable/agent-capabilities/data/agents/qoder.js +31 -1
  121. package/dist/src/unstable/agent-capabilities/data/agents/qwen-code.d.ts +37 -0
  122. package/dist/src/unstable/agent-capabilities/data/agents/qwen-code.js +47 -2
  123. package/dist/src/unstable/agent-capabilities/data/agents/replit.d.ts +36 -12
  124. package/dist/src/unstable/agent-capabilities/data/agents/replit.js +42 -12
  125. package/dist/src/unstable/agent-capabilities/data/agents/roo.d.ts +19 -2
  126. package/dist/src/unstable/agent-capabilities/data/agents/roo.js +23 -2
  127. package/dist/src/unstable/agent-capabilities/data/agents/rovodev.d.ts +37 -0
  128. package/dist/src/unstable/agent-capabilities/data/agents/rovodev.js +47 -2
  129. package/dist/src/unstable/agent-capabilities/data/agents/tabnine-cli.d.ts +65 -2
  130. package/dist/src/unstable/agent-capabilities/data/agents/tabnine-cli.js +79 -4
  131. package/dist/src/unstable/agent-capabilities/data/agents/trae-cn.d.ts +23 -6
  132. package/dist/src/unstable/agent-capabilities/data/agents/trae-cn.js +28 -6
  133. package/dist/src/unstable/agent-capabilities/data/agents/trae.d.ts +23 -6
  134. package/dist/src/unstable/agent-capabilities/data/agents/trae.js +27 -6
  135. package/dist/src/unstable/agent-capabilities/data/agents/warp.d.ts +22 -5
  136. package/dist/src/unstable/agent-capabilities/data/agents/warp.js +91 -23
  137. package/dist/src/unstable/agent-capabilities/data/agents/windsurf.d.ts +19 -2
  138. package/dist/src/unstable/agent-capabilities/data/agents/windsurf.js +234 -49
  139. package/dist/src/unstable/agent-capabilities/data/agents/zed.d.ts +41 -4
  140. package/dist/src/unstable/agent-capabilities/data/agents/zed.js +57 -6
  141. package/dist/src/unstable/agent-capabilities/data/agents/zencoder.d.ts +56 -6
  142. package/dist/src/unstable/agent-capabilities/data/agents/zencoder.js +76 -10
  143. package/dist/src/unstable/agent-capabilities/data/agents/zenflow.d.ts +87 -16
  144. package/dist/src/unstable/agent-capabilities/data/agents/zenflow.js +123 -22
  145. package/dist/src/unstable/agent-capabilities/derive.d.ts +2 -2
  146. package/dist/src/unstable/agent-capabilities/derive.js +25 -1
  147. package/dist/src/unstable/agent-capabilities/identity.d.ts +3 -3
  148. package/dist/src/unstable/agent-capabilities/identity.js +4 -0
  149. package/dist/src/unstable/agent-capabilities/index.d.ts +3 -2
  150. package/dist/src/unstable/agent-capabilities/index.js +3 -2
  151. package/dist/src/unstable/agent-capabilities/reference.d.ts +822 -0
  152. package/dist/src/unstable/agent-capabilities/reference.js +181 -0
  153. package/dist/src/unstable/agent-capabilities/schema.d.ts +928 -55
  154. package/dist/src/unstable/agent-capabilities/schema.js +88 -7
  155. package/dist/src/unstable/agent-capabilities/verification.d.ts +28 -12
  156. package/dist/src/unstable/agent-capabilities/verification.js +46 -9
  157. package/dist/src/unstable/agents/types.d.ts +1 -1
  158. package/dist/src/unstable/extensions/common.d.ts +1 -1
  159. package/dist/src/unstable/extensions/universal-skills-dir.d.ts +0 -22
  160. package/dist/src/unstable/extensions/universal-skills-dir.js +0 -28
  161. package/package.json +2 -2
@@ -225,6 +225,7 @@ export const PluginDescriptorSchema = Schema.Struct({
225
225
  /** @experimental This API is unstable and may change without notice. */
226
226
  const NativeAvailabilitySchema = Schema.Struct({ via: Schema.Literal("native") });
227
227
  const NoneAvailabilitySchema = Schema.Struct({ via: Schema.Literal("none") });
228
+ const UnknownAvailabilitySchema = Schema.Struct({ via: Schema.Literal("unknown") });
228
229
  const PluginAvailabilitySchema = Schema.Struct({
229
230
  via: Schema.Literal("plugin"),
230
231
  provider: Schema.Literals(["first-party", "third-party"]),
@@ -238,11 +239,12 @@ const AvailableCapabilityAvailabilitySchema = Schema.Union([
238
239
  export const AvailabilitySchema = Schema.Union([
239
240
  NativeAvailabilitySchema,
240
241
  NoneAvailabilitySchema,
242
+ UnknownAvailabilitySchema,
241
243
  PluginAvailabilitySchema,
242
244
  ]).annotate({
243
245
  identifier: "Availability",
244
246
  title: "Availability",
245
- description: "Whether the agent capability surface is obtainable natively, via plugin, or not.",
247
+ description: "Whether a surface is native, plugin-backed, documented absent, or not established.",
246
248
  });
247
249
  const VendorStatusSinceSchema = Schema.NonEmptyString.pipe(Schema.check(Schema.isPattern(ISO_DATE_PATTERN, {
248
250
  message: "Expected an ISO 8601 date in YYYY-MM-DD form.",
@@ -267,6 +269,9 @@ export const VendorStatusSchema = Schema.Union([
267
269
  export const AgentInterfaceSchema = Schema.Literals([
268
270
  "cli",
269
271
  "ide-extension",
272
+ "desktop",
273
+ "embedded",
274
+ "workspace-agent",
270
275
  "chat",
271
276
  "hosted-agent",
272
277
  ]).annotate({
@@ -357,6 +362,52 @@ export const LastVerifiedDateSchema = Schema.NonEmptyString.pipe(Schema.check(Sc
357
362
  description: "Date a capability claim was last verified.",
358
363
  examples: ["2026-05-16"],
359
364
  });
365
+ /** A source review establishes only the claims within its stated scope. */
366
+ export const CatalogReviewSchema = Schema.Struct({
367
+ reviewedAt: LastVerifiedDateSchema,
368
+ sources: Schema.NonEmptyArray(UrlSchema),
369
+ conditions: Schema.Array(Schema.NonEmptyString),
370
+ limitations: Schema.Array(Schema.NonEmptyString),
371
+ claimScope: Schema.optionalKey(Schema.NonEmptyString),
372
+ }).annotate({
373
+ identifier: "CatalogReview",
374
+ description: "Documented claim review, independent of AXM or vendor runtime execution.",
375
+ });
376
+ /** Execution evidence is never inferred from documentation or a legacy date. */
377
+ export const AxmVerificationSchema = Schema.Struct({
378
+ verifiedAt: LastVerifiedDateSchema,
379
+ boundary: Schema.Literals(["configuration", "vendor-runtime"]),
380
+ evidence: Schema.NonEmptyArray(Schema.NonEmptyString),
381
+ limitations: Schema.Array(Schema.NonEmptyString),
382
+ }).annotate({
383
+ identifier: "AxmVerification",
384
+ description: "Attributable evidence of AXM configuration output or actual vendor runtime use.",
385
+ });
386
+ export const AgentProfileSchema = Schema.Struct({
387
+ identity: Schema.Struct({
388
+ product: Schema.NonEmptyString,
389
+ surface: Schema.NonEmptyString,
390
+ edition: Schema.NullOr(Schema.NonEmptyString),
391
+ ownership: Schema.NullOr(Schema.Struct({
392
+ company: Schema.NonEmptyString,
393
+ parentCompany: Schema.NullOr(Schema.NonEmptyString),
394
+ sources: Schema.NonEmptyArray(UrlSchema),
395
+ })),
396
+ modelProviders: Schema.NullOr(Schema.Array(Schema.NonEmptyString)),
397
+ }),
398
+ review: CatalogReviewSchema,
399
+ lifecycleQualifications: Schema.Array(Schema.Struct({
400
+ scope: Schema.Literals(["vendor", "product", "surface", "edition"]),
401
+ subject: Schema.NonEmptyString,
402
+ state: Schema.Literals(["active", "maintenance", "deprecated", "retired"]),
403
+ since: Schema.NullOr(LastVerifiedDateSchema),
404
+ note: Schema.NonEmptyString,
405
+ sources: Schema.NonEmptyArray(UrlSchema),
406
+ })),
407
+ }).annotate({
408
+ identifier: "AgentProfile",
409
+ description: "Scoped product identity and research; it does not certify every capability.",
410
+ });
360
411
  const CapabilityNotesSchema = Schema.NullOr(Schema.NonEmptyString);
361
412
  const CapabilityDocsSchema = Schema.Array(DocLinkSchema);
362
413
  const CapabilitySourcesSchema = Schema.Array(UrlSchema);
@@ -373,11 +424,12 @@ export const ProvenanceSchema = Schema.Struct(NullableProvenanceFields).annotate
373
424
  description: "Source URLs and verification date for a catalog capability claim.",
374
425
  });
375
426
  const UnavailableNativeCapabilityFields = {
376
- availability: NoneAvailabilitySchema,
427
+ availability: Schema.Union([NoneAvailabilitySchema, UnknownAvailabilitySchema]),
377
428
  vendorStatus: VendorStatusSchema,
378
429
  notes: CapabilityNotesSchema,
379
430
  docs: CapabilityDocsSchema,
380
431
  sources: CapabilitySourcesSchema,
432
+ review: Schema.optionalKey(CatalogReviewSchema),
381
433
  };
382
434
  const AvailableNativeCapabilityBaseFields = {
383
435
  availability: AvailableCapabilityAvailabilitySchema,
@@ -385,6 +437,7 @@ const AvailableNativeCapabilityBaseFields = {
385
437
  notes: CapabilityNotesSchema,
386
438
  docs: CapabilityDocsSchema,
387
439
  sources: CapabilitySourcesSchema,
440
+ review: Schema.optionalKey(CatalogReviewSchema),
388
441
  scopes: NonEmptyScopesSchema,
389
442
  };
390
443
  const SpecTrackedCapabilityFields = {
@@ -395,10 +448,11 @@ const AvailableSpecTrackedNativeCapabilityFields = {
395
448
  ...AvailableNativeCapabilityBaseFields,
396
449
  ...SpecTrackedCapabilityFields,
397
450
  };
398
- const axmCapabilityStateDescription = "AXM integration state for this capability: AXM support status, AXM verification date, optional writer metadata, and AXM-owned rationale. This is not a vendor fact.";
451
+ const axmCapabilityStateDescription = "AXM integration state. lastVerified is a legacy record date with no recorded method; only verification carries attributable execution evidence. Neither is a vendor research review.";
399
452
  const axmCapabilityStateSchema = (writerSchema, identifier) => Schema.Struct({
400
453
  status: AxmSupportSchema,
401
454
  lastVerified: Schema.NullOr(LastVerifiedDateSchema),
455
+ verification: Schema.optionalKey(Schema.NullOr(AxmVerificationSchema)),
402
456
  reason: Schema.optionalKey(Schema.NonEmptyString),
403
457
  writer: Schema.NullOr(writerSchema),
404
458
  }).annotate({
@@ -460,6 +514,13 @@ export const SubagentsExtensionCapabilitySchema = Schema.Struct({
460
514
  availability: NativeAvailabilitySchema,
461
515
  locations: Schema.Array(NativeReadLocationSchema),
462
516
  }),
517
+ Schema.Struct({
518
+ ...AvailableNativeCapabilityBaseFields,
519
+ availability: NativeAvailabilitySchema,
520
+ modeling: Schema.Literal("native-unmodeled"),
521
+ scopes: Schema.Array(ScopeSchema),
522
+ locations: Schema.Array(Schema.Never),
523
+ }),
463
524
  PluginSubagentsNativeCapabilitySchema,
464
525
  Schema.Struct(UnavailableNativeCapabilityFields),
465
526
  ]),
@@ -535,7 +596,7 @@ export const NativeConfigReadLocationSchema = Schema.Struct({
535
596
  shape: Schema.Literal("file"),
536
597
  id: Schema.NonEmptyString,
537
598
  format: ConfigFileFormatSchema,
538
- keyPath: Schema.optionalKey(Schema.NonEmptyArray(Schema.NonEmptyString)),
599
+ keyPath: Schema.optionalKey(Schema.Array(Schema.NonEmptyString)),
539
600
  attribution: Schema.optionalKey(Schema.Literals(["shared", "agent"])),
540
601
  gitignored: Schema.optionalKey(Schema.Boolean),
541
602
  })
@@ -710,8 +771,19 @@ const McpAvailableCapabilityStruct = Schema.Struct({
710
771
  native: McpNativeWithTransportsSchema,
711
772
  axm: axmCapabilityStateSchema(Schema.Struct({ config: McpConfigSchema }), "McpAxmState"),
712
773
  });
774
+ const McpUnmodeledCapabilityStruct = Schema.Struct({
775
+ native: Schema.Struct({
776
+ ...AvailableNativeCapabilityBaseFields,
777
+ modeling: Schema.Literal("native-unmodeled"),
778
+ scopes: Schema.Array(ScopeSchema),
779
+ locations: Schema.Array(Schema.Never),
780
+ entryDialect: Schema.Null,
781
+ }),
782
+ axm: NoWriterAxmCapabilityStateSchema,
783
+ });
713
784
  const McpExtensionCapabilityStruct = Schema.Union([
714
785
  McpAvailableCapabilityStruct,
786
+ McpUnmodeledCapabilityStruct,
715
787
  McpUnavailableCapabilityStruct,
716
788
  ]);
717
789
  const McpExtensionCapabilitySchemaWithChecks = McpExtensionCapabilityStruct.pipe(Schema.check(Schema.makeFilter((capability) => {
@@ -866,7 +938,14 @@ export const HookToolMappingSchema = Schema.Struct({
866
938
  description: "Native tool name with its canonical AXM tool identity and provenance.",
867
939
  });
868
940
  /** @experimental This API is unstable and may change without notice. */
869
- export const HookMechanismFamilySchema = Schema.Literals(["command-stdin", "raw"]).annotate({
941
+ export const HookMechanismFamilySchema = Schema.Literals([
942
+ "command-stdin",
943
+ "http",
944
+ "prompt",
945
+ "agent",
946
+ "mcp",
947
+ "raw",
948
+ ]).annotate({
870
949
  identifier: "HookMechanismFamily",
871
950
  title: "Hook Mechanism Family",
872
951
  description: "How a native hook system invokes a hook.",
@@ -1006,6 +1085,7 @@ const HooksAvailableNativeCapabilitySchema = Schema.Struct({
1006
1085
  });
1007
1086
  const HooksUnmodeledNativeCapabilitySchema = Schema.Struct({
1008
1087
  ...AvailableNativeCapabilityBaseFields,
1088
+ scopes: Schema.Array(ScopeSchema),
1009
1089
  modeling: Schema.Literal("native-unmodeled"),
1010
1090
  entryDialect: Schema.NullOr(HookEntryDialectSchema),
1011
1091
  locations: Schema.Array(NativeConfigReadLocationSchema),
@@ -1024,10 +1104,10 @@ export const HooksExtensionCapabilitySchema = HooksExtensionCapabilityStruct.pip
1024
1104
  if ("locations" in capability.native) {
1025
1105
  issues.push(...nativeConfigReferenceIssues(capability.native.locations, capability.axm.writer?.locationIds ?? [], ["axm", "writer", "locationIds"]));
1026
1106
  const selected = new Set(capability.axm.writer?.locationIds ?? []);
1027
- if (capability.native.locations.some((location) => selected.has(location.id) && location.keyPath === undefined))
1107
+ if (capability.native.locations.some((location) => selected.has(location.id) && location.keyPath?.length !== 1))
1028
1108
  issues.push({
1029
1109
  path: ["native", "locations"],
1030
- issue: "Writable Hook reader locations require a static keyPath.",
1110
+ issue: "Writable Hook reader locations require a single static container key.",
1031
1111
  });
1032
1112
  }
1033
1113
  if (capability.axm.writer !== null &&
@@ -1235,6 +1315,7 @@ const AgentStruct = Schema.Struct({
1235
1315
  rootDir: Schema.NullOr(Schema.NonEmptyString),
1236
1316
  installTarget: Schema.optionalKey(HostedInstallTargetSchema),
1237
1317
  lifecycle: AgentLifecycleSchema,
1318
+ profile: Schema.optionalKey(AgentProfileSchema),
1238
1319
  detection: DetectionSchema,
1239
1320
  docs: Schema.Array(DocLinkSchema),
1240
1321
  capabilities: AgentCapabilitiesSchema,
@@ -1,23 +1,39 @@
1
- import type { Agent, AgentExtensionCapability } from "./schema.js";
1
+ import * as Schema from "effect/Schema";
2
+ import { type Agent } from "./schema.js";
2
3
  /** @experimental This API is unstable and may change without notice. */
3
4
  export declare const CAPABILITY_VERIFICATION_BUDGET_DAYS: {
4
5
  readonly skill: 90;
6
+ readonly "mcp-server": 90;
7
+ readonly subagent: 90;
8
+ readonly hook: 90;
9
+ readonly rule: 90;
10
+ readonly permissions: 90;
5
11
  };
6
12
  /** @experimental This API is unstable and may change without notice. */
7
13
  export type AgentCapabilitySlot = keyof Agent["capabilities"] | "rule" | "permissions";
8
14
  /** @experimental This API is unstable and may change without notice. */
9
- export interface CapabilityVerificationAge {
10
- readonly agentId: string;
11
- readonly capability: AgentCapabilitySlot;
12
- readonly status: AgentExtensionCapability["axm"]["status"];
13
- readonly lastVerified: string | null;
14
- readonly ageDays: number | null;
15
- readonly budgetDays: number | null;
16
- readonly overdue: boolean;
17
- }
15
+ export declare const CapabilityVerificationAgeSchema: Schema.Struct<{
16
+ readonly agentId: Schema.String;
17
+ readonly capability: Schema.Literals<readonly ["skill", "mcp-server", "subagent", "hook", "rule", "permissions"]>;
18
+ readonly status: Schema.Literals<readonly ["supported", "planned", "unsupported", "unknown"]>;
19
+ readonly legacyLastVerified: Schema.NullOr<Schema.NonEmptyString>;
20
+ readonly legacyAgeDays: Schema.NullOr<Schema.Number>;
21
+ readonly reviewedAt: Schema.NullOr<Schema.NonEmptyString>;
22
+ readonly reviewAgeDays: Schema.NullOr<Schema.Number>;
23
+ readonly reviewMissing: Schema.Boolean;
24
+ readonly verifiedAt: Schema.NullOr<Schema.NonEmptyString>;
25
+ readonly verificationAgeDays: Schema.NullOr<Schema.Number>;
26
+ readonly verificationMissing: Schema.Boolean;
27
+ readonly verificationBoundary: Schema.NullOr<Schema.Literals<readonly ["configuration", "vendor-runtime"]>>;
28
+ readonly budgetDays: Schema.Number;
29
+ readonly reviewOverdue: Schema.Boolean;
30
+ readonly verificationOverdue: Schema.Boolean;
31
+ }>;
32
+ export type CapabilityVerificationAge = Schema.Schema.Type<typeof CapabilityVerificationAgeSchema>;
18
33
  /**
19
- * Reports verification age for every catalog capability independently. Pass an
20
- * ISO date explicitly so CI and maintenance tooling produce reproducible output.
34
+ * Reports source review, execution verification and historical record age
35
+ * independently. Missing evidence stays missing, even after a profile review.
36
+ * Pass an ISO date explicitly so maintenance tooling is reproducible.
21
37
  *
22
38
  * @experimental This API is unstable and may change without notice.
23
39
  */
@@ -1,7 +1,32 @@
1
+ import * as Schema from "effect/Schema";
2
+ import { AxmSupportSchema, LastVerifiedDateSchema, } from "./schema.js";
1
3
  /** @experimental This API is unstable and may change without notice. */
2
4
  export const CAPABILITY_VERIFICATION_BUDGET_DAYS = {
3
5
  skill: 90,
6
+ "mcp-server": 90,
7
+ subagent: 90,
8
+ hook: 90,
9
+ rule: 90,
10
+ permissions: 90,
4
11
  };
12
+ /** @experimental This API is unstable and may change without notice. */
13
+ export const CapabilityVerificationAgeSchema = Schema.Struct({
14
+ agentId: Schema.String,
15
+ capability: Schema.Literals(["skill", "mcp-server", "subagent", "hook", "rule", "permissions"]),
16
+ status: AxmSupportSchema,
17
+ legacyLastVerified: Schema.NullOr(LastVerifiedDateSchema),
18
+ legacyAgeDays: Schema.NullOr(Schema.Number),
19
+ reviewedAt: Schema.NullOr(LastVerifiedDateSchema),
20
+ reviewAgeDays: Schema.NullOr(Schema.Number),
21
+ reviewMissing: Schema.Boolean,
22
+ verifiedAt: Schema.NullOr(LastVerifiedDateSchema),
23
+ verificationAgeDays: Schema.NullOr(Schema.Number),
24
+ verificationMissing: Schema.Boolean,
25
+ verificationBoundary: Schema.NullOr(Schema.Literals(["configuration", "vendor-runtime"])),
26
+ budgetDays: Schema.Number,
27
+ reviewOverdue: Schema.Boolean,
28
+ verificationOverdue: Schema.Boolean,
29
+ });
5
30
  const DAY_IN_MILLISECONDS = 24 * 60 * 60 * 1_000;
6
31
  const capabilitySlots = (agent) => [
7
32
  ["skill", agent.capabilities.skill],
@@ -17,24 +42,36 @@ const ageInDays = (lastVerified, asOf) => {
17
42
  return Math.floor((reportAt - verifiedAt) / DAY_IN_MILLISECONDS);
18
43
  };
19
44
  /**
20
- * Reports verification age for every catalog capability independently. Pass an
21
- * ISO date explicitly so CI and maintenance tooling produce reproducible output.
45
+ * Reports source review, execution verification and historical record age
46
+ * independently. Missing evidence stays missing, even after a profile review.
47
+ * Pass an ISO date explicitly so maintenance tooling is reproducible.
22
48
  *
23
49
  * @experimental This API is unstable and may change without notice.
24
50
  */
25
51
  export const capabilityVerificationAgeReport = (agents, asOf) => agents.flatMap((agent) => capabilitySlots(agent).map(([capabilityName, capability]) => {
26
- const budgetDays = capabilityName === "skill" ? CAPABILITY_VERIFICATION_BUDGET_DAYS.skill : null;
27
- const ageDays = capability.axm.lastVerified === null ? null : ageInDays(capability.axm.lastVerified, asOf);
52
+ const budgetDays = CAPABILITY_VERIFICATION_BUDGET_DAYS[capabilityName];
53
+ const legacyAgeDays = capability.axm.lastVerified === null ? null : ageInDays(capability.axm.lastVerified, asOf);
54
+ const reviewedAt = capability.native.review?.reviewedAt ?? null;
55
+ const verifiedAt = capability.axm.verification?.verifiedAt ?? null;
56
+ const reviewAgeDays = reviewedAt === null ? null : ageInDays(reviewedAt, asOf);
57
+ const verificationAgeDays = verifiedAt === null ? null : ageInDays(verifiedAt, asOf);
28
58
  return {
29
59
  agentId: agent.id,
30
60
  capability: capabilityName,
31
61
  status: capability.axm.status,
32
- lastVerified: capability.axm.lastVerified,
33
- ageDays,
62
+ legacyLastVerified: capability.axm.lastVerified,
63
+ legacyAgeDays,
64
+ reviewedAt,
65
+ reviewAgeDays,
66
+ reviewMissing: reviewedAt === null,
67
+ verifiedAt,
68
+ verificationAgeDays,
69
+ verificationMissing: verifiedAt === null,
70
+ verificationBoundary: capability.axm.verification?.boundary ?? null,
34
71
  budgetDays,
35
- overdue: capability.axm.status === "supported" &&
36
- budgetDays !== null &&
37
- (ageDays === null || ageDays > budgetDays),
72
+ reviewOverdue: reviewAgeDays === null || reviewAgeDays > budgetDays,
73
+ verificationOverdue: (capability.axm.status === "supported" || capability.axm.writer !== null) &&
74
+ (verificationAgeDays === null || verificationAgeDays > budgetDays),
38
75
  };
39
76
  }));
40
77
  //# sourceMappingURL=verification.js.map
@@ -59,7 +59,7 @@ export interface AgentDetectionDescriptor {
59
59
  /** @experimental This API is unstable and may change without notice. */
60
60
  export { CONFIGURABLE_AGENT_IDS, type ConfigurableAgentId };
61
61
  /** Real agents that can participate in native materialization. @experimental */
62
- export declare const MATERIALIZATION_TARGET_IDS: readonly ["adal", "aider-desk", "amp", "antigravity", "antigravity-cli", "augment", "claude-code", "cline", "codearts-agent", "codebuddy", "codemaker", "codestudio", "codex", "command-code", "continue", "cortex", "crush", "cursor", "deepagents", "devin", "dexto", "droid", "firebender", "forgecode", "gemini-cli", "github-copilot-cli", "goose", "grok-cli", "hermes", "ibm-bob", "iflow-cli", "junie", "lingma", "kilo", "kimi-cli", "kiro-cli", "kode", "mcpjam", "minimax-code", "mistral-vibe", "mux", "neovate", "openclaw", "opencode", "openhands", "ona", "pi", "pochi", "qoder", "qoder-cn", "qwen-code", "replit", "roo", "rovodev", "tabnine-cli", "trae-cn", "trae", "warp", "windsurf", "zencoder", "zed", "zenflow"];
62
+ export declare const MATERIALIZATION_TARGET_IDS: readonly ["adal", "fx", "muse-code", "mimo-code", "coder-agents", "aider-desk", "amp", "antigravity", "antigravity-cli", "augment", "claude-code", "cline", "codearts-agent", "codebuddy", "codemaker", "codestudio", "codex", "command-code", "continue", "cortex", "crush", "cursor", "deepagents", "devin", "dexto", "droid", "firebender", "forgecode", "gemini-cli", "github-copilot-cli", "goose", "grok-cli", "hermes", "ibm-bob", "iflow-cli", "junie", "lingma", "kilo", "kimi-cli", "kiro-cli", "kode", "mcpjam", "minimax-code", "mistral-vibe", "mux", "neovate", "openclaw", "opencode", "openhands", "ona", "pi", "pochi", "qoder", "qoder-cn", "qwen-code", "replit", "roo", "rovodev", "tabnine-cli", "trae-cn", "trae", "warp", "windsurf", "zencoder", "zed", "zenflow"];
63
63
  /** @experimental This API is unstable and may change without notice. */
64
64
  export type MaterializationTargetId = (typeof MATERIALIZATION_TARGET_IDS)[number];
65
65
  /**
@@ -681,7 +681,7 @@ export { AgentIdSchema };
681
681
  *
682
682
  * @experimental This API is unstable and may change without notice.
683
683
  */
684
- export declare const ConfigurableAgentIdSchema: Schema.Literals<readonly ["adal", "aider-desk", "amp", "antigravity", "antigravity-cli", "augment", "claude-code", "cline", "codearts-agent", "codebuddy", "codemaker", "codestudio", "codex", "command-code", "continue", "cortex", "crush", "cursor", "deepagents", "devin", "dexto", "droid", "firebender", "forgecode", "gemini-cli", "github-copilot-cli", "goose", "grok-cli", "hermes", "ibm-bob", "iflow-cli", "junie", "lingma", "kilo", "kimi-cli", "kiro-cli", "kode", "mcpjam", "minimax-code", "mistral-vibe", "mux", "neovate", "openclaw", "opencode", "openhands", "ona", "pi", "pochi", "qoder", "qoder-cn", "qwen-code", "replit", "roo", "rovodev", "tabnine-cli", "trae-cn", "trae", "warp", "windsurf", "zencoder", "zed", "zenflow"]>;
684
+ export declare const ConfigurableAgentIdSchema: Schema.Literals<readonly ["adal", "fx", "muse-code", "mimo-code", "coder-agents", "aider-desk", "amp", "antigravity", "antigravity-cli", "augment", "claude-code", "cline", "codearts-agent", "codebuddy", "codemaker", "codestudio", "codex", "command-code", "continue", "cortex", "crush", "cursor", "deepagents", "devin", "dexto", "droid", "firebender", "forgecode", "gemini-cli", "github-copilot-cli", "goose", "grok-cli", "hermes", "ibm-bob", "iflow-cli", "junie", "lingma", "kilo", "kimi-cli", "kiro-cli", "kode", "mcpjam", "minimax-code", "mistral-vibe", "mux", "neovate", "openclaw", "opencode", "openhands", "ona", "pi", "pochi", "qoder", "qoder-cn", "qwen-code", "replit", "roo", "rovodev", "tabnine-cli", "trae-cn", "trae", "warp", "windsurf", "zencoder", "zed", "zenflow"]>;
685
685
  /**
686
686
  * Inferred type for AgentId schema.
687
687
  *
@@ -24,27 +24,6 @@ export declare const UNIVERSAL_SKILLS_DIR_SEGMENT: string;
24
24
  * Strips trailing path separators from a path string.
25
25
  */
26
26
  export declare const stripTrailingSeparators: (path: string) => string;
27
- /**
28
- * Returns `true` when `dir` is the workspace-relative universal skills
29
- * directory path. Use for descriptor-level comparisons where paths are
30
- * relative (e.g., `agent.skills.dir`).
31
- *
32
- * @see {@link isUniversalSkillsDir} for absolute resolved-path comparisons
33
- * (e.g., after `resolveEffectiveSkillsDir`).
34
- */
35
- export declare const isUniversalSkillsRelativeDir: (dir: string) => boolean;
36
- /**
37
- * Resolve per-agent artifact presence when some agents share the universal
38
- * skills directory. If any agent in `universalAgentIds` has the artifact,
39
- * all agents in that set are treated as having it — because the directory
40
- * is shared, one symlink/copy satisfies them all.
41
- *
42
- * Returns the input unchanged when `universalAgentIds` is empty.
43
- */
44
- export declare const resolveUniversalDirPresence: <T extends {
45
- readonly agentId: string;
46
- readonly exists: boolean;
47
- }>(perAgent: ReadonlyArray<T>, universalAgentIds: ReadonlySet<string>) => ReadonlyArray<T>;
48
27
  /**
49
28
  * Returns `true` when `resolvedDir` points to the universal skills directory
50
29
  * (`<workspaceRoot>/.agents/skills`).
@@ -52,7 +31,6 @@ export declare const resolveUniversalDirPresence: <T extends {
52
31
  * Both paths are normalized by stripping trailing separators before comparison.
53
32
  *
54
33
  * Intended for comparing resolved absolute paths from `resolveEffectiveSkillsDir`.
55
- * For descriptor-level relative paths, use {@link isUniversalSkillsRelativeDir}.
56
34
  */
57
35
  export declare const isUniversalSkillsDir: (resolvedDir: string, workspaceRoot: string) => boolean;
58
36
  //# sourceMappingURL=universal-skills-dir.d.ts.map
@@ -30,33 +30,6 @@ export const stripTrailingSeparators = (path) => {
30
30
  }
31
31
  return path.slice(0, end);
32
32
  };
33
- /**
34
- * Returns `true` when `dir` is the workspace-relative universal skills
35
- * directory path. Use for descriptor-level comparisons where paths are
36
- * relative (e.g., `agent.skills.dir`).
37
- *
38
- * @see {@link isUniversalSkillsDir} for absolute resolved-path comparisons
39
- * (e.g., after `resolveEffectiveSkillsDir`).
40
- */
41
- export const isUniversalSkillsRelativeDir = (dir) => dir === UNIVERSAL_SKILLS_DIR;
42
- /**
43
- * Resolve per-agent artifact presence when some agents share the universal
44
- * skills directory. If any agent in `universalAgentIds` has the artifact,
45
- * all agents in that set are treated as having it — because the directory
46
- * is shared, one symlink/copy satisfies them all.
47
- *
48
- * Returns the input unchanged when `universalAgentIds` is empty.
49
- */
50
- export const resolveUniversalDirPresence = (perAgent, universalAgentIds) => {
51
- if (universalAgentIds.size === 0) {
52
- return perAgent;
53
- }
54
- const anyUniversalExists = perAgent.some((p) => p.exists && universalAgentIds.has(p.agentId));
55
- if (!anyUniversalExists) {
56
- return perAgent;
57
- }
58
- return perAgent.map((p) => (universalAgentIds.has(p.agentId) ? { ...p, exists: true } : p));
59
- };
60
33
  /**
61
34
  * Returns `true` when `resolvedDir` points to the universal skills directory
62
35
  * (`<workspaceRoot>/.agents/skills`).
@@ -64,7 +37,6 @@ export const resolveUniversalDirPresence = (perAgent, universalAgentIds) => {
64
37
  * Both paths are normalized by stripping trailing separators before comparison.
65
38
  *
66
39
  * Intended for comparing resolved absolute paths from `resolveEffectiveSkillsDir`.
67
- * For descriptor-level relative paths, use {@link isUniversalSkillsRelativeDir}.
68
40
  */
69
41
  export const isUniversalSkillsDir = (resolvedDir, workspaceRoot) => {
70
42
  const sep = "/";
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "description": "Shared AgentXM extension model: identities, manifests, version constraints, and agent capabilities. Unstable and unsupported — use the axm.sh CLI.",
13
13
  "devDependencies": {
14
- "@agentxm/specification-metadata": "0.37.3",
14
+ "@agentxm/specification-metadata": "0.38.0",
15
15
  "@effect/vitest": "4.0.0-rc.117",
16
16
  "@fast-check/vitest": "^0.5.0",
17
17
  "@types/semver": "^7.8.0",
@@ -305,5 +305,5 @@
305
305
  },
306
306
  "sideEffects": false,
307
307
  "type": "module",
308
- "version": "0.37.3"
308
+ "version": "0.38.0"
309
309
  }