@adonis-agora/agent 0.69.0 → 0.70.1
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/CHANGELOG.md +17 -0
- package/dist/providers/agent_provider.d.ts.map +1 -1
- package/dist/providers/agent_provider.js +6 -0
- package/dist/providers/agent_provider.js.map +1 -1
- package/dist/src/agent-loop.d.ts.map +1 -1
- package/dist/src/agent-loop.js +3 -13
- package/dist/src/agent-loop.js.map +1 -1
- package/dist/src/engine.d.ts +6 -0
- package/dist/src/engine.d.ts.map +1 -1
- package/dist/src/engine.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/opencode/client.d.ts +13 -0
- package/dist/src/opencode/client.d.ts.map +1 -1
- package/dist/src/opencode/durable/workflow.d.ts.map +1 -1
- package/dist/src/opencode/durable/workflow.js +12 -5
- package/dist/src/opencode/durable/workflow.js.map +1 -1
- package/dist/src/opencode/engine.d.ts.map +1 -1
- package/dist/src/opencode/engine.js +2 -0
- package/dist/src/opencode/engine.js.map +1 -1
- package/dist/src/opencode/host.d.ts +7 -6
- package/dist/src/opencode/host.d.ts.map +1 -1
- package/dist/src/opencode/host.js.map +1 -1
- package/dist/src/opencode/index.d.ts +1 -1
- package/dist/src/opencode/index.d.ts.map +1 -1
- package/dist/src/opencode/index.js +1 -1
- package/dist/src/opencode/index.js.map +1 -1
- package/dist/src/opencode/runner.d.ts.map +1 -1
- package/dist/src/opencode/runner.js +9 -5
- package/dist/src/opencode/runner.js.map +1 -1
- package/dist/src/opencode/turn.d.ts +86 -9
- package/dist/src/opencode/turn.d.ts.map +1 -1
- package/dist/src/opencode/turn.js +206 -36
- package/dist/src/opencode/turn.js.map +1 -1
- package/dist/src/opencode/turns.d.ts +56 -9
- package/dist/src/opencode/turns.d.ts.map +1 -1
- package/dist/src/opencode/turns.js +94 -30
- package/dist/src/opencode/turns.js.map +1 -1
- package/dist/src/pricing/bedrock.d.ts +1 -1
- package/dist/src/pricing/bedrock.d.ts.map +1 -1
- package/dist/src/pricing/bedrock.js +32 -1
- package/dist/src/pricing/bedrock.js.map +1 -1
- package/dist/src/pricing/resolve.d.ts +60 -0
- package/dist/src/pricing/resolve.d.ts.map +1 -0
- package/dist/src/pricing/resolve.js +162 -0
- package/dist/src/pricing/resolve.js.map +1 -0
- package/package.json +1 -1
|
@@ -35,6 +35,9 @@ export interface OpenCodeClient {
|
|
|
35
35
|
metadata?: {
|
|
36
36
|
readonly [key: string]: OpenCodeJson;
|
|
37
37
|
};
|
|
38
|
+
/** What the session spent so far, every model call OpenCode made for it (the title too). */
|
|
39
|
+
cost?: number;
|
|
40
|
+
tokens?: OpenCodeTokens;
|
|
38
41
|
}>;
|
|
39
42
|
/** Resolves when the session goes idle. Optional: a safety net for a missed terminal event. */
|
|
40
43
|
wait?(args: {
|
|
@@ -199,4 +202,14 @@ export interface OpenCodeFormField {
|
|
|
199
202
|
/** The user may type their own answer instead of picking one of `options`. */
|
|
200
203
|
custom?: boolean;
|
|
201
204
|
}
|
|
205
|
+
/** A token count as OpenCode reports it: `input` is the uncached input, the cache beside it. */
|
|
206
|
+
export interface OpenCodeTokens {
|
|
207
|
+
input: number;
|
|
208
|
+
output: number;
|
|
209
|
+
reasoning?: number;
|
|
210
|
+
cache?: {
|
|
211
|
+
read: number;
|
|
212
|
+
write: number;
|
|
213
|
+
};
|
|
214
|
+
}
|
|
202
215
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/opencode/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE;QACP,MAAM,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,EAAE;YACX,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;SAC9B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACrB,0FAA0F;QAC1F,SAAS,CAAC,IAAI,EAAE;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACzD,YAAY,EAAE;YACZ,KAAK,EAAE;gBACL,GAAG,CAAC,IAAI,EAAE;oBAAE,SAAS,EAAE,MAAM,CAAC;oBAAC,GAAG,EAAE,MAAM,CAAC;oBAAC,KAAK,EAAE,MAAM,CAAA;iBAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;aAChF,CAAC;SACH,CAAC;QACF,6FAA6F;QAC7F,GAAG,CAAC,CAAC,IAAI,EAAE;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC;YACzC,EAAE,EAAE,MAAM,CAAC;YACX,QAAQ,CAAC,EAAE;gBAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;aAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/opencode/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../../../src/opencode/durable/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5F,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,gBAAgB,CAAC;AAG9D,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,aAAa,CAAC;AAEhE,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;AAEhE,qGAAqG;AACrG,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG3D;AAOD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;IAIjD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAJ1B,OAAgB,QAAQ;;;MAAiD;IAEzE,YACmB,KAAK,EAAE,aAAa,EACpB,MAAM,CAAC,EAAE,cAAc,YAAA,EAGzC;IAEK,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../../../src/opencode/durable/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5F,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,gBAAgB,CAAC;AAG9D,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,aAAa,CAAC;AAEhE,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;AAEhE,qGAAqG;AACrG,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG3D;AAOD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;IAIjD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAJ1B,OAAgB,QAAQ;;;MAAiD;IAEzE,YACmB,KAAK,EAAE,aAAa,EACpB,MAAM,CAAC,EAAE,cAAc,YAAA,EAGzC;IAEK,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAiE9E;YAEa,SAAS;CAQxB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BaseWorkflow } from '@adonis-agora/durable';
|
|
2
2
|
import { errorText } from '../log.js';
|
|
3
|
+
import { addUsage, emptyUsage } from '../turn.js';
|
|
3
4
|
export const OPENCODE_RUN_WORKFLOW = 'agora.agent.opencode.run';
|
|
4
5
|
/** The token a person's answer to `toolCallId` is signalled under — the library's own convention. */
|
|
5
6
|
export function decisionToken(runId, toolCallId) {
|
|
@@ -46,6 +47,9 @@ export class OpenCodeRunWorkflow extends BaseWorkflow {
|
|
|
46
47
|
// `@adonis-agora/durable` >= 0.43.3 never runs one run twice at once in a process, so a step
|
|
47
48
|
// that talks to OpenCode (a `reply`, an `observe`) runs once per execution of the run.
|
|
48
49
|
const step = (name, body) => ctx.localStep(name, body);
|
|
50
|
+
// What the run spent: every milestone carries its share, journaled with it, so a run resumed in
|
|
51
|
+
// another process adds up the same figure (a milestone journaled before usage travelled adds 0).
|
|
52
|
+
let spent = emptyUsage();
|
|
49
53
|
try {
|
|
50
54
|
const begun = await step('begin', async () => ({
|
|
51
55
|
handle: await turns.begin(ctx.runId, input, true),
|
|
@@ -53,18 +57,21 @@ export class OpenCodeRunWorkflow extends BaseWorkflow {
|
|
|
53
57
|
}));
|
|
54
58
|
let handle = begun.handle;
|
|
55
59
|
await step('prompt', async () => {
|
|
56
|
-
await turns.prompt(ctx.runId, input, handle);
|
|
60
|
+
await turns.prompt(ctx.runId, input, handle, spent);
|
|
57
61
|
return true;
|
|
58
62
|
});
|
|
59
63
|
for (let n = 0;; n += 1) {
|
|
60
|
-
const
|
|
64
|
+
const before = spent;
|
|
65
|
+
const milestone = await step(`observe:${n}`, () => turns.observe(ctx.runId, input, handle, before));
|
|
66
|
+
spent = addUsage(spent, milestone.usage);
|
|
67
|
+
const total = spent;
|
|
61
68
|
if (milestone.kind === 'finished') {
|
|
62
69
|
await step('finish', async () => {
|
|
63
70
|
// A cancel settles the run itself (it may be parked where no step runs again).
|
|
64
71
|
if (await this.cancelled(ctx.runId))
|
|
65
72
|
turns.drop(ctx.runId);
|
|
66
73
|
else {
|
|
67
|
-
await turns.settle(ctx.runId, input, milestone.outcome, Date.now() - begun.startedAt);
|
|
74
|
+
await turns.settle(ctx.runId, input, milestone.outcome, Date.now() - begun.startedAt, total);
|
|
68
75
|
}
|
|
69
76
|
return true;
|
|
70
77
|
});
|
|
@@ -80,14 +87,14 @@ export class OpenCodeRunWorkflow extends BaseWorkflow {
|
|
|
80
87
|
reply = { approved: false, expired: true };
|
|
81
88
|
}
|
|
82
89
|
const ask = milestone.ask;
|
|
83
|
-
handle = await step(`reply:${n}`, () => turns.reply(ctx.runId, input, handle, ask, reply));
|
|
90
|
+
handle = await step(`reply:${n}`, () => turns.reply(ctx.runId, input, handle, ask, reply, total));
|
|
84
91
|
}
|
|
85
92
|
}
|
|
86
93
|
catch (error) {
|
|
87
94
|
if (isControlFlowSignal(error))
|
|
88
95
|
throw error;
|
|
89
96
|
await step('fail', async () => {
|
|
90
|
-
await turns.settleFailed(ctx.runId, input, errorText(error, 'the turn failed'));
|
|
97
|
+
await turns.settleFailed(ctx.runId, input, errorText(error, 'the turn failed'), 0, spent);
|
|
91
98
|
return true;
|
|
92
99
|
});
|
|
93
100
|
return { outcome: 'failed' };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../../../src/opencode/durable/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAyC,MAAM,uBAAuB,CAAC;AAG5F,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../../../src/opencode/durable/workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/opencode/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,oBAAoB,EAC1B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,mBAAmB,EAAuB,MAAM,UAAU,CAAC;AAEpE,OAAO,EAAE,KAAK,sBAAsB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAExE,oFAAoF;AAEpF,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAElE,MAAM,WAAW,qBAAsB,SAAQ,sBAAsB;IACnE;;;OAGG;IACH,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IACjD,mFAAmF;IACnF,QAAQ,CAAC,EAAE,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC;CACvE;AAkBD;;;;GAIG;AACH,qBAAa,cAAe,YAAW,WAAW;;IAMpC,QAAQ,CAAC,OAAO,EAAE,qBAAqB;IALnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAc;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAS;IAIlC,YAAqB,OAAO,EAAE,qBAAqB,EAAI;IAEvD;;;OAGG;IACH,IAAI,KAAK,IAAI,aAAa,CAKzB;IAED,0EAA0E;IAC1E,IAAI,QAAQ,IAAI,mBAAmB,GAAG,SAAS,CAE9C;IAEK,YAAY,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAGpE;IAED,QAAQ,IAAI,SAAS,eAAe,EAAE,CAErC;IAED,QAAQ,IAAI,IAAI,CAEf;IAED,sGAAsG;IACtG,UAAgB,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/opencode/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,oBAAoB,EAC1B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,mBAAmB,EAAuB,MAAM,UAAU,CAAC;AAEpE,OAAO,EAAE,KAAK,sBAAsB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAExE,oFAAoF;AAEpF,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAElE,MAAM,WAAW,qBAAsB,SAAQ,sBAAsB;IACnE;;;OAGG;IACH,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IACjD,mFAAmF;IACnF,QAAQ,CAAC,EAAE,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC;CACvE;AAkBD;;;;GAIG;AACH,qBAAa,cAAe,YAAW,WAAW;;IAMpC,QAAQ,CAAC,OAAO,EAAE,qBAAqB;IALnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAc;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAS;IAIlC,YAAqB,OAAO,EAAE,qBAAqB,EAAI;IAEvD;;;OAGG;IACH,IAAI,KAAK,IAAI,aAAa,CAKzB;IAED,0EAA0E;IAC1E,IAAI,QAAQ,IAAI,mBAAmB,GAAG,SAAS,CAE9C;IAEK,YAAY,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAGpE;IAED,QAAQ,IAAI,SAAS,eAAe,EAAE,CAErC;IAED,QAAQ,IAAI,IAAI,CAEf;IAED,sGAAsG;IACtG,UAAgB,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAuC9E;CACF;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,cAAc,CAEvE"}
|
|
@@ -78,6 +78,8 @@ export class OpenCodeEngine {
|
|
|
78
78
|
sink: context.sink,
|
|
79
79
|
registry: context.registry,
|
|
80
80
|
queue: context.queue,
|
|
81
|
+
...(context.pricingStore !== undefined ? { pricingStore: context.pricingStore } : {}),
|
|
82
|
+
...(context.priceCatalog !== undefined ? { priceCatalog: context.priceCatalog } : {}),
|
|
81
83
|
...(tokens !== undefined
|
|
82
84
|
? { mintToolsToken: (actor, serverKey) => tokens.mint(actor, serverKey) }
|
|
83
85
|
: {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/opencode/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/opencode/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AgentUiComponent } from '../stream-events.js';
|
|
2
2
|
import type { Actor, AgentRunInput, StoredMessage } from '../types.js';
|
|
3
3
|
import type { OpenCodeClient, OpenCodePromptFile, OpenCodeSessionCreate } from './client.js';
|
|
4
|
-
import type { PendingAsk, TurnOutcome } from './turn.js';
|
|
4
|
+
import type { OpenCodeUsage, PendingAsk, TurnOutcome } from './turn.js';
|
|
5
5
|
/**
|
|
6
6
|
* Where a turn runs and how its OpenCode session is set up — the part only the host knows. The
|
|
7
7
|
* engine owns everything between the library and OpenCode (sessions per thread, the event stream,
|
|
@@ -110,11 +110,12 @@ export interface OpenCodeRunResult {
|
|
|
110
110
|
text: string;
|
|
111
111
|
/** The run's assistant messages, as stored. */
|
|
112
112
|
messages: StoredMessage[];
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
113
|
+
/**
|
|
114
|
+
* What the run spent, over every model call OpenCode made for it (its steps, the title, a
|
|
115
|
+
* compaction) and every process that ran a part of it. `inputTokens` counts cached input too;
|
|
116
|
+
* `cacheReadTokens`/`cacheWriteTokens` are subsets of it.
|
|
117
|
+
*/
|
|
118
|
+
usage: OpenCodeUsage;
|
|
118
119
|
durationMs: number;
|
|
119
120
|
}
|
|
120
121
|
/** See {@link OpenCodeHost.beforeSettle}. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../src/opencode/host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../src/opencode/host.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../../src/opencode/host.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../../src/opencode/host.ts"],"names":[],"mappings":"AA2KA,MAAM,OAAO,4BAA4B;IACtB,IAAI,GAAG,IAAI,GAAG,EAA8B,CAAC;IAE9D,KAAK,CAAC,GAAG,CAAC,QAAgB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,QAAgB,EAAE,GAAuB;QACjD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;CACF;AAQD;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAC1C,EAAoB,EACpB,MAAM,GAAG,yBAAyB;IAElC,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,QAAQ;YAChB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,QAAQ,EAAE,CAAC,CAAC;YACjD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACnD,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAuB,CAAC;gBAClD,OAAO,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7F,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG;YACrB,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,QAAQ,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -10,6 +10,6 @@ export { FormAnswerError, toElicitation, toFormAnswer, toQuestion } from './form
|
|
|
10
10
|
export { InMemoryOpenCodeSessionStore, keyValueOpenCodeSessionStore, type OpenCodeAmendment, type OpenCodeHost, type OpenCodeKeyValue, type OpenCodeRunResult, type OpenCodeServer, type OpenCodeSessionRef, type OpenCodeSessionStore, type OpenCodeTurnContext, } from './host.js';
|
|
11
11
|
export { OpenCodeMcpEndpoint, type OpenCodeToolsClaims, OpenCodeToolsTokens } from './mcp.js';
|
|
12
12
|
export { OpenCodeAgentRunner } from './runner.js';
|
|
13
|
-
export { type Milestone, OpenCodeTurn, type PendingAsk, type TurnOutcome } from './turn.js';
|
|
13
|
+
export { addUsage, emptyUsage, type Milestone, OpenCodeTurn, type OpenCodeUsage, type PendingAsk, type StepCost, type StepModel, type TurnOutcome, usageOf, } from './turn.js';
|
|
14
14
|
export { type OpenCodeCallContext, type OpenCodeEngineSettings, type OpenCodeToolCall, type OpenCodeToolsOptions, OpenCodeTurns, SESSION_META_KEY, type SessionHandle, } from './turns.js';
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/opencode/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,YAAY,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,aAAa,EAClB,cAAc,EACd,KAAK,qBAAqB,EAC1B,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/opencode/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,YAAY,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,aAAa,EAClB,cAAc,EACd,KAAK,qBAAqB,EAC1B,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,QAAQ,EACR,UAAU,EACV,KAAK,SAAS,EACd,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,OAAO,GACR,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,aAAa,EACb,gBAAgB,EAChB,KAAK,aAAa,GACnB,MAAM,YAAY,CAAC"}
|
|
@@ -4,6 +4,6 @@ export { FormAnswerError, toElicitation, toFormAnswer, toQuestion } from './form
|
|
|
4
4
|
export { InMemoryOpenCodeSessionStore, keyValueOpenCodeSessionStore, } from './host.js';
|
|
5
5
|
export { OpenCodeMcpEndpoint, OpenCodeToolsTokens } from './mcp.js';
|
|
6
6
|
export { OpenCodeAgentRunner } from './runner.js';
|
|
7
|
-
export { OpenCodeTurn } from './turn.js';
|
|
7
|
+
export { addUsage, emptyUsage, OpenCodeTurn, usageOf, } from './turn.js';
|
|
8
8
|
export { OpenCodeTurns, SESSION_META_KEY, } from './turns.js';
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/opencode/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAEL,cAAc,EAEd,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAS7B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,mBAAmB,EAA4B,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/opencode/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAEL,cAAc,EAEd,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAS7B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,mBAAmB,EAA4B,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,QAAQ,EACR,UAAU,EAEV,YAAY,EAMZ,OAAO,GACR,MAAM,WAAW,CAAC;AACnB,OAAO,EAKL,aAAa,EACb,gBAAgB,GAEjB,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/opencode/runner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAA4C,MAAM,mBAAmB,CAAC;AAC9F,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/opencode/runner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAA4C,MAAM,mBAAmB,CAAC;AAC9F,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,aAAa,CAAC;AAG3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAQhD;;;;;;GAMG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IAMnD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IANxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoC;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IAErD,YACmB,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,UAAU,EAGnC;IAED,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAErC;IAED,uFAAuF;IACjF,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAIjD;IAEK,KAAK,CACT,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAa5B;IAED;;;OAGG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAShF;IAED;;;OAGG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASzC;YAEa,GAAG;IAuCjB,+EAA+E;IAC/E,OAAO,CAAC,IAAI;CAoBb"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { RunCancelledError } from '../agent-loop.js';
|
|
2
2
|
import { HumanReplyMismatchError, isHumanDecision } from '../elicitation.js';
|
|
3
3
|
import { errorText } from './log.js';
|
|
4
|
+
import { addUsage, emptyUsage } from './turn.js';
|
|
4
5
|
/**
|
|
5
6
|
* Runs OpenCode turns in this process: `begin → prompt → [observe → wait for a person → reply]* →
|
|
6
7
|
* settle`, with the waits on people held in memory. Like `InlineAgentRunner`, a run parked on a
|
|
@@ -79,19 +80,22 @@ export class OpenCodeAgentRunner {
|
|
|
79
80
|
}
|
|
80
81
|
async run(runId, input) {
|
|
81
82
|
const started = Date.now();
|
|
83
|
+
// What the run spent, milestone by milestone.
|
|
84
|
+
let spent = emptyUsage();
|
|
82
85
|
try {
|
|
83
86
|
let handle = await this.turns.begin(runId, input);
|
|
84
87
|
if (this.cancelled.has(runId))
|
|
85
88
|
throw new RunCancelledError();
|
|
86
|
-
await this.turns.prompt(runId, input, handle);
|
|
89
|
+
await this.turns.prompt(runId, input, handle, spent);
|
|
87
90
|
for (;;) {
|
|
88
|
-
const milestone = await this.turns.observe(runId, input, handle);
|
|
91
|
+
const milestone = await this.turns.observe(runId, input, handle, spent);
|
|
92
|
+
spent = addUsage(spent, milestone.usage);
|
|
89
93
|
if (milestone.kind === 'finished') {
|
|
90
|
-
await this.turns.settle(runId, input, milestone.outcome, Date.now() - started);
|
|
94
|
+
await this.turns.settle(runId, input, milestone.outcome, Date.now() - started, spent);
|
|
91
95
|
return;
|
|
92
96
|
}
|
|
93
97
|
const reply = await this.park(runId, milestone.ask.id, milestone.ask.kind === 'approval' ? 'approval' : 'answers', milestone.timeoutMs);
|
|
94
|
-
handle = await this.turns.reply(runId, input, handle, milestone.ask, reply);
|
|
98
|
+
handle = await this.turns.reply(runId, input, handle, milestone.ask, reply, spent);
|
|
95
99
|
}
|
|
96
100
|
}
|
|
97
101
|
catch (error) {
|
|
@@ -100,7 +104,7 @@ export class OpenCodeAgentRunner {
|
|
|
100
104
|
await this.turns.settle(runId, input, { status: 'interrupted' }, Date.now() - started);
|
|
101
105
|
return;
|
|
102
106
|
}
|
|
103
|
-
await this.turns.settleFailed(runId, input, errorText(error, 'the turn failed'));
|
|
107
|
+
await this.turns.settleFailed(runId, input, errorText(error, 'the turn failed'), Date.now() - started, spent);
|
|
104
108
|
}
|
|
105
109
|
}
|
|
106
110
|
/** Wait for a person's answer; a lapsed approval answers itself as expired. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/opencode/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAmB,uBAAuB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAI9F,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/opencode/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type ElicitationRequest, type HumanReply } from '../elicitation.js';
|
|
2
|
-
import type { AgentStore } from '../spi/agent-store.js';
|
|
2
|
+
import type { AgentStore, CostSource } from '../spi/agent-store.js';
|
|
3
3
|
import type { ApprovalRequirement } from '../spi/approval-policy.js';
|
|
4
4
|
import type { SinkWriter } from '../spi/token-stream-sink.js';
|
|
5
5
|
import type { AgentUiComponent } from '../stream-events.js';
|
|
6
|
-
import type { AgentRunInput } from '../types.js';
|
|
7
|
-
import type { OpenCodeClient, OpenCodeEvent, OpenCodeForm } from './client.js';
|
|
6
|
+
import type { AgentRunInput, MessageUsage } from '../types.js';
|
|
7
|
+
import type { OpenCodeClient, OpenCodeEvent, OpenCodeForm, OpenCodeTokens } from './client.js';
|
|
8
8
|
/** How an OpenCode execution ended. */
|
|
9
9
|
export type TurnOutcome = {
|
|
10
10
|
status: 'succeeded';
|
|
@@ -34,14 +34,48 @@ export type PendingAsk = {
|
|
|
34
34
|
request: ElicitationRequest;
|
|
35
35
|
messageId?: string;
|
|
36
36
|
};
|
|
37
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* What a turn spent. `inputTokens` is the whole input side, cached input included (as the library's
|
|
39
|
+
* `MessageUsage` counts it — OpenCode's own `tokens.input` leaves the cache out); `cacheReadTokens`,
|
|
40
|
+
* `cacheWriteTokens` and `reasoningTokens` are subsets. `costUsd` sums every priced call; `steps`
|
|
41
|
+
* counts the model steps.
|
|
42
|
+
*/
|
|
43
|
+
export interface OpenCodeUsage {
|
|
44
|
+
inputTokens: number;
|
|
45
|
+
outputTokens: number;
|
|
46
|
+
cacheReadTokens: number;
|
|
47
|
+
cacheWriteTokens: number;
|
|
48
|
+
reasoningTokens: number;
|
|
49
|
+
costUsd: number;
|
|
50
|
+
steps: number;
|
|
51
|
+
}
|
|
52
|
+
export declare function emptyUsage(): OpenCodeUsage;
|
|
53
|
+
/** `a + b`; a missing side (a milestone journaled before usage travelled) counts as nothing. */
|
|
54
|
+
export declare function addUsage(a: OpenCodeUsage | undefined, b: Partial<OpenCodeUsage> | undefined): OpenCodeUsage;
|
|
55
|
+
/** The model a step ran on, as OpenCode names it (`session.step.started`). */
|
|
56
|
+
export interface StepModel {
|
|
57
|
+
providerID: string;
|
|
58
|
+
id: string;
|
|
59
|
+
}
|
|
60
|
+
/** What a model call cost, and where the figure came from. */
|
|
61
|
+
export interface StepCost {
|
|
62
|
+
costUsd?: number;
|
|
63
|
+
costSource?: CostSource;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Where a turn stands: it needs a person, or it is over. `usage` is what the turn spent since its
|
|
67
|
+
* previous milestone — journaled with the milestone, so a run resumed in another process still adds
|
|
68
|
+
* up what every process saw.
|
|
69
|
+
*/
|
|
38
70
|
export type Milestone = {
|
|
39
71
|
kind: 'ask';
|
|
40
72
|
ask: PendingAsk;
|
|
41
73
|
timeoutMs?: number;
|
|
74
|
+
usage?: OpenCodeUsage;
|
|
42
75
|
} | {
|
|
43
76
|
kind: 'finished';
|
|
44
77
|
outcome: TurnOutcome;
|
|
78
|
+
usage?: OpenCodeUsage;
|
|
45
79
|
};
|
|
46
80
|
export interface OpenCodeTurnArgs {
|
|
47
81
|
runId: string;
|
|
@@ -52,8 +86,19 @@ export interface OpenCodeTurnArgs {
|
|
|
52
86
|
store: AgentStore;
|
|
53
87
|
/** What an action needs before it runs (the agent's `ApprovalPolicy`). */
|
|
54
88
|
approvalFor: (action: string) => Promise<ApprovalRequirement>;
|
|
55
|
-
/** The model label usage is recorded under. */
|
|
89
|
+
/** The model label usage is recorded under until OpenCode names the step's model. */
|
|
56
90
|
modelLabel: string;
|
|
91
|
+
/**
|
|
92
|
+
* What a model call cost: OpenCode's reported figure, or the library's estimate. Omit → OpenCode's
|
|
93
|
+
* figure as reported.
|
|
94
|
+
*/
|
|
95
|
+
priceStep?: (step: {
|
|
96
|
+
model: StepModel | undefined;
|
|
97
|
+
usage: MessageUsage;
|
|
98
|
+
reportedCostUsd: number | undefined;
|
|
99
|
+
}) => Promise<StepCost>;
|
|
100
|
+
/** What the run spent before this turn object existed (an earlier process, an earlier session). */
|
|
101
|
+
carried?: OpenCodeUsage;
|
|
57
102
|
/**
|
|
58
103
|
* An action OpenCode was allowed to run — by a person, a remembered approval or the policy. The
|
|
59
104
|
* engine's MCP endpoint runs an `action` tool only against one of these.
|
|
@@ -85,9 +130,15 @@ export declare class OpenCodeTurn {
|
|
|
85
130
|
private readonly hidden;
|
|
86
131
|
private readonly milestones;
|
|
87
132
|
private waiting;
|
|
88
|
-
|
|
89
|
-
private
|
|
90
|
-
private
|
|
133
|
+
/** What this turn object saw spent, and how much of it a milestone already reported. */
|
|
134
|
+
private spent;
|
|
135
|
+
private reported;
|
|
136
|
+
private priced;
|
|
137
|
+
private model;
|
|
138
|
+
/** What the session had spent when this turn prompted it; what OpenCode reported since. */
|
|
139
|
+
private baseline;
|
|
140
|
+
private readonly seen;
|
|
141
|
+
private compacted;
|
|
91
142
|
private stepOpen;
|
|
92
143
|
private sawText;
|
|
93
144
|
private separator;
|
|
@@ -96,15 +147,28 @@ export declare class OpenCodeTurn {
|
|
|
96
147
|
private ended;
|
|
97
148
|
private stepError;
|
|
98
149
|
constructor(a: OpenCodeTurnArgs);
|
|
150
|
+
/**
|
|
151
|
+
* What the session had spent before this turn prompted it (`session.get`). When the execution
|
|
152
|
+
* ends, what the session spent since that this turn's events did not report — the title OpenCode
|
|
153
|
+
* generates, a compaction: OpenCode records those calls on the session without streaming them — is
|
|
154
|
+
* recorded as a usage row of its own.
|
|
155
|
+
*/
|
|
156
|
+
setBaseline(info: {
|
|
157
|
+
cost?: number;
|
|
158
|
+
tokens?: OpenCodeTokens;
|
|
159
|
+
} | undefined): void;
|
|
160
|
+
/** What the run spent so far: carried from before this turn object, plus what it saw. */
|
|
161
|
+
totalUsage(): OpenCodeUsage;
|
|
99
162
|
get sessionId(): string;
|
|
100
163
|
get finished(): boolean;
|
|
101
|
-
/** The
|
|
164
|
+
/** The run's totals so far (see {@link totalUsage}): tokens, cost, model steps. */
|
|
102
165
|
totals(): {
|
|
103
166
|
inputTokens: number;
|
|
104
167
|
outputTokens: number;
|
|
105
168
|
costUsd?: number;
|
|
106
169
|
steps: number;
|
|
107
170
|
};
|
|
171
|
+
private isPriced;
|
|
108
172
|
/** Feed one of the session's events. */
|
|
109
173
|
handle(event: OpenCodeEvent): void;
|
|
110
174
|
/** End the turn as failed without an event (the prompt was refused, the stream is gone). */
|
|
@@ -147,7 +211,12 @@ export declare class OpenCodeTurn {
|
|
|
147
211
|
private innerCalls;
|
|
148
212
|
private onEvent;
|
|
149
213
|
private settleTool;
|
|
214
|
+
private modelId;
|
|
215
|
+
/** One model call's usage and cost, into the ledger and the run's total. */
|
|
216
|
+
private spend;
|
|
150
217
|
private stepEnded;
|
|
218
|
+
/** The run's usage as its last message carries it: the whole run, cache tokens included. */
|
|
219
|
+
private messageUsage;
|
|
151
220
|
/**
|
|
152
221
|
* Persist what the turn produced since the last flush as one assistant message — the message a
|
|
153
222
|
* call put to a person hangs on, or the turn's last one. Returns its id.
|
|
@@ -162,6 +231,14 @@ export declare class OpenCodeTurn {
|
|
|
162
231
|
private onForm;
|
|
163
232
|
private answered;
|
|
164
233
|
private addResult;
|
|
234
|
+
/** What the session spent since the baseline that no event of this turn reported. */
|
|
235
|
+
private unreported;
|
|
165
236
|
private end;
|
|
166
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* OpenCode's token counts as the library's `MessageUsage`. OpenCode reports the uncached input in
|
|
240
|
+
* `input` and the cache reads and writes beside it; the library counts the whole input side in
|
|
241
|
+
* `inputTokens`, the cache counts being subsets of it.
|
|
242
|
+
*/
|
|
243
|
+
export declare function usageOf(tokens: any): MessageUsage;
|
|
167
244
|
//# sourceMappingURL=turn.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn.d.ts","sourceRoot":"","sources":["../../../src/opencode/turn.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAIhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"turn.d.ts","sourceRoot":"","sources":["../../../src/opencode/turn.ts"],"names":[],"mappings":"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"}
|