@botiverse/oar 0.51.0 → 0.53.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -9
- package/dist/contracts/failure.d.ts +1 -1
- package/dist/contracts/install.d.ts +11 -1
- package/dist/contracts/install.d.ts.map +1 -1
- package/dist/contracts/records.d.ts +25 -5
- package/dist/contracts/records.d.ts.map +1 -1
- package/dist/contracts/status.d.ts +16 -1
- package/dist/contracts/status.d.ts.map +1 -1
- package/dist/contracts/tasks.d.ts +6 -5
- package/dist/contracts/tasks.d.ts.map +1 -1
- package/dist/observe/agent-status.d.ts +6 -3
- package/dist/observe/agent-status.d.ts.map +1 -1
- package/dist/observe/agent-status.js +58 -8
- package/dist/observe/agent-status.js.map +1 -1
- package/dist/observe/conversation.d.ts +6 -4
- package/dist/observe/conversation.d.ts.map +1 -1
- package/dist/observe/conversation.js +27 -12
- package/dist/observe/conversation.js.map +1 -1
- package/dist/observe/input-delivery.d.ts.map +1 -1
- package/dist/observe/input-delivery.js +8 -2
- package/dist/observe/input-delivery.js.map +1 -1
- package/dist/observe/session-view-events.d.ts +1 -1
- package/dist/observe/session-view-events.d.ts.map +1 -1
- package/dist/observe/session-view-events.js +6 -4
- package/dist/observe/session-view-events.js.map +1 -1
- package/dist/observe/session-view-inputs.d.ts +7 -1
- package/dist/observe/session-view-inputs.d.ts.map +1 -1
- package/dist/observe/session-view-inputs.js +37 -1
- package/dist/observe/session-view-inputs.js.map +1 -1
- package/dist/observe/session-view-tools.d.ts +2 -2
- package/dist/observe/session-view-tools.d.ts.map +1 -1
- package/dist/observe/session-view-tools.js +8 -2
- package/dist/observe/session-view-tools.js.map +1 -1
- package/dist/observe/session-view.d.ts +9 -6
- package/dist/observe/session-view.d.ts.map +1 -1
- package/dist/observe/session-view.js +4 -4
- package/dist/observe/session-view.js.map +1 -1
- package/dist/observe/tool-activity.d.ts +1 -1
- package/dist/observe/tool-activity.d.ts.map +1 -1
- package/dist/observe/tool-activity.js +1 -1
- package/dist/observe/tool-activity.js.map +1 -1
- package/dist/observe/tool-groups.js +1 -1
- package/dist/observe/tool-groups.js.map +1 -1
- package/dist/observe/turns.d.ts +21 -12
- package/dist/observe/turns.d.ts.map +1 -1
- package/dist/observe/turns.js +61 -39
- package/dist/observe/turns.js.map +1 -1
- package/dist/runtimes/claude/account-usage.d.ts.map +1 -1
- package/dist/runtimes/claude/account-usage.js +3 -2
- package/dist/runtimes/claude/account-usage.js.map +1 -1
- package/dist/runtimes/claude/auth-status.d.ts +0 -1
- package/dist/runtimes/claude/auth-status.d.ts.map +1 -1
- package/dist/runtimes/claude/auth-status.js +1 -4
- package/dist/runtimes/claude/auth-status.js.map +1 -1
- package/dist/runtimes/claude/content.d.ts +7 -1
- package/dist/runtimes/claude/content.d.ts.map +1 -1
- package/dist/runtimes/claude/content.js +46 -5
- package/dist/runtimes/claude/content.js.map +1 -1
- package/dist/runtimes/claude/environment.d.ts +22 -0
- package/dist/runtimes/claude/environment.d.ts.map +1 -0
- package/dist/runtimes/claude/environment.js +44 -0
- package/dist/runtimes/claude/environment.js.map +1 -0
- package/dist/runtimes/claude/input-lifecycle.d.ts +19 -0
- package/dist/runtimes/claude/input-lifecycle.d.ts.map +1 -0
- package/dist/runtimes/claude/input-lifecycle.js +68 -0
- package/dist/runtimes/claude/input-lifecycle.js.map +1 -0
- package/dist/runtimes/claude/inventory.d.ts.map +1 -1
- package/dist/runtimes/claude/inventory.js +2 -1
- package/dist/runtimes/claude/inventory.js.map +1 -1
- package/dist/runtimes/claude/launch.d.ts.map +1 -1
- package/dist/runtimes/claude/launch.js +4 -1
- package/dist/runtimes/claude/launch.js.map +1 -1
- package/dist/runtimes/claude/list-models.d.ts.map +1 -1
- package/dist/runtimes/claude/list-models.js +2 -1
- package/dist/runtimes/claude/list-models.js.map +1 -1
- package/dist/runtimes/claude/login.d.ts.map +1 -1
- package/dist/runtimes/claude/login.js +2 -1
- package/dist/runtimes/claude/login.js.map +1 -1
- package/dist/runtimes/claude/logout.d.ts.map +1 -1
- package/dist/runtimes/claude/logout.js +2 -1
- package/dist/runtimes/claude/logout.js.map +1 -1
- package/dist/runtimes/claude/projection.d.ts +20 -6
- package/dist/runtimes/claude/projection.d.ts.map +1 -1
- package/dist/runtimes/claude/projection.js +37 -35
- package/dist/runtimes/claude/projection.js.map +1 -1
- package/dist/runtimes/claude/session.d.ts.map +1 -1
- package/dist/runtimes/claude/session.js +55 -41
- package/dist/runtimes/claude/session.js.map +1 -1
- package/dist/runtimes/claude/tasks.d.ts +5 -2
- package/dist/runtimes/claude/tasks.d.ts.map +1 -1
- package/dist/runtimes/claude/tasks.js +22 -4
- package/dist/runtimes/claude/tasks.js.map +1 -1
- package/dist/runtimes/claude/update.d.ts.map +1 -1
- package/dist/runtimes/claude/update.js +3 -1
- package/dist/runtimes/claude/update.js.map +1 -1
- package/dist/shared/install.d.ts +2 -0
- package/dist/shared/install.d.ts.map +1 -1
- package/dist/shared/install.js +6 -3
- package/dist/shared/install.js.map +1 -1
- package/dist/shared/update.d.ts +2 -0
- package/dist/shared/update.d.ts.map +1 -1
- package/dist/shared/update.js +1 -1
- package/dist/shared/update.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,6 +24,17 @@ if (installation?.kind === "available") {
|
|
|
24
24
|
}
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
+
`promptAndWait` uses your `inputId`, or generates a UUID, to associate native
|
|
28
|
+
queued/started reports with its answer. A notification turn before the input
|
|
29
|
+
starts does not satisfy that wait. Without those native reports it keeps the
|
|
30
|
+
request-based fallback. For a lower-level wait, pass the inputId to
|
|
31
|
+
`awaitTurnEnd(session, requestSeq, inputId)`; omitting it waits for the first
|
|
32
|
+
root turn end after that cursor. `session.prompt()` already generates an id
|
|
33
|
+
when omitted; it is recorded on the returned prompt request. A native
|
|
34
|
+
before-start cancellation resolves an input-scoped wait as `aborted`, even
|
|
35
|
+
without a turn-end event. `awaitIdle` waits through an intervening notification
|
|
36
|
+
while a host prompt remains pending.
|
|
37
|
+
|
|
27
38
|
`session.events()` delivers flat, attributed `Event`s (native user message
|
|
28
39
|
echoes, text, reasoning, tool call start / later input / progress / end, turn
|
|
29
40
|
start and end, usage, model, effort, compaction start / end, retry, background
|
|
@@ -37,6 +48,14 @@ projection over the record stream, which `session.rawEvents()` and
|
|
|
37
48
|
verbatim, `RequestRecord`, `ResponseRecord`) for consumers who need the
|
|
38
49
|
runtime's own frames.
|
|
39
50
|
|
|
51
|
+
Tool arguments can arrive while the model is still writing them. Append
|
|
52
|
+
`tool_call_input_delta.delta` as raw text; `tool_call_input.input` replaces
|
|
53
|
+
the whole input when complete. `SessionView` does this for you, marking a
|
|
54
|
+
tool's preview with `inputPartial: true` until the complete input arrives.
|
|
55
|
+
Claude's streamed `tool_call_started` carries no input, so read the later
|
|
56
|
+
input event before parsing arguments. Calls without a partial stream still
|
|
57
|
+
start with their complete input.
|
|
58
|
+
|
|
40
59
|
`session.deliver(input, { when, origin })` sends input the host produces (a
|
|
41
60
|
subagent's result, a finished job) at the right moment: a new turn when the
|
|
42
61
|
session is idle, so the agent wakes, otherwise steered into the turn or queued
|
|
@@ -168,15 +187,17 @@ See [runtime updates](https://github.com/botiverse/oar/blob/main/docs/spec/updat
|
|
|
168
187
|
`runtime.installPlan()` reports what installing a runtime would run on this
|
|
169
188
|
machine (the vendor's documented installer and the page that documents it)
|
|
170
189
|
or why it would run nothing (`platform`, `requires_privileges`,
|
|
171
|
-
`requires_gui`, `missing_tool
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
190
|
+
`requires_gui`, `missing_tool`; `requires_privileges` and `missing_tool`
|
|
191
|
+
still carry the vendor's `steps` and `source`, for the person to run
|
|
192
|
+
themselves once they have the rights or the tool); `runtime.install()` runs
|
|
193
|
+
it, without a terminal and never with sudo, when `installation()` finds no
|
|
194
|
+
copy, and judges the result by `installation()` afterwards, never by the
|
|
195
|
+
installer's exit code. oar never installs on its own. Claude, Codex, Grok,
|
|
196
|
+
Kimi and OpenCode install through their vendors' macOS and Linux scripts;
|
|
197
|
+
OpenCode declares two release lines in `runtime.installLines` (`v1`, `v2`)
|
|
198
|
+
and takes the host's choice as `line` (oar picks none), and a copy of either
|
|
199
|
+
line is `already_installed`, never replaced. Antigravity's plan is
|
|
200
|
+
`requires_gui`; Pi and Cursor have neither member.
|
|
180
201
|
See [runtime install](https://github.com/botiverse/oar/blob/main/docs/spec/install.md).
|
|
181
202
|
|
|
182
203
|
`runtime.login(installation, interaction)` logs an installation in through
|
|
@@ -11,7 +11,7 @@ import type { UtcInstant } from "./account-usage.js";
|
|
|
11
11
|
* - `billing`: payment or credits.
|
|
12
12
|
* - `model_unavailable`: the selected model cannot be used here (unknown, not entitled, not enabled).
|
|
13
13
|
* - `input_too_large`: the context window or the payload was exceeded.
|
|
14
|
-
* - `invalid_request`: the provider rejected the request itself.
|
|
14
|
+
* - `invalid_request`: the runtime or provider rejected the request itself.
|
|
15
15
|
* - `overloaded`: the provider is temporarily overloaded.
|
|
16
16
|
* - `provider`: another provider-side error (a 5xx).
|
|
17
17
|
* - `runtime_exited`: the runtime process ended before the turn did.
|
|
@@ -10,6 +10,16 @@ export interface InstallUnsupported {
|
|
|
10
10
|
readonly reason: InstallUnsupportedReason;
|
|
11
11
|
/** Plain words for a person: what is missing, or how the vendor installs it instead. */
|
|
12
12
|
readonly detail?: string;
|
|
13
|
+
/**
|
|
14
|
+
* The steps the plan would have had, for a person to run themselves once
|
|
15
|
+
* they have what is missing; oar runs none of them. Present only where oar
|
|
16
|
+
* knows the vendor's step but will not run it here: `requires_privileges`
|
|
17
|
+
* (the person runs it with the rights it needs) and `missing_tool` (after
|
|
18
|
+
* installing the tool). Absent for every other reason.
|
|
19
|
+
*/
|
|
20
|
+
readonly steps?: readonly InstallStep[];
|
|
21
|
+
/** The vendor's page that documents `steps` (the plan's `source`); present with `steps`. */
|
|
22
|
+
readonly source?: string;
|
|
13
23
|
}
|
|
14
24
|
/**
|
|
15
25
|
* One of a runtime's parallel release lines: major versions its vendor ships
|
|
@@ -24,7 +34,7 @@ export interface InstallLine {
|
|
|
24
34
|
}
|
|
25
35
|
/** One command the installer runs, spawned without a terminal and with stdin closed. */
|
|
26
36
|
export interface InstallStep {
|
|
27
|
-
/** The program, then its arguments: exactly what `install()` spawns. */
|
|
37
|
+
/** The program, then its arguments: exactly what `install()` spawns (on an `unsupported` answer, would have spawned). */
|
|
28
38
|
readonly command: readonly string[];
|
|
29
39
|
/**
|
|
30
40
|
* The step as the vendor documents it, plus the installer's own declared
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/contracts/install.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAChC,UAAU,GACV,qBAAqB,GACrB,cAAc,GACd,cAAc,GACd,SAAS,GACT,eAAe,GACf,cAAc,CAAC;AAEnB,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,wFAAwF;IACxF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,wFAAwF;AACxF,MAAM,WAAW,WAAW;IAC1B,
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/contracts/install.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAChC,UAAU,GACV,qBAAqB,GACrB,cAAc,GACd,cAAc,GACd,SAAS,GACT,eAAe,GACf,cAAc,CAAC;AAEnB,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,wFAAwF;IACxF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,wFAAwF;AACxF,MAAM,WAAW,WAAW;IAC1B,yHAAyH;IACzH,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACnB;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;CAC5B,GACD,kBAAkB,CAAC;AAEvB;;;;;GAKG;AACH,MAAM,MAAM,aAAa;AACvB,0IAA0I;AACxI;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAC/H;;;GAGG;GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;AAC9G,uIAAuI;GACrI;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtF,kBAAkB,CAAC;AAEvB,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,2DAA2D;AAC3D,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAEhF;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import type { FailedTurn, FailureClass } from "./failure.js";
|
|
1
2
|
import type { InputImage, InputOrigin } from "./input.js";
|
|
2
3
|
import type { ToolCallProgress, ToolOutputPart } from "./tool-output.js";
|
|
3
|
-
import type { FailedTurn } from "./failure.js";
|
|
4
4
|
import type { TaskEventBody } from "./tasks.js";
|
|
5
5
|
/**
|
|
6
6
|
* The record stream and the events read off it. Three words, three layers:
|
|
@@ -128,15 +128,29 @@ export interface UserMessage {
|
|
|
128
128
|
* merges consecutive pieces for consumers who want blocks.
|
|
129
129
|
*/
|
|
130
130
|
export type RuntimeEventBody = UserMessage
|
|
131
|
-
/** The runtime reports an active turn
|
|
131
|
+
/** The runtime reports an active turn. inputId names the input it started for; absent means unknown. After input_queued, only a matching inputId begins that input’s turn. */
|
|
132
132
|
| {
|
|
133
133
|
readonly kind: "turn_active";
|
|
134
|
+
readonly inputId?: string;
|
|
135
|
+
}
|
|
136
|
+
/** The runtime holds this input and has not started its turn. Only this fact gates input-specific turn attribution; acceptance alone does not. */
|
|
137
|
+
| {
|
|
138
|
+
readonly kind: "input_queued";
|
|
139
|
+
readonly inputId: string;
|
|
134
140
|
}
|
|
135
|
-
/** The runtime discarded or refused an accepted input, established by native evidence.
|
|
141
|
+
/** The runtime discarded or refused an accepted input, established by native evidence. Returns ownership to the caller for resend; never inferred by a view from turn completion. */
|
|
136
142
|
| {
|
|
137
143
|
readonly kind: "input_dropped";
|
|
138
144
|
readonly inputId: string;
|
|
139
|
-
readonly reason: "turn_interrupted"
|
|
145
|
+
readonly reason: "turn_interrupted";
|
|
146
|
+
}
|
|
147
|
+
/** A native refusal's classification and explanation, only when known. An input-scoped wait reads these as a failure, never as a turn_ended fact. */
|
|
148
|
+
| {
|
|
149
|
+
readonly kind: "input_dropped";
|
|
150
|
+
readonly inputId: string;
|
|
151
|
+
readonly reason: "runtime_refused";
|
|
152
|
+
readonly failure?: FailureClass;
|
|
153
|
+
readonly message?: string;
|
|
140
154
|
}
|
|
141
155
|
/** `messageId`: the runtime's id of the assistant message the text is part of (codex `agentMessage` item, claude API message), so two messages of one turn stay apart; absent when it names none (pi, cursor, ACP) and in older records. */
|
|
142
156
|
| {
|
|
@@ -156,11 +170,17 @@ export type RuntimeEventBody = UserMessage
|
|
|
156
170
|
/** Best-effort human-readable invocation detail when the runtime exposes it. */
|
|
157
171
|
readonly input?: string;
|
|
158
172
|
}
|
|
159
|
-
/**
|
|
173
|
+
/** Complete arguments reported after the call started (claude's completed `tool_use`, or ACP's updated `rawInput`). The WHOLE input replaces the earlier input, including streamed fragments; the started record stays as the runtime first said it. */
|
|
160
174
|
| {
|
|
161
175
|
readonly kind: "tool_call_input";
|
|
162
176
|
readonly callId: string;
|
|
163
177
|
readonly input: string;
|
|
178
|
+
}
|
|
179
|
+
/** Append-only argument text, verbatim from the runtime (claude `input_json_delta.partial_json`). May be incomplete JSON; OAR never parses it. `tool_call_input` supplies the complete replacement. */
|
|
180
|
+
| {
|
|
181
|
+
readonly kind: "tool_call_input_delta";
|
|
182
|
+
readonly callId: string;
|
|
183
|
+
readonly delta: string;
|
|
164
184
|
} | {
|
|
165
185
|
readonly kind: "tool_call_ended";
|
|
166
186
|
readonly callId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../../src/contracts/records.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../../src/contracts/records.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,17 @@ export type RunningPhase = "waiting_model" | "thinking" | "responding" | "compac
|
|
|
9
9
|
readonly tool: string;
|
|
10
10
|
readonly callId: string;
|
|
11
11
|
};
|
|
12
|
-
|
|
12
|
+
/** Native queue evidence retained across an unrelated spontaneous turn. */
|
|
13
|
+
interface PendingPrompt {
|
|
14
|
+
readonly inputId: string;
|
|
15
|
+
readonly sinceSeq: number;
|
|
16
|
+
readonly requestId?: string;
|
|
17
|
+
readonly stop?: {
|
|
18
|
+
readonly pendingAbortIds: readonly string[];
|
|
19
|
+
readonly abortedOnExit: boolean;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export type AgentStatus = ({
|
|
13
23
|
readonly kind: "idle";
|
|
14
24
|
readonly lastTurnOutcome?: TurnOutcome;
|
|
15
25
|
} | {
|
|
@@ -18,6 +28,8 @@ export type AgentStatus = {
|
|
|
18
28
|
readonly sinceSeq: number;
|
|
19
29
|
/** The prompt request id when the turn was opened through this Session; absent for adopted turns. */
|
|
20
30
|
readonly requestId?: string;
|
|
31
|
+
/** Input identity of the current prompt, when known. */
|
|
32
|
+
readonly inputId?: string;
|
|
21
33
|
/**
|
|
22
34
|
* Stop evidence for this running turn, retained so incremental reducers
|
|
23
35
|
* can match abort responses and survive a checkpoint. A dispose request
|
|
@@ -31,5 +43,8 @@ export type AgentStatus = {
|
|
|
31
43
|
readonly phase: RunningPhase;
|
|
32
44
|
/** Envelope receivedAt (unix epoch ms) of the latest folded record. */
|
|
33
45
|
readonly lastEventAt: number;
|
|
46
|
+
}) & {
|
|
47
|
+
readonly pendingPrompt?: PendingPrompt;
|
|
34
48
|
};
|
|
49
|
+
export {};
|
|
35
50
|
//# sourceMappingURL=status.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/contracts/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;;;;;GAKG;AAEH,MAAM,MAAM,YAAY,GACpB,eAAe,GACf,UAAU,GACV,YAAY,GACZ,YAAY,GACZ;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,MAAM,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/contracts/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;;;;;GAKG;AAEH,MAAM,MAAM,YAAY,GACpB,eAAe,GACf,UAAU,GACV,YAAY,GACZ,YAAY,GACZ;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,2EAA2E;AAC3E,UAAU,aAAa;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;KAAE,CAAC;CAClG;AAED,MAAM,MAAM,WAAW,GAAG,CACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,WAAW,CAAA;CAAE,GACjE;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,kHAAkH;IAClH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,qGAAqG;IACrG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;QAC5C,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;KACjC,CAAC;IACF,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC,GAAG;IAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAA;CAAE,CAAC"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* What a runtime task is, read from the runtime's own task type: a shell
|
|
3
3
|
* command (claude `local_bash`), a subagent (claude `local_agent` /
|
|
4
|
-
* `remote_agent`, a codex subagent thread), a tool call the runtime moved off
|
|
5
|
-
* the turn (claude `mcp_task`),
|
|
4
|
+
* `remote_agent` / `in_process_teammate`, a codex subagent thread), a tool call the runtime moved off
|
|
5
|
+
* the turn (claude `mcp_task`), a workflow run that coordinates several
|
|
6
|
+
* agents (claude `local_workflow`), or another kind it names in `nativeType`.
|
|
6
7
|
*/
|
|
7
|
-
export type TaskType = "shell" | "agent" | "tool" | "other";
|
|
8
|
+
export type TaskType = "shell" | "agent" | "tool" | "workflow" | "other";
|
|
8
9
|
/** A task's state as the runtime reports it; claude's `killed` reads as `stopped`. */
|
|
9
10
|
export type TaskStatus = "pending" | "running" | "paused" | "completed" | "failed" | "stopped";
|
|
10
11
|
export type TaskEventBody =
|
|
11
12
|
/**
|
|
12
13
|
* The runtime started a task: work it tracks beside the turn that started
|
|
13
14
|
* it (claude `system/task_started`: a background or foreground command or
|
|
14
|
-
* subagent, an MCP call moved to the background; codex `subAgentActivity`
|
|
15
|
+
* subagent, workflow run or an MCP call moved to the background; codex `subAgentActivity`
|
|
15
16
|
* started: a subagent thread). `toolCallId` is the call that started it.
|
|
16
17
|
* A codex subagent is its own session (`childSessionId`); a claude
|
|
17
18
|
* subagent's frames attribute through `agentPath` (the call's id). `ambient`
|
|
@@ -31,7 +32,7 @@ export type TaskEventBody =
|
|
|
31
32
|
readonly background?: boolean;
|
|
32
33
|
readonly ambient?: boolean;
|
|
33
34
|
}
|
|
34
|
-
/** A change the runtime reported for a task (claude `task_updated`, codex `subAgentActivity` interacted). A patch: absent fields are unchanged. */
|
|
35
|
+
/** A change the runtime reported for a task (claude `task_updated` or changed `task_progress.description`, codex `subAgentActivity` interacted). A patch: absent fields are unchanged. */
|
|
35
36
|
| {
|
|
36
37
|
readonly kind: "task_updated";
|
|
37
38
|
readonly taskId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/contracts/tasks.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/contracts/tasks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;AAEzE,sFAAsF;AACtF,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/F,MAAM,MAAM,aAAa;AACvB;;;;;;;;;GASG;AACD;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,gDAAgD;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,wEAAwE;IACxE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AACH,0LAA0L;GACxL;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AACH;;;;;;GAMG;GACD;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC"}
|
|
@@ -16,17 +16,20 @@ export type { AgentStatus, RunningPhase } from "../contracts/session.js";
|
|
|
16
16
|
* delegated sub-agent working is not a stalled root.
|
|
17
17
|
*
|
|
18
18
|
* Transition table:
|
|
19
|
-
* request prompt (toRuntime) → running/waiting_model (
|
|
19
|
+
* request prompt (toRuntime) → running/waiting_model (provisional request-based start)
|
|
20
20
|
* response rejected → that request → idle again (the turn never began)
|
|
21
|
-
* event
|
|
21
|
+
* event input_queued → arm pending input; visible status is unchanged
|
|
22
|
+
* event turn_active → running at its native start; pending inputId must match
|
|
22
23
|
* event reasoning → running/thinking
|
|
23
24
|
* event text_delta → running/responding
|
|
24
25
|
* event tool_call_started → running/{tool, callId}
|
|
25
26
|
* event tool_call_ended → running/waiting_model (the model consumes the result next)
|
|
26
27
|
* event tool_call_progress → running, phase unchanged (the clock moves)
|
|
27
28
|
* event tool_call_input → running, phase unchanged (the clock moves)
|
|
29
|
+
* event tool_call_input_delta → running, phase unchanged (the clock moves)
|
|
28
30
|
* event compaction_started → running/compacting
|
|
29
|
-
* event compaction_ended
|
|
31
|
+
* event compaction_ended → running/waiting_model only if already running; idle stays idle
|
|
32
|
+
* event retry → running/waiting_model
|
|
30
33
|
* event turn_ended → idle{lastTurnOutcome} (the runtime's own completion)
|
|
31
34
|
* accepted abort / request dispose → retain stop evidence for this turn
|
|
32
35
|
* response exited → idle{aborted} after accepted abort / dispose
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-status.d.ts","sourceRoot":"","sources":["../../src/observe/agent-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAkC,MAAM,yBAAyB,CAAC;AAIlH,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEzE
|
|
1
|
+
{"version":3,"file":"agent-status.d.ts","sourceRoot":"","sources":["../../src/observe/agent-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAkC,MAAM,yBAAyB,CAAC;AAIlH,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,eAAO,MAAM,aAAa,EAAE,WAA8B,CAAC;AAE3D,8HAA8H;AAC9H,wBAAgB,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,CAQnG;AAiBD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CA8CrG;AAiFD,iGAAiG;AACjG,wBAAgB,OAAO,CACrB,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMpE"}
|
|
@@ -15,17 +15,20 @@ import { exitTurnOutcome, reduceTurnStop } from "./turn-stop.js";
|
|
|
15
15
|
* delegated sub-agent working is not a stalled root.
|
|
16
16
|
*
|
|
17
17
|
* Transition table:
|
|
18
|
-
* request prompt (toRuntime) → running/waiting_model (
|
|
18
|
+
* request prompt (toRuntime) → running/waiting_model (provisional request-based start)
|
|
19
19
|
* response rejected → that request → idle again (the turn never began)
|
|
20
|
-
* event
|
|
20
|
+
* event input_queued → arm pending input; visible status is unchanged
|
|
21
|
+
* event turn_active → running at its native start; pending inputId must match
|
|
21
22
|
* event reasoning → running/thinking
|
|
22
23
|
* event text_delta → running/responding
|
|
23
24
|
* event tool_call_started → running/{tool, callId}
|
|
24
25
|
* event tool_call_ended → running/waiting_model (the model consumes the result next)
|
|
25
26
|
* event tool_call_progress → running, phase unchanged (the clock moves)
|
|
26
27
|
* event tool_call_input → running, phase unchanged (the clock moves)
|
|
28
|
+
* event tool_call_input_delta → running, phase unchanged (the clock moves)
|
|
27
29
|
* event compaction_started → running/compacting
|
|
28
|
-
* event compaction_ended
|
|
30
|
+
* event compaction_ended → running/waiting_model only if already running; idle stays idle
|
|
31
|
+
* event retry → running/waiting_model
|
|
29
32
|
* event turn_ended → idle{lastTurnOutcome} (the runtime's own completion)
|
|
30
33
|
* accepted abort / request dispose → retain stop evidence for this turn
|
|
31
34
|
* response exited → idle{aborted} after accepted abort / dispose
|
|
@@ -52,6 +55,8 @@ function running(previous, record, phase) {
|
|
|
52
55
|
sinceSeq,
|
|
53
56
|
...(requestId === undefined ? {} : { requestId }),
|
|
54
57
|
...(previous.kind === "running" && previous.stop !== undefined ? { stop: previous.stop } : {}),
|
|
58
|
+
...(previous.kind === "running" && previous.inputId !== undefined ? { inputId: previous.inputId } : {}),
|
|
59
|
+
...(previous.pendingPrompt === undefined ? {} : { pendingPrompt: previous.pendingPrompt }),
|
|
55
60
|
phase,
|
|
56
61
|
lastEventAt: record.receivedAt,
|
|
57
62
|
};
|
|
@@ -66,6 +71,15 @@ export function reduceStatus(previous, record, sessionId) {
|
|
|
66
71
|
// alive, so the clock moves, but the root agent's phase does not.
|
|
67
72
|
return previous.kind === "running" ? { ...previous, lastEventAt: record.receivedAt } : previous;
|
|
68
73
|
}
|
|
74
|
+
if (previous.pendingPrompt !== undefined && (previous.kind === "idle" || previous.inputId === previous.pendingPrompt.inputId
|
|
75
|
+
|| (record.kind === "request" && record.body.kind === "dispose")
|
|
76
|
+
|| (record.kind === "response" && previous.pendingPrompt.stop?.pendingAbortIds.includes(record.requestId) === true))) {
|
|
77
|
+
const { stop: priorStop, ...pendingPrompt } = previous.pendingPrompt;
|
|
78
|
+
const stop = reduceTurnStop(priorStop, record);
|
|
79
|
+
if (stop !== priorStop) {
|
|
80
|
+
previous = { ...previous, pendingPrompt: stop === undefined ? pendingPrompt : { ...pendingPrompt, stop } };
|
|
81
|
+
}
|
|
82
|
+
}
|
|
69
83
|
if (previous.kind === "running") {
|
|
70
84
|
const { stop: priorStop, ...active } = previous;
|
|
71
85
|
const stop = reduceTurnStop(priorStop, record);
|
|
@@ -75,13 +89,16 @@ export function reduceStatus(previous, record, sessionId) {
|
|
|
75
89
|
}
|
|
76
90
|
switch (record.kind) {
|
|
77
91
|
case "request":
|
|
78
|
-
return record.direction === "toRuntime" && record.body.kind === "prompt" && previous.kind === "idle"
|
|
79
|
-
? { kind: "running", sinceSeq: record.seq, requestId: record.id, phase: "waiting_model", lastEventAt: record.receivedAt }
|
|
92
|
+
return record.direction === "toRuntime" && record.body.kind === "prompt" && previous.kind === "idle" && previous.pendingPrompt === undefined
|
|
93
|
+
? { kind: "running", sinceSeq: record.seq, requestId: record.id, ...(record.body.inputId === undefined ? {} : { inputId: record.body.inputId }), phase: "waiting_model", lastEventAt: record.receivedAt }
|
|
80
94
|
: previous;
|
|
81
95
|
case "response":
|
|
82
96
|
if (record.body.kind === "rejected" && previous.kind === "running" && previous.requestId === record.requestId) {
|
|
83
97
|
return { kind: "idle" };
|
|
84
98
|
}
|
|
99
|
+
if (record.body.kind === "exited" && previous.kind === "idle") {
|
|
100
|
+
return { kind: "idle", ...(previous.lastTurnOutcome === undefined ? {} : { lastTurnOutcome: previous.lastTurnOutcome }) };
|
|
101
|
+
}
|
|
85
102
|
if (record.body.kind === "exited" && previous.kind === "running") {
|
|
86
103
|
return { kind: "idle", lastTurnOutcome: exitTurnOutcome(previous.stop) };
|
|
87
104
|
}
|
|
@@ -99,7 +116,20 @@ export function reduceStatus(previous, record, sessionId) {
|
|
|
99
116
|
}
|
|
100
117
|
function reduceEvent(previous, record, event) {
|
|
101
118
|
switch (event.kind) {
|
|
119
|
+
case "input_queued": {
|
|
120
|
+
const own = previous.kind === "running" && previous.inputId === event.inputId;
|
|
121
|
+
const pendingPrompt = { inputId: event.inputId, sinceSeq: own ? previous.sinceSeq : record.seq,
|
|
122
|
+
...(own && previous.requestId !== undefined ? { requestId: previous.requestId } : {}),
|
|
123
|
+
...(own && previous.stop !== undefined ? { stop: previous.stop } : {}) };
|
|
124
|
+
return { ...previous, pendingPrompt, ...(previous.kind === "running" ? { lastEventAt: record.receivedAt } : {}) };
|
|
125
|
+
}
|
|
102
126
|
case "turn_active":
|
|
127
|
+
if (event.inputId !== undefined && previous.pendingPrompt?.inputId === event.inputId) {
|
|
128
|
+
return waitingForPrompt(previous.pendingPrompt, record, false);
|
|
129
|
+
}
|
|
130
|
+
if (previous.pendingPrompt !== undefined && (previous.kind === "idle" || previous.inputId === previous.pendingPrompt.inputId)) {
|
|
131
|
+
return { kind: "running", sinceSeq: record.seq, phase: "waiting_model", lastEventAt: record.receivedAt, pendingPrompt: previous.pendingPrompt };
|
|
132
|
+
}
|
|
103
133
|
return previous.kind === "running" ? { ...previous, lastEventAt: record.receivedAt } : running(previous, record, "waiting_model");
|
|
104
134
|
case "reasoning":
|
|
105
135
|
return running(previous, record, "thinking");
|
|
@@ -108,22 +138,35 @@ function reduceEvent(previous, record, event) {
|
|
|
108
138
|
case "tool_call_started":
|
|
109
139
|
return running(previous, record, { tool: event.tool, callId: event.callId });
|
|
110
140
|
case "tool_call_ended":
|
|
111
|
-
case "compaction_ended":
|
|
112
141
|
case "retry":
|
|
113
142
|
return running(previous, record, "waiting_model");
|
|
143
|
+
case "compaction_ended":
|
|
144
|
+
return previous.kind === "running" ? running(previous, record, "waiting_model") : previous;
|
|
114
145
|
case "compaction_started":
|
|
115
146
|
return running(previous, record, "compacting");
|
|
116
147
|
case "tool_call_progress":
|
|
117
148
|
case "tool_call_input":
|
|
149
|
+
case "tool_call_input_delta":
|
|
118
150
|
return previous.kind === "running" ? { ...previous, lastEventAt: record.receivedAt } : previous;
|
|
119
151
|
case "turn_ended":
|
|
120
|
-
return
|
|
152
|
+
return previous.pendingPrompt === undefined
|
|
153
|
+
? { kind: "idle", lastTurnOutcome: event.outcome }
|
|
154
|
+
: waitingForPrompt(previous.pendingPrompt, record, true);
|
|
121
155
|
case "task_started":
|
|
122
156
|
case "task_updated":
|
|
123
157
|
case "task_ended":
|
|
124
158
|
// Tasks run beside the turn; whether the agent is busy is the turn's fact, but a report is activity.
|
|
125
159
|
return previous.kind === "running" ? { ...previous, lastEventAt: record.receivedAt } : previous;
|
|
126
|
-
case "input_dropped":
|
|
160
|
+
case "input_dropped": {
|
|
161
|
+
if (previous.kind === "running" && previous.inputId === event.inputId) {
|
|
162
|
+
return { kind: "idle" };
|
|
163
|
+
}
|
|
164
|
+
if (previous.pendingPrompt?.inputId !== event.inputId) {
|
|
165
|
+
return previous;
|
|
166
|
+
}
|
|
167
|
+
const { pendingPrompt: _pending, ...status } = previous;
|
|
168
|
+
return status;
|
|
169
|
+
}
|
|
127
170
|
case "app_request_cancelled":
|
|
128
171
|
case "user_message":
|
|
129
172
|
case "usage":
|
|
@@ -134,6 +177,13 @@ function reduceEvent(previous, record, event) {
|
|
|
134
177
|
}
|
|
135
178
|
return previous;
|
|
136
179
|
}
|
|
180
|
+
/** A notification can finish while the accepted host input still owns the slot. */
|
|
181
|
+
function waitingForPrompt(pending, record, keepPending) {
|
|
182
|
+
return { kind: "running", sinceSeq: pending.sinceSeq, inputId: pending.inputId,
|
|
183
|
+
...(pending.requestId === undefined ? {} : { requestId: pending.requestId }),
|
|
184
|
+
...(pending.stop === undefined ? {} : { stop: pending.stop }),
|
|
185
|
+
...(keepPending ? { pendingPrompt: pending } : {}), phase: "waiting_model", lastEventAt: record.receivedAt };
|
|
186
|
+
}
|
|
137
187
|
/**
|
|
138
188
|
* Whether a record of another session id belongs to this session's activity.
|
|
139
189
|
* The stream only ever carries the session's own records and its derived
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-status.js","sourceRoot":"","sources":["../../src/observe/agent-status.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIjE
|
|
1
|
+
{"version":3,"file":"agent-status.js","sourceRoot":"","sources":["../../src/observe/agent-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,12 @@ export interface ConversationInput {
|
|
|
24
24
|
readonly reason?: "turn_interrupted" | "runtime_exited" | "runtime_refused";
|
|
25
25
|
/** Every request that targeted the input, in fold order: delivery attempts and withdraws, each with its observed response. */
|
|
26
26
|
readonly attempts: readonly InputAttempt[];
|
|
27
|
+
/** Native queue/start evidence for this attempt, separate from control acceptance and message echoes; cleared on drop or a new attempt. */
|
|
28
|
+
readonly turn?: {
|
|
29
|
+
readonly state: "queued" | "active";
|
|
30
|
+
readonly seq: number;
|
|
31
|
+
readonly streamId: string;
|
|
32
|
+
};
|
|
27
33
|
/** Native observations; none of these alone proves model consumption. */
|
|
28
34
|
readonly observations: readonly (UserMessage & {
|
|
29
35
|
readonly seq: number;
|
|
@@ -47,10 +53,6 @@ export interface ConversationState {
|
|
|
47
53
|
readonly updates: readonly ConversationUpdate[];
|
|
48
54
|
}
|
|
49
55
|
export declare function initialConversation(): ConversationState;
|
|
50
|
-
/** One ordered stream per streamId. Use a new streamId after runtime resume (seq restarts).
|
|
51
|
-
* Input UUIDs/native message IDs can still connect observations across those streams.
|
|
52
|
-
* Missing IDs never fall back to text matching. Unlinked user messages remain event updates.
|
|
53
|
-
*/
|
|
54
56
|
export declare function reduceConversation(previous: ConversationState, record: RawEvent, streamId?: string): ConversationState;
|
|
55
57
|
export declare function conversationOf(records: readonly RawEvent[]): ConversationState;
|
|
56
58
|
export declare function observeConversation(session: Session, observer: (state: ConversationState) => void, cursor?: Cursor): Unsubscribe;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/observe/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACnG,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAClK,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;IACpD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sIAAsI;IACtI,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACxC,mHAAmH;IACnH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,0HAA0H;IAC1H,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;IAC5F,gLAAgL;IAChL,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;IAC5E,8HAA8H;IAC9H,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,yEAAyE;IACzE,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,WAAW,GAAG;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;CAC5E;AACD,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AACtD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACxD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,wFAAwF;IACxF,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACjD;AACD,wBAAgB,mBAAmB,IAAI,iBAAiB,CAEvD;
|
|
1
|
+
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/observe/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACnG,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAClK,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;IACpD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sIAAsI;IACtI,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACxC,mHAAmH;IACnH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,0HAA0H;IAC1H,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;IAC5F,gLAAgL;IAChL,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;IAC5E,8HAA8H;IAC9H,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,2IAA2I;IAC3I,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzG,yEAAyE;IACzE,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,WAAW,GAAG;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;CAC5E;AACD,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AACtD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACxD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,wFAAwF;IACxF,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACjD;AACD,wBAAgB,mBAAmB,IAAI,iBAAiB,CAEvD;AAyBD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,SAAK,GAAG,iBAAiB,CA2FlH;AACD,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,GAAG,iBAAiB,CAE9E;AACD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAOhI"}
|