@ilbie/capybara-code-darwin-arm64 0.1.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/bin/capy +0 -0
- package/libexec/cbc-runtime +0 -0
- package/manifest.json +100 -0
- package/package.json +31 -0
- package/share/capybara/model-registry.json +109 -0
- package/share/capybara/notices/THIRD-PARTY.md +145 -0
- package/share/capybara/notices/sbom.json +1123 -0
- package/share/capybara/schemas/config/config.schema.json +1249 -0
- package/share/capybara/schemas/events/event.schema.json +461 -0
- package/share/capybara/schemas/protocol/handshake.schema.json +207 -0
- package/share/capybara/schemas/protocol/rpc.schema.json +711 -0
- package/share/capybara/schemas/tools/tool.schema.json +270 -0
- package/share/capybara/skills/code-review/SKILL.md +35 -0
- package/share/capybara/skills/commit-message/SKILL.md +43 -0
- package/share/capybara/skills/dependency-audit-lite/SKILL.md +39 -0
- package/share/capybara/skills/repo-onboarding/SKILL.md +46 -0
- package/share/capybara/skills/test-triage/SKILL.md +43 -0
- package/share/capybara/skills/write-agents-md/SKILL.md +39 -0
|
@@ -0,0 +1,461 @@
|
|
|
1
|
+
{
|
|
2
|
+
"x-dialect": "json-schema-draft-2020-12",
|
|
3
|
+
"$id": "cbc:events/event",
|
|
4
|
+
"title": "Capybara Code domain event",
|
|
5
|
+
"description": "PRD 20.6 and 20.7. One envelope serves the agent kernel, the TUI reducer, the durable session journal, and repository-owned benchmark adapters. A change here affects persisted sessions and internal consumers and must be recorded in schemas/CHANGELOG.md.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"schemaVersion",
|
|
10
|
+
"sequence",
|
|
11
|
+
"id",
|
|
12
|
+
"timestamp",
|
|
13
|
+
"sessionId",
|
|
14
|
+
"kind",
|
|
15
|
+
"level",
|
|
16
|
+
"visibility",
|
|
17
|
+
"durability",
|
|
18
|
+
"payload"
|
|
19
|
+
],
|
|
20
|
+
"properties": {
|
|
21
|
+
"schemaVersion": {
|
|
22
|
+
"description": "19.12: the event schema version is independent of the product and protocol versions.",
|
|
23
|
+
"const": "1.0"
|
|
24
|
+
},
|
|
25
|
+
"sequence": {
|
|
26
|
+
"description": "20.10: strictly monotonic within a session, so a consumer can detect a dropped line.",
|
|
27
|
+
"type": "integer",
|
|
28
|
+
"minimum": 1
|
|
29
|
+
},
|
|
30
|
+
"id": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"minLength": 1
|
|
33
|
+
},
|
|
34
|
+
"timestamp": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"format": "date-time"
|
|
37
|
+
},
|
|
38
|
+
"sessionId": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"minLength": 1
|
|
41
|
+
},
|
|
42
|
+
"turnId": {
|
|
43
|
+
"type": "string"
|
|
44
|
+
},
|
|
45
|
+
"agentId": {
|
|
46
|
+
"description": "Present for a subagent's events, so 15.x delegation is inspectable in the stream.",
|
|
47
|
+
"type": "string"
|
|
48
|
+
},
|
|
49
|
+
"parentEventId": {
|
|
50
|
+
"type": "string"
|
|
51
|
+
},
|
|
52
|
+
"correlationId": {
|
|
53
|
+
"type": "string"
|
|
54
|
+
},
|
|
55
|
+
"kind": {
|
|
56
|
+
"$ref": "#/$defs/kind"
|
|
57
|
+
},
|
|
58
|
+
"level": {
|
|
59
|
+
"$ref": "#/$defs/level"
|
|
60
|
+
},
|
|
61
|
+
"visibility": {
|
|
62
|
+
"$ref": "#/$defs/visibility"
|
|
63
|
+
},
|
|
64
|
+
"durability": {
|
|
65
|
+
"$ref": "#/$defs/durability"
|
|
66
|
+
},
|
|
67
|
+
"payload": {
|
|
68
|
+
"description": "Canonical assistant.thinking payloads are validated below; other event kinds retain their provider-specific payload shapes."
|
|
69
|
+
},
|
|
70
|
+
"callerId": {
|
|
71
|
+
"type": "string"
|
|
72
|
+
},
|
|
73
|
+
"taskEpochId": {
|
|
74
|
+
"type": "string"
|
|
75
|
+
},
|
|
76
|
+
"workspaceIdentityDigest": {
|
|
77
|
+
"type": "string"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"$defs": {
|
|
81
|
+
"thinkingPayload": {
|
|
82
|
+
"type": "object",
|
|
83
|
+
"additionalProperties": true,
|
|
84
|
+
"required": [
|
|
85
|
+
"thinkingId",
|
|
86
|
+
"requestId",
|
|
87
|
+
"segmentIndex",
|
|
88
|
+
"providerItemIds",
|
|
89
|
+
"state",
|
|
90
|
+
"sources"
|
|
91
|
+
],
|
|
92
|
+
"properties": {
|
|
93
|
+
"thinkingId": {
|
|
94
|
+
"type": "string",
|
|
95
|
+
"minLength": 1
|
|
96
|
+
},
|
|
97
|
+
"requestId": {
|
|
98
|
+
"type": "string",
|
|
99
|
+
"minLength": 1
|
|
100
|
+
},
|
|
101
|
+
"responseId": {
|
|
102
|
+
"type": "string"
|
|
103
|
+
},
|
|
104
|
+
"modelId": {
|
|
105
|
+
"type": "string"
|
|
106
|
+
},
|
|
107
|
+
"segmentIndex": {
|
|
108
|
+
"type": "integer",
|
|
109
|
+
"minimum": 0
|
|
110
|
+
},
|
|
111
|
+
"providerItemIds": {
|
|
112
|
+
"type": "array",
|
|
113
|
+
"items": {
|
|
114
|
+
"type": "string",
|
|
115
|
+
"minLength": 1
|
|
116
|
+
},
|
|
117
|
+
"uniqueItems": true
|
|
118
|
+
},
|
|
119
|
+
"state": {
|
|
120
|
+
"type": "string",
|
|
121
|
+
"enum": [
|
|
122
|
+
"completed",
|
|
123
|
+
"interrupted",
|
|
124
|
+
"failed"
|
|
125
|
+
]
|
|
126
|
+
},
|
|
127
|
+
"sources": {
|
|
128
|
+
"type": "array",
|
|
129
|
+
"minItems": 1,
|
|
130
|
+
"items": {
|
|
131
|
+
"type": "string",
|
|
132
|
+
"enum": [
|
|
133
|
+
"provider_summary",
|
|
134
|
+
"provider_reasoning",
|
|
135
|
+
"status_only"
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
"uniqueItems": true
|
|
139
|
+
},
|
|
140
|
+
"title": {
|
|
141
|
+
"type": "string",
|
|
142
|
+
"maxLength": 80
|
|
143
|
+
},
|
|
144
|
+
"summaryText": {
|
|
145
|
+
"type": "string",
|
|
146
|
+
"maxLength": 4096
|
|
147
|
+
},
|
|
148
|
+
"summaryOrigin": {
|
|
149
|
+
"type": "string",
|
|
150
|
+
"enum": [
|
|
151
|
+
"provider",
|
|
152
|
+
"derived_from_visible_detail"
|
|
153
|
+
]
|
|
154
|
+
},
|
|
155
|
+
"detailText": {
|
|
156
|
+
"type": "string",
|
|
157
|
+
"maxLength": 65536
|
|
158
|
+
},
|
|
159
|
+
"startedAtMs": {
|
|
160
|
+
"type": "number",
|
|
161
|
+
"minimum": 0
|
|
162
|
+
},
|
|
163
|
+
"endedAtMs": {
|
|
164
|
+
"type": "number",
|
|
165
|
+
"minimum": 0
|
|
166
|
+
},
|
|
167
|
+
"durationMs": {
|
|
168
|
+
"type": "number",
|
|
169
|
+
"minimum": 0
|
|
170
|
+
},
|
|
171
|
+
"truncated": {
|
|
172
|
+
"type": "boolean"
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
"level": {
|
|
177
|
+
"type": "string",
|
|
178
|
+
"enum": [
|
|
179
|
+
"debug",
|
|
180
|
+
"info",
|
|
181
|
+
"success",
|
|
182
|
+
"warning",
|
|
183
|
+
"error"
|
|
184
|
+
]
|
|
185
|
+
},
|
|
186
|
+
"visibility": {
|
|
187
|
+
"description": "Where the event is shown. A hidden event is journaled but not rendered.",
|
|
188
|
+
"type": "string",
|
|
189
|
+
"enum": [
|
|
190
|
+
"timeline",
|
|
191
|
+
"live",
|
|
192
|
+
"drawer",
|
|
193
|
+
"hidden"
|
|
194
|
+
]
|
|
195
|
+
},
|
|
196
|
+
"durability": {
|
|
197
|
+
"description": "20.9: a journaled event is durable once the runtime acknowledges the append. An ephemeral event drives the UI immediately and may be coalesced before storage.",
|
|
198
|
+
"type": "string",
|
|
199
|
+
"enum": [
|
|
200
|
+
"ephemeral",
|
|
201
|
+
"journaled"
|
|
202
|
+
]
|
|
203
|
+
},
|
|
204
|
+
"kind": {
|
|
205
|
+
"description": "20.7 event kinds, in declaration order. 20.10 requires a consumer to skip an unknown kind rather than fail, so adding one is a minor change.",
|
|
206
|
+
"type": "string",
|
|
207
|
+
"enum": [
|
|
208
|
+
"session.started",
|
|
209
|
+
"session.resumed",
|
|
210
|
+
"session.forked",
|
|
211
|
+
"session.compacted",
|
|
212
|
+
"turn.started",
|
|
213
|
+
"turn.interrupted",
|
|
214
|
+
"turn.cancelled",
|
|
215
|
+
"turn.completed",
|
|
216
|
+
"run.completed",
|
|
217
|
+
"user.message",
|
|
218
|
+
"assistant.delta",
|
|
219
|
+
"assistant.commentary",
|
|
220
|
+
"assistant.reasoning",
|
|
221
|
+
"assistant.reasoning_summary",
|
|
222
|
+
"assistant.final",
|
|
223
|
+
"plan.created",
|
|
224
|
+
"plan.updated",
|
|
225
|
+
"plan.approved",
|
|
226
|
+
"mode.changed",
|
|
227
|
+
"tool.discovery",
|
|
228
|
+
"tool.started",
|
|
229
|
+
"tool.progress",
|
|
230
|
+
"tool.completed",
|
|
231
|
+
"tool.failed",
|
|
232
|
+
"tool.preflight_repaired",
|
|
233
|
+
"tool.attempt_failed",
|
|
234
|
+
"tool.recovery_applied",
|
|
235
|
+
"tool.reconciled",
|
|
236
|
+
"tool.recovery_exhausted",
|
|
237
|
+
"approval.requested",
|
|
238
|
+
"approval.resolved",
|
|
239
|
+
"transaction.started",
|
|
240
|
+
"transaction.committed",
|
|
241
|
+
"transaction.rolled_back",
|
|
242
|
+
"transaction.conflicted",
|
|
243
|
+
"diff.updated",
|
|
244
|
+
"task.created",
|
|
245
|
+
"task.profile_resolved",
|
|
246
|
+
"task.started",
|
|
247
|
+
"task.progress",
|
|
248
|
+
"task.await_interrupted",
|
|
249
|
+
"task.completed",
|
|
250
|
+
"task.failed",
|
|
251
|
+
"task.cancelled",
|
|
252
|
+
"job.started",
|
|
253
|
+
"job.output",
|
|
254
|
+
"job.completed",
|
|
255
|
+
"job.failed",
|
|
256
|
+
"notification.update_available",
|
|
257
|
+
"notification.retry",
|
|
258
|
+
"error.provider",
|
|
259
|
+
"error.protocol",
|
|
260
|
+
"error.internal",
|
|
261
|
+
"usage.updated",
|
|
262
|
+
"permission.changed",
|
|
263
|
+
"token_saving.changed",
|
|
264
|
+
"token_saving.policy_applied",
|
|
265
|
+
"token_saving.relaxed",
|
|
266
|
+
"assistant.thinking",
|
|
267
|
+
"model.capability_snapshot",
|
|
268
|
+
"model.route_decided",
|
|
269
|
+
"model.phase_changed",
|
|
270
|
+
"model.route_changed",
|
|
271
|
+
"model.route_escalated",
|
|
272
|
+
"reasoning.epoch_started",
|
|
273
|
+
"reasoning.epoch_reset",
|
|
274
|
+
"reasoning.context_effective",
|
|
275
|
+
"context.plan_created",
|
|
276
|
+
"context.evidence_selected",
|
|
277
|
+
"context.evidence_invalidated",
|
|
278
|
+
"context.observation_ingested",
|
|
279
|
+
"context.pack_compiled",
|
|
280
|
+
"context.item_evicted",
|
|
281
|
+
"context.evidence_rejected",
|
|
282
|
+
"context.cache_segment",
|
|
283
|
+
"context.scope_created",
|
|
284
|
+
"context.scope_seeded",
|
|
285
|
+
"context.handoff_created",
|
|
286
|
+
"context.handoff_validation_failed",
|
|
287
|
+
"context.handoff_accepted",
|
|
288
|
+
"context.handoff_rejected",
|
|
289
|
+
"context.handoff_consumed",
|
|
290
|
+
"context.scope_disposed",
|
|
291
|
+
"cache.plan_created",
|
|
292
|
+
"cache.write_observed",
|
|
293
|
+
"cache.read_observed",
|
|
294
|
+
"program.started",
|
|
295
|
+
"program.tool_call_started",
|
|
296
|
+
"program.tool_call_completed",
|
|
297
|
+
"program.completed",
|
|
298
|
+
"program.failed",
|
|
299
|
+
"hosted_agent.spawned",
|
|
300
|
+
"hosted_agent.progress",
|
|
301
|
+
"hosted_agent.completed",
|
|
302
|
+
"hosted_agent.cancelled",
|
|
303
|
+
"tool.batch_started",
|
|
304
|
+
"tool.batch_completed",
|
|
305
|
+
"evidence.recorded",
|
|
306
|
+
"evidence.invalidated",
|
|
307
|
+
"verification.coverage_updated",
|
|
308
|
+
"verification.plan_created",
|
|
309
|
+
"verification.step_started",
|
|
310
|
+
"verification.step_completed",
|
|
311
|
+
"verification.escalated",
|
|
312
|
+
"budget.plan_created",
|
|
313
|
+
"budget.reservation_changed",
|
|
314
|
+
"budget.guard_triggered",
|
|
315
|
+
"budget.exhausted",
|
|
316
|
+
"retrieval.plan_created",
|
|
317
|
+
"retrieval.preview_completed",
|
|
318
|
+
"retrieval.exact_selected",
|
|
319
|
+
"retrieval.coverage_updated",
|
|
320
|
+
"retrieval.completed",
|
|
321
|
+
"verification.blocked_completion",
|
|
322
|
+
"run.trace_started",
|
|
323
|
+
"repository.orientation_started",
|
|
324
|
+
"repository.orientation_completed",
|
|
325
|
+
"repository.full_scan_started",
|
|
326
|
+
"repository.full_scan_completed",
|
|
327
|
+
"context.prepare_started",
|
|
328
|
+
"context.prepare_completed",
|
|
329
|
+
"prompt.compile_started",
|
|
330
|
+
"prompt.compile_completed",
|
|
331
|
+
"provider.connection_started",
|
|
332
|
+
"provider.connection_ready",
|
|
333
|
+
"provider.request_sent",
|
|
334
|
+
"provider.response_created",
|
|
335
|
+
"provider.first_delta",
|
|
336
|
+
"provider.response_completed",
|
|
337
|
+
"provider.fallback",
|
|
338
|
+
"verification.started",
|
|
339
|
+
"verification.completed",
|
|
340
|
+
"review.started",
|
|
341
|
+
"review.completed",
|
|
342
|
+
"run.trace_completed"
|
|
343
|
+
]
|
|
344
|
+
},
|
|
345
|
+
"mustJournal": {
|
|
346
|
+
"description": "20.9's MUST-journal set: final text, tool intent and result summaries, approvals, mutations, usage, and task transitions. Every kind here has durability 'journaled' by default and a factory may not weaken it.",
|
|
347
|
+
"type": "array",
|
|
348
|
+
"items": {
|
|
349
|
+
"$ref": "#/$defs/kind"
|
|
350
|
+
}
|
|
351
|
+
},
|
|
352
|
+
"finalStatusPayload": {
|
|
353
|
+
"description": "8.9: the payload of the run.completed event a `cbc run` appends after the turn's single turn.completed. The exitCode here is the same value the process exits with.",
|
|
354
|
+
"type": "object",
|
|
355
|
+
"additionalProperties": false,
|
|
356
|
+
"required": [
|
|
357
|
+
"status",
|
|
358
|
+
"exitCode",
|
|
359
|
+
"changedFiles"
|
|
360
|
+
],
|
|
361
|
+
"properties": {
|
|
362
|
+
"status": {
|
|
363
|
+
"type": "string",
|
|
364
|
+
"enum": [
|
|
365
|
+
"completed",
|
|
366
|
+
"partial",
|
|
367
|
+
"failed",
|
|
368
|
+
"cancelled"
|
|
369
|
+
]
|
|
370
|
+
},
|
|
371
|
+
"exitCode": {
|
|
372
|
+
"type": "integer",
|
|
373
|
+
"minimum": 0,
|
|
374
|
+
"maximum": 10
|
|
375
|
+
},
|
|
376
|
+
"changedFiles": {
|
|
377
|
+
"type": "array",
|
|
378
|
+
"items": {
|
|
379
|
+
"type": "string"
|
|
380
|
+
}
|
|
381
|
+
},
|
|
382
|
+
"tests": {
|
|
383
|
+
"type": "object",
|
|
384
|
+
"additionalProperties": false,
|
|
385
|
+
"required": [
|
|
386
|
+
"passed",
|
|
387
|
+
"failed",
|
|
388
|
+
"notRun"
|
|
389
|
+
],
|
|
390
|
+
"properties": {
|
|
391
|
+
"passed": {
|
|
392
|
+
"type": "integer",
|
|
393
|
+
"minimum": 0
|
|
394
|
+
},
|
|
395
|
+
"failed": {
|
|
396
|
+
"type": "integer",
|
|
397
|
+
"minimum": 0
|
|
398
|
+
},
|
|
399
|
+
"notRun": {
|
|
400
|
+
"type": "integer",
|
|
401
|
+
"minimum": 0
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
},
|
|
405
|
+
"risks": {
|
|
406
|
+
"type": "array",
|
|
407
|
+
"items": {
|
|
408
|
+
"type": "string"
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
},
|
|
414
|
+
"allOf": [
|
|
415
|
+
{
|
|
416
|
+
"if": {
|
|
417
|
+
"properties": {
|
|
418
|
+
"kind": {
|
|
419
|
+
"const": "assistant.thinking"
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
},
|
|
423
|
+
"then": {
|
|
424
|
+
"properties": {
|
|
425
|
+
"payload": {
|
|
426
|
+
"$ref": "#/$defs/thinkingPayload"
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
"if": {
|
|
433
|
+
"properties": {
|
|
434
|
+
"kind": {
|
|
435
|
+
"enum": [
|
|
436
|
+
"program.started",
|
|
437
|
+
"program.tool_call_started",
|
|
438
|
+
"program.tool_call_completed",
|
|
439
|
+
"program.completed",
|
|
440
|
+
"program.failed",
|
|
441
|
+
"hosted_agent.spawned",
|
|
442
|
+
"hosted_agent.progress",
|
|
443
|
+
"hosted_agent.completed",
|
|
444
|
+
"hosted_agent.cancelled",
|
|
445
|
+
"tool.batch_started",
|
|
446
|
+
"tool.batch_completed"
|
|
447
|
+
]
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
},
|
|
451
|
+
"then": {
|
|
452
|
+
"required": [
|
|
453
|
+
"turnId",
|
|
454
|
+
"agentId",
|
|
455
|
+
"callerId",
|
|
456
|
+
"taskEpochId"
|
|
457
|
+
]
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
]
|
|
461
|
+
}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
{
|
|
2
|
+
"x-dialect": "json-schema-draft-2020-12",
|
|
3
|
+
"$id": "cbc:protocol/handshake",
|
|
4
|
+
"title": "runtime.initialize",
|
|
5
|
+
"description": "PRD 20.2. The first exchange on the framed transport. 24.5 forbids overclaiming a sandbox, so every capability in the result is a literal fact about the host rather than an aspirational default; crates/cbc-protocol/src/handshake.rs and packages/protocol-ts/src/client.ts both mirror this.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"$defs": {
|
|
8
|
+
"clientCapabilities": {
|
|
9
|
+
"description": "What the control plane is prepared to handle. Absent fields default to false, so an older client never appears to support something it does not.",
|
|
10
|
+
"type": "object",
|
|
11
|
+
"additionalProperties": false,
|
|
12
|
+
"properties": {
|
|
13
|
+
"pty": {
|
|
14
|
+
"type": "boolean",
|
|
15
|
+
"default": false
|
|
16
|
+
},
|
|
17
|
+
"eventJournal": {
|
|
18
|
+
"type": "boolean",
|
|
19
|
+
"default": false
|
|
20
|
+
},
|
|
21
|
+
"credentialLease": {
|
|
22
|
+
"type": "boolean",
|
|
23
|
+
"default": false
|
|
24
|
+
},
|
|
25
|
+
"artifactHandles": {
|
|
26
|
+
"type": "boolean",
|
|
27
|
+
"default": false
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"interactionMode": {
|
|
32
|
+
"description": "Initial runtime enforcement mode. Plan is read-only and only accepted after startup recovery is quiescent.",
|
|
33
|
+
"type": "string",
|
|
34
|
+
"enum": [
|
|
35
|
+
"build",
|
|
36
|
+
"plan"
|
|
37
|
+
],
|
|
38
|
+
"default": "build"
|
|
39
|
+
},
|
|
40
|
+
"runtimeCapabilities": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"additionalProperties": false,
|
|
43
|
+
"required": [
|
|
44
|
+
"enhancedSandbox",
|
|
45
|
+
"keychain",
|
|
46
|
+
"pty",
|
|
47
|
+
"git",
|
|
48
|
+
"sandboxLevel",
|
|
49
|
+
"sandboxBackends",
|
|
50
|
+
"platform",
|
|
51
|
+
"arch",
|
|
52
|
+
"maxFrameBytes",
|
|
53
|
+
"artifactStore",
|
|
54
|
+
"eventJournal"
|
|
55
|
+
],
|
|
56
|
+
"properties": {
|
|
57
|
+
"enhancedSandbox": {
|
|
58
|
+
"description": "R-06: true only when an OS-level confinement beyond the path guard is actually active.",
|
|
59
|
+
"type": "boolean"
|
|
60
|
+
},
|
|
61
|
+
"keychain": {
|
|
62
|
+
"description": "9.3 storage backend. 'session-only' and 'encrypted-file' are weaker promises than 'os-native' and must be reported as such.",
|
|
63
|
+
"type": "string",
|
|
64
|
+
"enum": [
|
|
65
|
+
"os-native",
|
|
66
|
+
"encrypted-file",
|
|
67
|
+
"session-only",
|
|
68
|
+
"unavailable"
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
"pty": {
|
|
72
|
+
"type": "boolean"
|
|
73
|
+
},
|
|
74
|
+
"git": {
|
|
75
|
+
"type": "boolean"
|
|
76
|
+
},
|
|
77
|
+
"sandboxLevel": {
|
|
78
|
+
"description": "14.4 enforcement level actually achieved on this host.",
|
|
79
|
+
"type": "string",
|
|
80
|
+
"enum": [
|
|
81
|
+
"none",
|
|
82
|
+
"workspace",
|
|
83
|
+
"standard",
|
|
84
|
+
"strict"
|
|
85
|
+
]
|
|
86
|
+
},
|
|
87
|
+
"sandboxBackends": {
|
|
88
|
+
"description": "Named mechanisms in use, e.g. landlock, seccomp, seatbelt. Empty means the path guard alone.",
|
|
89
|
+
"type": "array",
|
|
90
|
+
"items": {
|
|
91
|
+
"type": "string"
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"platform": {
|
|
95
|
+
"type": "string"
|
|
96
|
+
},
|
|
97
|
+
"arch": {
|
|
98
|
+
"type": "string"
|
|
99
|
+
},
|
|
100
|
+
"maxFrameBytes": {
|
|
101
|
+
"type": "integer",
|
|
102
|
+
"minimum": 1
|
|
103
|
+
},
|
|
104
|
+
"artifactStore": {
|
|
105
|
+
"type": "boolean"
|
|
106
|
+
},
|
|
107
|
+
"eventJournal": {
|
|
108
|
+
"type": "boolean"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"initializeParams": {
|
|
113
|
+
"type": "object",
|
|
114
|
+
"additionalProperties": false,
|
|
115
|
+
"required": [
|
|
116
|
+
"protocolVersion",
|
|
117
|
+
"clientVersion",
|
|
118
|
+
"workspace"
|
|
119
|
+
],
|
|
120
|
+
"properties": {
|
|
121
|
+
"protocolVersion": {
|
|
122
|
+
"type": "string",
|
|
123
|
+
"pattern": "^\\d+(\\.\\d+)?$"
|
|
124
|
+
},
|
|
125
|
+
"clientVersion": {
|
|
126
|
+
"type": "string",
|
|
127
|
+
"minLength": 1
|
|
128
|
+
},
|
|
129
|
+
"workspace": {
|
|
130
|
+
"description": "Absolute path. The runtime canonicalizes it independently (14.2); the client's spelling is a request, not a fact.",
|
|
131
|
+
"type": "string",
|
|
132
|
+
"minLength": 1
|
|
133
|
+
},
|
|
134
|
+
"capabilities": {
|
|
135
|
+
"$ref": "#/$defs/clientCapabilities"
|
|
136
|
+
},
|
|
137
|
+
"dataDir": {
|
|
138
|
+
"description": "Overrides the durable data directory. Used by CAPYBARA_DATA_DIR and by tests (21.1).",
|
|
139
|
+
"type": "string"
|
|
140
|
+
},
|
|
141
|
+
"sandboxLevel": {
|
|
142
|
+
"description": "Requested sandbox level from configuration (sandbox.level). The runtime clamps it to what the host can actually enforce (RT-006) and reports only the effective level in its capabilities (24.5); enforcement lives in the runtime, never the control plane (P0-04).",
|
|
143
|
+
"type": "string",
|
|
144
|
+
"enum": [
|
|
145
|
+
"none",
|
|
146
|
+
"workspace",
|
|
147
|
+
"standard",
|
|
148
|
+
"strict"
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
"networkForShell": {
|
|
152
|
+
"description": "sandbox.networkForShell. 'deny' forces network isolation on raw shells; 'ask' and 'allow' leave the per-call decision to the approval flow.",
|
|
153
|
+
"type": "string",
|
|
154
|
+
"enum": [
|
|
155
|
+
"deny",
|
|
156
|
+
"ask",
|
|
157
|
+
"allow"
|
|
158
|
+
]
|
|
159
|
+
},
|
|
160
|
+
"interactionMode": {
|
|
161
|
+
"$ref": "#/$defs/interactionMode",
|
|
162
|
+
"default": "build"
|
|
163
|
+
},
|
|
164
|
+
"capabilityIssuerToken": {
|
|
165
|
+
"description": "Secret control-plane token required for runtime capability issuance.",
|
|
166
|
+
"type": "string",
|
|
167
|
+
"minLength": 32
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
"initializeResult": {
|
|
172
|
+
"type": "object",
|
|
173
|
+
"additionalProperties": false,
|
|
174
|
+
"required": [
|
|
175
|
+
"protocolVersion",
|
|
176
|
+
"runtimeVersion",
|
|
177
|
+
"workspaceId",
|
|
178
|
+
"capabilities"
|
|
179
|
+
],
|
|
180
|
+
"properties": {
|
|
181
|
+
"protocolVersion": {
|
|
182
|
+
"type": "string",
|
|
183
|
+
"pattern": "^\\d+(\\.\\d+)?$"
|
|
184
|
+
},
|
|
185
|
+
"runtimeVersion": {
|
|
186
|
+
"type": "string",
|
|
187
|
+
"minLength": 1
|
|
188
|
+
},
|
|
189
|
+
"workspaceId": {
|
|
190
|
+
"type": "string",
|
|
191
|
+
"minLength": 1
|
|
192
|
+
},
|
|
193
|
+
"capabilities": {
|
|
194
|
+
"$ref": "#/$defs/runtimeCapabilities"
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
"oneOf": [
|
|
200
|
+
{
|
|
201
|
+
"$ref": "#/$defs/initializeParams"
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"$ref": "#/$defs/initializeResult"
|
|
205
|
+
}
|
|
206
|
+
]
|
|
207
|
+
}
|