@botiverse/oar 0.0.6 → 0.0.8

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 (103) hide show
  1. package/README.md +9 -0
  2. package/dist/contracts/list-models.d.ts +45 -0
  3. package/dist/contracts/list-models.d.ts.map +1 -0
  4. package/dist/contracts/list-models.js +2 -0
  5. package/dist/contracts/list-models.js.map +1 -0
  6. package/dist/contracts/runtime.d.ts +2 -0
  7. package/dist/contracts/runtime.d.ts.map +1 -1
  8. package/dist/contracts/runtime.js.map +1 -1
  9. package/dist/contracts/session.d.ts +1 -0
  10. package/dist/contracts/session.d.ts.map +1 -1
  11. package/dist/index.d.ts +8 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +6 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/runtimes/claude/index.d.ts +2 -0
  16. package/dist/runtimes/claude/index.d.ts.map +1 -1
  17. package/dist/runtimes/claude/index.js +3 -0
  18. package/dist/runtimes/claude/index.js.map +1 -1
  19. package/dist/runtimes/claude/list-models.d.ts +11 -0
  20. package/dist/runtimes/claude/list-models.d.ts.map +1 -0
  21. package/dist/runtimes/claude/list-models.js +122 -0
  22. package/dist/runtimes/claude/list-models.js.map +1 -0
  23. package/dist/runtimes/claude/session.d.ts.map +1 -1
  24. package/dist/runtimes/claude/session.js +9 -0
  25. package/dist/runtimes/claude/session.js.map +1 -1
  26. package/dist/runtimes/codex/index.d.ts +2 -0
  27. package/dist/runtimes/codex/index.d.ts.map +1 -1
  28. package/dist/runtimes/codex/index.js +3 -0
  29. package/dist/runtimes/codex/index.js.map +1 -1
  30. package/dist/runtimes/codex/list-models.d.ts +11 -0
  31. package/dist/runtimes/codex/list-models.d.ts.map +1 -0
  32. package/dist/runtimes/codex/list-models.js +85 -0
  33. package/dist/runtimes/codex/list-models.js.map +1 -0
  34. package/dist/runtimes/codex/session.d.ts.map +1 -1
  35. package/dist/runtimes/codex/session.js +22 -0
  36. package/dist/runtimes/codex/session.js.map +1 -1
  37. package/dist/runtimes/grok/index.d.ts +2 -0
  38. package/dist/runtimes/grok/index.d.ts.map +1 -1
  39. package/dist/runtimes/grok/index.js +3 -0
  40. package/dist/runtimes/grok/index.js.map +1 -1
  41. package/dist/runtimes/grok/list-models.d.ts +17 -0
  42. package/dist/runtimes/grok/list-models.d.ts.map +1 -0
  43. package/dist/runtimes/grok/list-models.js +103 -0
  44. package/dist/runtimes/grok/list-models.js.map +1 -0
  45. package/dist/runtimes/kimi/index.d.ts +2 -0
  46. package/dist/runtimes/kimi/index.d.ts.map +1 -1
  47. package/dist/runtimes/kimi/index.js +3 -0
  48. package/dist/runtimes/kimi/index.js.map +1 -1
  49. package/dist/runtimes/kimi/list-models.d.ts +12 -0
  50. package/dist/runtimes/kimi/list-models.d.ts.map +1 -0
  51. package/dist/runtimes/kimi/list-models.js +113 -0
  52. package/dist/runtimes/kimi/list-models.js.map +1 -0
  53. package/dist/runtimes/kimi/session.d.ts.map +1 -1
  54. package/dist/runtimes/kimi/session.js +3 -0
  55. package/dist/runtimes/kimi/session.js.map +1 -1
  56. package/dist/runtimes/pi/index.d.ts +2 -0
  57. package/dist/runtimes/pi/index.d.ts.map +1 -1
  58. package/dist/runtimes/pi/index.js +3 -0
  59. package/dist/runtimes/pi/index.js.map +1 -1
  60. package/dist/runtimes/pi/list-models.d.ts +48 -0
  61. package/dist/runtimes/pi/list-models.d.ts.map +1 -0
  62. package/dist/runtimes/pi/list-models.js +66 -0
  63. package/dist/runtimes/pi/list-models.js.map +1 -0
  64. package/dist/runtimes/pi/resolve.d.ts +42 -0
  65. package/dist/runtimes/pi/resolve.d.ts.map +1 -0
  66. package/dist/runtimes/pi/resolve.js +52 -0
  67. package/dist/runtimes/pi/resolve.js.map +1 -0
  68. package/dist/runtimes/pi/session.d.ts +14 -0
  69. package/dist/runtimes/pi/session.d.ts.map +1 -1
  70. package/dist/runtimes/pi/session.js +72 -40
  71. package/dist/runtimes/pi/session.js.map +1 -1
  72. package/dist/shared/acp/model.d.ts +36 -0
  73. package/dist/shared/acp/model.d.ts.map +1 -0
  74. package/dist/shared/acp/model.js +48 -0
  75. package/dist/shared/acp/model.js.map +1 -0
  76. package/dist/shared/acp/profile.d.ts +16 -0
  77. package/dist/shared/acp/profile.d.ts.map +1 -1
  78. package/dist/shared/acp/profile.js +5 -2
  79. package/dist/shared/acp/profile.js.map +1 -1
  80. package/dist/shared/acp/session.d.ts.map +1 -1
  81. package/dist/shared/acp/session.js +16 -7
  82. package/dist/shared/acp/session.js.map +1 -1
  83. package/dist/shared/acp/usage-wait.d.ts +30 -0
  84. package/dist/shared/acp/usage-wait.d.ts.map +1 -0
  85. package/dist/shared/acp/usage-wait.js +34 -0
  86. package/dist/shared/acp/usage-wait.js.map +1 -0
  87. package/dist/shared/effort-levels.d.ts +10 -0
  88. package/dist/shared/effort-levels.d.ts.map +1 -0
  89. package/dist/shared/effort-levels.js +33 -0
  90. package/dist/shared/effort-levels.js.map +1 -0
  91. package/dist/shared/executable/process.d.ts +1 -0
  92. package/dist/shared/executable/process.d.ts.map +1 -1
  93. package/dist/shared/executable/process.js +5 -1
  94. package/dist/shared/executable/process.js.map +1 -1
  95. package/dist/shared/json.d.ts +2 -0
  96. package/dist/shared/json.d.ts.map +1 -1
  97. package/dist/shared/json.js +15 -0
  98. package/dist/shared/json.js.map +1 -1
  99. package/dist/voyage.d.ts +22 -0
  100. package/dist/voyage.d.ts.map +1 -0
  101. package/dist/voyage.js +51 -0
  102. package/dist/voyage.js.map +1 -0
  103. package/package.json +1 -1
@@ -0,0 +1,85 @@
1
+ import { effortLevelOf, effortLevelsOf } from "../../shared/effort-levels.js";
2
+ import { spawnLineProcess } from "../../shared/executable/index.js";
3
+ import { asRecord, asRecordList, parseJson } from "../../shared/json.js";
4
+ function displayName(model) {
5
+ const name = model.display_name;
6
+ return typeof name === "string" && name.trim().length > 0 ? name.trim() : undefined;
7
+ }
8
+ /**
9
+ * Project `codex debug models` output. Identity is `slug`; `display_name` is
10
+ * presentation only (the same slug has rendered under unrelated names).
11
+ * Entries with `visibility: "hide"` are present in the payload but codex will
12
+ * not offer them, so they are dropped to keep usable-now semantics.
13
+ * `supported_reasoning_levels` entries are `{effort, description}` objects.
14
+ */
15
+ export function projectCodexModels(payload) {
16
+ const models = asRecordList(asRecord(payload)?.models);
17
+ const entries = [];
18
+ for (const model of models) {
19
+ if (typeof model.slug !== "string" || model.slug.length === 0 || model.visibility === "hide") {
20
+ continue;
21
+ }
22
+ const name = displayName(model);
23
+ const effortLevels = effortLevelsOf(model.supported_reasoning_levels);
24
+ const defaultEffort = effortLevelOf(model.default_reasoning_level);
25
+ entries.push({
26
+ id: model.slug,
27
+ ...(name === undefined ? {} : { displayName: name }),
28
+ ...(effortLevels === undefined ? {} : { effortLevels }),
29
+ ...(defaultEffort === undefined ? {} : { defaultEffort }),
30
+ });
31
+ }
32
+ return entries;
33
+ }
34
+ /**
35
+ * Codex prints the whole list as one JSON document on stdout, close to 2 MB
36
+ * because every model embeds its instruction templates. That is too close to
37
+ * `runExecutable`'s buffer cap, so stdout is streamed and parsed on exit.
38
+ */
39
+ async function readModelsJson(command, timeoutMs) {
40
+ const child = spawnLineProcess(command, ["debug", "models"], { env: process.env });
41
+ let text = "";
42
+ child.stdout.on("data", (chunk) => {
43
+ text += chunk.toString();
44
+ });
45
+ const timer = setTimeout(() => {
46
+ child.kill();
47
+ }, timeoutMs);
48
+ try {
49
+ await child.spawned;
50
+ const code = await child.exited;
51
+ if (code !== 0) {
52
+ throw new Error(`codex debug models exited with ${code === null ? "a signal" : `code ${code}`}`);
53
+ }
54
+ return text;
55
+ }
56
+ finally {
57
+ clearTimeout(timer);
58
+ }
59
+ }
60
+ /**
61
+ * Codex has no observable logged-out state on this surface: with no
62
+ * credentials it still exits 0 and prints its built-in fallback list, so this
63
+ * lister never returns `unauthenticated`. A non-zero exit, a timeout, or
64
+ * non-JSON output is an error, not an empty list.
65
+ */
66
+ async function readModelsText(command, timeoutMs) {
67
+ try {
68
+ return await readModelsJson(command, timeoutMs);
69
+ }
70
+ catch (error) {
71
+ throw new Error("Failed to list Codex models", { cause: error });
72
+ }
73
+ }
74
+ export const codexListModels = async (installation, options = {}) => {
75
+ if (installation.via !== "executable") {
76
+ return { kind: "unsupported", reason: "codex model listing requires the codex executable" };
77
+ }
78
+ const text = await readModelsText(installation.command, options.timeoutMs ?? 15_000);
79
+ const payload = parseJson(text);
80
+ if (payload === undefined) {
81
+ throw new Error("Failed to list Codex models: codex debug models returned invalid JSON");
82
+ }
83
+ return { kind: "ok", models: projectCodexModels(payload) };
84
+ };
85
+ //# sourceMappingURL=list-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-models.js","sourceRoot":"","sources":["../../../src/runtimes/codex/list-models.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAmB,MAAM,sBAAsB,CAAC;AAE1F,SAAS,WAAW,CAAC,KAAiB;IACpC,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC;IAChC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACtF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IACvD,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YAC7F,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC;YACX,EAAE,EAAE,KAAK,CAAC,IAAI;YACd,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YACpD,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;YACvD,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;SAC1D,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,cAAc,CAAC,OAAe,EAAE,SAAiB;IAC9D,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnF,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;QACjD,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC5B,KAAK,CAAC,IAAI,EAAE,CAAC;IACf,CAAC,EAAE,SAAS,CAAC,CAAC;IACd,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,CAAC;QACpB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;QAChC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC;QACnG,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,cAAc,CAAC,OAAe,EAAE,SAAiB;IAC9D,IAAI,CAAC;QACH,OAAO,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAgB,KAAK,EAAE,YAAY,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;IAC/E,IAAI,YAAY,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;QACtC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,mDAAmD,EAAE,CAAC;IAC9F,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;IACrF,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;AAC7D,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/codex/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAyB,YAAY,EAAQ,MAAM,4BAA4B,CAAC;AAgC5F,eAAO,MAAM,YAAY,EAAE,YA8L1B,CAAC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/codex/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAyB,YAAY,EAAQ,MAAM,4BAA4B,CAAC;AAgC5F,eAAO,MAAM,YAAY,EAAE,YAoN1B,CAAC"}
@@ -48,13 +48,34 @@ export const codexSession = async (installation, options) => {
48
48
  : await client.request("thread/resume", {
49
49
  threadId: options.resume,
50
50
  cwd: options.cwd,
51
+ // Same-runtime model switch = resume the same thread id with a new
52
+ // model. thread/resume accepts `model` (codex rust-v0.153.4,
53
+ // protocol/v2/thread.rs ThreadResumeParams) and applies it when the
54
+ // thread is loaded cold, which is the normal case here because every
55
+ // oar session owns its own app-server process.
56
+ ...(options.model === undefined ? {} : { model: options.model }),
51
57
  approvalPolicy: "never",
52
58
  ...instructionParams,
53
59
  });
54
60
  const threadId = asRecord(started.thread)?.id;
55
61
  if (typeof threadId !== "string") {
62
+ client.kill();
56
63
  throw new TypeError("codex thread start/resume returned no thread id");
57
64
  }
65
+ // Both responses report the model that is actually active; that value is
66
+ // what Session.model() reads back. Still check it against the request:
67
+ // codex's resume_running_thread ignores resume overrides for a thread that
68
+ // is already loaded and busy, logging only a warn ("thread/resume overrides
69
+ // ignored for loaded thread"), and the response then names the old model.
70
+ // A caller who asked for a model must not get a session silently running
71
+ // another, so the mismatch fails loudly here and the app-server we just
72
+ // started must not outlive the failed session.
73
+ const effectiveModel = typeof started.model === "string" ? started.model : null;
74
+ if (options.model !== undefined && effectiveModel !== null && effectiveModel !== options.model) {
75
+ client.kill();
76
+ const verb = options.resume === undefined ? "thread/start" : "thread/resume";
77
+ throw new Error(`codex ${verb} kept model ${effectiveModel} although ${options.model} was requested`);
78
+ }
58
79
  const kernel = createSessionKernel(threadId);
59
80
  let current = null;
60
81
  let disposed = false;
@@ -171,6 +192,7 @@ export const codexSession = async (installation, options) => {
171
192
  return { kind: "turn", turn: makeTurn(state) };
172
193
  },
173
194
  subscribe: (observer) => kernel.subscribe(observer),
195
+ model: () => effectiveModel,
174
196
  contextUsage: () => latestContextUsage,
175
197
  queue: {
176
198
  durable: true,
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/codex/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/codex/session.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,10 @@ export declare const grokRuntime: {
2
2
  readonly id: "grok";
3
3
  readonly installation: import("../../index.js").InstallationProbe;
4
4
  readonly accountUsage: import("../../index.js").AccountUsageReader;
5
+ readonly listModels: import("../../index.js").ModelLister;
5
6
  readonly session: import("../../index.js").StartSession;
6
7
  };
7
8
  export { grokAccountEmail, grokAccountUsage, projectGrokUsage } from "./account-usage.js";
9
+ export { grokListModels, projectGrokModels } from "./list-models.js";
8
10
  export { grokSession } from "./session.js";
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/grok/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW;;;;;CAKtB,CAAC;AAEH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/grok/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,WAAW;;;;;;CAMtB,CAAC;AAEH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
@@ -1,13 +1,16 @@
1
1
  import { defineRuntime } from "../../contracts/runtime.js";
2
2
  import { grokAccountUsage } from "./account-usage.js";
3
3
  import { grokInstallation } from "./installation.js";
4
+ import { grokListModels } from "./list-models.js";
4
5
  import { grokSession } from "./session.js";
5
6
  export const grokRuntime = defineRuntime({
6
7
  id: "grok",
7
8
  installation: grokInstallation,
8
9
  accountUsage: grokAccountUsage,
10
+ listModels: grokListModels,
9
11
  session: grokSession,
10
12
  });
11
13
  export { grokAccountEmail, grokAccountUsage, projectGrokUsage } from "./account-usage.js";
14
+ export { grokListModels, projectGrokModels } from "./list-models.js";
12
15
  export { grokSession } from "./session.js";
13
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/grok/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;IACvC,EAAE,EAAE,MAAM;IACV,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,OAAO,EAAE,WAAW;CACrB,CAAC,CAAC;AAEH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/grok/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;IACvC,EAAE,EAAE,MAAM;IACV,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,UAAU,EAAE,cAAc;IAC1B,OAAO,EAAE,WAAW;CACrB,CAAC,CAAC;AAEH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { ModelEntry, ModelLister } from "../../contracts/list-models.js";
2
+ import { type JsonRecord } from "../../shared/json.js";
3
+ /**
4
+ * Unwrap the `_x.ai/models/list` result. The JSON-RPC result carries a second
5
+ * envelope, `{result: SessionModelState}` or `{error}`; a handler error wins
6
+ * over any result, matching grok's own client.
7
+ */
8
+ export declare function grokModelState(result: unknown): JsonRecord;
9
+ /**
10
+ * Project a `SessionModelState`. Grok already filters to what the current
11
+ * auth can use; entries still flagged `hidden` or not `user_selectable` are
12
+ * dropped here as well. Both camel- and snake-case field spellings are read
13
+ * because the extension's Rust serialization has changed between releases.
14
+ */
15
+ export declare function projectGrokModels(state: unknown): ModelEntry[];
16
+ export declare const grokListModels: ModelLister;
17
+ //# sourceMappingURL=list-models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-models.d.ts","sourceRoot":"","sources":["../../../src/runtimes/grok/list-models.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAG9E,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAW/E;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAO1D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,EAAE,CAyB9D;AAwDD,eAAO,MAAM,cAAc,EAAE,WAkB5B,CAAC"}
@@ -0,0 +1,103 @@
1
+ /* oxlint-disable typescript/promise-function-async -- Deadline callbacks deliberately return the SDK's native promises. */
2
+ import { client as createClient, methods, PROTOCOL_VERSION, RequestError, } from "@agentclientprotocol/sdk";
3
+ import { startAcpProcess, withAcpDeadline } from "../../shared/acp/process.js";
4
+ import { effortLevelOf, effortLevelsOf } from "../../shared/effort-levels.js";
5
+ import { asRecord, asRecordList } from "../../shared/json.js";
6
+ import { grokInitializeMeta, selectGrokAuthMethod } from "./session.js";
7
+ function text(value) {
8
+ if (typeof value !== "string") {
9
+ return undefined;
10
+ }
11
+ const trimmed = value.trim();
12
+ return trimmed.length > 0 ? trimmed : undefined;
13
+ }
14
+ /**
15
+ * Unwrap the `_x.ai/models/list` result. The JSON-RPC result carries a second
16
+ * envelope, `{result: SessionModelState}` or `{error}`; a handler error wins
17
+ * over any result, matching grok's own client.
18
+ */
19
+ export function grokModelState(result) {
20
+ const envelope = asRecord(result) ?? {};
21
+ if (envelope.error !== undefined) {
22
+ const detail = text(asRecord(envelope.error)?.message) ?? text(envelope.error) ?? JSON.stringify(envelope.error);
23
+ throw new Error(`grok models/list handler error: ${detail}`);
24
+ }
25
+ return asRecord(envelope.result) ?? envelope;
26
+ }
27
+ /**
28
+ * Project a `SessionModelState`. Grok already filters to what the current
29
+ * auth can use; entries still flagged `hidden` or not `user_selectable` are
30
+ * dropped here as well. Both camel- and snake-case field spellings are read
31
+ * because the extension's Rust serialization has changed between releases.
32
+ */
33
+ export function projectGrokModels(state) {
34
+ const root = asRecord(state) ?? {};
35
+ const models = asRecordList(root.availableModels ?? root.available_models);
36
+ const entries = [];
37
+ for (const model of models) {
38
+ const id = text(model.modelId ?? model.model_id ?? model.id);
39
+ if (id === undefined) {
40
+ continue;
41
+ }
42
+ if (model.hidden === true || model.user_selectable === false || model.userSelectable === false) {
43
+ continue;
44
+ }
45
+ const displayName = text(model.displayName ?? model.display_name ?? model.name);
46
+ const effortLevels = effortLevelsOf(model.reasoningEfforts ?? model.reasoning_efforts);
47
+ const defaultEffort = effortLevelOf(model.defaultReasoningEffort ?? model.default_reasoning_effort ?? model.reasoningEffort ?? model.reasoning_effort);
48
+ entries.push({
49
+ id,
50
+ ...(displayName === undefined ? {} : { displayName }),
51
+ ...(effortLevels === undefined ? {} : { effortLevels }),
52
+ ...(defaultEffort === undefined ? {} : { defaultEffort }),
53
+ });
54
+ }
55
+ return entries;
56
+ }
57
+ async function readModelState(command, timeoutMs) {
58
+ const runtime = startAcpProcess(command, ["agent", "--always-approve", "--no-leader", "stdio"], createClient({ name: "oar" }), { env: process.env });
59
+ try {
60
+ const initialize = methods.agent.initialize;
61
+ const response = await withAcpDeadline(runtime, initialize, timeoutMs, (requestOptions) => runtime.connection.agent.request(initialize, {
62
+ protocolVersion: PROTOCOL_VERSION,
63
+ clientCapabilities: {
64
+ fs: { readTextFile: false, writeTextFile: false },
65
+ terminal: false,
66
+ },
67
+ clientInfo: { name: "oar", version: "0.0.0" },
68
+ _meta: grokInitializeMeta({ cwd: process.cwd() }),
69
+ }, requestOptions));
70
+ const method = selectGrokAuthMethod(asRecord(response) ?? {});
71
+ if (method !== undefined) {
72
+ const authenticate = methods.agent.authenticate;
73
+ await withAcpDeadline(runtime, authenticate, timeoutMs, (requestOptions) => runtime.connection.agent.request(authenticate, { methodId: method }, requestOptions));
74
+ }
75
+ const result = await withAcpDeadline(runtime, "_x.ai/models/list", timeoutMs, (requestOptions) => runtime.connection.agent.request("_x.ai/models/list", {}, requestOptions));
76
+ return grokModelState(result);
77
+ }
78
+ finally {
79
+ runtime.kill();
80
+ await runtime.exited;
81
+ }
82
+ }
83
+ export const grokListModels = async (installation, options = {}) => {
84
+ if (installation.via !== "executable") {
85
+ return { kind: "unsupported", reason: "grok model listing requires the grok executable" };
86
+ }
87
+ try {
88
+ const state = await readModelState(installation.command, options.timeoutMs ?? 10_000);
89
+ return { kind: "ok", models: projectGrokModels(state) };
90
+ }
91
+ catch (error) {
92
+ if (error instanceof RequestError) {
93
+ if (error.code === -32_601) {
94
+ return { kind: "unsupported", reason: "this grok build has no _x.ai/models/list method" };
95
+ }
96
+ if (error.code === -32_000 || /auth(?:entication)?|log(?:ged)? ?in/iu.test(error.message)) {
97
+ return { kind: "unauthenticated", detail: error.message };
98
+ }
99
+ }
100
+ throw new Error("Failed to list Grok models", { cause: error });
101
+ }
102
+ };
103
+ //# sourceMappingURL=list-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-models.js","sourceRoot":"","sources":["../../../src/runtimes/grok/list-models.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,10 @@ export declare const kimiRuntime: {
2
2
  readonly id: "kimi";
3
3
  readonly installation: import("../../index.js").InstallationProbe;
4
4
  readonly accountUsage: import("../../index.js").AccountUsageReader;
5
+ readonly listModels: import("../../index.js").ModelLister;
5
6
  readonly session: import("../../index.js").StartSession;
6
7
  };
7
8
  export { kimiAccountEmail, kimiAccountUsage, projectKimiUsage } from "./account-usage.js";
9
+ export { kimiListModels, projectKimiModels } from "./list-models.js";
8
10
  export { kimiSession } from "./session.js";
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/kimi/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW;;;;;CAKtB,CAAC;AAEH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/kimi/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,WAAW;;;;;;CAMtB,CAAC;AAEH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
@@ -1,13 +1,16 @@
1
1
  import { defineRuntime } from "../../contracts/runtime.js";
2
2
  import { kimiAccountUsage } from "./account-usage.js";
3
3
  import { kimiInstallation } from "./installation.js";
4
+ import { kimiListModels } from "./list-models.js";
4
5
  import { kimiSession } from "./session.js";
5
6
  export const kimiRuntime = defineRuntime({
6
7
  id: "kimi",
7
8
  installation: kimiInstallation,
8
9
  accountUsage: kimiAccountUsage,
10
+ listModels: kimiListModels,
9
11
  session: kimiSession,
10
12
  });
11
13
  export { kimiAccountEmail, kimiAccountUsage, projectKimiUsage } from "./account-usage.js";
14
+ export { kimiListModels, projectKimiModels } from "./list-models.js";
12
15
  export { kimiSession } from "./session.js";
13
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/kimi/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;IACvC,EAAE,EAAE,MAAM;IACV,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,OAAO,EAAE,WAAW;CACrB,CAAC,CAAC;AAEH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/kimi/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;IACvC,EAAE,EAAE,MAAM;IACV,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,UAAU,EAAE,cAAc;IAC1B,OAAO,EAAE,WAAW;CACrB,CAAC,CAAC;AAEH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ModelEntry, ModelLister } from "../../contracts/list-models.js";
2
+ /**
3
+ * Project a `session/new` response. Kimi has no model-list method; the usable
4
+ * list for the logged-in account rides on every new session as the
5
+ * `configOptions` entry with id `model` (acp-server config-options.ts). A
6
+ * `thinking` option is only emitted for the currently selected model, so
7
+ * effort levels can only be attached to that entry; its `off` value is a
8
+ * toggle, not an effort level, and is dropped.
9
+ */
10
+ export declare function projectKimiModels(response: unknown): ModelEntry[] | undefined;
11
+ export declare const kimiListModels: ModelLister;
12
+ //# sourceMappingURL=list-models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-models.d.ts","sourceRoot":"","sources":["../../../src/runtimes/kimi/list-models.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAmB9E;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,UAAU,EAAE,GAAG,SAAS,CA8B7E;AAyDD,eAAO,MAAM,cAAc,EAAE,WAsB5B,CAAC"}
@@ -0,0 +1,113 @@
1
+ /* oxlint-disable typescript/promise-function-async -- Deadline callbacks deliberately return the SDK's native promises. */
2
+ import { client as createClient, methods, PROTOCOL_VERSION, RequestError, } from "@agentclientprotocol/sdk";
3
+ import { startAcpProcess, withAcpDeadline } from "../../shared/acp/process.js";
4
+ import { closeAcpSession } from "../../shared/acp/profile.js";
5
+ import { effortLevelOf } from "../../shared/effort-levels.js";
6
+ import { asRecord, asRecordList } from "../../shared/json.js";
7
+ import { selectKimiAuthMethod } from "./session.js";
8
+ function text(value) {
9
+ if (typeof value !== "string") {
10
+ return undefined;
11
+ }
12
+ const trimmed = value.trim();
13
+ return trimmed.length > 0 ? trimmed : undefined;
14
+ }
15
+ function configOption(response, id) {
16
+ return asRecordList(response.configOptions).find((option) => option.id === id);
17
+ }
18
+ /**
19
+ * Project a `session/new` response. Kimi has no model-list method; the usable
20
+ * list for the logged-in account rides on every new session as the
21
+ * `configOptions` entry with id `model` (acp-server config-options.ts). A
22
+ * `thinking` option is only emitted for the currently selected model, so
23
+ * effort levels can only be attached to that entry; its `off` value is a
24
+ * toggle, not an effort level, and is dropped.
25
+ */
26
+ export function projectKimiModels(response) {
27
+ const root = asRecord(response) ?? {};
28
+ const modelOption = configOption(root, "model");
29
+ if (modelOption === undefined) {
30
+ return undefined;
31
+ }
32
+ const current = text(modelOption.currentValue);
33
+ const thinking = configOption(root, "thinking");
34
+ const effortLevels = thinking === undefined
35
+ ? undefined
36
+ : asRecordList(thinking.options)
37
+ .map((option) => effortLevelOf(option.value))
38
+ .filter((level) => level !== undefined && level !== "off");
39
+ const defaultEffort = thinking === undefined ? undefined : effortLevelOf(thinking.currentValue);
40
+ const entries = [];
41
+ for (const model of asRecordList(modelOption.options)) {
42
+ const id = text(model.value);
43
+ if (id === undefined) {
44
+ continue;
45
+ }
46
+ const displayName = text(model.name);
47
+ const isCurrent = id === current;
48
+ entries.push({
49
+ id,
50
+ ...(displayName === undefined ? {} : { displayName }),
51
+ ...(isCurrent && effortLevels !== undefined && effortLevels.length > 0 ? { effortLevels } : {}),
52
+ ...(isCurrent && defaultEffort !== undefined && defaultEffort !== "off" ? { defaultEffort } : {}),
53
+ });
54
+ }
55
+ return entries;
56
+ }
57
+ async function readNewSession(command, timeoutMs) {
58
+ const runtime = startAcpProcess(command, ["acp"], createClient({ name: "oar" }), { env: process.env });
59
+ try {
60
+ const initialize = methods.agent.initialize;
61
+ const initialized = await withAcpDeadline(runtime, initialize, timeoutMs, (requestOptions) => runtime.connection.agent.request(initialize, {
62
+ protocolVersion: PROTOCOL_VERSION,
63
+ clientCapabilities: {
64
+ fs: { readTextFile: false, writeTextFile: false },
65
+ terminal: false,
66
+ },
67
+ clientInfo: { name: "oar", version: "0.0.0" },
68
+ }, requestOptions));
69
+ const method = selectKimiAuthMethod(asRecord(initialized) ?? {});
70
+ if (method !== undefined) {
71
+ const authenticate = methods.agent.authenticate;
72
+ await withAcpDeadline(runtime, authenticate, timeoutMs, (requestOptions) => runtime.connection.agent.request(authenticate, { methodId: method }, requestOptions));
73
+ }
74
+ const newSession = methods.agent.session.new;
75
+ const response = await withAcpDeadline(runtime, newSession, timeoutMs, (requestOptions) => runtime.connection.agent.request(newSession, { cwd: process.cwd(), mcpServers: [] }, requestOptions));
76
+ const record = asRecord(response) ?? {};
77
+ const sessionId = text(record.sessionId);
78
+ if (sessionId !== undefined) {
79
+ // Best effort: the list is already in hand and the process is killed next.
80
+ await closeAcpSession(runtime, sessionId).catch(() => { });
81
+ }
82
+ return record;
83
+ }
84
+ finally {
85
+ runtime.kill();
86
+ await runtime.exited;
87
+ }
88
+ }
89
+ export const kimiListModels = async (installation, options = {}) => {
90
+ if (installation.via !== "executable") {
91
+ return { kind: "unsupported", reason: "kimi model listing requires the kimi executable" };
92
+ }
93
+ try {
94
+ const response = await readNewSession(installation.command, options.timeoutMs ?? 30_000);
95
+ const models = projectKimiModels(response);
96
+ if (models === undefined) {
97
+ return { kind: "unsupported", reason: "this kimi build returns no model config option on session/new" };
98
+ }
99
+ return { kind: "ok", models };
100
+ }
101
+ catch (error) {
102
+ if (error instanceof RequestError) {
103
+ if (error.code === -32_601) {
104
+ return { kind: "unsupported", reason: "this kimi build has no session/new method" };
105
+ }
106
+ if (error.code === -32_000 || /auth(?:entication)?|log(?:ged)? ?in/iu.test(error.message)) {
107
+ return { kind: "unauthenticated", detail: error.message };
108
+ }
109
+ }
110
+ throw new Error("Failed to list Kimi models", { cause: error });
111
+ }
112
+ };
113
+ //# sourceMappingURL=list-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-models.js","sourceRoot":"","sources":["../../../src/runtimes/kimi/list-models.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/kimi/session.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEjE,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAOhF;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAU9D;AAQD,eAAO,MAAM,cAAc,EAAE,iBAc5B,CAAC;AAEF,eAAO,MAAM,WAAW,mDAA6B,CAAC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/kimi/session.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEjE,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAOhF;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAU9D;AAQD,eAAO,MAAM,cAAc,EAAE,iBAiB5B,CAAC;AAEF,eAAO,MAAM,WAAW,mDAA6B,CAAC"}
@@ -29,6 +29,9 @@ export const kimiAcpProfile = {
29
29
  requestTimeoutMs: 30_000,
30
30
  selectAuthMethod: selectKimiAuthMethod,
31
31
  validateOptions: validateKimiOptions,
32
+ // kimi-code f9ca33376 acp-server session.ts onTurnEnded: prompt answered
33
+ // first, usage_update pushed afterwards from an un-awaited async task.
34
+ usageUpdateAfterPrompt: true,
32
35
  configureSession: async ({ connection, sessionId, response, requestOptions }) => {
33
36
  if (supportsKimiYolo(response)) {
34
37
  await connection.agent.request("session/set_mode", { sessionId, modeId: "yolo" }, requestOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/kimi/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/kimi/session.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,9 @@
6
6
  export declare const piRuntime: {
7
7
  readonly id: "pi";
8
8
  readonly installation: import("../../index.js").InstallationProbe;
9
+ readonly listModels: import("../../index.js").ModelLister;
9
10
  readonly session: import("../../index.js").StartSession;
10
11
  };
12
+ export { piListModels, projectPiModels } from "./list-models.js";
11
13
  export { piSession } from "./session.js";
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/pi/index.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;;CAIpB,CAAC;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/pi/index.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;;;CAKpB,CAAC;AAEH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { defineRuntime } from "../../contracts/runtime.js";
2
2
  import { piInstallation } from "./installation.js";
3
+ import { piListModels } from "./list-models.js";
3
4
  import { piSession } from "./session.js";
4
5
  /**
5
6
  * The bundled Pi runtime, embedded through the Pi SDK dependency. Account
@@ -9,7 +10,9 @@ import { piSession } from "./session.js";
9
10
  export const piRuntime = defineRuntime({
10
11
  id: "pi",
11
12
  installation: piInstallation,
13
+ listModels: piListModels,
12
14
  session: piSession,
13
15
  });
16
+ export { piListModels, projectPiModels } from "./list-models.js";
14
17
  export { piSession } from "./session.js";
15
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/pi/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC;IACrC,EAAE,EAAE,IAAI;IACR,YAAY,EAAE,cAAc;IAC5B,OAAO,EAAE,SAAS;CACnB,CAAC,CAAC;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/pi/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC;IACrC,EAAE,EAAE,IAAI;IACR,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;CACnB,CAAC,CAAC;AAEH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}