@absolutejs/ai 0.2.10 → 0.3.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 (44) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/changelog.json +368 -331
  3. package/dist/ai/client/index.js +1 -3
  4. package/dist/ai/client/index.js.map +2 -2
  5. package/dist/ai/index.js +7690 -7681
  6. package/dist/ai/index.js.map +20 -20
  7. package/dist/ai/models/index.js +1 -71
  8. package/dist/ai/models/index.js.map +2 -2
  9. package/dist/ai/providers/anthropic.js +29 -31
  10. package/dist/ai/providers/anthropic.js.map +3 -3
  11. package/dist/ai/providers/gemini.js +15 -17
  12. package/dist/ai/providers/gemini.js.map +3 -3
  13. package/dist/ai/providers/ollama.js +3 -5
  14. package/dist/ai/providers/ollama.js.map +2 -2
  15. package/dist/ai/providers/openai.js +47 -52
  16. package/dist/ai/providers/openai.js.map +4 -4
  17. package/dist/ai/providers/openaiCompatible.js +65 -70
  18. package/dist/ai/providers/openaiCompatible.js.map +4 -4
  19. package/dist/ai/providers/openaiResponses.js +27 -32
  20. package/dist/ai/providers/openaiResponses.js.map +4 -4
  21. package/dist/ai/providers/openrouter.js +131 -136
  22. package/dist/ai/providers/openrouter.js.map +4 -4
  23. package/dist/ai/providers/openrouterSDK.js +1 -3
  24. package/dist/ai/providers/openrouterSDK.js.map +2 -2
  25. package/dist/ai/research.js +2 -4
  26. package/dist/ai/research.js.map +2 -2
  27. package/dist/ai/tools/index.js +55 -58
  28. package/dist/ai/tools/index.js.map +5 -5
  29. package/dist/ai/tools/untrusted.js +1 -3
  30. package/dist/ai/tools/untrusted.js.map +2 -2
  31. package/dist/ai/ui/index.js +2 -72
  32. package/dist/ai/ui/index.js.map +2 -2
  33. package/dist/angular/ai/index.js +1 -1
  34. package/dist/angular/ai/index.js.map +1 -1
  35. package/dist/react/ai/index.js +4 -74
  36. package/dist/react/ai/index.js.map +2 -2
  37. package/dist/src/ai/generateAI.d.ts +5 -1
  38. package/dist/src/ai/inputCapacity.d.ts +2 -2
  39. package/dist/src/ai/streamAIWithTools.d.ts +8 -2
  40. package/dist/svelte/ai/index.js +1 -71
  41. package/dist/svelte/ai/index.js.map +2 -2
  42. package/dist/vue/ai/index.js +1 -71
  43. package/dist/vue/ai/index.js.map +2 -2
  44. package/package.json +5 -1
package/changelog.json CHANGED
@@ -1,333 +1,370 @@
1
1
  {
2
- "contract": 1,
3
- "name": "@absolutejs/ai",
4
- "releases": [
5
- {
6
- "changes": [
7
- {
8
- "kind": "changed",
9
- "summary": "Add optional HTTP status and request ID to AIInputError and preserve bounded provider failure reasons across capacity checks and bundled provider entry points, so billing and rate-limit failures remain diagnosable.",
10
- "symbols": [
11
- "AIInputError",
12
- "inspectAIInput",
13
- "anthropic",
14
- "gemini",
15
- "openaiResponses"
16
- ]
17
- }
18
- ],
19
- "date": "2026-09-27",
20
- "version": "0.2.10"
21
- },
22
- {
23
- "changes": [
24
- {
25
- "kind": "added",
26
- "summary": "Add model tiers and a shared `recommendModel` for automatic model choice (fast for quick questions and edits, frontier for deep analysis, balanced otherwise), and feature exactly one frontier model per provider",
27
- "symbols": [
28
- "recommendModel",
29
- "recommendTier",
30
- "ModelTier",
31
- "ModelDirectoryEntry",
32
- "MODEL_DIRECTORY"
33
- ]
34
- }
35
- ],
36
- "date": "2026-09-25",
37
- "version": "0.2.9"
38
- },
39
- {
40
- "changes": [
41
- {
42
- "kind": "added",
43
- "summary": "Add a shared model directory for pickers (names, descriptions, featured and legacy flags) with `listModels`, and refresh Anthropic metadata from the Models API: add Claude Opus 5.5, Fable 5, Opus 4.8, Opus 4.7, Opus 4.5 and Sonnet 4.5, record 1M context for Opus 4.6 and Sonnet 4.6, and add their reasoning effort levels",
44
- "symbols": [
45
- "MODEL_DIRECTORY",
46
- "MODEL_PROVIDERS",
47
- "listModels",
48
- "findModel",
49
- "modelKey",
50
- "ListedModel",
51
- "ModelDirectoryEntry",
52
- "MODEL_METADATA",
53
- "MODEL_REASONING"
54
- ]
55
- }
56
- ],
57
- "date": "2026-09-25",
58
- "version": "0.2.8"
59
- },
60
- {
61
- "changes": [
62
- {
63
- "kind": "added",
64
- "summary": "Add injected evidence research orchestration and per-request transport retry limits for host-owned accounting",
65
- "symbols": [
66
- "GenerateAIOptions",
67
- "GenerateObjectAIOptions",
68
- "AIProviderStreamParams"
69
- ]
70
- }
71
- ],
72
- "date": "2026-09-24",
73
- "version": "0.2.7"
74
- },
75
- {
76
- "changes": [
77
- {
78
- "kind": "fixed",
79
- "summary": "Count supported Anthropic caller input when hosted tools cannot be pre-counted, preserving full generation requests and exposing honest count scope",
80
- "symbols": [
81
- "anthropic",
82
- "inspectAIInput",
83
- "AIInputCapacity",
84
- "AIProviderConfig",
85
- "createAIProviderRouter"
86
- ]
87
- }
88
- ],
89
- "date": "2026-09-20",
90
- "version": "0.2.6"
91
- },
92
- {
93
- "changes": [
94
- {
95
- "kind": "fixed",
96
- "summary": "Allow SSE tool loops to reread changed files without silently completing; retain turn, time and token limits",
97
- "symbols": [
98
- "streamAIToSSE"
99
- ]
100
- }
101
- ],
102
- "date": "2026-09-20",
103
- "version": "0.2.5"
104
- },
105
- {
106
- "changes": [
107
- {
108
- "kind": "added",
109
- "summary": "Add reviewed per-model reasoning controls, provider translations, and compatible thinking stream replay.",
110
- "symbols": [
111
- "MODEL_REASONING",
112
- "REASONING_EFFORTS",
113
- "getModelReasoning",
114
- "isReasoningSelection",
115
- "supportsReasoningSelection",
116
- "reasoningSelectionLabel",
117
- "ModelReasoning",
118
- "ReasoningSelection",
119
- "ReasoningEffort"
120
- ]
121
- }
122
- ],
123
- "date": "2026-09-20",
124
- "version": "0.2.4"
125
- },
126
- {
127
- "changes": [
128
- {
129
- "kind": "internal",
130
- "summary": "Republish the capability catalog using npm packaging after the 0.2.2 registry artifact remained unavailable"
131
- }
132
- ],
133
- "date": "2026-09-20",
134
- "version": "0.2.3"
135
- },
136
- {
137
- "changes": [
138
- {
139
- "kind": "added",
140
- "summary": "Add browser-safe typed model capability metadata with verified provider sources, separate input and output modalities, context windows, and capability descriptions",
141
- "symbols": [
142
- "ModelModality",
143
- "ModelFeature",
144
- "ModelMetadata",
145
- "ModelCapability",
146
- "MODEL_CAPABILITY_DESCRIPTIONS",
147
- "MODEL_METADATA",
148
- "modelCapabilities",
149
- "getModelMetadata"
150
- ]
151
- }
152
- ],
153
- "date": "2026-09-20",
154
- "version": "0.2.2"
155
- },
156
- {
157
- "changes": [
158
- {
159
- "kind": "fixed",
160
- "summary": "Preserve provider output reservations and context-error recognition when routing models",
161
- "symbols": [
162
- "createAIProviderRouter"
163
- ]
164
- }
165
- ],
166
- "date": "2026-09-16",
167
- "version": "0.2.1"
168
- },
169
- {
170
- "changes": [
171
- {
172
- "kind": "added",
173
- "summary": "Expose each tool-loop turn response metadata so consumers can price the actual served processing tier",
174
- "symbols": [
175
- "streamAIWithTools",
176
- "StreamAIWithToolsEvent"
177
- ]
178
- },
179
- {
180
- "kind": "added",
181
- "summary": "Route exact model IDs to the same provider for token counting, capacity checks, preparation and generation",
182
- "symbols": [
183
- "createAIProviderRouter"
184
- ]
185
- }
186
- ],
187
- "date": "2026-09-16",
188
- "version": "0.2.0"
189
- },
190
- {
191
- "changes": [
192
- {
193
- "kind": "fixed",
194
- "summary": "Exclude OpenAI cache-write tokens from ordinary input so cache-aware billing never charges the same tokens twice",
195
- "symbols": [
196
- "openai",
197
- "openaiResponses"
198
- ]
199
- }
200
- ],
201
- "date": "2026-09-16",
202
- "version": "0.1.3"
203
- },
204
- {
205
- "changes": [
206
- {
207
- "kind": "fixed",
208
- "summary": "Preserve every parallel OpenAI tool result and subsequent conversation turn without overwriting expanded messages",
209
- "symbols": [
210
- "openai"
211
- ]
212
- }
213
- ],
214
- "date": "2026-09-16",
215
- "version": "0.1.2"
216
- },
217
- {
218
- "changes": [
219
- {
220
- "kind": "added",
221
- "summary": "Allow a separate preparation model with its own verified capacity while preserving the final answer model and invalidating notes when the preparation model changes",
222
- "symbols": [
223
- "PrepareAITextInputOptions",
224
- "prepareAITextInput",
225
- "prepareAITextInputStep"
226
- ]
227
- },
228
- {
229
- "kind": "fixed",
230
- "summary": "Fill preparation sections with bounded tokenizer-checked refinement, avoid duplicate final counting, and honor cancellation before generation",
231
- "symbols": [
232
- "prepareAITextInput",
233
- "prepareAITextInputStep"
234
- ]
235
- }
236
- ],
237
- "date": "2026-09-16",
238
- "version": "0.1.1"
239
- },
240
- {
241
- "changes": [
242
- {
243
- "kind": "changed",
244
- "summary": "Validate model capacity by default across generation, structured output, WebSocket and SSE entry points; reserve token headroom and support one protocol-preserving context recovery attempt. Providers without counting capability now fail explicitly; contextPolicy: false opts into raw behavior.",
245
- "symbols": [
246
- "generateAI",
247
- "generateAIWithTools",
248
- "generateObjectAI",
249
- "streamAI",
250
- "streamAIToSSE",
251
- "streamAIWithTools",
252
- "inspectAIContext",
253
- "createAIStoredToolResultRecovery",
254
- "StreamAIWithToolsOptions",
255
- "GenerateAIOptions",
256
- "GenerateAIResult",
257
- "GenerateObjectAIOptions",
258
- "AIProviderConfig",
259
- "StreamAIOptions",
260
- "AIChatPluginConfig"
261
- ]
262
- },
263
- {
264
- "kind": "added",
265
- "summary": "Add one-section text preparation steps for durable workers, with explicit pending/ready outcomes and checkpoint persistence before yielding",
266
- "symbols": [
267
- "prepareAITextInputStep",
268
- "AITextPreparationStep"
269
- ]
270
- },
271
- {
272
- "kind": "added",
273
- "summary": "Budget final retrieval instructions and tools before compacting text, with matching checkpoint invalidation",
274
- "symbols": [
275
- "PrepareAITextInputOptions",
276
- "prepareAITextInput"
277
- ]
278
- },
279
- {
280
- "kind": "fixed",
281
- "summary": "Preserve conversation origin across long-text preparation sections, distinguish source facts from embedded instructions, reserve more of the available context for factual notes, and invalidate checkpoints from the previous preparation policy",
282
- "symbols": [
283
- "prepareAITextInput",
284
- "prepareAITextInputStep"
285
- ]
286
- }
287
- ],
288
- "date": "2026-09-16",
289
- "version": "0.1.0"
290
- },
291
- {
292
- "changes": [
293
- {
294
- "kind": "added",
295
- "summary": "Keep compacted text useful with read-only original-source search, checkpointed ingestion, and capacity-checked terminal tool loops",
296
- "symbols": [
297
- "createAITextSource",
298
- "prepareAITextInput",
299
- "PrepareAITextInputOptions",
300
- "streamAIWithTools",
301
- "StreamAIWithToolsOptions"
302
- ]
303
- }
304
- ],
305
- "date": "2026-09-15",
306
- "version": "0.0.58"
307
- },
308
- {
309
- "changes": [
310
- {
311
- "kind": "internal",
312
- "summary": "Regenerate the OpenRouter client declaration with equivalent reordered response union types",
313
- "symbols": [
314
- "createOpenRouterClient"
315
- ]
316
- },
317
- {
318
- "kind": "added",
319
- "summary": "Add model-specific token capacity, optional provider capacity configuration, and recoverable long-text preparation",
320
- "symbols": [
321
- "inspectAIInput",
322
- "prepareAITextInput",
323
- "AIProviderConfig",
324
- "OpenAIConfig",
325
- "OpenAIResponsesConfig"
326
- ]
327
- }
328
- ],
329
- "date": "2026-09-15",
330
- "version": "0.0.57"
331
- }
332
- ]
2
+ "contract": 1,
3
+ "name": "@absolutejs/ai",
4
+ "releases": [
5
+ {
6
+ "changes": [
7
+ {
8
+ "kind": "fixed",
9
+ "summary": "OpenAI Responses: send image input as a plain image_url string, PDFs as flat input_file with file_data, and linked PDFs as file_url, which the API previously rejected",
10
+ "symbols": [
11
+ "openaiResponses"
12
+ ]
13
+ },
14
+ {
15
+ "kind": "added",
16
+ "summary": "Return generated images from the tool loops: generateAI and generateAIWithTools results carry finished images, and streamAIWithTools yields image events (previews and finished) with the finished ones in its summary",
17
+ "symbols": [
18
+ "GenerateAIResult",
19
+ "GenerateAIWithToolsResult",
20
+ "StreamAIWithToolsEvent",
21
+ "StreamAIWithToolsSummary"
22
+ ]
23
+ }
24
+ ],
25
+ "date": "2026-09-28",
26
+ "version": "0.3.0"
27
+ },
28
+ {
29
+ "changes": [
30
+ {
31
+ "kind": "changed",
32
+ "summary": "Name capacity HTTP metadata providerStatus instead of status so application HTTP frameworks do not treat an upstream billing/auth 4xx as a caller error and skip server-error capture. Preserve provider diagnostics and request IDs. Supersedes 0.2.10.",
33
+ "symbols": [
34
+ "AIInputError",
35
+ "inspectAIInput"
36
+ ]
37
+ }
38
+ ],
39
+ "date": "2026-09-27",
40
+ "version": "0.2.11"
41
+ },
42
+ {
43
+ "changes": [
44
+ {
45
+ "kind": "changed",
46
+ "summary": "Add optional HTTP status and request ID to AIInputError and preserve bounded provider failure reasons across capacity checks and bundled provider entry points, so billing and rate-limit failures remain diagnosable.",
47
+ "symbols": [
48
+ "AIInputError",
49
+ "inspectAIInput",
50
+ "anthropic",
51
+ "gemini",
52
+ "openaiResponses"
53
+ ]
54
+ }
55
+ ],
56
+ "date": "2026-09-27",
57
+ "version": "0.2.10"
58
+ },
59
+ {
60
+ "changes": [
61
+ {
62
+ "kind": "added",
63
+ "summary": "Add model tiers and a shared `recommendModel` for automatic model choice (fast for quick questions and edits, frontier for deep analysis, balanced otherwise), and feature exactly one frontier model per provider",
64
+ "symbols": [
65
+ "recommendModel",
66
+ "recommendTier",
67
+ "ModelTier",
68
+ "ModelDirectoryEntry",
69
+ "MODEL_DIRECTORY"
70
+ ]
71
+ }
72
+ ],
73
+ "date": "2026-09-25",
74
+ "version": "0.2.9"
75
+ },
76
+ {
77
+ "changes": [
78
+ {
79
+ "kind": "added",
80
+ "summary": "Add a shared model directory for pickers (names, descriptions, featured and legacy flags) with `listModels`, and refresh Anthropic metadata from the Models API: add Claude Opus 5.5, Fable 5, Opus 4.8, Opus 4.7, Opus 4.5 and Sonnet 4.5, record 1M context for Opus 4.6 and Sonnet 4.6, and add their reasoning effort levels",
81
+ "symbols": [
82
+ "MODEL_DIRECTORY",
83
+ "MODEL_PROVIDERS",
84
+ "listModels",
85
+ "findModel",
86
+ "modelKey",
87
+ "ListedModel",
88
+ "ModelDirectoryEntry",
89
+ "MODEL_METADATA",
90
+ "MODEL_REASONING"
91
+ ]
92
+ }
93
+ ],
94
+ "date": "2026-09-25",
95
+ "version": "0.2.8"
96
+ },
97
+ {
98
+ "changes": [
99
+ {
100
+ "kind": "added",
101
+ "summary": "Add injected evidence research orchestration and per-request transport retry limits for host-owned accounting",
102
+ "symbols": [
103
+ "GenerateAIOptions",
104
+ "GenerateObjectAIOptions",
105
+ "AIProviderStreamParams"
106
+ ]
107
+ }
108
+ ],
109
+ "date": "2026-09-24",
110
+ "version": "0.2.7"
111
+ },
112
+ {
113
+ "changes": [
114
+ {
115
+ "kind": "fixed",
116
+ "summary": "Count supported Anthropic caller input when hosted tools cannot be pre-counted, preserving full generation requests and exposing honest count scope",
117
+ "symbols": [
118
+ "anthropic",
119
+ "inspectAIInput",
120
+ "AIInputCapacity",
121
+ "AIProviderConfig",
122
+ "createAIProviderRouter"
123
+ ]
124
+ }
125
+ ],
126
+ "date": "2026-09-20",
127
+ "version": "0.2.6"
128
+ },
129
+ {
130
+ "changes": [
131
+ {
132
+ "kind": "fixed",
133
+ "summary": "Allow SSE tool loops to reread changed files without silently completing; retain turn, time and token limits",
134
+ "symbols": [
135
+ "streamAIToSSE"
136
+ ]
137
+ }
138
+ ],
139
+ "date": "2026-09-20",
140
+ "version": "0.2.5"
141
+ },
142
+ {
143
+ "changes": [
144
+ {
145
+ "kind": "added",
146
+ "summary": "Add reviewed per-model reasoning controls, provider translations, and compatible thinking stream replay.",
147
+ "symbols": [
148
+ "MODEL_REASONING",
149
+ "REASONING_EFFORTS",
150
+ "getModelReasoning",
151
+ "isReasoningSelection",
152
+ "supportsReasoningSelection",
153
+ "reasoningSelectionLabel",
154
+ "ModelReasoning",
155
+ "ReasoningSelection",
156
+ "ReasoningEffort"
157
+ ]
158
+ }
159
+ ],
160
+ "date": "2026-09-20",
161
+ "version": "0.2.4"
162
+ },
163
+ {
164
+ "changes": [
165
+ {
166
+ "kind": "internal",
167
+ "summary": "Republish the capability catalog using npm packaging after the 0.2.2 registry artifact remained unavailable"
168
+ }
169
+ ],
170
+ "date": "2026-09-20",
171
+ "version": "0.2.3"
172
+ },
173
+ {
174
+ "changes": [
175
+ {
176
+ "kind": "added",
177
+ "summary": "Add browser-safe typed model capability metadata with verified provider sources, separate input and output modalities, context windows, and capability descriptions",
178
+ "symbols": [
179
+ "ModelModality",
180
+ "ModelFeature",
181
+ "ModelMetadata",
182
+ "ModelCapability",
183
+ "MODEL_CAPABILITY_DESCRIPTIONS",
184
+ "MODEL_METADATA",
185
+ "modelCapabilities",
186
+ "getModelMetadata"
187
+ ]
188
+ }
189
+ ],
190
+ "date": "2026-09-20",
191
+ "version": "0.2.2"
192
+ },
193
+ {
194
+ "changes": [
195
+ {
196
+ "kind": "fixed",
197
+ "summary": "Preserve provider output reservations and context-error recognition when routing models",
198
+ "symbols": [
199
+ "createAIProviderRouter"
200
+ ]
201
+ }
202
+ ],
203
+ "date": "2026-09-16",
204
+ "version": "0.2.1"
205
+ },
206
+ {
207
+ "changes": [
208
+ {
209
+ "kind": "added",
210
+ "summary": "Expose each tool-loop turn response metadata so consumers can price the actual served processing tier",
211
+ "symbols": [
212
+ "streamAIWithTools",
213
+ "StreamAIWithToolsEvent"
214
+ ]
215
+ },
216
+ {
217
+ "kind": "added",
218
+ "summary": "Route exact model IDs to the same provider for token counting, capacity checks, preparation and generation",
219
+ "symbols": [
220
+ "createAIProviderRouter"
221
+ ]
222
+ }
223
+ ],
224
+ "date": "2026-09-16",
225
+ "version": "0.2.0"
226
+ },
227
+ {
228
+ "changes": [
229
+ {
230
+ "kind": "fixed",
231
+ "summary": "Exclude OpenAI cache-write tokens from ordinary input so cache-aware billing never charges the same tokens twice",
232
+ "symbols": [
233
+ "openai",
234
+ "openaiResponses"
235
+ ]
236
+ }
237
+ ],
238
+ "date": "2026-09-16",
239
+ "version": "0.1.3"
240
+ },
241
+ {
242
+ "changes": [
243
+ {
244
+ "kind": "fixed",
245
+ "summary": "Preserve every parallel OpenAI tool result and subsequent conversation turn without overwriting expanded messages",
246
+ "symbols": [
247
+ "openai"
248
+ ]
249
+ }
250
+ ],
251
+ "date": "2026-09-16",
252
+ "version": "0.1.2"
253
+ },
254
+ {
255
+ "changes": [
256
+ {
257
+ "kind": "added",
258
+ "summary": "Allow a separate preparation model with its own verified capacity while preserving the final answer model and invalidating notes when the preparation model changes",
259
+ "symbols": [
260
+ "PrepareAITextInputOptions",
261
+ "prepareAITextInput",
262
+ "prepareAITextInputStep"
263
+ ]
264
+ },
265
+ {
266
+ "kind": "fixed",
267
+ "summary": "Fill preparation sections with bounded tokenizer-checked refinement, avoid duplicate final counting, and honor cancellation before generation",
268
+ "symbols": [
269
+ "prepareAITextInput",
270
+ "prepareAITextInputStep"
271
+ ]
272
+ }
273
+ ],
274
+ "date": "2026-09-16",
275
+ "version": "0.1.1"
276
+ },
277
+ {
278
+ "changes": [
279
+ {
280
+ "kind": "changed",
281
+ "summary": "Validate model capacity by default across generation, structured output, WebSocket and SSE entry points; reserve token headroom and support one protocol-preserving context recovery attempt. Providers without counting capability now fail explicitly; contextPolicy: false opts into raw behavior.",
282
+ "symbols": [
283
+ "generateAI",
284
+ "generateAIWithTools",
285
+ "generateObjectAI",
286
+ "streamAI",
287
+ "streamAIToSSE",
288
+ "streamAIWithTools",
289
+ "inspectAIContext",
290
+ "createAIStoredToolResultRecovery",
291
+ "StreamAIWithToolsOptions",
292
+ "GenerateAIOptions",
293
+ "GenerateAIResult",
294
+ "GenerateObjectAIOptions",
295
+ "AIProviderConfig",
296
+ "StreamAIOptions",
297
+ "AIChatPluginConfig"
298
+ ]
299
+ },
300
+ {
301
+ "kind": "added",
302
+ "summary": "Add one-section text preparation steps for durable workers, with explicit pending/ready outcomes and checkpoint persistence before yielding",
303
+ "symbols": [
304
+ "prepareAITextInputStep",
305
+ "AITextPreparationStep"
306
+ ]
307
+ },
308
+ {
309
+ "kind": "added",
310
+ "summary": "Budget final retrieval instructions and tools before compacting text, with matching checkpoint invalidation",
311
+ "symbols": [
312
+ "PrepareAITextInputOptions",
313
+ "prepareAITextInput"
314
+ ]
315
+ },
316
+ {
317
+ "kind": "fixed",
318
+ "summary": "Preserve conversation origin across long-text preparation sections, distinguish source facts from embedded instructions, reserve more of the available context for factual notes, and invalidate checkpoints from the previous preparation policy",
319
+ "symbols": [
320
+ "prepareAITextInput",
321
+ "prepareAITextInputStep"
322
+ ]
323
+ }
324
+ ],
325
+ "date": "2026-09-16",
326
+ "version": "0.1.0"
327
+ },
328
+ {
329
+ "changes": [
330
+ {
331
+ "kind": "added",
332
+ "summary": "Keep compacted text useful with read-only original-source search, checkpointed ingestion, and capacity-checked terminal tool loops",
333
+ "symbols": [
334
+ "createAITextSource",
335
+ "prepareAITextInput",
336
+ "PrepareAITextInputOptions",
337
+ "streamAIWithTools",
338
+ "StreamAIWithToolsOptions"
339
+ ]
340
+ }
341
+ ],
342
+ "date": "2026-09-15",
343
+ "version": "0.0.58"
344
+ },
345
+ {
346
+ "changes": [
347
+ {
348
+ "kind": "internal",
349
+ "summary": "Regenerate the OpenRouter client declaration with equivalent reordered response union types",
350
+ "symbols": [
351
+ "createOpenRouterClient"
352
+ ]
353
+ },
354
+ {
355
+ "kind": "added",
356
+ "summary": "Add model-specific token capacity, optional provider capacity configuration, and recoverable long-text preparation",
357
+ "symbols": [
358
+ "inspectAIInput",
359
+ "prepareAITextInput",
360
+ "AIProviderConfig",
361
+ "OpenAIConfig",
362
+ "OpenAIResponsesConfig"
363
+ ]
364
+ }
365
+ ],
366
+ "date": "2026-09-15",
367
+ "version": "0.0.57"
368
+ }
369
+ ]
333
370
  }