@agentxm/extension-model 0.37.0 → 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.
- package/dist/src/unstable/agent-capabilities/catalog.d.ts +23340 -10957
- package/dist/src/unstable/agent-capabilities/catalog.js +5 -1
- package/dist/src/unstable/agent-capabilities/data/agents/adal.d.ts +58 -6
- package/dist/src/unstable/agent-capabilities/data/agents/adal.js +75 -6
- package/dist/src/unstable/agent-capabilities/data/agents/aider-desk.d.ts +94 -13
- package/dist/src/unstable/agent-capabilities/data/agents/aider-desk.js +119 -14
- package/dist/src/unstable/agent-capabilities/data/agents/amp.d.ts +127 -3
- package/dist/src/unstable/agent-capabilities/data/agents/amp.js +161 -7
- package/dist/src/unstable/agent-capabilities/data/agents/antigravity-cli.d.ts +66 -6
- package/dist/src/unstable/agent-capabilities/data/agents/antigravity-cli.js +71 -6
- package/dist/src/unstable/agent-capabilities/data/agents/antigravity.d.ts +66 -5
- package/dist/src/unstable/agent-capabilities/data/agents/antigravity.js +71 -5
- package/dist/src/unstable/agent-capabilities/data/agents/augment.d.ts +109 -0
- package/dist/src/unstable/agent-capabilities/data/agents/augment.js +133 -4
- package/dist/src/unstable/agent-capabilities/data/agents/chatgpt.d.ts +34 -10
- package/dist/src/unstable/agent-capabilities/data/agents/chatgpt.js +111 -25
- package/dist/src/unstable/agent-capabilities/data/agents/claude-ai.d.ts +35 -4
- package/dist/src/unstable/agent-capabilities/data/agents/claude-ai.js +108 -21
- package/dist/src/unstable/agent-capabilities/data/agents/claude-code.d.ts +25 -1
- package/dist/src/unstable/agent-capabilities/data/agents/claude-code.js +230 -49
- package/dist/src/unstable/agent-capabilities/data/agents/cline.d.ts +20 -3
- package/dist/src/unstable/agent-capabilities/data/agents/cline.js +111 -28
- package/dist/src/unstable/agent-capabilities/data/agents/codearts-agent.d.ts +37 -0
- package/dist/src/unstable/agent-capabilities/data/agents/codearts-agent.js +47 -2
- package/dist/src/unstable/agent-capabilities/data/agents/codebuddy.d.ts +34 -3
- package/dist/src/unstable/agent-capabilities/data/agents/codebuddy.js +54 -3
- package/dist/src/unstable/agent-capabilities/data/agents/codemaker.d.ts +29 -12
- package/dist/src/unstable/agent-capabilities/data/agents/codemaker.js +32 -12
- package/dist/src/unstable/agent-capabilities/data/agents/coder-agents.d.ts +269 -0
- package/dist/src/unstable/agent-capabilities/data/agents/coder-agents.js +294 -0
- package/dist/src/unstable/agent-capabilities/data/agents/codestudio.d.ts +32 -7
- package/dist/src/unstable/agent-capabilities/data/agents/codestudio.js +43 -8
- package/dist/src/unstable/agent-capabilities/data/agents/codex.d.ts +28 -4
- package/dist/src/unstable/agent-capabilities/data/agents/codex.js +226 -50
- package/dist/src/unstable/agent-capabilities/data/agents/command-code.d.ts +28 -4
- package/dist/src/unstable/agent-capabilities/data/agents/command-code.js +34 -4
- package/dist/src/unstable/agent-capabilities/data/agents/continue.d.ts +23 -2
- package/dist/src/unstable/agent-capabilities/data/agents/continue.js +159 -33
- package/dist/src/unstable/agent-capabilities/data/agents/cortex.d.ts +46 -1
- package/dist/src/unstable/agent-capabilities/data/agents/cortex.js +63 -1
- package/dist/src/unstable/agent-capabilities/data/agents/cowork.d.ts +21 -4
- package/dist/src/unstable/agent-capabilities/data/agents/cowork.js +108 -30
- package/dist/src/unstable/agent-capabilities/data/agents/crush.d.ts +85 -2
- package/dist/src/unstable/agent-capabilities/data/agents/crush.js +119 -10
- package/dist/src/unstable/agent-capabilities/data/agents/cursor.d.ts +21 -0
- package/dist/src/unstable/agent-capabilities/data/agents/cursor.js +138 -34
- package/dist/src/unstable/agent-capabilities/data/agents/deepagents.d.ts +143 -13
- package/dist/src/unstable/agent-capabilities/data/agents/deepagents.js +175 -11
- package/dist/src/unstable/agent-capabilities/data/agents/devin.d.ts +17 -0
- package/dist/src/unstable/agent-capabilities/data/agents/devin.js +183 -38
- package/dist/src/unstable/agent-capabilities/data/agents/dexto.d.ts +23 -6
- package/dist/src/unstable/agent-capabilities/data/agents/dexto.js +31 -6
- package/dist/src/unstable/agent-capabilities/data/agents/droid.d.ts +100 -3
- package/dist/src/unstable/agent-capabilities/data/agents/droid.js +130 -5
- package/dist/src/unstable/agent-capabilities/data/agents/firebender.d.ts +29 -4
- package/dist/src/unstable/agent-capabilities/data/agents/firebender.js +39 -5
- package/dist/src/unstable/agent-capabilities/data/agents/forgecode.d.ts +26 -2
- package/dist/src/unstable/agent-capabilities/data/agents/forgecode.js +29 -2
- package/dist/src/unstable/agent-capabilities/data/agents/fx.d.ts +282 -0
- package/dist/src/unstable/agent-capabilities/data/agents/fx.js +312 -0
- package/dist/src/unstable/agent-capabilities/data/agents/gemini-app.d.ts +34 -10
- package/dist/src/unstable/agent-capabilities/data/agents/gemini-app.js +109 -25
- package/dist/src/unstable/agent-capabilities/data/agents/gemini-cli.d.ts +25 -4
- package/dist/src/unstable/agent-capabilities/data/agents/gemini-cli.js +225 -55
- package/dist/src/unstable/agent-capabilities/data/agents/github-copilot-cli.d.ts +32 -1
- package/dist/src/unstable/agent-capabilities/data/agents/github-copilot-cli.js +133 -30
- package/dist/src/unstable/agent-capabilities/data/agents/goose.d.ts +213 -12
- package/dist/src/unstable/agent-capabilities/data/agents/goose.js +258 -18
- package/dist/src/unstable/agent-capabilities/data/agents/grok-cli.d.ts +17 -0
- package/dist/src/unstable/agent-capabilities/data/agents/grok-cli.js +108 -28
- package/dist/src/unstable/agent-capabilities/data/agents/hermes.d.ts +50 -9
- package/dist/src/unstable/agent-capabilities/data/agents/hermes.js +148 -23
- package/dist/src/unstable/agent-capabilities/data/agents/ibm-bob.d.ts +27 -3
- package/dist/src/unstable/agent-capabilities/data/agents/ibm-bob.js +30 -3
- package/dist/src/unstable/agent-capabilities/data/agents/iflow-cli.d.ts +17 -0
- package/dist/src/unstable/agent-capabilities/data/agents/iflow-cli.js +20 -0
- package/dist/src/unstable/agent-capabilities/data/agents/index.d.ts +4 -0
- package/dist/src/unstable/agent-capabilities/data/agents/index.js +4 -0
- package/dist/src/unstable/agent-capabilities/data/agents/junie.d.ts +18 -1
- package/dist/src/unstable/agent-capabilities/data/agents/junie.js +96 -24
- package/dist/src/unstable/agent-capabilities/data/agents/kilo.d.ts +39 -2
- package/dist/src/unstable/agent-capabilities/data/agents/kilo.js +49 -4
- package/dist/src/unstable/agent-capabilities/data/agents/kimi-cli.d.ts +17 -0
- package/dist/src/unstable/agent-capabilities/data/agents/kimi-cli.js +192 -39
- package/dist/src/unstable/agent-capabilities/data/agents/kiro-cli.d.ts +47 -3
- package/dist/src/unstable/agent-capabilities/data/agents/kiro-cli.js +65 -4
- package/dist/src/unstable/agent-capabilities/data/agents/kode.d.ts +40 -3
- package/dist/src/unstable/agent-capabilities/data/agents/kode.js +50 -5
- package/dist/src/unstable/agent-capabilities/data/agents/lingma.d.ts +28 -4
- package/dist/src/unstable/agent-capabilities/data/agents/lingma.js +34 -4
- package/dist/src/unstable/agent-capabilities/data/agents/mcpjam.d.ts +32 -8
- package/dist/src/unstable/agent-capabilities/data/agents/mcpjam.js +38 -8
- package/dist/src/unstable/agent-capabilities/data/agents/mimo-code.d.ts +276 -0
- package/dist/src/unstable/agent-capabilities/data/agents/mimo-code.js +311 -0
- package/dist/src/unstable/agent-capabilities/data/agents/minimax-code.d.ts +181 -23
- package/dist/src/unstable/agent-capabilities/data/agents/minimax-code.js +224 -25
- package/dist/src/unstable/agent-capabilities/data/agents/mistral-vibe.d.ts +38 -1
- package/dist/src/unstable/agent-capabilities/data/agents/mistral-vibe.js +48 -3
- package/dist/src/unstable/agent-capabilities/data/agents/muse-code.d.ts +275 -0
- package/dist/src/unstable/agent-capabilities/data/agents/muse-code.js +299 -0
- package/dist/src/unstable/agent-capabilities/data/agents/mux.d.ts +146 -17
- package/dist/src/unstable/agent-capabilities/data/agents/mux.js +198 -21
- package/dist/src/unstable/agent-capabilities/data/agents/neovate.d.ts +72 -9
- package/dist/src/unstable/agent-capabilities/data/agents/neovate.js +95 -13
- package/dist/src/unstable/agent-capabilities/data/agents/ona.d.ts +40 -6
- package/dist/src/unstable/agent-capabilities/data/agents/ona.js +50 -6
- package/dist/src/unstable/agent-capabilities/data/agents/openclaw.d.ts +158 -16
- package/dist/src/unstable/agent-capabilities/data/agents/openclaw.js +191 -17
- package/dist/src/unstable/agent-capabilities/data/agents/opencode.d.ts +78 -8
- package/dist/src/unstable/agent-capabilities/data/agents/opencode.js +92 -19
- package/dist/src/unstable/agent-capabilities/data/agents/openhands.d.ts +41 -4
- package/dist/src/unstable/agent-capabilities/data/agents/openhands.js +57 -8
- package/dist/src/unstable/agent-capabilities/data/agents/pi.d.ts +21 -4
- package/dist/src/unstable/agent-capabilities/data/agents/pi.js +28 -4
- package/dist/src/unstable/agent-capabilities/data/agents/pochi.d.ts +93 -8
- package/dist/src/unstable/agent-capabilities/data/agents/pochi.js +113 -10
- package/dist/src/unstable/agent-capabilities/data/agents/qoder-cn.d.ts +17 -0
- package/dist/src/unstable/agent-capabilities/data/agents/qoder-cn.js +22 -0
- package/dist/src/unstable/agent-capabilities/data/agents/qoder.d.ts +30 -6
- package/dist/src/unstable/agent-capabilities/data/agents/qoder.js +36 -5
- package/dist/src/unstable/agent-capabilities/data/agents/qwen-code.d.ts +37 -0
- package/dist/src/unstable/agent-capabilities/data/agents/qwen-code.js +47 -2
- package/dist/src/unstable/agent-capabilities/data/agents/replit.d.ts +36 -12
- package/dist/src/unstable/agent-capabilities/data/agents/replit.js +42 -12
- package/dist/src/unstable/agent-capabilities/data/agents/roo.d.ts +19 -2
- package/dist/src/unstable/agent-capabilities/data/agents/roo.js +23 -2
- package/dist/src/unstable/agent-capabilities/data/agents/rovodev.d.ts +37 -0
- package/dist/src/unstable/agent-capabilities/data/agents/rovodev.js +47 -2
- package/dist/src/unstable/agent-capabilities/data/agents/tabnine-cli.d.ts +65 -2
- package/dist/src/unstable/agent-capabilities/data/agents/tabnine-cli.js +79 -4
- package/dist/src/unstable/agent-capabilities/data/agents/trae-cn.d.ts +23 -6
- package/dist/src/unstable/agent-capabilities/data/agents/trae-cn.js +28 -6
- package/dist/src/unstable/agent-capabilities/data/agents/trae.d.ts +23 -6
- package/dist/src/unstable/agent-capabilities/data/agents/trae.js +27 -6
- package/dist/src/unstable/agent-capabilities/data/agents/warp.d.ts +22 -5
- package/dist/src/unstable/agent-capabilities/data/agents/warp.js +91 -23
- package/dist/src/unstable/agent-capabilities/data/agents/windsurf.d.ts +19 -2
- package/dist/src/unstable/agent-capabilities/data/agents/windsurf.js +234 -49
- package/dist/src/unstable/agent-capabilities/data/agents/zed.d.ts +41 -4
- package/dist/src/unstable/agent-capabilities/data/agents/zed.js +57 -6
- package/dist/src/unstable/agent-capabilities/data/agents/zencoder.d.ts +56 -6
- package/dist/src/unstable/agent-capabilities/data/agents/zencoder.js +76 -10
- package/dist/src/unstable/agent-capabilities/data/agents/zenflow.d.ts +87 -16
- package/dist/src/unstable/agent-capabilities/data/agents/zenflow.js +123 -22
- package/dist/src/unstable/agent-capabilities/derive.d.ts +2 -2
- package/dist/src/unstable/agent-capabilities/derive.js +25 -1
- package/dist/src/unstable/agent-capabilities/identity.d.ts +3 -3
- package/dist/src/unstable/agent-capabilities/identity.js +4 -0
- package/dist/src/unstable/agent-capabilities/index.d.ts +3 -2
- package/dist/src/unstable/agent-capabilities/index.js +3 -2
- package/dist/src/unstable/agent-capabilities/reference.d.ts +822 -0
- package/dist/src/unstable/agent-capabilities/reference.js +181 -0
- package/dist/src/unstable/agent-capabilities/schema.d.ts +934 -61
- package/dist/src/unstable/agent-capabilities/schema.js +96 -23
- package/dist/src/unstable/agent-capabilities/verification.d.ts +28 -12
- package/dist/src/unstable/agent-capabilities/verification.js +46 -9
- package/dist/src/unstable/agents/types.d.ts +1 -1
- package/dist/src/unstable/extensions/common.d.ts +1 -1
- package/dist/src/unstable/extensions/universal-skills-dir.d.ts +0 -22
- package/dist/src/unstable/extensions/universal-skills-dir.js +0 -28
- 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
|
|
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
|
|
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.
|
|
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
|
})
|
|
@@ -561,17 +622,11 @@ const nativeConfigReferenceIssues = (locations, references, writerPath) => {
|
|
|
561
622
|
return issues;
|
|
562
623
|
};
|
|
563
624
|
/** @experimental This API is unstable and may change without notice. */
|
|
564
|
-
export const
|
|
565
|
-
"
|
|
566
|
-
"
|
|
567
|
-
"
|
|
568
|
-
"
|
|
569
|
-
"context_servers",
|
|
570
|
-
]).annotate({
|
|
571
|
-
identifier: "McpServersKey",
|
|
572
|
-
title: "MCP Servers Key",
|
|
573
|
-
description: "Top-level key containing MCP server entries in an agent config file.",
|
|
574
|
-
examples: ["mcpServers", "servers", "mcp"],
|
|
625
|
+
export const McpServersPathSchema = Schema.NonEmptyArray(Schema.NonEmptyString).annotate({
|
|
626
|
+
identifier: "McpServersPath",
|
|
627
|
+
title: "MCP Servers Path",
|
|
628
|
+
description: "Object key path containing MCP server entries in a native config file.",
|
|
629
|
+
examples: [["mcpServers"], ["mcp", "servers"]],
|
|
575
630
|
});
|
|
576
631
|
/** @experimental This API is unstable and may change without notice. */
|
|
577
632
|
export const McpTargetAttributionSchema = Schema.Literals(["shared", "agent"]).annotate({
|
|
@@ -694,7 +749,7 @@ export const McpConfigSchema = Schema.Struct({
|
|
|
694
749
|
});
|
|
695
750
|
/** @experimental This API is unstable and may change without notice. */
|
|
696
751
|
export const McpEnvExpansionSchema = Schema.Struct({
|
|
697
|
-
variables: Schema.Literals(["none", "braced"]),
|
|
752
|
+
variables: Schema.Literals(["none", "braced", "env-tag"]),
|
|
698
753
|
defaults: Schema.Boolean,
|
|
699
754
|
}).annotate({
|
|
700
755
|
identifier: "McpEnvExpansion",
|
|
@@ -716,8 +771,19 @@ const McpAvailableCapabilityStruct = Schema.Struct({
|
|
|
716
771
|
native: McpNativeWithTransportsSchema,
|
|
717
772
|
axm: axmCapabilityStateSchema(Schema.Struct({ config: McpConfigSchema }), "McpAxmState"),
|
|
718
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
|
+
});
|
|
719
784
|
const McpExtensionCapabilityStruct = Schema.Union([
|
|
720
785
|
McpAvailableCapabilityStruct,
|
|
786
|
+
McpUnmodeledCapabilityStruct,
|
|
721
787
|
McpUnavailableCapabilityStruct,
|
|
722
788
|
]);
|
|
723
789
|
const McpExtensionCapabilitySchemaWithChecks = McpExtensionCapabilityStruct.pipe(Schema.check(Schema.makeFilter((capability) => {
|
|
@@ -739,12 +805,10 @@ const McpExtensionCapabilitySchemaWithChecks = McpExtensionCapabilityStruct.pipe
|
|
|
739
805
|
issue: "MCP reader locations require explicit attribution.",
|
|
740
806
|
});
|
|
741
807
|
const selected = new Set(writer?.config.locationIds ?? []);
|
|
742
|
-
if (capability.native.locations.some((location) => selected.has(location.id) &&
|
|
743
|
-
(location.keyPath?.length !== 1 ||
|
|
744
|
-
!Schema.is(McpServersKeySchema)(location.keyPath[0])))) {
|
|
808
|
+
if (capability.native.locations.some((location) => selected.has(location.id) && !Schema.is(McpServersPathSchema)(location.keyPath))) {
|
|
745
809
|
issues.push({
|
|
746
810
|
path: ["native", "locations"],
|
|
747
|
-
issue: "Writable MCP locations require
|
|
811
|
+
issue: "Writable MCP locations require a nonempty servers-container key path.",
|
|
748
812
|
});
|
|
749
813
|
}
|
|
750
814
|
}
|
|
@@ -874,7 +938,14 @@ export const HookToolMappingSchema = Schema.Struct({
|
|
|
874
938
|
description: "Native tool name with its canonical AXM tool identity and provenance.",
|
|
875
939
|
});
|
|
876
940
|
/** @experimental This API is unstable and may change without notice. */
|
|
877
|
-
export const HookMechanismFamilySchema = Schema.Literals([
|
|
941
|
+
export const HookMechanismFamilySchema = Schema.Literals([
|
|
942
|
+
"command-stdin",
|
|
943
|
+
"http",
|
|
944
|
+
"prompt",
|
|
945
|
+
"agent",
|
|
946
|
+
"mcp",
|
|
947
|
+
"raw",
|
|
948
|
+
]).annotate({
|
|
878
949
|
identifier: "HookMechanismFamily",
|
|
879
950
|
title: "Hook Mechanism Family",
|
|
880
951
|
description: "How a native hook system invokes a hook.",
|
|
@@ -1014,6 +1085,7 @@ const HooksAvailableNativeCapabilitySchema = Schema.Struct({
|
|
|
1014
1085
|
});
|
|
1015
1086
|
const HooksUnmodeledNativeCapabilitySchema = Schema.Struct({
|
|
1016
1087
|
...AvailableNativeCapabilityBaseFields,
|
|
1088
|
+
scopes: Schema.Array(ScopeSchema),
|
|
1017
1089
|
modeling: Schema.Literal("native-unmodeled"),
|
|
1018
1090
|
entryDialect: Schema.NullOr(HookEntryDialectSchema),
|
|
1019
1091
|
locations: Schema.Array(NativeConfigReadLocationSchema),
|
|
@@ -1032,10 +1104,10 @@ export const HooksExtensionCapabilitySchema = HooksExtensionCapabilityStruct.pip
|
|
|
1032
1104
|
if ("locations" in capability.native) {
|
|
1033
1105
|
issues.push(...nativeConfigReferenceIssues(capability.native.locations, capability.axm.writer?.locationIds ?? [], ["axm", "writer", "locationIds"]));
|
|
1034
1106
|
const selected = new Set(capability.axm.writer?.locationIds ?? []);
|
|
1035
|
-
if (capability.native.locations.some((location) => selected.has(location.id) && location.keyPath
|
|
1107
|
+
if (capability.native.locations.some((location) => selected.has(location.id) && location.keyPath?.length !== 1))
|
|
1036
1108
|
issues.push({
|
|
1037
1109
|
path: ["native", "locations"],
|
|
1038
|
-
issue: "Writable Hook reader locations require a static
|
|
1110
|
+
issue: "Writable Hook reader locations require a single static container key.",
|
|
1039
1111
|
});
|
|
1040
1112
|
}
|
|
1041
1113
|
if (capability.axm.writer !== null &&
|
|
@@ -1243,6 +1315,7 @@ const AgentStruct = Schema.Struct({
|
|
|
1243
1315
|
rootDir: Schema.NullOr(Schema.NonEmptyString),
|
|
1244
1316
|
installTarget: Schema.optionalKey(HostedInstallTargetSchema),
|
|
1245
1317
|
lifecycle: AgentLifecycleSchema,
|
|
1318
|
+
profile: Schema.optionalKey(AgentProfileSchema),
|
|
1246
1319
|
detection: DetectionSchema,
|
|
1247
1320
|
docs: Schema.Array(DocLinkSchema),
|
|
1248
1321
|
capabilities: AgentCapabilitiesSchema,
|
|
@@ -1,23 +1,39 @@
|
|
|
1
|
-
import
|
|
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
|
|
10
|
-
readonly agentId:
|
|
11
|
-
readonly capability:
|
|
12
|
-
readonly status:
|
|
13
|
-
readonly
|
|
14
|
-
readonly
|
|
15
|
-
readonly
|
|
16
|
-
readonly
|
|
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
|
|
20
|
-
*
|
|
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
|
|
21
|
-
*
|
|
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
|
|
27
|
-
const
|
|
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
|
-
|
|
33
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
(
|
|
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.
|
|
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.
|
|
308
|
+
"version": "0.38.0"
|
|
309
309
|
}
|