@zhushanwen/pi-subagent-workflow 8.6.0 → 8.7.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 (347) hide show
  1. package/package.json +9 -13
  2. package/relay/relay.mjs +1 -1
  3. package/src/host/__tests__/pi-host.test.ts +214 -0
  4. package/src/host/pi-host.ts +109 -0
  5. package/src/index.ts +89 -32
  6. package/src/injectors/__tests__/engine-awareness.test.ts +292 -0
  7. package/src/injectors/__tests__/engine-section-stability.test.ts +341 -0
  8. package/src/injectors/__tests__/subagent-list-injector.test.ts +5 -5
  9. package/src/injectors/__tests__/workflow-list-injector.test.ts +5 -5
  10. package/src/injectors/engine-awareness.ts +123 -0
  11. package/src/injectors/model-list-injector.ts +1 -1
  12. package/src/injectors/subagent-list-injector.ts +8 -8
  13. package/src/injectors/workflow-list-injector.ts +8 -8
  14. package/src/interface/__tests__/detectors.test.ts +3 -3
  15. package/src/interface/__tests__/subagent-tool-path-guard.test.ts +2 -2
  16. package/src/interface/__tests__/tool-workflow-script-generate.test.ts +2 -2
  17. package/src/interface/__tests__/tool-workflow-throw-paths.test.ts +1 -1
  18. package/src/interface/bg-notify-render.ts +4 -4
  19. package/src/interface/commands.ts +3 -3
  20. package/src/interface/format.ts +2 -2
  21. package/src/interface/helpers.ts +1 -1
  22. package/src/interface/list-component.ts +4 -4
  23. package/src/interface/list-shared.ts +2 -2
  24. package/src/interface/list-view.ts +2 -2
  25. package/src/interface/subagent-actions.ts +263 -11
  26. package/src/interface/subagent-tool-schema.ts +20 -13
  27. package/src/interface/subagent-tool.ts +11 -6
  28. package/src/interface/subagents.ts +3 -3
  29. package/src/interface/tool-render.ts +34 -2
  30. package/src/interface/tool-workflow-script.ts +4 -4
  31. package/src/interface/tool-workflow.ts +6 -6
  32. package/src/interface/views/WorkflowsView.ts +5 -5
  33. package/src/interface/views/__tests__/WorkflowsView-signature.test.ts +3 -3
  34. package/src/interface/views/__tests__/detail-content-session-file.test.ts +2 -2
  35. package/src/interface/views/detail-content.ts +4 -4
  36. package/src/interface/views/format.ts +4 -4
  37. package/src/{orchestration/jsonl-run-store.ts → jsonl-run-store.ts} +11 -11
  38. package/src/execution/__tests__/__fixtures__/notifier-golden-snapshots.json +0 -53
  39. package/src/execution/__tests__/__fixtures__/truncline.snapshot.json +0 -1
  40. package/src/execution/__tests__/agent-registry.test.ts +0 -363
  41. package/src/execution/__tests__/agent-result-mapper.test.ts +0 -150
  42. package/src/execution/__tests__/alive-store.test.ts +0 -147
  43. package/src/execution/__tests__/ask-user-transit-e2e.test.ts +0 -490
  44. package/src/execution/__tests__/before-agent-start-injection.test.ts +0 -132
  45. package/src/execution/__tests__/bg-notify-render.test.ts +0 -329
  46. package/src/execution/__tests__/channel-registry-handshake.test.ts +0 -243
  47. package/src/execution/__tests__/chat-engine-routing.test.ts +0 -601
  48. package/src/execution/__tests__/chatmode-first-round-closure-service.test.ts +0 -365
  49. package/src/execution/__tests__/chatmode-first-round-closure-spawn.test.ts +0 -190
  50. package/src/execution/__tests__/chatmode-round-notify-real-chain.test.ts +0 -215
  51. package/src/execution/__tests__/concurrency-pool.test.ts +0 -250
  52. package/src/execution/__tests__/config.test.ts +0 -110
  53. package/src/execution/__tests__/conversation-wiring.test.ts +0 -198
  54. package/src/execution/__tests__/crash-recovery.test.ts +0 -320
  55. package/src/execution/__tests__/delivery-methods.test.ts +0 -422
  56. package/src/execution/__tests__/dialog-queue.test.ts +0 -299
  57. package/src/execution/__tests__/epipe-fallback.test.ts +0 -241
  58. package/src/execution/__tests__/execute-and-await-worktree.test.ts +0 -243
  59. package/src/execution/__tests__/execute-nesting.test.ts +0 -323
  60. package/src/execution/__tests__/execute-options-mapper.test.ts +0 -200
  61. package/src/execution/__tests__/execution-record.test.ts +0 -1394
  62. package/src/execution/__tests__/explicit-agent-ref-guard.test.ts +0 -171
  63. package/src/execution/__tests__/finalize-record.test.ts +0 -368
  64. package/src/execution/__tests__/finalized-marker.test.ts +0 -82
  65. package/src/execution/__tests__/format-schema-instruction.test.ts +0 -169
  66. package/src/execution/__tests__/format.test.ts +0 -458
  67. package/src/execution/__tests__/gc-timer.test.ts +0 -184
  68. package/src/execution/__tests__/get-record-for-action-restart.test.ts +0 -254
  69. package/src/execution/__tests__/gui-mode-dispatch.test.ts +0 -59
  70. package/src/execution/__tests__/helpers/mock-extension-api.ts +0 -30
  71. package/src/execution/__tests__/helpers/spawn-mock.ts +0 -242
  72. package/src/execution/__tests__/host-mode.test.ts +0 -87
  73. package/src/execution/__tests__/index-session-start-identity.test.ts +0 -371
  74. package/src/execution/__tests__/index-session-start.test.ts +0 -672
  75. package/src/execution/__tests__/lifecycle-manager-lock.test.ts +0 -211
  76. package/src/execution/__tests__/lifecycle-manager.test.ts +0 -383
  77. package/src/execution/__tests__/lifecycle-predicates.test.ts +0 -116
  78. package/src/execution/__tests__/list-component.test.ts +0 -401
  79. package/src/execution/__tests__/list-fields.test.ts +0 -140
  80. package/src/execution/__tests__/manifest-parentid.test.ts +0 -117
  81. package/src/execution/__tests__/model-resolver.test.ts +0 -465
  82. package/src/execution/__tests__/nested-visibility-env-propagation.test.ts +0 -287
  83. package/src/execution/__tests__/nested-visibility.test.ts +0 -325
  84. package/src/execution/__tests__/notifier-flush.test.ts +0 -612
  85. package/src/execution/__tests__/notifier-golden-snapshot.test.ts +0 -261
  86. package/src/execution/__tests__/notify-ledger.test.ts +0 -826
  87. package/src/execution/__tests__/one-shot-upgrade.test.ts +0 -205
  88. package/src/execution/__tests__/output-collector.test.ts +0 -358
  89. package/src/execution/__tests__/parent-child-matrix.test.ts +0 -336
  90. package/src/execution/__tests__/path-encoding.test.ts +0 -104
  91. package/src/execution/__tests__/pi-invocation.test.ts +0 -134
  92. package/src/execution/__tests__/record-store.test.ts +0 -1057
  93. package/src/execution/__tests__/records-cwd-isolation.test.ts +0 -91
  94. package/src/execution/__tests__/recursive-visibility-baseline.test.ts +0 -339
  95. package/src/execution/__tests__/recursive-visibility-env.test.ts +0 -273
  96. package/src/execution/__tests__/relay-agent.test.ts +0 -448
  97. package/src/execution/__tests__/relay-env.test.ts +0 -42
  98. package/src/execution/__tests__/resource-policy.test.ts +0 -109
  99. package/src/execution/__tests__/rpc-mode.test.ts +0 -89
  100. package/src/execution/__tests__/run-and-finalize-chatmode.test.ts +0 -267
  101. package/src/execution/__tests__/run-spawn-chatmode-settled.test.ts +0 -253
  102. package/src/execution/__tests__/run-spawn-edges.test.ts +0 -687
  103. package/src/execution/__tests__/run-spawn-integration.test.ts +0 -933
  104. package/src/execution/__tests__/run-spawn-resume.test.ts +0 -322
  105. package/src/execution/__tests__/run-spawn-rpc-mode.test.ts +0 -196
  106. package/src/execution/__tests__/run-spawn-stdout-callback-throw.test.ts +0 -199
  107. package/src/execution/__tests__/sdk-contract.test.ts +0 -273
  108. package/src/execution/__tests__/session-context-resolver.test.ts +0 -167
  109. package/src/execution/__tests__/session-file-gc.test.ts +0 -293
  110. package/src/execution/__tests__/session-pending.test.ts +0 -197
  111. package/src/execution/__tests__/session-reconstructor.test.ts +0 -379
  112. package/src/execution/__tests__/session-runner-epipe.test.ts +0 -178
  113. package/src/execution/__tests__/session-runner-schema-env.test.ts +0 -350
  114. package/src/execution/__tests__/session-start-reaper.test.ts +0 -233
  115. package/src/execution/__tests__/spawn-args.test.ts +0 -445
  116. package/src/execution/__tests__/spawn-event-adapter-rpc.test.ts +0 -189
  117. package/src/execution/__tests__/spawn-event-adapter.test.ts +0 -167
  118. package/src/execution/__tests__/spawn-worktree-guidance.test.ts +0 -207
  119. package/src/execution/__tests__/spawned-children.test.ts +0 -92
  120. package/src/execution/__tests__/start-sync-model-guard.test.ts +0 -150
  121. package/src/execution/__tests__/startup-config-declaration.test.ts +0 -35
  122. package/src/execution/__tests__/status-refactor.test.ts +0 -345
  123. package/src/execution/__tests__/stdin-writer.test.ts +0 -463
  124. package/src/execution/__tests__/stream-sink-retirement.test.ts +0 -261
  125. package/src/execution/__tests__/subagent-service-abort.test.ts +0 -60
  126. package/src/execution/__tests__/subagent-service-message-close.test.ts +0 -629
  127. package/src/execution/__tests__/subagent-service-parent-guard.test.ts +0 -180
  128. package/src/execution/__tests__/subagent-service.test.ts +0 -788
  129. package/src/execution/__tests__/subprocess-agent-runner-routing.test.ts +0 -310
  130. package/src/execution/__tests__/subprocess-agent-runner.test.ts +0 -599
  131. package/src/execution/__tests__/temp-prompt.test.ts +0 -53
  132. package/src/execution/__tests__/timeout-integration.test.ts +0 -615
  133. package/src/execution/__tests__/tombstone-store.test.ts +0 -73
  134. package/src/execution/__tests__/tool-action.test.ts +0 -476
  135. package/src/execution/__tests__/truncline-snapshot.test.ts +0 -81
  136. package/src/execution/__tests__/turn-limiter-semantics.test.ts +0 -194
  137. package/src/execution/__tests__/turn-limiter.test.ts +0 -65
  138. package/src/execution/__tests__/ui-channels.test.ts +0 -187
  139. package/src/execution/__tests__/ui-interaction-model.test.ts +0 -67
  140. package/src/execution/__tests__/ui-request-handler-factory.test.ts +0 -370
  141. package/src/execution/__tests__/ui-request-handler.test.ts +0 -204
  142. package/src/execution/__tests__/ui-request-observability.test.ts +0 -114
  143. package/src/execution/__tests__/ui-request-queue.test.ts +0 -133
  144. package/src/execution/__tests__/worktree-manager.test.ts +0 -633
  145. package/src/execution/__tests__/worktree-pid-registration.integration.test.ts +0 -229
  146. package/src/execution/__tests__/worktree-reconcile.integration.test.ts +0 -181
  147. package/src/execution/__tests__/worktree-registry.test.ts +0 -199
  148. package/src/execution/agent-registry.ts +0 -199
  149. package/src/execution/agent-result-mapper.ts +0 -90
  150. package/src/execution/alive-store.ts +0 -92
  151. package/src/execution/argv-mirror.ts +0 -113
  152. package/src/execution/best-effort.ts +0 -38
  153. package/src/execution/channel-registry-access.ts +0 -144
  154. package/src/execution/concurrency-pool.ts +0 -116
  155. package/src/execution/config.ts +0 -96
  156. package/src/execution/dialog-queue.ts +0 -330
  157. package/src/execution/engine/__tests__/common/data-dir.test.ts +0 -53
  158. package/src/execution/engine/__tests__/common/errors.test.ts +0 -132
  159. package/src/execution/engine/__tests__/common/event-journal.test.ts +0 -177
  160. package/src/execution/engine/__tests__/common/kill-chain.test.ts +0 -192
  161. package/src/execution/engine/__tests__/common/nesting-guard.test.ts +0 -81
  162. package/src/execution/engine/__tests__/common/persona-router.test.ts +0 -123
  163. package/src/execution/engine/__tests__/common/pool-manager.test.ts +0 -154
  164. package/src/execution/engine/__tests__/common/schema-emulation.test.ts +0 -128
  165. package/src/execution/engine/__tests__/conformance/__fixtures__/pi-golden-events.json +0 -28
  166. package/src/execution/engine/__tests__/conformance/agent-event-invariants.ts +0 -141
  167. package/src/execution/engine/__tests__/conformance/contract.abort.test.ts +0 -109
  168. package/src/execution/engine/__tests__/conformance/contract.agent-events.test.ts +0 -101
  169. package/src/execution/engine/__tests__/conformance/contract.probe.test.ts +0 -77
  170. package/src/execution/engine/__tests__/conformance/contract.read-degradation.test.ts +0 -104
  171. package/src/execution/engine/__tests__/conformance/contract.relay.test.ts +0 -342
  172. package/src/execution/engine/__tests__/conformance/engine-conformance.live.test.ts +0 -201
  173. package/src/execution/engine/__tests__/conformance/golden-replay.pi.test.ts +0 -76
  174. package/src/execution/engine/__tests__/conformance/golden-replay.zcode.test.ts +0 -79
  175. package/src/execution/engine/__tests__/engine-discovery.test.ts +0 -87
  176. package/src/execution/engine/__tests__/engines-declaration.test.ts +0 -36
  177. package/src/execution/engine/__tests__/model-prompt.test.ts +0 -85
  178. package/src/execution/engine/__tests__/paths.test.ts +0 -39
  179. package/src/execution/engine/__tests__/registry.test.ts +0 -120
  180. package/src/execution/engine/__tests__/routing.test.ts +0 -231
  181. package/src/execution/engine/common/data-dir.ts +0 -62
  182. package/src/execution/engine/common/errors.ts +0 -183
  183. package/src/execution/engine/common/event-journal.ts +0 -254
  184. package/src/execution/engine/common/journal-replay.ts +0 -62
  185. package/src/execution/engine/common/kill-chain.ts +0 -221
  186. package/src/execution/engine/common/nesting-guard.ts +0 -50
  187. package/src/execution/engine/common/persona-router.ts +0 -108
  188. package/src/execution/engine/common/pool-manager.ts +0 -226
  189. package/src/execution/engine/common/schema-emulation.ts +0 -189
  190. package/src/execution/engine/common/session-view-projection.ts +0 -51
  191. package/src/execution/engine/engine-discovery.ts +0 -65
  192. package/src/execution/engine/engines/pi/__tests__/pi-engine.test.ts +0 -469
  193. package/src/execution/engine/engines/pi/__tests__/reader.test.ts +0 -155
  194. package/src/execution/engine/engines/pi/__tests__/task-spec-mapper.test.ts +0 -164
  195. package/src/execution/engine/engines/pi/pi-engine.ts +0 -415
  196. package/src/execution/engine/engines/pi/reader.ts +0 -48
  197. package/src/execution/engine/engines/pi/registration.ts +0 -35
  198. package/src/execution/engine/engines/pi/task-spec-mapper.ts +0 -100
  199. package/src/execution/engine/engines/zcode/__tests__/__fixtures__/zcode-golden-spawn.json +0 -39
  200. package/src/execution/engine/engines/zcode/__tests__/launcher.test.ts +0 -150
  201. package/src/execution/engine/engines/zcode/__tests__/parser.test.ts +0 -246
  202. package/src/execution/engine/engines/zcode/__tests__/preparer.test.ts +0 -228
  203. package/src/execution/engine/engines/zcode/__tests__/reader.test.ts +0 -210
  204. package/src/execution/engine/engines/zcode/__tests__/registration.test.ts +0 -64
  205. package/src/execution/engine/engines/zcode/__tests__/zcode-engine.live.test.ts +0 -127
  206. package/src/execution/engine/engines/zcode/__tests__/zcode-engine.test.ts +0 -580
  207. package/src/execution/engine/engines/zcode/constants.ts +0 -43
  208. package/src/execution/engine/engines/zcode/golden-sample.ts +0 -39
  209. package/src/execution/engine/engines/zcode/launcher.ts +0 -161
  210. package/src/execution/engine/engines/zcode/parser.ts +0 -436
  211. package/src/execution/engine/engines/zcode/preparer.ts +0 -363
  212. package/src/execution/engine/engines/zcode/reader.ts +0 -381
  213. package/src/execution/engine/engines/zcode/registration.ts +0 -37
  214. package/src/execution/engine/engines/zcode/zcode-engine.ts +0 -658
  215. package/src/execution/engine/host-task-spec.ts +0 -47
  216. package/src/execution/engine/model-prompt.ts +0 -59
  217. package/src/execution/engine/paths.ts +0 -42
  218. package/src/execution/engine/port.ts +0 -153
  219. package/src/execution/engine/registry.ts +0 -123
  220. package/src/execution/engine/routing.ts +0 -218
  221. package/src/execution/engine/types.ts +0 -309
  222. package/src/execution/execute-options-mapper.ts +0 -112
  223. package/src/execution/execution-record.ts +0 -965
  224. package/src/execution/finalize-record.ts +0 -251
  225. package/src/execution/finalized-marker.ts +0 -51
  226. package/src/execution/get-state-handshake.ts +0 -104
  227. package/src/execution/host-mode.ts +0 -56
  228. package/src/execution/idle-gc.ts +0 -47
  229. package/src/execution/lifecycle-manager.ts +0 -513
  230. package/src/execution/lifecycle-predicates.ts +0 -65
  231. package/src/execution/manifest-store.ts +0 -256
  232. package/src/execution/model-config-service.ts +0 -219
  233. package/src/execution/model-resolver.ts +0 -248
  234. package/src/execution/notifier.ts +0 -330
  235. package/src/execution/notify-ledger.ts +0 -580
  236. package/src/execution/output-collector.ts +0 -228
  237. package/src/execution/path-encoding.ts +0 -60
  238. package/src/execution/pi-invocation.ts +0 -120
  239. package/src/execution/record-entry.ts +0 -132
  240. package/src/execution/record-store.ts +0 -1234
  241. package/src/execution/relay-env.ts +0 -37
  242. package/src/execution/session-context-resolver.ts +0 -64
  243. package/src/execution/session-file-gc.ts +0 -120
  244. package/src/execution/session-pending.ts +0 -164
  245. package/src/execution/session-reconstructor.ts +0 -678
  246. package/src/execution/session-runner.ts +0 -1781
  247. package/src/execution/sessions-index.ts +0 -304
  248. package/src/execution/spawn-event-adapter.ts +0 -363
  249. package/src/execution/stdin-writer.ts +0 -198
  250. package/src/execution/stream-sink.ts +0 -126
  251. package/src/execution/subagent-service.ts +0 -2141
  252. package/src/execution/subprocess-agent-runner.ts +0 -317
  253. package/src/execution/temp-prompt.ts +0 -62
  254. package/src/execution/tombstone-store.ts +0 -72
  255. package/src/execution/turn-limiter.ts +0 -102
  256. package/src/execution/types.ts +0 -973
  257. package/src/execution/ui-channels.ts +0 -216
  258. package/src/execution/ui-interaction-model.ts +0 -48
  259. package/src/execution/ui-request-handler-factory.ts +0 -212
  260. package/src/execution/ui-request-observability.ts +0 -81
  261. package/src/execution/ui-request-queue.ts +0 -184
  262. package/src/execution/worktree-manager.ts +0 -688
  263. package/src/execution/worktree-registry.ts +0 -222
  264. package/src/orchestration/__tests__/__fixtures__/worker-template.snapshot.txt +0 -349
  265. package/src/orchestration/__tests__/agent-call-catch-fallback.test.ts +0 -202
  266. package/src/orchestration/__tests__/agent-call-stream.test.ts +0 -152
  267. package/src/orchestration/__tests__/args-validator.test.ts +0 -143
  268. package/src/orchestration/__tests__/config-loader.test.ts +0 -503
  269. package/src/orchestration/__tests__/error-recovery-handlers.test.ts +0 -809
  270. package/src/orchestration/__tests__/error-recovery-postmessage-defense.test.ts +0 -405
  271. package/src/orchestration/__tests__/error-recovery-serialize-failed-result.test.ts +0 -56
  272. package/src/orchestration/__tests__/error-recovery-workflow-call.test.ts +0 -166
  273. package/src/orchestration/__tests__/execute-agent-call.test.ts +0 -451
  274. package/src/orchestration/__tests__/jsonl-run-store-corrupt-entry.test.ts +0 -150
  275. package/src/orchestration/__tests__/jsonl-run-store-loadall-sources.test.ts +0 -171
  276. package/src/orchestration/__tests__/jsonl-run-store-retention.test.ts +0 -202
  277. package/src/orchestration/__tests__/jsonl-run-store-session-file.test.ts +0 -1030
  278. package/src/orchestration/__tests__/launcher-nested-workflow.test.ts +0 -600
  279. package/src/orchestration/__tests__/lifecycle-runid-injection.test.ts +0 -96
  280. package/src/orchestration/__tests__/lifecycle.test.ts +0 -659
  281. package/src/orchestration/__tests__/non-cloneable-return-e2e.test.ts +0 -95
  282. package/src/orchestration/__tests__/review-fix-loop-e2e.test.ts +0 -2025
  283. package/src/orchestration/__tests__/script-lint.test.ts +0 -831
  284. package/src/orchestration/__tests__/skill-discovery.test.ts +0 -201
  285. package/src/orchestration/__tests__/test-mocks.ts +0 -197
  286. package/src/orchestration/__tests__/worker-exit-without-result.test.ts +0 -368
  287. package/src/orchestration/__tests__/worker-host.test.ts +0 -120
  288. package/src/orchestration/__tests__/worker-returnmeta-passthrough.test.ts +0 -164
  289. package/src/orchestration/__tests__/worker-script-builder-runtime.test.ts +0 -563
  290. package/src/orchestration/__tests__/worker-script-builder.test.ts +0 -309
  291. package/src/orchestration/__tests__/worker-script-template-snapshot.test.ts +0 -129
  292. package/src/orchestration/__tests__/workflow-nesting-e2e.test.ts +0 -317
  293. package/src/orchestration/__tests__/workflow-script-lint-memo.test.ts +0 -110
  294. package/src/orchestration/__tests__/workflows-e2e.test.ts +0 -537
  295. package/src/orchestration/agent-opts-resolver.ts +0 -174
  296. package/src/orchestration/args-validator.ts +0 -127
  297. package/src/orchestration/config-loader.ts +0 -315
  298. package/src/orchestration/error-recovery.ts +0 -1018
  299. package/src/orchestration/execute-agent-call.ts +0 -256
  300. package/src/orchestration/launcher.ts +0 -455
  301. package/src/orchestration/lifecycle.ts +0 -399
  302. package/src/orchestration/models/__tests__/budget.test.ts +0 -307
  303. package/src/orchestration/models/__tests__/trace.test.ts +0 -408
  304. package/src/orchestration/models/agent-call.ts +0 -83
  305. package/src/orchestration/models/budget.ts +0 -118
  306. package/src/orchestration/models/ports.ts +0 -164
  307. package/src/orchestration/models/run-runtime.ts +0 -104
  308. package/src/orchestration/models/run-spec.ts +0 -83
  309. package/src/orchestration/models/run-state.ts +0 -44
  310. package/src/orchestration/models/trace.ts +0 -183
  311. package/src/orchestration/models/types.ts +0 -301
  312. package/src/orchestration/models/workflow-run.ts +0 -254
  313. package/src/orchestration/models/workflow-script-registry.ts +0 -35
  314. package/src/orchestration/models/workflow-script.ts +0 -117
  315. package/src/orchestration/script-lint.ts +0 -766
  316. package/src/orchestration/skill-discovery.ts +0 -115
  317. package/src/orchestration/worker-handle.ts +0 -115
  318. package/src/orchestration/worker-host.ts +0 -98
  319. package/src/orchestration/worker-script-builder.ts +0 -421
  320. package/src/orchestration/workflow-files.ts +0 -85
  321. package/src/orchestration/workflow-script-registry-impl.ts +0 -133
  322. package/src/shared/__tests__/agent-ref.test.ts +0 -34
  323. package/src/shared/__tests__/meta-parser.test.ts +0 -304
  324. package/src/shared/__tests__/model-ref.test.ts +0 -306
  325. package/src/shared/__tests__/resource-discovery-manifest-cache.test.ts +0 -280
  326. package/src/shared/__tests__/resource-discovery.test.ts +0 -736
  327. package/src/shared/__tests__/resource-meta.test.ts +0 -51
  328. package/src/shared/__tests__/schema-jsonify.test.ts +0 -81
  329. package/src/shared/__tests__/timer-delay.test.ts +0 -61
  330. package/src/shared/agent-event.ts +0 -13
  331. package/src/shared/agent-ref.ts +0 -57
  332. package/src/shared/meta-parser.ts +0 -261
  333. package/src/shared/model-ref.ts +0 -286
  334. package/src/shared/resource-discovery.ts +0 -811
  335. package/src/shared/resource-meta.ts +0 -65
  336. package/src/shared/schema-env.ts +0 -44
  337. package/src/shared/schema-jsonify.ts +0 -58
  338. package/src/shared/timer-delay.ts +0 -54
  339. package/src/shared/xml-injection.ts +0 -35
  340. package/workflows/README.md +0 -81
  341. package/workflows/_shared/agent-refs.cjs +0 -40
  342. package/workflows/chain.js +0 -131
  343. package/workflows/map-reduce.js +0 -174
  344. package/workflows/parallel.js +0 -148
  345. package/workflows/review-fix-loop-utils.cjs +0 -1309
  346. package/workflows/review-fix-loop.js +0 -1404
  347. package/workflows/scatter-gather.js +0 -178
@@ -1,174 +0,0 @@
1
- // map-reduce.js — 映射-归约(通用 subagent 编排)
2
- //
3
- // 模式(两段):
4
- // 段 1 map: parallel() 对每个 item 并行执行 operation
5
- // 段 2 reduce: agent() 把所有 map 结果归约成单一结果
6
- //
7
- // 与 scatter-gather 的区别:scatter-gather 强调"拆分"(scatter 决定子任务数);
8
- // map-reduce 强调对"已知 items 数组"的变换+聚合(items 已有,map 变换、reduce 归约)。
9
- //
10
- // 用法:
11
- // workflow run map-reduce --args 'items=["file1.ts","file2.ts","file3.ts"]' --args operation="审查代码风格"
12
- // workflow run map-reduce --args itemsJson=/path/to/items.json --args operation="..."
13
- //
14
- // ⚠️ lintScript 约束(本脚本已遵守):含 parallel() 入口(兼 agent 嵌套),禁止 bare IIFE
15
-
16
- /* @pi-meta
17
- name: map-reduce
18
- description: 通用编排:parallel map → reduce 两段,处理已知 items 数组
19
- phases: [map, reduce]
20
- parameters:
21
- type: object
22
- properties:
23
- items: { type: array, items: { type: string } }
24
- itemsJson: { type: string }
25
- operation: { type: string }
26
- agents: { type: string }
27
- required: [operation]
28
- oneOf:
29
- - required: [items]
30
- - required: [itemsJson]
31
- usage: |
32
- ## 使用说明
33
- - items 与 itemsJson 至少一个:items 直接传字符串数组,itemsJson 传文件路径(内容为 JSON 数组)
34
- - agents:逗号分隔的 agent .md 绝对路径,按顺序对应 map/reduce 两段
35
- - 示例:workflow run map-reduce --args operation="<对每个 item 做什么>" itemsJson="/path/items.json" agents="/path/mapper.md,/path/reducer.md"
36
- */
37
-
38
- const fs = require("fs");
39
-
40
- // ── 入参($ARGS)──────────────────────────────────────────────────
41
- const operation = $ARGS.operation;
42
- if (!operation) {
43
- throw new Error(
44
- 'map-reduce 缺少必需参数 operation。用法:workflow run map-reduce --args operation="<对每个 item 做什么>"',
45
- );
46
- }
47
-
48
- // items 来源:直接数组 或 itemsJson 文件路径(二选一)
49
- let items = $ARGS.items;
50
- if (!items) {
51
- const itemsPath = $ARGS.itemsJson;
52
- if (!itemsPath) {
53
- throw new Error(
54
- 'map-reduce 需要 items(直接数组)或 itemsJson(JSON 文件路径)参数',
55
- );
56
- }
57
- if (!fs.existsSync(itemsPath)) {
58
- throw new Error("itemsJson 文件不存在: " + itemsPath);
59
- }
60
- items = JSON.parse(fs.readFileSync(itemsPath, "utf-8"));
61
- }
62
-
63
- if (!Array.isArray(items) || items.length === 0) {
64
- throw new Error("items 不是数组或为空");
65
- }
66
-
67
- log("map-reduce 开始,items=" + items.length + " 个,operation=" + operation);
68
-
69
- // S4:agents 参数 = 逗号分隔的 agentRef 路径数组,按顺序对应 map/reduce 两段
70
- // worker 沙箱为 eval 模式:require 相对路径以 cwd 为基准(非脚本目录),
71
- // 必须用 workerData.scriptPath 锚定脚本目录(review-fix-loop 同模式)。
72
- const SCRIPT_DIR = workerData && workerData.scriptPath
73
- ? require("path").dirname(workerData.scriptPath)
74
- : process.cwd();
75
- const { parseAgentRefs, agentRefAt } = require(SCRIPT_DIR + "/_shared/agent-refs.cjs");
76
- const agentRefs = parseAgentRefs($ARGS.agents);
77
- const stepAgent = (i) => { const ref = agentRefAt(agentRefs, i); return ref ? { agent: ref } : {}; };
78
-
79
- let currentPhase = "init";
80
- let outcome;
81
-
82
- try {
83
- // ── 段 1:map(parallel 对每个 item 并行变换)────────────────────
84
- phase("map");
85
- currentPhase = "map";
86
-
87
- // 每个 item 字符串化,便于拼进 prompt
88
- const mappedRaw = await parallel(
89
- items.map((item, idx) =>
90
- agent({
91
- prompt:
92
- "对以下 item 执行操作:\n\noperation:" + operation +
93
- "\nitem:" + (typeof item === "string" ? item : JSON.stringify(item)),
94
- schema: {
95
- type: "object",
96
- properties: {
97
- itemIndex: { type: "number", description: "item 序号" },
98
- mapped: { type: "string", description: "map 后的结果" },
99
- },
100
- required: ["itemIndex", "mapped"],
101
- },
102
- description: "map-reduce-map-" + idx,
103
- ...stepAgent(0),
104
- })
105
- ),
106
- );
107
-
108
- const mapped = [];
109
- let mapFailed = 0;
110
- for (let i = 0; i < mappedRaw.length; i++) {
111
- const r = mappedRaw[i];
112
- if (!r || r.status === "failed" || r.error) {
113
- mapped.push({
114
- itemIndex: i,
115
- item: items[i],
116
- status: "failed",
117
- error: r ? (r.error || "agent 返回 failed 状态") : "agent 无返回",
118
- });
119
- mapFailed++;
120
- } else {
121
- mapped.push({
122
- itemIndex: i,
123
- item: items[i],
124
- status: "ok",
125
- mapped: (typeof r.mapped === "string" ? r.mapped : "(无结果)"),
126
- });
127
- }
128
- }
129
- if (mapFailed === items.length) {
130
- throw new Error("全部 map 失败(" + mapFailed + "/" + items.length + ")");
131
- }
132
- log("map 完成:ok=" + (items.length - mapFailed) + " failed=" + mapFailed);
133
-
134
- // ── 段 2:reduce(agent 归约所有 map 结果)──────────────────────
135
- phase("reduce");
136
- currentPhase = "reduce";
137
-
138
- const reducedResult = await agent({
139
- prompt:
140
- "以下是对 " + items.length + " 个 item 执行「" + operation + "」的结果,请归约成单一结论:\n\n" +
141
- JSON.stringify(mapped, null, 2),
142
- schema: {
143
- type: "object",
144
- properties: {
145
- reduced: { type: "string", description: "归约后的最终结果" },
146
- stats: { type: "string", description: "统计摘要(成功率/共性发现等)" },
147
- },
148
- required: ["reduced", "stats"],
149
- },
150
- description: "map-reduce-reduce",
151
- ...stepAgent(1),
152
- });
153
-
154
- outcome = {
155
- status: mapFailed > 0 ? "partial" : "ok",
156
- phases_run: ["map", "reduce"],
157
- items_total: items.length,
158
- items_mapped: items.length - mapFailed,
159
- reduced: {
160
- reduced: (reducedResult?.reduced ?? "(归约无结果)"),
161
- stats: (reducedResult?.stats ?? "(归约无结果)"),
162
- },
163
- message: "map-reduce 完成:map " + items.length + " 项(失败 " + mapFailed + ")→ reduce",
164
- };
165
- } catch (err) {
166
- outcome = {
167
- status: "error",
168
- phase: currentPhase,
169
- error: err && err.message ? err.message : String(err),
170
- message: "map-reduce 在 " + currentPhase + " 段失败",
171
- };
172
- }
173
-
174
- return outcome;
@@ -1,148 +0,0 @@
1
- // parallel.js — 并行多视角分析(通用 subagent 编排)
2
- //
3
- // 模式:N 个 agent 从不同角度并行分析同一目标 → 汇总聚合。
4
- // 适用于需要多维度评估(安全/性能/可维护性等)的场景。
5
- //
6
- // 用法:
7
- // workflow run parallel --args target="src/auth/login.ts"
8
- // workflow run parallel --args target="..." --args 'perspectives=["security","readability"]'
9
- //
10
- // ⚠️ 分层配额规则(来源:ADR-030 决策 3):
11
- // - 全局并发上限 maxConcurrent = 6
12
- // - parallel() 内的 agent() 调用共享配额池,超出自动排队(不报错)
13
- // - 本脚本默认 3 视角并行,配额充足
14
- //
15
- // ⚠️ lintScript 约束(本脚本已遵守):含 parallel() 入口,禁止 bare IIFE
16
-
17
- /* @pi-meta
18
- name: parallel
19
- description: 通用编排:多视角并行分析同一目标,再聚合汇总
20
- phases: [parallel-analyze, aggregate]
21
- parameters:
22
- type: object
23
- properties:
24
- target: { type: string }
25
- perspectives: { type: array, items: { type: string } }
26
- agents: { type: string }
27
- required: [target]
28
- usage: |
29
- ## 使用说明
30
- - 多视角并行分析后聚合;perspectives 缺省用 3 个默认视角
31
- - agents:逗号分隔的 agent .md 绝对路径;1 个应用于所有视角,N 个一一对应视角数
32
- - 示例:workflow run parallel --args target="<分析目标>" agents="/path/analyst.md"
33
- */
34
-
35
- // ── 入参($ARGS)──────────────────────────────────────────────────
36
- const target = $ARGS.target;
37
- if (!target) {
38
- throw new Error("parallel 缺少必需参数 target。用法:workflow run parallel --args target=\"<分析目标>\"");
39
- }
40
- const perspectives = Array.isArray($ARGS.perspectives) && $ARGS.perspectives.length > 0
41
- ? $ARGS.perspectives
42
- : ["security", "performance", "maintainability"];
43
- if (perspectives.some((p) => typeof p !== "string")) {
44
- throw new Error("parallel 参数 perspectives 必须是字符串数组,实际含非字符串元素");
45
- }
46
-
47
- // S4:agents 参数 = 逗号分隔的 agentRef 路径数组;1 个 = 所有视角,N 个 = 一一对应
48
- // worker 沙箱为 eval 模式:require 相对路径以 cwd 为基准(非脚本目录),
49
- // 必须用 workerData.scriptPath 锚定脚本目录(review-fix-loop 同模式)。
50
- const SCRIPT_DIR = workerData && workerData.scriptPath
51
- ? require("path").dirname(workerData.scriptPath)
52
- : process.cwd();
53
- const { parseAgentRefs, agentRefAt } = require(SCRIPT_DIR + "/_shared/agent-refs.cjs");
54
- const agentRefs = parseAgentRefs($ARGS.agents);
55
- const agentFor = (i) => {
56
- if (agentRefs.length === 1) return { agent: agentRefs[0] };
57
- const ref = agentRefAt(agentRefs, i);
58
- return ref ? { agent: ref } : {};
59
- };
60
-
61
- log("parallel 开始,target=" + target + " perspectives=" + JSON.stringify(perspectives) + (agentRefs.length ? " agents=" + agentRefs.join(",") : ""));
62
-
63
- let currentPhase = "init";
64
- let outcome;
65
-
66
- try {
67
- // ── 段 1:parallel-analyze(多视角并行分析)──────────────────────
68
- phase("parallel-analyze");
69
- currentPhase = "parallel-analyze";
70
-
71
- // parallel() 接受 Promise 数组;agent() 返回 Promise。allSettled 语义。
72
- const perPerspectiveRaw = await parallel(
73
- perspectives.map((p, i) =>
74
- agent({
75
- prompt:
76
- "从「" + p + "」角度分析以下目标,给出评分和发现的问题:\n\n" + target,
77
- schema: {
78
- type: "object",
79
- properties: {
80
- perspective: { type: "string", description: "视角名称" },
81
- score: { type: "number", description: "0-10 评分" },
82
- findings: {
83
- type: "array",
84
- items: { type: "string" },
85
- description: "发现的问题",
86
- },
87
- },
88
- required: ["perspective", "score", "findings"],
89
- },
90
- description: "parallel-" + p,
91
- ...agentFor(i),
92
- })
93
- ),
94
- );
95
-
96
- // 收集结果,标记成功/失败
97
- const perPerspective = [];
98
- let failedCount = 0;
99
- for (let i = 0; i < perPerspectiveRaw.length; i++) {
100
- const r = perPerspectiveRaw[i];
101
- if (!r || r.status === "failed" || r.error) {
102
- perPerspective.push({
103
- perspective: perspectives[i],
104
- status: "failed",
105
- error: r ? (r.error || "agent 返回 failed 状态") : "agent 无返回",
106
- });
107
- failedCount++;
108
- } else {
109
- perPerspective.push({
110
- perspective: perspectives[i],
111
- status: "ok",
112
- score: typeof r.score === "number" ? r.score : undefined,
113
- findings: Array.isArray(r.findings) ? r.findings : [],
114
- });
115
- }
116
- }
117
- if (failedCount === perspectives.length) {
118
- throw new Error("全部视角分析失败(" + failedCount + "/" + perspectives.length + ")");
119
- }
120
- log("parallel-analyze 完成:ok=" + (perspectives.length - failedCount) + " failed=" + failedCount);
121
-
122
- // ── 段 2:aggregate(汇总多视角结果)────────────────────────────
123
- phase("aggregate");
124
- currentPhase = "aggregate";
125
-
126
- // 纯代码合并:拼接各视角发现的问题(不调用 LLM)
127
- const aggregateResult = perPerspective
128
- .map((p) => "[" + (p.perspective || "?") + "] " + (p.findings ? p.findings.join("; ") : "(no findings)"))
129
- .join("\n");
130
-
131
- outcome = {
132
- status: failedCount > 0 ? "partial" : "ok",
133
- phases_run: ["parallel-analyze", "aggregate"],
134
- perspectives_analyzed: perspectives.length,
135
- per_perspective: perPerspective,
136
- aggregate: aggregateResult,
137
- message: "parallel 完成:" + perspectives.length + " 视角(失败 " + failedCount + ")→ 聚合",
138
- };
139
- } catch (err) {
140
- outcome = {
141
- status: "error",
142
- phase: currentPhase,
143
- error: err && err.message ? err.message : String(err),
144
- message: "parallel 在 " + currentPhase + " 段失败",
145
- };
146
- }
147
-
148
- return outcome;