@adonis-agora/agent 0.69.0 → 0.70.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/CHANGELOG.md +11 -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/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 +69 -8
- package/dist/src/opencode/turn.d.ts.map +1 -1
- package/dist/src/opencode/turn.js +149 -36
- package/dist/src/opencode/turn.js.map +1 -1
- package/dist/src/opencode/turns.d.ts +54 -9
- package/dist/src/opencode/turns.d.ts.map +1 -1
- package/dist/src/opencode/turns.js +83 -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
|
@@ -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,9 +1,9 @@
|
|
|
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';
|
|
6
|
+
import type { AgentRunInput, MessageUsage } from '../types.js';
|
|
7
7
|
import type { OpenCodeClient, OpenCodeEvent, OpenCodeForm } from './client.js';
|
|
8
8
|
/** How an OpenCode execution ended. */
|
|
9
9
|
export type TurnOutcome = {
|
|
@@ -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,11 @@ 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;
|
|
91
138
|
private stepOpen;
|
|
92
139
|
private sawText;
|
|
93
140
|
private separator;
|
|
@@ -96,15 +143,18 @@ export declare class OpenCodeTurn {
|
|
|
96
143
|
private ended;
|
|
97
144
|
private stepError;
|
|
98
145
|
constructor(a: OpenCodeTurnArgs);
|
|
146
|
+
/** What the run spent so far: carried from before this turn object, plus what it saw. */
|
|
147
|
+
totalUsage(): OpenCodeUsage;
|
|
99
148
|
get sessionId(): string;
|
|
100
149
|
get finished(): boolean;
|
|
101
|
-
/** The
|
|
150
|
+
/** The run's totals so far (see {@link totalUsage}): tokens, cost, model steps. */
|
|
102
151
|
totals(): {
|
|
103
152
|
inputTokens: number;
|
|
104
153
|
outputTokens: number;
|
|
105
154
|
costUsd?: number;
|
|
106
155
|
steps: number;
|
|
107
156
|
};
|
|
157
|
+
private isPriced;
|
|
108
158
|
/** Feed one of the session's events. */
|
|
109
159
|
handle(event: OpenCodeEvent): void;
|
|
110
160
|
/** End the turn as failed without an event (the prompt was refused, the stream is gone). */
|
|
@@ -147,7 +197,12 @@ export declare class OpenCodeTurn {
|
|
|
147
197
|
private innerCalls;
|
|
148
198
|
private onEvent;
|
|
149
199
|
private settleTool;
|
|
200
|
+
private modelId;
|
|
201
|
+
/** One model call's usage and cost, into the ledger and the run's total. */
|
|
202
|
+
private spend;
|
|
150
203
|
private stepEnded;
|
|
204
|
+
/** The run's usage as its last message carries it: the whole run, cache tokens included. */
|
|
205
|
+
private messageUsage;
|
|
151
206
|
/**
|
|
152
207
|
* Persist what the turn produced since the last flush as one assistant message — the message a
|
|
153
208
|
* call put to a person hangs on, or the turn's last one. Returns its id.
|
|
@@ -164,4 +219,10 @@ export declare class OpenCodeTurn {
|
|
|
164
219
|
private addResult;
|
|
165
220
|
private end;
|
|
166
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* OpenCode's token counts as the library's `MessageUsage`. OpenCode reports the uncached input in
|
|
224
|
+
* `input` and the cache reads and writes beside it; the library counts the whole input side in
|
|
225
|
+
* `inputTokens`, the cache counts being subsets of it.
|
|
226
|
+
*/
|
|
227
|
+
export declare function usageOf(tokens: any): MessageUsage;
|
|
167
228
|
//# 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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"}
|