@mmerterden/multi-agent-pipeline 20.30.0 → 20.33.0

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 (120) hide show
  1. package/CHANGELOG.md +80 -0
  2. package/README.md +45 -0
  3. package/README.tr.md +59 -0
  4. package/docs/facts.json +3 -3
  5. package/install/_unattended-profile.mjs +61 -0
  6. package/install/catalog-history.json +1 -1
  7. package/install/claude.mjs +9 -2
  8. package/install/index.mjs +10 -1
  9. package/install/templates/claude-hooks.json +12 -1
  10. package/manifest.json +123 -82
  11. package/package.json +2 -1
  12. package/pipeline/commands/multi-agent/analysis/SKILL.md +4 -4
  13. package/pipeline/commands/multi-agent/office-on/SKILL.md +8 -7
  14. package/pipeline/commands/multi-agent/office-status/SKILL.md +1 -1
  15. package/pipeline/commands/multi-agent/prune-logs/SKILL.md +4 -1
  16. package/pipeline/commands/multi-agent/review/SKILL.md +4 -3
  17. package/pipeline/commands/multi-agent/scenario-audit/SKILL.md +4 -2
  18. package/pipeline/commands/multi-agent/sync/SKILL.md +12 -0
  19. package/pipeline/commands/multi-agent/test-gen/SKILL.md +29 -3
  20. package/pipeline/contract/CHANGELOG.md +46 -0
  21. package/pipeline/contract/README.md +22 -8
  22. package/pipeline/contract/fixtures/error-invalid-request.json +1 -1
  23. package/pipeline/contract/fixtures/error-unauthorized.json +1 -1
  24. package/pipeline/contract/fixtures/error-unsigned.json +1 -1
  25. package/pipeline/contract/fixtures/launch-plan.json +1 -1
  26. package/pipeline/contract/fixtures/runs-awaiting-question.json +6 -1
  27. package/pipeline/contract/fixtures/runs-empty.json +1 -1
  28. package/pipeline/contract/fixtures/runs-failed.json +6 -1
  29. package/pipeline/contract/fixtures/runs-old-schema.json +6 -1
  30. package/pipeline/contract/fixtures/runs-pr-opened-redacted.json +5 -1
  31. package/pipeline/contract/fixtures/runs-pr-opened.json +6 -1
  32. package/pipeline/contract/fixtures/runs-running.json +6 -1
  33. package/pipeline/contract/manifest.json +153 -19
  34. package/pipeline/contract/types/index.d.ts +304 -6
  35. package/pipeline/lib/bg-launch.mjs +106 -0
  36. package/pipeline/lib/code-digest.mjs +49 -0
  37. package/pipeline/lib/credential-resolve.mjs +42 -2
  38. package/pipeline/multi-agent-refs/features/office-threat-model.md +24 -6
  39. package/pipeline/multi-agent-refs/features/unattended-security.md +1 -1
  40. package/pipeline/multi-agent-refs/help/en.md +2 -2
  41. package/pipeline/multi-agent-refs/help/tr.md +2 -2
  42. package/pipeline/multi-agent-refs/phases/modes.md +7 -7
  43. package/pipeline/multi-agent-refs/phases/phase-5-report.md +16 -10
  44. package/pipeline/multi-agent-refs/review-standalone-tracker.md +37 -0
  45. package/pipeline/multi-agent-refs/tracker-contract.md +8 -3
  46. package/pipeline/office/NOTICE.md +4 -1
  47. package/pipeline/office/assets/ARCHIVE_BOXES.png +0 -0
  48. package/pipeline/office/assets/COFFEE_MACHINE.png +0 -0
  49. package/pipeline/office/assets/COUNTER_SINK.png +0 -0
  50. package/pipeline/office/assets/DEVICE_STAND.png +0 -0
  51. package/pipeline/office/assets/FILING_CABINET.png +0 -0
  52. package/pipeline/office/assets/FRIDGE.png +0 -0
  53. package/pipeline/office/assets/MAILBOX.png +0 -0
  54. package/pipeline/office/assets/MOP_BUCKET.png +0 -0
  55. package/pipeline/office/assets/PRINTER.png +0 -0
  56. package/pipeline/office/assets/RECEPTION_DESK.png +0 -0
  57. package/pipeline/office/assets/SERVER_RACK.png +0 -0
  58. package/pipeline/office/assets/SERVER_RACK_2.png +0 -0
  59. package/pipeline/office/assets/TOILET_STALL.png +0 -0
  60. package/pipeline/office/assets/VENDING.png +0 -0
  61. package/pipeline/office/assets/WASHBASIN.png +0 -0
  62. package/pipeline/office/assets/WATER_COOLER.png +0 -0
  63. package/pipeline/office/index.html +3996 -884
  64. package/pipeline/office/toolkit.json +3 -0
  65. package/pipeline/schemas/activity.schema.json +188 -4
  66. package/pipeline/schemas/agent-state.schema.json +493 -115
  67. package/pipeline/schemas/contract-error.schema.json +12 -1
  68. package/pipeline/schemas/job-change.schema.json +72 -0
  69. package/pipeline/schemas/job-request.schema.json +38 -0
  70. package/pipeline/schemas/launch.json +4 -4
  71. package/pipeline/schemas/office-credentials.schema.json +71 -0
  72. package/pipeline/schemas/office-jobs.json +253 -0
  73. package/pipeline/schemas/office-jobs.schema.json +62 -0
  74. package/pipeline/schemas/office-memory.schema.json +105 -0
  75. package/pipeline/schemas/office-settings-request.schema.json +30 -0
  76. package/pipeline/schemas/office-settings.schema.json +67 -0
  77. package/pipeline/schemas/phases.json +10 -2
  78. package/pipeline/schemas/phases.schema.json +86 -19
  79. package/pipeline/schemas/prs.schema.json +5 -0
  80. package/pipeline/schemas/prune-logs-request.schema.json +26 -0
  81. package/pipeline/schemas/prune-logs.schema.json +52 -0
  82. package/pipeline/schemas/repo-change.schema.json +54 -0
  83. package/pipeline/schemas/repo-request.schema.json +29 -0
  84. package/pipeline/schemas/repos.schema.json +49 -1
  85. package/pipeline/schemas/runs-index.schema.json +257 -46
  86. package/pipeline/schemas/system-status.schema.json +111 -0
  87. package/pipeline/schemas/tools.schema.json +5 -0
  88. package/pipeline/schemas/unattended-profile.json +7 -2
  89. package/pipeline/scripts/_active-run.mjs +2 -1
  90. package/pipeline/scripts/_spawn-async.mjs +9 -5
  91. package/pipeline/scripts/activity-snapshot.mjs +219 -23
  92. package/pipeline/scripts/autopilot-runner.mjs +7 -5
  93. package/pipeline/scripts/contract-server.mjs +551 -25
  94. package/pipeline/scripts/gen-mode-dispatch.mjs +3 -1
  95. package/pipeline/scripts/job-launch.mjs +477 -0
  96. package/pipeline/scripts/launch-request.mjs +94 -9
  97. package/pipeline/scripts/office-build.mjs +148 -11
  98. package/pipeline/scripts/office-control.mjs +34 -7
  99. package/pipeline/scripts/office-credentials.mjs +106 -0
  100. package/pipeline/scripts/office-memory.mjs +200 -0
  101. package/pipeline/scripts/office-prune.mjs +125 -0
  102. package/pipeline/scripts/office-settings.mjs +145 -0
  103. package/pipeline/scripts/phase-tracker.sh +12 -5
  104. package/pipeline/scripts/prune-logs.sh +53 -2
  105. package/pipeline/scripts/runs-index.mjs +62 -2
  106. package/pipeline/scripts/system-status.mjs +196 -0
  107. package/pipeline/scripts/task-mirror.mjs +150 -0
  108. package/pipeline/scripts/task-mirror.sh +20 -0
  109. package/pipeline/scripts/toolkit-tools.mjs +33 -7
  110. package/pipeline/scripts/transcript-index.mjs +4 -1
  111. package/pipeline/scripts/work-items.mjs +191 -22
  112. package/pipeline/skills/.skill-manifest.json +6 -6
  113. package/pipeline/skills/.skills-index.json +1 -1
  114. package/pipeline/skills/shared/README.md +1 -1
  115. package/pipeline/skills/shared/core/multi-agent-office-on/SKILL.md +3 -4
  116. package/pipeline/skills/shared/core/multi-agent-prune-logs/SKILL.md +4 -1
  117. package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +19 -0
  118. package/pipeline/skills/shared/core/multi-agent-scenario-audit/SKILL.md +4 -2
  119. package/pipeline/skills/shared/core/multi-agent-test-gen/SKILL.md +26 -3
  120. package/pipeline/skills/skills-index.md +1 -1
@@ -0,0 +1,3 @@
1
+ {
2
+ "toolkitVersion": "3.26.0"
3
+ }
@@ -99,6 +99,8 @@
99
99
  "required": [
100
100
  "id",
101
101
  "kind",
102
+ "runType",
103
+ "command",
102
104
  "taskId",
103
105
  "title",
104
106
  "host",
@@ -118,19 +120,33 @@
118
120
  "location",
119
121
  "branch",
120
122
  "phaseHistory",
123
+ "currentTask",
124
+ "progress",
121
125
  "startedAt",
122
126
  "elapsedSeconds",
123
127
  "holder",
124
128
  "previousHolder",
125
- "seats"
129
+ "seats",
130
+ "source",
131
+ "pr",
132
+ "waitingFor",
133
+ "channels"
126
134
  ],
127
135
  "properties": {
128
136
  "id": {
129
137
  "type": "string"
130
138
  },
131
139
  "kind": {
132
- "enum": ["run", "session", "unmatched"],
133
- "description": "run: a pipeline run; session: a session no run claims (outside the pipeline); unmatched: a session more than one run could claim, kept apart rather than guessed."
140
+ "enum": ["run", "session", "solo", "unmatched"],
141
+ "description": "run: a pipeline run; session: a session no run claims (outside the pipeline); unmatched: a session more than one run could claim, kept apart rather than guessed. solo: a session the office started for a one-person job, seated at a desk."
142
+ },
143
+ "command": {
144
+ "type": ["string", "null"],
145
+ "description": "The command the table runs, for its room sign: /multi-agent, /multi-agent:analysis, /multi-agent:test-gen. Null for a session no command owns."
146
+ },
147
+ "runType": {
148
+ "enum": ["development", "analysis", "autopilot", null],
149
+ "description": "Which pipeline the table runs: /multi-agent (development), /multi-agent:analysis, or an autopilot run. Null for a session no pipeline owns. The office names the room after it."
134
150
  },
135
151
  "taskId": {
136
152
  "type": ["string", "null"]
@@ -182,6 +198,15 @@
182
198
  }
183
199
  ]
184
200
  },
201
+ "currentTask": {
202
+ "type": ["string", "null"],
203
+ "description": "The task in progress in the phase in progress, from the mirrored task list."
204
+ },
205
+ "progress": {
206
+ "type": ["number", "null"],
207
+ "minimum": 0,
208
+ "maximum": 1
209
+ },
185
210
  "now": {
186
211
  "type": ["string", "null"]
187
212
  },
@@ -279,11 +304,36 @@
279
304
  "items": {
280
305
  "type": "object",
281
306
  "additionalProperties": false,
282
- "required": ["id", "name", "status", "startedAt", "completedAt"],
307
+ "required": ["id", "name", "status", "startedAt", "completedAt", "progress", "tasks"],
283
308
  "properties": {
284
309
  "id": {
285
310
  "type": ["integer", "null"]
286
311
  },
312
+ "progress": {
313
+ "type": ["number", "null"],
314
+ "minimum": 0,
315
+ "maximum": 1,
316
+ "description": "How far the phase is, from its mirrored task list; null when it has none."
317
+ },
318
+ "tasks": {
319
+ "type": "array",
320
+ "maxItems": 20,
321
+ "description": "The phase's task list as the host task widget shows it (mirrored by phase-tracker.sh task), redacted and cut short.",
322
+ "items": {
323
+ "type": "object",
324
+ "additionalProperties": false,
325
+ "required": ["subject", "status"],
326
+ "properties": {
327
+ "subject": {
328
+ "type": "string",
329
+ "maxLength": 80
330
+ },
331
+ "status": {
332
+ "enum": ["pending", "in_progress", "completed"]
333
+ }
334
+ }
335
+ }
336
+ },
287
337
  "name": {
288
338
  "type": "string"
289
339
  },
@@ -319,6 +369,91 @@
319
369
  "items": {
320
370
  "$ref": "#/$defs/seat"
321
371
  }
372
+ },
373
+ "job": {
374
+ "description": "The office job a session was started for (run tables carry none).",
375
+ "oneOf": [
376
+ {
377
+ "type": "null"
378
+ },
379
+ {
380
+ "type": "object",
381
+ "additionalProperties": false,
382
+ "required": ["id", "role", "team"],
383
+ "properties": {
384
+ "id": {
385
+ "type": "string"
386
+ },
387
+ "role": {
388
+ "type": "string"
389
+ },
390
+ "team": {
391
+ "type": "boolean"
392
+ }
393
+ }
394
+ }
395
+ ]
396
+ },
397
+ "source": {
398
+ "type": ["object", "null"],
399
+ "additionalProperties": false,
400
+ "required": ["kind", "jira", "issue"],
401
+ "description": "Where the run's work came from, for the table sign: a Jira key, a GitHub issue or free text. Null for a session or a run that recorded neither.",
402
+ "properties": {
403
+ "kind": {
404
+ "enum": ["jira", "github", "text"]
405
+ },
406
+ "jira": {
407
+ "type": ["string", "null"],
408
+ "pattern": "^[A-Z][A-Z0-9_]{0,30}-[0-9]{1,9}$"
409
+ },
410
+ "issue": {
411
+ "type": ["string", "null"],
412
+ "pattern": "^[A-Za-z0-9_.-]{1,100}/[A-Za-z0-9_.-]{1,100}#[0-9]{1,9}$"
413
+ }
414
+ }
415
+ },
416
+ "pr": {
417
+ "type": ["object", "null"],
418
+ "additionalProperties": false,
419
+ "required": ["number"],
420
+ "properties": {
421
+ "number": {
422
+ "type": "integer",
423
+ "minimum": 1
424
+ }
425
+ },
426
+ "description": "The pull request the run opened, by number only."
427
+ },
428
+ "waitingFor": {
429
+ "enum": [
430
+ "maturity",
431
+ "user-channels-choice",
432
+ "local-test",
433
+ "attended-reply",
434
+ "question",
435
+ "terminal",
436
+ null
437
+ ],
438
+ "description": "What a waiting run waits for: a step it paused at (the run's waitingFor), or terminal when its session holds a question open in its own window."
439
+ },
440
+ "channels": {
441
+ "type": "array",
442
+ "maxItems": 5,
443
+ "items": {
444
+ "type": "object",
445
+ "additionalProperties": false,
446
+ "required": ["channel", "status"],
447
+ "properties": {
448
+ "channel": {
449
+ "enum": ["pr", "jira", "confluence", "wiki", "issue"]
450
+ },
451
+ "status": {
452
+ "enum": ["posted", "skipped", "failed"]
453
+ }
454
+ }
455
+ },
456
+ "description": "Where the run's report went, per adapter, for the run window; empty for a session or before Phase 5."
322
457
  }
323
458
  }
324
459
  },
@@ -326,6 +461,8 @@
326
461
  "type": "object",
327
462
  "additionalProperties": false,
328
463
  "required": [
464
+ "tasks",
465
+ "mcp",
329
466
  "id",
330
467
  "sessionId",
331
468
  "agentId",
@@ -349,6 +486,53 @@
349
486
  "doing"
350
487
  ],
351
488
  "properties": {
489
+ "tasks": {
490
+ "type": "array",
491
+ "maxItems": 20,
492
+ "description": "The desk's own task list from its transcript (TaskCreate / TaskUpdate / TodoWrite), phase tiles left out, redacted and cut short.",
493
+ "items": {
494
+ "type": "object",
495
+ "additionalProperties": false,
496
+ "required": ["subject", "status"],
497
+ "properties": {
498
+ "subject": {
499
+ "type": "string",
500
+ "maxLength": 80
501
+ },
502
+ "status": {
503
+ "enum": ["pending", "in_progress", "completed"]
504
+ }
505
+ }
506
+ }
507
+ },
508
+ "mcp": {
509
+ "type": "array",
510
+ "maxItems": 8,
511
+ "description": "The desk's last MCP calls, newest last: server, tool, whether it is still running, failed or answered, and how long it took. No input or result.",
512
+ "items": {
513
+ "type": "object",
514
+ "additionalProperties": false,
515
+ "required": ["server", "tool", "state", "ms", "at"],
516
+ "properties": {
517
+ "server": {
518
+ "type": "string"
519
+ },
520
+ "tool": {
521
+ "type": "string"
522
+ },
523
+ "state": {
524
+ "enum": ["running", "ok", "error"]
525
+ },
526
+ "ms": {
527
+ "type": ["integer", "null"],
528
+ "minimum": 0
529
+ },
530
+ "at": {
531
+ "type": ["string", "null"]
532
+ }
533
+ }
534
+ }
535
+ },
352
536
  "id": {
353
537
  "type": "string"
354
538
  },