@agentxm/extension-model 0.29.2 → 0.30.1

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.
@@ -3,7 +3,6 @@
3
3
  *
4
4
  * @experimental This API is unstable and may change without notice.
5
5
  */
6
- import * as Schema from "effect/Schema";
7
6
  import { adalAgent, aiderDeskAgent, ampAgent, antigravityCliAgent, antigravityAgent, augmentAgent, chatgptAgent, claudeAiAgent, claudeCodeAgent, clineAgent, codeartsAgentAgent, codebuddyAgent, codemakerAgent, codestudioAgent, codexAgent, commandCodeAgent, continueAgent, cortexAgent, coworkAgent, crushAgent, cursorAgent, deepagentsAgent, devinAgent, dextoAgent, droidAgent, firebenderAgent, forgecodeAgent, geminiCliAgent, geminiAppAgent, githubCopilotCliAgent, gooseAgent, grokCliAgent, hermesAgent, ibmBobAgent, iflowCliAgent, junieAgent, lingmaAgent, kiloAgent, kimiCliAgent, kiroCliAgent, kodeAgent, mcpjamAgent, minimaxCodeAgent, mistralVibeAgent, muxAgent, neovateAgent, openclawAgent, opencodeAgent, openhandsAgent, onaAgent, piAgent, pochiAgent, qoderAgent, qoderCnAgent, qwenCodeAgent, replitAgent, rooAgent, rovodevAgent, tabnineCliAgent, traeCnAgent, traeAgent, warpAgent, windsurfAgent, zencoderAgent, zedAgent, zenflowAgent, } from "./data/agents/index.js";
8
7
  const defineCatalog = (entries) => entries;
9
8
  /** @experimental This API is unstable and may change without notice. */
@@ -72,71 +71,6 @@ export const CONFIGURABLE_AGENTS_BY_ID = defineCatalog({
72
71
  zenflow: zenflowAgent,
73
72
  });
74
73
  /** @experimental This API is unstable and may change without notice. */
75
- export const CONFIGURABLE_AGENT_IDS = [
76
- "adal",
77
- "aider-desk",
78
- "amp",
79
- "antigravity",
80
- "antigravity-cli",
81
- "augment",
82
- "claude-code",
83
- "cline",
84
- "codearts-agent",
85
- "codebuddy",
86
- "codemaker",
87
- "codestudio",
88
- "codex",
89
- "command-code",
90
- "continue",
91
- "cortex",
92
- "crush",
93
- "cursor",
94
- "deepagents",
95
- "devin",
96
- "dexto",
97
- "droid",
98
- "firebender",
99
- "forgecode",
100
- "gemini-cli",
101
- "github-copilot-cli",
102
- "goose",
103
- "grok-cli",
104
- "hermes",
105
- "ibm-bob",
106
- "iflow-cli",
107
- "junie",
108
- "lingma",
109
- "kilo",
110
- "kimi-cli",
111
- "kiro-cli",
112
- "kode",
113
- "mcpjam",
114
- "minimax-code",
115
- "mistral-vibe",
116
- "mux",
117
- "neovate",
118
- "openclaw",
119
- "opencode",
120
- "openhands",
121
- "ona",
122
- "pi",
123
- "pochi",
124
- "qoder",
125
- "qoder-cn",
126
- "qwen-code",
127
- "replit",
128
- "roo",
129
- "rovodev",
130
- "tabnine-cli",
131
- "trae-cn",
132
- "trae",
133
- "warp",
134
- "windsurf",
135
- "zencoder",
136
- "zed",
137
- "zenflow",
138
- ];
139
- /** @experimental This API is unstable and may change without notice. */
140
74
  export const HOSTED_AGENTS_BY_ID = defineCatalog({
141
75
  chatgpt: chatgptAgent,
142
76
  "claude-ai": claudeAiAgent,
@@ -144,29 +78,10 @@ export const HOSTED_AGENTS_BY_ID = defineCatalog({
144
78
  "gemini-app": geminiAppAgent,
145
79
  });
146
80
  /** @experimental This API is unstable and may change without notice. */
147
- export const HOSTED_AGENT_IDS = [
148
- "chatgpt",
149
- "claude-ai",
150
- "cowork",
151
- "gemini-app",
152
- ];
153
- /** @experimental This API is unstable and may change without notice. */
154
81
  export const AGENTS_BY_ID = defineCatalog({
155
82
  ...CONFIGURABLE_AGENTS_BY_ID,
156
83
  ...HOSTED_AGENTS_BY_ID,
157
84
  });
158
85
  /** @experimental This API is unstable and may change without notice. */
159
- export const AGENT_IDS = [
160
- ...CONFIGURABLE_AGENT_IDS,
161
- ...HOSTED_AGENT_IDS,
162
- ];
163
- /** @experimental This API is unstable and may change without notice. */
164
- export const AgentIdSchema = Schema.Literals(AGENT_IDS).annotate({
165
- identifier: "AgentId",
166
- title: "Agent ID",
167
- description: "Verified coding agent identifier in the capability catalog.",
168
- examples: ["claude-code", "codex", "cursor"],
169
- });
170
- /** @experimental This API is unstable and may change without notice. */
171
86
  export const AGENTS = Object.values(AGENTS_BY_ID);
172
87
  //# sourceMappingURL=catalog.js.map
@@ -108,8 +108,8 @@ export interface HookPortabilityVerdict {
108
108
  export declare const canonicalCoverage: (agent: Agent) => {
109
109
  events: readonly ("session.start" | "prompt.submit" | "turn.end" | "tool.pre" | "tool.post" | "subagent.stop" | "compaction.pre")[];
110
110
  tools: readonly ("file.read" | "file.write" | "file.edit" | "shell.exec" | "web.fetch" | "mcp.call")[];
111
- mechanism: readonly ("command-stdin" | "raw")[];
112
- matcherKinds: readonly ("regex" | "literal-list" | "glob" | "tool-category" | "exact-substring" | "none-imperative")[];
111
+ mechanism: readonly ("raw" | "command-stdin")[];
112
+ matcherKinds: readonly ("regex" | "glob" | "literal-list" | "tool-category" | "exact-substring" | "none-imperative")[];
113
113
  decision: ({
114
114
  readonly kind: "observe";
115
115
  } | {
@@ -4,7 +4,8 @@
4
4
  * @experimental This API is unstable and may change without notice.
5
5
  */
6
6
  import { PER_AGENT_EXTENSION_TYPES } from "../extensions/common.js";
7
- import { AGENTS, CONFIGURABLE_AGENT_IDS } from "./catalog.js";
7
+ import { AGENTS } from "./catalog.js";
8
+ import { CONFIGURABLE_AGENT_IDS } from "./identity.js";
8
9
  import { LEAF_EXTENSION_TYPES } from "../extension-types/schema.js";
9
10
  import { SUPPORTED_AXM_SUPPORT, } from "./schema.js";
10
11
  import {} from "../extensions/common.js";
@@ -0,0 +1,17 @@
1
+ /** Published coding-agent identities, independent of capability data and adapters. */
2
+ import * as Schema from "effect/Schema";
3
+ /** @experimental This API is unstable and may change without notice. */
4
+ export declare const CONFIGURABLE_AGENT_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"];
5
+ /** @experimental This API is unstable and may change without notice. */
6
+ export type ConfigurableAgentId = (typeof CONFIGURABLE_AGENT_IDS)[number];
7
+ /** @experimental This API is unstable and may change without notice. */
8
+ export declare const HOSTED_AGENT_IDS: readonly ["chatgpt", "claude-ai", "cowork", "gemini-app"];
9
+ /** @experimental This API is unstable and may change without notice. */
10
+ export type HostedAgentId = (typeof HOSTED_AGENT_IDS)[number];
11
+ /** @experimental This API is unstable and may change without notice. */
12
+ export declare const AGENT_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", "chatgpt", "claude-ai", "cowork", "gemini-app"];
13
+ /** @experimental This API is unstable and may change without notice. */
14
+ export type AgentId = (typeof AGENT_IDS)[number];
15
+ /** @experimental This API is unstable and may change without notice. */
16
+ export declare const AgentIdSchema: 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", "chatgpt", "claude-ai", "cowork", "gemini-app"]>;
17
+ //# sourceMappingURL=identity.d.ts.map
@@ -0,0 +1,79 @@
1
+ /** Published coding-agent identities, independent of capability data and adapters. */
2
+ import * as Schema from "effect/Schema";
3
+ /** @experimental This API is unstable and may change without notice. */
4
+ export const CONFIGURABLE_AGENT_IDS = [
5
+ "adal",
6
+ "aider-desk",
7
+ "amp",
8
+ "antigravity",
9
+ "antigravity-cli",
10
+ "augment",
11
+ "claude-code",
12
+ "cline",
13
+ "codearts-agent",
14
+ "codebuddy",
15
+ "codemaker",
16
+ "codestudio",
17
+ "codex",
18
+ "command-code",
19
+ "continue",
20
+ "cortex",
21
+ "crush",
22
+ "cursor",
23
+ "deepagents",
24
+ "devin",
25
+ "dexto",
26
+ "droid",
27
+ "firebender",
28
+ "forgecode",
29
+ "gemini-cli",
30
+ "github-copilot-cli",
31
+ "goose",
32
+ "grok-cli",
33
+ "hermes",
34
+ "ibm-bob",
35
+ "iflow-cli",
36
+ "junie",
37
+ "lingma",
38
+ "kilo",
39
+ "kimi-cli",
40
+ "kiro-cli",
41
+ "kode",
42
+ "mcpjam",
43
+ "minimax-code",
44
+ "mistral-vibe",
45
+ "mux",
46
+ "neovate",
47
+ "openclaw",
48
+ "opencode",
49
+ "openhands",
50
+ "ona",
51
+ "pi",
52
+ "pochi",
53
+ "qoder",
54
+ "qoder-cn",
55
+ "qwen-code",
56
+ "replit",
57
+ "roo",
58
+ "rovodev",
59
+ "tabnine-cli",
60
+ "trae-cn",
61
+ "trae",
62
+ "warp",
63
+ "windsurf",
64
+ "zencoder",
65
+ "zed",
66
+ "zenflow",
67
+ ];
68
+ /** @experimental This API is unstable and may change without notice. */
69
+ export const HOSTED_AGENT_IDS = ["chatgpt", "claude-ai", "cowork", "gemini-app"];
70
+ /** @experimental This API is unstable and may change without notice. */
71
+ export const AGENT_IDS = [...CONFIGURABLE_AGENT_IDS, ...HOSTED_AGENT_IDS];
72
+ /** @experimental This API is unstable and may change without notice. */
73
+ export const AgentIdSchema = Schema.Literals(AGENT_IDS).annotate({
74
+ identifier: "AgentId",
75
+ title: "Agent ID",
76
+ description: "Verified coding agent identifier in the capability catalog.",
77
+ examples: ["claude-code", "codex", "cursor"],
78
+ });
79
+ //# sourceMappingURL=identity.js.map
@@ -10,6 +10,7 @@ export { type PerAgentType } from "../extensions/common.js";
10
10
  export { STANDARDS } from "../extension-types/standards.js";
11
11
  export { CAPABILITY_VERIFICATION_BUDGET_DAYS, capabilityVerificationAgeReport, type AgentCapabilitySlot, type CapabilityVerificationAge, } from "./verification.js";
12
12
  export { agentCapabilityStatus, agentSupportsType, axmIntegrationStatus, canonicalCoverage, deriveAgentDescriptor, deriveSkillConvention, deriveHookPortability, getSupportedAgentsForExtension, getSupportedAgentsForExtensionType, getSupportedAgentsForExtensionTypes, getSupportedExtensionTypesForAgent, isCapabilitySupported, isLeafExtensionType, listCapabilities, installable, toNativeAgent, type AgentCapabilityStatus, type AxmIntegrationStatus, type CapabilityListing, type ExtensionCompatibilityInput, type HookDecisionKind, type HookDecisionRequirement, type HookInstallabilityVerdict, type HookInstallBinding, type HookPortabilityRequirement, type HookPortabilityVerdict, type NativeAgent, type NativeAgentCapabilities, } from "./derive.js";
13
- export { AGENTS, AGENTS_BY_ID, AGENT_IDS, AgentIdSchema, CONFIGURABLE_AGENTS_BY_ID, CONFIGURABLE_AGENT_IDS, HOSTED_AGENTS_BY_ID, HOSTED_AGENT_IDS, type AgentId, type ConfigurableAgentId, type HostedAgentId, } from "./catalog.js";
13
+ export { AGENTS, AGENTS_BY_ID, CONFIGURABLE_AGENTS_BY_ID, HOSTED_AGENTS_BY_ID } from "./catalog.js";
14
+ export { AGENT_IDS, AgentIdSchema, CONFIGURABLE_AGENT_IDS, HOSTED_AGENT_IDS, type AgentId, type ConfigurableAgentId, type HostedAgentId, } from "./identity.js";
14
15
  export { agentById } from "./lookup.js";
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -10,6 +10,7 @@ export {} from "../extensions/common.js";
10
10
  export { STANDARDS } from "../extension-types/standards.js";
11
11
  export { CAPABILITY_VERIFICATION_BUDGET_DAYS, capabilityVerificationAgeReport, } from "./verification.js";
12
12
  export { agentCapabilityStatus, agentSupportsType, axmIntegrationStatus, canonicalCoverage, deriveAgentDescriptor, deriveSkillConvention, deriveHookPortability, getSupportedAgentsForExtension, getSupportedAgentsForExtensionType, getSupportedAgentsForExtensionTypes, getSupportedExtensionTypesForAgent, isCapabilitySupported, isLeafExtensionType, listCapabilities, installable, toNativeAgent, } from "./derive.js";
13
- export { AGENTS, AGENTS_BY_ID, AGENT_IDS, AgentIdSchema, CONFIGURABLE_AGENTS_BY_ID, CONFIGURABLE_AGENT_IDS, HOSTED_AGENTS_BY_ID, HOSTED_AGENT_IDS, } from "./catalog.js";
13
+ export { AGENTS, AGENTS_BY_ID, CONFIGURABLE_AGENTS_BY_ID, HOSTED_AGENTS_BY_ID } from "./catalog.js";
14
+ export { AGENT_IDS, AgentIdSchema, CONFIGURABLE_AGENT_IDS, HOSTED_AGENT_IDS, } from "./identity.js";
14
15
  export { agentById } from "./lookup.js";
15
16
  //# sourceMappingURL=index.js.map
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @experimental This API is unstable and may change without notice.
5
5
  */
6
- import { type AgentId } from "./catalog.js";
6
+ import { type AgentId } from "./identity.js";
7
7
  import type { Agent } from "./schema.js";
8
8
  /** @experimental This API is unstable and may change without notice. */
9
9
  export declare const agentById: (id: AgentId) => Agent;
@@ -4,6 +4,7 @@
4
4
  * @experimental This API is unstable and may change without notice.
5
5
  */
6
6
  import { AGENTS_BY_ID } from "./catalog.js";
7
+ import {} from "./identity.js";
7
8
  /** @experimental This API is unstable and may change without notice. */
8
9
  export const agentById = (id) => AGENTS_BY_ID[id];
9
10
  //# sourceMappingURL=lookup.js.map
@@ -5,7 +5,7 @@
5
5
  * @packageDocumentation
6
6
  */
7
7
  import type { Record } from "effect";
8
- import { CONFIGURABLE_AGENT_IDS, type ConfigurableAgentId } from "../agent-capabilities/catalog.js";
8
+ import { CONFIGURABLE_AGENT_IDS, type ConfigurableAgentId } from "../agent-capabilities/identity.js";
9
9
  import type { DetectionMarker, Scope, ScopeDetection, SkillReadPath } from "../agent-capabilities/schema.js";
10
10
  /**
11
11
  * Skills-specific configuration for an agent.
@@ -4,7 +4,7 @@
4
4
  * @experimental This API is unstable and may change without notice.
5
5
  * @packageDocumentation
6
6
  */
7
- import { CONFIGURABLE_AGENT_IDS } from "../agent-capabilities/catalog.js";
7
+ import { CONFIGURABLE_AGENT_IDS, } from "../agent-capabilities/identity.js";
8
8
  // -----------------------------------------------------------------------------
9
9
  // Agent Identifiers
10
10
  // -----------------------------------------------------------------------------
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import * as Schema from "effect/Schema";
7
7
  import * as Option from "effect/Option";
8
- import { AgentIdSchema } from "../agent-capabilities/catalog.js";
8
+ import { AgentIdSchema } from "../agent-capabilities/identity.js";
9
9
  /**
10
10
  * Author information for a manifest.
11
11
  *
@@ -512,7 +512,7 @@ export declare const NonPackManifestFields: {
512
512
  };
513
513
  /**
514
514
  * Agent identifier enumeration for supported coding agents: the single
515
- * definition lives in the capability catalog.
515
+ * definition lives in the agent identity module.
516
516
  *
517
517
  * @experimental This API is unstable and may change without notice.
518
518
  */
@@ -7,8 +7,7 @@ import * as EffectRecord from "effect/Record";
7
7
  import * as Schema from "effect/Schema";
8
8
  import * as Option from "effect/Option";
9
9
  import * as Result from "effect/Result";
10
- import { AgentIdSchema } from "../agent-capabilities/catalog.js";
11
- import { CONFIGURABLE_AGENT_IDS } from "../agents/types.js";
10
+ import { AgentIdSchema, CONFIGURABLE_AGENT_IDS } from "../agent-capabilities/identity.js";
12
11
  import { HANDLE_PATTERN_SOURCE, HandleSchema } from "./handle.js";
13
12
  import { parseLicenseExpression } from "./license.js";
14
13
  import { CompanionPackageSchema } from "../package-urls/index.js";
@@ -577,7 +576,7 @@ export const NonPackManifestFields = {
577
576
  };
578
577
  /**
579
578
  * Agent identifier enumeration for supported coding agents: the single
580
- * definition lives in the capability catalog.
579
+ * definition lives in the agent identity module.
581
580
  *
582
581
  * @experimental This API is unstable and may change without notice.
583
582
  */
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Select a published extension release from domain facts.
3
+ *
4
+ * An exact request may select a yanked release; a range selects the highest
5
+ * non-yanked release it admits. Transport metadata and consumer-specific
6
+ * admission policies are outside this algorithm.
7
+ *
8
+ * @experimental This API is unstable and may change without notice.
9
+ * @packageDocumentation
10
+ */
11
+ import * as Option from "effect/Option";
12
+ import type * as DateTime from "effect/DateTime";
13
+ import { type VersionEntryLike } from "./version-constraints.js";
14
+ /** The release facts needed for selection, independent of index serialization. */
15
+ export interface ReleasedVersion extends VersionEntryLike {
16
+ readonly yankedAt?: DateTime.Utc | undefined;
17
+ }
18
+ /**
19
+ * Select the highest non-yanked version, independent of index order.
20
+ */
21
+ export declare const selectVersion: <T extends ReleasedVersion>(versions: ReadonlyArray<T>) => Option.Option<T>;
22
+ /**
23
+ * Resolve an optional exact version or range against an index: an exact
24
+ * version matches even when yanked; a range excludes yanked versions.
25
+ */
26
+ export declare const resolveVersionEntry: <T extends ReleasedVersion>(versions: ReadonlyArray<T>, versionRange: Option.Option<string>) => Option.Option<T>;
27
+ //# sourceMappingURL=version-selection.d.ts.map
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Select a published extension release from domain facts.
3
+ *
4
+ * An exact request may select a yanked release; a range selects the highest
5
+ * non-yanked release it admits. Transport metadata and consumer-specific
6
+ * admission policies are outside this algorithm.
7
+ *
8
+ * @experimental This API is unstable and may change without notice.
9
+ * @packageDocumentation
10
+ */
11
+ import * as Option from "effect/Option";
12
+ import * as semver from "semver";
13
+ import { resolveVersionInRange } from "./version-constraints.js";
14
+ /**
15
+ * Select the highest non-yanked version, independent of index order.
16
+ */
17
+ export const selectVersion = (versions) => {
18
+ const availableVersions = versions.filter((entry) => entry.yankedAt === undefined);
19
+ return resolveVersionInRange(availableVersions, Option.none());
20
+ };
21
+ /**
22
+ * Resolve an optional exact version or range against an index: an exact
23
+ * version matches even when yanked; a range excludes yanked versions.
24
+ */
25
+ export const resolveVersionEntry = (versions, versionRange) => {
26
+ if (Option.isNone(versionRange)) {
27
+ return selectVersion(versions);
28
+ }
29
+ if (semver.valid(versionRange.value) === versionRange.value) {
30
+ return Option.fromUndefinedOr(versions.find((candidate) => candidate.version === versionRange.value));
31
+ }
32
+ const availableVersions = versions.filter((entry) => entry.yankedAt === undefined);
33
+ const resolved = resolveVersionInRange(availableVersions, versionRange);
34
+ if (Option.isNone(resolved)) {
35
+ return Option.none();
36
+ }
37
+ return Option.fromUndefinedOr(availableVersions.find((candidate) => candidate.version === resolved.value.version));
38
+ };
39
+ //# sourceMappingURL=version-selection.js.map