engineering-behavior-observatory 0.2.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 (178) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +151 -0
  3. package/contracts/codex-app-server-0.150.1/manifest.json +25 -0
  4. package/contracts/codex-app-server-0.150.1/schema/InitializeParams.json +84 -0
  5. package/contracts/codex-app-server-0.150.1/schema/JSONRPCMessage.json +137 -0
  6. package/contracts/codex-app-server-0.150.1/schema/v2/ThreadReadParams.json +17 -0
  7. package/contracts/codex-app-server-0.150.1/schema/v2/ThreadTokenUsageUpdatedNotification.json +82 -0
  8. package/contracts/codex-app-server-0.150.1/schema/v2/TurnInterruptParams.json +17 -0
  9. package/contracts/codex-app-server-0.150.1/types/AskForApproval.ts +5 -0
  10. package/contracts/codex-app-server-0.150.1/types/ClientNotification.ts +5 -0
  11. package/contracts/codex-app-server-0.150.1/types/SandboxMode.ts +5 -0
  12. package/contracts/codex-app-server-0.150.1/types/ThreadReadParams.ts +9 -0
  13. package/contracts/codex-app-server-0.150.1/types/TokenUsageBreakdown.ts +5 -0
  14. package/contracts/codex-app-server-0.150.1/types/TurnInterruptParams.ts +5 -0
  15. package/contracts/codex-app-server-0.153.4/manifest.json +27 -0
  16. package/contracts/codex-app-server-0.153.4/schema/JSONRPCMessage.json +137 -0
  17. package/contracts/codex-app-server-0.153.4/schema/v1/InitializeParams.json +84 -0
  18. package/contracts/codex-app-server-0.153.4/schema/v2/ThreadReadParams.json +17 -0
  19. package/contracts/codex-app-server-0.153.4/schema/v2/ThreadStartParams.json +515 -0
  20. package/contracts/codex-app-server-0.153.4/schema/v2/ThreadTokenUsageUpdatedNotification.json +82 -0
  21. package/contracts/codex-app-server-0.153.4/schema/v2/TurnInterruptParams.json +17 -0
  22. package/contracts/codex-app-server-0.153.4/schema/v2/TurnStartParams.json +921 -0
  23. package/contracts/codex-app-server-0.153.4/types/AskForApproval.ts +5 -0
  24. package/contracts/codex-app-server-0.153.4/types/ClientNotification.ts +5 -0
  25. package/contracts/codex-app-server-0.153.4/types/SandboxMode.ts +5 -0
  26. package/contracts/codex-app-server-0.153.4/types/ThreadReadParams.ts +12 -0
  27. package/contracts/codex-app-server-0.153.4/types/TokenUsageBreakdown.ts +5 -0
  28. package/contracts/codex-app-server-0.153.4/types/TurnInterruptParams.ts +5 -0
  29. package/contracts/openhands-agent-server-v1.44.1.json +65 -0
  30. package/contracts/openhands-agent-server-v1.46.0.json +46 -0
  31. package/dist/contracts/codex-app-server-0.153.4/types/AskForApproval.d.ts +9 -0
  32. package/dist/contracts/codex-app-server-0.153.4/types/AskForApproval.js +2 -0
  33. package/dist/contracts/codex-app-server-0.153.4/types/ClientNotification.d.ts +3 -0
  34. package/dist/contracts/codex-app-server-0.153.4/types/ClientNotification.js +2 -0
  35. package/dist/contracts/codex-app-server-0.153.4/types/SandboxMode.d.ts +1 -0
  36. package/dist/contracts/codex-app-server-0.153.4/types/SandboxMode.js +2 -0
  37. package/dist/contracts/codex-app-server-0.153.4/types/ThreadReadParams.d.ts +10 -0
  38. package/dist/contracts/codex-app-server-0.153.4/types/ThreadReadParams.js +2 -0
  39. package/dist/contracts/codex-app-server-0.153.4/types/TokenUsageBreakdown.d.ts +8 -0
  40. package/dist/contracts/codex-app-server-0.153.4/types/TokenUsageBreakdown.js +2 -0
  41. package/dist/contracts/codex-app-server-0.153.4/types/TurnInterruptParams.d.ts +4 -0
  42. package/dist/contracts/codex-app-server-0.153.4/types/TurnInterruptParams.js +2 -0
  43. package/dist/src/agent-sdk-normalizer.d.ts +22 -0
  44. package/dist/src/agent-sdk-normalizer.js +995 -0
  45. package/dist/src/agent-sdk-run.d.ts +31 -0
  46. package/dist/src/agent-sdk-run.js +242 -0
  47. package/dist/src/agent-sdk-runner.d.ts +96 -0
  48. package/dist/src/agent-sdk-runner.js +407 -0
  49. package/dist/src/agent-sdk.d.ts +294 -0
  50. package/dist/src/agent-sdk.js +644 -0
  51. package/dist/src/aggregation.d.ts +183 -0
  52. package/dist/src/aggregation.js +513 -0
  53. package/dist/src/artifacts.d.ts +36 -0
  54. package/dist/src/artifacts.js +1372 -0
  55. package/dist/src/atlas-grafana.d.ts +377 -0
  56. package/dist/src/atlas-grafana.js +47 -0
  57. package/dist/src/atlas-html.d.ts +2 -0
  58. package/dist/src/atlas-html.js +34 -0
  59. package/dist/src/atlas.d.ts +130 -0
  60. package/dist/src/atlas.js +235 -0
  61. package/dist/src/behavior-assertions.d.ts +95 -0
  62. package/dist/src/behavior-assertions.js +154 -0
  63. package/dist/src/cli.d.ts +5 -0
  64. package/dist/src/cli.js +957 -0
  65. package/dist/src/codex-judge.d.ts +44 -0
  66. package/dist/src/codex-judge.js +214 -0
  67. package/dist/src/codex-run.d.ts +114 -0
  68. package/dist/src/codex-run.js +519 -0
  69. package/dist/src/codex.d.ts +187 -0
  70. package/dist/src/codex.js +1028 -0
  71. package/dist/src/contracts.d.ts +155 -0
  72. package/dist/src/contracts.js +866 -0
  73. package/dist/src/corpus.d.ts +67 -0
  74. package/dist/src/corpus.js +540 -0
  75. package/dist/src/cursor-sdk-runner.d.ts +81 -0
  76. package/dist/src/cursor-sdk-runner.js +362 -0
  77. package/dist/src/cursor-sdk.d.ts +81 -0
  78. package/dist/src/cursor-sdk.js +1078 -0
  79. package/dist/src/deepseek-adapter.d.ts +152 -0
  80. package/dist/src/deepseek-adapter.js +777 -0
  81. package/dist/src/exports.d.ts +69 -0
  82. package/dist/src/exports.js +966 -0
  83. package/dist/src/human-calibration.d.ts +167 -0
  84. package/dist/src/human-calibration.js +618 -0
  85. package/dist/src/index.d.ts +71 -0
  86. package/dist/src/index.js +38 -0
  87. package/dist/src/lifecycle.d.ts +196 -0
  88. package/dist/src/lifecycle.js +1889 -0
  89. package/dist/src/normalization-integrity.d.ts +128 -0
  90. package/dist/src/normalization-integrity.js +429 -0
  91. package/dist/src/openhands-run.d.ts +36 -0
  92. package/dist/src/openhands-run.js +415 -0
  93. package/dist/src/openhands.d.ts +130 -0
  94. package/dist/src/openhands.js +859 -0
  95. package/dist/src/pi.d.ts +203 -0
  96. package/dist/src/pi.js +1345 -0
  97. package/dist/src/process-protocol.d.ts +245 -0
  98. package/dist/src/process-protocol.js +1261 -0
  99. package/dist/src/retained-evidence.d.ts +12 -0
  100. package/dist/src/retained-evidence.js +201 -0
  101. package/dist/src/run-bundles.d.ts +193 -0
  102. package/dist/src/run-bundles.js +993 -0
  103. package/dist/src/scheduler.d.ts +109 -0
  104. package/dist/src/scheduler.js +1080 -0
  105. package/dist/src/semantic-judge.d.ts +194 -0
  106. package/dist/src/semantic-judge.js +875 -0
  107. package/dist/src/structural-observations.d.ts +124 -0
  108. package/dist/src/structural-observations.js +671 -0
  109. package/dist/src/task-packets.d.ts +115 -0
  110. package/dist/src/task-packets.js +683 -0
  111. package/dist/src/uniform-events.d.ts +120 -0
  112. package/dist/src/uniform-events.js +158 -0
  113. package/dist/src/verifiers.d.ts +116 -0
  114. package/dist/src/verifiers.js +819 -0
  115. package/dist/src/workspaces.d.ts +56 -0
  116. package/dist/src/workspaces.js +1314 -0
  117. package/docs/README.md +60 -0
  118. package/docs/development/README.md +71 -0
  119. package/docs/development/documentation-sync.md +58 -0
  120. package/docs/development/extension-contracts.md +307 -0
  121. package/docs/evaluation/README.md +48 -0
  122. package/docs/evaluation/aggregation.md +112 -0
  123. package/docs/evaluation/behavior-assertions.md +45 -0
  124. package/docs/evaluation/human-calibration.md +170 -0
  125. package/docs/evaluation/normalization-integrity.md +80 -0
  126. package/docs/evaluation/semantic-judge.md +188 -0
  127. package/docs/evaluation/structural-observations.md +84 -0
  128. package/docs/evaluation/uniform-events.md +131 -0
  129. package/docs/guides/atlas.md +144 -0
  130. package/docs/guides/evidence-and-sharing.md +100 -0
  131. package/docs/guides/operator-guide.md +424 -0
  132. package/docs/guides/quickstart.md +152 -0
  133. package/docs/guides/telemetry.md +66 -0
  134. package/docs/harnesses/README.md +31 -0
  135. package/docs/harnesses/claude-agent-sdk.md +61 -0
  136. package/docs/harnesses/codex-harness.md +174 -0
  137. package/docs/harnesses/cursor-sdk.md +149 -0
  138. package/docs/harnesses/deepseek-harness.md +134 -0
  139. package/docs/harnesses/openhands-agent-server.md +153 -0
  140. package/docs/harnesses/pi-sdk.md +66 -0
  141. package/docs/reference/README.md +19 -0
  142. package/docs/reference/agent-sdk-operational-runner.md +118 -0
  143. package/docs/reference/cli.md +114 -0
  144. package/docs/reference/contracts.md +222 -0
  145. package/docs/reference/run-bundle-contract.md +354 -0
  146. package/docs/reference/run-lifecycle.md +54 -0
  147. package/examples/cursor-sdk/README.md +11 -0
  148. package/examples/cursor-sdk/capture-profile.json +1 -0
  149. package/examples/cursor-sdk/harness.json +1 -0
  150. package/examples/cursor-sdk/model.json +1 -0
  151. package/examples/cursor-sdk/native-limits.json +1 -0
  152. package/examples/cursor-sdk/native-tool-policy.json +1 -0
  153. package/ontology/behavior-categories.v1.json +46 -0
  154. package/package.json +66 -0
  155. package/release/0.1.0/KNOWN_LIMITATIONS.md +35 -0
  156. package/release/0.1.0/README.md +46 -0
  157. package/release/0.1.0/reproducibility.json +61 -0
  158. package/release/0.2.0/KNOWN_LIMITATIONS.md +40 -0
  159. package/release/0.2.0/README.md +42 -0
  160. package/release/0.2.0/reproducibility.json +73 -0
  161. package/release/0.2.1/KNOWN_LIMITATIONS.md +18 -0
  162. package/release/0.2.1/README.md +63 -0
  163. package/release/0.2.1/reproducibility.json +73 -0
  164. package/release/README.md +13 -0
  165. package/schemas/aggregation.v1.json +293 -0
  166. package/schemas/behavior-assertions.v1.json +220 -0
  167. package/schemas/deepseek-runtime-composition.v1.schema.json +122 -0
  168. package/schemas/experiment.v1.schema.json +188 -0
  169. package/schemas/human-calibration.v1.json +336 -0
  170. package/schemas/normalization-integrity.v1.json +302 -0
  171. package/schemas/run-bundles/v1.json +1040 -0
  172. package/schemas/run-queue.v1.schema.json +206 -0
  173. package/schemas/semantic-judge.v1.json +380 -0
  174. package/schemas/structural-observations.v1.json +131 -0
  175. package/schemas/task-packet-freeze.v1.schema.json +106 -0
  176. package/schemas/task-packet.v1.schema.json +234 -0
  177. package/schemas/uniform-events/v1.json +289 -0
  178. package/scripts/atlas-grafana.sh +18 -0
@@ -0,0 +1,515 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "AbsolutePathBuf": {
5
+ "description": "A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).\n\nIMPORTANT: When deserializing an `AbsolutePathBuf`, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.",
6
+ "type": "string"
7
+ },
8
+ "ApprovalsReviewer": {
9
+ "description": "Configures who approval requests are routed to for review. Examples include sandbox escapes, blocked network access, MCP approval prompts, and ARC escalations. Defaults to `user`. `auto_review` uses a carefully prompted subagent to gather relevant context and apply a risk-based decision framework before approving or denying the request. The legacy value `guardian_subagent` is accepted for compatibility.",
10
+ "enum": [
11
+ "user",
12
+ "auto_review",
13
+ "guardian_subagent"
14
+ ],
15
+ "type": "string"
16
+ },
17
+ "AskForApproval": {
18
+ "oneOf": [
19
+ {
20
+ "enum": [
21
+ "untrusted",
22
+ "on-request",
23
+ "never"
24
+ ],
25
+ "type": "string"
26
+ },
27
+ {
28
+ "additionalProperties": false,
29
+ "properties": {
30
+ "granular": {
31
+ "properties": {
32
+ "mcp_elicitations": {
33
+ "type": "boolean"
34
+ },
35
+ "request_permissions": {
36
+ "default": false,
37
+ "type": "boolean"
38
+ },
39
+ "rules": {
40
+ "type": "boolean"
41
+ },
42
+ "sandbox_approval": {
43
+ "type": "boolean"
44
+ },
45
+ "skill_approval": {
46
+ "default": false,
47
+ "type": "boolean"
48
+ }
49
+ },
50
+ "required": [
51
+ "mcp_elicitations",
52
+ "rules",
53
+ "sandbox_approval"
54
+ ],
55
+ "type": "object"
56
+ }
57
+ },
58
+ "required": [
59
+ "granular"
60
+ ],
61
+ "title": "GranularAskForApproval",
62
+ "type": "object"
63
+ }
64
+ ]
65
+ },
66
+ "CapabilityRootLocation": {
67
+ "description": "Location used to resolve a selected capability root.",
68
+ "oneOf": [
69
+ {
70
+ "description": "A path owned by an execution environment.",
71
+ "properties": {
72
+ "environmentId": {
73
+ "type": "string"
74
+ },
75
+ "path": {
76
+ "description": "Absolute path for the root in the selected environment.",
77
+ "type": "string"
78
+ },
79
+ "type": {
80
+ "enum": [
81
+ "environment"
82
+ ],
83
+ "title": "EnvironmentCapabilityRootLocationType",
84
+ "type": "string"
85
+ }
86
+ },
87
+ "required": [
88
+ "environmentId",
89
+ "path",
90
+ "type"
91
+ ],
92
+ "title": "EnvironmentCapabilityRootLocation",
93
+ "type": "object"
94
+ }
95
+ ]
96
+ },
97
+ "DynamicToolNamespaceTool": {
98
+ "oneOf": [
99
+ {
100
+ "properties": {
101
+ "deferLoading": {
102
+ "type": "boolean"
103
+ },
104
+ "description": {
105
+ "type": "string"
106
+ },
107
+ "inputSchema": true,
108
+ "name": {
109
+ "type": "string"
110
+ },
111
+ "type": {
112
+ "enum": [
113
+ "function"
114
+ ],
115
+ "title": "FunctionDynamicToolNamespaceToolType",
116
+ "type": "string"
117
+ }
118
+ },
119
+ "required": [
120
+ "description",
121
+ "inputSchema",
122
+ "name",
123
+ "type"
124
+ ],
125
+ "title": "FunctionDynamicToolNamespaceTool",
126
+ "type": "object"
127
+ }
128
+ ]
129
+ },
130
+ "DynamicToolSpec": {
131
+ "oneOf": [
132
+ {
133
+ "properties": {
134
+ "deferLoading": {
135
+ "type": "boolean"
136
+ },
137
+ "description": {
138
+ "type": "string"
139
+ },
140
+ "inputSchema": true,
141
+ "name": {
142
+ "type": "string"
143
+ },
144
+ "type": {
145
+ "enum": [
146
+ "function"
147
+ ],
148
+ "title": "FunctionDynamicToolSpecType",
149
+ "type": "string"
150
+ }
151
+ },
152
+ "required": [
153
+ "description",
154
+ "inputSchema",
155
+ "name",
156
+ "type"
157
+ ],
158
+ "title": "FunctionDynamicToolSpec",
159
+ "type": "object"
160
+ },
161
+ {
162
+ "properties": {
163
+ "description": {
164
+ "type": "string"
165
+ },
166
+ "name": {
167
+ "type": "string"
168
+ },
169
+ "tools": {
170
+ "items": {
171
+ "$ref": "#/definitions/DynamicToolNamespaceTool"
172
+ },
173
+ "type": "array"
174
+ },
175
+ "type": {
176
+ "enum": [
177
+ "namespace"
178
+ ],
179
+ "title": "NamespaceDynamicToolSpecType",
180
+ "type": "string"
181
+ }
182
+ },
183
+ "required": [
184
+ "description",
185
+ "name",
186
+ "tools",
187
+ "type"
188
+ ],
189
+ "title": "NamespaceDynamicToolSpec",
190
+ "type": "object"
191
+ }
192
+ ]
193
+ },
194
+ "LegacyAppPathString": {
195
+ "type": "string"
196
+ },
197
+ "MultiAgentMode": {
198
+ "description": "Controls the effective multi-agent delegation instructions for a turn. `custom` means the configured mode hint defines the policy instead of a built-in policy.",
199
+ "oneOf": [
200
+ {
201
+ "enum": [
202
+ "explicitRequestOnly",
203
+ "proactive"
204
+ ],
205
+ "type": "string"
206
+ },
207
+ {
208
+ "additionalProperties": false,
209
+ "properties": {
210
+ "custom": {
211
+ "type": "string"
212
+ }
213
+ },
214
+ "required": [
215
+ "custom"
216
+ ],
217
+ "title": "CustomMultiAgentMode",
218
+ "type": "object"
219
+ }
220
+ ]
221
+ },
222
+ "Personality": {
223
+ "enum": [
224
+ "none",
225
+ "friendly",
226
+ "pragmatic"
227
+ ],
228
+ "type": "string"
229
+ },
230
+ "SandboxMode": {
231
+ "enum": [
232
+ "read-only",
233
+ "workspace-write",
234
+ "danger-full-access"
235
+ ],
236
+ "type": "string"
237
+ },
238
+ "SelectedCapabilityRoot": {
239
+ "description": "A user-selected root that can expose one or more runtime capabilities.",
240
+ "properties": {
241
+ "id": {
242
+ "description": "Stable identifier supplied by the capability selection platform.",
243
+ "type": "string"
244
+ },
245
+ "location": {
246
+ "allOf": [
247
+ {
248
+ "$ref": "#/definitions/CapabilityRootLocation"
249
+ }
250
+ ],
251
+ "description": "Where the selected root can be resolved."
252
+ }
253
+ },
254
+ "required": [
255
+ "id",
256
+ "location"
257
+ ],
258
+ "type": "object"
259
+ },
260
+ "ThreadHistoryMode": {
261
+ "enum": [
262
+ "legacy",
263
+ "paginated"
264
+ ],
265
+ "type": "string"
266
+ },
267
+ "ThreadSource": {
268
+ "type": "string"
269
+ },
270
+ "ThreadStartSource": {
271
+ "enum": [
272
+ "startup",
273
+ "clear"
274
+ ],
275
+ "type": "string"
276
+ },
277
+ "TurnEnvironmentParams": {
278
+ "properties": {
279
+ "cwd": {
280
+ "$ref": "#/definitions/LegacyAppPathString"
281
+ },
282
+ "environmentId": {
283
+ "type": "string"
284
+ },
285
+ "runtimeWorkspaceRoots": {
286
+ "description": "Environment-native runtime workspace roots. Omitted defaults to `cwd`.",
287
+ "items": {
288
+ "$ref": "#/definitions/LegacyAppPathString"
289
+ },
290
+ "type": [
291
+ "array",
292
+ "null"
293
+ ]
294
+ }
295
+ },
296
+ "required": [
297
+ "cwd",
298
+ "environmentId"
299
+ ],
300
+ "type": "object"
301
+ }
302
+ },
303
+ "properties": {
304
+ "allowProviderModelFallback": {
305
+ "description": "Allow a provider with an authoritative static model catalog to replace an unavailable requested model with its default.",
306
+ "type": "boolean"
307
+ },
308
+ "approvalPolicy": {
309
+ "anyOf": [
310
+ {
311
+ "$ref": "#/definitions/AskForApproval"
312
+ },
313
+ {
314
+ "type": "null"
315
+ }
316
+ ]
317
+ },
318
+ "approvalsReviewer": {
319
+ "anyOf": [
320
+ {
321
+ "$ref": "#/definitions/ApprovalsReviewer"
322
+ },
323
+ {
324
+ "type": "null"
325
+ }
326
+ ],
327
+ "description": "Override where approval requests are routed for review on this thread and subsequent turns."
328
+ },
329
+ "baseInstructions": {
330
+ "type": [
331
+ "string",
332
+ "null"
333
+ ]
334
+ },
335
+ "config": {
336
+ "additionalProperties": true,
337
+ "type": [
338
+ "object",
339
+ "null"
340
+ ]
341
+ },
342
+ "cwd": {
343
+ "type": [
344
+ "string",
345
+ "null"
346
+ ]
347
+ },
348
+ "developerInstructions": {
349
+ "type": [
350
+ "string",
351
+ "null"
352
+ ]
353
+ },
354
+ "dynamicTools": {
355
+ "default": null,
356
+ "items": {
357
+ "$ref": "#/definitions/DynamicToolSpec"
358
+ },
359
+ "type": [
360
+ "array",
361
+ "null"
362
+ ]
363
+ },
364
+ "environments": {
365
+ "description": "Optional sticky environments for this thread.\n\nOmitted selects the default environment when environment access is enabled. Empty disables environment access for turns that do not provide a turn override. Non-empty selects the first environment as the current turn environment.",
366
+ "items": {
367
+ "$ref": "#/definitions/TurnEnvironmentParams"
368
+ },
369
+ "type": [
370
+ "array",
371
+ "null"
372
+ ]
373
+ },
374
+ "ephemeral": {
375
+ "type": [
376
+ "boolean",
377
+ "null"
378
+ ]
379
+ },
380
+ "experimentalRawEvents": {
381
+ "description": "If true, opt into emitting raw Responses API items on the event stream. This is for internal use only (e.g. Codex Cloud).",
382
+ "type": "boolean"
383
+ },
384
+ "historyMode": {
385
+ "anyOf": [
386
+ {
387
+ "$ref": "#/definitions/ThreadHistoryMode"
388
+ },
389
+ {
390
+ "type": "null"
391
+ }
392
+ ],
393
+ "description": "Persisted thread history contract to use for this new thread."
394
+ },
395
+ "mockExperimentalField": {
396
+ "description": "Test-only experimental field used to validate experimental gating and schema filtering behavior in a stable way.",
397
+ "type": [
398
+ "string",
399
+ "null"
400
+ ]
401
+ },
402
+ "model": {
403
+ "type": [
404
+ "string",
405
+ "null"
406
+ ]
407
+ },
408
+ "modelProvider": {
409
+ "type": [
410
+ "string",
411
+ "null"
412
+ ]
413
+ },
414
+ "multiAgentMode": {
415
+ "anyOf": [
416
+ {
417
+ "$ref": "#/definitions/MultiAgentMode"
418
+ },
419
+ {
420
+ "type": "null"
421
+ }
422
+ ],
423
+ "description": "@deprecated Ignored. Use Ultra reasoning effort for proactive multi-agent behavior."
424
+ },
425
+ "permissions": {
426
+ "description": "Named profile id for this thread. Cannot be combined with `sandbox`.",
427
+ "type": [
428
+ "string",
429
+ "null"
430
+ ]
431
+ },
432
+ "personality": {
433
+ "anyOf": [
434
+ {
435
+ "$ref": "#/definitions/Personality"
436
+ },
437
+ {
438
+ "type": "null"
439
+ }
440
+ ]
441
+ },
442
+ "projectId": {
443
+ "description": "Optional project identity for this new thread. Durable threads persist the assignment; ephemeral threads expose it only in live responses.",
444
+ "type": [
445
+ "string",
446
+ "null"
447
+ ]
448
+ },
449
+ "runtimeWorkspaceRoots": {
450
+ "description": "Replace the thread's runtime workspace roots. Paths must be absolute.",
451
+ "items": {
452
+ "$ref": "#/definitions/AbsolutePathBuf"
453
+ },
454
+ "type": [
455
+ "array",
456
+ "null"
457
+ ]
458
+ },
459
+ "sandbox": {
460
+ "anyOf": [
461
+ {
462
+ "$ref": "#/definitions/SandboxMode"
463
+ },
464
+ {
465
+ "type": "null"
466
+ }
467
+ ]
468
+ },
469
+ "selectedCapabilityRoots": {
470
+ "description": "Capability roots selected for this thread by the hosting platform.",
471
+ "items": {
472
+ "$ref": "#/definitions/SelectedCapabilityRoot"
473
+ },
474
+ "type": [
475
+ "array",
476
+ "null"
477
+ ]
478
+ },
479
+ "serviceName": {
480
+ "type": [
481
+ "string",
482
+ "null"
483
+ ]
484
+ },
485
+ "serviceTier": {
486
+ "type": [
487
+ "string",
488
+ "null"
489
+ ]
490
+ },
491
+ "sessionStartSource": {
492
+ "anyOf": [
493
+ {
494
+ "$ref": "#/definitions/ThreadStartSource"
495
+ },
496
+ {
497
+ "type": "null"
498
+ }
499
+ ]
500
+ },
501
+ "threadSource": {
502
+ "anyOf": [
503
+ {
504
+ "$ref": "#/definitions/ThreadSource"
505
+ },
506
+ {
507
+ "type": "null"
508
+ }
509
+ ],
510
+ "description": "Optional client-supplied analytics source classification for this thread."
511
+ }
512
+ },
513
+ "title": "ThreadStartParams",
514
+ "type": "object"
515
+ }
@@ -0,0 +1,82 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "ThreadTokenUsage": {
5
+ "properties": {
6
+ "last": {
7
+ "$ref": "#/definitions/TokenUsageBreakdown"
8
+ },
9
+ "modelContextWindow": {
10
+ "format": "int64",
11
+ "type": [
12
+ "integer",
13
+ "null"
14
+ ]
15
+ },
16
+ "total": {
17
+ "$ref": "#/definitions/TokenUsageBreakdown"
18
+ }
19
+ },
20
+ "required": [
21
+ "last",
22
+ "total"
23
+ ],
24
+ "type": "object"
25
+ },
26
+ "TokenUsageBreakdown": {
27
+ "properties": {
28
+ "cacheWriteInputTokens": {
29
+ "default": 0,
30
+ "format": "int64",
31
+ "type": "integer"
32
+ },
33
+ "cachedInputTokens": {
34
+ "format": "int64",
35
+ "type": "integer"
36
+ },
37
+ "inputTokens": {
38
+ "format": "int64",
39
+ "type": "integer"
40
+ },
41
+ "outputTokens": {
42
+ "format": "int64",
43
+ "type": "integer"
44
+ },
45
+ "reasoningOutputTokens": {
46
+ "format": "int64",
47
+ "type": "integer"
48
+ },
49
+ "totalTokens": {
50
+ "format": "int64",
51
+ "type": "integer"
52
+ }
53
+ },
54
+ "required": [
55
+ "cachedInputTokens",
56
+ "inputTokens",
57
+ "outputTokens",
58
+ "reasoningOutputTokens",
59
+ "totalTokens"
60
+ ],
61
+ "type": "object"
62
+ }
63
+ },
64
+ "properties": {
65
+ "threadId": {
66
+ "type": "string"
67
+ },
68
+ "tokenUsage": {
69
+ "$ref": "#/definitions/ThreadTokenUsage"
70
+ },
71
+ "turnId": {
72
+ "type": "string"
73
+ }
74
+ },
75
+ "required": [
76
+ "threadId",
77
+ "tokenUsage",
78
+ "turnId"
79
+ ],
80
+ "title": "ThreadTokenUsageUpdatedNotification",
81
+ "type": "object"
82
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "properties": {
4
+ "threadId": {
5
+ "type": "string"
6
+ },
7
+ "turnId": {
8
+ "type": "string"
9
+ }
10
+ },
11
+ "required": [
12
+ "threadId",
13
+ "turnId"
14
+ ],
15
+ "title": "TurnInterruptParams",
16
+ "type": "object"
17
+ }