@botiverse/oar 0.0.7 → 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.
- package/dist/contracts/list-models.d.ts +45 -0
- package/dist/contracts/list-models.d.ts.map +1 -0
- package/dist/contracts/list-models.js +2 -0
- package/dist/contracts/list-models.js.map +1 -0
- package/dist/contracts/runtime.d.ts +2 -0
- package/dist/contracts/runtime.d.ts.map +1 -1
- package/dist/contracts/runtime.js.map +1 -1
- package/dist/contracts/session.d.ts +1 -0
- package/dist/contracts/session.d.ts.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/runtimes/claude/index.d.ts +2 -0
- package/dist/runtimes/claude/index.d.ts.map +1 -1
- package/dist/runtimes/claude/index.js +3 -0
- package/dist/runtimes/claude/index.js.map +1 -1
- package/dist/runtimes/claude/list-models.d.ts +11 -0
- package/dist/runtimes/claude/list-models.d.ts.map +1 -0
- package/dist/runtimes/claude/list-models.js +122 -0
- package/dist/runtimes/claude/list-models.js.map +1 -0
- package/dist/runtimes/claude/session.d.ts.map +1 -1
- package/dist/runtimes/claude/session.js +9 -0
- package/dist/runtimes/claude/session.js.map +1 -1
- package/dist/runtimes/codex/index.d.ts +2 -0
- package/dist/runtimes/codex/index.d.ts.map +1 -1
- package/dist/runtimes/codex/index.js +3 -0
- package/dist/runtimes/codex/index.js.map +1 -1
- package/dist/runtimes/codex/list-models.d.ts +11 -0
- package/dist/runtimes/codex/list-models.d.ts.map +1 -0
- package/dist/runtimes/codex/list-models.js +85 -0
- package/dist/runtimes/codex/list-models.js.map +1 -0
- package/dist/runtimes/codex/session.d.ts.map +1 -1
- package/dist/runtimes/codex/session.js +22 -0
- package/dist/runtimes/codex/session.js.map +1 -1
- package/dist/runtimes/grok/index.d.ts +2 -0
- package/dist/runtimes/grok/index.d.ts.map +1 -1
- package/dist/runtimes/grok/index.js +3 -0
- package/dist/runtimes/grok/index.js.map +1 -1
- package/dist/runtimes/grok/list-models.d.ts +17 -0
- package/dist/runtimes/grok/list-models.d.ts.map +1 -0
- package/dist/runtimes/grok/list-models.js +103 -0
- package/dist/runtimes/grok/list-models.js.map +1 -0
- package/dist/runtimes/kimi/index.d.ts +2 -0
- package/dist/runtimes/kimi/index.d.ts.map +1 -1
- package/dist/runtimes/kimi/index.js +3 -0
- package/dist/runtimes/kimi/index.js.map +1 -1
- package/dist/runtimes/kimi/list-models.d.ts +12 -0
- package/dist/runtimes/kimi/list-models.d.ts.map +1 -0
- package/dist/runtimes/kimi/list-models.js +113 -0
- package/dist/runtimes/kimi/list-models.js.map +1 -0
- package/dist/runtimes/kimi/session.d.ts.map +1 -1
- package/dist/runtimes/kimi/session.js +3 -0
- package/dist/runtimes/kimi/session.js.map +1 -1
- package/dist/runtimes/pi/index.d.ts +2 -0
- package/dist/runtimes/pi/index.d.ts.map +1 -1
- package/dist/runtimes/pi/index.js +3 -0
- package/dist/runtimes/pi/index.js.map +1 -1
- package/dist/runtimes/pi/list-models.d.ts +48 -0
- package/dist/runtimes/pi/list-models.d.ts.map +1 -0
- package/dist/runtimes/pi/list-models.js +66 -0
- package/dist/runtimes/pi/list-models.js.map +1 -0
- package/dist/runtimes/pi/resolve.d.ts +42 -0
- package/dist/runtimes/pi/resolve.d.ts.map +1 -0
- package/dist/runtimes/pi/resolve.js +52 -0
- package/dist/runtimes/pi/resolve.js.map +1 -0
- package/dist/runtimes/pi/session.d.ts +14 -0
- package/dist/runtimes/pi/session.d.ts.map +1 -1
- package/dist/runtimes/pi/session.js +72 -40
- package/dist/runtimes/pi/session.js.map +1 -1
- package/dist/shared/acp/model.d.ts +36 -0
- package/dist/shared/acp/model.d.ts.map +1 -0
- package/dist/shared/acp/model.js +48 -0
- package/dist/shared/acp/model.js.map +1 -0
- package/dist/shared/acp/profile.d.ts +16 -0
- package/dist/shared/acp/profile.d.ts.map +1 -1
- package/dist/shared/acp/profile.js +5 -2
- package/dist/shared/acp/profile.js.map +1 -1
- package/dist/shared/acp/session.d.ts.map +1 -1
- package/dist/shared/acp/session.js +16 -7
- package/dist/shared/acp/session.js.map +1 -1
- package/dist/shared/acp/usage-wait.d.ts +30 -0
- package/dist/shared/acp/usage-wait.d.ts.map +1 -0
- package/dist/shared/acp/usage-wait.js +34 -0
- package/dist/shared/acp/usage-wait.js.map +1 -0
- package/dist/shared/effort-levels.d.ts +10 -0
- package/dist/shared/effort-levels.d.ts.map +1 -0
- package/dist/shared/effort-levels.js +33 -0
- package/dist/shared/effort-levels.js.map +1 -0
- package/dist/shared/executable/process.d.ts +1 -0
- package/dist/shared/executable/process.d.ts.map +1 -1
- package/dist/shared/executable/process.js +5 -1
- package/dist/shared/executable/process.js.map +1 -1
- package/dist/shared/json.d.ts +2 -0
- package/dist/shared/json.d.ts.map +1 -1
- package/dist/shared/json.js +15 -0
- package/dist/shared/json.js.map +1 -1
- package/package.json +1 -1
|
@@ -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,
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAmB,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,iCAAiC,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,iBAAiB,CAAC;AAoBzB,MAAM,CAAC,MAAM,YAAY,GAAiB,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE;IACxE,IAAI,YAAY,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,0EAA0E;IAC1E,4EAA4E;IAC5E,sEAAsE;IACtE,4EAA4E;IAC5E,sEAAsE;IACtE,2DAA2D;IAC3D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,oBAAoB,CAAC;IAC1E,MAAM,eAAe,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC;IAC9F,MAAM,MAAM,GAAG,oBAAoB,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACxF,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;QACjC,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;QAC7C,YAAY,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;KACxC,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACjC,4EAA4E;IAC5E,4DAA4D;IAC5D,kEAAkE;IAClE,uEAAuE;IACvE,wEAAwE;IACxE,oCAAoC;IACpC,MAAM,iBAAiB,GAAG;QACxB,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;QACzF,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC;KAC3G,CAAC;IACF,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS;QAC1C,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE;YACnC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAChE,cAAc,EAAE,OAAO;YACvB,mEAAmE;YACnE,sEAAsE;YACtE,gEAAgE;YAChE,qBAAqB,EAAE,IAAI;YAC3B,GAAG,iBAAiB;SACrB,CAAC;QACJ,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE;YACpC,QAAQ,EAAE,OAAO,CAAC,MAAM;YACxB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,mEAAmE;YACnE,6DAA6D;YAC7D,oEAAoE;YACpE,qEAAqE;YACrE,+CAA+C;YAC/C,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAChE,cAAc,EAAE,OAAO;YACvB,GAAG,iBAAiB;SACrB,CAAC,CAAC;IACP,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IAC9C,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAC;IACzE,CAAC;IACD,yEAAyE;IACzE,uEAAuE;IACvE,2EAA2E;IAC3E,4EAA4E;IAC5E,0EAA0E;IAC1E,yEAAyE;IACzE,wEAAwE;IACxE,+CAA+C;IAC/C,MAAM,cAAc,GAAG,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/F,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,eAAe,cAAc,aAAa,OAAO,CAAC,KAAK,gBAAgB,CAAC,CAAC;IACxG,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,OAAO,GAA0B,IAAI,CAAC;IAC1C,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAyB,sBAAsB,CAAC;IAC9D,IAAI,kBAAkB,GAAwB,IAAI,CAAC;IAEnD,2EAA2E;IAC3E,6EAA6E;IAC7E,sCAAsC;IACtC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACvC,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QACD,IAAI,MAAM,KAAK,2BAA2B,EAAE,CAAC;YAC3C,kBAAkB,GAAG,iCAAiC,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC;QACvF,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9F,UAAU,GAAG,cAAc,CAAC;QAC5B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,KAAK,OAAO,CAAC,CAAC,CAAC;oBACb,mEAAmE;oBACnE,8DAA8D;oBAC9D,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;oBAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;oBAClC,IAAI,UAAU,KAAK,IAAI,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;wBAC3D,OAAO,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;oBACtE,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,KAAK,MAAM;oBACT,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACvC,MAAM;gBACR,KAAK,QAAQ;oBACX,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC5C,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM;gBACR;oBACE,MAAM;YACV,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QACjB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,yBAAyB,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC5G,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,CAAC,KAAqB,EAAQ,EAAE,CAAC,CAAC;QACjD,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;QACvB,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO;QACjC,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC/B,OAAO;YACT,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC5E,CAAC;gBAAC,MAAM,CAAC;oBACP,oEAAoE;oBACpE,wDAAwD;gBAC1D,CAAC;gBACD,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;YACjC,CAAC;QACH,CAAC;QACD,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACrB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC/B,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;YACjE,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC;YAC5C,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;oBACjC,QAAQ;oBACR,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;oBACtC,cAAc,EAAE,WAAW;iBAC5B,CAAC,CAAC;gBACH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;YAChG,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAY,WAAW,CAAC;QACnC,EAAE,EAAE,MAAM,CAAC,SAAS;QACpB,MAAM,CAAC,KAAK;YACV,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC1B,CAAC;YACD,MAAM,WAAW,GAAG,CAAC,KAAK,IAAqB,EAAE;gBAC/C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;oBAClD,QAAQ;oBACR,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;iBACvC,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC3C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC/B,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;gBAC9D,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,EAAE,CAAC;YACL,KAAK,CAAC,KAAK,IAAmB,EAAE;gBAC9B,IAAI,CAAC;oBACH,MAAM,WAAW,CAAC;gBACpB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC;oBAC5E,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,KAAK,GAAmB,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;YAC1D,OAAO,GAAG,KAAK,CAAC;YAChB,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;YACvC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,CAAC;QACD,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;QACnD,KAAK,EAAE,GAAG,EAAE,CAAC,cAAc;QAC3B,YAAY,EAAE,GAAG,EAAE,CAAC,kBAAkB;QACtC,KAAK,EAAE;YACL,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACnB,MAAM,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE;oBACvC,QAAQ;oBACR,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;oBACtC,mBAAmB,EAAE,UAAU,EAAE;iBAClC,CAAC,CAAC;YACL,CAAC;SACF;QACD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,oEAAoE;YACpE,+DAA+D;YAC/D,MAAM,MAAM,CAAC,MAAM,CAAC;QACtB,CAAC;KACF,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
|
|
@@ -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":"
|
|
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":"
|
|
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,
|
|
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":"
|
|
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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { ModelEntry, ModelLister } from "../../contracts/list-models.js";
|
|
2
|
+
/** The subset of Pi's `Model` the projection reads; kept structural for tests. */
|
|
3
|
+
export interface PiListedModel {
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly provider: string;
|
|
6
|
+
readonly name?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* The slice of Pi's `ModelRuntime` the lister depends on. `getAvailable()`
|
|
10
|
+
* runs the per-provider availability check (credentials present, OAuth token
|
|
11
|
+
* usable) and returns the usable-now list; it is what `pi --list-models`
|
|
12
|
+
* itself awaits.
|
|
13
|
+
*/
|
|
14
|
+
export interface PiAvailabilitySource {
|
|
15
|
+
getAvailable(providerId?: string, options?: {
|
|
16
|
+
readonly signal?: AbortSignal;
|
|
17
|
+
}): Promise<readonly PiListedModel[]>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Pi model ids are only unique per provider, so the session-facing id is
|
|
21
|
+
* `provider/model`, the same spelling Pi's own `--model` flag accepts.
|
|
22
|
+
*/
|
|
23
|
+
export declare function projectPiModels(models: readonly PiListedModel[]): ModelEntry[];
|
|
24
|
+
/**
|
|
25
|
+
* In-process through the bundled SDK, built the way `pi --list-models` builds
|
|
26
|
+
* its own runtime: `createAgentSessionServices` loads the extensions under the
|
|
27
|
+
* agent dir and applies their provider registrations to the ModelRuntime
|
|
28
|
+
* before anything is listed. That matters because extensions can be the ONLY
|
|
29
|
+
* source of providers (on exe.dev every listed provider comes from the exe-dev
|
|
30
|
+
* extension; auth.json is empty). A bare `ModelRuntime.create()` sees none of
|
|
31
|
+
* them and prints "no models" while `pi --list-models` prints dozens.
|
|
32
|
+
*
|
|
33
|
+
* The list itself comes from `getAvailable()`, which computes availability on
|
|
34
|
+
* demand. Do NOT read `ModelRegistry.getAvailable()` / `getAvailableSnapshot()`
|
|
35
|
+
* here: that snapshot starts empty and is only filled by an availability
|
|
36
|
+
* refresh (the other half of the 2026-09-05 "no models" bug).
|
|
37
|
+
*
|
|
38
|
+
* Skills, prompt templates, themes, and context files are skipped: they cannot
|
|
39
|
+
* register providers, and listing must not read the project's prompt files.
|
|
40
|
+
* `OAR_PI_AGENT_DIR` pins the agent dir exactly as the session adapter does,
|
|
41
|
+
* so the list and the session see the same providers.
|
|
42
|
+
*
|
|
43
|
+
* Pi keys on provider API keys rather than one login, so "nothing configured"
|
|
44
|
+
* is an `ok` empty list, not `unauthenticated`.
|
|
45
|
+
*/
|
|
46
|
+
export declare function createPiListModels(createRuntime: (signal: AbortSignal) => Promise<PiAvailabilitySource>): ModelLister;
|
|
47
|
+
export declare const piListModels: ModelLister;
|
|
48
|
+
//# sourceMappingURL=list-models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-models.d.ts","sourceRoot":"","sources":["../../../src/runtimes/pi/list-models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAG9E,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,YAAY,CACV,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC1C,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,GAAG,UAAU,EAAE,CAK9E;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,oBAAoB,CAAC,GACpE,WAAW,CAeb;AAED,eAAO,MAAM,YAAY,EAAE,WAczB,CAAC"}
|