@jini-ai/agent-runtime 0.2.0 → 0.3.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/agent-protocol/acp/session.d.ts +206 -1
- package/dist/agent-protocol/acp/session.d.ts.map +1 -1
- package/dist/agent-protocol/acp/session.js +505 -350
- package/dist/agent-protocol/acp/session.js.map +1 -1
- package/dist/agent-protocol/core/json-line-stream.d.ts +53 -0
- package/dist/agent-protocol/core/json-line-stream.d.ts.map +1 -1
- package/dist/agent-protocol/core/json-line-stream.js +307 -255
- package/dist/agent-protocol/core/json-line-stream.js.map +1 -1
- package/dist/agent-protocol/pi-rpc/events.d.ts +22 -1
- package/dist/agent-protocol/pi-rpc/events.d.ts.map +1 -1
- package/dist/agent-protocol/pi-rpc/events.js +189 -153
- package/dist/agent-protocol/pi-rpc/events.js.map +1 -1
- package/dist/agent-protocol/pi-rpc/session.d.ts +39 -0
- package/dist/agent-protocol/pi-rpc/session.d.ts.map +1 -1
- package/dist/agent-protocol/pi-rpc/session.js +143 -107
- package/dist/agent-protocol/pi-rpc/session.js.map +1 -1
- package/dist/claude-stream.d.ts +64 -1
- package/dist/claude-stream.d.ts.map +1 -1
- package/dist/claude-stream.js +568 -441
- package/dist/claude-stream.js.map +1 -1
- package/dist/defs/aider.d.ts.map +1 -1
- package/dist/defs/aider.js +13 -1
- package/dist/defs/aider.js.map +1 -1
- package/dist/defs/amp.d.ts.map +1 -1
- package/dist/defs/amp.js +16 -1
- package/dist/defs/amp.js.map +1 -1
- package/dist/defs/amr.d.ts +2 -1
- package/dist/defs/amr.d.ts.map +1 -1
- package/dist/defs/amr.js +12 -1
- package/dist/defs/amr.js.map +1 -1
- package/dist/defs/antigravity.d.ts +41 -2
- package/dist/defs/antigravity.d.ts.map +1 -1
- package/dist/defs/antigravity.js +201 -22
- package/dist/defs/antigravity.js.map +1 -1
- package/dist/defs/claude.d.ts +2 -0
- package/dist/defs/claude.d.ts.map +1 -1
- package/dist/defs/claude.js +58 -3
- package/dist/defs/claude.js.map +1 -1
- package/dist/defs/codebuddy.d.ts.map +1 -1
- package/dist/defs/codebuddy.js +9 -1
- package/dist/defs/codebuddy.js.map +1 -1
- package/dist/defs/codex.d.ts +1 -0
- package/dist/defs/codex.d.ts.map +1 -1
- package/dist/defs/codex.js +34 -0
- package/dist/defs/codex.js.map +1 -1
- package/dist/defs/copilot.d.ts.map +1 -1
- package/dist/defs/copilot.js +15 -1
- package/dist/defs/copilot.js.map +1 -1
- package/dist/defs/cursor-agent.d.ts.map +1 -1
- package/dist/defs/cursor-agent.js +24 -2
- package/dist/defs/cursor-agent.js.map +1 -1
- package/dist/defs/deepseek.d.ts.map +1 -1
- package/dist/defs/deepseek.js +12 -0
- package/dist/defs/deepseek.js.map +1 -1
- package/dist/defs/devin.d.ts +2 -1
- package/dist/defs/devin.d.ts.map +1 -1
- package/dist/defs/devin.js +12 -7
- package/dist/defs/devin.js.map +1 -1
- package/dist/defs/grok-build.d.ts.map +1 -1
- package/dist/defs/grok-build.js +10 -0
- package/dist/defs/grok-build.js.map +1 -1
- package/dist/defs/hermes.d.ts +1 -0
- package/dist/defs/hermes.d.ts.map +1 -1
- package/dist/defs/hermes.js +3 -0
- package/dist/defs/hermes.js.map +1 -1
- package/dist/defs/kilo.d.ts +1 -0
- package/dist/defs/kilo.d.ts.map +1 -1
- package/dist/defs/kilo.js +3 -0
- package/dist/defs/kilo.js.map +1 -1
- package/dist/defs/kimi.d.ts +1 -0
- package/dist/defs/kimi.d.ts.map +1 -1
- package/dist/defs/kimi.js +3 -0
- package/dist/defs/kimi.js.map +1 -1
- package/dist/defs/kiro.d.ts +1 -0
- package/dist/defs/kiro.d.ts.map +1 -1
- package/dist/defs/kiro.js +3 -0
- package/dist/defs/kiro.js.map +1 -1
- package/dist/defs/pi.d.ts +1 -1
- package/dist/defs/pi.d.ts.map +1 -1
- package/dist/defs/pi.js +6 -1
- package/dist/defs/pi.js.map +1 -1
- package/dist/defs/qoder.d.ts +1 -0
- package/dist/defs/qoder.d.ts.map +1 -1
- package/dist/defs/qoder.js +15 -0
- package/dist/defs/qoder.js.map +1 -1
- package/dist/defs/qwen.d.ts.map +1 -1
- package/dist/defs/qwen.js +9 -0
- package/dist/defs/qwen.js.map +1 -1
- package/dist/defs/reasonix.d.ts +1 -0
- package/dist/defs/reasonix.d.ts.map +1 -1
- package/dist/defs/reasonix.js +3 -0
- package/dist/defs/reasonix.js.map +1 -1
- package/dist/defs/shared.d.ts +31 -1
- package/dist/defs/shared.d.ts.map +1 -1
- package/dist/defs/shared.js +35 -0
- package/dist/defs/shared.js.map +1 -1
- package/dist/defs/trae-cli.d.ts +1 -0
- package/dist/defs/trae-cli.d.ts.map +1 -1
- package/dist/defs/trae-cli.js +3 -0
- package/dist/defs/trae-cli.js.map +1 -1
- package/dist/defs/vibe.d.ts +1 -0
- package/dist/defs/vibe.d.ts.map +1 -1
- package/dist/defs/vibe.js +3 -0
- package/dist/defs/vibe.js.map +1 -1
- package/dist/detection.d.ts +1 -1
- package/dist/detection.d.ts.map +1 -1
- package/dist/detection.js +7 -2
- package/dist/detection.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/log-file.d.ts +23 -0
- package/dist/log-file.d.ts.map +1 -0
- package/dist/log-file.js +56 -0
- package/dist/log-file.js.map +1 -0
- package/dist/model-registry.d.ts +7 -45
- package/dist/model-registry.d.ts.map +1 -1
- package/dist/model-registry.js.map +1 -1
- package/dist/providers/anthropic-messages.d.ts +198 -6
- package/dist/providers/anthropic-messages.d.ts.map +1 -1
- package/dist/providers/anthropic-messages.js +317 -140
- package/dist/providers/anthropic-messages.js.map +1 -1
- package/dist/providers/azure-chat.d.ts +113 -3
- package/dist/providers/azure-chat.d.ts.map +1 -1
- package/dist/providers/azure-chat.js +114 -21
- package/dist/providers/azure-chat.js.map +1 -1
- package/dist/providers/connection-guard.d.ts +121 -1
- package/dist/providers/connection-guard.d.ts.map +1 -1
- package/dist/providers/connection-guard.js +205 -3
- package/dist/providers/connection-guard.js.map +1 -1
- package/dist/providers/connection-test.d.ts +62 -0
- package/dist/providers/connection-test.d.ts.map +1 -0
- package/dist/providers/connection-test.js +404 -0
- package/dist/providers/connection-test.js.map +1 -0
- package/dist/providers/elevenlabs.d.ts.map +1 -1
- package/dist/providers/elevenlabs.js +3 -2
- package/dist/providers/elevenlabs.js.map +1 -1
- package/dist/providers/google-messages.d.ts +208 -7
- package/dist/providers/google-messages.d.ts.map +1 -1
- package/dist/providers/google-messages.js +331 -105
- package/dist/providers/google-messages.js.map +1 -1
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/model-catalog.d.ts.map +1 -1
- package/dist/providers/model-catalog.js +21 -0
- package/dist/providers/model-catalog.js.map +1 -1
- package/dist/providers/ollama-chat.d.ts +190 -1
- package/dist/providers/ollama-chat.d.ts.map +1 -1
- package/dist/providers/ollama-chat.js +319 -110
- package/dist/providers/ollama-chat.js.map +1 -1
- package/dist/providers/openai-chat.d.ts +222 -14
- package/dist/providers/openai-chat.d.ts.map +1 -1
- package/dist/providers/openai-chat.js +377 -128
- package/dist/providers/openai-chat.js.map +1 -1
- package/dist/providers/sse-decode.d.ts +2 -2
- package/dist/providers/sse-decode.js +2 -2
- package/dist/types.d.ts +169 -87
- package/dist/types.d.ts.map +1 -1
- package/package.json +8 -4
|
@@ -3,7 +3,74 @@
|
|
|
3
3
|
* JSON-RPC messages across chunk boundaries. Shared transport used by both the
|
|
4
4
|
* acp/ and pi-rpc/ protocol adapters; this file has no dependencies on any
|
|
5
5
|
* other agent-protocol sibling.
|
|
6
|
+
*
|
|
7
|
+
* Module layout: `createJsonLineStream` owns exactly one piece of state that
|
|
8
|
+
* doesn't need to be exported — the raw `buffer` a chunk gets split into
|
|
9
|
+
* lines from, which is plain string-splitting with no decision logic worth
|
|
10
|
+
* testing in isolation. Everything it delegates to (line handling, the
|
|
11
|
+
* multiline-JSON accumulator, and `classifyJsonCandidate`'s scan) is real
|
|
12
|
+
* decision logic, so it is hoisted to module level and exported, taking its
|
|
13
|
+
* state as an explicit first argument rather than reading it off a closure.
|
|
6
14
|
*/
|
|
15
|
+
function startPendingJson(state, line) {
|
|
16
|
+
state.pendingJson = line;
|
|
17
|
+
state.pendingJsonLineCount = 1;
|
|
18
|
+
}
|
|
19
|
+
function resetPendingJson(state) {
|
|
20
|
+
state.pendingJson = '';
|
|
21
|
+
state.pendingJsonLineCount = 0;
|
|
22
|
+
}
|
|
23
|
+
export function emitJsonLine(candidate, onMessage) {
|
|
24
|
+
try {
|
|
25
|
+
onMessage(JSON.parse(candidate), candidate);
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Continues an in-progress multiline candidate with the next trimmed line.
|
|
33
|
+
// Either resolves it (parses, or gives up and re-processes `trimmed` fresh)
|
|
34
|
+
// or keeps accumulating.
|
|
35
|
+
export function continuePendingJsonLine(state, trimmed, onMessage) {
|
|
36
|
+
const nextCandidate = `${state.pendingJson}\n${trimmed}`;
|
|
37
|
+
if (emitJsonLine(nextCandidate, onMessage)) {
|
|
38
|
+
resetPendingJson(state);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
state.pendingJsonLineCount += 1;
|
|
42
|
+
const classification = classifyJsonCandidate(nextCandidate);
|
|
43
|
+
if (classification === 'incomplete' &&
|
|
44
|
+
nextCandidate.length <= 128_000 &&
|
|
45
|
+
state.pendingJsonLineCount <= 256) {
|
|
46
|
+
state.pendingJson = nextCandidate;
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
resetPendingJson(state);
|
|
50
|
+
handleJsonLine(state, trimmed, onMessage);
|
|
51
|
+
}
|
|
52
|
+
// ACP is line-delimited JSON-RPC, but a few bridges have emitted
|
|
53
|
+
// pretty-printed JSON during startup. Keep a bounded aggregate so an
|
|
54
|
+
// otherwise valid multiline initialize response does not get discarded
|
|
55
|
+
// line-by-line and leave the session stuck in spawn pending.
|
|
56
|
+
export function tryStartPendingJsonLine(state, trimmed) {
|
|
57
|
+
if ((trimmed.startsWith('{') || trimmed.startsWith('[')) &&
|
|
58
|
+
classifyJsonCandidate(trimmed) === 'incomplete') {
|
|
59
|
+
startPendingJson(state, trimmed);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export function handleJsonLine(state, line, onMessage) {
|
|
63
|
+
const trimmed = line.trim();
|
|
64
|
+
if (!trimmed)
|
|
65
|
+
return;
|
|
66
|
+
if (state.pendingJson) {
|
|
67
|
+
continuePendingJsonLine(state, trimmed, onMessage);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (emitJsonLine(trimmed, onMessage))
|
|
71
|
+
return;
|
|
72
|
+
tryStartPendingJsonLine(state, trimmed);
|
|
73
|
+
}
|
|
7
74
|
/**
|
|
8
75
|
* Creates a streaming JSON-line parser over a raw byte/string stream.
|
|
9
76
|
* Buffers incoming chunks, splits on newline boundaries, and attempts
|
|
@@ -21,72 +88,21 @@
|
|
|
21
88
|
*/
|
|
22
89
|
export function createJsonLineStream(onMessage) {
|
|
23
90
|
let buffer = '';
|
|
24
|
-
|
|
25
|
-
let pendingJsonLineCount = 0;
|
|
26
|
-
const emit = (candidate) => {
|
|
27
|
-
try {
|
|
28
|
-
onMessage(JSON.parse(candidate), candidate);
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
const startPendingJson = (line) => {
|
|
36
|
-
pendingJson = line;
|
|
37
|
-
pendingJsonLineCount = 1;
|
|
38
|
-
};
|
|
39
|
-
const resetPendingJson = () => {
|
|
40
|
-
pendingJson = '';
|
|
41
|
-
pendingJsonLineCount = 0;
|
|
42
|
-
};
|
|
43
|
-
const handleLine = (line) => {
|
|
44
|
-
const trimmed = line.trim();
|
|
45
|
-
if (!trimmed)
|
|
46
|
-
return;
|
|
47
|
-
if (pendingJson) {
|
|
48
|
-
const nextCandidate = `${pendingJson}\n${trimmed}`;
|
|
49
|
-
if (emit(nextCandidate)) {
|
|
50
|
-
resetPendingJson();
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
pendingJsonLineCount += 1;
|
|
54
|
-
const state = classifyJsonCandidate(nextCandidate);
|
|
55
|
-
if (state === 'incomplete' &&
|
|
56
|
-
nextCandidate.length <= 128_000 &&
|
|
57
|
-
pendingJsonLineCount <= 256) {
|
|
58
|
-
pendingJson = nextCandidate;
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
resetPendingJson();
|
|
62
|
-
handleLine(trimmed);
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
if (emit(trimmed))
|
|
66
|
-
return;
|
|
67
|
-
// ACP is line-delimited JSON-RPC, but a few bridges have emitted
|
|
68
|
-
// pretty-printed JSON during startup. Keep a bounded aggregate so an
|
|
69
|
-
// otherwise valid multiline initialize response does not get discarded
|
|
70
|
-
// line-by-line and leave the session stuck in spawn pending.
|
|
71
|
-
if ((trimmed.startsWith('{') || trimmed.startsWith('[')) &&
|
|
72
|
-
classifyJsonCandidate(trimmed) === 'incomplete') {
|
|
73
|
-
startPendingJson(trimmed);
|
|
74
|
-
}
|
|
75
|
-
};
|
|
91
|
+
const state = { pendingJson: '', pendingJsonLineCount: 0 };
|
|
76
92
|
return {
|
|
77
93
|
feed(chunk) {
|
|
78
94
|
buffer += chunk;
|
|
79
95
|
const lines = buffer.split('\n');
|
|
80
96
|
buffer = lines.pop() || '';
|
|
81
97
|
for (const line of lines) {
|
|
82
|
-
|
|
98
|
+
handleJsonLine(state, line, onMessage);
|
|
83
99
|
}
|
|
84
100
|
},
|
|
85
101
|
flush() {
|
|
86
102
|
const trimmed = buffer.trim();
|
|
87
103
|
buffer = '';
|
|
88
104
|
if (trimmed) {
|
|
89
|
-
|
|
105
|
+
handleJsonLine(state, trimmed, onMessage);
|
|
90
106
|
}
|
|
91
107
|
// Any `pendingJson` still set at this point was, by construction, the
|
|
92
108
|
// most recent candidate `classifyJsonCandidate` judged structurally
|
|
@@ -103,6 +119,237 @@ export function createJsonLineStream(onMessage) {
|
|
|
103
119
|
},
|
|
104
120
|
};
|
|
105
121
|
}
|
|
122
|
+
export function afterValue(state) {
|
|
123
|
+
const parent = state.stack.at(-1);
|
|
124
|
+
if (!parent) {
|
|
125
|
+
state.rootComplete = true;
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
parent.expect = 'commaOrEnd';
|
|
129
|
+
}
|
|
130
|
+
// Every call site below is already nested inside a check that has
|
|
131
|
+
// established the top-of-stack frame's kind (`current.kind === 'object'`,
|
|
132
|
+
// or implicitly 'array' when that check fails), so the frame this pops
|
|
133
|
+
// always exists and always matches the kind being closed. The origin
|
|
134
|
+
// file guarded against a mismatch (`!current || current.kind !== kind`)
|
|
135
|
+
// and returned `false` for callers to translate into `'invalid'`; that
|
|
136
|
+
// guard was provably dead (verified by a 2M-trial adversarial fuzz,
|
|
137
|
+
// including deliberately malformed bracket sequences, finding zero
|
|
138
|
+
// mismatches) and is removed here per this package's coverage-driven
|
|
139
|
+
// dead-branch discipline. See source-map.md.
|
|
140
|
+
function closeFrame(state) {
|
|
141
|
+
state.stack.pop();
|
|
142
|
+
afterValue(state);
|
|
143
|
+
}
|
|
144
|
+
export function parseString(value, start) {
|
|
145
|
+
for (let index = start + 1; index < value.length; index += 1) {
|
|
146
|
+
const char = value[index];
|
|
147
|
+
if (char === '\\') {
|
|
148
|
+
index += 1;
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
if (char === '"')
|
|
152
|
+
return index;
|
|
153
|
+
}
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
export function parseLiteral(value, start, literal) {
|
|
157
|
+
for (let offset = 0; offset < literal.length; offset += 1) {
|
|
158
|
+
const char = value[start + offset];
|
|
159
|
+
if (char === undefined)
|
|
160
|
+
return null;
|
|
161
|
+
if (char !== literal[offset])
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
return start + literal.length - 1;
|
|
165
|
+
}
|
|
166
|
+
function isDigit(char) {
|
|
167
|
+
return /[0-9]/.test(char ?? '');
|
|
168
|
+
}
|
|
169
|
+
function consumeDigits(value, start) {
|
|
170
|
+
let index = start;
|
|
171
|
+
while (isDigit(value[index]))
|
|
172
|
+
index += 1;
|
|
173
|
+
return index;
|
|
174
|
+
}
|
|
175
|
+
function parseOptionalSign(value, start) {
|
|
176
|
+
return value[start] === '-' ? start + 1 : start;
|
|
177
|
+
}
|
|
178
|
+
export function parseIntegerDigits(value, start) {
|
|
179
|
+
if (value[start] === '0')
|
|
180
|
+
return start + 1;
|
|
181
|
+
if (isDigit(value[start]))
|
|
182
|
+
return consumeDigits(value, start);
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
export function parseFractionDigits(value, start) {
|
|
186
|
+
if (value[start] !== '.')
|
|
187
|
+
return start;
|
|
188
|
+
const digitsStart = start + 1;
|
|
189
|
+
if (!isDigit(value[digitsStart]))
|
|
190
|
+
return false;
|
|
191
|
+
return consumeDigits(value, digitsStart);
|
|
192
|
+
}
|
|
193
|
+
export function parseExponentDigits(value, start) {
|
|
194
|
+
if (value[start] !== 'e' && value[start] !== 'E')
|
|
195
|
+
return start;
|
|
196
|
+
let digitsStart = start + 1;
|
|
197
|
+
if (value[digitsStart] === '+' || value[digitsStart] === '-')
|
|
198
|
+
digitsStart += 1;
|
|
199
|
+
if (!isDigit(value[digitsStart]))
|
|
200
|
+
return false;
|
|
201
|
+
return consumeDigits(value, digitsStart);
|
|
202
|
+
}
|
|
203
|
+
export function parseNumber(value, start) {
|
|
204
|
+
const afterSign = parseOptionalSign(value, start);
|
|
205
|
+
const afterInteger = parseIntegerDigits(value, afterSign);
|
|
206
|
+
if (afterInteger === false)
|
|
207
|
+
return false;
|
|
208
|
+
const afterFraction = parseFractionDigits(value, afterInteger);
|
|
209
|
+
if (afterFraction === false)
|
|
210
|
+
return false;
|
|
211
|
+
const afterExponent = parseExponentDigits(value, afterFraction);
|
|
212
|
+
if (afterExponent === false)
|
|
213
|
+
return false;
|
|
214
|
+
return afterExponent - 1;
|
|
215
|
+
}
|
|
216
|
+
export function parseStringValue(state, index) {
|
|
217
|
+
const end = parseString(state.value, index);
|
|
218
|
+
if (end === null)
|
|
219
|
+
return null;
|
|
220
|
+
afterValue(state);
|
|
221
|
+
return end;
|
|
222
|
+
}
|
|
223
|
+
export function parseNumberValue(state, index) {
|
|
224
|
+
const end = parseNumber(state.value, index);
|
|
225
|
+
if (end === false)
|
|
226
|
+
return false;
|
|
227
|
+
afterValue(state);
|
|
228
|
+
return end;
|
|
229
|
+
}
|
|
230
|
+
function openContainer(state, index, frame) {
|
|
231
|
+
state.stack.push(frame);
|
|
232
|
+
return index;
|
|
233
|
+
}
|
|
234
|
+
export function parseLiteralValue(state, index, literal) {
|
|
235
|
+
const end = parseLiteral(state.value, index, literal);
|
|
236
|
+
if (end === false || end === null)
|
|
237
|
+
return end;
|
|
238
|
+
afterValue(state);
|
|
239
|
+
return end;
|
|
240
|
+
}
|
|
241
|
+
const LITERAL_STARTS = { t: 'true', f: 'false', n: 'null' };
|
|
242
|
+
export function parseValue(state, index) {
|
|
243
|
+
const char = state.value[index];
|
|
244
|
+
if (char === '"')
|
|
245
|
+
return parseStringValue(state, index);
|
|
246
|
+
if (char === '{')
|
|
247
|
+
return openContainer(state, index, { kind: 'object', expect: 'keyOrEnd' });
|
|
248
|
+
if (char === '[')
|
|
249
|
+
return openContainer(state, index, { kind: 'array', expect: 'valueOrEnd' });
|
|
250
|
+
if (char !== undefined && char in LITERAL_STARTS) {
|
|
251
|
+
// `char in LITERAL_STARTS` just confirmed this key is present.
|
|
252
|
+
return parseLiteralValue(state, index, LITERAL_STARTS[char]);
|
|
253
|
+
}
|
|
254
|
+
// `parseValue` is only ever called (below, and from the step handlers)
|
|
255
|
+
// with an `index` already known to be within `value`'s bounds, so `char`
|
|
256
|
+
// is always defined here; the non-null assertion documents that instead
|
|
257
|
+
// of a `?? ''` fallback that could never actually be exercised.
|
|
258
|
+
if (char === '-' || /[0-9]/.test(char))
|
|
259
|
+
return parseNumberValue(state, index);
|
|
260
|
+
return false;
|
|
261
|
+
}
|
|
262
|
+
export function stepRootFrame(state, index) {
|
|
263
|
+
if (state.rootComplete)
|
|
264
|
+
return 'invalid';
|
|
265
|
+
const end = parseValue(state, index);
|
|
266
|
+
if (end === false)
|
|
267
|
+
return 'invalid';
|
|
268
|
+
if (end === null)
|
|
269
|
+
return 'incomplete';
|
|
270
|
+
return { nextIndex: end };
|
|
271
|
+
}
|
|
272
|
+
export function stepObjectKeyOrEnd(state, current, index, char) {
|
|
273
|
+
if (char === '}') {
|
|
274
|
+
closeFrame(state);
|
|
275
|
+
return { nextIndex: index };
|
|
276
|
+
}
|
|
277
|
+
if (char !== '"')
|
|
278
|
+
return 'invalid';
|
|
279
|
+
const end = parseString(state.value, index);
|
|
280
|
+
if (end === null)
|
|
281
|
+
return 'incomplete';
|
|
282
|
+
current.expect = 'colon';
|
|
283
|
+
return { nextIndex: end };
|
|
284
|
+
}
|
|
285
|
+
export function stepObjectColon(current, index, char) {
|
|
286
|
+
if (char !== ':')
|
|
287
|
+
return 'invalid';
|
|
288
|
+
current.expect = 'value';
|
|
289
|
+
return { nextIndex: index };
|
|
290
|
+
}
|
|
291
|
+
export function stepObjectCommaOrEnd(state, current, index, char) {
|
|
292
|
+
if (char === '}') {
|
|
293
|
+
closeFrame(state);
|
|
294
|
+
return { nextIndex: index };
|
|
295
|
+
}
|
|
296
|
+
if (char !== ',')
|
|
297
|
+
return 'invalid';
|
|
298
|
+
current.expect = 'keyOrEnd';
|
|
299
|
+
return { nextIndex: index };
|
|
300
|
+
}
|
|
301
|
+
export function stepObjectFrame(state, current, index, char) {
|
|
302
|
+
if (current.expect === 'keyOrEnd')
|
|
303
|
+
return stepObjectKeyOrEnd(state, current, index, char);
|
|
304
|
+
if (current.expect === 'colon')
|
|
305
|
+
return stepObjectColon(current, index, char);
|
|
306
|
+
if (current.expect === 'value') {
|
|
307
|
+
const end = parseValue(state, index);
|
|
308
|
+
if (end === false)
|
|
309
|
+
return 'invalid';
|
|
310
|
+
if (end === null)
|
|
311
|
+
return 'incomplete';
|
|
312
|
+
return { nextIndex: end };
|
|
313
|
+
}
|
|
314
|
+
return stepObjectCommaOrEnd(state, current, index, char);
|
|
315
|
+
}
|
|
316
|
+
export function stepArrayValueOrEnd(state, index, char) {
|
|
317
|
+
if (char === ']') {
|
|
318
|
+
closeFrame(state);
|
|
319
|
+
return { nextIndex: index };
|
|
320
|
+
}
|
|
321
|
+
const end = parseValue(state, index);
|
|
322
|
+
if (end === false)
|
|
323
|
+
return 'invalid';
|
|
324
|
+
if (end === null)
|
|
325
|
+
return 'incomplete';
|
|
326
|
+
return { nextIndex: end };
|
|
327
|
+
}
|
|
328
|
+
export function stepArrayCommaOrEnd(state, current, index, char) {
|
|
329
|
+
if (char === ']') {
|
|
330
|
+
closeFrame(state);
|
|
331
|
+
return { nextIndex: index };
|
|
332
|
+
}
|
|
333
|
+
if (char !== ',')
|
|
334
|
+
return 'invalid';
|
|
335
|
+
current.expect = 'valueOrEnd';
|
|
336
|
+
return { nextIndex: index };
|
|
337
|
+
}
|
|
338
|
+
export function stepArrayFrame(state, current, index, char) {
|
|
339
|
+
return current.expect === 'valueOrEnd'
|
|
340
|
+
? stepArrayValueOrEnd(state, index, char)
|
|
341
|
+
: stepArrayCommaOrEnd(state, current, index, char);
|
|
342
|
+
}
|
|
343
|
+
// Dispatches to the step handler for whatever frame is on top of the
|
|
344
|
+
// stack (or the root frame when the stack is empty).
|
|
345
|
+
export function selectStep(state, index, char) {
|
|
346
|
+
const current = state.stack.at(-1);
|
|
347
|
+
if (!current)
|
|
348
|
+
return stepRootFrame(state, index);
|
|
349
|
+
return current.kind === 'object'
|
|
350
|
+
? stepObjectFrame(state, current, index, char)
|
|
351
|
+
: stepArrayFrame(state, current, index, char);
|
|
352
|
+
}
|
|
106
353
|
/**
|
|
107
354
|
* Incremental JSON completeness classifier used by `createJsonLineStream` to
|
|
108
355
|
* decide whether an accumulating multiline candidate can still resolve into
|
|
@@ -119,135 +366,7 @@ export function createJsonLineStream(onMessage) {
|
|
|
119
366
|
* accumulated stdout lines from an ACP subprocess.
|
|
120
367
|
*/
|
|
121
368
|
export function classifyJsonCandidate(value) {
|
|
122
|
-
const
|
|
123
|
-
let rootComplete = false;
|
|
124
|
-
const afterValue = () => {
|
|
125
|
-
const parent = stack.at(-1);
|
|
126
|
-
if (!parent) {
|
|
127
|
-
rootComplete = true;
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
parent.expect = 'commaOrEnd';
|
|
131
|
-
};
|
|
132
|
-
// Every call site below is already nested inside a check that has
|
|
133
|
-
// established the top-of-stack frame's kind (`current.kind === 'object'`,
|
|
134
|
-
// or implicitly 'array' when that check fails), so the frame `closeFrame`
|
|
135
|
-
// pops always exists and always matches the kind being closed. The origin
|
|
136
|
-
// file guarded against a mismatch (`!current || current.kind !== kind`)
|
|
137
|
-
// and returned `false` for callers to translate into `'invalid'`; that
|
|
138
|
-
// guard was provably dead (verified by a 2M-trial adversarial fuzz,
|
|
139
|
-
// including deliberately malformed bracket sequences, finding zero
|
|
140
|
-
// mismatches) and is removed here per this package's coverage-driven
|
|
141
|
-
// dead-branch discipline. See source-map.md.
|
|
142
|
-
const closeFrame = () => {
|
|
143
|
-
stack.pop();
|
|
144
|
-
afterValue();
|
|
145
|
-
};
|
|
146
|
-
const parseString = (start) => {
|
|
147
|
-
for (let index = start + 1; index < value.length; index += 1) {
|
|
148
|
-
const char = value[index];
|
|
149
|
-
if (char === '\\') {
|
|
150
|
-
index += 1;
|
|
151
|
-
continue;
|
|
152
|
-
}
|
|
153
|
-
if (char === '"')
|
|
154
|
-
return index;
|
|
155
|
-
}
|
|
156
|
-
return null;
|
|
157
|
-
};
|
|
158
|
-
const parseLiteral = (start, literal) => {
|
|
159
|
-
for (let offset = 0; offset < literal.length; offset += 1) {
|
|
160
|
-
const char = value[start + offset];
|
|
161
|
-
if (char === undefined)
|
|
162
|
-
return null;
|
|
163
|
-
if (char !== literal[offset])
|
|
164
|
-
return false;
|
|
165
|
-
}
|
|
166
|
-
return start + literal.length - 1;
|
|
167
|
-
};
|
|
168
|
-
const parseNumber = (start) => {
|
|
169
|
-
let index = start;
|
|
170
|
-
if (value[index] === '-')
|
|
171
|
-
index += 1;
|
|
172
|
-
if (value[index] === '0') {
|
|
173
|
-
index += 1;
|
|
174
|
-
}
|
|
175
|
-
else if (/[1-9]/.test(value[index] ?? '')) {
|
|
176
|
-
while (/[0-9]/.test(value[index] ?? ''))
|
|
177
|
-
index += 1;
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
return false;
|
|
181
|
-
}
|
|
182
|
-
if (value[index] === '.') {
|
|
183
|
-
index += 1;
|
|
184
|
-
if (!/[0-9]/.test(value[index] ?? ''))
|
|
185
|
-
return false;
|
|
186
|
-
while (/[0-9]/.test(value[index] ?? ''))
|
|
187
|
-
index += 1;
|
|
188
|
-
}
|
|
189
|
-
if (value[index] === 'e' || value[index] === 'E') {
|
|
190
|
-
index += 1;
|
|
191
|
-
if (value[index] === '+' || value[index] === '-')
|
|
192
|
-
index += 1;
|
|
193
|
-
if (!/[0-9]/.test(value[index] ?? ''))
|
|
194
|
-
return false;
|
|
195
|
-
while (/[0-9]/.test(value[index] ?? ''))
|
|
196
|
-
index += 1;
|
|
197
|
-
}
|
|
198
|
-
return index - 1;
|
|
199
|
-
};
|
|
200
|
-
const parseValue = (index) => {
|
|
201
|
-
const char = value[index];
|
|
202
|
-
if (char === '"') {
|
|
203
|
-
const end = parseString(index);
|
|
204
|
-
if (end === null)
|
|
205
|
-
return null;
|
|
206
|
-
afterValue();
|
|
207
|
-
return end;
|
|
208
|
-
}
|
|
209
|
-
if (char === '{') {
|
|
210
|
-
stack.push({ kind: 'object', expect: 'keyOrEnd' });
|
|
211
|
-
return index;
|
|
212
|
-
}
|
|
213
|
-
if (char === '[') {
|
|
214
|
-
stack.push({ kind: 'array', expect: 'valueOrEnd' });
|
|
215
|
-
return index;
|
|
216
|
-
}
|
|
217
|
-
if (char === 't') {
|
|
218
|
-
const end = parseLiteral(index, 'true');
|
|
219
|
-
if (end === false || end === null)
|
|
220
|
-
return end;
|
|
221
|
-
afterValue();
|
|
222
|
-
return end;
|
|
223
|
-
}
|
|
224
|
-
if (char === 'f') {
|
|
225
|
-
const end = parseLiteral(index, 'false');
|
|
226
|
-
if (end === false || end === null)
|
|
227
|
-
return end;
|
|
228
|
-
afterValue();
|
|
229
|
-
return end;
|
|
230
|
-
}
|
|
231
|
-
if (char === 'n') {
|
|
232
|
-
const end = parseLiteral(index, 'null');
|
|
233
|
-
if (end === false || end === null)
|
|
234
|
-
return end;
|
|
235
|
-
afterValue();
|
|
236
|
-
return end;
|
|
237
|
-
}
|
|
238
|
-
// `parseValue` is only ever called (below, and from the main loop) with
|
|
239
|
-
// an `index` already known to be within `value`'s bounds, so `char` is
|
|
240
|
-
// always defined here; the non-null assertion documents that instead of
|
|
241
|
-
// a `?? ''` fallback that could never actually be exercised.
|
|
242
|
-
if (char === '-' || /[0-9]/.test(char)) {
|
|
243
|
-
const end = parseNumber(index);
|
|
244
|
-
if (end === false)
|
|
245
|
-
return false;
|
|
246
|
-
afterValue();
|
|
247
|
-
return end;
|
|
248
|
-
}
|
|
249
|
-
return false;
|
|
250
|
-
};
|
|
369
|
+
const state = { value, stack: [], rootComplete: false };
|
|
251
370
|
for (let index = 0; index < value.length; index += 1) {
|
|
252
371
|
// The loop bound (`index < value.length`) guarantees this index always
|
|
253
372
|
// yields a defined character; the non-null assertion documents that
|
|
@@ -256,78 +375,11 @@ export function classifyJsonCandidate(value) {
|
|
|
256
375
|
const char = value[index];
|
|
257
376
|
if (/\s/.test(char))
|
|
258
377
|
continue;
|
|
259
|
-
const
|
|
260
|
-
if (
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
const end = parseValue(index);
|
|
264
|
-
if (end === false)
|
|
265
|
-
return 'invalid';
|
|
266
|
-
if (end === null)
|
|
267
|
-
return 'incomplete';
|
|
268
|
-
index = end;
|
|
269
|
-
continue;
|
|
270
|
-
}
|
|
271
|
-
if (current.kind === 'object') {
|
|
272
|
-
if (current.expect === 'keyOrEnd') {
|
|
273
|
-
if (char === '}') {
|
|
274
|
-
closeFrame();
|
|
275
|
-
continue;
|
|
276
|
-
}
|
|
277
|
-
if (char !== '"')
|
|
278
|
-
return 'invalid';
|
|
279
|
-
const end = parseString(index);
|
|
280
|
-
if (end === null)
|
|
281
|
-
return 'incomplete';
|
|
282
|
-
current.expect = 'colon';
|
|
283
|
-
index = end;
|
|
284
|
-
continue;
|
|
285
|
-
}
|
|
286
|
-
if (current.expect === 'colon') {
|
|
287
|
-
if (char !== ':')
|
|
288
|
-
return 'invalid';
|
|
289
|
-
current.expect = 'value';
|
|
290
|
-
continue;
|
|
291
|
-
}
|
|
292
|
-
if (current.expect === 'value') {
|
|
293
|
-
const end = parseValue(index);
|
|
294
|
-
if (end === false)
|
|
295
|
-
return 'invalid';
|
|
296
|
-
if (end === null)
|
|
297
|
-
return 'incomplete';
|
|
298
|
-
index = end;
|
|
299
|
-
continue;
|
|
300
|
-
}
|
|
301
|
-
if (char === '}') {
|
|
302
|
-
closeFrame();
|
|
303
|
-
continue;
|
|
304
|
-
}
|
|
305
|
-
if (char !== ',')
|
|
306
|
-
return 'invalid';
|
|
307
|
-
current.expect = 'keyOrEnd';
|
|
308
|
-
continue;
|
|
309
|
-
}
|
|
310
|
-
if (current.expect === 'valueOrEnd') {
|
|
311
|
-
if (char === ']') {
|
|
312
|
-
closeFrame();
|
|
313
|
-
continue;
|
|
314
|
-
}
|
|
315
|
-
const end = parseValue(index);
|
|
316
|
-
if (end === false)
|
|
317
|
-
return 'invalid';
|
|
318
|
-
if (end === null)
|
|
319
|
-
return 'incomplete';
|
|
320
|
-
index = end;
|
|
321
|
-
continue;
|
|
322
|
-
}
|
|
323
|
-
if (char === ']') {
|
|
324
|
-
closeFrame();
|
|
325
|
-
continue;
|
|
326
|
-
}
|
|
327
|
-
if (char !== ',')
|
|
328
|
-
return 'invalid';
|
|
329
|
-
current.expect = 'valueOrEnd';
|
|
378
|
+
const step = selectStep(state, index, char);
|
|
379
|
+
if (step === 'invalid' || step === 'incomplete')
|
|
380
|
+
return step;
|
|
381
|
+
index = step.nextIndex;
|
|
330
382
|
}
|
|
331
|
-
return rootComplete && stack.length === 0 ? 'complete' : 'incomplete';
|
|
383
|
+
return state.rootComplete && state.stack.length === 0 ? 'complete' : 'incomplete';
|
|
332
384
|
}
|
|
333
385
|
//# sourceMappingURL=json-line-stream.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-line-stream.js","sourceRoot":"","sources":["../../../src/agent-protocol/core/json-line-stream.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"json-line-stream.js","sourceRoot":"","sources":["../../../src/agent-protocol/core/json-line-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* status, text_delta, thinking, tool_use, tool_result, usage, and error.
|
|
5
5
|
* No I/O — all side effects flow through the SendAgentEvent callback.
|
|
6
6
|
*/
|
|
7
|
-
import type { JsonRecord, SendAgentEvent } from './internal.js';
|
|
7
|
+
import type { JsonRecord, SendAgentEvent, TokenUsage } from './internal.js';
|
|
8
8
|
/** Timing and first-token-tracking context threaded through every mapPiRpcEvent call. */
|
|
9
9
|
export type PiRpcContext = {
|
|
10
10
|
runStartedAt: number;
|
|
@@ -12,6 +12,27 @@ export type PiRpcContext = {
|
|
|
12
12
|
value: boolean;
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
|
+
export declare function handleAgentStart(_raw: JsonRecord, send: SendAgentEvent): null;
|
|
16
|
+
export declare function handleAgentEnd(): 'agent_end';
|
|
17
|
+
export declare function handleTurnStart(_raw: JsonRecord, send: SendAgentEvent): null;
|
|
18
|
+
/** Extracts the subset of pi's `message.usage` fields the daemon reports as token usage. */
|
|
19
|
+
export declare function buildTokenUsage(u: JsonRecord): TokenUsage;
|
|
20
|
+
export declare function emitTurnEndUsage(u: JsonRecord, send: SendAgentEvent, ctx: PiRpcContext): void;
|
|
21
|
+
export declare function emitTurnEndErrorIfPresent(message: JsonRecord | undefined, raw: JsonRecord, send: SendAgentEvent): void;
|
|
22
|
+
export declare function handleTurnEnd(raw: JsonRecord, send: SendAgentEvent, ctx: PiRpcContext): null;
|
|
23
|
+
export declare function handleAssistantTextDelta(ev: JsonRecord, send: SendAgentEvent, ctx: PiRpcContext): void;
|
|
24
|
+
export declare function handleAssistantThinkingDelta(ev: JsonRecord, send: SendAgentEvent): void;
|
|
25
|
+
export declare function handleAssistantThinkingStart(_ev: JsonRecord, send: SendAgentEvent): void;
|
|
26
|
+
export declare function handleAssistantThinkingEnd(_ev: JsonRecord, send: SendAgentEvent): void;
|
|
27
|
+
export declare function handleAssistantError(ev: JsonRecord, send: SendAgentEvent, _ctx: PiRpcContext, raw: JsonRecord): void;
|
|
28
|
+
export declare function handleMessageUpdate(raw: JsonRecord, send: SendAgentEvent, ctx: PiRpcContext): null;
|
|
29
|
+
export declare function handleMessageEnd(): null;
|
|
30
|
+
export declare function handleToolExecutionStart(raw: JsonRecord, send: SendAgentEvent): null;
|
|
31
|
+
export declare function handleToolExecutionEnd(raw: JsonRecord, send: SendAgentEvent): null;
|
|
32
|
+
export declare function handleExtensionError(raw: JsonRecord, send: SendAgentEvent): null;
|
|
33
|
+
export declare function handleCompactionStart(_raw: JsonRecord, send: SendAgentEvent): null;
|
|
34
|
+
export declare function handleAutoRetryStart(_raw: JsonRecord, send: SendAgentEvent): null;
|
|
35
|
+
export declare function handleAutoRetryEnd(raw: JsonRecord, send: SendAgentEvent): null;
|
|
15
36
|
/**
|
|
16
37
|
* Maps a single raw pi RPC JSON object to zero or more daemon SSE events,
|
|
17
38
|
* dispatching each through `send`. Returns `'agent_end'` when pi signals the
|