@ai0x0/codex-ts 0.6.5 → 0.7.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.
Files changed (85) hide show
  1. package/README.md +22 -3
  2. package/dist/core/src/codex_thread.d.ts +6 -0
  3. package/dist/core/src/codex_thread.d.ts.map +1 -1
  4. package/dist/core/src/codex_thread.js +62 -7
  5. package/dist/core/src/codex_thread.js.map +1 -1
  6. package/dist/core/src/compact.d.ts +12 -2
  7. package/dist/core/src/compact.d.ts.map +1 -1
  8. package/dist/core/src/compact.js +28 -11
  9. package/dist/core/src/compact.js.map +1 -1
  10. package/dist/core/src/index.d.ts +4 -4
  11. package/dist/core/src/index.d.ts.map +1 -1
  12. package/dist/core/src/index.js +3 -3
  13. package/dist/core/src/index.js.map +1 -1
  14. package/dist/core/src/session/retry.d.ts +47 -5
  15. package/dist/core/src/session/retry.d.ts.map +1 -1
  16. package/dist/core/src/session/retry.js +143 -6
  17. package/dist/core/src/session/retry.js.map +1 -1
  18. package/dist/core/src/session/turn.d.ts +6 -0
  19. package/dist/core/src/session/turn.d.ts.map +1 -1
  20. package/dist/core/src/session/turn.js +77 -27
  21. package/dist/core/src/session/turn.js.map +1 -1
  22. package/dist/core/src/skills.d.ts +35 -2
  23. package/dist/core/src/skills.d.ts.map +1 -1
  24. package/dist/core/src/skills.js +146 -41
  25. package/dist/core/src/skills.js.map +1 -1
  26. package/dist/core/src/state/auto_compact_window.d.ts +58 -4
  27. package/dist/core/src/state/auto_compact_window.d.ts.map +1 -1
  28. package/dist/core/src/state/auto_compact_window.js +89 -5
  29. package/dist/core/src/state/auto_compact_window.js.map +1 -1
  30. package/dist/core/src/tools/handlers/request_user_input_spec.d.ts +10 -1
  31. package/dist/core/src/tools/handlers/request_user_input_spec.d.ts.map +1 -1
  32. package/dist/core/src/tools/handlers/request_user_input_spec.js +30 -2
  33. package/dist/core/src/tools/handlers/request_user_input_spec.js.map +1 -1
  34. package/dist/core/src/tools/router.d.ts.map +1 -1
  35. package/dist/core/src/tools/router.js +12 -2
  36. package/dist/core/src/tools/router.js.map +1 -1
  37. package/dist/core/tests/suite/compact.test.js +64 -7
  38. package/dist/core/tests/suite/compact.test.js.map +1 -1
  39. package/dist/core/tests/suite/goal.test.js +18 -2
  40. package/dist/core/tests/suite/goal.test.js.map +1 -1
  41. package/dist/core/tests/suite/image_input.test.js +23 -0
  42. package/dist/core/tests/suite/image_input.test.js.map +1 -1
  43. package/dist/core/tests/suite/reasoning_delta.test.d.ts +11 -0
  44. package/dist/core/tests/suite/reasoning_delta.test.d.ts.map +1 -0
  45. package/dist/core/tests/suite/reasoning_delta.test.js +85 -0
  46. package/dist/core/tests/suite/reasoning_delta.test.js.map +1 -0
  47. package/dist/core/tests/suite/request_user_input.test.js +78 -1
  48. package/dist/core/tests/suite/request_user_input.test.js.map +1 -1
  49. package/dist/core/tests/suite/skills.test.js +30 -2
  50. package/dist/core/tests/suite/skills.test.js.map +1 -1
  51. package/dist/core/tests/suite/stream_failure.test.d.ts +11 -0
  52. package/dist/core/tests/suite/stream_failure.test.d.ts.map +1 -0
  53. package/dist/core/tests/suite/stream_failure.test.js +162 -0
  54. package/dist/core/tests/suite/stream_failure.test.js.map +1 -0
  55. package/dist/core/tests/suite/token_count.test.js +8 -1
  56. package/dist/core/tests/suite/token_count.test.js.map +1 -1
  57. package/dist/ext/goal/src/spec.d.ts.map +1 -1
  58. package/dist/ext/goal/src/spec.js +14 -9
  59. package/dist/ext/goal/src/spec.js.map +1 -1
  60. package/dist/ext/goal/src/tool.d.ts.map +1 -1
  61. package/dist/ext/goal/src/tool.js +39 -15
  62. package/dist/ext/goal/src/tool.js.map +1 -1
  63. package/dist/protocol/src/index.d.ts +2 -1
  64. package/dist/protocol/src/index.d.ts.map +1 -1
  65. package/dist/protocol/src/index.js +1 -1
  66. package/dist/protocol/src/index.js.map +1 -1
  67. package/dist/protocol/src/protocol.d.ts +114 -5
  68. package/dist/protocol/src/protocol.d.ts.map +1 -1
  69. package/dist/protocol/src/protocol.js +13 -1
  70. package/dist/protocol/src/protocol.js.map +1 -1
  71. package/dist/protocol/src/request_user_input.d.ts +15 -0
  72. package/dist/protocol/src/request_user_input.d.ts.map +1 -1
  73. package/dist/protocol/src/user_input.d.ts +11 -0
  74. package/dist/protocol/src/user_input.d.ts.map +1 -1
  75. package/dist/state/src/runtime/goals.d.ts +15 -1
  76. package/dist/state/src/runtime/goals.d.ts.map +1 -1
  77. package/dist/state/src/runtime/goals.js +36 -3
  78. package/dist/state/src/runtime/goals.js.map +1 -1
  79. package/dist/thread-store/src/types.d.ts +5 -0
  80. package/dist/thread-store/src/types.d.ts.map +1 -1
  81. package/dist/tools/src/json_schema.d.ts +2 -0
  82. package/dist/tools/src/json_schema.d.ts.map +1 -1
  83. package/dist/tools/src/json_schema.js +4 -0
  84. package/dist/tools/src/json_schema.js.map +1 -1
  85. package/package.json +1 -1
@@ -6,6 +6,9 @@
6
6
  * Accepts an optional GoalStore for durable persistence (SQLite, IndexedDB…).
7
7
  * Falls back to in-memory state when no store is supplied.
8
8
  */
9
+ import { validateThreadGoalObjective } from "../../../protocol/src/protocol.js";
10
+ /** verbatim from handle_create's ok_or_else (tool.rs:201-205) */
11
+ const CREATE_BLOCKED_ERROR = "cannot create a new goal because this thread has an unfinished goal; complete the existing goal first";
9
12
  export class GoalToolExecutor {
10
13
  /** In-memory snapshot — always current, written through to store when present */
11
14
  snapshot = null;
@@ -17,29 +20,43 @@ export class GoalToolExecutor {
17
20
  }
18
21
  // ─── create_goal ────────────────────────────────────────────────────────────
19
22
  async create(objective, token_budget) {
20
- if (this.snapshot !== null) {
21
- return {
22
- output: JSON.stringify({ error: "A goal already exists. Use update_goal to change its status." }),
23
- event: null,
24
- };
23
+ // mirrors handle_create (tool.rs:200) on top of create_thread_goal
24
+ // (goals.rs:225): an UNFINISHED goal blocks creation, but a COMPLETE one is
25
+ // replaced (counters reset), so a thread can start its next goal.
26
+ if (this.snapshot !== null && this.snapshot.status !== "Complete") {
27
+ return { output: JSON.stringify({ error: CREATE_BLOCKED_ERROR }), event: null };
25
28
  }
26
- if (!objective) {
27
- return { output: JSON.stringify({ error: "objective is required." }), event: null };
29
+ // mirrors handle_create (tool.rs:185-187): trim, then
30
+ // validate_thread_goal_objective (protocol.rs:4055).
31
+ const trimmedObjective = (objective ?? "").trim();
32
+ const objectiveError = validateThreadGoalObjective(trimmedObjective);
33
+ if (objectiveError !== null) {
34
+ return { output: JSON.stringify({ error: objectiveError }), event: null };
28
35
  }
29
36
  if (token_budget !== undefined && (token_budget <= 0 || !Number.isInteger(token_budget))) {
30
37
  return { output: JSON.stringify({ error: "token_budget must be a positive integer." }), event: null };
31
38
  }
32
- const goal = {
33
- objective,
39
+ // mirrors handle_create (tool.rs:190-206): the store's create is
40
+ // authoritative — a null result means it found an unfinished goal.
41
+ if (this.store) {
42
+ const created = await this.store.createThreadGoal(this.threadId, trimmedObjective, token_budget);
43
+ if (created === null) {
44
+ return { output: JSON.stringify({ error: CREATE_BLOCKED_ERROR }), event: null };
45
+ }
46
+ this.snapshot = created;
47
+ return { output: this.formatResponse(), event: this.goalUpdatedEvent() };
48
+ }
49
+ const now = Date.now();
50
+ this.snapshot = {
51
+ thread_id: this.threadId,
52
+ objective: trimmedObjective,
34
53
  status: "Active",
35
54
  ...(token_budget !== undefined ? { token_budget } : {}),
36
55
  tokens_used: 0,
37
56
  time_used_seconds: 0,
57
+ created_at: now,
58
+ updated_at: now,
38
59
  };
39
- if (this.store) {
40
- await this.store.replaceThreadGoal(this.threadId, objective, "Active", token_budget);
41
- }
42
- this.snapshot = goal;
43
60
  return { output: this.formatResponse(), event: this.goalUpdatedEvent() };
44
61
  }
45
62
  // ─── get_goal ───────────────────────────────────────────────────────────────
@@ -64,7 +81,11 @@ export class GoalToolExecutor {
64
81
  if (this.store) {
65
82
  await this.store.updateThreadGoal(this.threadId, { status: goalStatus });
66
83
  }
67
- this.snapshot = { ...this.snapshot, status: goalStatus };
84
+ this.snapshot = {
85
+ ...this.snapshot,
86
+ status: goalStatus,
87
+ updated_at: Date.now(),
88
+ };
68
89
  return { output: this.formatResponse(), event: this.goalUpdatedEvent() };
69
90
  }
70
91
  // ─── Token accounting ───────────────────────────────────────────────────────
@@ -82,6 +103,7 @@ export class GoalToolExecutor {
82
103
  ...this.snapshot,
83
104
  tokens_used: this.snapshot.tokens_used + count,
84
105
  time_used_seconds: this.snapshot.time_used_seconds + elapsedSeconds,
106
+ updated_at: Date.now(),
85
107
  };
86
108
  }
87
109
  currentSnapshot() {
@@ -98,7 +120,9 @@ export class GoalToolExecutor {
98
120
  return JSON.stringify({ goal: this.snapshot, remaining_tokens });
99
121
  }
100
122
  goalUpdatedEvent() {
101
- return this.snapshot ? { goal: { ...this.snapshot } } : null;
123
+ return this.snapshot
124
+ ? { thread_id: this.threadId, goal: { ...this.snapshot } }
125
+ : null;
102
126
  }
103
127
  }
104
128
  //# sourceMappingURL=tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../../ext/goal/src/tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../../ext/goal/src/tool.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,6 @@ export type { UserInput } from "./user_input.js";
2
2
  export type { RequestUserInputQuestionOption, RequestUserInputQuestion, RequestUserInputArgs, RequestUserInputAnswer, RequestUserInputResponse, RequestUserInputEvent, } from "./request_user_input.js";
3
3
  export type { StepStatus, PlanItemArg, UpdatePlanArgs } from "./plan_tool.js";
4
4
  export type { ContextCompactedEvent, WarningEvent } from "./protocol.js";
5
- export type { ThreadGoalStatus, ThreadGoal, TurnStartedEvent, TurnCompleteEvent, AgentMessageEvent, AgentMessageContentDeltaEvent, ThreadGoalUpdatedEvent, ErrorEvent, EventMsg, Event, Op, } from "./protocol.js";
5
+ export { MAX_THREAD_GOAL_OBJECTIVE_CHARS, validateThreadGoalObjective, } from "./protocol.js";
6
+ export type { ThreadGoalStatus, ThreadGoal, TurnStartedEvent, TurnCompleteEvent, TurnAbortedEvent, TurnAbortReason, AgentMessageEvent, AgentMessageContentDeltaEvent, ReasoningContentDeltaEvent, ThreadGoalUpdatedEvent, CodexErrorInfo, ErrorEvent, TokenUsage, TokenUsageInfo, TokenCountEvent, EventMsg, Event, Op, } from "./protocol.js";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../protocol/src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EACV,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC9E,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,6BAA6B,EAC7B,sBAAsB,EACtB,UAAU,EACV,QAAQ,EACR,KAAK,EACL,EAAE,GACH,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../protocol/src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EACV,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC9E,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACtB,cAAc,EACd,UAAU,EACV,UAAU,EACV,cAAc,EACd,eAAe,EACf,QAAQ,EACR,KAAK,EACL,EAAE,GACH,MAAM,eAAe,CAAC"}
@@ -1,2 +1,2 @@
1
- export {};
1
+ export { MAX_THREAD_GOAL_OBJECTIVE_CHARS, validateThreadGoalObjective, } from "./protocol.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../protocol/src/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../protocol/src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,eAAe,CAAC"}
@@ -9,18 +9,58 @@ import type { RequestUserInputEvent, RequestUserInputResponse } from "./request_
9
9
  import type { UpdatePlanArgs } from "./plan_tool.js";
10
10
  export type ThreadGoalStatus = "Active" | "Paused" | "Blocked" | "UsageLimited" | "BudgetLimited" | "Complete";
11
11
  export interface ThreadGoal {
12
+ /** mirrors ThreadGoal.thread_id (protocol.rs:4071) — the owning thread. */
13
+ thread_id: string;
12
14
  objective: string;
13
15
  status: ThreadGoalStatus;
14
16
  token_budget?: number | undefined;
15
17
  tokens_used: number;
16
18
  time_used_seconds: number;
19
+ /** Unix epoch milliseconds — mirrors created_at/updated_at (protocol.rs:4079). */
20
+ created_at: number;
21
+ updated_at: number;
17
22
  }
23
+ /** mirrors MAX_THREAD_GOAL_OBJECTIVE_CHARS (protocol.rs:4053) */
24
+ export declare const MAX_THREAD_GOAL_OBJECTIVE_CHARS = 4000;
25
+ /** mirrors validate_thread_goal_objective (protocol.rs:4055) — returns the
26
+ * error message, or null when the objective is acceptable. */
27
+ export declare function validateThreadGoalObjective(value: string): string | null;
18
28
  export interface TurnStartedEvent {
19
29
  turn_id: string;
20
30
  }
31
+ /**
32
+ * mirrors TurnCompleteEvent (protocol.rs:1986). codex-rs emits this at the END
33
+ * of EVERY turn — successful or not — carrying the terminal error when the turn
34
+ * failed (tasks/mod.rs:803). codex-ts mirrors that: a failing turn now emits
35
+ * BOTH `Error` (unchanged, for hosts that key off it) and a final
36
+ * `TurnComplete` with `error` set, so a host looping until TurnComplete no
37
+ * longer hangs on failure.
38
+ */
21
39
  export interface TurnCompleteEvent {
22
40
  turn_id: string;
23
41
  last_agent_message?: string | undefined;
42
+ /** Terminal error details when the turn completed unsuccessfully. */
43
+ error?: ErrorEvent | undefined;
44
+ /** Unix timestamp (seconds) when the turn started / completed. */
45
+ started_at?: number | undefined;
46
+ completed_at?: number | undefined;
47
+ /** Turn wall-clock duration in milliseconds, when known. */
48
+ duration_ms?: number | undefined;
49
+ }
50
+ /** mirrors TurnAbortReason (protocol.rs:4209). codex-ts only ever produces
51
+ * `interrupted` (Op.Interrupt); the rest exist for shape parity. */
52
+ export type TurnAbortReason = "interrupted" | "replaced" | "review_ended" | "budget_limited";
53
+ /**
54
+ * mirrors TurnAbortedEvent (protocol.rs:4190). codex-rs ends an aborted turn with
55
+ * THIS event instead of TurnComplete (tasks/mod.rs:785-794), so an interrupted
56
+ * turn has its own terminal event rather than a success-shaped one.
57
+ */
58
+ export interface TurnAbortedEvent {
59
+ turn_id?: string | undefined;
60
+ reason: TurnAbortReason;
61
+ started_at?: number | undefined;
62
+ completed_at?: number | undefined;
63
+ duration_ms?: number | undefined;
24
64
  }
25
65
  /** Full assistant text for a completed message */
26
66
  export interface AgentMessageEvent {
@@ -32,19 +72,79 @@ export interface AgentMessageContentDeltaEvent {
32
72
  item_id: string;
33
73
  delta: string;
34
74
  }
35
- /** Streaming reasoning (thinking) chunk — mirrors codex-rs ReasoningContentDeltaEvent.
36
- * Emitted while the model streams its reasoning/thinking, before any final
37
- * output_text. Lets hosts show a "thinking" state only while truly reasoning. */
75
+ /** Streaming reasoning (thinking) chunk — mirrors codex-rs
76
+ * ReasoningContentDeltaEvent (protocol.rs:1873). Emitted while the model streams
77
+ * its reasoning/thinking, before any final output_text. Lets hosts show a
78
+ * "thinking" state only while truly reasoning. */
38
79
  export interface ReasoningContentDeltaEvent {
39
80
  turn_id: string;
81
+ /** Reasoning item this delta belongs to — mirrors item_id (protocol.rs:1876). */
82
+ item_id: string;
40
83
  delta: string;
84
+ /**
85
+ * Which reasoning block the delta belongs to — mirrors summary_index
86
+ * (protocol.rs:1880). Sourced from the SSE `summary_index` for
87
+ * `response.reasoning_summary_text.delta` and from `content_index` for
88
+ * `response.reasoning_text.delta` (codex-api/src/sse/responses.rs), so hosts
89
+ * can keep separate reasoning blocks apart. Defaults to 0, like rs's
90
+ * `#[serde(default)]`.
91
+ */
92
+ summary_index: number;
41
93
  }
42
94
  export interface ThreadGoalUpdatedEvent {
95
+ /** mirrors ThreadGoalUpdatedEvent.thread_id (protocol.rs:4087) */
96
+ thread_id: string;
43
97
  turn_id?: string | undefined;
44
98
  goal: ThreadGoal;
45
99
  }
100
+ /**
101
+ * mirrors codex-rs/protocol/src/protocol.rs CodexErrorInfo (protocol.rs:1758) —
102
+ * the client-facing error classification. codex-ts produces the subset it can
103
+ * actually observe over HTTP/SSE (see codexErrorInfoFor in session/retry.ts);
104
+ * the remaining variants are kept for shape parity with rs.
105
+ */
106
+ export type CodexErrorInfo = {
107
+ type: "context_window_exceeded";
108
+ } | {
109
+ type: "session_budget_exceeded";
110
+ } | {
111
+ type: "usage_limit_exceeded";
112
+ } | {
113
+ type: "server_overloaded";
114
+ } | {
115
+ type: "cyber_policy";
116
+ } | {
117
+ type: "http_connection_failed";
118
+ http_status_code?: number | undefined;
119
+ } | {
120
+ type: "response_stream_connection_failed";
121
+ http_status_code?: number | undefined;
122
+ } | {
123
+ type: "internal_server_error";
124
+ } | {
125
+ type: "unauthorized";
126
+ } | {
127
+ type: "bad_request";
128
+ } | {
129
+ type: "sandbox_error";
130
+ } | {
131
+ type: "response_stream_disconnected";
132
+ http_status_code?: number | undefined;
133
+ } | {
134
+ type: "response_too_many_failed_attempts";
135
+ http_status_code?: number | undefined;
136
+ } | {
137
+ type: "thread_rollback_failed";
138
+ } | {
139
+ type: "other";
140
+ };
46
141
  export interface ErrorEvent {
47
142
  message: string;
143
+ /**
144
+ * mirrors ErrorEvent.codex_error_info (protocol.rs:1925) — lets hosts branch
145
+ * on the error class instead of matching message text.
146
+ */
147
+ codex_error_info?: CodexErrorInfo | undefined;
48
148
  /**
49
149
  * Browser-specific extension — no equivalent in codex-rs/protocol ErrorEvent.
50
150
  * Lets hosts correlate an error with the turn that produced it (e.g. to
@@ -58,15 +158,19 @@ export type ContextCompactedEvent = Record<never, never>;
58
158
  export interface WarningEvent {
59
159
  message: string;
60
160
  }
61
- /** mirrors TokenUsage (protocol.rs:1919) */
161
+ /** mirrors TokenUsage (protocol.rs:2056) */
62
162
  export interface TokenUsage {
63
163
  input_tokens: number;
64
164
  cached_input_tokens: number;
165
+ /** Prompt-cache WRITE tokens — mirrors cache_write_input_tokens
166
+ * (protocol.rs:2063), read from `usage.input_tokens_details.cache_write_tokens`
167
+ * (codex-api/src/sse/responses.rs:137). 0 when the provider omits it. */
168
+ cache_write_input_tokens: number;
65
169
  output_tokens: number;
66
170
  reasoning_output_tokens: number;
67
171
  total_tokens: number;
68
172
  }
69
- /** mirrors TokenUsageInfo (protocol.rs:1933) */
173
+ /** mirrors TokenUsageInfo (protocol.rs:2073) */
70
174
  export interface TokenUsageInfo {
71
175
  total_token_usage: TokenUsage;
72
176
  last_token_usage: TokenUsage;
@@ -85,6 +189,11 @@ export type EventMsg = {
85
189
  } | {
86
190
  type: "TurnComplete";
87
191
  event: TurnCompleteEvent;
192
+ }
193
+ /** mirrors EventMsg::TurnAborted — terminal event for an interrupted turn */
194
+ | {
195
+ type: "TurnAborted";
196
+ event: TurnAbortedEvent;
88
197
  } | {
89
198
  type: "AgentMessage";
90
199
  event: AgentMessageEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../protocol/src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../protocol/src/protocol.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,17 @@
4
4
  * Subset: Op + EventMsg variants needed for goal, request_user_input,
5
5
  * and conversation (turn lifecycle + streaming text).
6
6
  */
7
- export {};
7
+ /** mirrors MAX_THREAD_GOAL_OBJECTIVE_CHARS (protocol.rs:4053) */
8
+ export const MAX_THREAD_GOAL_OBJECTIVE_CHARS = 4_000;
9
+ /** mirrors validate_thread_goal_objective (protocol.rs:4055) — returns the
10
+ * error message, or null when the objective is acceptable. */
11
+ export function validateThreadGoalObjective(value) {
12
+ if (value.length === 0) {
13
+ return "goal objective must not be empty";
14
+ }
15
+ if (Array.from(value).length > MAX_THREAD_GOAL_OBJECTIVE_CHARS) {
16
+ return `goal objective must be at most ${MAX_THREAD_GOAL_OBJECTIVE_CHARS} characters`;
17
+ }
18
+ return null;
19
+ }
8
20
  //# sourceMappingURL=protocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../protocol/src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../protocol/src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgCH,iEAAiE;AACjE,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAErD;+DAC+D;AAC/D,MAAM,UAAU,2BAA2B,CAAC,KAAa;IACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,kCAAkC,CAAC;IAC5C,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,+BAA+B,EAAE,CAAC;QAC/D,OAAO,kCAAkC,+BAA+B,aAAa,CAAC;IACxF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -14,6 +14,15 @@ export interface RequestUserInputQuestion {
14
14
  }
15
15
  export interface RequestUserInputArgs {
16
16
  questions: RequestUserInputQuestion[];
17
+ /**
18
+ * Optional auto-resolution window in milliseconds — mirrors
19
+ * `auto_resolution_ms` (request_user_input.rs:34). Present only when the
20
+ * question is useful but NON-blocking: the host may proceed with the agent's
21
+ * best judgment if the user does not answer within the window. Clamped to
22
+ * [MIN_AUTO_RESOLUTION_MS, MAX_AUTO_RESOLUTION_MS] by
23
+ * normalizeRequestUserInputArgs.
24
+ */
25
+ autoResolutionMs?: number | undefined;
17
26
  }
18
27
  /** Per-question answers: key = question id */
19
28
  export interface RequestUserInputAnswer {
@@ -27,5 +36,11 @@ export interface RequestUserInputEvent {
27
36
  call_id: string;
28
37
  turn_id: string;
29
38
  questions: RequestUserInputQuestion[];
39
+ /**
40
+ * Auto-resolution window forwarded from the tool call — mirrors
41
+ * `RequestUserInputEvent.auto_resolution_ms` (request_user_input.rs:58).
42
+ * Absent means the agent needs an explicit answer before continuing.
43
+ */
44
+ autoResolutionMs?: number | undefined;
30
45
  }
31
46
  //# sourceMappingURL=request_user_input.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request_user_input.d.ts","sourceRoot":"","sources":["../../../protocol/src/request_user_input.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAE1D,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,8BAA8B,EAAE,GAAG,SAAS,CAAC;CACxD;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,wBAAwB,EAAE,CAAC;CACvC;AAED,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CACjD;AAED,4DAA4D;AAC5D,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,wBAAwB,EAAE,CAAC;CACvC"}
1
+ {"version":3,"file":"request_user_input.d.ts","sourceRoot":"","sources":["../../../protocol/src/request_user_input.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAE1D,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,8BAA8B,EAAE,GAAG,SAAS,CAAC;CACxD;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CACjD;AAED,4DAA4D;AAC5D,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC"}
@@ -5,5 +5,16 @@ export type UserInput = {
5
5
  } | {
6
6
  type: "image";
7
7
  image_url: string;
8
+ }
9
+ /**
10
+ * Pre-encoded audio data URI forwarded to the Responses API — mirrors
11
+ * `UserInput::Audio { audio_url }` (user_input.rs:41), serialized as
12
+ * `ContentItem::InputAudio { audio_url }` (models.rs:1778). The rs
13
+ * `LocalAudio`/`LocalImage` variants read from disk, so they have no browser
14
+ * equivalent: a host records audio and passes the data URI here directly.
15
+ */
16
+ | {
17
+ type: "audio";
18
+ audio_url: string;
8
19
  };
9
20
  //# sourceMappingURL=user_input.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user_input.d.ts","sourceRoot":"","sources":["../../../protocol/src/user_input.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAElD,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"user_input.d.ts","sourceRoot":"","sources":["../../../protocol/src/user_input.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAElD,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AACtC;;;;;;GAMG;GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -35,10 +35,24 @@ export declare class GoalStore {
35
35
  private readonly backend;
36
36
  constructor(backend?: GoalBackend);
37
37
  getThreadGoal(threadId: string): Promise<ThreadGoal | null>;
38
- /** Create or replace a thread goal */
38
+ /** Create or replace a thread goal (mirrors replace_thread_goal, goals.rs:158) */
39
39
  replaceThreadGoal(threadId: string, objective: string, status: ThreadGoalStatus, token_budget?: number): Promise<ThreadGoal>;
40
+ /**
41
+ * Create a goal only when the thread has no goal, or its goal is already
42
+ * complete. mirrors create_thread_goal (goals.rs:225): upstream changed the
43
+ * `ON CONFLICT(thread_id) DO NOTHING` to `DO UPDATE … WHERE status =
44
+ * 'complete'`, so a finished goal is replaced (usage counters reset to 0)
45
+ * while an UNFINISHED goal still blocks creation. Returns null when blocked.
46
+ */
47
+ createThreadGoal(threadId: string, objective: string, token_budget?: number): Promise<ThreadGoal | null>;
40
48
  /** Apply a partial update to an existing goal */
41
49
  updateThreadGoal(threadId: string, update: GoalUpdate): Promise<GoalAccountingOutcome>;
50
+ /**
51
+ * Delete the thread's goal and return what was removed (null when there was
52
+ * none). mirrors delete_thread_goal (goals.rs:472), which upstream changed
53
+ * from `bool` to the deleted row so callers can report/emit it.
54
+ */
55
+ deleteThreadGoal(threadId: string): Promise<ThreadGoal | null>;
42
56
  /**
43
57
  * Record token and time usage against the active goal budget.
44
58
  * Mirrors the accounting path in GoalStore::account_tokens().
@@ -1 +1 @@
1
- {"version":3,"file":"goals.d.ts","sourceRoot":"","sources":["../../../../state/src/runtime/goals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAItF,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC5D,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAID,qBAAa,mBAAoB,YAAW,WAAW;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IAEjD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAI3D,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxD;AAID,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1C;AAID,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAI1C,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAE1B,OAAO,GAAE,WAAuC;IAItD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIjE,sCAAsC;IAChC,iBAAiB,CACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,gBAAgB,EACxB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,UAAU,CAAC;IAYtB,iDAAiD;IAC3C,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,qBAAqB,CAAC;IAkBjC;;;OAGG;IACG,aAAa,CACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,qBAAqB,CAAC;CA6BlC"}
1
+ {"version":3,"file":"goals.d.ts","sourceRoot":"","sources":["../../../../state/src/runtime/goals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAItF,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC5D,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAID,qBAAa,mBAAoB,YAAW,WAAW;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IAEjD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAI3D,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxD;AAID,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1C;AAID,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAI1C,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAE1B,OAAO,GAAE,WAAuC;IAItD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIjE,kFAAkF;IAC5E,iBAAiB,CACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,gBAAgB,EACxB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,UAAU,CAAC;IAgBtB;;;;;;OAMG;IACG,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAQ7B,iDAAiD;IAC3C,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,qBAAqB,CAAC;IAmBjC;;;;OAIG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IASpE;;;OAGG;IACG,aAAa,CACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,qBAAqB,CAAC;CA8BlC"}
@@ -30,21 +30,39 @@ export class GoalStore {
30
30
  async getThreadGoal(threadId) {
31
31
  return this.backend.getThreadGoal(threadId);
32
32
  }
33
- /** Create or replace a thread goal */
33
+ /** Create or replace a thread goal (mirrors replace_thread_goal, goals.rs:158) */
34
34
  async replaceThreadGoal(threadId, objective, status, token_budget) {
35
+ const now = Date.now();
35
36
  const goal = {
37
+ thread_id: threadId,
36
38
  objective,
37
39
  status,
38
40
  ...(token_budget !== undefined ? { token_budget } : {}),
39
41
  tokens_used: 0,
40
42
  time_used_seconds: 0,
43
+ created_at: now,
44
+ updated_at: now,
41
45
  };
42
46
  await this.backend.saveThreadGoal(threadId, goal);
43
47
  return goal;
44
48
  }
49
+ /**
50
+ * Create a goal only when the thread has no goal, or its goal is already
51
+ * complete. mirrors create_thread_goal (goals.rs:225): upstream changed the
52
+ * `ON CONFLICT(thread_id) DO NOTHING` to `DO UPDATE … WHERE status =
53
+ * 'complete'`, so a finished goal is replaced (usage counters reset to 0)
54
+ * while an UNFINISHED goal still blocks creation. Returns null when blocked.
55
+ */
56
+ async createThreadGoal(threadId, objective, token_budget) {
57
+ const existing = await this.getThreadGoal(threadId);
58
+ if (existing !== null && existing.status !== "Complete") {
59
+ return null;
60
+ }
61
+ return this.replaceThreadGoal(threadId, objective, "Active", token_budget);
62
+ }
45
63
  /** Apply a partial update to an existing goal */
46
64
  async updateThreadGoal(threadId, update) {
47
- const existing = await this.backend.getThreadGoal(threadId);
65
+ const existing = await this.getThreadGoal(threadId);
48
66
  if (existing === null) {
49
67
  return { kind: "Unchanged", goal: null };
50
68
  }
@@ -56,16 +74,30 @@ export class GoalStore {
56
74
  ? {}
57
75
  : { token_budget: update.token_budget }
58
76
  : {}),
77
+ updated_at: Date.now(),
59
78
  };
60
79
  await this.backend.saveThreadGoal(threadId, updated);
61
80
  return { kind: "Updated", goal: updated };
62
81
  }
82
+ /**
83
+ * Delete the thread's goal and return what was removed (null when there was
84
+ * none). mirrors delete_thread_goal (goals.rs:472), which upstream changed
85
+ * from `bool` to the deleted row so callers can report/emit it.
86
+ */
87
+ async deleteThreadGoal(threadId) {
88
+ const existing = await this.getThreadGoal(threadId);
89
+ if (existing === null) {
90
+ return null;
91
+ }
92
+ await this.backend.deleteThreadGoal(threadId);
93
+ return existing;
94
+ }
63
95
  /**
64
96
  * Record token and time usage against the active goal budget.
65
97
  * Mirrors the accounting path in GoalStore::account_tokens().
66
98
  */
67
99
  async accountTokens(threadId, tokens, elapsedSeconds) {
68
- const existing = await this.backend.getThreadGoal(threadId);
100
+ const existing = await this.getThreadGoal(threadId);
69
101
  if (existing === null || existing.status !== "Active") {
70
102
  return { kind: "Unchanged", goal: existing };
71
103
  }
@@ -82,6 +114,7 @@ export class GoalStore {
82
114
  tokens_used,
83
115
  time_used_seconds,
84
116
  status,
117
+ updated_at: Date.now(),
85
118
  };
86
119
  await this.backend.saveThreadGoal(threadId, updated);
87
120
  const changed = status !== existing.status || tokens_used !== existing.tokens_used;
@@ -1 +1 @@
1
- {"version":3,"file":"goals.js","sourceRoot":"","sources":["../../../../state/src/runtime/goals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"goals.js","sourceRoot":"","sources":["../../../../state/src/runtime/goals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,kFAAkF;AAElF,MAAM,OAAO,mBAAmB;IACb,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IAEvD,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAgB,EAAE,IAAgB;QACrD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QACrC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;CACF;AAeD,iFAAiF;AAEjF,MAAM,OAAO,SAAS;IACH,OAAO,CAAc;IAEtC,YAAY,UAAuB,IAAI,mBAAmB,EAAE;QAC1D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,iBAAiB,CACrB,QAAgB,EAChB,SAAiB,EACjB,MAAwB,EACxB,YAAqB;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,GAAe;YACvB,SAAS,EAAE,QAAQ;YACnB,SAAS;YACT,MAAM;YACN,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,WAAW,EAAE,CAAC;YACd,iBAAiB,EAAE,CAAC;YACpB,UAAU,EAAE,GAAG;YACf,UAAU,EAAE,GAAG;SAChB,CAAC;QACF,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB,CACpB,QAAgB,EAChB,SAAiB,EACjB,YAAqB;QAErB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC7E,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,gBAAgB,CACpB,QAAgB,EAChB,MAAkB;QAElB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC3C,CAAC;QACD,MAAM,OAAO,GAAe;YAC1B,GAAG,QAAQ;YACX,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS;gBACnC,CAAC,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI;oBAC5B,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE;gBACzC,CAAC,CAAC,EAAE,CAAC;YACP,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;SACvB,CAAC;QACF,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC9C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CACjB,QAAgB,EAChB,MAAc,EACd,cAAsB;QAEtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC/C,CAAC;QACD,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC;QAClD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,GAAG,cAAc,CAAC;QACtE,IAAI,MAAM,GAAqB,QAAQ,CAAC,MAAM,CAAC;QAE/C,mCAAmC;QACnC,IACE,QAAQ,CAAC,YAAY,KAAK,SAAS;YACnC,WAAW,IAAI,QAAQ,CAAC,YAAY,EACpC,CAAC;YACD,MAAM,GAAG,cAAc,CAAC;QAC1B,CAAC;QAED,MAAM,OAAO,GAAe;YAC1B,GAAG,QAAQ;YACX,WAAW;YACX,iBAAiB;YACjB,MAAM;YACN,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;SACvB,CAAC;QACF,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,WAAW,KAAK,QAAQ,CAAC,WAAW,CAAC;QACnF,OAAO,OAAO;YACZ,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;YACpC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3C,CAAC;CACF"}
@@ -13,6 +13,11 @@ export type UserContentPart = {
13
13
  type: "input_image";
14
14
  image_url: string;
15
15
  detail?: ImageDetail;
16
+ }
17
+ /** mirrors ContentItem::InputAudio (models.rs:723) — a base64 data URI. */
18
+ | {
19
+ type: "input_audio";
20
+ audio_url: string;
16
21
  };
17
22
  export type ConversationItem = {
18
23
  type: "message";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../thread-store/src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAgB/D,0DAA0D;AAC1D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;AAE/D,2EAA2E;AAC3E,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAErE,MAAM,MAAM,gBAAgB,GACxB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAAC;CACrC,GACD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAQtE,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAA;CAAE,CAAC;AAIxC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAID,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,mEAAmE;IACnE,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAC3C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../thread-store/src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAgB/D,0DAA0D;AAC1D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;AAE/D,2EAA2E;AAC3E,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE;AAClE,2EAA2E;GACzE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GACxB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAAC;CACrC,GACD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAQtE,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAA;CAAE,CAAC;AAIxC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAID,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,mEAAmE;IACnE,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAC3C"}
@@ -11,6 +11,8 @@ export interface JsonSchema {
11
11
  export declare function object(properties: Record<string, JsonSchema>, required?: string[], additionalProperties?: boolean): JsonSchema;
12
12
  export declare function string(description?: string): JsonSchema;
13
13
  export declare function integer(description?: string): JsonSchema;
14
+ /** mirrors JsonSchema::number (json_schema.rs JsonSchemaPrimitiveType::Number) */
15
+ export declare function number(description?: string): JsonSchema;
14
16
  export declare function stringEnum(values: string[], description?: string): JsonSchema;
15
17
  export declare function array(items: JsonSchema, description?: string): JsonSchema;
16
18
  //# sourceMappingURL=json_schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"json_schema.d.ts","sourceRoot":"","sources":["../../../tools/src/json_schema.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAChC,oBAAoB,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IACxD,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;CAC9B;AAED,wBAAgB,MAAM,CACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACtC,QAAQ,CAAC,EAAE,MAAM,EAAE,EACnB,oBAAoB,CAAC,EAAE,OAAO,GAC7B,UAAU,CAOZ;AAED,wBAAgB,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAEvD;AAED,wBAAgB,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAExD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAM7E;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAEzE"}
1
+ {"version":3,"file":"json_schema.d.ts","sourceRoot":"","sources":["../../../tools/src/json_schema.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAChC,oBAAoB,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IACxD,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;CAC9B;AAED,wBAAgB,MAAM,CACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACtC,QAAQ,CAAC,EAAE,MAAM,EAAE,EACnB,oBAAoB,CAAC,EAAE,OAAO,GAC7B,UAAU,CAOZ;AAED,wBAAgB,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAEvD;AAED,wBAAgB,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAExD;AAED,kFAAkF;AAClF,wBAAgB,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAEvD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAM7E;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAEzE"}
@@ -13,6 +13,10 @@ export function string(description) {
13
13
  export function integer(description) {
14
14
  return { type: "integer", ...(description ? { description } : {}) };
15
15
  }
16
+ /** mirrors JsonSchema::number (json_schema.rs JsonSchemaPrimitiveType::Number) */
17
+ export function number(description) {
18
+ return { type: "number", ...(description ? { description } : {}) };
19
+ }
16
20
  export function stringEnum(values, description) {
17
21
  return {
18
22
  type: "string",