@mininglamp-oss/octo-runtime-client 0.0.0-stage → 1.1.11

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 (87) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +38 -2
  3. package/build-info.json +5 -0
  4. package/dist/async-question-reply.d.ts +30 -0
  5. package/dist/async-question-reply.js +199 -0
  6. package/dist/browser.d.ts +1 -0
  7. package/dist/browser.js +1 -0
  8. package/dist/client.d.ts +10 -0
  9. package/dist/client.js +465 -0
  10. package/dist/index.d.ts +6 -0
  11. package/dist/index.js +6 -0
  12. package/dist/internal.d.ts +4 -0
  13. package/dist/internal.js +5 -0
  14. package/dist/invocation-lifecycle.d.ts +59 -0
  15. package/dist/invocation-lifecycle.js +287 -0
  16. package/dist/notification.d.ts +1 -0
  17. package/dist/notification.js +1 -0
  18. package/dist/protocol.d.ts +1 -0
  19. package/dist/protocol.js +1 -0
  20. package/dist/runtime-path.d.ts +21 -0
  21. package/dist/runtime-path.js +138 -0
  22. package/dist/startup-catalog.d.ts +8 -0
  23. package/dist/startup-catalog.js +65 -0
  24. package/dist/startup-diagnostics.d.ts +82 -0
  25. package/dist/startup-diagnostics.js +371 -0
  26. package/dist/submission-error.d.ts +10 -0
  27. package/dist/submission-error.js +23 -0
  28. package/dist/types.d.ts +72 -0
  29. package/dist/types.js +10 -0
  30. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/actmode.d.ts +4 -0
  31. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/actmode.js +36 -0
  32. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/adapter-metadata.d.ts +7 -0
  33. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/adapter-metadata.js +1 -0
  34. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/browser.d.ts +7 -0
  35. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/browser.js +6 -0
  36. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/context-catalog.d.ts +11 -0
  37. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/context-catalog.js +33 -0
  38. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/context-configuration.d.ts +5 -0
  39. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/context-configuration.js +58 -0
  40. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/context-hash.d.ts +2 -0
  41. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/context-hash.js +5 -0
  42. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/context.d.ts +29 -0
  43. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/context.js +566 -0
  44. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/execution-plan.d.ts +3 -0
  45. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/execution-plan.js +80 -0
  46. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/experience.d.ts +4 -0
  47. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/experience.js +166 -0
  48. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/failure.d.ts +82 -0
  49. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/failure.js +562 -0
  50. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/generated/protocol-types.d.ts +3022 -0
  51. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/generated/protocol-types.js +6 -0
  52. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/index.d.ts +124 -0
  53. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/index.js +709 -0
  54. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/invoke-input.d.ts +129 -0
  55. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/invoke-input.js +177 -0
  56. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/invoke-size.d.ts +3 -0
  57. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/invoke-size.js +11 -0
  58. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/json-size.d.ts +2 -0
  59. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/json-size.js +91 -0
  60. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/model-context.d.ts +3 -0
  61. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/model-context.js +9 -0
  62. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/multimodal.d.ts +15 -0
  63. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/multimodal.js +166 -0
  64. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/notification.d.ts +2 -0
  65. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/notification.js +137 -0
  66. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/questions.d.ts +9 -0
  67. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/questions.js +84 -0
  68. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/run-protocol.d.ts +20 -0
  69. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/run-protocol.js +294 -0
  70. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/runtime-selection.d.ts +3 -0
  71. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/runtime-selection.js +68 -0
  72. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/service-processes.d.ts +5 -0
  73. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/service-processes.js +65 -0
  74. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/stream-limits.d.ts +27 -0
  75. package/node_modules/@mininglamp-oss/octo-runtime-protocol/dist/stream-limits.js +56 -0
  76. package/node_modules/@mininglamp-oss/octo-runtime-protocol/package.json +15 -0
  77. package/package.json +55 -4
  78. package/schema/context-configuration-fixtures.json +1219 -0
  79. package/schema/context-fixtures.json +5988 -0
  80. package/schema/kernel-client.behavior.json +56 -0
  81. package/schema/kernel-ipc-fixtures.json +53 -0
  82. package/schema/kernel-ipc.schema.json +538 -0
  83. package/schema/native-invoke-fixtures.json +116 -0
  84. package/schema/protocol.schema.json +4525 -0
  85. package/schema/run-protocol-fixtures.json +761 -0
  86. package/schema/runtime-selection-fixtures.json +663 -0
  87. package/schema/session-name-fixtures.json +191 -0
@@ -0,0 +1,1219 @@
1
+ [
2
+ {
3
+ "name": "model-reasoning-inherits-selection",
4
+ "configuration": {
5
+ "defaults": {
6
+ "schema": "octo.context-envelope/v3",
7
+ "items": [
8
+ {
9
+ "namespace": "octo.execution",
10
+ "name": "model",
11
+ "payload": {
12
+ "selection": {
13
+ "id": "default-model"
14
+ },
15
+ "reasoning": {
16
+ "effort": "low"
17
+ }
18
+ }
19
+ }
20
+ ]
21
+ },
22
+ "mandatory": {
23
+ "schema": "octo.context-envelope/v3",
24
+ "items": []
25
+ }
26
+ },
27
+ "request": {
28
+ "schema": "octo.context-envelope/v3",
29
+ "items": [
30
+ {
31
+ "namespace": "octo.execution",
32
+ "name": "model",
33
+ "payload": {
34
+ "reasoning": {
35
+ "effort": "high"
36
+ }
37
+ }
38
+ }
39
+ ]
40
+ },
41
+ "expected": {
42
+ "schema": "octo.context-envelope/v3",
43
+ "items": [
44
+ {
45
+ "namespace": "octo.execution",
46
+ "name": "model",
47
+ "payload": {
48
+ "selection": {
49
+ "id": "default-model"
50
+ },
51
+ "reasoning": {
52
+ "effort": "high"
53
+ }
54
+ }
55
+ }
56
+ ]
57
+ }
58
+ },
59
+ {
60
+ "name": "mandatory-model-does-not-lock-reasoning",
61
+ "configuration": {
62
+ "defaults": {
63
+ "schema": "octo.context-envelope/v3",
64
+ "items": []
65
+ },
66
+ "mandatory": {
67
+ "schema": "octo.context-envelope/v3",
68
+ "items": [
69
+ {
70
+ "namespace": "octo.execution",
71
+ "name": "model",
72
+ "payload": {
73
+ "selection": {
74
+ "id": "fixed-model"
75
+ }
76
+ }
77
+ }
78
+ ]
79
+ }
80
+ },
81
+ "request": {
82
+ "schema": "octo.context-envelope/v3",
83
+ "items": [
84
+ {
85
+ "namespace": "octo.execution",
86
+ "name": "model",
87
+ "payload": {
88
+ "reasoning": {
89
+ "effort": "high"
90
+ }
91
+ }
92
+ }
93
+ ]
94
+ },
95
+ "expected": {
96
+ "schema": "octo.context-envelope/v3",
97
+ "items": [
98
+ {
99
+ "namespace": "octo.execution",
100
+ "name": "model",
101
+ "payload": {
102
+ "selection": {
103
+ "id": "fixed-model"
104
+ },
105
+ "reasoning": {
106
+ "effort": "high"
107
+ }
108
+ }
109
+ }
110
+ ]
111
+ }
112
+ },
113
+ {
114
+ "name": "model-provider-default-replaces-entire-selection",
115
+ "configuration": {
116
+ "defaults": {
117
+ "schema": "octo.context-envelope/v3",
118
+ "items": [
119
+ {
120
+ "namespace": "octo.execution",
121
+ "name": "model",
122
+ "payload": {
123
+ "selection": {
124
+ "id": "old"
125
+ },
126
+ "reasoning": {
127
+ "effort": "low"
128
+ }
129
+ }
130
+ }
131
+ ]
132
+ },
133
+ "mandatory": {
134
+ "schema": "octo.context-envelope/v3",
135
+ "items": []
136
+ }
137
+ },
138
+ "request": {
139
+ "schema": "octo.context-envelope/v3",
140
+ "items": [
141
+ {
142
+ "namespace": "octo.execution",
143
+ "name": "model",
144
+ "payload": {
145
+ "selection": {
146
+ "use_provider_default": true
147
+ }
148
+ }
149
+ }
150
+ ]
151
+ },
152
+ "expected": {
153
+ "schema": "octo.context-envelope/v3",
154
+ "items": [
155
+ {
156
+ "namespace": "octo.execution",
157
+ "name": "model",
158
+ "payload": {
159
+ "selection": {
160
+ "use_provider_default": true
161
+ },
162
+ "reasoning": {
163
+ "effort": "low"
164
+ }
165
+ }
166
+ }
167
+ ]
168
+ }
169
+ },
170
+ {
171
+ "name": "workspace-atomic-replacement",
172
+ "configuration": {
173
+ "defaults": {
174
+ "schema": "octo.context-envelope/v3",
175
+ "items": [
176
+ {
177
+ "namespace": "octo.execution",
178
+ "name": "workspace",
179
+ "payload": {
180
+ "mode": "fixed",
181
+ "path": "/old"
182
+ }
183
+ }
184
+ ]
185
+ },
186
+ "mandatory": {
187
+ "schema": "octo.context-envelope/v3",
188
+ "items": []
189
+ }
190
+ },
191
+ "request": {
192
+ "schema": "octo.context-envelope/v3",
193
+ "items": [
194
+ {
195
+ "namespace": "octo.execution",
196
+ "name": "workspace",
197
+ "payload": {
198
+ "mode": "random"
199
+ }
200
+ }
201
+ ]
202
+ },
203
+ "expected": {
204
+ "schema": "octo.context-envelope/v3",
205
+ "items": [
206
+ {
207
+ "namespace": "octo.execution",
208
+ "name": "workspace",
209
+ "payload": {
210
+ "mode": "random"
211
+ }
212
+ }
213
+ ]
214
+ }
215
+ },
216
+ {
217
+ "name": "adapter-atomic-replacement",
218
+ "configuration": {
219
+ "defaults": {
220
+ "schema": "octo.context-envelope/v3",
221
+ "items": [
222
+ {
223
+ "namespace": "octo.execution",
224
+ "name": "adapter",
225
+ "payload": {
226
+ "type": "openclaw",
227
+ "provider_agent_id": "main"
228
+ }
229
+ }
230
+ ]
231
+ },
232
+ "mandatory": {
233
+ "schema": "octo.context-envelope/v3",
234
+ "items": []
235
+ }
236
+ },
237
+ "request": {
238
+ "schema": "octo.context-envelope/v3",
239
+ "items": [
240
+ {
241
+ "namespace": "octo.execution",
242
+ "name": "adapter",
243
+ "payload": {
244
+ "type": "codex"
245
+ }
246
+ }
247
+ ]
248
+ },
249
+ "expected": {
250
+ "schema": "octo.context-envelope/v3",
251
+ "items": [
252
+ {
253
+ "namespace": "octo.execution",
254
+ "name": "adapter",
255
+ "payload": {
256
+ "type": "codex"
257
+ }
258
+ }
259
+ ]
260
+ }
261
+ },
262
+ {
263
+ "name": "persistent-inline-forbidden",
264
+ "configuration": {
265
+ "defaults": {
266
+ "schema": "octo.context-envelope/v3",
267
+ "items": [
268
+ {
269
+ "namespace": "octo.content",
270
+ "name": "inline",
271
+ "payload": {
272
+ "entries": [
273
+ {
274
+ "text": "request only"
275
+ }
276
+ ]
277
+ }
278
+ }
279
+ ]
280
+ },
281
+ "mandatory": {
282
+ "schema": "octo.context-envelope/v3",
283
+ "items": []
284
+ }
285
+ },
286
+ "request": {
287
+ "schema": "octo.context-envelope/v3",
288
+ "items": []
289
+ },
290
+ "error": "CONTEXT_CONFIGURATION_TYPE_FORBIDDEN"
291
+ },
292
+ {
293
+ "name": "reference-request-replaces-default-by-identity",
294
+ "configuration": {
295
+ "defaults": {
296
+ "schema": "octo.context-envelope/v3",
297
+ "items": [
298
+ {
299
+ "namespace": "octo.content",
300
+ "name": "references",
301
+ "payload": {
302
+ "entries": [
303
+ {
304
+ "resource_ref": "task:1",
305
+ "resolver": "mcp",
306
+ "locator": {
307
+ "server_ref": "octo_task",
308
+ "tool": "task_get_materials"
309
+ },
310
+ "params": {
311
+ "expected_version": 1
312
+ }
313
+ }
314
+ ]
315
+ }
316
+ }
317
+ ]
318
+ },
319
+ "mandatory": {
320
+ "schema": "octo.context-envelope/v3",
321
+ "items": []
322
+ }
323
+ },
324
+ "request": {
325
+ "schema": "octo.context-envelope/v3",
326
+ "items": [
327
+ {
328
+ "namespace": "octo.content",
329
+ "name": "references",
330
+ "payload": {
331
+ "entries": [
332
+ {
333
+ "resource_ref": "task:1",
334
+ "resolver": "mcp",
335
+ "locator": {
336
+ "server_ref": "octo_task",
337
+ "tool": "task_get_materials"
338
+ },
339
+ "params": {
340
+ "expected_version": 2
341
+ }
342
+ }
343
+ ]
344
+ }
345
+ }
346
+ ]
347
+ },
348
+ "error": "CONTEXT_CONFIGURATION_TYPE_FORBIDDEN"
349
+ },
350
+ {
351
+ "name": "mandatory-reference-conflict",
352
+ "configuration": {
353
+ "defaults": {
354
+ "schema": "octo.context-envelope/v3",
355
+ "items": []
356
+ },
357
+ "mandatory": {
358
+ "schema": "octo.context-envelope/v3",
359
+ "items": [
360
+ {
361
+ "namespace": "octo.content",
362
+ "name": "references",
363
+ "payload": {
364
+ "entries": [
365
+ {
366
+ "resource_ref": "task:1",
367
+ "resolver": "mcp",
368
+ "locator": {
369
+ "server_ref": "octo_task",
370
+ "tool": "task_get_materials"
371
+ },
372
+ "params": {
373
+ "expected_version": 1
374
+ }
375
+ }
376
+ ]
377
+ }
378
+ }
379
+ ]
380
+ }
381
+ },
382
+ "request": {
383
+ "schema": "octo.context-envelope/v3",
384
+ "items": [
385
+ {
386
+ "namespace": "octo.content",
387
+ "name": "references",
388
+ "payload": {
389
+ "entries": [
390
+ {
391
+ "resource_ref": "task:1",
392
+ "resolver": "mcp",
393
+ "locator": {
394
+ "server_ref": "octo_task",
395
+ "tool": "task_get_materials"
396
+ },
397
+ "params": {
398
+ "expected_version": 2
399
+ }
400
+ }
401
+ ]
402
+ }
403
+ }
404
+ ]
405
+ },
406
+ "error": "CONTEXT_CONFIGURATION_TYPE_FORBIDDEN"
407
+ },
408
+ {
409
+ "name": "empty",
410
+ "configuration": {
411
+ "defaults": {
412
+ "schema": "octo.context-envelope/v3",
413
+ "items": []
414
+ },
415
+ "mandatory": {
416
+ "schema": "octo.context-envelope/v3",
417
+ "items": []
418
+ }
419
+ },
420
+ "request": {
421
+ "schema": "octo.context-envelope/v3",
422
+ "items": []
423
+ },
424
+ "expected": {
425
+ "schema": "octo.context-envelope/v3",
426
+ "items": []
427
+ }
428
+ },
429
+ {
430
+ "name": "request-overrides-default",
431
+ "configuration": {
432
+ "defaults": {
433
+ "schema": "octo.context-envelope/v3",
434
+ "items": [
435
+ {
436
+ "namespace": "octo.execution",
437
+ "name": "model",
438
+ "payload": {
439
+ "selection": {
440
+ "id": "old"
441
+ }
442
+ }
443
+ }
444
+ ]
445
+ },
446
+ "mandatory": {
447
+ "schema": "octo.context-envelope/v3",
448
+ "items": []
449
+ }
450
+ },
451
+ "request": {
452
+ "schema": "octo.context-envelope/v3",
453
+ "items": [
454
+ {
455
+ "namespace": "octo.execution",
456
+ "name": "model",
457
+ "payload": {
458
+ "selection": {
459
+ "id": "new"
460
+ }
461
+ }
462
+ }
463
+ ]
464
+ },
465
+ "expected": {
466
+ "schema": "octo.context-envelope/v3",
467
+ "items": [
468
+ {
469
+ "namespace": "octo.execution",
470
+ "name": "model",
471
+ "payload": {
472
+ "selection": {
473
+ "id": "new"
474
+ }
475
+ }
476
+ }
477
+ ]
478
+ }
479
+ },
480
+ {
481
+ "name": "mandatory-model-override",
482
+ "configuration": {
483
+ "defaults": {
484
+ "schema": "octo.context-envelope/v3",
485
+ "items": []
486
+ },
487
+ "mandatory": {
488
+ "schema": "octo.context-envelope/v3",
489
+ "items": [
490
+ {
491
+ "namespace": "octo.execution",
492
+ "name": "model",
493
+ "payload": {
494
+ "selection": {
495
+ "id": "fixed"
496
+ }
497
+ }
498
+ }
499
+ ]
500
+ }
501
+ },
502
+ "request": {
503
+ "schema": "octo.context-envelope/v3",
504
+ "items": [
505
+ {
506
+ "namespace": "octo.execution",
507
+ "name": "model",
508
+ "payload": {
509
+ "selection": {
510
+ "id": "other"
511
+ }
512
+ }
513
+ }
514
+ ]
515
+ },
516
+ "expected": {
517
+ "schema": "octo.context-envelope/v3",
518
+ "items": [
519
+ {
520
+ "namespace": "octo.execution",
521
+ "name": "model",
522
+ "payload": {
523
+ "selection": {
524
+ "id": "fixed"
525
+ }
526
+ }
527
+ }
528
+ ]
529
+ }
530
+ },
531
+ {
532
+ "name": "mandatory-runtime-authoritative",
533
+ "configuration": {
534
+ "defaults": {
535
+ "schema": "octo.context-envelope/v3",
536
+ "items": []
537
+ },
538
+ "mandatory": {
539
+ "schema": "octo.context-envelope/v3",
540
+ "items": [
541
+ {
542
+ "namespace": "octo.runtime",
543
+ "name": "selection",
544
+ "payload": {
545
+ "mode": "candidates",
546
+ "runtime_ids": ["device-a", "device-b"],
547
+ "strategy": "preferred_failover",
548
+ "offline_behavior": "wait"
549
+ }
550
+ }
551
+ ]
552
+ }
553
+ },
554
+ "request": {
555
+ "schema": "octo.context-envelope/v3",
556
+ "items": [
557
+ {
558
+ "namespace": "octo.runtime",
559
+ "name": "selection",
560
+ "payload": {
561
+ "mode": "explicit",
562
+ "runtime_id": "device-b"
563
+ }
564
+ }
565
+ ]
566
+ },
567
+ "expected": {
568
+ "schema": "octo.context-envelope/v3",
569
+ "items": [
570
+ {
571
+ "namespace": "octo.runtime",
572
+ "name": "selection",
573
+ "payload": {
574
+ "mode": "candidates",
575
+ "runtime_ids": ["device-a", "device-b"],
576
+ "strategy": "preferred_failover",
577
+ "offline_behavior": "wait"
578
+ }
579
+ }
580
+ ]
581
+ }
582
+ },
583
+ {
584
+ "name": "mandatory-runtime-override-outside",
585
+ "configuration": {
586
+ "defaults": {
587
+ "schema": "octo.context-envelope/v3",
588
+ "items": []
589
+ },
590
+ "mandatory": {
591
+ "schema": "octo.context-envelope/v3",
592
+ "items": [
593
+ {
594
+ "namespace": "octo.runtime",
595
+ "name": "selection",
596
+ "payload": {
597
+ "mode": "candidates",
598
+ "runtime_ids": ["device-a", "device-b"],
599
+ "strategy": "preferred_failover",
600
+ "offline_behavior": "wait"
601
+ }
602
+ }
603
+ ]
604
+ }
605
+ },
606
+ "request": {
607
+ "schema": "octo.context-envelope/v3",
608
+ "items": [
609
+ {
610
+ "namespace": "octo.runtime",
611
+ "name": "selection",
612
+ "payload": {
613
+ "mode": "explicit",
614
+ "runtime_id": "device-c"
615
+ }
616
+ }
617
+ ]
618
+ },
619
+ "expected": {
620
+ "schema": "octo.context-envelope/v3",
621
+ "items": [
622
+ {
623
+ "namespace": "octo.runtime",
624
+ "name": "selection",
625
+ "payload": {
626
+ "mode": "candidates",
627
+ "runtime_ids": ["device-a", "device-b"],
628
+ "strategy": "preferred_failover",
629
+ "offline_behavior": "wait"
630
+ }
631
+ }
632
+ ]
633
+ }
634
+ },
635
+ {
636
+ "name": "mandatory-offline-override",
637
+ "configuration": {
638
+ "defaults": {
639
+ "schema": "octo.context-envelope/v3",
640
+ "items": []
641
+ },
642
+ "mandatory": {
643
+ "schema": "octo.context-envelope/v3",
644
+ "items": [
645
+ {
646
+ "namespace": "octo.runtime",
647
+ "name": "selection",
648
+ "payload": {
649
+ "mode": "candidates",
650
+ "runtime_ids": ["device-a", "device-b"],
651
+ "strategy": "preferred_failover",
652
+ "offline_behavior": "wait"
653
+ }
654
+ }
655
+ ]
656
+ }
657
+ },
658
+ "request": {
659
+ "schema": "octo.context-envelope/v3",
660
+ "items": [
661
+ {
662
+ "namespace": "octo.runtime",
663
+ "name": "selection",
664
+ "payload": {
665
+ "mode": "explicit",
666
+ "runtime_id": "device-a",
667
+ "offline_behavior": "fail"
668
+ }
669
+ }
670
+ ]
671
+ },
672
+ "expected": {
673
+ "schema": "octo.context-envelope/v3",
674
+ "items": [
675
+ {
676
+ "namespace": "octo.runtime",
677
+ "name": "selection",
678
+ "payload": {
679
+ "mode": "candidates",
680
+ "runtime_ids": ["device-a", "device-b"],
681
+ "strategy": "preferred_failover",
682
+ "offline_behavior": "wait"
683
+ }
684
+ }
685
+ ]
686
+ }
687
+ },
688
+ {
689
+ "name": "random-workspace",
690
+ "configuration": {
691
+ "defaults": {
692
+ "schema": "octo.context-envelope/v3",
693
+ "items": [
694
+ {
695
+ "namespace": "octo.execution",
696
+ "name": "workspace",
697
+ "payload": {
698
+ "mode": "random"
699
+ }
700
+ }
701
+ ]
702
+ },
703
+ "mandatory": {
704
+ "schema": "octo.context-envelope/v3",
705
+ "items": []
706
+ }
707
+ },
708
+ "request": {
709
+ "schema": "octo.context-envelope/v3",
710
+ "items": []
711
+ },
712
+ "expected": {
713
+ "schema": "octo.context-envelope/v3",
714
+ "items": [
715
+ {
716
+ "namespace": "octo.execution",
717
+ "name": "workspace",
718
+ "payload": {
719
+ "mode": "random"
720
+ }
721
+ }
722
+ ]
723
+ }
724
+ },
725
+ {
726
+ "name": "ephemeral-default-forbidden",
727
+ "configuration": {
728
+ "defaults": {
729
+ "schema": "octo.context-envelope/v3",
730
+ "items": [
731
+ {
732
+ "namespace": "octo.content",
733
+ "name": "inline",
734
+ "payload": {
735
+ "entries": [
736
+ {
737
+ "text": "ephemeral"
738
+ }
739
+ ]
740
+ }
741
+ }
742
+ ]
743
+ },
744
+ "mandatory": {
745
+ "schema": "octo.context-envelope/v3",
746
+ "items": []
747
+ }
748
+ },
749
+ "request": {
750
+ "schema": "octo.context-envelope/v3",
751
+ "items": []
752
+ },
753
+ "error": "CONTEXT_CONFIGURATION_TYPE_FORBIDDEN"
754
+ },
755
+ {
756
+ "name": "envs-merge-per-key",
757
+ "configuration": {
758
+ "defaults": {
759
+ "schema": "octo.context-envelope/v3",
760
+ "items": [
761
+ {
762
+ "namespace": "octo.execution",
763
+ "name": "envs",
764
+ "payload": {
765
+ "env_variables": [
766
+ {
767
+ "key": "A",
768
+ "value": "default"
769
+ },
770
+ {
771
+ "key": "B",
772
+ "value": "preserved"
773
+ },
774
+ {
775
+ "key": "FIXED",
776
+ "value": "default"
777
+ }
778
+ ]
779
+ }
780
+ }
781
+ ]
782
+ },
783
+ "mandatory": {
784
+ "schema": "octo.context-envelope/v3",
785
+ "items": [
786
+ {
787
+ "namespace": "octo.execution",
788
+ "name": "envs",
789
+ "payload": {
790
+ "env_variables": [
791
+ {
792
+ "key": "FIXED",
793
+ "value": "required"
794
+ }
795
+ ]
796
+ }
797
+ }
798
+ ]
799
+ }
800
+ },
801
+ "request": {
802
+ "schema": "octo.context-envelope/v3",
803
+ "items": [
804
+ {
805
+ "namespace": "octo.execution",
806
+ "name": "envs",
807
+ "payload": {
808
+ "env_variables": [
809
+ {
810
+ "key": "A",
811
+ "value": "request"
812
+ },
813
+ {
814
+ "key": "EMPTY",
815
+ "value": ""
816
+ }
817
+ ]
818
+ }
819
+ }
820
+ ]
821
+ },
822
+ "expected": {
823
+ "schema": "octo.context-envelope/v3",
824
+ "items": [
825
+ {
826
+ "namespace": "octo.execution",
827
+ "name": "envs",
828
+ "payload": {
829
+ "env_variables": [
830
+ {
831
+ "key": "A",
832
+ "value": "request"
833
+ },
834
+ {
835
+ "key": "B",
836
+ "value": "preserved"
837
+ },
838
+ {
839
+ "key": "EMPTY",
840
+ "value": ""
841
+ },
842
+ {
843
+ "key": "FIXED",
844
+ "value": "required"
845
+ }
846
+ ]
847
+ }
848
+ }
849
+ ]
850
+ }
851
+ },
852
+ {
853
+ "name": "envs-mandatory-override",
854
+ "configuration": {
855
+ "defaults": {
856
+ "schema": "octo.context-envelope/v3",
857
+ "items": [
858
+ {
859
+ "namespace": "octo.execution",
860
+ "name": "envs",
861
+ "payload": {
862
+ "env_variables": [
863
+ {
864
+ "key": "A",
865
+ "value": "default"
866
+ },
867
+ {
868
+ "key": "B",
869
+ "value": "preserved"
870
+ },
871
+ {
872
+ "key": "FIXED",
873
+ "value": "default"
874
+ }
875
+ ]
876
+ }
877
+ }
878
+ ]
879
+ },
880
+ "mandatory": {
881
+ "schema": "octo.context-envelope/v3",
882
+ "items": [
883
+ {
884
+ "namespace": "octo.execution",
885
+ "name": "envs",
886
+ "payload": {
887
+ "env_variables": [
888
+ {
889
+ "key": "FIXED",
890
+ "value": "required"
891
+ }
892
+ ]
893
+ }
894
+ }
895
+ ]
896
+ }
897
+ },
898
+ "request": {
899
+ "schema": "octo.context-envelope/v3",
900
+ "items": [
901
+ {
902
+ "namespace": "octo.execution",
903
+ "name": "envs",
904
+ "payload": {
905
+ "env_variables": [
906
+ {
907
+ "key": "FIXED",
908
+ "value": "changed"
909
+ }
910
+ ]
911
+ }
912
+ }
913
+ ]
914
+ },
915
+ "expected": {
916
+ "schema": "octo.context-envelope/v3",
917
+ "items": [
918
+ {
919
+ "namespace": "octo.execution",
920
+ "name": "envs",
921
+ "payload": {
922
+ "env_variables": [
923
+ {
924
+ "key": "A",
925
+ "value": "default"
926
+ },
927
+ {
928
+ "key": "B",
929
+ "value": "preserved"
930
+ },
931
+ {
932
+ "key": "FIXED",
933
+ "value": "required"
934
+ }
935
+ ]
936
+ }
937
+ }
938
+ ]
939
+ }
940
+ },
941
+ {
942
+ "name": "envs-empty-list-preserves-defaults",
943
+ "configuration": {
944
+ "defaults": {
945
+ "schema": "octo.context-envelope/v3",
946
+ "items": [
947
+ {
948
+ "namespace": "octo.execution",
949
+ "name": "envs",
950
+ "payload": {
951
+ "env_variables": [
952
+ {
953
+ "key": "A",
954
+ "value": "default"
955
+ },
956
+ {
957
+ "key": "B",
958
+ "value": "preserved"
959
+ },
960
+ {
961
+ "key": "FIXED",
962
+ "value": "default"
963
+ }
964
+ ]
965
+ }
966
+ }
967
+ ]
968
+ },
969
+ "mandatory": {
970
+ "schema": "octo.context-envelope/v3",
971
+ "items": [
972
+ {
973
+ "namespace": "octo.execution",
974
+ "name": "envs",
975
+ "payload": {
976
+ "env_variables": [
977
+ {
978
+ "key": "FIXED",
979
+ "value": "required"
980
+ }
981
+ ]
982
+ }
983
+ }
984
+ ]
985
+ }
986
+ },
987
+ "request": {
988
+ "schema": "octo.context-envelope/v3",
989
+ "items": [
990
+ {
991
+ "namespace": "octo.execution",
992
+ "name": "envs",
993
+ "payload": {
994
+ "env_variables": []
995
+ }
996
+ }
997
+ ]
998
+ },
999
+ "expected": {
1000
+ "schema": "octo.context-envelope/v3",
1001
+ "items": [
1002
+ {
1003
+ "namespace": "octo.execution",
1004
+ "name": "envs",
1005
+ "payload": {
1006
+ "env_variables": [
1007
+ {
1008
+ "key": "A",
1009
+ "value": "default"
1010
+ },
1011
+ {
1012
+ "key": "B",
1013
+ "value": "preserved"
1014
+ },
1015
+ {
1016
+ "key": "FIXED",
1017
+ "value": "required"
1018
+ }
1019
+ ]
1020
+ }
1021
+ }
1022
+ ]
1023
+ }
1024
+ },
1025
+ {
1026
+ "name": "mandatory-system-instructions",
1027
+ "configuration": {
1028
+ "defaults": {
1029
+ "schema": "octo.context-envelope/v3",
1030
+ "items": []
1031
+ },
1032
+ "mandatory": {
1033
+ "schema": "octo.context-envelope/v3",
1034
+ "items": [
1035
+ {
1036
+ "namespace": "octo.control",
1037
+ "name": "instructions",
1038
+ "payload": {
1039
+ "entries": [
1040
+ {
1041
+ "text": "我是个人助理"
1042
+ }
1043
+ ]
1044
+ }
1045
+ }
1046
+ ]
1047
+ }
1048
+ },
1049
+ "request": {
1050
+ "schema": "octo.context-envelope/v3",
1051
+ "items": []
1052
+ },
1053
+ "expected": {
1054
+ "schema": "octo.context-envelope/v3",
1055
+ "items": [
1056
+ {
1057
+ "namespace": "octo.control",
1058
+ "name": "instructions",
1059
+ "payload": {
1060
+ "entries": [
1061
+ {
1062
+ "text": "我是个人助理"
1063
+ }
1064
+ ]
1065
+ }
1066
+ }
1067
+ ]
1068
+ }
1069
+ },
1070
+ {
1071
+ "name": "system-instructions-default-forbidden",
1072
+ "configuration": {
1073
+ "defaults": {
1074
+ "schema": "octo.context-envelope/v3",
1075
+ "items": [
1076
+ {
1077
+ "namespace": "octo.control",
1078
+ "name": "instructions",
1079
+ "payload": {
1080
+ "entries": [
1081
+ {
1082
+ "text": "我是个人助理"
1083
+ }
1084
+ ]
1085
+ }
1086
+ }
1087
+ ]
1088
+ },
1089
+ "mandatory": {
1090
+ "schema": "octo.context-envelope/v3",
1091
+ "items": []
1092
+ }
1093
+ },
1094
+ "request": {
1095
+ "schema": "octo.context-envelope/v3",
1096
+ "items": []
1097
+ },
1098
+ "error": "CONTEXT_CONFIGURATION_TYPE_FORBIDDEN"
1099
+ },
1100
+ {
1101
+ "name": "mandatory-instructions-cannot-claim-revision",
1102
+ "configuration": {
1103
+ "defaults": {
1104
+ "schema": "octo.context-envelope/v3",
1105
+ "items": []
1106
+ },
1107
+ "mandatory": {
1108
+ "schema": "octo.context-envelope/v3",
1109
+ "items": [
1110
+ {
1111
+ "namespace": "octo.control",
1112
+ "name": "instructions",
1113
+ "payload": {
1114
+ "entries": [
1115
+ {
1116
+ "text": "我是个人助理",
1117
+ "source": "revision"
1118
+ }
1119
+ ]
1120
+ }
1121
+ }
1122
+ ]
1123
+ }
1124
+ },
1125
+ "request": {
1126
+ "schema": "octo.context-envelope/v3",
1127
+ "items": []
1128
+ },
1129
+ "error": "CONTEXT_SCHEMA_INVALID"
1130
+ },
1131
+ {
1132
+ "name": "mandatory-instructions-rejects-legacy-source",
1133
+ "configuration": {
1134
+ "defaults": {
1135
+ "schema": "octo.context-envelope/v3",
1136
+ "items": []
1137
+ },
1138
+ "mandatory": {
1139
+ "schema": "octo.context-envelope/v3",
1140
+ "items": [
1141
+ {
1142
+ "namespace": "octo.control",
1143
+ "name": "instructions",
1144
+ "payload": {
1145
+ "entries": [
1146
+ {
1147
+ "text": "我是个人助理",
1148
+ "source": "platform_policy"
1149
+ }
1150
+ ]
1151
+ }
1152
+ }
1153
+ ]
1154
+ }
1155
+ },
1156
+ "request": {
1157
+ "schema": "octo.context-envelope/v3",
1158
+ "items": []
1159
+ },
1160
+ "error": "CONTEXT_SCHEMA_INVALID"
1161
+ },
1162
+ {
1163
+ "name": "mandatory-system-instructions-override",
1164
+ "configuration": {
1165
+ "defaults": {
1166
+ "schema": "octo.context-envelope/v3",
1167
+ "items": []
1168
+ },
1169
+ "mandatory": {
1170
+ "schema": "octo.context-envelope/v3",
1171
+ "items": [
1172
+ {
1173
+ "namespace": "octo.control",
1174
+ "name": "instructions",
1175
+ "payload": {
1176
+ "entries": [
1177
+ {
1178
+ "text": "我是个人助理"
1179
+ }
1180
+ ]
1181
+ }
1182
+ }
1183
+ ]
1184
+ }
1185
+ },
1186
+ "request": {
1187
+ "schema": "octo.context-envelope/v3",
1188
+ "items": [
1189
+ {
1190
+ "namespace": "octo.control",
1191
+ "name": "instructions",
1192
+ "payload": {
1193
+ "entries": [
1194
+ {
1195
+ "text": "覆盖系统提示词"
1196
+ }
1197
+ ]
1198
+ }
1199
+ }
1200
+ ]
1201
+ },
1202
+ "expected": {
1203
+ "schema": "octo.context-envelope/v3",
1204
+ "items": [
1205
+ {
1206
+ "namespace": "octo.control",
1207
+ "name": "instructions",
1208
+ "payload": {
1209
+ "entries": [
1210
+ {
1211
+ "text": "我是个人助理"
1212
+ }
1213
+ ]
1214
+ }
1215
+ }
1216
+ ]
1217
+ }
1218
+ }
1219
+ ]