@jini-ai/agent-runtime 0.4.0 → 0.4.2

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 (129) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/acp-model-probe.d.ts +6 -27
  3. package/dist/acp-model-probe.js +6 -4
  4. package/dist/agent-protocol/acp/models.d.ts +8 -0
  5. package/dist/agent-protocol/acp/models.js +38 -6
  6. package/dist/agent-protocol/acp/session.js +15 -2
  7. package/dist/agent-protocol/pi-rpc/events.js +4 -0
  8. package/dist/amr-model-cache.d.ts +2 -12
  9. package/dist/amr-profile-resolver.d.ts +3 -14
  10. package/dist/anthropic-live-models.d.ts +1 -1
  11. package/dist/anthropic-live-models.js +0 -0
  12. package/dist/artifact-taxonomy.d.ts +3 -17
  13. package/dist/auth.d.ts +0 -6
  14. package/dist/auth.js +1 -30
  15. package/dist/claude-code-models.d.ts +3 -4
  16. package/dist/claude-code-models.js +5 -7
  17. package/dist/claude-stream.d.ts +0 -4
  18. package/dist/claude-stream.js +4 -4
  19. package/dist/copilot-stream.d.ts +0 -5
  20. package/dist/copilot-stream.js +0 -5
  21. package/dist/defs/aider.d.ts +15 -0
  22. package/dist/defs/aider.js +4 -2
  23. package/dist/defs/amp.d.ts +16 -0
  24. package/dist/defs/amp.js +5 -1
  25. package/dist/defs/amr.d.ts +15 -0
  26. package/dist/defs/amr.js +6 -15
  27. package/dist/defs/antigravity.d.ts +16 -1
  28. package/dist/defs/antigravity.js +3 -2
  29. package/dist/defs/auggie.d.ts +15 -0
  30. package/dist/defs/auggie.js +3 -0
  31. package/dist/defs/claude.d.ts +15 -0
  32. package/dist/defs/claude.js +26 -36
  33. package/dist/defs/cline.d.ts +15 -0
  34. package/dist/defs/cline.js +3 -0
  35. package/dist/defs/codebuddy.d.ts +15 -0
  36. package/dist/defs/codebuddy.js +3 -1
  37. package/dist/defs/codex.d.ts +15 -0
  38. package/dist/defs/codex.js +11 -48
  39. package/dist/defs/copilot.d.ts +15 -0
  40. package/dist/defs/copilot.js +5 -14
  41. package/dist/defs/crush.d.ts +15 -0
  42. package/dist/defs/crush.js +3 -0
  43. package/dist/defs/cursor-agent.d.ts +15 -0
  44. package/dist/defs/cursor-agent.js +3 -1
  45. package/dist/defs/deepseek.d.ts +15 -0
  46. package/dist/defs/deepseek.js +3 -1
  47. package/dist/defs/devin.d.ts +15 -0
  48. package/dist/defs/devin.js +3 -1
  49. package/dist/defs/droid.d.ts +15 -0
  50. package/dist/defs/droid.js +3 -0
  51. package/dist/defs/goose.d.ts +15 -0
  52. package/dist/defs/goose.js +3 -0
  53. package/dist/defs/grok-build.d.ts +15 -0
  54. package/dist/defs/grok-build.js +5 -9
  55. package/dist/defs/hermes.d.ts +15 -0
  56. package/dist/defs/hermes.js +3 -1
  57. package/dist/defs/index.d.ts +1 -6
  58. package/dist/defs/index.js +1 -6
  59. package/dist/defs/kilo.d.ts +15 -0
  60. package/dist/defs/kilo.js +3 -1
  61. package/dist/defs/kimi.d.ts +15 -0
  62. package/dist/defs/kimi.js +3 -1
  63. package/dist/defs/kiro.d.ts +15 -0
  64. package/dist/defs/kiro.js +3 -1
  65. package/dist/defs/mimo.d.ts +15 -0
  66. package/dist/defs/mimo.js +3 -1
  67. package/dist/defs/opencode.d.ts +15 -1
  68. package/dist/defs/opencode.js +2 -1
  69. package/dist/defs/pi.d.ts +15 -0
  70. package/dist/defs/pi.js +6 -5
  71. package/dist/defs/qoder.d.ts +15 -0
  72. package/dist/defs/qoder.js +3 -1
  73. package/dist/defs/qwen.d.ts +15 -0
  74. package/dist/defs/qwen.js +3 -1
  75. package/dist/defs/reasonix.d.ts +15 -0
  76. package/dist/defs/reasonix.js +7 -23
  77. package/dist/defs/shared.d.ts +3 -8
  78. package/dist/defs/shared.js +3 -8
  79. package/dist/defs/trae-cli.d.ts +15 -0
  80. package/dist/defs/trae-cli.js +3 -1
  81. package/dist/defs/vibe.d.ts +15 -0
  82. package/dist/defs/vibe.js +3 -1
  83. package/dist/detection.d.ts +23 -4
  84. package/dist/detection.js +41 -59
  85. package/dist/diagnostics.js +1 -9
  86. package/dist/env.js +5 -31
  87. package/dist/executables.js +0 -1
  88. package/dist/index.d.ts +10 -257
  89. package/dist/index.js +20 -278
  90. package/dist/json-event-stream.js +23 -29
  91. package/dist/launch.js +1 -5
  92. package/dist/log-file.js +0 -5
  93. package/dist/metadata.js +0 -4
  94. package/dist/mmd-routes.js +2 -6
  95. package/dist/model-discovery-adapters.d.ts +19 -0
  96. package/dist/model-discovery-adapters.js +387 -0
  97. package/dist/model-discovery-config.d.ts +17 -0
  98. package/dist/model-discovery-config.js +137 -0
  99. package/dist/model-discovery-sdk.d.ts +18 -0
  100. package/dist/model-discovery-sdk.js +56 -0
  101. package/dist/model-discovery-types.d.ts +139 -0
  102. package/dist/model-discovery-types.js +2 -0
  103. package/dist/model-discovery.d.ts +46 -0
  104. package/dist/model-discovery.js +258 -0
  105. package/dist/model-registry.d.ts +5 -36
  106. package/dist/models.d.ts +1 -4
  107. package/dist/models.js +3 -1
  108. package/dist/opencode-log.js +1 -3
  109. package/dist/paths.js +1 -4
  110. package/dist/pi-models.d.ts +1 -7
  111. package/dist/pi-models.js +1 -3
  112. package/dist/prompt-augmenter.d.ts +3 -17
  113. package/dist/prompt-augmenter.js +3 -17
  114. package/dist/providers/model-catalog.d.ts +2 -0
  115. package/dist/providers/model-catalog.js +76 -55
  116. package/dist/providers/sse-decode.d.ts +4 -48
  117. package/dist/providers/sse-decode.js +3 -108
  118. package/dist/providers/tool-turn-types.d.ts +5 -0
  119. package/dist/providers/tool-turn.js +10 -4
  120. package/dist/qoder-stream.d.ts +0 -3
  121. package/dist/qoder-stream.js +0 -3
  122. package/dist/registry.d.ts +1 -1
  123. package/dist/registry.js +3 -3
  124. package/dist/resolution.js +1 -4
  125. package/dist/role-marker-guard.d.ts +0 -5
  126. package/dist/role-marker-guard.js +0 -5
  127. package/dist/telemetry-sink.d.ts +3 -14
  128. package/dist/types.d.ts +9 -2
  129. package/package.json +28 -7
@@ -15,5 +15,20 @@ export declare const deepseekAgentDef: {
15
15
  } | undefined) => string[];
16
16
  maxPromptArgBytes: number;
17
17
  streamFormat: string;
18
+ discoverModels(requiredArgs: {
19
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
20
+ }, optionalArgs?: {
21
+ signal?: AbortSignal;
22
+ force?: boolean;
23
+ staleWhileRevalidate?: boolean;
24
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
25
+ }): Promise<import("../model-discovery-types.js").ModelCatalogSnapshot>;
26
+ resolveDefaultModel(requiredArgs: {
27
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
28
+ catalog: import("../model-discovery-types.js").ModelCatalogSnapshot;
29
+ }, optionalArgs?: {
30
+ signal?: AbortSignal;
31
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
32
+ }): Promise<import("../model-discovery-types.js").DefaultModelResolution>;
18
33
  };
19
34
  //# sourceMappingURL=deepseek.d.ts.map
@@ -1,6 +1,8 @@
1
- /** Ported verbatim from OD's `apps/daemon/src/runtimes/defs/deepseek.ts` (import path adjusted only). See `archived provenance ledger`. */
1
+ import { createAgentModelDiscovery } from '../model-discovery.js';
2
2
  import { DEFAULT_MODEL_OPTION } from './shared.js';
3
3
  export const deepseekAgentDef = {
4
+ // UNVERIFIED live integration locally; source/category and limits are documented in model-discovery-adapters.ts.
5
+ ...createAgentModelDiscovery('deepseek', { fallbackModels: () => deepseekAgentDef.fallbackModels }),
4
6
  id: 'deepseek',
5
7
  name: 'DeepSeek TUI',
6
8
  // The `deepseek` dispatcher owns the `exec` / `--auto` subcommands and
@@ -19,5 +19,20 @@ export declare const devinAgentDef: {
19
19
  streamFormat: string;
20
20
  externalMcpInjection: "acp-merge";
21
21
  imageDelivery: "native";
22
+ discoverModels(requiredArgs: {
23
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
24
+ }, optionalArgs?: {
25
+ signal?: AbortSignal;
26
+ force?: boolean;
27
+ staleWhileRevalidate?: boolean;
28
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
29
+ }): Promise<import("../model-discovery-types.js").ModelCatalogSnapshot>;
30
+ resolveDefaultModel(requiredArgs: {
31
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
32
+ catalog: import("../model-discovery-types.js").ModelCatalogSnapshot;
33
+ }, optionalArgs?: {
34
+ signal?: AbortSignal;
35
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
36
+ }): Promise<import("../model-discovery-types.js").DefaultModelResolution>;
22
37
  };
23
38
  //# sourceMappingURL=devin.d.ts.map
@@ -1,6 +1,8 @@
1
- /** Ported verbatim from OD's `apps/daemon/src/runtimes/defs/devin.ts` (import path adjusted only). See `archived provenance ledger`. */
1
+ import { createAgentModelDiscovery } from '../model-discovery.js';
2
2
  import { detectAcpModels, DEFAULT_MODEL_OPTION } from './shared.js';
3
3
  export const devinAgentDef = {
4
+ // UNVERIFIED live integration locally; source/category and limits are documented in model-discovery-adapters.ts.
5
+ ...createAgentModelDiscovery('devin', { fallbackModels: () => devinAgentDef.fallbackModels }),
4
6
  id: 'devin',
5
7
  name: 'Devin for Terminal',
6
8
  bin: 'devin',
@@ -14,5 +14,20 @@ export declare const droidAgentDef: {
14
14
  } | undefined) => string[];
15
15
  promptViaStdin: true;
16
16
  streamFormat: string;
17
+ discoverModels(requiredArgs: {
18
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
19
+ }, optionalArgs?: {
20
+ signal?: AbortSignal;
21
+ force?: boolean;
22
+ staleWhileRevalidate?: boolean;
23
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
24
+ }): Promise<import("../model-discovery-types.js").ModelCatalogSnapshot>;
25
+ resolveDefaultModel(requiredArgs: {
26
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
27
+ catalog: import("../model-discovery-types.js").ModelCatalogSnapshot;
28
+ }, optionalArgs?: {
29
+ signal?: AbortSignal;
30
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
31
+ }): Promise<import("../model-discovery-types.js").DefaultModelResolution>;
17
32
  };
18
33
  //# sourceMappingURL=droid.d.ts.map
@@ -1,3 +1,4 @@
1
+ import { createAgentModelDiscovery } from '../model-discovery.js';
1
2
  /**
2
3
  * @module defs/droid
3
4
  *
@@ -15,6 +16,8 @@
15
16
  */
16
17
  import { DEFAULT_MODEL_OPTION } from './shared.js';
17
18
  export const droidAgentDef = {
19
+ // UNVERIFIED live integration locally; source/category and limits are documented in model-discovery-adapters.ts.
20
+ ...createAgentModelDiscovery('droid', { fallbackModels: () => droidAgentDef.fallbackModels }),
18
21
  id: 'droid',
19
22
  name: 'Factory Droid',
20
23
  bin: 'droid',
@@ -12,5 +12,20 @@ export declare const gooseAgentDef: {
12
12
  streamFormat: string;
13
13
  externalMcpInjection: "acp-merge";
14
14
  imageDelivery: "native";
15
+ discoverModels(requiredArgs: {
16
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
17
+ }, optionalArgs?: {
18
+ signal?: AbortSignal;
19
+ force?: boolean;
20
+ staleWhileRevalidate?: boolean;
21
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
22
+ }): Promise<import("../model-discovery-types.js").ModelCatalogSnapshot>;
23
+ resolveDefaultModel(requiredArgs: {
24
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
25
+ catalog: import("../model-discovery-types.js").ModelCatalogSnapshot;
26
+ }, optionalArgs?: {
27
+ signal?: AbortSignal;
28
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
29
+ }): Promise<import("../model-discovery-types.js").DefaultModelResolution>;
15
30
  };
16
31
  //# sourceMappingURL=goose.d.ts.map
@@ -1,3 +1,4 @@
1
+ import { createAgentModelDiscovery } from '../model-discovery.js';
1
2
  /**
2
3
  * @module defs/goose
3
4
  *
@@ -11,6 +12,8 @@
11
12
  */
12
13
  import { detectAcpModels, DEFAULT_MODEL_OPTION } from './shared.js';
13
14
  export const gooseAgentDef = {
15
+ // UNVERIFIED live integration locally; source/category and limits are documented in model-discovery-adapters.ts.
16
+ ...createAgentModelDiscovery('goose', { fallbackModels: () => gooseAgentDef.fallbackModels }),
14
17
  id: 'goose',
15
18
  name: 'goose',
16
19
  bin: 'goose',
@@ -31,5 +31,20 @@ export declare const grokBuildAgentDef: {
31
31
  streamFormat: string;
32
32
  installUrl: string;
33
33
  docsUrl: string;
34
+ discoverModels(requiredArgs: {
35
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
36
+ }, optionalArgs?: {
37
+ signal?: AbortSignal;
38
+ force?: boolean;
39
+ staleWhileRevalidate?: boolean;
40
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
41
+ }): Promise<import("../model-discovery-types.js").ModelCatalogSnapshot>;
42
+ resolveDefaultModel(requiredArgs: {
43
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
44
+ catalog: import("../model-discovery-types.js").ModelCatalogSnapshot;
45
+ }, optionalArgs?: {
46
+ signal?: AbortSignal;
47
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
48
+ }): Promise<import("../model-discovery-types.js").DefaultModelResolution>;
34
49
  };
35
50
  //# sourceMappingURL=grok-build.d.ts.map
@@ -1,11 +1,6 @@
1
- /**
2
- * Ported from OD's `apps/daemon/src/runtimes/defs/grok-build.ts` with
3
- * several product-named comment mentions reworded to generic
4
- * host-application phrasing (no behavior change; see `archived provenance ledger` for
5
- * the exact original wording).
6
- */
1
+ import { createAgentModelDiscovery } from '../model-discovery.js';
7
2
  import { DEFAULT_MODEL_OPTION } from './shared.js';
8
- const GROK_MODEL_ID_RE = /^\*?\s*-?\s*(grok-[a-z0-9][a-z0-9._-]*)(?:\s+\(default\))?\s*$/i;
3
+ const GROK_MODEL_ID_RE = /^(?:[*•-]\s*|(?=grok-))([a-z0-9][a-z0-9./_:@\[\]-]*)(?:\s+\(default\))?\s*$/i;
9
4
  export function parseGrokBuildModels({ stdout }) {
10
5
  const seen = new Set();
11
6
  const out = [DEFAULT_MODEL_OPTION];
@@ -15,7 +10,7 @@ export function parseGrokBuildModels({ stdout }) {
15
10
  if (!id || seen.has(id))
16
11
  continue;
17
12
  seen.add(id);
18
- out.push({ id, label: id });
13
+ out.push({ id, label: id, identityKind: /^(?:xai\/)?grok-/i.test(id) && id !== 'grok-build' ? 'concrete' : 'routing-mode' });
19
14
  }
20
15
  return out;
21
16
  }
@@ -46,13 +41,14 @@ function grokModelSupportsReasoningEffort(model) {
46
41
  // tool_use streaming). Upgrading to a `grok-stream-json` event parser is
47
42
  // follow-up work once the format is stable enough to lock in.
48
43
  export const grokBuildAgentDef = {
44
+ ...createAgentModelDiscovery('grok-build', { fallbackModels: () => grokBuildAgentDef.fallbackModels, args: ['models'], parse: (input) => grokBuildAgentDef.listModels.parse(input) }),
49
45
  id: 'grok-build',
50
46
  name: 'Grok Build',
51
47
  bin: 'grok',
52
48
  versionArgs: ['--version'],
53
49
  helpArgs: ['-p', '--help'],
54
50
  // `grok models` prints status/header lines plus bullet-prefixed model ids.
55
- // Keep only concrete `grok-*` ids so UI pickers don't show prose such as
51
+ // Parse only bullet rows or bare grok IDs so UI pickers don't show prose such as
56
52
  // "You are logged in with grok.com" as selectable model names.
57
53
  listModels: {
58
54
  args: ['models'],
@@ -13,5 +13,20 @@ export declare const hermesAgentDef: {
13
13
  mcpDiscovery: string;
14
14
  externalMcpInjection: "acp-merge";
15
15
  imageDelivery: "native";
16
+ discoverModels(requiredArgs: {
17
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
18
+ }, optionalArgs?: {
19
+ signal?: AbortSignal;
20
+ force?: boolean;
21
+ staleWhileRevalidate?: boolean;
22
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
23
+ }): Promise<import("../model-discovery-types.js").ModelCatalogSnapshot>;
24
+ resolveDefaultModel(requiredArgs: {
25
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
26
+ catalog: import("../model-discovery-types.js").ModelCatalogSnapshot;
27
+ }, optionalArgs?: {
28
+ signal?: AbortSignal;
29
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
30
+ }): Promise<import("../model-discovery-types.js").DefaultModelResolution>;
16
31
  };
17
32
  //# sourceMappingURL=hermes.d.ts.map
@@ -1,6 +1,8 @@
1
- /** Ported verbatim from OD's `apps/daemon/src/runtimes/defs/hermes.ts` (import path adjusted only). See `archived provenance ledger`. */
1
+ import { createAgentModelDiscovery } from '../model-discovery.js';
2
2
  import { detectAcpModels, DEFAULT_MODEL_OPTION } from './shared.js';
3
3
  export const hermesAgentDef = {
4
+ // UNVERIFIED live integration locally; source/category and limits are documented in model-discovery-adapters.ts.
5
+ ...createAgentModelDiscovery('hermes', { fallbackModels: () => hermesAgentDef.fallbackModels }),
4
6
  id: 'hermes',
5
7
  name: 'Hermes',
6
8
  bin: 'hermes',
@@ -1,10 +1,6 @@
1
1
  /**
2
2
  * @module defs/index
3
- *
4
- * Barrel for the declarative per-CLI `RuntimeAgentDef` catalog: one file
5
- * per supported coding-agent CLI, plus AMR/Vela model-parsing helpers and
6
- * Antigravity's model-lock file. Ported from OD's
7
- * `apps/daemon/src/runtimes/defs/index.ts`.
3
+ * Declarative per-CLI RuntimeAgentDef catalog with AMR/Vela parsing and Antigravity's model lock.
8
4
  */
9
5
  export * from './aider.js';
10
6
  export * from './amp.js';
@@ -19,7 +15,6 @@ export * from './copilot.js';
19
15
  export * from './crush.js';
20
16
  export * from './cursor-agent.js';
21
17
  export * from './droid.js';
22
- export * from './gemini.js';
23
18
  export * from './deepseek.js';
24
19
  export * from './devin.js';
25
20
  export * from './goose.js';
@@ -1,10 +1,6 @@
1
1
  /**
2
2
  * @module defs/index
3
- *
4
- * Barrel for the declarative per-CLI `RuntimeAgentDef` catalog: one file
5
- * per supported coding-agent CLI, plus AMR/Vela model-parsing helpers and
6
- * Antigravity's model-lock file. Ported from OD's
7
- * `apps/daemon/src/runtimes/defs/index.ts`.
3
+ * Declarative per-CLI RuntimeAgentDef catalog with AMR/Vela parsing and Antigravity's model lock.
8
4
  */
9
5
  export * from './aider.js';
10
6
  export * from './amp.js';
@@ -19,7 +15,6 @@ export * from './copilot.js';
19
15
  export * from './crush.js';
20
16
  export * from './cursor-agent.js';
21
17
  export * from './droid.js';
22
- export * from './gemini.js';
23
18
  export * from './deepseek.js';
24
19
  export * from './devin.js';
25
20
  export * from './goose.js';
@@ -12,5 +12,20 @@ export declare const kiloAgentDef: {
12
12
  streamFormat: string;
13
13
  externalMcpInjection: "acp-merge";
14
14
  imageDelivery: "native";
15
+ discoverModels(requiredArgs: {
16
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
17
+ }, optionalArgs?: {
18
+ signal?: AbortSignal;
19
+ force?: boolean;
20
+ staleWhileRevalidate?: boolean;
21
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
22
+ }): Promise<import("../model-discovery-types.js").ModelCatalogSnapshot>;
23
+ resolveDefaultModel(requiredArgs: {
24
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
25
+ catalog: import("../model-discovery-types.js").ModelCatalogSnapshot;
26
+ }, optionalArgs?: {
27
+ signal?: AbortSignal;
28
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
29
+ }): Promise<import("../model-discovery-types.js").DefaultModelResolution>;
15
30
  };
16
31
  //# sourceMappingURL=kilo.d.ts.map
package/dist/defs/kilo.js CHANGED
@@ -1,6 +1,8 @@
1
- /** Ported verbatim from OD's `apps/daemon/src/runtimes/defs/kilo.ts` (import path adjusted only). See `archived provenance ledger`. */
1
+ import { createAgentModelDiscovery } from '../model-discovery.js';
2
2
  import { detectAcpModels, DEFAULT_MODEL_OPTION } from './shared.js';
3
3
  export const kiloAgentDef = {
4
+ // UNVERIFIED live integration locally; source/category and limits are documented in model-discovery-adapters.ts.
5
+ ...createAgentModelDiscovery('kilo', { fallbackModels: () => kiloAgentDef.fallbackModels }),
4
6
  id: 'kilo',
5
7
  name: 'Kilo',
6
8
  bin: 'kilo',
@@ -13,5 +13,20 @@ export declare const kimiAgentDef: {
13
13
  mcpDiscovery: string;
14
14
  externalMcpInjection: "acp-merge";
15
15
  imageDelivery: "native";
16
+ discoverModels(requiredArgs: {
17
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
18
+ }, optionalArgs?: {
19
+ signal?: AbortSignal;
20
+ force?: boolean;
21
+ staleWhileRevalidate?: boolean;
22
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
23
+ }): Promise<import("../model-discovery-types.js").ModelCatalogSnapshot>;
24
+ resolveDefaultModel(requiredArgs: {
25
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
26
+ catalog: import("../model-discovery-types.js").ModelCatalogSnapshot;
27
+ }, optionalArgs?: {
28
+ signal?: AbortSignal;
29
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
30
+ }): Promise<import("../model-discovery-types.js").DefaultModelResolution>;
16
31
  };
17
32
  //# sourceMappingURL=kimi.d.ts.map
package/dist/defs/kimi.js CHANGED
@@ -1,6 +1,8 @@
1
- /** Ported verbatim from OD's `apps/daemon/src/runtimes/defs/kimi.ts` (import path adjusted only). See `archived provenance ledger`. */
1
+ import { createAgentModelDiscovery } from '../model-discovery.js';
2
2
  import { detectAcpModels, DEFAULT_MODEL_OPTION } from './shared.js';
3
3
  export const kimiAgentDef = {
4
+ // UNVERIFIED live integration locally; source/category and limits are documented in model-discovery-adapters.ts.
5
+ ...createAgentModelDiscovery('kimi', { fallbackModels: () => kimiAgentDef.fallbackModels }),
4
6
  id: 'kimi',
5
7
  name: 'Kimi CLI',
6
8
  bin: 'kimi',
@@ -12,5 +12,20 @@ export declare const kiroAgentDef: {
12
12
  streamFormat: string;
13
13
  externalMcpInjection: "acp-merge";
14
14
  imageDelivery: "native";
15
+ discoverModels(requiredArgs: {
16
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
17
+ }, optionalArgs?: {
18
+ signal?: AbortSignal;
19
+ force?: boolean;
20
+ staleWhileRevalidate?: boolean;
21
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
22
+ }): Promise<import("../model-discovery-types.js").ModelCatalogSnapshot>;
23
+ resolveDefaultModel(requiredArgs: {
24
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
25
+ catalog: import("../model-discovery-types.js").ModelCatalogSnapshot;
26
+ }, optionalArgs?: {
27
+ signal?: AbortSignal;
28
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
29
+ }): Promise<import("../model-discovery-types.js").DefaultModelResolution>;
15
30
  };
16
31
  //# sourceMappingURL=kiro.d.ts.map
package/dist/defs/kiro.js CHANGED
@@ -1,6 +1,8 @@
1
- /** Ported verbatim from OD's `apps/daemon/src/runtimes/defs/kiro.ts` (import path adjusted only). See `archived provenance ledger`. */
1
+ import { createAgentModelDiscovery } from '../model-discovery.js';
2
2
  import { detectAcpModels, DEFAULT_MODEL_OPTION } from './shared.js';
3
3
  export const kiroAgentDef = {
4
+ // UNVERIFIED live integration locally; source/category and limits are documented in model-discovery-adapters.ts.
5
+ ...createAgentModelDiscovery('kiro', { fallbackModels: () => kiroAgentDef.fallbackModels }),
4
6
  id: 'kiro',
5
7
  name: 'Kiro CLI',
6
8
  bin: 'kiro-cli',
@@ -16,5 +16,20 @@ export declare const mimoAgentDef: {
16
16
  streamFormat: string;
17
17
  eventParser: string;
18
18
  externalMcpInjection: "mimo-env-content";
19
+ discoverModels(requiredArgs: {
20
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
21
+ }, optionalArgs?: {
22
+ signal?: AbortSignal;
23
+ force?: boolean;
24
+ staleWhileRevalidate?: boolean;
25
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
26
+ }): Promise<import("../model-discovery-types.js").ModelCatalogSnapshot>;
27
+ resolveDefaultModel(requiredArgs: {
28
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
29
+ catalog: import("../model-discovery-types.js").ModelCatalogSnapshot;
30
+ }, optionalArgs?: {
31
+ signal?: AbortSignal;
32
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
33
+ }): Promise<import("../model-discovery-types.js").DefaultModelResolution>;
19
34
  };
20
35
  //# sourceMappingURL=mimo.d.ts.map
package/dist/defs/mimo.js CHANGED
@@ -1,6 +1,8 @@
1
- /** Ported verbatim from OD's `apps/daemon/src/runtimes/defs/mimo.ts` (import path adjusted only). See `archived provenance ledger`. */
1
+ import { createAgentModelDiscovery } from '../model-discovery.js';
2
2
  import { DEFAULT_MODEL_OPTION } from './shared.js';
3
3
  export const mimoAgentDef = {
4
+ // UNVERIFIED live integration locally; source/category and limits are documented in model-discovery-adapters.ts.
5
+ ...createAgentModelDiscovery('mimo', { fallbackModels: () => mimoAgentDef.fallbackModels }),
4
6
  id: 'mimo',
5
7
  name: 'MiMo Code',
6
8
  bin: 'mimo',
@@ -1,4 +1,3 @@
1
- /** Ported verbatim from OD's `apps/daemon/src/runtimes/defs/opencode.ts` (import path adjusted only). See `archived provenance ledger`. */
2
1
  import { parseLineSeparatedModels } from './shared.js';
3
2
  export declare const opencodeAgentDef: {
4
3
  id: string;
@@ -35,5 +34,20 @@ export declare const opencodeAgentDef: {
35
34
  strategy: "config-instructions-file";
36
35
  varName: string;
37
36
  };
37
+ discoverModels(requiredArgs: {
38
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
39
+ }, optionalArgs?: {
40
+ signal?: AbortSignal;
41
+ force?: boolean;
42
+ staleWhileRevalidate?: boolean;
43
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
44
+ }): Promise<import("../model-discovery-types.js").ModelCatalogSnapshot>;
45
+ resolveDefaultModel(requiredArgs: {
46
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
47
+ catalog: import("../model-discovery-types.js").ModelCatalogSnapshot;
48
+ }, optionalArgs?: {
49
+ signal?: AbortSignal;
50
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
51
+ }): Promise<import("../model-discovery-types.js").DefaultModelResolution>;
38
52
  };
39
53
  //# sourceMappingURL=opencode.d.ts.map
@@ -1,8 +1,9 @@
1
- /** Ported verbatim from OD's `apps/daemon/src/runtimes/defs/opencode.ts` (import path adjusted only). See `archived provenance ledger`. */
1
+ import { createAgentModelDiscovery } from '../model-discovery.js';
2
2
  import { DEFAULT_MODEL_OPTION, parseLineSeparatedModels } from './shared.js';
3
3
  import { agentCapabilities } from '../capabilities.js';
4
4
  const SKIP_PERMISSIONS_FLAG = '--dangerously-skip-permissions';
5
5
  export const opencodeAgentDef = {
6
+ ...createAgentModelDiscovery('opencode', { fallbackModels: () => opencodeAgentDef.fallbackModels, args: ['models'], parse: (input) => opencodeAgentDef.listModels.parse(input) }),
6
7
  id: 'opencode',
7
8
  name: 'OpenCode',
8
9
  bin: 'opencode-cli',
package/dist/defs/pi.d.ts CHANGED
@@ -29,5 +29,20 @@ export declare const piAgentDef: {
29
29
  strategy: "append-flag";
30
30
  flag: string;
31
31
  };
32
+ discoverModels(requiredArgs: {
33
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
34
+ }, optionalArgs?: {
35
+ signal?: AbortSignal;
36
+ force?: boolean;
37
+ staleWhileRevalidate?: boolean;
38
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
39
+ }): Promise<import("../model-discovery-types.js").ModelCatalogSnapshot>;
40
+ resolveDefaultModel(requiredArgs: {
41
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
42
+ catalog: import("../model-discovery-types.js").ModelCatalogSnapshot;
43
+ }, optionalArgs?: {
44
+ signal?: AbortSignal;
45
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
46
+ }): Promise<import("../model-discovery-types.js").DefaultModelResolution>;
32
47
  };
33
48
  //# sourceMappingURL=pi.d.ts.map
package/dist/defs/pi.js CHANGED
@@ -1,7 +1,8 @@
1
- /** Ported verbatim from OD's `apps/daemon/src/runtimes/defs/pi.ts` (import path adjusted only). See `archived provenance ledger`. */
1
+ import { createAgentModelDiscovery } from '../model-discovery.js';
2
2
  import path from 'node:path';
3
3
  import { DEFAULT_MODEL_OPTION, execAgentFile, parsePiModels } from './shared.js';
4
4
  export const piAgentDef = {
5
+ ...createAgentModelDiscovery('pi', { fallbackModels: () => piAgentDef.fallbackModels }),
5
6
  id: 'pi',
6
7
  name: 'Pi',
7
8
  bin: 'pi',
@@ -11,16 +12,16 @@ export const piAgentDef = {
11
12
  // every spawn). The default 3s version-probe timeout is too tight; raise it
12
13
  // so detection doesn't silently abort before reaching fetchModels.
13
14
  versionProbeTimeoutMs: 15_000,
14
- // `pi --list-models` prints a TSV table to stderr (not stdout),
15
- // so we use a custom fetchModels that reads stderr.
15
+ // `pi --list-models` prints a whitespace table to stdout (verified installed version);
16
+ // older versions wrote stderr, so retain that compatibility path.
16
17
  fetchModels: async ({ resolvedBin, env }) => {
17
18
  try {
18
- const { stderr } = await execAgentFile({ command: resolvedBin, args: ['--list-models'] }, { options: {
19
+ const { stdout, stderr } = await execAgentFile({ command: resolvedBin, args: ['--list-models'] }, { options: {
19
20
  env,
20
21
  timeout: 60_000, // Windows: 20s exceeded under parallel detection load
21
22
  maxBuffer: 8 * 1024 * 1024,
22
23
  } });
23
- const parsed = parsePiModels({ stdout: stderr });
24
+ const parsed = parsePiModels({ stdout: stdout || stderr });
24
25
  if (!parsed || parsed.length === 0)
25
26
  return null;
26
27
  return parsed;
@@ -15,5 +15,20 @@ export declare const qoderAgentDef: {
15
15
  promptViaStdin: true;
16
16
  streamFormat: string;
17
17
  imageDelivery: "native";
18
+ discoverModels(requiredArgs: {
19
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
20
+ }, optionalArgs?: {
21
+ signal?: AbortSignal;
22
+ force?: boolean;
23
+ staleWhileRevalidate?: boolean;
24
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
25
+ }): Promise<import("../model-discovery-types.js").ModelCatalogSnapshot>;
26
+ resolveDefaultModel(requiredArgs: {
27
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
28
+ catalog: import("../model-discovery-types.js").ModelCatalogSnapshot;
29
+ }, optionalArgs?: {
30
+ signal?: AbortSignal;
31
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
32
+ }): Promise<import("../model-discovery-types.js").DefaultModelResolution>;
18
33
  };
19
34
  //# sourceMappingURL=qoder.d.ts.map
@@ -1,7 +1,9 @@
1
- /** Ported verbatim from OD's `apps/daemon/src/runtimes/defs/qoder.ts` (import path adjusted only). See `archived provenance ledger`. */
1
+ import { createAgentModelDiscovery } from '../model-discovery.js';
2
2
  import path from 'node:path';
3
3
  import { DEFAULT_MODEL_OPTION } from './shared.js';
4
4
  export const qoderAgentDef = {
5
+ // UNVERIFIED live integration locally; source/category and limits are documented in model-discovery-adapters.ts.
6
+ ...createAgentModelDiscovery('qoder', { fallbackModels: () => qoderAgentDef.fallbackModels }),
5
7
  id: 'qoder',
6
8
  name: 'Qoder CLI',
7
9
  bin: 'qodercli',
@@ -14,5 +14,20 @@ export declare const qwenAgentDef: {
14
14
  } | undefined) => string[];
15
15
  promptViaStdin: true;
16
16
  streamFormat: string;
17
+ discoverModels(requiredArgs: {
18
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
19
+ }, optionalArgs?: {
20
+ signal?: AbortSignal;
21
+ force?: boolean;
22
+ staleWhileRevalidate?: boolean;
23
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
24
+ }): Promise<import("../model-discovery-types.js").ModelCatalogSnapshot>;
25
+ resolveDefaultModel(requiredArgs: {
26
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
27
+ catalog: import("../model-discovery-types.js").ModelCatalogSnapshot;
28
+ }, optionalArgs?: {
29
+ signal?: AbortSignal;
30
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
31
+ }): Promise<import("../model-discovery-types.js").DefaultModelResolution>;
17
32
  };
18
33
  //# sourceMappingURL=qwen.d.ts.map
package/dist/defs/qwen.js CHANGED
@@ -1,6 +1,8 @@
1
- /** Ported verbatim from OD's `apps/daemon/src/runtimes/defs/qwen.ts` (import path adjusted only). See `archived provenance ledger`. */
1
+ import { createAgentModelDiscovery } from '../model-discovery.js';
2
2
  import { DEFAULT_MODEL_OPTION } from './shared.js';
3
3
  export const qwenAgentDef = {
4
+ // UNVERIFIED live integration locally; source/category and limits are documented in model-discovery-adapters.ts.
5
+ ...createAgentModelDiscovery('qwen', { fallbackModels: () => qwenAgentDef.fallbackModels }),
4
6
  id: 'qwen',
5
7
  name: 'Qwen Code',
6
8
  bin: 'qwen',
@@ -24,5 +24,20 @@ export declare const reasonixAgentDef: {
24
24
  fallbackModels: import("../types.js").RuntimeModelOption[];
25
25
  installUrl: string;
26
26
  docsUrl: string;
27
+ discoverModels(requiredArgs: {
28
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
29
+ }, optionalArgs?: {
30
+ signal?: AbortSignal;
31
+ force?: boolean;
32
+ staleWhileRevalidate?: boolean;
33
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
34
+ }): Promise<import("../model-discovery-types.js").ModelCatalogSnapshot>;
35
+ resolveDefaultModel(requiredArgs: {
36
+ context: import("../model-discovery-types.js").ModelDiscoveryContext;
37
+ catalog: import("../model-discovery-types.js").ModelCatalogSnapshot;
38
+ }, optionalArgs?: {
39
+ signal?: AbortSignal;
40
+ deps?: import("../model-discovery-types.js").ModelDiscoveryDeps;
41
+ }): Promise<import("../model-discovery-types.js").DefaultModelResolution>;
27
42
  };
28
43
  //# sourceMappingURL=reasonix.d.ts.map
@@ -1,26 +1,8 @@
1
- /**
2
- * Ported from OD's `apps/daemon/src/runtimes/defs/reasonix.ts` with one
3
- * real strip (not just a comment reword): the origin injected a
4
- * product-specific system-prompt block via
5
- * `env.REASONIX_ACP_SYSTEM_APPEND` — a `DESIGN_INSTRUCTIONS` constant that
6
- * literally named the host product and instructed the model to wrap output
7
- * in that product's own artifact-tag convention (see `archived provenance ledger` for
8
- * the exact original text). That is genuine product-specific prompt
9
- * content baked into what's supposed to be a pure declarative def literal,
10
- * not the generic ACP-transport config the rest of this file is. It is
11
- * dropped here — this file stays product-neutral (R5, `pnpm guard`'s
12
- * `checkEngineBoundaries`), never carrying any specific host's own wording.
13
- *
14
- * The MECHANISM itself (the `REASONIX_ACP_SYSTEM_APPEND` env var) is real
15
- * and now wired generically via `systemPromptDelivery: { strategy:
16
- * 'env-var', varName: 'REASONIX_ACP_SYSTEM_APPEND' }` below — a host's
17
- * `PromptAugmenter.systemOverlay()` result reaches this def through
18
- * `@jini-ai/daemon`'s `resolveSystemPromptOverlayDelivery` (the same
19
- * central dispatch every def's overlay delivery goes through) and
20
- * `computeChildEnv`, not through this file's own static `env` object
21
- * below (that one is fixed at def-load time, computed once; the overlay
22
- * varies per run and per host). See `archived provenance ledger`.
23
- */
1
+ import { createAgentModelDiscovery } from '../model-discovery.js';
2
+ /** Reasonix's declarative definition stays product-neutral (R5, checkEngineBoundaries).
3
+ * Per-run system overlays use REASONIX_ACP_SYSTEM_APPEND via the shared systemPromptDelivery
4
+ * dispatch and computeChildEnv. Static def.env is computed once and cannot carry host/per-run
5
+ * overlay wording. */
24
6
  import os from 'node:os';
25
7
  import path from 'node:path';
26
8
  import { detectAcpModels, DEFAULT_MODEL_OPTION } from './shared.js';
@@ -35,6 +17,8 @@ function reasonixHome() {
35
17
  return path.join(os.homedir(), '.reasonix');
36
18
  }
37
19
  export const reasonixAgentDef = {
20
+ // UNVERIFIED live integration locally; source/category and limits are documented in model-discovery-adapters.ts.
21
+ ...createAgentModelDiscovery('reasonix', { fallbackModels: () => reasonixAgentDef.fallbackModels }),
38
22
  id: 'reasonix',
39
23
  name: 'DeepSeek Reasonix',
40
24
  bin: 'reasonix',