@botiverse/oar 0.0.7 → 0.0.9
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
|
@@ -2,11 +2,10 @@ import { asRecord } from "../json.js";
|
|
|
2
2
|
import { sealSession } from "../seal-session.js";
|
|
3
3
|
import { createSessionKernel } from "../session-kernel.js";
|
|
4
4
|
import { AcpError, acpProcessExitedError } from "./errors.js";
|
|
5
|
-
import { closeAcpSession, hasAcpCapability, openAcpSession, promptAcp, } from "./profile.js";
|
|
5
|
+
import { closeAcpSession, createAcpModelReadback, createUsageUpdateGate, hasAcpCapability, openAcpSession, promptAcp, } from "./profile.js";
|
|
6
6
|
import { methods, startAcpProcess } from "./process.js";
|
|
7
7
|
import { acpFailureOutcome, acpRuntimeExitedOutcome, createAcpProjectionState, defaultAcpPromptOutcome, finishAcpTools, projectAcpUpdate, } from "./projection.js";
|
|
8
8
|
import { createAcpClientApp, createAcpTerminalHost } from "./terminal.js";
|
|
9
|
-
function ignoreUpdate(_notification) { }
|
|
10
9
|
export function acpSession(profile) {
|
|
11
10
|
return async (installation, options) => {
|
|
12
11
|
if (installation.via !== "executable") {
|
|
@@ -18,19 +17,23 @@ export function acpSession(profile) {
|
|
|
18
17
|
const terminalHost = createAcpTerminalHost(options.cwd, environment, {
|
|
19
18
|
shellCommand: profile.terminalShellCommand === true,
|
|
20
19
|
});
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
// Watched from the first frame: kimi pushes its model config_option_update
|
|
21
|
+
// before session/set_model is answered, i.e. before the session is open.
|
|
22
|
+
const model = createAcpModelReadback();
|
|
23
|
+
let receiveUpdate = (notification) => {
|
|
24
|
+
model.observe(asRecord(notification.update));
|
|
25
|
+
};
|
|
26
|
+
const client = createAcpClientApp(terminalHost, (notification) => {
|
|
23
27
|
receiveUpdate(notification);
|
|
24
|
-
}), {
|
|
25
|
-
cwd: options.cwd,
|
|
26
|
-
env: environment,
|
|
27
28
|
});
|
|
29
|
+
const runtime = startAcpProcess(installation.command, args, client, { cwd: options.cwd, env: environment });
|
|
28
30
|
const opened = await openAcpSession(runtime, profile, options).catch(async (error) => {
|
|
29
31
|
runtime.kill();
|
|
30
32
|
await runtime.exited;
|
|
31
33
|
await terminalHost.dispose();
|
|
32
34
|
throw error;
|
|
33
35
|
});
|
|
36
|
+
model.opened(opened);
|
|
34
37
|
const capabilities = asRecord(opened.initialized.agentCapabilities);
|
|
35
38
|
const sessionCapabilities = asRecord(capabilities?.sessionCapabilities);
|
|
36
39
|
const supportsClose = hasAcpCapability(sessionCapabilities?.close);
|
|
@@ -38,6 +41,7 @@ export function acpSession(profile) {
|
|
|
38
41
|
const held = [];
|
|
39
42
|
let active = null;
|
|
40
43
|
let contextUsage = null;
|
|
44
|
+
const usageGate = createUsageUpdateGate();
|
|
41
45
|
let nextRequest = 0;
|
|
42
46
|
let disposed = false;
|
|
43
47
|
let dead = false;
|
|
@@ -72,9 +76,11 @@ export function acpSession(profile) {
|
|
|
72
76
|
if (update === null) {
|
|
73
77
|
return;
|
|
74
78
|
}
|
|
79
|
+
model.observe(update);
|
|
75
80
|
const state = active;
|
|
76
81
|
const projected = projectAcpUpdate(state?.projection ?? createAcpProjectionState(), update);
|
|
77
82
|
contextUsage = projected.contextUsage ?? contextUsage;
|
|
83
|
+
usageGate.observe(projected.contextUsage);
|
|
78
84
|
if (state !== null && !state.kernelTurn.settled()) {
|
|
79
85
|
for (const body of projected.bodies) {
|
|
80
86
|
state.kernelTurn.emit(body);
|
|
@@ -98,7 +104,9 @@ export function acpSession(profile) {
|
|
|
98
104
|
state.pending.add(requestNumber);
|
|
99
105
|
void (async () => {
|
|
100
106
|
try {
|
|
107
|
+
usageGate.arm();
|
|
101
108
|
const result = await promptAcp(runtime, opened.sessionId, input, extraParams);
|
|
109
|
+
await usageGate.settleAfterPrompt(profile, state.abortRequested);
|
|
102
110
|
contextUsage = profile.promptContextUsage?.(result) ?? contextUsage;
|
|
103
111
|
finishRequest(state, requestNumber, profile.promptOutcome?.(result) ?? defaultAcpPromptOutcome(result));
|
|
104
112
|
}
|
|
@@ -215,6 +223,7 @@ export function acpSession(profile) {
|
|
|
215
223
|
},
|
|
216
224
|
subscribe: (observer) => kernel.subscribe(observer),
|
|
217
225
|
contextUsage: () => contextUsage,
|
|
226
|
+
model: model.current,
|
|
218
227
|
queue: {
|
|
219
228
|
durable: false,
|
|
220
229
|
add: async (input) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/shared/acp/session.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAmB,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,SAAS,GAEV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,eAAe,EAA4B,MAAM,cAAc,CAAC;AAClF,OAAO,EACL,iBAAiB,EAAE,uBAAuB,EAAE,wBAAwB,EACpE,uBAAuB,EAAE,cAAc,EAAE,gBAAgB,GAE1D,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAa1E,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/shared/acp/session.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAmB,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,SAAS,GAEV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,eAAe,EAA4B,MAAM,cAAc,CAAC;AAClF,OAAO,EACL,iBAAiB,EAAE,uBAAuB,EAAE,wBAAwB,EACpE,uBAAuB,EAAE,cAAc,EAAE,gBAAgB,GAE1D,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAa1E,MAAM,UAAU,UAAU,CAAC,OAA0B;IACnD,OAAO,KAAK,EAAE,YAAmC,EAAE,OAAuB,EAAoB,EAAE;QAC9F,IAAI,YAAY,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACvF,MAAM,WAAW,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACvD,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE;YACnE,YAAY,EAAE,OAAO,CAAC,oBAAoB,KAAK,IAAI;SACpD,CAAC,CAAC;QACH,2EAA2E;QAC3E,yEAAyE;QACzE,MAAM,KAAK,GAAG,sBAAsB,EAAE,CAAC;QACvC,IAAI,aAAa,GAAG,CAAC,YAAiC,EAAQ,EAAE;YAC9D,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,EAAE;YAC/D,aAAa,CAAC,YAAY,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,eAAe,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;QAC5G,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAc,EAAE,EAAE;YAC5F,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,OAAO,CAAC,MAAM,CAAC;YACrB,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;YAC7B,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrB,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACpE,MAAM,mBAAmB,GAAG,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAI,MAAM,GAAsB,IAAI,CAAC;QACrC,IAAI,YAAY,GAAwB,IAAI,CAAC;QAC7C,MAAM,SAAS,GAAG,qBAAqB,EAAE,CAAC;QAC1C,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,MAAM,MAAM,GAAG,CAAC,KAAiB,EAAE,OAAoB,EAAQ,EAAE;YAC/D,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC/B,OAAO;YACT,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;YACD,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACrB,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;YACD,cAAc,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,GAAS,EAAE;YAC1B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC;oBACrB,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,kDAAkD;oBAC1D,OAAO,EAAE,gBAAgB;iBAC1B,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QACF,aAAa,GAAG,CAAC,YAAY,EAAQ,EAAE;YACrC,IAAI,YAAY,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;gBAChD,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC;YACrB,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,EAAE,UAAU,IAAI,wBAAwB,EAAE,EAAE,MAAM,CAAC,CAAC;YAC5F,YAAY,GAAG,SAAS,CAAC,YAAY,IAAI,YAAY,CAAC;YACtD,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAC1C,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBAClD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;oBACpC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,MAAM,aAAa,GAAG,CACpB,KAAiB,EACjB,aAAqB,EACrB,OAAoB,EACd,EAAE;YACR,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC/B,OAAO;YACT,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACpC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,CAAC;YACpE,CAAC;QACH,CAAC,CAAC;QACF,MAAM,iBAAiB,GAAG,CACxB,KAAiB,EACjB,KAAa,EACb,cAA0B,EAAE,EACtB,EAAE;YACR,WAAW,IAAI,CAAC,CAAC;YACjB,MAAM,aAAa,GAAG,WAAW,CAAC;YAClC,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC;YACpC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACjC,KAAK,CAAC,KAAK,IAAmB,EAAE;gBAC9B,IAAI,CAAC;oBACH,SAAS,CAAC,GAAG,EAAE,CAAC;oBAChB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;oBAC9E,MAAM,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;oBACjE,YAAY,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC;oBACpE,aAAa,CACX,KAAK,EACL,aAAa,EACb,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,IAAI,uBAAuB,CAAC,MAAM,CAAC,CACnE,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc;2BAC/B,CAAC,CAAC,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC;wBAClE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAkB,EAAE;wBAC9B,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBAC7B,aAAa,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,CAAC,KAAiB,EAAQ,EAAE;YAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YACxC,OAAO;gBACL,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;gBACvB,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO;gBACjC,KAAK,EAAE,KAAK,IAAI,EAAE;oBAChB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;wBAC/B,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;wBAC1B,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;wBAC5B,IAAI,CAAC;4BACH,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CACnC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAC5B,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAChC,CAAC;wBACJ,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC1C,CAAC;oBACH,CAAC;oBACD,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,IAAI,MAAM,CAAC;oBACnD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE;wBAC/B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;4BAChC,IAAI,GAAG,IAAI,CAAC;4BACZ,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;4BACnC,OAAO,CAAC,IAAI,EAAE,CAAC;wBACjB,CAAC;oBACH,CAAC,EAAE,SAAS,CAAC,CAAC;oBACd,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACjB,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;oBAC/B,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC;gBACD,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACnC,KAAK,EAAE,KAAK,EAAE,KAAa,EAAwB,EAAE;wBACnD,MAAM,OAAO,CAAC,OAAO,CAAC;wBACtB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;4BACnD,OAAO;gCACL,IAAI,EAAE,eAAwB;gCAC9B,MAAM,EAAE,oBAAoB;6BAC7B,CAAC;wBACJ,CAAC;wBACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;4BACnB,MAAM,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAChD,CAAC;wBACD,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;wBACpD,OAAO,EAAE,IAAI,EAAE,UAAmB,EAAE,CAAC;oBACvC,CAAC;iBACF,CAAC;aACH,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,UAAU,GAAG,CAAC,KAAa,EAAe,EAAE;YAChD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,KAAK,GAAe;gBACxB,UAAU;gBACV,QAAQ,EAAE,IAAI,GAAG,EAAE;gBACnB,OAAO,EAAE,IAAI,GAAG,EAAE;gBAClB,UAAU,EAAE,wBAAwB,EAAE;gBACtC,cAAc,EAAE,KAAK;gBACrB,aAAa,EAAE,CAAC;aACjB,CAAC;YACF,MAAM,GAAG,KAAK,CAAC;YACf,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC3B,MAAM,CAAC,KAAK,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,SAAS,SAAS;YAChB,IAAI,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAChC,OAAO;YACT,CAAC;YACD,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC3B,QAAQ,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,UAAU,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACD,MAAM,aAAa,GAAG,CAAC,IAAmB,EAAQ,EAAE;YAClD,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YACD,IAAI,GAAG,IAAI,CAAC;YACZ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;YAChD,CAAC;YACD,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC;QACF,8HAA8H;QAC9H,KAAK,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,OAAO,WAAW,CAAC;YACjB,EAAE,EAAE,MAAM,CAAC,SAAS;YACpB,MAAM,CAAC,KAAK;gBACV,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC/B,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACzE,CAAC;YACD,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;YACnD,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY;YAChC,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,KAAK,EAAE;gBACL,OAAO,EAAE,KAAK;gBACd,GAAG,EAAE,KAAK,EAAE,KAAK,EAAiB,EAAE;oBAClC,MAAM,OAAO,CAAC,OAAO,CAAC;oBACtB,IAAI,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;wBACvC,MAAM,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAChD,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACjB,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC5B,CAAC;aACF;YACD,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO;gBACT,CAAC;gBACD,QAAQ,GAAG,IAAI,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACf,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;oBACpD,IAAI,CAAC;wBACH,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;oBACvG,CAAC;oBAAC,MAAM,CAAC;wBACP,2DAA2D;oBAC7D,CAAC;oBACD,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBACtC,CAAC;gBACD,IAAI,aAAa,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBACrC,MAAM,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACnE,CAAC;gBACD,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,OAAO,CAAC,MAAM,CAAC;gBACrB,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;YAC/B,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ContextUsage } from "../../contracts/session.js";
|
|
2
|
+
import type { AcpSessionProfile } from "./profile.js";
|
|
3
|
+
/**
|
|
4
|
+
* Bridges the gap between an agent's `session/prompt` answer and the
|
|
5
|
+
* `usage_update` it pushes afterwards.
|
|
6
|
+
*
|
|
7
|
+
* kimi-code f9ca33376 packages/acp-server/src/session.ts `onTurnEnded`
|
|
8
|
+
* (lines 907-921) resolves the prompt response and then calls
|
|
9
|
+
* `void this.emitUsageUpdate()` (lines 923-945), which awaits
|
|
10
|
+
* `kosong.listModels()` and `agent.getContext()` before notifying, and returns
|
|
11
|
+
* without a push when the catalog has no `max_context_size` for the current
|
|
12
|
+
* model. Settling the OAR turn on the response alone therefore leaves
|
|
13
|
+
* `contextUsage()` at the PREVIOUS turn's value at `turn_ended`, and there is
|
|
14
|
+
* no guarantee an update ever comes — hence a bounded wait, not a barrier.
|
|
15
|
+
*/
|
|
16
|
+
export interface UsageUpdateGate {
|
|
17
|
+
/** Forget any update seen so far; call before sending the prompt. */
|
|
18
|
+
readonly arm: () => void;
|
|
19
|
+
/** Feed every projected update; only a present usage counts as arrival. */
|
|
20
|
+
readonly observe: (usage: ContextUsage | undefined) => void;
|
|
21
|
+
/**
|
|
22
|
+
* After the prompt response: resolve once a usage_update arrived since
|
|
23
|
+
* `arm()`, or after the profile's bound. Immediate when the profile does not
|
|
24
|
+
* declare the late push or the turn is being aborted.
|
|
25
|
+
*/
|
|
26
|
+
readonly settleAfterPrompt: (profile: Pick<AcpSessionProfile, "usageUpdateAfterPrompt" | "usageUpdateTimeoutMs">, aborting: boolean) => Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
export declare const DEFAULT_USAGE_UPDATE_TIMEOUT_MS = 500;
|
|
29
|
+
export declare function createUsageUpdateGate(): UsageUpdateGate;
|
|
30
|
+
//# sourceMappingURL=usage-wait.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-wait.d.ts","sourceRoot":"","sources":["../../../src/shared/acp/usage-wait.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe;IAC9B,qEAAqE;IACrE,QAAQ,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC;IACzB,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,KAAK,IAAI,CAAC;IAC5D;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,wBAAwB,GAAG,sBAAsB,CAAC,EACnF,QAAQ,EAAE,OAAO,KACd,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AAED,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD,wBAAgB,qBAAqB,IAAI,eAAe,CA8BvD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export const DEFAULT_USAGE_UPDATE_TIMEOUT_MS = 500;
|
|
2
|
+
export function createUsageUpdateGate() {
|
|
3
|
+
let seen = false;
|
|
4
|
+
let release = null;
|
|
5
|
+
return {
|
|
6
|
+
arm: () => {
|
|
7
|
+
seen = false;
|
|
8
|
+
},
|
|
9
|
+
observe: (usage) => {
|
|
10
|
+
if (usage === undefined) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
seen = true;
|
|
14
|
+
release?.();
|
|
15
|
+
},
|
|
16
|
+
settleAfterPrompt: async (profile, aborting) => {
|
|
17
|
+
if (profile.usageUpdateAfterPrompt !== true || aborting || seen) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const { promise, resolve } = Promise.withResolvers();
|
|
21
|
+
const timer = setTimeout(resolve, profile.usageUpdateTimeoutMs ?? DEFAULT_USAGE_UPDATE_TIMEOUT_MS);
|
|
22
|
+
timer.unref();
|
|
23
|
+
release = resolve;
|
|
24
|
+
try {
|
|
25
|
+
await promise;
|
|
26
|
+
}
|
|
27
|
+
finally {
|
|
28
|
+
clearTimeout(timer);
|
|
29
|
+
release = null;
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=usage-wait.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-wait.js","sourceRoot":"","sources":["../../../src/shared/acp/usage-wait.ts"],"names":[],"mappings":"AAgCA,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAEnD,MAAM,UAAU,qBAAqB;IACnC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,OAAO,GAAwB,IAAI,CAAC;IACxC,OAAO;QACL,GAAG,EAAE,GAAS,EAAE;YACd,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,EAAQ,EAAE;YACvB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YACD,IAAI,GAAG,IAAI,CAAC;YACZ,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;QACD,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAiB,EAAE;YAC5D,IAAI,OAAO,CAAC,sBAAsB,KAAK,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBAChE,OAAO;YACT,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,aAAa,EAAQ,CAAC;YAC3D,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,IAAI,+BAA+B,CAAC,CAAC;YACnG,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,OAAO,GAAG,OAAO,CAAC;YAClB,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC;YAChB,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reasoning-effort menu as plain level names. Runtimes disagree on the entry
|
|
3
|
+
* shape: codex ships `{effort, description}` objects, claude ships strings,
|
|
4
|
+
* grok's ACP extension may ship either. Returns `undefined` when the runtime
|
|
5
|
+
* exposes no menu at all, so callers can omit the field rather than emit `[]`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function effortLevelsOf(value: unknown): string[] | undefined;
|
|
8
|
+
/** A single effort name, or `undefined` when absent or not a non-empty string. */
|
|
9
|
+
export declare function effortLevelOf(value: unknown): string | undefined;
|
|
10
|
+
//# sourceMappingURL=effort-levels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effort-levels.d.ts","sourceRoot":"","sources":["../../src/shared/effort-levels.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAanE;AAOD,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAKhE"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { asRecord } from "./json.js";
|
|
2
|
+
/**
|
|
3
|
+
* Reasoning-effort menu as plain level names. Runtimes disagree on the entry
|
|
4
|
+
* shape: codex ships `{effort, description}` objects, claude ships strings,
|
|
5
|
+
* grok's ACP extension may ship either. Returns `undefined` when the runtime
|
|
6
|
+
* exposes no menu at all, so callers can omit the field rather than emit `[]`.
|
|
7
|
+
*/
|
|
8
|
+
export function effortLevelsOf(value) {
|
|
9
|
+
if (!Array.isArray(value)) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
const entries = value;
|
|
13
|
+
const levels = [];
|
|
14
|
+
for (const entry of entries) {
|
|
15
|
+
const level = typeof entry === "string" ? entry : effortName(asRecord(entry));
|
|
16
|
+
if (level !== undefined) {
|
|
17
|
+
levels.push(level);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return levels;
|
|
21
|
+
}
|
|
22
|
+
function effortName(record) {
|
|
23
|
+
const candidate = record?.effort ?? record?.id;
|
|
24
|
+
return typeof candidate === "string" && candidate.length > 0 ? candidate : undefined;
|
|
25
|
+
}
|
|
26
|
+
/** A single effort name, or `undefined` when absent or not a non-empty string. */
|
|
27
|
+
export function effortLevelOf(value) {
|
|
28
|
+
if (typeof value === "string" && value.length > 0) {
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
return effortName(asRecord(value));
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=effort-levels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effort-levels.js","sourceRoot":"","sources":["../../src/shared/effort-levels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAc,KAAK,CAAC;IACjC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,MAAsC;IACxD,MAAM,SAAS,GAAG,MAAM,EAAE,MAAM,IAAI,MAAM,EAAE,EAAE,CAAC;IAC/C,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACvF,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -12,6 +12,7 @@ export interface LineProcess {
|
|
|
12
12
|
readonly stdin: Writable;
|
|
13
13
|
readonly stdout: Readable;
|
|
14
14
|
write(text: string): void;
|
|
15
|
+
/** Complete UTF-8 lines, independent of stdout byte-chunk boundaries. */
|
|
15
16
|
onLine(handler: (line: string) => void): void;
|
|
16
17
|
/** Fires exactly once, for exit or spawn-level error alike. */
|
|
17
18
|
onExit(handler: (code: number | null) => void): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/shared/executable/process.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/shared/executable/process.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGtD,UAAU,cAAc;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAClC;AAED,8EAA8E;AAC9E,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,yEAAyE;IACzE,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAC9C,+DAA+D;IAC/D,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IACrD,IAAI,IAAI,IAAI,CAAC;CACd;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAEjF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE,cAAmB,GAC3B,WAAW,CAoFb"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import spawn from "cross-spawn";
|
|
2
|
+
import { StringDecoder } from "node:string_decoder";
|
|
2
3
|
/** Windows npm shims need a shell for one-shot execFile calls. */
|
|
3
4
|
export function requiresShell(command, platform) {
|
|
4
5
|
return platform === "win32" && /\.(?:cmd|bat)$/iu.test(command);
|
|
@@ -43,8 +44,11 @@ export function spawnLineProcess(command, args, options = {}) {
|
|
|
43
44
|
end(null);
|
|
44
45
|
});
|
|
45
46
|
const readLines = () => {
|
|
47
|
+
// Keep incomplete UTF-8 code points between chunks without changing the
|
|
48
|
+
// raw stdout stream used by protocol SDKs and other observers.
|
|
49
|
+
const decoder = new StringDecoder("utf8");
|
|
46
50
|
stdout.on("data", (chunk) => {
|
|
47
|
-
buffer += chunk.
|
|
51
|
+
buffer += typeof chunk === "string" ? chunk : decoder.write(chunk);
|
|
48
52
|
const lines = buffer.split("\n");
|
|
49
53
|
buffer = lines.pop() ?? "";
|
|
50
54
|
for (const raw of lines) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/shared/executable/process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/shared/executable/process.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/json.d.ts
CHANGED
|
@@ -7,4 +7,6 @@ export declare function asRecord(value: unknown): JsonRecord | null;
|
|
|
7
7
|
export declare function asNumber(value: unknown): number | null;
|
|
8
8
|
/** Narrow an epoch timestamp in seconds or milliseconds to an ISO-8601 instant. */
|
|
9
9
|
export declare function asEpochInstant(value: unknown): UtcInstant | null;
|
|
10
|
+
/** Array members that are JSON objects; non-arrays and non-object members are dropped. */
|
|
11
|
+
export declare function asRecordList(value: unknown): JsonRecord[];
|
|
10
12
|
//# sourceMappingURL=json.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/shared/json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,8EAA8E;AAC9E,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,kFAAkF;AAClF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAI1D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEtD;AAED,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAOhE"}
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/shared/json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,8EAA8E;AAC9E,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,kFAAkF;AAClF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAI1D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEtD;AAED,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAOhE;AAED,0FAA0F;AAC1F,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,EAAE,CAazD"}
|
package/dist/shared/json.js
CHANGED
|
@@ -26,4 +26,19 @@ export function asEpochInstant(value) {
|
|
|
26
26
|
const instant = new Date(raw >= 1_000_000_000_000 ? raw : raw * 1000);
|
|
27
27
|
return utcInstantFromDate(instant);
|
|
28
28
|
}
|
|
29
|
+
/** Array members that are JSON objects; non-arrays and non-object members are dropped. */
|
|
30
|
+
export function asRecordList(value) {
|
|
31
|
+
if (!Array.isArray(value)) {
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
const entries = value;
|
|
35
|
+
const records = [];
|
|
36
|
+
for (const entry of entries) {
|
|
37
|
+
const record = asRecord(entry);
|
|
38
|
+
if (record !== null) {
|
|
39
|
+
records.push(record);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return records;
|
|
43
|
+
}
|
|
29
44
|
//# sourceMappingURL=json.js.map
|
package/dist/shared/json.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/shared/json.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAKlD,kFAAkF;AAClF,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IACtE,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC"}
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/shared/json.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAKlD,kFAAkF;AAClF,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IACtE,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAc,KAAK,CAAC;IACjC,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|