@botiverse/oar 0.0.11 → 0.1.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.
Files changed (159) hide show
  1. package/README.md +2 -2
  2. package/dist/contracts/model-catalog.d.ts +1 -1
  3. package/dist/contracts/model-catalog.js +1 -1
  4. package/dist/contracts/provider-auth.d.ts +2 -2
  5. package/dist/contracts/provider-auth.js +2 -2
  6. package/dist/contracts/records.d.ts +214 -0
  7. package/dist/contracts/records.d.ts.map +1 -0
  8. package/dist/contracts/records.js +8 -0
  9. package/dist/contracts/records.js.map +1 -0
  10. package/dist/contracts/session.d.ts +93 -144
  11. package/dist/contracts/session.d.ts.map +1 -1
  12. package/dist/index.d.ts +6 -3
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +3 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/observe/agent-status.d.ts +32 -18
  17. package/dist/observe/agent-status.d.ts.map +1 -1
  18. package/dist/observe/agent-status.js +66 -14
  19. package/dist/observe/agent-status.js.map +1 -1
  20. package/dist/observe/aggregate-events.d.ts +7 -6
  21. package/dist/observe/aggregate-events.d.ts.map +1 -1
  22. package/dist/observe/aggregate-events.js +38 -28
  23. package/dist/observe/aggregate-events.js.map +1 -1
  24. package/dist/observe/index.d.ts +4 -1
  25. package/dist/observe/index.d.ts.map +1 -1
  26. package/dist/observe/index.js +3 -1
  27. package/dist/observe/index.js.map +1 -1
  28. package/dist/observe/observe-agent.d.ts +4 -4
  29. package/dist/observe/observe-agent.d.ts.map +1 -1
  30. package/dist/observe/observe-agent.js +3 -3
  31. package/dist/observe/observe-agent.js.map +1 -1
  32. package/dist/observe/stall-observer.d.ts +7 -6
  33. package/dist/observe/stall-observer.d.ts.map +1 -1
  34. package/dist/observe/stall-observer.js +6 -5
  35. package/dist/observe/stall-observer.js.map +1 -1
  36. package/dist/observe/tool-activity.d.ts +2 -2
  37. package/dist/observe/tool-activity.d.ts.map +1 -1
  38. package/dist/observe/tool-activity.js +1 -1
  39. package/dist/observe/tool-activity.js.map +1 -1
  40. package/dist/observe/turns.d.ts +37 -0
  41. package/dist/observe/turns.d.ts.map +1 -0
  42. package/dist/observe/turns.js +70 -0
  43. package/dist/observe/turns.js.map +1 -0
  44. package/dist/observe/usage.d.ts +15 -0
  45. package/dist/observe/usage.d.ts.map +1 -0
  46. package/dist/observe/usage.js +94 -0
  47. package/dist/observe/usage.js.map +1 -0
  48. package/dist/runtimes/claude/account-usage.js +1 -1
  49. package/dist/runtimes/claude/context-usage.d.ts +1 -1
  50. package/dist/runtimes/claude/context-usage.js +1 -1
  51. package/dist/runtimes/claude/projection.d.ts +40 -27
  52. package/dist/runtimes/claude/projection.d.ts.map +1 -1
  53. package/dist/runtimes/claude/projection.js +110 -23
  54. package/dist/runtimes/claude/projection.js.map +1 -1
  55. package/dist/runtimes/claude/session.d.ts.map +1 -1
  56. package/dist/runtimes/claude/session.js +120 -87
  57. package/dist/runtimes/claude/session.js.map +1 -1
  58. package/dist/runtimes/codex/app-server-client.d.ts +38 -3
  59. package/dist/runtimes/codex/app-server-client.d.ts.map +1 -1
  60. package/dist/runtimes/codex/app-server-client.js +62 -15
  61. package/dist/runtimes/codex/app-server-client.js.map +1 -1
  62. package/dist/runtimes/codex/projection.d.ts +12 -12
  63. package/dist/runtimes/codex/projection.d.ts.map +1 -1
  64. package/dist/runtimes/codex/projection.js +111 -40
  65. package/dist/runtimes/codex/projection.js.map +1 -1
  66. package/dist/runtimes/codex/rpc-control.d.ts +31 -0
  67. package/dist/runtimes/codex/rpc-control.d.ts.map +1 -0
  68. package/dist/runtimes/codex/rpc-control.js +51 -0
  69. package/dist/runtimes/codex/rpc-control.js.map +1 -0
  70. package/dist/runtimes/codex/session.d.ts.map +1 -1
  71. package/dist/runtimes/codex/session.js +199 -149
  72. package/dist/runtimes/codex/session.js.map +1 -1
  73. package/dist/runtimes/grok/session.d.ts +37 -1
  74. package/dist/runtimes/grok/session.d.ts.map +1 -1
  75. package/dist/runtimes/grok/session.js +74 -0
  76. package/dist/runtimes/grok/session.js.map +1 -1
  77. package/dist/runtimes/kimi/session.d.ts.map +1 -1
  78. package/dist/runtimes/kimi/session.js +5 -0
  79. package/dist/runtimes/kimi/session.js.map +1 -1
  80. package/dist/runtimes/pi/auth.d.ts.map +1 -1
  81. package/dist/runtimes/pi/auth.js +6 -1
  82. package/dist/runtimes/pi/auth.js.map +1 -1
  83. package/dist/runtimes/pi/catalog.d.ts.map +1 -1
  84. package/dist/runtimes/pi/catalog.js +6 -1
  85. package/dist/runtimes/pi/catalog.js.map +1 -1
  86. package/dist/runtimes/pi/http.d.ts +34 -0
  87. package/dist/runtimes/pi/http.d.ts.map +1 -0
  88. package/dist/runtimes/pi/http.js +95 -0
  89. package/dist/runtimes/pi/http.js.map +1 -0
  90. package/dist/runtimes/pi/list-models.d.ts.map +1 -1
  91. package/dist/runtimes/pi/list-models.js +10 -3
  92. package/dist/runtimes/pi/list-models.js.map +1 -1
  93. package/dist/runtimes/pi/open.d.ts +32 -0
  94. package/dist/runtimes/pi/open.d.ts.map +1 -0
  95. package/dist/runtimes/pi/open.js +106 -0
  96. package/dist/runtimes/pi/open.js.map +1 -0
  97. package/dist/runtimes/pi/projection.d.ts +27 -25
  98. package/dist/runtimes/pi/projection.d.ts.map +1 -1
  99. package/dist/runtimes/pi/projection.js +86 -50
  100. package/dist/runtimes/pi/projection.js.map +1 -1
  101. package/dist/runtimes/pi/session.d.ts +1 -22
  102. package/dist/runtimes/pi/session.d.ts.map +1 -1
  103. package/dist/runtimes/pi/session.js +179 -184
  104. package/dist/runtimes/pi/session.js.map +1 -1
  105. package/dist/shared/acp/client-app.d.ts +23 -0
  106. package/dist/shared/acp/client-app.d.ts.map +1 -0
  107. package/dist/shared/acp/client-app.js +55 -0
  108. package/dist/shared/acp/client-app.js.map +1 -0
  109. package/dist/shared/acp/model.d.ts +3 -17
  110. package/dist/shared/acp/model.d.ts.map +1 -1
  111. package/dist/shared/acp/model.js +3 -14
  112. package/dist/shared/acp/model.js.map +1 -1
  113. package/dist/shared/acp/profile.d.ts +32 -7
  114. package/dist/shared/acp/profile.d.ts.map +1 -1
  115. package/dist/shared/acp/profile.js +17 -8
  116. package/dist/shared/acp/profile.js.map +1 -1
  117. package/dist/shared/acp/projection.d.ts +16 -8
  118. package/dist/shared/acp/projection.d.ts.map +1 -1
  119. package/dist/shared/acp/projection.js +59 -32
  120. package/dist/shared/acp/projection.js.map +1 -1
  121. package/dist/shared/acp/records.d.ts +46 -0
  122. package/dist/shared/acp/records.d.ts.map +1 -0
  123. package/dist/shared/acp/records.js +125 -0
  124. package/dist/shared/acp/records.js.map +1 -0
  125. package/dist/shared/acp/session.d.ts.map +1 -1
  126. package/dist/shared/acp/session.js +98 -224
  127. package/dist/shared/acp/session.js.map +1 -1
  128. package/dist/shared/acp/terminal.d.ts +1 -3
  129. package/dist/shared/acp/terminal.d.ts.map +1 -1
  130. package/dist/shared/acp/terminal.js +1 -21
  131. package/dist/shared/acp/terminal.js.map +1 -1
  132. package/dist/shared/acp/turns.d.ts +45 -0
  133. package/dist/shared/acp/turns.d.ts.map +1 -0
  134. package/dist/shared/acp/turns.js +160 -0
  135. package/dist/shared/acp/turns.js.map +1 -0
  136. package/dist/shared/acp/usage-wait.d.ts +6 -6
  137. package/dist/shared/acp/usage-wait.d.ts.map +1 -1
  138. package/dist/shared/acp/usage-wait.js +2 -2
  139. package/dist/shared/acp/usage-wait.js.map +1 -1
  140. package/dist/shared/failure-class.d.ts +1 -1
  141. package/dist/shared/failure-class.js +2 -2
  142. package/dist/shared/failure-class.js.map +1 -1
  143. package/dist/shared/seal-session.d.ts +5 -3
  144. package/dist/shared/seal-session.d.ts.map +1 -1
  145. package/dist/shared/seal-session.js +24 -16
  146. package/dist/shared/seal-session.js.map +1 -1
  147. package/dist/shared/session-kernel.d.ts +68 -18
  148. package/dist/shared/session-kernel.d.ts.map +1 -1
  149. package/dist/shared/session-kernel.js +82 -42
  150. package/dist/shared/session-kernel.js.map +1 -1
  151. package/dist/voyage.d.ts +4 -7
  152. package/dist/voyage.d.ts.map +1 -1
  153. package/dist/voyage.js +14 -19
  154. package/dist/voyage.js.map +1 -1
  155. package/package.json +4 -3
  156. package/dist/runtimes/codex/context-usage.d.ts +0 -10
  157. package/dist/runtimes/codex/context-usage.d.ts.map +0 -1
  158. package/dist/runtimes/codex/context-usage.js +0 -16
  159. package/dist/runtimes/codex/context-usage.js.map +0 -1
@@ -1,20 +1,20 @@
1
1
  import { classifyFailure } from "../../shared/failure-class.js";
2
+ import { asNumber, asRecord } from "../../shared/json.js";
2
3
  export const initialPiProjection = {
3
- inTurn: false,
4
- adopted: false,
5
4
  abortRequested: false,
6
5
  reasoningHadText: false,
7
6
  providerError: undefined,
7
+ tokens: { input: 0, output: 0 },
8
8
  };
9
- /** Control plane → state: a prompt opens a non-adopted turn, resetting per-turn accumulators. */
10
- export function piPrompted() {
11
- return { ...initialPiProjection, inTurn: true };
9
+ /** Control plane → state: a prompt (or a drained queue input) resets the per-run accumulators; the running token total stays. */
10
+ export function piPrompted(state) {
11
+ return { ...initialPiProjection, tokens: state.tokens };
12
12
  }
13
13
  export function piAbortRequested(state) {
14
14
  return { ...state, abortRequested: true };
15
15
  }
16
- /** The outcome for a prompt-initiated turn (the fold settles adopted turns itself). */
17
- export function piSettledOutcome(state) {
16
+ /** The outcome of the run pi's own `agent_settled` closes, read through the control intent and provider errors folded so far. */
17
+ export function piRunOutcome(state) {
18
18
  if (state.abortRequested) {
19
19
  return { kind: "aborted" };
20
20
  }
@@ -23,26 +23,35 @@ export function piSettledOutcome(state) {
23
23
  }
24
24
  return { kind: "completed" };
25
25
  }
26
- const drop = (state) => ({ state, commands: [] });
27
- const emit = (state, body) => ({ state, commands: [{ kind: "emit", body }] });
26
+ function jsonDetail(value) {
27
+ if (value === undefined) {
28
+ return undefined;
29
+ }
30
+ try {
31
+ return JSON.stringify(value);
32
+ }
33
+ catch {
34
+ return undefined;
35
+ }
36
+ }
28
37
  function foldMessageUpdate(state, inner) {
29
38
  switch (inner.type) {
30
39
  case "text_delta":
31
- return emit(state, { kind: "text_delta", text: inner.delta });
40
+ return { state, views: [{ kind: "text_delta", text: inner.delta }] };
32
41
  case "thinking_delta":
33
42
  return inner.delta.length > 0
34
- ? emit({ ...state, reasoningHadText: true }, { kind: "reasoning", content: { kind: "text", text: inner.delta } })
35
- : drop(state);
43
+ ? { state: { ...state, reasoningHadText: true }, views: [{ kind: "reasoning", content: { kind: "text", text: inner.delta } }] }
44
+ : { state, views: [] };
36
45
  case "error":
37
- // pi's prompt() RESOLVES even when the provider errored — the failure
46
+ // pi's prompt() RESOLVES even when the provider errored; the failure
38
47
  // only surfaces here (pinned by the pi vendor 400 test).
39
- return drop({ ...state, providerError: inner.error.errorMessage ?? inner.reason });
48
+ return { state: { ...state, providerError: inner.error.errorMessage ?? inner.reason }, views: [] };
40
49
  case "thinking_start":
41
- return drop({ ...state, reasoningHadText: false });
50
+ return { state: { ...state, reasoningHadText: false }, views: [] };
42
51
  case "thinking_end":
43
- return state.reasoningHadText ? drop(state) : emit(state, { kind: "reasoning", content: { kind: "empty" } });
44
- // Explicitly dropped: block boundaries and toolcall framing carry no v1
45
- // turn event (toolcalls arrive via the outer tool_execution_* events).
52
+ return state.reasoningHadText ? { state, views: [] } : { state, views: [{ kind: "reasoning", content: { kind: "empty" } }] };
53
+ // Block boundaries and toolcall framing carry no view (toolcalls arrive
54
+ // via the outer tool_execution_* events); the frame itself is recorded.
46
55
  case "start":
47
56
  case "done":
48
57
  case "text_start":
@@ -50,48 +59,67 @@ function foldMessageUpdate(state, inner) {
50
59
  case "toolcall_start":
51
60
  case "toolcall_delta":
52
61
  case "toolcall_end":
53
- return drop(state);
62
+ return { state, views: [] };
54
63
  }
55
- return drop(state);
64
+ return { state, views: [] };
56
65
  }
57
- /** Fold one pi SDK event into the next state plus commands. */
58
- export function foldPiEvent(state, event) {
59
- if (event.type === "agent_start") {
60
- // A run pi starts that we did not prompt (a drained followUp) becomes an
61
- // adopted turn, settled here on agent_end.
62
- return state.inTurn
63
- ? drop(state)
64
- : { state: { ...piPrompted(), adopted: true }, commands: [{ kind: "begin" }] };
65
- }
66
- if (!state.inTurn) {
67
- return drop(state);
66
+ /** Cumulative per-session tokens after an assistant message's own usage. */
67
+ function accumulate(state, message) {
68
+ const record = asRecord(message);
69
+ const usage = asRecord(record?.usage);
70
+ if (record?.role !== "assistant" || usage === null) {
71
+ return { state, views: [] };
68
72
  }
73
+ const tokens = {
74
+ input: state.tokens.input + (asNumber(usage.input) ?? 0) + (asNumber(usage.cacheRead) ?? 0) + (asNumber(usage.cacheWrite) ?? 0),
75
+ output: state.tokens.output + (asNumber(usage.output) ?? 0),
76
+ };
77
+ return { state: { ...state, tokens }, views: [{ kind: "usage", usage: { tokens } }] };
78
+ }
79
+ function step(state, event, extra) {
69
80
  switch (event.type) {
70
- case "agent_end":
71
- // Adopted turns settle here; prompt-initiated turns are settled by the
72
- // adapter's prompt promise (which reads piSettledOutcome).
73
- return state.adopted
74
- ? { state: initialPiProjection, commands: [{ kind: "settle", outcome: piSettledOutcome(state) }] }
75
- : { state: { ...state, inTurn: false }, commands: [] };
81
+ case "agent_settled": {
82
+ // pi's run-settled signal (agent-session.js _emitAgentSettled: it
83
+ // flips _isAgentRunActive off) is the turn's end, NOT agent_end, which
84
+ // precedes threshold compaction and auto-retries; between the two pi
85
+ // rejects new prompts ("Cannot submit a prompt while compaction is in
86
+ // progress"). The context read here is therefore post-compaction.
87
+ const views = [{ kind: "turn_ended", outcome: piRunOutcome(state) }];
88
+ if (extra.context !== undefined && extra.context !== null) {
89
+ views.push({ kind: "usage", usage: { context: extra.context } });
90
+ }
91
+ return { state: piPrompted(state), views };
92
+ }
76
93
  case "message_update":
77
94
  return foldMessageUpdate(state, event.assistantMessageEvent);
78
- case "tool_execution_start":
79
- return emit(state, { kind: "tool_call_started", callId: event.toolCallId, tool: event.toolName });
80
- case "tool_execution_end":
81
- return emit(state, { kind: "tool_call_ended", callId: event.toolCallId });
95
+ case "message_end":
96
+ return accumulate(state, event.message);
97
+ case "tool_execution_start": {
98
+ const input = jsonDetail(event.args);
99
+ return { state, views: [input === undefined
100
+ ? { kind: "tool_call_started", callId: event.toolCallId, tool: event.toolName }
101
+ : { kind: "tool_call_started", callId: event.toolCallId, tool: event.toolName, input }] };
102
+ }
103
+ case "tool_execution_end": {
104
+ const output = jsonDetail(event.result);
105
+ const result = typeof event.isError === "boolean" ? (event.isError ? "failed" : "ok") : undefined;
106
+ return { state, views: [output === undefined
107
+ ? { kind: "tool_call_ended", callId: event.toolCallId, ...(result === undefined ? {} : { result }) }
108
+ : { kind: "tool_call_ended", callId: event.toolCallId, output, ...(result === undefined ? {} : { result }) }] };
109
+ }
82
110
  case "turn_end":
83
111
  // A provider failure surfaces only as stopReason "error" on the turn's
84
112
  // final assistant message (pinned by the pi vendor 400 test).
85
113
  return event.message.role === "assistant" && event.message.stopReason === "error"
86
- ? drop({ ...state, providerError: event.message.errorMessage ?? "provider error" })
87
- : drop(state);
88
- // Explicitly dropped: session-scoped events with no turn mapping in v1 (an
89
- // exhaustive switch makes a NEW pi event type a compile error, forcing a
90
- // conscious mapped-or-dropped decision on each future addition).
91
- case "agent_settled":
114
+ ? { state: { ...state, providerError: event.message.errorMessage ?? "provider error" }, views: [] }
115
+ : { state, views: [] };
116
+ // Recorded with no view (an exhaustive switch makes a NEW pi event type a
117
+ // compile error, forcing a conscious viewed-or-plain decision on each
118
+ // future addition).
119
+ case "agent_start":
120
+ case "agent_end":
92
121
  case "turn_start":
93
122
  case "message_start":
94
- case "message_end":
95
123
  case "tool_execution_update":
96
124
  case "bash_execution_update":
97
125
  case "compaction_start":
@@ -105,8 +133,16 @@ export function foldPiEvent(state, event) {
105
133
  case "summarization_retry_scheduled":
106
134
  case "summarization_retry_attempt_start":
107
135
  case "summarization_retry_finished":
108
- return drop(state);
136
+ return { state, views: [] };
109
137
  }
110
- return drop(state);
138
+ return { state, views: [] };
139
+ }
140
+ /** Fold one pi SDK event into the next state plus the one event command it produces. */
141
+ export function foldPiEvent(state, event, extra = {}) {
142
+ const next = step(state, event, extra);
143
+ return {
144
+ state: next.state,
145
+ commands: [{ kind: "event", body: { type: event.type, native: event, views: next.views } }],
146
+ };
111
147
  }
112
148
  //# sourceMappingURL=projection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/runtimes/pi/projection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/runtimes/pi/projection.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,4 @@
1
- import type { CreateAgentSessionOptions } from "@earendil-works/pi-coding-agent";
2
1
  import type { StartSession } from "../../contracts/session.js";
3
- /**
4
- * The bash tool that carries SessionOptions.env into the agent's spawned
5
- * processes: same builtin bash, plus a spawnHook overlaying the env. pi's
6
- * defineTool keeps the definition assignable to customTools, where it
7
- * replaces the builtin by name. Exported for direct unit verification.
8
- */
9
- export declare function piEnvBashTool(cwd: string, overlay: Readonly<Record<string, string>>): Promise<NonNullable<CreateAgentSessionOptions["customTools"]>[number]>;
10
- /** The slice of pi's AgentSession the model read-back depends on; structural for tests. */
11
- export interface PiModelSource {
12
- readonly model: {
13
- readonly provider: string;
14
- readonly id: string;
15
- } | undefined;
16
- }
17
- /**
18
- * pi's `AgentSession.model` (SDK 0.84.2 agent-session.d.ts: "Current model
19
- * (may be undefined if not yet selected)") is the runtime-owned current
20
- * model, updated by setModel/model switching; spelled `provider/id` like the
21
- * list-models projection and pi's own `--model` flag.
22
- */
23
- export declare function piEffectiveModel(session: PiModelSource): string | null;
2
+ export { piEffectiveModel, piEnvBashTool, type PiModelSource } from "./open.js";
24
3
  export declare const piSession: StartSession;
25
4
  //# sourceMappingURL=session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/pi/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkC,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AACjH,OAAO,KAAK,EAA2B,YAAY,EAAQ,MAAM,4BAA4B,CAAC;AAuB9F;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACxC,OAAO,CAAC,WAAW,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAKxE;AAED,2FAA2F;AAC3F,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAChF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAGtE;AAoED,eAAO,MAAM,SAAS,EAAE,YAwIvB,CAAC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/pi/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACwE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAarI,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAYhF,eAAO,MAAM,SAAS,EAAE,YA0NvB,CAAC"}