@botiverse/oar 0.0.11 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/contracts/model-catalog.d.ts +1 -1
- package/dist/contracts/model-catalog.js +1 -1
- package/dist/contracts/provider-auth.d.ts +2 -2
- package/dist/contracts/provider-auth.js +2 -2
- package/dist/contracts/records.d.ts +205 -0
- package/dist/contracts/records.d.ts.map +1 -0
- package/dist/contracts/records.js +8 -0
- package/dist/contracts/records.js.map +1 -0
- package/dist/contracts/session.d.ts +83 -144
- package/dist/contracts/session.d.ts.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/observe/agent-status.d.ts +32 -18
- package/dist/observe/agent-status.d.ts.map +1 -1
- package/dist/observe/agent-status.js +66 -14
- package/dist/observe/agent-status.js.map +1 -1
- package/dist/observe/aggregate-events.d.ts +7 -6
- package/dist/observe/aggregate-events.d.ts.map +1 -1
- package/dist/observe/aggregate-events.js +38 -28
- package/dist/observe/aggregate-events.js.map +1 -1
- package/dist/observe/index.d.ts +4 -1
- package/dist/observe/index.d.ts.map +1 -1
- package/dist/observe/index.js +3 -1
- package/dist/observe/index.js.map +1 -1
- package/dist/observe/observe-agent.d.ts +4 -4
- package/dist/observe/observe-agent.d.ts.map +1 -1
- package/dist/observe/observe-agent.js +3 -3
- package/dist/observe/observe-agent.js.map +1 -1
- package/dist/observe/stall-observer.d.ts +7 -6
- package/dist/observe/stall-observer.d.ts.map +1 -1
- package/dist/observe/stall-observer.js +6 -5
- package/dist/observe/stall-observer.js.map +1 -1
- package/dist/observe/tool-activity.d.ts +2 -2
- package/dist/observe/tool-activity.d.ts.map +1 -1
- package/dist/observe/tool-activity.js +1 -1
- package/dist/observe/tool-activity.js.map +1 -1
- package/dist/observe/turns.d.ts +37 -0
- package/dist/observe/turns.d.ts.map +1 -0
- package/dist/observe/turns.js +70 -0
- package/dist/observe/turns.js.map +1 -0
- package/dist/observe/usage.d.ts +15 -0
- package/dist/observe/usage.d.ts.map +1 -0
- package/dist/observe/usage.js +79 -0
- package/dist/observe/usage.js.map +1 -0
- package/dist/runtimes/claude/account-usage.js +1 -1
- package/dist/runtimes/claude/context-usage.d.ts +1 -1
- package/dist/runtimes/claude/context-usage.js +1 -1
- package/dist/runtimes/claude/projection.d.ts +40 -27
- package/dist/runtimes/claude/projection.d.ts.map +1 -1
- package/dist/runtimes/claude/projection.js +107 -21
- package/dist/runtimes/claude/projection.js.map +1 -1
- package/dist/runtimes/claude/session.d.ts.map +1 -1
- package/dist/runtimes/claude/session.js +119 -87
- package/dist/runtimes/claude/session.js.map +1 -1
- package/dist/runtimes/codex/app-server-client.d.ts +38 -3
- package/dist/runtimes/codex/app-server-client.d.ts.map +1 -1
- package/dist/runtimes/codex/app-server-client.js +62 -15
- package/dist/runtimes/codex/app-server-client.js.map +1 -1
- package/dist/runtimes/codex/projection.d.ts +12 -12
- package/dist/runtimes/codex/projection.d.ts.map +1 -1
- package/dist/runtimes/codex/projection.js +101 -38
- package/dist/runtimes/codex/projection.js.map +1 -1
- package/dist/runtimes/codex/rpc-control.d.ts +31 -0
- package/dist/runtimes/codex/rpc-control.d.ts.map +1 -0
- package/dist/runtimes/codex/rpc-control.js +51 -0
- package/dist/runtimes/codex/rpc-control.js.map +1 -0
- package/dist/runtimes/codex/session.d.ts.map +1 -1
- package/dist/runtimes/codex/session.js +199 -149
- package/dist/runtimes/codex/session.js.map +1 -1
- package/dist/runtimes/grok/session.d.ts +37 -1
- package/dist/runtimes/grok/session.d.ts.map +1 -1
- package/dist/runtimes/grok/session.js +74 -0
- package/dist/runtimes/grok/session.js.map +1 -1
- package/dist/runtimes/kimi/session.d.ts.map +1 -1
- package/dist/runtimes/kimi/session.js +5 -0
- package/dist/runtimes/kimi/session.js.map +1 -1
- package/dist/runtimes/pi/auth.d.ts.map +1 -1
- package/dist/runtimes/pi/auth.js +6 -1
- package/dist/runtimes/pi/auth.js.map +1 -1
- package/dist/runtimes/pi/catalog.d.ts.map +1 -1
- package/dist/runtimes/pi/catalog.js +6 -1
- package/dist/runtimes/pi/catalog.js.map +1 -1
- package/dist/runtimes/pi/http.d.ts +34 -0
- package/dist/runtimes/pi/http.d.ts.map +1 -0
- package/dist/runtimes/pi/http.js +95 -0
- package/dist/runtimes/pi/http.js.map +1 -0
- package/dist/runtimes/pi/list-models.d.ts.map +1 -1
- package/dist/runtimes/pi/list-models.js +10 -3
- package/dist/runtimes/pi/list-models.js.map +1 -1
- package/dist/runtimes/pi/open.d.ts +32 -0
- package/dist/runtimes/pi/open.d.ts.map +1 -0
- package/dist/runtimes/pi/open.js +106 -0
- package/dist/runtimes/pi/open.js.map +1 -0
- package/dist/runtimes/pi/projection.d.ts +27 -25
- package/dist/runtimes/pi/projection.d.ts.map +1 -1
- package/dist/runtimes/pi/projection.js +85 -50
- package/dist/runtimes/pi/projection.js.map +1 -1
- package/dist/runtimes/pi/session.d.ts +1 -22
- package/dist/runtimes/pi/session.d.ts.map +1 -1
- package/dist/runtimes/pi/session.js +178 -184
- package/dist/runtimes/pi/session.js.map +1 -1
- package/dist/shared/acp/client-app.d.ts +23 -0
- package/dist/shared/acp/client-app.d.ts.map +1 -0
- package/dist/shared/acp/client-app.js +55 -0
- package/dist/shared/acp/client-app.js.map +1 -0
- package/dist/shared/acp/model.d.ts +3 -17
- package/dist/shared/acp/model.d.ts.map +1 -1
- package/dist/shared/acp/model.js +3 -14
- package/dist/shared/acp/model.js.map +1 -1
- package/dist/shared/acp/profile.d.ts +32 -7
- package/dist/shared/acp/profile.d.ts.map +1 -1
- package/dist/shared/acp/profile.js +17 -8
- package/dist/shared/acp/profile.js.map +1 -1
- package/dist/shared/acp/projection.d.ts +16 -8
- package/dist/shared/acp/projection.d.ts.map +1 -1
- package/dist/shared/acp/projection.js +51 -32
- package/dist/shared/acp/projection.js.map +1 -1
- package/dist/shared/acp/records.d.ts +46 -0
- package/dist/shared/acp/records.d.ts.map +1 -0
- package/dist/shared/acp/records.js +125 -0
- package/dist/shared/acp/records.js.map +1 -0
- package/dist/shared/acp/session.d.ts.map +1 -1
- package/dist/shared/acp/session.js +98 -224
- package/dist/shared/acp/session.js.map +1 -1
- package/dist/shared/acp/terminal.d.ts +1 -3
- package/dist/shared/acp/terminal.d.ts.map +1 -1
- package/dist/shared/acp/terminal.js +1 -21
- package/dist/shared/acp/terminal.js.map +1 -1
- package/dist/shared/acp/turns.d.ts +45 -0
- package/dist/shared/acp/turns.d.ts.map +1 -0
- package/dist/shared/acp/turns.js +160 -0
- package/dist/shared/acp/turns.js.map +1 -0
- package/dist/shared/acp/usage-wait.d.ts +6 -6
- package/dist/shared/acp/usage-wait.d.ts.map +1 -1
- package/dist/shared/acp/usage-wait.js +2 -2
- package/dist/shared/acp/usage-wait.js.map +1 -1
- package/dist/shared/failure-class.d.ts +1 -1
- package/dist/shared/failure-class.js +2 -2
- package/dist/shared/failure-class.js.map +1 -1
- package/dist/shared/seal-session.d.ts +5 -3
- package/dist/shared/seal-session.d.ts.map +1 -1
- package/dist/shared/seal-session.js +24 -16
- package/dist/shared/seal-session.js.map +1 -1
- package/dist/shared/session-kernel.d.ts +68 -18
- package/dist/shared/session-kernel.d.ts.map +1 -1
- package/dist/shared/session-kernel.js +82 -42
- package/dist/shared/session-kernel.js.map +1 -1
- package/dist/voyage.d.ts +4 -7
- package/dist/voyage.d.ts.map +1 -1
- package/dist/voyage.js +14 -19
- package/dist/voyage.js.map +1 -1
- package/package.json +4 -3
- package/dist/runtimes/codex/context-usage.d.ts +0 -10
- package/dist/runtimes/codex/context-usage.d.ts.map +0 -1
- package/dist/runtimes/codex/context-usage.js +0 -16
- package/dist/runtimes/codex/context-usage.js.map +0 -1
|
@@ -2,16 +2,33 @@ import { randomUUID } from "node:crypto";
|
|
|
2
2
|
import { asRecord } from "../../shared/json.js";
|
|
3
3
|
import { sealSession } from "../../shared/seal-session.js";
|
|
4
4
|
import { createSessionKernel } from "../../shared/session-kernel.js";
|
|
5
|
-
import { classifyFailure } from "../../shared/failure-class.js";
|
|
6
5
|
import { startAppServerClient } from "./app-server-client.js";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
6
|
+
import { foldCodexNotification, initialCodexProjection, } from "./projection.js";
|
|
7
|
+
import { openThread, rpcControl } from "./rpc-control.js";
|
|
8
|
+
/*
|
|
9
|
+
* codex app-server v2 mapping:
|
|
10
|
+
* - initialize → initialized, thread/start {cwd, approvalPolicy:never}
|
|
11
|
+
* - turn/start {threadId, input} → {turn{id}}: the RPC reply is the prompt's
|
|
12
|
+
* accepted response; completion is codex's own turn/completed notification
|
|
13
|
+
* (turn.status completed | interrupted | failed): the turn_ended view.
|
|
14
|
+
* - steer: turn/steer with the expectedTurnId precondition (race adjudicated
|
|
15
|
+
* at the runtime); a typed refusal is a rejected response.
|
|
16
|
+
* - abort: turn/interrupt {threadId, turnId}; the reply is the abort's
|
|
17
|
+
* accepted/rejected response, the outcome is turn/completed.
|
|
18
|
+
* - every notification is one event record (verbatim params); notifications
|
|
19
|
+
* of other threads are child-session records; collab items link them.
|
|
20
|
+
* - server-initiated requests are recorded as toApp requests, unanswered.
|
|
21
|
+
* - reachability (exited / disposed) is the kernel's, read off the stream;
|
|
22
|
+
* the adapter holds no liveness flag (record-stream.md, "Reachability").
|
|
23
|
+
* Live probe: codex-session-adapter.ts.
|
|
24
|
+
*/
|
|
25
|
+
const text = (input) => [{ type: "text", text: input }];
|
|
9
26
|
export const codexSession = async (installation, options) => {
|
|
10
27
|
if (installation.via !== "executable") {
|
|
11
28
|
throw new Error("The codex session adapter needs an executable installation");
|
|
12
29
|
}
|
|
13
30
|
// YOLO default (repo policy 2026-08-24): bypass the sandbox too, not just
|
|
14
|
-
// approvals
|
|
31
|
+
// approvals; OAR_CODEX_SANDBOX pins a stricter mode when a host wants one.
|
|
15
32
|
// Injected as a launch -c override because that is the only seam that
|
|
16
33
|
// governs codex's exec tool; thread/start.sandboxMode does NOT (pinned on a
|
|
17
34
|
// real login). A host that wants the user's own config to win can set
|
|
@@ -34,186 +51,219 @@ export const codexSession = async (installation, options) => {
|
|
|
34
51
|
...(options.systemPrompt === undefined ? {} : { baseInstructions: options.systemPrompt }),
|
|
35
52
|
...(options.appendSystemPrompt === undefined ? {} : { developerInstructions: options.appendSystemPrompt }),
|
|
36
53
|
};
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
const openMethod = options.resume === undefined ? "thread/start" : "thread/resume";
|
|
55
|
+
// The open event is marked at the reply's wire position AS the reply line
|
|
56
|
+
// is read (onSettled → client.mark), not after this await: a frame codex
|
|
57
|
+
// wrote in the same chunk right after the reply (thread/started) would
|
|
58
|
+
// otherwise precede it. The mark runs when the handlers register below,
|
|
59
|
+
// once the kernel exists; a failed open registers none, so it never runs.
|
|
60
|
+
let recordOpen = null;
|
|
61
|
+
const markOpen = (outcome) => {
|
|
62
|
+
if (outcome.kind === "result") {
|
|
63
|
+
client.mark(() => recordOpen?.());
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const started = await openThread(client, openMethod, async () => {
|
|
67
|
+
const reply = await (options.resume === undefined
|
|
68
|
+
? client.request("thread/start", {
|
|
69
|
+
cwd: options.cwd,
|
|
70
|
+
...(options.model === undefined ? {} : { model: options.model }),
|
|
71
|
+
approvalPolicy: "never",
|
|
72
|
+
// Required in addition to initialize.experimentalApi. This exposes
|
|
73
|
+
// the completed Responses API reasoning item, whose encrypted_content
|
|
74
|
+
// lets us distinguish redaction from genuinely empty reasoning.
|
|
75
|
+
experimentalRawEvents: true,
|
|
76
|
+
...instructionParams,
|
|
77
|
+
}, markOpen)
|
|
78
|
+
: client.request("thread/resume", {
|
|
79
|
+
threadId: options.resume,
|
|
80
|
+
excludeTurns: true,
|
|
81
|
+
cwd: options.cwd,
|
|
82
|
+
// Same-runtime model switch = resume the same thread id with a new
|
|
83
|
+
// model. thread/resume accepts `model` (codex rust-v0.153.4,
|
|
84
|
+
// protocol/v2/thread.rs ThreadResumeParams) and applies it when the
|
|
85
|
+
// thread is loaded cold, which is the normal case here because every
|
|
86
|
+
// oar session owns its own app-server process.
|
|
87
|
+
...(options.model === undefined ? {} : { model: options.model }),
|
|
88
|
+
approvalPolicy: "never",
|
|
89
|
+
...instructionParams,
|
|
90
|
+
}, markOpen));
|
|
91
|
+
return reply;
|
|
92
|
+
});
|
|
61
93
|
const threadId = asRecord(started.thread)?.id;
|
|
62
94
|
if (typeof threadId !== "string") {
|
|
63
95
|
client.kill();
|
|
64
96
|
throw new TypeError("codex thread start/resume returned no thread id");
|
|
65
97
|
}
|
|
66
|
-
// Both responses report the model
|
|
67
|
-
//
|
|
68
|
-
// codex's resume_running_thread ignores
|
|
69
|
-
// is already loaded and busy
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
// another, so the mismatch fails loudly here and the app-server we just
|
|
73
|
-
// started must not outlive the failed session.
|
|
98
|
+
// Both responses report the model actually active (Session.model() reads
|
|
99
|
+
// it back as a model view on the open event). Still check it against the
|
|
100
|
+
// request: codex's resume_running_thread ignores overrides for a thread
|
|
101
|
+
// that is already loaded and busy (warn "thread/resume overrides ignored
|
|
102
|
+
// for loaded thread") and answers with the old model; a caller who asked
|
|
103
|
+
// for a model must not get one silently running another.
|
|
74
104
|
const effectiveModel = typeof started.model === "string" ? started.model : null;
|
|
75
105
|
if (options.model !== undefined && effectiveModel !== null && effectiveModel !== options.model) {
|
|
76
106
|
client.kill();
|
|
77
|
-
|
|
78
|
-
throw new Error(`codex ${verb} kept model ${effectiveModel} although ${options.model} was requested`);
|
|
107
|
+
throw new Error(`codex ${openMethod} kept model ${effectiveModel} although ${options.model} was requested`);
|
|
79
108
|
}
|
|
80
109
|
const kernel = createSessionKernel(threadId);
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
110
|
+
const state = {
|
|
111
|
+
active: null,
|
|
112
|
+
spontaneous: false,
|
|
113
|
+
codexTurnId: null,
|
|
114
|
+
projection: initialCodexProjection(threadId),
|
|
115
|
+
};
|
|
116
|
+
const busy = () => state.active !== null || state.spontaneous;
|
|
117
|
+
let disposeRequest = null;
|
|
118
|
+
recordOpen = () => {
|
|
119
|
+
kernel.event({
|
|
120
|
+
type: openMethod,
|
|
121
|
+
native: started,
|
|
122
|
+
views: effectiveModel === null ? [] : [{ kind: "model", model: effectiveModel }],
|
|
123
|
+
});
|
|
124
|
+
};
|
|
85
125
|
// Drive the pure projection fold, applying its commands to the kernel; the
|
|
86
|
-
// fold owns
|
|
87
|
-
//
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
126
|
+
// fold owns event translation, attribution and graph links; this owns the
|
|
127
|
+
// transport-only turn id and the control decisions (busy, spontaneous).
|
|
128
|
+
const onNotification = (method, params) => {
|
|
129
|
+
const isRoot = typeof params.threadId !== "string" || params.threadId === threadId;
|
|
130
|
+
if (isRoot && method === "turn/started") {
|
|
131
|
+
const startedTurn = asRecord(params.turn)?.id;
|
|
132
|
+
if (!busy()) {
|
|
133
|
+
// A turn we did not prompt (a drained queue submission): adopt it.
|
|
134
|
+
state.spontaneous = true;
|
|
135
|
+
}
|
|
136
|
+
if (typeof startedTurn === "string") {
|
|
137
|
+
state.codexTurnId = startedTurn;
|
|
138
|
+
}
|
|
94
139
|
}
|
|
95
|
-
const { state: nextProjection, commands } = foldCodexNotification(projection, method, params);
|
|
96
|
-
projection = nextProjection;
|
|
140
|
+
const { state: nextProjection, commands } = foldCodexNotification(state.projection, method, params);
|
|
141
|
+
state.projection = nextProjection;
|
|
97
142
|
for (const command of commands) {
|
|
98
143
|
switch (command.kind) {
|
|
99
|
-
case "
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
const startedTurn = asRecord(params.turn)?.id;
|
|
103
|
-
const kernelTurn = kernel.begin();
|
|
104
|
-
if (kernelTurn !== null && typeof startedTurn === "string") {
|
|
105
|
-
current = { kernelTurn, codexTurnId: Promise.resolve(startedTurn) };
|
|
144
|
+
case "event":
|
|
145
|
+
if (command.sessionId !== undefined) {
|
|
146
|
+
kernel.node(command.sessionId);
|
|
106
147
|
}
|
|
148
|
+
kernel.event(command.body, {
|
|
149
|
+
...(command.sessionId === undefined ? {} : { sessionId: command.sessionId }),
|
|
150
|
+
...(command.spanId === undefined ? {} : { spanId: command.spanId }),
|
|
151
|
+
});
|
|
107
152
|
break;
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
current?.kernelTurn.emit(command.body);
|
|
111
|
-
break;
|
|
112
|
-
case "settle":
|
|
113
|
-
current?.kernelTurn.settle(command.outcome);
|
|
114
|
-
current = null;
|
|
153
|
+
case "link":
|
|
154
|
+
kernel.link(command.edge);
|
|
115
155
|
break;
|
|
116
156
|
default:
|
|
117
157
|
break;
|
|
118
158
|
}
|
|
119
159
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
160
|
+
if (isRoot && method === "turn/completed") {
|
|
161
|
+
state.active = null;
|
|
162
|
+
state.spontaneous = false;
|
|
163
|
+
state.codexTurnId = null;
|
|
124
164
|
}
|
|
165
|
+
};
|
|
166
|
+
// Approvals, user input, dynamic tools: recorded verbatim, never answered
|
|
167
|
+
// (approvalPolicy never means none are expected; a dangling request is
|
|
168
|
+
// the honest record when one arrives anyway).
|
|
169
|
+
const onServerRequest = (id, method, params) => {
|
|
170
|
+
kernel.request("toApp", { kind: "native", type: method, native: params }, { id });
|
|
171
|
+
};
|
|
172
|
+
// Registering flushes everything held so far in wire order: the frames
|
|
173
|
+
// from before the thread existed, then the open event (the mark placed at
|
|
174
|
+
// the reply), then whatever codex wrote after the reply.
|
|
175
|
+
client.handle({ onNotification, onServerRequest });
|
|
176
|
+
client.onExit((code) => {
|
|
177
|
+
// The exit is an outcome only oar observes: it answers our dispose when
|
|
178
|
+
// we caused it, and stands alone when the app-server died on its own.
|
|
179
|
+
kernel.respond(disposeRequest?.id ?? "", { kind: "exited", code });
|
|
180
|
+
state.active = null;
|
|
181
|
+
state.spontaneous = false;
|
|
182
|
+
state.codexTurnId = null;
|
|
125
183
|
});
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
if (
|
|
135
|
-
|
|
136
|
-
await client.request("turn/interrupt", { threadId, turnId: codexTurnId });
|
|
137
|
-
}
|
|
138
|
-
catch {
|
|
139
|
-
// The turn ended before the interrupt landed — the contractual late
|
|
140
|
-
// abort no-op; turn/completed settles the real outcome.
|
|
141
|
-
}
|
|
142
|
-
await state.kernelTurn.outcome;
|
|
184
|
+
/** Turn a plan builder into a Session control member. */
|
|
185
|
+
const via = (plan) => async (...args) => {
|
|
186
|
+
const result = await rpcControl(kernel, client, plan(...args));
|
|
187
|
+
return result;
|
|
188
|
+
};
|
|
189
|
+
const promptPlan = (input) => ({
|
|
190
|
+
body: { kind: "prompt", input },
|
|
191
|
+
gate: (request) => {
|
|
192
|
+
if (busy()) {
|
|
193
|
+
return { kind: "rejected", reason: "busy" };
|
|
143
194
|
}
|
|
195
|
+
// Hold the slot while the RPC is in flight so a concurrent prompt is busy.
|
|
196
|
+
state.active = request;
|
|
197
|
+
return null;
|
|
144
198
|
},
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
threadId,
|
|
153
|
-
input: [{ type: "text", text: input }],
|
|
154
|
-
expectedTurnId: codexTurnId,
|
|
155
|
-
});
|
|
156
|
-
return { kind: "accepted" };
|
|
157
|
-
}
|
|
158
|
-
catch (error) {
|
|
159
|
-
return { kind: "not_steerable", reason: error instanceof Error ? error.message : "rejected" };
|
|
199
|
+
method: "turn/start",
|
|
200
|
+
params: () => ({ threadId, input: text(input) }),
|
|
201
|
+
onReply: (reply) => {
|
|
202
|
+
const turnId = asRecord(reply.turn)?.id;
|
|
203
|
+
if (typeof turnId !== "string") {
|
|
204
|
+
state.active = null;
|
|
205
|
+
return { kind: "rejected", reason: "codex turn/start returned no turn id", native: reply };
|
|
160
206
|
}
|
|
207
|
+
state.codexTurnId = turnId;
|
|
208
|
+
return { kind: "accepted", native: reply };
|
|
209
|
+
},
|
|
210
|
+
onError: (message) => {
|
|
211
|
+
state.active = null;
|
|
212
|
+
return { kind: "rejected", reason: message };
|
|
161
213
|
},
|
|
162
214
|
});
|
|
215
|
+
const steerPlan = (input) => ({
|
|
216
|
+
body: { kind: "steer", input },
|
|
217
|
+
gate: () => (!busy() || state.codexTurnId === null ? { kind: "rejected", reason: "not_steerable: no active turn" } : null),
|
|
218
|
+
method: "turn/steer",
|
|
219
|
+
params: () => ({ threadId, input: text(input), expectedTurnId: state.codexTurnId }),
|
|
220
|
+
onReply: (reply) => ({ kind: "accepted", native: reply }),
|
|
221
|
+
onError: (message) => ({ kind: "rejected", reason: `not_steerable: ${message}` }),
|
|
222
|
+
});
|
|
223
|
+
// The reply carries the runtime's submission id; it is retained on the response.
|
|
224
|
+
const queuePlan = (input) => ({
|
|
225
|
+
body: { kind: "queue", input },
|
|
226
|
+
gate: () => null,
|
|
227
|
+
method: "thread/queue/add",
|
|
228
|
+
params: () => ({ threadId, input: text(input), clientUserMessageId: randomUUID() }),
|
|
229
|
+
onReply: (reply) => ({ kind: "accepted", native: reply }),
|
|
230
|
+
onError: (message) => ({ kind: "rejected", reason: message }),
|
|
231
|
+
});
|
|
232
|
+
// A refused interrupt is the contractual late abort: the turn ended before
|
|
233
|
+
// it landed, and turn/completed carries the real outcome.
|
|
234
|
+
const abortPlan = () => ({
|
|
235
|
+
body: { kind: "abort" },
|
|
236
|
+
gate: () => (!busy() || state.codexTurnId === null ? { kind: "rejected", reason: "no active turn" } : null),
|
|
237
|
+
method: "turn/interrupt",
|
|
238
|
+
params: () => ({ threadId, turnId: state.codexTurnId }),
|
|
239
|
+
onReply: (reply) => ({ kind: "accepted", native: reply }),
|
|
240
|
+
onError: (message) => ({ kind: "rejected", reason: message }),
|
|
241
|
+
});
|
|
163
242
|
const session = sealSession({
|
|
164
243
|
id: kernel.sessionId,
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
input: [{ type: "text", text: input }],
|
|
174
|
-
});
|
|
175
|
-
const turnId = asRecord(response.turn)?.id;
|
|
176
|
-
if (typeof turnId !== "string") {
|
|
177
|
-
throw new TypeError("codex turn/start returned no turn id");
|
|
178
|
-
}
|
|
179
|
-
return turnId;
|
|
180
|
-
})();
|
|
181
|
-
void (async () => {
|
|
182
|
-
try {
|
|
183
|
-
await codexTurnId;
|
|
184
|
-
}
|
|
185
|
-
catch (error) {
|
|
186
|
-
const reason = error instanceof Error ? error.message : "turn/start failed";
|
|
187
|
-
kernelTurn.settle({ kind: "failed", reason, failure: classifyFailure(reason) });
|
|
188
|
-
}
|
|
189
|
-
})();
|
|
190
|
-
const state = { kernelTurn, codexTurnId };
|
|
191
|
-
current = state;
|
|
192
|
-
projection = codexPrompted(projection);
|
|
193
|
-
return { kind: "turn", turn: makeTurn(state) };
|
|
194
|
-
},
|
|
195
|
-
subscribe: (observer) => kernel.subscribe(observer),
|
|
196
|
-
model: () => effectiveModel,
|
|
197
|
-
contextUsage: () => latestContextUsage,
|
|
198
|
-
queue: {
|
|
199
|
-
durable: true,
|
|
200
|
-
add: async (input) => {
|
|
201
|
-
await client.request("thread/queue/add", {
|
|
202
|
-
threadId,
|
|
203
|
-
input: [{ type: "text", text: input }],
|
|
204
|
-
clientUserMessageId: randomUUID(),
|
|
205
|
-
});
|
|
206
|
-
},
|
|
207
|
-
},
|
|
244
|
+
capabilities: { steer: true, queue: { durable: true }, attribution: "nested" },
|
|
245
|
+
prompt: via(promptPlan),
|
|
246
|
+
steer: via(steerPlan),
|
|
247
|
+
queue: via(queuePlan),
|
|
248
|
+
abort: via(abortPlan),
|
|
249
|
+
subscribe: (observer, cursor) => kernel.subscribe(observer, cursor),
|
|
250
|
+
records: () => kernel.records(),
|
|
251
|
+
graph: () => kernel.graph(),
|
|
208
252
|
dispose: async () => {
|
|
209
|
-
if (
|
|
253
|
+
if (disposeRequest !== null) {
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
const gone = kernel.unreachable() !== null; // only an observed exit can say so before this dispose is recorded
|
|
257
|
+
disposeRequest = kernel.request("toRuntime", { kind: "dispose" });
|
|
258
|
+
if (gone) {
|
|
259
|
+
// The exit is already recorded; nothing is left to release.
|
|
260
|
+
kernel.respond(disposeRequest.id, { kind: "accepted" });
|
|
210
261
|
return;
|
|
211
262
|
}
|
|
212
|
-
disposed = true;
|
|
213
|
-
kernel.active()?.settle({ kind: "aborted" });
|
|
214
263
|
client.kill();
|
|
215
264
|
// Await the actual exit: the process may hold state (codex's sqlite
|
|
216
|
-
// runtime in CODEX_HOME) that the next session needs released.
|
|
265
|
+
// runtime in CODEX_HOME) that the next session needs released. The
|
|
266
|
+
// exit response is recorded by onExit.
|
|
217
267
|
await client.exited;
|
|
218
268
|
},
|
|
219
269
|
});
|
|
@@ -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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"}
|
|
@@ -1,10 +1,46 @@
|
|
|
1
|
-
import type { ContextUsage, SessionOptions } from "../../contracts/session.js";
|
|
1
|
+
import type { ContextUsage, SessionOptions, TokenTotals } from "../../contracts/session.js";
|
|
2
2
|
import { type AcpSessionProfile } from "../../shared/acp/session.js";
|
|
3
3
|
import { type JsonRecord } from "../../shared/json.js";
|
|
4
4
|
export declare function selectGrokAuthMethod(initialized: JsonRecord): string | undefined;
|
|
5
5
|
export declare function grokInitializeMeta(options: SessionOptions): JsonRecord;
|
|
6
6
|
/** Grok prompt responses carry an authoritative usage snapshot in `_meta`. */
|
|
7
7
|
export declare function grokContextUsage(response: JsonRecord): ContextUsage | null;
|
|
8
|
+
/**
|
|
9
|
+
* The tokens one prompt answer bills: `_meta.usage` is the prompt's ledger
|
|
10
|
+
* summed over its model calls (grok 1.0.25, live 2026-09-11: three one-word
|
|
11
|
+
* turns billed ~16.8k input each, not a growing total; a steered turn's
|
|
12
|
+
* closing answer summed its two calls). `inputTokens` includes the cached
|
|
13
|
+
* reads (`cachedReadTokens` ≤ it) and, for a prompt that spawned children,
|
|
14
|
+
* the children's model calls too (live-grok-c/subagent seq 159 = the four
|
|
15
|
+
* `response_completed` frames 48+78+119+155, two of them the child's). The
|
|
16
|
+
* turn machinery sums these per session.
|
|
17
|
+
*/
|
|
18
|
+
export declare function grokPromptTokens(response: JsonRecord): TokenTotals | null;
|
|
19
|
+
/**
|
|
20
|
+
* Vendor notification methods the SDK must be told about, or it discards
|
|
21
|
+
* the frame unseen. Registered so each is recorded verbatim; one that names
|
|
22
|
+
* a parent/child session pair links the session graph (records.ts).
|
|
23
|
+
*
|
|
24
|
+
* Observed on the live wire, grok 1.0.25 (f7e67d6988e2), 2026-09-11
|
|
25
|
+
* (experiments/grok-wire-tap.ts): `_x.ai/session_notification`, the vendor
|
|
26
|
+
* twin of `session/update` (`{sessionId, update: {sessionUpdate}}`) carrying
|
|
27
|
+
* `model_changed`, `session_summary_generated`, `tool_call_delta_chunk`,
|
|
28
|
+
* `pending_interaction`, `interaction_resolved`, `response_completed`,
|
|
29
|
+
* `turn_completed`, `last_turn_summary`, `background_tasks` (on resume) and
|
|
30
|
+
* the sub-agent lifecycle `subagent_spawned` / `subagent_progress` /
|
|
31
|
+
* `subagent_finished`; `_x.ai/sessions/changed`;
|
|
32
|
+
* `_x.ai/session/prompt_complete`; and, per session start, the connection
|
|
33
|
+
* housekeeping `_x.ai/queue/changed`, `_x.ai/models/update`,
|
|
34
|
+
* `_x.ai/settings/update`, `_x.ai/announcements/update`,
|
|
35
|
+
* `_x.ai/mcp/servers_updated`, `_x.ai/mcp/init_progress`,
|
|
36
|
+
* `_x.ai/mcp/server_status`, `_x.ai/mcp_initialized`, all of which the tap
|
|
37
|
+
* showed on the wire but missing from the stream until listed here.
|
|
38
|
+
*
|
|
39
|
+
* Still [sym] only (in the binary's symbol table, never on a live wire):
|
|
40
|
+
* `_x.ai/session/update`, `_x.ai/task_backgrounded`, `_x.ai/task_completed`,
|
|
41
|
+
* `_x.ai/session/usage`. Kept registered: an unlisted name is a dropped frame.
|
|
42
|
+
*/
|
|
43
|
+
export declare const GROK_EXTENSION_NOTIFICATIONS: readonly string[];
|
|
8
44
|
export declare const grokAcpProfile: AcpSessionProfile;
|
|
9
45
|
export declare const grokSession: import("../../contracts/session.js").StartSession;
|
|
10
46
|
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/grok/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/grok/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAS3E,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAQhF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,UAAU,CAYtE;AAYD,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAc1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,CAUzE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAkBzD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,iBAkB5B,CAAC;AAEF,eAAO,MAAM,WAAW,mDAA6B,CAAC"}
|
|
@@ -53,14 +53,88 @@ export function grokContextUsage(response) {
|
|
|
53
53
|
: Math.round((tokens / contextWindow) * 100);
|
|
54
54
|
return { tokens, contextWindow, percent };
|
|
55
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* The tokens one prompt answer bills: `_meta.usage` is the prompt's ledger
|
|
58
|
+
* summed over its model calls (grok 1.0.25, live 2026-09-11: three one-word
|
|
59
|
+
* turns billed ~16.8k input each, not a growing total; a steered turn's
|
|
60
|
+
* closing answer summed its two calls). `inputTokens` includes the cached
|
|
61
|
+
* reads (`cachedReadTokens` ≤ it) and, for a prompt that spawned children,
|
|
62
|
+
* the children's model calls too (live-grok-c/subagent seq 159 = the four
|
|
63
|
+
* `response_completed` frames 48+78+119+155, two of them the child's). The
|
|
64
|
+
* turn machinery sums these per session.
|
|
65
|
+
*/
|
|
66
|
+
export function grokPromptTokens(response) {
|
|
67
|
+
// oxlint-disable-next-line eslint/no-underscore-dangle -- `_meta` is the ACP extension envelope.
|
|
68
|
+
const usage = asRecord(asRecord(response._meta)?.usage);
|
|
69
|
+
const input = firstNumber(usage, ["inputTokens", "input_tokens"]);
|
|
70
|
+
const output = firstNumber(usage, ["outputTokens", "output_tokens"]);
|
|
71
|
+
// Both or nothing: a half ledger would invent a 0 for the missing side.
|
|
72
|
+
if (input === null || output === null) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
return { input, output };
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Vendor notification methods the SDK must be told about, or it discards
|
|
79
|
+
* the frame unseen. Registered so each is recorded verbatim; one that names
|
|
80
|
+
* a parent/child session pair links the session graph (records.ts).
|
|
81
|
+
*
|
|
82
|
+
* Observed on the live wire, grok 1.0.25 (f7e67d6988e2), 2026-09-11
|
|
83
|
+
* (experiments/grok-wire-tap.ts): `_x.ai/session_notification`, the vendor
|
|
84
|
+
* twin of `session/update` (`{sessionId, update: {sessionUpdate}}`) carrying
|
|
85
|
+
* `model_changed`, `session_summary_generated`, `tool_call_delta_chunk`,
|
|
86
|
+
* `pending_interaction`, `interaction_resolved`, `response_completed`,
|
|
87
|
+
* `turn_completed`, `last_turn_summary`, `background_tasks` (on resume) and
|
|
88
|
+
* the sub-agent lifecycle `subagent_spawned` / `subagent_progress` /
|
|
89
|
+
* `subagent_finished`; `_x.ai/sessions/changed`;
|
|
90
|
+
* `_x.ai/session/prompt_complete`; and, per session start, the connection
|
|
91
|
+
* housekeeping `_x.ai/queue/changed`, `_x.ai/models/update`,
|
|
92
|
+
* `_x.ai/settings/update`, `_x.ai/announcements/update`,
|
|
93
|
+
* `_x.ai/mcp/servers_updated`, `_x.ai/mcp/init_progress`,
|
|
94
|
+
* `_x.ai/mcp/server_status`, `_x.ai/mcp_initialized`, all of which the tap
|
|
95
|
+
* showed on the wire but missing from the stream until listed here.
|
|
96
|
+
*
|
|
97
|
+
* Still [sym] only (in the binary's symbol table, never on a live wire):
|
|
98
|
+
* `_x.ai/session/update`, `_x.ai/task_backgrounded`, `_x.ai/task_completed`,
|
|
99
|
+
* `_x.ai/session/usage`. Kept registered: an unlisted name is a dropped frame.
|
|
100
|
+
*/
|
|
101
|
+
export const GROK_EXTENSION_NOTIFICATIONS = [
|
|
102
|
+
// live 2026-09-11
|
|
103
|
+
"_x.ai/session_notification",
|
|
104
|
+
"_x.ai/sessions/changed",
|
|
105
|
+
"_x.ai/session/prompt_complete",
|
|
106
|
+
"_x.ai/queue/changed",
|
|
107
|
+
"_x.ai/models/update",
|
|
108
|
+
"_x.ai/settings/update",
|
|
109
|
+
"_x.ai/announcements/update",
|
|
110
|
+
"_x.ai/mcp/servers_updated",
|
|
111
|
+
"_x.ai/mcp/init_progress",
|
|
112
|
+
"_x.ai/mcp/server_status",
|
|
113
|
+
"_x.ai/mcp_initialized",
|
|
114
|
+
// [sym] only
|
|
115
|
+
"_x.ai/session/update",
|
|
116
|
+
"_x.ai/task_backgrounded",
|
|
117
|
+
"_x.ai/task_completed",
|
|
118
|
+
"_x.ai/session/usage",
|
|
119
|
+
];
|
|
56
120
|
export const grokAcpProfile = {
|
|
57
121
|
args: ["agent", "--always-approve", "--no-leader", "stdio"],
|
|
122
|
+
// Native children are independent ACP sessions on the same connection
|
|
123
|
+
// (attribution tier #3, docs/spec/attribution.md): recorded under their own
|
|
124
|
+
// session id, linked in the graph when a lifecycle notification says so.
|
|
125
|
+
capabilities: { steer: true, queue: { durable: false }, attribution: "nested" },
|
|
126
|
+
extensionNotifications: GROK_EXTENSION_NOTIFICATIONS,
|
|
58
127
|
terminalShellCommand: true,
|
|
59
128
|
initializeMeta: grokInitializeMeta,
|
|
60
129
|
sessionMeta: () => ({ yoloMode: true }),
|
|
61
130
|
selectAuthMethod: selectGrokAuthMethod,
|
|
131
|
+
// `_meta.sendNow` is not an injection: grok answers the running prompt
|
|
132
|
+
// `cancelled` (`cancelTrigger: "send_now"`, live 1.0.25) and starts a fresh
|
|
133
|
+
// model turn that re-issued the interrupted tool calls; both answers fold
|
|
134
|
+
// into the one oar turn (turns.ts).
|
|
62
135
|
steerParams: () => ({ _meta: { sendNow: true } }),
|
|
63
136
|
promptContextUsage: grokContextUsage,
|
|
137
|
+
promptTokenUsage: grokPromptTokens,
|
|
64
138
|
};
|
|
65
139
|
export const grokSession = acpSession(grokAcpProfile);
|
|
66
140
|
//# sourceMappingURL=session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/grok/session.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/grok/session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAA0B,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAC;AAE3E,SAAS,aAAa,CAAC,WAAuB;IAC5C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3E,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACjC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;SAC3B,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,WAAuB;IAC1D,MAAM,GAAG,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IACvC,iGAAiG;IACjG,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC;IACnE,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAuB;IACxD,OAAO;QACL,gBAAgB,EAAE,KAAK;QACvB,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE;YACZ,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;YACnB,iBAAiB,EAAE,IAAI;SACxB;QACD,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;QAC7F,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC;KAC3F,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAyB,EAAE,KAAwB;IACtE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAAC,QAAoB;IACnD,iGAAiG;IACjG,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtC,0EAA0E;IAC1E,wEAAwE;IACxE,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;IACnE,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACjG,IAAI,MAAM,KAAK,IAAI,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,KAAK,IAAI,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,CAAC;QAC9E,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC;IAC/C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;AAC5C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAoB;IACnD,iGAAiG;IACjG,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;IACrE,wEAAwE;IACxE,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAsB;IAC7D,kBAAkB;IAClB,4BAA4B;IAC5B,wBAAwB;IACxB,+BAA+B;IAC/B,qBAAqB;IACrB,qBAAqB;IACrB,uBAAuB;IACvB,4BAA4B;IAC5B,2BAA2B;IAC3B,yBAAyB;IACzB,yBAAyB;IACzB,uBAAuB;IACvB,aAAa;IACb,sBAAsB;IACtB,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,IAAI,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,OAAO,CAAC;IAC3D,sEAAsE;IACtE,4EAA4E;IAC5E,yEAAyE;IACzE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;IAC/E,sBAAsB,EAAE,4BAA4B;IACpD,oBAAoB,EAAE,IAAI;IAC1B,cAAc,EAAE,kBAAkB;IAClC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvC,gBAAgB,EAAE,oBAAoB;IACtC,uEAAuE;IACvE,4EAA4E;IAC5E,0EAA0E;IAC1E,oCAAoC;IACpC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;IACjD,kBAAkB,EAAE,gBAAgB;IACpC,gBAAgB,EAAE,gBAAgB;CACnC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC"}
|
|
@@ -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,iBAsB5B,CAAC;AAEF,eAAO,MAAM,WAAW,mDAA6B,CAAC"}
|
|
@@ -26,6 +26,11 @@ function validateKimiOptions(options) {
|
|
|
26
26
|
}
|
|
27
27
|
export const kimiAcpProfile = {
|
|
28
28
|
args: ["acp"],
|
|
29
|
+
// `kimi acp` binds the native session's `main` agent only (kimi-code
|
|
30
|
+
// f9ca33376 acp-server session.ts), so children exist natively but never
|
|
31
|
+
// reach this transport: opaque (tier #1), honestly root-only. The ACP
|
|
32
|
+
// method set has no steer.
|
|
33
|
+
capabilities: { steer: false, queue: { durable: false }, attribution: "opaque" },
|
|
29
34
|
requestTimeoutMs: 30_000,
|
|
30
35
|
selectAuthMethod: selectKimiAuthMethod,
|
|
31
36
|
validateOptions: validateKimiOptions,
|