@zhivex-ai/harness 1.4.0 → 1.4.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 (117) hide show
  1. package/CHANGELOG.md +29 -10
  2. package/README.md +7 -5
  3. package/SUPPORT.md +2 -2
  4. package/contracts/client-protocol-v1.schema.json +593 -0
  5. package/contracts/engine-api.json +156 -0
  6. package/contracts/public-api.json +12 -0
  7. package/contracts/stable-api-signatures.json +33 -33
  8. package/dist/acp-cli.js +54 -20
  9. package/dist/audit/index.d.ts +3 -0
  10. package/dist/audit/index.js +482 -0
  11. package/dist/audit/pack.d.ts +72 -0
  12. package/dist/audit-pack-e4vaq7np.js +532 -0
  13. package/dist/cli/arguments.d.ts +3 -1
  14. package/dist/cli/audit-pack.d.ts +24 -0
  15. package/dist/cli/cli-credentials.d.ts +6 -0
  16. package/dist/cli/cli-profiles.d.ts +4 -2
  17. package/dist/cli/node-engine.d.ts +2 -0
  18. package/dist/{cli-2h37qyvg.js → cli-1cf4dcnj.js} +245 -642
  19. package/dist/{cli-entry-w0hterjs.js → cli-entry-3s63zn4w.js} +40 -13
  20. package/dist/cli-entry-7f0cen32.js +9990 -0
  21. package/dist/cli-entry-a890x3kq.js +10348 -0
  22. package/dist/{cli-entry-20w6nh0k.js → cli-entry-hdtfef27.js} +439 -19
  23. package/dist/cli-entry-rgs6bxmy.js +484 -0
  24. package/dist/cli.js +27 -2
  25. package/dist/client/json-contracts.d.ts +4 -0
  26. package/dist/client/protocol.d.ts +133 -0
  27. package/dist/client/task-control-host.d.ts +400 -0
  28. package/dist/client/task-projection-host.d.ts +12 -0
  29. package/dist/client/task-projection.d.ts +168 -0
  30. package/dist/compat/code-support.js +28 -22
  31. package/dist/{config-qt69hkqj.js → config-r9fdhce6.js} +3 -3
  32. package/dist/{config-j9624t6t.js → config-vyajmksy.js} +1 -1
  33. package/dist/engine/acp.js +15 -11
  34. package/dist/engine/client.js +14 -10
  35. package/dist/engine/desktop-providers-v1.d.ts +2 -0
  36. package/dist/engine/desktop-providers-v1.js +23 -3
  37. package/dist/engine/desktop-state-v1.js +11 -8
  38. package/dist/engine/index.d.ts +3 -0
  39. package/dist/engine/index.js +101 -554
  40. package/dist/engine/mcp-stdio-v1.js +8 -6
  41. package/dist/engine/models.js +76 -4
  42. package/dist/engine/protocol.d.ts +2 -0
  43. package/dist/engine/protocol.js +110 -0
  44. package/dist/engine/service.js +15 -11
  45. package/dist/hostile-repository-demo.js +1095 -505
  46. package/dist/{index-937cb7y8.js → index-02pqtbbg.js} +559 -33
  47. package/dist/{index-pp474137.js → index-0zs2dz26.js} +766 -931
  48. package/dist/{index-8zjmnyw5.js → index-1265j7t2.js} +73 -6
  49. package/dist/index-4fx5f3k5.js +269 -0
  50. package/dist/{index-nmjdwd4p.js → index-4gt045j0.js} +109 -1
  51. package/dist/{index-6dft2vev.js → index-6599mpmy.js} +5 -3
  52. package/dist/{index-tfzta544.js → index-74kkpyqk.js} +9 -7
  53. package/dist/{index-61gthdz6.js → index-8sm2a1wa.js} +1 -1
  54. package/dist/index-c39197wq.js +552 -0
  55. package/dist/{index-5jhgatga.js → index-crta5wzv.js} +7 -6
  56. package/dist/{index-m34q25jj.js → index-d9zkmhz3.js} +143 -824
  57. package/dist/{index-pdmevfxv.js → index-dtb2c6ds.js} +5 -259
  58. package/dist/index-f6mqa5gk.js +1535 -0
  59. package/dist/index-j6zxnc8m.js +490 -0
  60. package/dist/{index-rkbf7dqg.js → index-mv8sb1ns.js} +5 -3
  61. package/dist/{index-xqxeypt5.js → index-mzydbzp8.js} +76 -4
  62. package/dist/{index-wg1sd3at.js → index-qfsrrnz6.js} +1 -1
  63. package/dist/{index-m82cfspw.js → index-sk3cap35.js} +877 -963
  64. package/dist/index-sstgcsr0.js +511 -0
  65. package/dist/index-wm9xeq1n.js +329 -0
  66. package/dist/index-xdbkcccf.js +719 -0
  67. package/dist/{index-s2k2edts.js → index-zxg4ve4j.js} +41 -1548
  68. package/dist/index.d.ts +3 -0
  69. package/dist/index.js +93 -77
  70. package/dist/internal/desktop/providers.d.ts +2 -0
  71. package/dist/models/catalog.d.ts +2 -0
  72. package/dist/persistence/sqlite-database.d.ts +1 -0
  73. package/dist/providers/azure-openai.d.ts +14 -0
  74. package/dist/providers/bedrock.d.ts +23 -0
  75. package/dist/providers/providers.d.ts +1 -1
  76. package/dist/runtime/durable-review-group.d.ts +33 -0
  77. package/dist/runtime/harness.d.ts +11 -0
  78. package/dist/runtime/run-interruption.d.ts +7 -0
  79. package/dist/runtime/shared-budget.d.ts +30 -0
  80. package/dist/runtime/task-continuity.d.ts +300 -77
  81. package/dist/service-cli.js +15 -11
  82. package/dist/{service-client-cli-fn54ev6w.js → service-client-cli-eqrdc9zq.js} +400 -305
  83. package/dist/verify-historical-migrations.js +1095 -505
  84. package/dist/zhx.js +27 -2
  85. package/docs/AUDIT_PACK.md +99 -0
  86. package/docs/AZURE_OPENAI.md +53 -0
  87. package/docs/BEDROCK.md +56 -0
  88. package/docs/CLI.md +15 -0
  89. package/docs/CLIENT_PROTOCOL.md +178 -0
  90. package/docs/CODE_RELEASE.md +31 -1
  91. package/docs/CODE_WEB_TASKS.md +116 -0
  92. package/docs/CONTEXT_ENGINEERING.md +59 -0
  93. package/docs/CREDENTIALS.md +21 -0
  94. package/docs/DURABLE_OPERATIONS.md +93 -1
  95. package/docs/ENGINE_API.md +5 -2
  96. package/docs/EXTENSIBILITY.md +2 -2
  97. package/docs/FIRST_USE.md +6 -6
  98. package/docs/MINIMUM_TASK_AUTHORITY.md +3 -3
  99. package/docs/PROJECT_MEMORY.md +1 -1
  100. package/docs/README.md +6 -1
  101. package/docs/STABILITY.md +3 -1
  102. package/docs/SUPPORT_MATRIX.md +1 -1
  103. package/docs/SUPPORT_MATRIX_1_1.md +1 -1
  104. package/docs/USAGE.md +3 -1
  105. package/docs/VERTEX.md +2 -2
  106. package/docs/WEB_LIMITS.md +4 -3
  107. package/docs/adr/0002-isolated-mcp-stdio.md +6 -3
  108. package/docs/support-matrix-1.1.json +3 -1
  109. package/docs/support-matrix.json +6 -4
  110. package/evaluations/code-task-ui.json +20 -0
  111. package/evaluations/representative-assembly-matrix.json +10 -1
  112. package/evaluations/task-projection.json +10 -0
  113. package/evaluations/task-recovery-lab.json +60 -0
  114. package/examples/README.md +3 -3
  115. package/package.json +23 -13
  116. package/dist/cli-entry-4ngptr62.js +0 -19900
  117. package/dist/index-m49jx72n.js +0 -220
@@ -34,6 +34,24 @@
34
34
  ],
35
35
  "additionalProperties": false
36
36
  },
37
+ {
38
+ "type": "object",
39
+ "properties": {
40
+ "method": {
41
+ "type": "string",
42
+ "const": "policy.get"
43
+ },
44
+ "projectId": {
45
+ "type": "string",
46
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
47
+ }
48
+ },
49
+ "required": [
50
+ "method",
51
+ "projectId"
52
+ ],
53
+ "additionalProperties": false
54
+ },
37
55
  {
38
56
  "type": "object",
39
57
  "properties": {
@@ -145,6 +163,280 @@
145
163
  ],
146
164
  "additionalProperties": false
147
165
  },
166
+ {
167
+ "type": "object",
168
+ "properties": {
169
+ "method": {
170
+ "type": "string",
171
+ "const": "checkpoint.list"
172
+ },
173
+ "projectId": {
174
+ "type": "string",
175
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
176
+ },
177
+ "sessionId": {
178
+ "type": "string",
179
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
180
+ }
181
+ },
182
+ "required": [
183
+ "method",
184
+ "projectId",
185
+ "sessionId"
186
+ ],
187
+ "additionalProperties": false
188
+ },
189
+ {
190
+ "type": "object",
191
+ "properties": {
192
+ "method": {
193
+ "type": "string",
194
+ "const": "checkpoint.inspect"
195
+ },
196
+ "projectId": {
197
+ "type": "string",
198
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
199
+ },
200
+ "sessionId": {
201
+ "type": "string",
202
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
203
+ },
204
+ "checkpointId": {
205
+ "type": "string",
206
+ "format": "uuid",
207
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
208
+ }
209
+ },
210
+ "required": [
211
+ "method",
212
+ "projectId",
213
+ "sessionId",
214
+ "checkpointId"
215
+ ],
216
+ "additionalProperties": false
217
+ },
218
+ {
219
+ "type": "object",
220
+ "properties": {
221
+ "method": {
222
+ "type": "string",
223
+ "const": "checkpoint.capture"
224
+ },
225
+ "projectId": {
226
+ "type": "string",
227
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
228
+ },
229
+ "sessionId": {
230
+ "type": "string",
231
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
232
+ },
233
+ "idempotencyKey": {
234
+ "type": "string",
235
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
236
+ },
237
+ "expectedRevision": {
238
+ "type": "integer",
239
+ "minimum": 0,
240
+ "maximum": 9007199254740991
241
+ },
242
+ "turnId": {
243
+ "type": "string",
244
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
245
+ },
246
+ "paths": {
247
+ "minItems": 1,
248
+ "maxItems": 20,
249
+ "type": "array",
250
+ "items": {
251
+ "type": "string",
252
+ "minLength": 1,
253
+ "maxLength": 1024
254
+ }
255
+ }
256
+ },
257
+ "required": [
258
+ "method",
259
+ "projectId",
260
+ "sessionId",
261
+ "idempotencyKey",
262
+ "expectedRevision",
263
+ "turnId",
264
+ "paths"
265
+ ],
266
+ "additionalProperties": false
267
+ },
268
+ {
269
+ "type": "object",
270
+ "properties": {
271
+ "method": {
272
+ "type": "string",
273
+ "const": "restore.prepare"
274
+ },
275
+ "projectId": {
276
+ "type": "string",
277
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
278
+ },
279
+ "sessionId": {
280
+ "type": "string",
281
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
282
+ },
283
+ "checkpointId": {
284
+ "type": "string",
285
+ "format": "uuid",
286
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
287
+ },
288
+ "idempotencyKey": {
289
+ "type": "string",
290
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
291
+ },
292
+ "expectedRevision": {
293
+ "type": "integer",
294
+ "minimum": 0,
295
+ "maximum": 9007199254740991
296
+ },
297
+ "expected": {
298
+ "type": "object",
299
+ "propertyNames": {
300
+ "type": "string",
301
+ "minLength": 1,
302
+ "maxLength": 1024
303
+ },
304
+ "additionalProperties": {
305
+ "type": "string",
306
+ "pattern": "^sha256:[a-f0-9]{64}$"
307
+ }
308
+ }
309
+ },
310
+ "required": [
311
+ "method",
312
+ "projectId",
313
+ "sessionId",
314
+ "checkpointId",
315
+ "idempotencyKey",
316
+ "expectedRevision",
317
+ "expected"
318
+ ],
319
+ "additionalProperties": false
320
+ },
321
+ {
322
+ "type": "object",
323
+ "properties": {
324
+ "method": {
325
+ "type": "string",
326
+ "const": "restore.get"
327
+ },
328
+ "projectId": {
329
+ "type": "string",
330
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
331
+ },
332
+ "sessionId": {
333
+ "type": "string",
334
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
335
+ },
336
+ "operationId": {
337
+ "type": "string",
338
+ "format": "uuid",
339
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
340
+ }
341
+ },
342
+ "required": [
343
+ "method",
344
+ "projectId",
345
+ "sessionId",
346
+ "operationId"
347
+ ],
348
+ "additionalProperties": false
349
+ },
350
+ {
351
+ "type": "object",
352
+ "properties": {
353
+ "method": {
354
+ "type": "string",
355
+ "const": "restore.apply"
356
+ },
357
+ "projectId": {
358
+ "type": "string",
359
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
360
+ },
361
+ "sessionId": {
362
+ "type": "string",
363
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
364
+ },
365
+ "operationId": {
366
+ "type": "string",
367
+ "format": "uuid",
368
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
369
+ },
370
+ "idempotencyKey": {
371
+ "type": "string",
372
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
373
+ },
374
+ "expectedRevision": {
375
+ "type": "integer",
376
+ "minimum": 0,
377
+ "maximum": 9007199254740991
378
+ },
379
+ "reviewedProposalId": {
380
+ "type": "string",
381
+ "pattern": "^sha256:[a-f0-9]{64}$"
382
+ }
383
+ },
384
+ "required": [
385
+ "method",
386
+ "projectId",
387
+ "sessionId",
388
+ "operationId",
389
+ "idempotencyKey",
390
+ "expectedRevision",
391
+ "reviewedProposalId"
392
+ ],
393
+ "additionalProperties": false
394
+ },
395
+ {
396
+ "type": "object",
397
+ "properties": {
398
+ "method": {
399
+ "type": "string",
400
+ "const": "restore.recoverFork"
401
+ },
402
+ "projectId": {
403
+ "type": "string",
404
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
405
+ },
406
+ "sessionId": {
407
+ "type": "string",
408
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
409
+ },
410
+ "operationId": {
411
+ "type": "string",
412
+ "format": "uuid",
413
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
414
+ },
415
+ "idempotencyKey": {
416
+ "type": "string",
417
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
418
+ },
419
+ "expectedRevision": {
420
+ "type": "integer",
421
+ "minimum": 0,
422
+ "maximum": 9007199254740991
423
+ },
424
+ "forkSessionId": {
425
+ "type": "string",
426
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
427
+ }
428
+ },
429
+ "required": [
430
+ "method",
431
+ "projectId",
432
+ "sessionId",
433
+ "operationId",
434
+ "idempotencyKey",
435
+ "expectedRevision",
436
+ "forkSessionId"
437
+ ],
438
+ "additionalProperties": false
439
+ },
148
440
  {
149
441
  "type": "object",
150
442
  "properties": {
@@ -185,6 +477,304 @@
185
477
  ],
186
478
  "additionalProperties": false
187
479
  },
480
+ {
481
+ "type": "object",
482
+ "properties": {
483
+ "method": {
484
+ "type": "string",
485
+ "const": "task.start"
486
+ },
487
+ "projectId": {
488
+ "type": "string",
489
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
490
+ },
491
+ "sessionId": {
492
+ "type": "string",
493
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
494
+ },
495
+ "idempotencyKey": {
496
+ "type": "string",
497
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
498
+ },
499
+ "expectedRevision": {
500
+ "type": "integer",
501
+ "minimum": 0,
502
+ "maximum": 9007199254740991
503
+ },
504
+ "brief": {
505
+ "type": "object",
506
+ "properties": {
507
+ "goal": {
508
+ "type": "string",
509
+ "minLength": 1,
510
+ "maxLength": 2000
511
+ },
512
+ "paths": {
513
+ "minItems": 1,
514
+ "maxItems": 20,
515
+ "type": "array",
516
+ "items": {
517
+ "type": "string",
518
+ "minLength": 1,
519
+ "maxLength": 1024
520
+ }
521
+ },
522
+ "checks": {
523
+ "minItems": 1,
524
+ "maxItems": 8,
525
+ "type": "array",
526
+ "items": {
527
+ "type": "string",
528
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
529
+ }
530
+ },
531
+ "constraints": {
532
+ "maxItems": 8,
533
+ "type": "array",
534
+ "items": {
535
+ "type": "string",
536
+ "minLength": 1,
537
+ "maxLength": 500
538
+ }
539
+ },
540
+ "budget": {
541
+ "type": "object",
542
+ "properties": {
543
+ "inputTokens": {
544
+ "type": "integer",
545
+ "exclusiveMinimum": 0,
546
+ "maximum": 9007199254740991
547
+ },
548
+ "outputTokens": {
549
+ "type": "integer",
550
+ "exclusiveMinimum": 0,
551
+ "maximum": 9007199254740991
552
+ },
553
+ "totalTokens": {
554
+ "type": "integer",
555
+ "exclusiveMinimum": 0,
556
+ "maximum": 9007199254740991
557
+ }
558
+ },
559
+ "required": [
560
+ "inputTokens",
561
+ "outputTokens",
562
+ "totalTokens"
563
+ ],
564
+ "additionalProperties": false
565
+ }
566
+ },
567
+ "required": [
568
+ "goal",
569
+ "paths",
570
+ "checks",
571
+ "constraints",
572
+ "budget"
573
+ ],
574
+ "additionalProperties": false
575
+ }
576
+ },
577
+ "required": [
578
+ "method",
579
+ "projectId",
580
+ "sessionId",
581
+ "idempotencyKey",
582
+ "expectedRevision",
583
+ "brief"
584
+ ],
585
+ "additionalProperties": false
586
+ },
587
+ {
588
+ "type": "object",
589
+ "properties": {
590
+ "method": {
591
+ "type": "string",
592
+ "const": "task.review"
593
+ },
594
+ "projectId": {
595
+ "type": "string",
596
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
597
+ },
598
+ "sessionId": {
599
+ "type": "string",
600
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
601
+ },
602
+ "runId": {
603
+ "type": "string",
604
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
605
+ }
606
+ },
607
+ "required": [
608
+ "method",
609
+ "projectId",
610
+ "sessionId",
611
+ "runId"
612
+ ],
613
+ "additionalProperties": false
614
+ },
615
+ {
616
+ "type": "object",
617
+ "properties": {
618
+ "method": {
619
+ "type": "string",
620
+ "const": "task.keep"
621
+ },
622
+ "projectId": {
623
+ "type": "string",
624
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
625
+ },
626
+ "sessionId": {
627
+ "type": "string",
628
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
629
+ },
630
+ "runId": {
631
+ "type": "string",
632
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
633
+ },
634
+ "idempotencyKey": {
635
+ "type": "string",
636
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
637
+ },
638
+ "reviewId": {
639
+ "type": "string",
640
+ "format": "uuid",
641
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
642
+ }
643
+ },
644
+ "required": [
645
+ "method",
646
+ "projectId",
647
+ "sessionId",
648
+ "runId",
649
+ "idempotencyKey",
650
+ "reviewId"
651
+ ],
652
+ "additionalProperties": false
653
+ },
654
+ {
655
+ "type": "object",
656
+ "properties": {
657
+ "method": {
658
+ "type": "string",
659
+ "const": "task.revise"
660
+ },
661
+ "projectId": {
662
+ "type": "string",
663
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
664
+ },
665
+ "sessionId": {
666
+ "type": "string",
667
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
668
+ },
669
+ "runId": {
670
+ "type": "string",
671
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
672
+ },
673
+ "idempotencyKey": {
674
+ "type": "string",
675
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
676
+ },
677
+ "reviewId": {
678
+ "type": "string",
679
+ "format": "uuid",
680
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
681
+ },
682
+ "correction": {
683
+ "type": "string",
684
+ "minLength": 1,
685
+ "maxLength": 500
686
+ }
687
+ },
688
+ "required": [
689
+ "method",
690
+ "projectId",
691
+ "sessionId",
692
+ "runId",
693
+ "idempotencyKey",
694
+ "reviewId",
695
+ "correction"
696
+ ],
697
+ "additionalProperties": false
698
+ },
699
+ {
700
+ "type": "object",
701
+ "properties": {
702
+ "method": {
703
+ "type": "string",
704
+ "const": "task.continue"
705
+ },
706
+ "projectId": {
707
+ "type": "string",
708
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
709
+ },
710
+ "sessionId": {
711
+ "type": "string",
712
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
713
+ },
714
+ "runId": {
715
+ "type": "string",
716
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
717
+ },
718
+ "idempotencyKey": {
719
+ "type": "string",
720
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
721
+ },
722
+ "reviewId": {
723
+ "type": "string",
724
+ "format": "uuid",
725
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
726
+ },
727
+ "prompt": {
728
+ "type": "string",
729
+ "minLength": 1,
730
+ "maxLength": 2000
731
+ }
732
+ },
733
+ "required": [
734
+ "method",
735
+ "projectId",
736
+ "sessionId",
737
+ "runId",
738
+ "idempotencyKey",
739
+ "reviewId",
740
+ "prompt"
741
+ ],
742
+ "additionalProperties": false
743
+ },
744
+ {
745
+ "type": "object",
746
+ "properties": {
747
+ "method": {
748
+ "type": "string",
749
+ "const": "task.get"
750
+ },
751
+ "projectId": {
752
+ "type": "string",
753
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
754
+ },
755
+ "sessionId": {
756
+ "type": "string",
757
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
758
+ },
759
+ "runId": {
760
+ "type": "string",
761
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
762
+ },
763
+ "projectionVersion": {
764
+ "type": "integer",
765
+ "minimum": 0,
766
+ "maximum": 9007199254740991
767
+ }
768
+ },
769
+ "required": [
770
+ "method",
771
+ "projectId",
772
+ "sessionId",
773
+ "runId",
774
+ "projectionVersion"
775
+ ],
776
+ "additionalProperties": false
777
+ },
188
778
  {
189
779
  "type": "object",
190
780
  "properties": {
@@ -207,6 +797,9 @@
207
797
  "includeReview": {
208
798
  "type": "boolean"
209
799
  },
800
+ "includeDiff": {
801
+ "type": "boolean"
802
+ },
210
803
  "decisionOffset": {
211
804
  "type": "integer",
212
805
  "minimum": 0,