@pushpalsdev/cli 1.0.5 → 1.0.7

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 (73) hide show
  1. package/dist/pushpals-cli.js +788 -64
  2. package/package.json +3 -2
  3. package/runtime/.env.example +73 -0
  4. package/runtime/configs/backend.toml +79 -0
  5. package/runtime/configs/default.toml +259 -0
  6. package/runtime/configs/dev.toml +2 -0
  7. package/runtime/configs/local.example.toml +124 -0
  8. package/runtime/prompts/localbuddy/local_quick_reply_json_system_suffix.md +2 -0
  9. package/runtime/prompts/localbuddy/local_quick_reply_system_prompt.md +10 -0
  10. package/runtime/prompts/localbuddy/local_quick_reply_user_prompt.md +2 -0
  11. package/runtime/prompts/localbuddy/localbuddy_planner_git_diff_section.md +3 -0
  12. package/runtime/prompts/localbuddy/localbuddy_planner_git_status_section.md +3 -0
  13. package/runtime/prompts/localbuddy/localbuddy_planner_output_contract.md +5 -0
  14. package/runtime/prompts/localbuddy/localbuddy_planner_user_prompt.md +2 -0
  15. package/runtime/prompts/localbuddy/localbuddy_system_prompt.md +110 -0
  16. package/runtime/prompts/remotebuddy/autonomy_ideation_system_prompt.md +60 -0
  17. package/runtime/prompts/remotebuddy/autonomy_planning_system_prompt.md +5 -0
  18. package/runtime/prompts/remotebuddy/autonomy_scoring_system_prompt.md +6 -0
  19. package/runtime/prompts/remotebuddy/codex_adapter_json_requirements.md +1 -0
  20. package/runtime/prompts/remotebuddy/codex_adapter_json_schema_intro.md +1 -0
  21. package/runtime/prompts/remotebuddy/codex_adapter_max_tokens_line.md +1 -0
  22. package/runtime/prompts/remotebuddy/codex_adapter_prompt_template.md +14 -0
  23. package/runtime/prompts/remotebuddy/context_packer_condensed_history_system_prompt.md +1 -0
  24. package/runtime/prompts/remotebuddy/context_packer_system_prompt.md +1 -0
  25. package/runtime/prompts/remotebuddy/context_packer_user_prompt.md +11 -0
  26. package/runtime/prompts/remotebuddy/fallback_file_system_prompt.md +1 -0
  27. package/runtime/prompts/remotebuddy/fallback_file_user_prompt.md +4 -0
  28. package/runtime/prompts/remotebuddy/planner_post_system_prompt.md +2 -0
  29. package/runtime/prompts/remotebuddy/planner_repair_suffix_prompt.md +1 -0
  30. package/runtime/prompts/remotebuddy/planner_repair_user_prompt.md +7 -0
  31. package/runtime/prompts/remotebuddy/remotebuddy_system_prompt.md +109 -0
  32. package/runtime/prompts/review_agent/fix_job_intro_line.md +1 -0
  33. package/runtime/prompts/review_agent/merge_conflict_context_intro_line.md +1 -0
  34. package/runtime/prompts/review_agent/merge_conflict_instruction.md +4 -0
  35. package/runtime/prompts/review_agent/review_prompt_template.md +18 -0
  36. package/runtime/prompts/review_agent/reviewer.md +39 -0
  37. package/runtime/prompts/shared/post_system_prompt.md +62 -0
  38. package/runtime/prompts/workerpals/codex_quality_critic_instruction_prompt.md +14 -0
  39. package/runtime/prompts/workerpals/commit_message_prompt.md +36 -0
  40. package/runtime/prompts/workerpals/commit_message_user_prompt.md +7 -0
  41. package/runtime/prompts/workerpals/miniswe_broker_system_prompt.md +33 -0
  42. package/runtime/prompts/workerpals/miniswe_broker_task_prompt.md +5 -0
  43. package/runtime/prompts/workerpals/miniswe_completion_requirement.md +1 -0
  44. package/runtime/prompts/workerpals/miniswe_context_compaction_retry_prompt.md +1 -0
  45. package/runtime/prompts/workerpals/miniswe_explicit_targets_block.md +2 -0
  46. package/runtime/prompts/workerpals/miniswe_recovery_guidance_base.md +4 -0
  47. package/runtime/prompts/workerpals/miniswe_recovery_guidance_blocker_line.md +1 -0
  48. package/runtime/prompts/workerpals/miniswe_strict_tool_use_guidance.md +6 -0
  49. package/runtime/prompts/workerpals/miniswe_supplemental_guidance_section.md +2 -0
  50. package/runtime/prompts/workerpals/miniswe_timeout_note.md +1 -0
  51. package/runtime/prompts/workerpals/miniswe_toolcall_retry_guidance.md +1 -0
  52. package/runtime/prompts/workerpals/openai_codex_default_system_prompt.md +4 -0
  53. package/runtime/prompts/workerpals/openai_codex_instruction_wrapper.md +5 -0
  54. package/runtime/prompts/workerpals/openai_codex_runtime_policy_appendix.md +5 -0
  55. package/runtime/prompts/workerpals/openai_codex_supplemental_guidance_section.md +2 -0
  56. package/runtime/prompts/workerpals/openai_codex_task_execute_system_prompt.md +12 -0
  57. package/runtime/prompts/workerpals/openhands_minimal_security_policy.j2 +8 -0
  58. package/runtime/prompts/workerpals/openhands_minimal_system_prompt.j2 +20 -0
  59. package/runtime/prompts/workerpals/openhands_strict_tool_use_message.md +1 -0
  60. package/runtime/prompts/workerpals/openhands_supplemental_guidance_message.md +2 -0
  61. package/runtime/prompts/workerpals/openhands_task_execute_fallback_system_prompt.md +1 -0
  62. package/runtime/prompts/workerpals/openhands_task_execute_system_prompt.md +21 -0
  63. package/runtime/prompts/workerpals/openhands_task_user_prompt.md +6 -0
  64. package/runtime/prompts/workerpals/openhands_timeout_note.md +1 -0
  65. package/runtime/prompts/workerpals/pr_description.md +42 -0
  66. package/runtime/prompts/workerpals/task_quality_critic_system_prompt.md +9 -0
  67. package/runtime/prompts/workerpals/task_quality_critic_user_prompt.md +17 -0
  68. package/runtime/prompts/workerpals/workerpals_system_prompt.md +115 -0
  69. package/runtime/protocol/schemas/approvals.schema.json +6 -0
  70. package/runtime/protocol/schemas/envelope.schema.json +96 -0
  71. package/runtime/protocol/schemas/events.schema.json +679 -0
  72. package/runtime/protocol/schemas/http.schema.json +50 -0
  73. package/runtime/vision.example.md +191 -0
@@ -0,0 +1,679 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "EventTypePayloads",
4
+ "definitions": {
5
+ "artifact": {
6
+ "type": "object",
7
+ "required": ["kind"],
8
+ "properties": {
9
+ "kind": { "type": "string" },
10
+ "uri": { "type": "string" },
11
+ "text": { "type": "string" }
12
+ },
13
+ "additionalProperties": false
14
+ }
15
+ },
16
+ "oneOf": [
17
+ {
18
+ "type": "object",
19
+ "required": ["type", "payload"],
20
+ "properties": {
21
+ "type": { "const": "log" },
22
+ "payload": {
23
+ "type": "object",
24
+ "required": ["level", "message"],
25
+ "properties": {
26
+ "level": { "type": "string", "enum": ["debug", "info", "warn", "error"] },
27
+ "message": { "type": "string" }
28
+ },
29
+ "additionalProperties": false
30
+ }
31
+ },
32
+ "additionalProperties": false
33
+ },
34
+ {
35
+ "type": "object",
36
+ "required": ["type", "payload"],
37
+ "properties": {
38
+ "type": { "const": "scan_result" },
39
+ "payload": {
40
+ "type": "object",
41
+ "required": ["summary", "filesRead", "gitStatusPorcelain", "gitDiff"],
42
+ "properties": {
43
+ "summary": { "type": "string" },
44
+ "filesRead": { "type": "array", "items": { "type": "string" } },
45
+ "gitStatusPorcelain": { "type": "string" },
46
+ "gitDiff": { "type": "string" }
47
+ },
48
+ "additionalProperties": false
49
+ }
50
+ },
51
+ "additionalProperties": false
52
+ },
53
+ {
54
+ "type": "object",
55
+ "required": ["type", "payload"],
56
+ "properties": {
57
+ "type": { "const": "suggestions" },
58
+ "payload": {
59
+ "type": "object",
60
+ "required": ["items"],
61
+ "properties": {
62
+ "items": {
63
+ "type": "array",
64
+ "items": {
65
+ "type": "object",
66
+ "required": ["id", "title", "detail", "effort"],
67
+ "properties": {
68
+ "id": { "type": "string" },
69
+ "title": { "type": "string" },
70
+ "detail": { "type": "string" },
71
+ "effort": { "type": "string", "enum": ["S", "M", "L"] }
72
+ },
73
+ "additionalProperties": false
74
+ }
75
+ }
76
+ },
77
+ "additionalProperties": false
78
+ }
79
+ },
80
+ "additionalProperties": false
81
+ },
82
+ {
83
+ "type": "object",
84
+ "required": ["type", "payload"],
85
+ "properties": {
86
+ "type": { "const": "assistant_message" },
87
+ "payload": {
88
+ "type": "object",
89
+ "required": ["text"],
90
+ "properties": { "text": { "type": "string" } },
91
+ "additionalProperties": false
92
+ }
93
+ },
94
+ "additionalProperties": false
95
+ },
96
+ {
97
+ "type": "object",
98
+ "required": ["type", "payload"],
99
+ "properties": {
100
+ "type": { "const": "diff_ready" },
101
+ "payload": {
102
+ "type": "object",
103
+ "required": ["unifiedDiff", "diffStat", "branch"],
104
+ "properties": {
105
+ "unifiedDiff": { "type": "string" },
106
+ "diffStat": { "type": "string" },
107
+ "branch": { "type": "string" }
108
+ },
109
+ "additionalProperties": false
110
+ }
111
+ },
112
+ "additionalProperties": false
113
+ },
114
+ {
115
+ "type": "object",
116
+ "required": ["type", "payload"],
117
+ "properties": {
118
+ "type": { "const": "approval_required" },
119
+ "payload": {
120
+ "type": "object",
121
+ "required": ["approvalId", "action", "summary", "details"],
122
+ "properties": {
123
+ "approvalId": { "type": "string" },
124
+ "action": { "type": "string", "enum": ["git.commit", "git.push", "other"] },
125
+ "summary": { "type": "string" },
126
+ "details": { "type": "object", "additionalProperties": true }
127
+ },
128
+ "additionalProperties": false
129
+ }
130
+ },
131
+ "additionalProperties": false
132
+ },
133
+ {
134
+ "type": "object",
135
+ "required": ["type", "payload"],
136
+ "properties": {
137
+ "type": { "const": "approved" },
138
+ "payload": {
139
+ "type": "object",
140
+ "required": ["approvalId"],
141
+ "properties": { "approvalId": { "type": "string" } },
142
+ "additionalProperties": false
143
+ }
144
+ },
145
+ "additionalProperties": false
146
+ },
147
+ {
148
+ "type": "object",
149
+ "required": ["type", "payload"],
150
+ "properties": {
151
+ "type": { "const": "denied" },
152
+ "payload": {
153
+ "type": "object",
154
+ "required": ["approvalId"],
155
+ "properties": { "approvalId": { "type": "string" } },
156
+ "additionalProperties": false
157
+ }
158
+ },
159
+ "additionalProperties": false
160
+ },
161
+ {
162
+ "type": "object",
163
+ "required": ["type", "payload"],
164
+ "properties": {
165
+ "type": { "const": "committed" },
166
+ "payload": {
167
+ "type": "object",
168
+ "required": ["branch", "commitHash", "message"],
169
+ "properties": {
170
+ "branch": { "type": "string" },
171
+ "commitHash": { "type": "string" },
172
+ "message": { "type": "string" }
173
+ },
174
+ "additionalProperties": false
175
+ }
176
+ },
177
+ "additionalProperties": false
178
+ },
179
+ {
180
+ "type": "object",
181
+ "required": ["type", "payload"],
182
+ "properties": {
183
+ "type": { "const": "error" },
184
+ "payload": {
185
+ "type": "object",
186
+ "required": ["message"],
187
+ "properties": { "message": { "type": "string" }, "detail": { "type": "string" } },
188
+ "additionalProperties": false
189
+ }
190
+ },
191
+ "additionalProperties": false
192
+ },
193
+ {
194
+ "type": "object",
195
+ "required": ["type", "payload"],
196
+ "properties": {
197
+ "type": { "const": "done" },
198
+ "payload": {
199
+ "type": "object",
200
+ "required": ["ok"],
201
+ "properties": { "ok": { "type": "boolean" } },
202
+ "additionalProperties": false
203
+ }
204
+ },
205
+ "additionalProperties": false
206
+ },
207
+ {
208
+ "type": "object",
209
+ "required": ["type", "payload"],
210
+ "properties": {
211
+ "type": { "const": "agent_status" },
212
+ "payload": {
213
+ "type": "object",
214
+ "required": ["agentId", "status"],
215
+ "properties": {
216
+ "agentId": { "type": "string" },
217
+ "status": { "type": "string", "enum": ["idle", "busy", "error"] },
218
+ "message": { "type": "string" }
219
+ },
220
+ "additionalProperties": false
221
+ }
222
+ },
223
+ "additionalProperties": false
224
+ },
225
+ {
226
+ "type": "object",
227
+ "required": ["type", "payload"],
228
+ "properties": {
229
+ "type": { "const": "task_created" },
230
+ "payload": {
231
+ "type": "object",
232
+ "required": ["taskId", "title", "description", "createdBy"],
233
+ "properties": {
234
+ "taskId": { "type": "string" },
235
+ "title": { "type": "string" },
236
+ "description": { "type": "string" },
237
+ "createdBy": { "type": "string" },
238
+ "priority": { "type": "string" },
239
+ "tags": { "type": "array", "items": { "type": "string" } }
240
+ },
241
+ "additionalProperties": false
242
+ }
243
+ },
244
+ "additionalProperties": false
245
+ },
246
+ {
247
+ "type": "object",
248
+ "required": ["type", "payload"],
249
+ "properties": {
250
+ "type": { "const": "task_started" },
251
+ "payload": {
252
+ "type": "object",
253
+ "required": ["taskId"],
254
+ "properties": { "taskId": { "type": "string" } },
255
+ "additionalProperties": false
256
+ }
257
+ },
258
+ "additionalProperties": false
259
+ },
260
+ {
261
+ "type": "object",
262
+ "required": ["type", "payload"],
263
+ "properties": {
264
+ "type": { "const": "task_progress" },
265
+ "payload": {
266
+ "type": "object",
267
+ "required": ["taskId", "message"],
268
+ "properties": {
269
+ "taskId": { "type": "string" },
270
+ "message": { "type": "string" },
271
+ "percent": { "type": "number", "minimum": 0, "maximum": 100 }
272
+ },
273
+ "additionalProperties": false
274
+ }
275
+ },
276
+ "additionalProperties": false
277
+ },
278
+ {
279
+ "type": "object",
280
+ "required": ["type", "payload"],
281
+ "properties": {
282
+ "type": { "const": "task_completed" },
283
+ "payload": {
284
+ "type": "object",
285
+ "required": ["taskId", "summary"],
286
+ "properties": {
287
+ "taskId": { "type": "string" },
288
+ "summary": { "type": "string" },
289
+ "artifacts": {
290
+ "type": "array",
291
+ "items": { "$ref": "#/definitions/artifact" }
292
+ }
293
+ },
294
+ "additionalProperties": false
295
+ }
296
+ },
297
+ "additionalProperties": false
298
+ },
299
+ {
300
+ "type": "object",
301
+ "required": ["type", "payload"],
302
+ "properties": {
303
+ "type": { "const": "task_failed" },
304
+ "payload": {
305
+ "type": "object",
306
+ "required": ["taskId", "message"],
307
+ "properties": {
308
+ "taskId": { "type": "string" },
309
+ "message": { "type": "string" },
310
+ "detail": { "type": "string" }
311
+ },
312
+ "additionalProperties": false
313
+ }
314
+ },
315
+ "additionalProperties": false
316
+ },
317
+ {
318
+ "type": "object",
319
+ "required": ["type", "payload"],
320
+ "properties": {
321
+ "type": { "const": "tool_call" },
322
+ "payload": {
323
+ "type": "object",
324
+ "required": ["toolCallId", "tool", "args"],
325
+ "properties": {
326
+ "toolCallId": { "type": "string" },
327
+ "taskId": { "type": "string" },
328
+ "tool": { "type": "string" },
329
+ "args": { "type": "object", "additionalProperties": true },
330
+ "requiresApproval": { "type": "boolean" }
331
+ },
332
+ "additionalProperties": false
333
+ }
334
+ },
335
+ "additionalProperties": false
336
+ },
337
+ {
338
+ "type": "object",
339
+ "required": ["type", "payload"],
340
+ "properties": {
341
+ "type": { "const": "tool_result" },
342
+ "payload": {
343
+ "type": "object",
344
+ "required": ["toolCallId", "ok"],
345
+ "properties": {
346
+ "toolCallId": { "type": "string" },
347
+ "taskId": { "type": "string" },
348
+ "ok": { "type": "boolean" },
349
+ "stdout": { "type": "string" },
350
+ "stderr": { "type": "string" },
351
+ "exitCode": { "type": "integer" },
352
+ "artifacts": {
353
+ "type": "array",
354
+ "items": { "$ref": "#/definitions/artifact" }
355
+ }
356
+ },
357
+ "additionalProperties": false
358
+ }
359
+ },
360
+ "additionalProperties": false
361
+ },
362
+ {
363
+ "type": "object",
364
+ "required": ["type", "payload"],
365
+ "properties": {
366
+ "type": { "const": "delegate_request" },
367
+ "payload": {
368
+ "type": "object",
369
+ "required": ["requestId", "toAgentId", "input"],
370
+ "properties": {
371
+ "requestId": { "type": "string" },
372
+ "toAgentId": { "type": "string" },
373
+ "input": { "type": "object", "additionalProperties": true }
374
+ },
375
+ "additionalProperties": false
376
+ }
377
+ },
378
+ "additionalProperties": false
379
+ },
380
+ {
381
+ "type": "object",
382
+ "required": ["type", "payload"],
383
+ "properties": {
384
+ "type": { "const": "delegate_response" },
385
+ "payload": {
386
+ "type": "object",
387
+ "required": ["requestId", "ok"],
388
+ "properties": {
389
+ "requestId": { "type": "string" },
390
+ "ok": { "type": "boolean" },
391
+ "output": { "type": "object", "additionalProperties": true },
392
+ "error": { "type": "string" }
393
+ },
394
+ "additionalProperties": false
395
+ }
396
+ },
397
+ "additionalProperties": false
398
+ },
399
+ {
400
+ "type": "object",
401
+ "required": ["type", "payload"],
402
+ "properties": {
403
+ "type": { "const": "job_enqueued" },
404
+ "payload": {
405
+ "type": "object",
406
+ "required": ["jobId", "taskId", "kind", "params"],
407
+ "properties": {
408
+ "jobId": { "type": "string" },
409
+ "taskId": { "type": "string" },
410
+ "kind": { "type": "string" },
411
+ "params": { "type": "object", "additionalProperties": true },
412
+ "origin": { "type": "string", "enum": ["user", "autonomy"] },
413
+ "autonomy": {
414
+ "type": "object",
415
+ "properties": {
416
+ "objectiveId": { "type": "string" },
417
+ "runId": { "type": "string" },
418
+ "snapshotId": { "type": "string" },
419
+ "patternKey": { "type": "string" }
420
+ },
421
+ "additionalProperties": false
422
+ }
423
+ },
424
+ "additionalProperties": false
425
+ }
426
+ },
427
+ "additionalProperties": false
428
+ },
429
+ {
430
+ "type": "object",
431
+ "required": ["type", "payload"],
432
+ "properties": {
433
+ "type": { "const": "job_claimed" },
434
+ "payload": {
435
+ "type": "object",
436
+ "required": ["jobId", "workerId"],
437
+ "properties": {
438
+ "jobId": { "type": "string" },
439
+ "workerId": { "type": "string" }
440
+ },
441
+ "additionalProperties": false
442
+ }
443
+ },
444
+ "additionalProperties": false
445
+ },
446
+ {
447
+ "type": "object",
448
+ "required": ["type", "payload"],
449
+ "properties": {
450
+ "type": { "const": "job_completed" },
451
+ "payload": {
452
+ "type": "object",
453
+ "required": ["jobId"],
454
+ "properties": {
455
+ "jobId": { "type": "string" },
456
+ "summary": { "type": "string" },
457
+ "artifacts": {
458
+ "type": "array",
459
+ "items": { "$ref": "#/definitions/artifact" }
460
+ }
461
+ },
462
+ "additionalProperties": false
463
+ }
464
+ },
465
+ "additionalProperties": false
466
+ },
467
+ {
468
+ "type": "object",
469
+ "required": ["type", "payload"],
470
+ "properties": {
471
+ "type": { "const": "job_failed" },
472
+ "payload": {
473
+ "type": "object",
474
+ "required": ["jobId", "message"],
475
+ "properties": {
476
+ "jobId": { "type": "string" },
477
+ "message": { "type": "string" },
478
+ "detail": { "type": "string" }
479
+ },
480
+ "additionalProperties": false
481
+ }
482
+ },
483
+ "additionalProperties": false
484
+ },
485
+ {
486
+ "type": "object",
487
+ "required": ["type", "payload"],
488
+ "properties": {
489
+ "type": { "const": "message" },
490
+ "payload": {
491
+ "type": "object",
492
+ "required": ["text"],
493
+ "properties": {
494
+ "text": { "type": "string" },
495
+ "intent": { "type": "object", "additionalProperties": true }
496
+ },
497
+ "additionalProperties": false
498
+ }
499
+ },
500
+ "additionalProperties": false
501
+ },
502
+ {
503
+ "type": "object",
504
+ "required": ["type", "payload"],
505
+ "properties": {
506
+ "type": { "const": "job_log" },
507
+ "payload": {
508
+ "type": "object",
509
+ "required": ["jobId", "stream", "seq", "line"],
510
+ "properties": {
511
+ "jobId": { "type": "string" },
512
+ "stream": { "type": "string", "enum": ["stdout", "stderr"] },
513
+ "seq": { "type": "integer", "minimum": 1 },
514
+ "line": { "type": "string" },
515
+ "ts": { "type": "string" }
516
+ },
517
+ "additionalProperties": false
518
+ }
519
+ },
520
+ "additionalProperties": false
521
+ },
522
+ {
523
+ "type": "object",
524
+ "required": ["type", "payload"],
525
+ "properties": {
526
+ "type": { "const": "status" },
527
+ "payload": {
528
+ "type": "object",
529
+ "required": ["agentId", "state"],
530
+ "properties": {
531
+ "agentId": { "type": "string" },
532
+ "state": { "type": "string", "enum": ["idle", "busy", "error", "shutting_down"] },
533
+ "uptimeMs": { "type": "number" },
534
+ "detail": { "type": "string" }
535
+ },
536
+ "additionalProperties": false
537
+ }
538
+ },
539
+ "additionalProperties": false
540
+ },
541
+ {
542
+ "type": "object",
543
+ "required": ["type", "payload"],
544
+ "properties": {
545
+ "type": { "const": "autonomy_cycle_started" },
546
+ "payload": {
547
+ "type": "object",
548
+ "required": ["runId", "snapshotId"],
549
+ "properties": {
550
+ "runId": { "type": "string" },
551
+ "snapshotId": { "type": "string" },
552
+ "phase": { "type": "string" }
553
+ },
554
+ "additionalProperties": false
555
+ }
556
+ },
557
+ "additionalProperties": false
558
+ },
559
+ {
560
+ "type": "object",
561
+ "required": ["type", "payload"],
562
+ "properties": {
563
+ "type": { "const": "autonomy_candidates_generated" },
564
+ "payload": {
565
+ "type": "object",
566
+ "required": ["runId", "snapshotId", "candidateCount"],
567
+ "properties": {
568
+ "runId": { "type": "string" },
569
+ "snapshotId": { "type": "string" },
570
+ "candidateCount": { "type": "integer", "minimum": 0 },
571
+ "topCandidateIds": { "type": "array", "items": { "type": "string" } }
572
+ },
573
+ "additionalProperties": false
574
+ }
575
+ },
576
+ "additionalProperties": false
577
+ },
578
+ {
579
+ "type": "object",
580
+ "required": ["type", "payload"],
581
+ "properties": {
582
+ "type": { "const": "autonomy_objective_dispatched" },
583
+ "payload": {
584
+ "type": "object",
585
+ "required": ["runId", "snapshotId", "objectiveId", "requestId", "patternKey"],
586
+ "properties": {
587
+ "runId": { "type": "string" },
588
+ "snapshotId": { "type": "string" },
589
+ "objectiveId": { "type": "string" },
590
+ "requestId": { "type": "string" },
591
+ "patternKey": { "type": "string" },
592
+ "origin": { "type": "string", "enum": ["autonomy"] }
593
+ },
594
+ "additionalProperties": false
595
+ }
596
+ },
597
+ "additionalProperties": false
598
+ },
599
+ {
600
+ "type": "object",
601
+ "required": ["type", "payload"],
602
+ "properties": {
603
+ "type": { "const": "autonomy_objective_blocked" },
604
+ "payload": {
605
+ "type": "object",
606
+ "required": ["runId", "snapshotId", "objectiveId", "reason"],
607
+ "properties": {
608
+ "runId": { "type": "string" },
609
+ "snapshotId": { "type": "string" },
610
+ "objectiveId": { "type": "string" },
611
+ "reason": { "type": "string" },
612
+ "questionId": { "type": "string" },
613
+ "patternKey": { "type": "string" },
614
+ "origin": { "type": "string", "enum": ["autonomy"] }
615
+ },
616
+ "additionalProperties": false
617
+ }
618
+ },
619
+ "additionalProperties": false
620
+ },
621
+ {
622
+ "type": "object",
623
+ "required": ["type", "payload"],
624
+ "properties": {
625
+ "type": { "const": "autonomy_feedback_recorded" },
626
+ "payload": {
627
+ "type": "object",
628
+ "required": ["objectiveId", "patternKey", "outcome", "success"],
629
+ "properties": {
630
+ "objectiveId": { "type": "string" },
631
+ "patternKey": { "type": "string" },
632
+ "outcome": { "type": "string" },
633
+ "success": { "type": "boolean" }
634
+ },
635
+ "additionalProperties": false
636
+ }
637
+ },
638
+ "additionalProperties": false
639
+ },
640
+ {
641
+ "type": "object",
642
+ "required": ["type", "payload"],
643
+ "properties": {
644
+ "type": { "const": "question_asked" },
645
+ "payload": {
646
+ "type": "object",
647
+ "required": ["questionId", "objectiveId", "question", "questionType"],
648
+ "properties": {
649
+ "questionId": { "type": "string" },
650
+ "objectiveId": { "type": "string" },
651
+ "question": { "type": "string" },
652
+ "questionType": { "type": "string" }
653
+ },
654
+ "additionalProperties": false
655
+ }
656
+ },
657
+ "additionalProperties": false
658
+ },
659
+ {
660
+ "type": "object",
661
+ "required": ["type", "payload"],
662
+ "properties": {
663
+ "type": { "const": "question_answered" },
664
+ "payload": {
665
+ "type": "object",
666
+ "required": ["questionId", "objectiveId", "status"],
667
+ "properties": {
668
+ "questionId": { "type": "string" },
669
+ "objectiveId": { "type": "string" },
670
+ "status": { "type": "string", "enum": ["valid", "invalid"] },
671
+ "answerSummary": { "type": "string" }
672
+ },
673
+ "additionalProperties": false
674
+ }
675
+ },
676
+ "additionalProperties": false
677
+ }
678
+ ]
679
+ }