@mobrienv/autoloop 0.4.0 → 0.7.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.
- package/LICENSE +21 -0
- package/README.md +40 -14
- package/bin/autoloop +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/testing/mock-backend.js +3 -5
- package/dist/testing/mock-backend.js.map +1 -1
- package/package.json +32 -23
- package/plugins/autoloop/.claude-plugin/plugin.json +1 -1
- package/dist/agent-map.d.ts +0 -10
- package/dist/agent-map.js +0 -58
- package/dist/agent-map.js.map +0 -1
- package/dist/backend/acp-client.d.ts +0 -38
- package/dist/backend/acp-client.js +0 -293
- package/dist/backend/acp-client.js.map +0 -1
- package/dist/backend/index.d.ts +0 -10
- package/dist/backend/index.js +0 -71
- package/dist/backend/index.js.map +0 -1
- package/dist/backend/kiro-bridge.d.ts +0 -19
- package/dist/backend/kiro-bridge.js +0 -114
- package/dist/backend/kiro-bridge.js.map +0 -1
- package/dist/backend/kiro-worker.d.ts +0 -1
- package/dist/backend/kiro-worker.js +0 -96
- package/dist/backend/kiro-worker.js.map +0 -1
- package/dist/backend/run-command.d.ts +0 -7
- package/dist/backend/run-command.js +0 -50
- package/dist/backend/run-command.js.map +0 -1
- package/dist/backend/run-kiro.d.ts +0 -3
- package/dist/backend/run-kiro.js +0 -16
- package/dist/backend/run-kiro.js.map +0 -1
- package/dist/backend/run-mock.d.ts +0 -1
- package/dist/backend/run-mock.js +0 -6
- package/dist/backend/run-mock.js.map +0 -1
- package/dist/backend/run-pi.d.ts +0 -5
- package/dist/backend/run-pi.js +0 -5
- package/dist/backend/run-pi.js.map +0 -1
- package/dist/backend/types.d.ts +0 -21
- package/dist/backend/types.js +0 -2
- package/dist/backend/types.js.map +0 -1
- package/dist/chains/budget.d.ts +0 -7
- package/dist/chains/budget.js +0 -54
- package/dist/chains/budget.js.map +0 -1
- package/dist/chains/load.d.ts +0 -18
- package/dist/chains/load.js +0 -129
- package/dist/chains/load.js.map +0 -1
- package/dist/chains/render.d.ts +0 -2
- package/dist/chains/render.js +0 -74
- package/dist/chains/render.js.map +0 -1
- package/dist/chains/run.d.ts +0 -17
- package/dist/chains/run.js +0 -260
- package/dist/chains/run.js.map +0 -1
- package/dist/chains/types.d.ts +0 -38
- package/dist/chains/types.js +0 -2
- package/dist/chains/types.js.map +0 -1
- package/dist/chains.d.ts +0 -6
- package/dist/chains.js +0 -5
- package/dist/chains.js.map +0 -1
- package/dist/cli/color.d.ts +0 -6
- package/dist/cli/color.js +0 -40
- package/dist/cli/color.js.map +0 -1
- package/dist/commands/chain.d.ts +0 -1
- package/dist/commands/chain.js +0 -53
- package/dist/commands/chain.js.map +0 -1
- package/dist/commands/config.d.ts +0 -1
- package/dist/commands/config.js +0 -74
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/dashboard.d.ts +0 -1
- package/dist/commands/dashboard.js +0 -68
- package/dist/commands/dashboard.js.map +0 -1
- package/dist/commands/guide.d.ts +0 -1
- package/dist/commands/guide.js +0 -33
- package/dist/commands/guide.js.map +0 -1
- package/dist/commands/inspect.d.ts +0 -1
- package/dist/commands/inspect.js +0 -243
- package/dist/commands/inspect.js.map +0 -1
- package/dist/commands/list.d.ts +0 -1
- package/dist/commands/list.js +0 -15
- package/dist/commands/list.js.map +0 -1
- package/dist/commands/loops.d.ts +0 -1
- package/dist/commands/loops.js +0 -72
- package/dist/commands/loops.js.map +0 -1
- package/dist/commands/memory.d.ts +0 -1
- package/dist/commands/memory.js +0 -65
- package/dist/commands/memory.js.map +0 -1
- package/dist/commands/pi-adapter.d.ts +0 -1
- package/dist/commands/pi-adapter.js +0 -6
- package/dist/commands/pi-adapter.js.map +0 -1
- package/dist/commands/run.d.ts +0 -1
- package/dist/commands/run.js +0 -292
- package/dist/commands/run.js.map +0 -1
- package/dist/commands/runs.d.ts +0 -1
- package/dist/commands/runs.js +0 -50
- package/dist/commands/runs.js.map +0 -1
- package/dist/commands/task.d.ts +0 -1
- package/dist/commands/task.js +0 -74
- package/dist/commands/task.js.map +0 -1
- package/dist/commands/worktree.d.ts +0 -1
- package/dist/commands/worktree.js +0 -162
- package/dist/commands/worktree.js.map +0 -1
- package/dist/config.d.ts +0 -31
- package/dist/config.js +0 -261
- package/dist/config.js.map +0 -1
- package/dist/dashboard/app.d.ts +0 -12
- package/dist/dashboard/app.js +0 -23
- package/dist/dashboard/app.js.map +0 -1
- package/dist/dashboard/routes/api.d.ts +0 -3
- package/dist/dashboard/routes/api.js +0 -186
- package/dist/dashboard/routes/api.js.map +0 -1
- package/dist/dashboard/routes/pages.d.ts +0 -2
- package/dist/dashboard/routes/pages.js +0 -16
- package/dist/dashboard/routes/pages.js.map +0 -1
- package/dist/dashboard/views/alpine-vendor.d.ts +0 -1
- package/dist/dashboard/views/alpine-vendor.js +0 -10
- package/dist/dashboard/views/alpine-vendor.js.map +0 -1
- package/dist/dashboard/views/shell.d.ts +0 -1
- package/dist/dashboard/views/shell.js +0 -1062
- package/dist/dashboard/views/shell.js.map +0 -1
- package/dist/events/decode.d.ts +0 -2
- package/dist/events/decode.js +0 -45
- package/dist/events/decode.js.map +0 -1
- package/dist/events/encode.d.ts +0 -2
- package/dist/events/encode.js +0 -33
- package/dist/events/encode.js.map +0 -1
- package/dist/events/guards.d.ts +0 -5
- package/dist/events/guards.js +0 -42
- package/dist/events/guards.js.map +0 -1
- package/dist/events/types.d.ts +0 -27
- package/dist/events/types.js +0 -2
- package/dist/events/types.js.map +0 -1
- package/dist/harness/artifacts.d.ts +0 -50
- package/dist/harness/artifacts.js +0 -333
- package/dist/harness/artifacts.js.map +0 -1
- package/dist/harness/config-helpers.d.ts +0 -35
- package/dist/harness/config-helpers.js +0 -409
- package/dist/harness/config-helpers.js.map +0 -1
- package/dist/harness/coordination.d.ts +0 -1
- package/dist/harness/coordination.js +0 -127
- package/dist/harness/coordination.js.map +0 -1
- package/dist/harness/display.d.ts +0 -21
- package/dist/harness/display.js +0 -176
- package/dist/harness/display.js.map +0 -1
- package/dist/harness/emit.d.ts +0 -15
- package/dist/harness/emit.js +0 -240
- package/dist/harness/emit.js.map +0 -1
- package/dist/harness/index.d.ts +0 -20
- package/dist/harness/index.js +0 -311
- package/dist/harness/index.js.map +0 -1
- package/dist/harness/iteration.d.ts +0 -16
- package/dist/harness/iteration.js +0 -131
- package/dist/harness/iteration.js.map +0 -1
- package/dist/harness/journal-format.d.ts +0 -25
- package/dist/harness/journal-format.js +0 -153
- package/dist/harness/journal-format.js.map +0 -1
- package/dist/harness/journal.d.ts +0 -31
- package/dist/harness/journal.js +0 -178
- package/dist/harness/journal.js.map +0 -1
- package/dist/harness/metareview.d.ts +0 -4
- package/dist/harness/metareview.js +0 -48
- package/dist/harness/metareview.js.map +0 -1
- package/dist/harness/metrics.d.ts +0 -12
- package/dist/harness/metrics.js +0 -180
- package/dist/harness/metrics.js.map +0 -1
- package/dist/harness/parallel.d.ts +0 -37
- package/dist/harness/parallel.js +0 -237
- package/dist/harness/parallel.js.map +0 -1
- package/dist/harness/prompt.d.ts +0 -46
- package/dist/harness/prompt.js +0 -403
- package/dist/harness/prompt.js.map +0 -1
- package/dist/harness/scratchpad.d.ts +0 -2
- package/dist/harness/scratchpad.js +0 -67
- package/dist/harness/scratchpad.js.map +0 -1
- package/dist/harness/stop.d.ts +0 -5
- package/dist/harness/stop.js +0 -70
- package/dist/harness/stop.js.map +0 -1
- package/dist/harness/tools.d.ts +0 -3
- package/dist/harness/tools.js +0 -65
- package/dist/harness/tools.js.map +0 -1
- package/dist/harness/types.d.ts +0 -110
- package/dist/harness/types.js +0 -2
- package/dist/harness/types.js.map +0 -1
- package/dist/harness/wave/finalize-wave.d.ts +0 -9
- package/dist/harness/wave/finalize-wave.js +0 -87
- package/dist/harness/wave/finalize-wave.js.map +0 -1
- package/dist/harness/wave/launch-branches.d.ts +0 -6
- package/dist/harness/wave/launch-branches.js +0 -314
- package/dist/harness/wave/launch-branches.js.map +0 -1
- package/dist/harness/wave/parse-objectives.d.ts +0 -3
- package/dist/harness/wave/parse-objectives.js +0 -32
- package/dist/harness/wave/parse-objectives.js.map +0 -1
- package/dist/harness/wave/types.d.ts +0 -43
- package/dist/harness/wave/types.js +0 -2
- package/dist/harness/wave/types.js.map +0 -1
- package/dist/harness/wave.d.ts +0 -6
- package/dist/harness/wave.js +0 -159
- package/dist/harness/wave.js.map +0 -1
- package/dist/isolation/index.d.ts +0 -4
- package/dist/isolation/index.js +0 -3
- package/dist/isolation/index.js.map +0 -1
- package/dist/isolation/resolve.d.ts +0 -39
- package/dist/isolation/resolve.js +0 -118
- package/dist/isolation/resolve.js.map +0 -1
- package/dist/isolation/run-scope.d.ts +0 -21
- package/dist/isolation/run-scope.js +0 -50
- package/dist/isolation/run-scope.js.map +0 -1
- package/dist/json.d.ts +0 -8
- package/dist/json.js +0 -82
- package/dist/json.js.map +0 -1
- package/dist/loops/health.d.ts +0 -17
- package/dist/loops/health.js +0 -152
- package/dist/loops/health.js.map +0 -1
- package/dist/loops/list.d.ts +0 -6
- package/dist/loops/list.js +0 -21
- package/dist/loops/list.js.map +0 -1
- package/dist/loops/policy.d.ts +0 -6
- package/dist/loops/policy.js +0 -41
- package/dist/loops/policy.js.map +0 -1
- package/dist/loops/render.d.ts +0 -19
- package/dist/loops/render.js +0 -100
- package/dist/loops/render.js.map +0 -1
- package/dist/loops/show.d.ts +0 -8
- package/dist/loops/show.js +0 -31
- package/dist/loops/show.js.map +0 -1
- package/dist/loops/watch.d.ts +0 -14
- package/dist/loops/watch.js +0 -143
- package/dist/loops/watch.js.map +0 -1
- package/dist/main.d.ts +0 -1
- package/dist/main.js +0 -148
- package/dist/main.js.map +0 -1
- package/dist/markdown.d.ts +0 -10
- package/dist/markdown.js +0 -66
- package/dist/markdown.js.map +0 -1
- package/dist/memory-render.d.ts +0 -6
- package/dist/memory-render.js +0 -81
- package/dist/memory-render.js.map +0 -1
- package/dist/memory.d.ts +0 -22
- package/dist/memory.js +0 -318
- package/dist/memory.js.map +0 -1
- package/dist/pi-adapter.d.ts +0 -1
- package/dist/pi-adapter.js +0 -220
- package/dist/pi-adapter.js.map +0 -1
- package/dist/profiles.d.ts +0 -12
- package/dist/profiles.js +0 -71
- package/dist/profiles.js.map +0 -1
- package/dist/registry/derive.d.ts +0 -8
- package/dist/registry/derive.js +0 -88
- package/dist/registry/derive.js.map +0 -1
- package/dist/registry/discover.d.ts +0 -20
- package/dist/registry/discover.js +0 -98
- package/dist/registry/discover.js.map +0 -1
- package/dist/registry/harness.d.ts +0 -7
- package/dist/registry/harness.js +0 -63
- package/dist/registry/harness.js.map +0 -1
- package/dist/registry/index.d.ts +0 -6
- package/dist/registry/index.js +0 -6
- package/dist/registry/index.js.map +0 -1
- package/dist/registry/read.d.ts +0 -11
- package/dist/registry/read.js +0 -50
- package/dist/registry/read.js.map +0 -1
- package/dist/registry/rebuild.d.ts +0 -5
- package/dist/registry/rebuild.js +0 -22
- package/dist/registry/rebuild.js.map +0 -1
- package/dist/registry/types.d.ts +0 -28
- package/dist/registry/types.js +0 -2
- package/dist/registry/types.js.map +0 -1
- package/dist/registry/update.d.ts +0 -2
- package/dist/registry/update.js +0 -7
- package/dist/registry/update.js.map +0 -1
- package/dist/tasks-render.d.ts +0 -2
- package/dist/tasks-render.js +0 -44
- package/dist/tasks-render.js.map +0 -1
- package/dist/tasks.d.ts +0 -24
- package/dist/tasks.js +0 -184
- package/dist/tasks.js.map +0 -1
- package/dist/topology.d.ts +0 -31
- package/dist/topology.js +0 -309
- package/dist/topology.js.map +0 -1
- package/dist/usage.d.ts +0 -9
- package/dist/usage.js +0 -160
- package/dist/usage.js.map +0 -1
- package/dist/utils.d.ts +0 -21
- package/dist/utils.js +0 -349
- package/dist/utils.js.map +0 -1
- package/dist/worktree/clean.d.ts +0 -12
- package/dist/worktree/clean.js +0 -113
- package/dist/worktree/clean.js.map +0 -1
- package/dist/worktree/create.d.ts +0 -14
- package/dist/worktree/create.js +0 -71
- package/dist/worktree/create.js.map +0 -1
- package/dist/worktree/index.d.ts +0 -10
- package/dist/worktree/index.js +0 -6
- package/dist/worktree/index.js.map +0 -1
- package/dist/worktree/list.d.ts +0 -9
- package/dist/worktree/list.js +0 -24
- package/dist/worktree/list.js.map +0 -1
- package/dist/worktree/merge.d.ts +0 -11
- package/dist/worktree/merge.js +0 -129
- package/dist/worktree/merge.js.map +0 -1
- package/dist/worktree/meta.d.ts +0 -17
- package/dist/worktree/meta.js +0 -34
- package/dist/worktree/meta.js.map +0 -1
- package/presets/autocode/README.md +0 -81
- package/presets/autocode/autoloops.toml +0 -30
- package/presets/autocode/harness.md +0 -26
- package/presets/autocode/miniloops.toml +0 -22
- package/presets/autocode/roles/build.md +0 -34
- package/presets/autocode/roles/critic.md +0 -40
- package/presets/autocode/roles/finalizer.md +0 -43
- package/presets/autocode/roles/planner.md +0 -40
- package/presets/autocode/topology.toml +0 -32
- package/presets/autodebug/README.md +0 -50
- package/presets/autodebug/autoloops.toml +0 -18
- package/presets/autodebug/harness.md +0 -31
- package/presets/autodebug/roles/fixer.md +0 -58
- package/presets/autodebug/roles/investigator.md +0 -52
- package/presets/autodebug/roles/strategist.md +0 -45
- package/presets/autodebug/roles/verifier.md +0 -66
- package/presets/autodebug/topology.toml +0 -34
- package/presets/autodoc/README.md +0 -42
- package/presets/autodoc/autoloops.toml +0 -21
- package/presets/autodoc/harness.md +0 -19
- package/presets/autodoc/miniloops.toml +0 -21
- package/presets/autodoc/roles/auditor.md +0 -39
- package/presets/autodoc/roles/checker.md +0 -43
- package/presets/autodoc/roles/publisher.md +0 -51
- package/presets/autodoc/roles/writer.md +0 -37
- package/presets/autodoc/topology.toml +0 -31
- package/presets/autofix/README.md +0 -56
- package/presets/autofix/autoloops.toml +0 -24
- package/presets/autofix/harness.md +0 -25
- package/presets/autofix/miniloops.toml +0 -21
- package/presets/autofix/roles/closer.md +0 -48
- package/presets/autofix/roles/diagnoser.md +0 -43
- package/presets/autofix/roles/fixer.md +0 -28
- package/presets/autofix/roles/verifier.md +0 -31
- package/presets/autofix/topology.toml +0 -33
- package/presets/autoideas/README.md +0 -73
- package/presets/autoideas/autoloops.toml +0 -18
- package/presets/autoideas/harness.md +0 -31
- package/presets/autoideas/miniloops.toml +0 -18
- package/presets/autoideas/roles/analyst.md +0 -32
- package/presets/autoideas/roles/reviewer.md +0 -36
- package/presets/autoideas/roles/scanner.md +0 -26
- package/presets/autoideas/roles/synthesizer.md +0 -61
- package/presets/autoideas/topology.toml +0 -32
- package/presets/automerge/README.md +0 -3
- package/presets/automerge/autoloops.toml +0 -12
- package/presets/automerge/harness.md +0 -10
- package/presets/automerge/miniloops.toml +0 -12
- package/presets/automerge/roles/merge.md +0 -10
- package/presets/automerge/topology.toml +0 -10
- package/presets/autoperf/README.md +0 -56
- package/presets/autoperf/autoloops.toml +0 -21
- package/presets/autoperf/harness.md +0 -21
- package/presets/autoperf/miniloops.toml +0 -21
- package/presets/autoperf/roles/judge.md +0 -38
- package/presets/autoperf/roles/measurer.md +0 -36
- package/presets/autoperf/roles/optimizer.md +0 -35
- package/presets/autoperf/roles/profiler.md +0 -38
- package/presets/autoperf/topology.toml +0 -32
- package/presets/autopr/README.md +0 -99
- package/presets/autopr/autoloops.toml +0 -22
- package/presets/autopr/harness.md +0 -27
- package/presets/autopr/miniloops.toml +0 -22
- package/presets/autopr/roles/collector.md +0 -55
- package/presets/autopr/roles/drafter.md +0 -38
- package/presets/autopr/roles/publisher.md +0 -28
- package/presets/autopr/roles/validator.md +0 -31
- package/presets/autopr/topology.toml +0 -32
- package/presets/autopreset/README.md +0 -35
- package/presets/autopreset/autoloops.toml +0 -18
- package/presets/autopreset/harness.md +0 -38
- package/presets/autopreset/roles/designer.md +0 -33
- package/presets/autopreset/roles/finalizer.md +0 -23
- package/presets/autopreset/roles/generator.md +0 -34
- package/presets/autopreset/roles/validator.md +0 -31
- package/presets/autopreset/topology.toml +0 -32
- package/presets/autoqa/README.md +0 -105
- package/presets/autoqa/autoloops.toml +0 -21
- package/presets/autoqa/harness.md +0 -52
- package/presets/autoqa/miniloops.toml +0 -21
- package/presets/autoqa/roles/executor.md +0 -96
- package/presets/autoqa/roles/inspector.md +0 -100
- package/presets/autoqa/roles/planner.md +0 -87
- package/presets/autoqa/roles/reporter.md +0 -117
- package/presets/autoqa/topology.toml +0 -31
- package/presets/autoresearch/README.md +0 -63
- package/presets/autoresearch/autoloops.toml +0 -18
- package/presets/autoresearch/harness.md +0 -28
- package/presets/autoresearch/miniloops.toml +0 -18
- package/presets/autoresearch/roles/benchmarker.md +0 -34
- package/presets/autoresearch/roles/evaluator.md +0 -33
- package/presets/autoresearch/roles/implementer.md +0 -26
- package/presets/autoresearch/roles/strategist.md +0 -43
- package/presets/autoresearch/topology.toml +0 -31
- package/presets/autoreview/README.md +0 -51
- package/presets/autoreview/autoloops.toml +0 -21
- package/presets/autoreview/harness.md +0 -20
- package/presets/autoreview/miniloops.toml +0 -21
- package/presets/autoreview/roles/checker.md +0 -36
- package/presets/autoreview/roles/reader.md +0 -33
- package/presets/autoreview/roles/suggester.md +0 -26
- package/presets/autoreview/roles/summarizer.md +0 -57
- package/presets/autoreview/topology.toml +0 -31
- package/presets/autosec/README.md +0 -51
- package/presets/autosec/autoloops.toml +0 -21
- package/presets/autosec/harness.md +0 -20
- package/presets/autosec/miniloops.toml +0 -21
- package/presets/autosec/roles/analyst.md +0 -38
- package/presets/autosec/roles/hardener.md +0 -36
- package/presets/autosec/roles/reporter.md +0 -63
- package/presets/autosec/roles/scanner.md +0 -38
- package/presets/autosec/topology.toml +0 -31
- package/presets/autosimplify/README.md +0 -83
- package/presets/autosimplify/autoloops.toml +0 -26
- package/presets/autosimplify/harness.md +0 -25
- package/presets/autosimplify/miniloops.toml +0 -22
- package/presets/autosimplify/roles/reviewer.md +0 -38
- package/presets/autosimplify/roles/scoper.md +0 -42
- package/presets/autosimplify/roles/simplifier.md +0 -51
- package/presets/autosimplify/roles/verifier.md +0 -40
- package/presets/autosimplify/topology.toml +0 -32
- package/presets/autospec/README.md +0 -84
- package/presets/autospec/autoloops.toml +0 -21
- package/presets/autospec/harness.md +0 -23
- package/presets/autospec/miniloops.toml +0 -21
- package/presets/autospec/roles/clarifier.md +0 -39
- package/presets/autospec/roles/critic.md +0 -41
- package/presets/autospec/roles/designer.md +0 -37
- package/presets/autospec/roles/planner.md +0 -38
- package/presets/autospec/roles/researcher.md +0 -33
- package/presets/autospec/topology.toml +0 -38
- package/presets/autotest/README.md +0 -55
- package/presets/autotest/autoloops.toml +0 -21
- package/presets/autotest/harness.md +0 -21
- package/presets/autotest/miniloops.toml +0 -21
- package/presets/autotest/roles/assessor.md +0 -57
- package/presets/autotest/roles/runner.md +0 -31
- package/presets/autotest/roles/surveyor.md +0 -39
- package/presets/autotest/roles/writer.md +0 -37
- package/presets/autotest/topology.toml +0 -32
package/dist/memory.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
|
package/dist/pi-adapter.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function run(args: string[]): void;
|
package/dist/pi-adapter.js
DELETED
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
import { execSync } from "node:child_process";
|
|
2
|
-
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
3
|
-
import { shellWords } from "./utils.js";
|
|
4
|
-
const BRIDGE_SCRIPT = `
|
|
5
|
-
import json
|
|
6
|
-
import os
|
|
7
|
-
import pathlib
|
|
8
|
-
import subprocess
|
|
9
|
-
import sys
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def extract_text_from_message(message):
|
|
13
|
-
text_parts = []
|
|
14
|
-
for item in message.get("content") or []:
|
|
15
|
-
if item.get("type") == "text":
|
|
16
|
-
text_parts.append(item.get("text", ""))
|
|
17
|
-
return "".join(text_parts)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def extract_text_from_messages(messages):
|
|
21
|
-
if not messages:
|
|
22
|
-
return ""
|
|
23
|
-
return extract_text_from_message(messages[-1] or {})
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
def extract_tool_error(response):
|
|
27
|
-
for item in response.get("output") or []:
|
|
28
|
-
if item.get("type") == "text":
|
|
29
|
-
text = item.get("text", "")
|
|
30
|
-
if text:
|
|
31
|
-
return text
|
|
32
|
-
return ""
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
def stream_log_path():
|
|
36
|
-
state_dir = os.environ.get("AUTOLOOP_STATE_DIR", "")
|
|
37
|
-
if not state_dir:
|
|
38
|
-
return None
|
|
39
|
-
prefix = "pi-review" if os.environ.get("AUTOLOOP_REVIEW_MODE", "") == "hyperagent" else "pi-stream"
|
|
40
|
-
iteration = os.environ.get("AUTOLOOP_ITERATION", "")
|
|
41
|
-
name = prefix + (("." + iteration) if iteration else "") + ".jsonl"
|
|
42
|
-
return pathlib.Path(state_dir) / name
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
cmd = sys.argv[1:-1]
|
|
46
|
-
prompt_path = sys.argv[-1]
|
|
47
|
-
raw_output = ""
|
|
48
|
-
exit_code = 1
|
|
49
|
-
|
|
50
|
-
try:
|
|
51
|
-
with open(prompt_path, "r", encoding="utf-8") as prompt_file:
|
|
52
|
-
completed = subprocess.run(cmd, stdin=prompt_file, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True, encoding="utf-8", errors="replace")
|
|
53
|
-
raw_output = completed.stdout or ""
|
|
54
|
-
exit_code = completed.returncode
|
|
55
|
-
except FileNotFoundError as exc:
|
|
56
|
-
raw_output = str(exc)
|
|
57
|
-
exit_code = 127
|
|
58
|
-
|
|
59
|
-
log_path = stream_log_path()
|
|
60
|
-
if log_path is not None:
|
|
61
|
-
log_path.parent.mkdir(parents=True, exist_ok=True)
|
|
62
|
-
log_path.write_text(raw_output)
|
|
63
|
-
|
|
64
|
-
text_parts = []
|
|
65
|
-
fallback_text = ""
|
|
66
|
-
saw_turn_end = False
|
|
67
|
-
saw_agent_end = False
|
|
68
|
-
error = ""
|
|
69
|
-
|
|
70
|
-
for raw_line in raw_output.splitlines():
|
|
71
|
-
line = raw_line.strip()
|
|
72
|
-
if not line:
|
|
73
|
-
continue
|
|
74
|
-
|
|
75
|
-
try:
|
|
76
|
-
event = json.loads(line)
|
|
77
|
-
except Exception:
|
|
78
|
-
continue
|
|
79
|
-
|
|
80
|
-
event_type = event.get("type")
|
|
81
|
-
|
|
82
|
-
if event_type == "message_update":
|
|
83
|
-
assistant_event = event.get("assistantMessageEvent") or {}
|
|
84
|
-
assistant_type = assistant_event.get("type")
|
|
85
|
-
if assistant_type == "text_delta":
|
|
86
|
-
text_parts.append(assistant_event.get("delta", ""))
|
|
87
|
-
elif assistant_type == "error" and assistant_event.get("reason"):
|
|
88
|
-
error = assistant_event.get("reason")
|
|
89
|
-
elif event_type == "tool_execution_end":
|
|
90
|
-
response = event.get("toolExecutionResponseEvent") or {}
|
|
91
|
-
if response.get("isError"):
|
|
92
|
-
detail = extract_tool_error(response)
|
|
93
|
-
if detail:
|
|
94
|
-
error = detail
|
|
95
|
-
elif event_type == "turn_end":
|
|
96
|
-
saw_turn_end = True
|
|
97
|
-
if not fallback_text:
|
|
98
|
-
fallback_text = extract_text_from_message(event.get("message") or {})
|
|
99
|
-
elif event_type == "agent_end":
|
|
100
|
-
saw_agent_end = True
|
|
101
|
-
if not fallback_text:
|
|
102
|
-
fallback_text = extract_text_from_messages(event.get("messages") or [])
|
|
103
|
-
|
|
104
|
-
text = "".join(text_parts)
|
|
105
|
-
if not text:
|
|
106
|
-
text = fallback_text
|
|
107
|
-
|
|
108
|
-
failed = exit_code != 0 or (not saw_turn_end and not saw_agent_end) or bool(error)
|
|
109
|
-
verbose = os.environ.get("AUTOLOOP_LOG_LEVEL", "") == "debug"
|
|
110
|
-
output = ""
|
|
111
|
-
|
|
112
|
-
if failed:
|
|
113
|
-
if verbose:
|
|
114
|
-
if text and error:
|
|
115
|
-
output = text + "\\n\\npi error: " + error
|
|
116
|
-
elif text:
|
|
117
|
-
output = text
|
|
118
|
-
else:
|
|
119
|
-
output = raw_output or error
|
|
120
|
-
else:
|
|
121
|
-
if text:
|
|
122
|
-
output = text
|
|
123
|
-
elif error:
|
|
124
|
-
output = "pi failed (run with -v for details)"
|
|
125
|
-
else:
|
|
126
|
-
output = raw_output or "pi failed"
|
|
127
|
-
else:
|
|
128
|
-
output = text
|
|
129
|
-
|
|
130
|
-
if output:
|
|
131
|
-
sys.stdout.write(output)
|
|
132
|
-
|
|
133
|
-
sys.exit(1 if failed else 0)
|
|
134
|
-
`;
|
|
135
|
-
export function run(args) {
|
|
136
|
-
const prompt = resolvePrompt();
|
|
137
|
-
if (!prompt) {
|
|
138
|
-
finishFailure("missing projected prompt");
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
const promptPath = materializePromptPath(prompt);
|
|
142
|
-
const piCommand = args[0] || "pi";
|
|
143
|
-
const piArgs = args.slice(1);
|
|
144
|
-
const command = buildPiBridgeCommand(piCommand, piArgs, promptPath);
|
|
145
|
-
try {
|
|
146
|
-
const output = execSync(command, {
|
|
147
|
-
encoding: "utf-8",
|
|
148
|
-
stdio: ["pipe", "pipe", "pipe"],
|
|
149
|
-
shell: "/bin/sh",
|
|
150
|
-
maxBuffer: 100 * 1024 * 1024,
|
|
151
|
-
});
|
|
152
|
-
finishSuccess(output || "");
|
|
153
|
-
}
|
|
154
|
-
catch (err) {
|
|
155
|
-
const e = err;
|
|
156
|
-
finishFailure(e.stdout || e.stderr || "");
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
function resolvePrompt() {
|
|
160
|
-
const envPrompt = process.env.AUTOLOOP_PROMPT;
|
|
161
|
-
if (envPrompt)
|
|
162
|
-
return envPrompt;
|
|
163
|
-
const pathPrompt = promptFromPath();
|
|
164
|
-
if (pathPrompt)
|
|
165
|
-
return pathPrompt;
|
|
166
|
-
return projectedPrompt();
|
|
167
|
-
}
|
|
168
|
-
function projectedPrompt() {
|
|
169
|
-
const bin = process.env.AUTOLOOP_BIN || "";
|
|
170
|
-
const iteration = process.env.AUTOLOOP_ITERATION || "";
|
|
171
|
-
if (!bin || !iteration)
|
|
172
|
-
return "";
|
|
173
|
-
try {
|
|
174
|
-
const output = execSync(shellWords([bin, "inspect", "prompt", iteration, "--format", "md"]), { encoding: "utf-8", shell: "/bin/sh", timeout: 30000 });
|
|
175
|
-
return output || "";
|
|
176
|
-
}
|
|
177
|
-
catch {
|
|
178
|
-
return "";
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
function promptFromPath() {
|
|
182
|
-
const path = process.env.AUTOLOOP_PROMPT_PATH || "";
|
|
183
|
-
if (!path || !existsSync(path))
|
|
184
|
-
return "";
|
|
185
|
-
return readFileSync(path, "utf-8");
|
|
186
|
-
}
|
|
187
|
-
function buildPiBridgeCommand(command, extraArgs, promptPath) {
|
|
188
|
-
return shellWords([
|
|
189
|
-
"python3",
|
|
190
|
-
"-c",
|
|
191
|
-
BRIDGE_SCRIPT,
|
|
192
|
-
command,
|
|
193
|
-
...defaultPiArgs(),
|
|
194
|
-
...extraArgs,
|
|
195
|
-
promptPath,
|
|
196
|
-
]);
|
|
197
|
-
}
|
|
198
|
-
function materializePromptPath(prompt) {
|
|
199
|
-
const path = promptStoragePath();
|
|
200
|
-
writeFileSync(path, prompt, "utf-8");
|
|
201
|
-
return path;
|
|
202
|
-
}
|
|
203
|
-
function promptStoragePath() {
|
|
204
|
-
const configured = process.env.AUTOLOOP_PROMPT_PATH || "";
|
|
205
|
-
return configured || "/tmp/autoloop-pi-adapter-prompt.md";
|
|
206
|
-
}
|
|
207
|
-
function defaultPiArgs() {
|
|
208
|
-
return ["-p", "--mode", "json", "--no-session"];
|
|
209
|
-
}
|
|
210
|
-
function finishSuccess(output) {
|
|
211
|
-
if (output)
|
|
212
|
-
process.stdout.write(output);
|
|
213
|
-
process.exitCode = 0;
|
|
214
|
-
}
|
|
215
|
-
function finishFailure(output) {
|
|
216
|
-
if (output)
|
|
217
|
-
process.stdout.write(output);
|
|
218
|
-
process.exitCode = 1;
|
|
219
|
-
}
|
|
220
|
-
//# sourceMappingURL=pi-adapter.js.map
|
package/dist/pi-adapter.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pi-adapter.js","sourceRoot":"","sources":["../src/pi-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/profiles.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { Role } from "./topology.js";
|
|
2
|
-
export interface ProfileSpec {
|
|
3
|
-
scope: "repo" | "user";
|
|
4
|
-
name: string;
|
|
5
|
-
}
|
|
6
|
-
export declare function parseProfileSpec(spec: string): ProfileSpec;
|
|
7
|
-
export declare function resolveProfileDir(spec: ProfileSpec, workDir: string): string;
|
|
8
|
-
export declare function resolveProfileFragments(profileSpecs: string[], presetName: string, roles: Role[], workDir: string): {
|
|
9
|
-
fragments: Map<string, string>;
|
|
10
|
-
warnings: string[];
|
|
11
|
-
};
|
|
12
|
-
export declare function applyProfileFragments(roles: Role[], fragments: Map<string, string>): Role[];
|
package/dist/profiles.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
2
|
-
import { homedir } from "node:os";
|
|
3
|
-
import { join } from "node:path";
|
|
4
|
-
export function parseProfileSpec(spec) {
|
|
5
|
-
const colonIdx = spec.indexOf(":");
|
|
6
|
-
if (colonIdx < 0) {
|
|
7
|
-
throw new Error(`invalid profile spec "${spec}": must be "repo:<name>" or "user:<name>"`);
|
|
8
|
-
}
|
|
9
|
-
const scope = spec.slice(0, colonIdx);
|
|
10
|
-
const name = spec.slice(colonIdx + 1);
|
|
11
|
-
if (scope !== "repo" && scope !== "user") {
|
|
12
|
-
throw new Error(`invalid profile scope "${scope}" in "${spec}": must be "repo" or "user"`);
|
|
13
|
-
}
|
|
14
|
-
if (!name) {
|
|
15
|
-
throw new Error(`invalid profile spec "${spec}": name cannot be empty`);
|
|
16
|
-
}
|
|
17
|
-
return { scope, name };
|
|
18
|
-
}
|
|
19
|
-
export function resolveProfileDir(spec, workDir) {
|
|
20
|
-
if (spec.scope === "repo") {
|
|
21
|
-
return join(workDir, ".autoloop", "profiles", spec.name);
|
|
22
|
-
}
|
|
23
|
-
return join(homedir(), ".config", "autoloops", "profiles", spec.name);
|
|
24
|
-
}
|
|
25
|
-
export function resolveProfileFragments(profileSpecs, presetName, roles, workDir) {
|
|
26
|
-
const fragments = new Map();
|
|
27
|
-
const warnings = [];
|
|
28
|
-
const roleIds = new Set(roles.map((r) => r.id));
|
|
29
|
-
for (const spec of profileSpecs) {
|
|
30
|
-
const parsed = parseProfileSpec(spec);
|
|
31
|
-
const profileDir = resolveProfileDir(parsed, workDir);
|
|
32
|
-
if (!existsSync(profileDir)) {
|
|
33
|
-
throw new Error(`profile "${spec}" not found: ${profileDir} does not exist`);
|
|
34
|
-
}
|
|
35
|
-
const presetDir = join(profileDir, presetName);
|
|
36
|
-
if (!existsSync(presetDir)) {
|
|
37
|
-
warnings.push(`profile "${spec}" has no fragments for preset "${presetName}"`);
|
|
38
|
-
continue;
|
|
39
|
-
}
|
|
40
|
-
let contributed = false;
|
|
41
|
-
const entries = readdirSync(presetDir)
|
|
42
|
-
.filter((f) => f.endsWith(".md"))
|
|
43
|
-
.sort();
|
|
44
|
-
for (const entry of entries) {
|
|
45
|
-
const roleId = entry.replace(/\.md$/, "");
|
|
46
|
-
if (!roleIds.has(roleId)) {
|
|
47
|
-
warnings.push(`profile "${spec}" has fragment for unknown role "${roleId}" in preset "${presetName}"`);
|
|
48
|
-
continue;
|
|
49
|
-
}
|
|
50
|
-
const content = readFileSync(join(presetDir, entry), "utf-8");
|
|
51
|
-
const existing = fragments.get(roleId) ?? "";
|
|
52
|
-
fragments.set(roleId, `${existing}\n${content}`);
|
|
53
|
-
contributed = true;
|
|
54
|
-
}
|
|
55
|
-
if (!contributed) {
|
|
56
|
-
warnings.push(`profile "${spec}" contributed no fragments for preset "${presetName}"`);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return { fragments, warnings };
|
|
60
|
-
}
|
|
61
|
-
export function applyProfileFragments(roles, fragments) {
|
|
62
|
-
if (fragments.size === 0)
|
|
63
|
-
return roles;
|
|
64
|
-
return roles.map((role) => {
|
|
65
|
-
const fragment = fragments.get(role.id);
|
|
66
|
-
if (!fragment)
|
|
67
|
-
return role;
|
|
68
|
-
return { ...role, prompt: role.prompt + fragment };
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=profiles.js.map
|
package/dist/profiles.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../src/profiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { RegistryStatus, RunRecord } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Derive run records from raw journal lines.
|
|
4
|
-
* Each `loop.start` creates a new record; subsequent events update it.
|
|
5
|
-
* Returns one record per run_id, reflecting the final known state.
|
|
6
|
-
*/
|
|
7
|
-
export declare function deriveRunRecords(lines: string[]): RunRecord[];
|
|
8
|
-
export declare function stopReasonToStatus(reason: string): RegistryStatus;
|
package/dist/registry/derive.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { normalizeBackendLabel } from "../backend/index.js";
|
|
2
|
-
import { decodeEvent } from "../events/decode.js";
|
|
3
|
-
import { splitCsv } from "../utils.js";
|
|
4
|
-
/**
|
|
5
|
-
* Derive run records from raw journal lines.
|
|
6
|
-
* Each `loop.start` creates a new record; subsequent events update it.
|
|
7
|
-
* Returns one record per run_id, reflecting the final known state.
|
|
8
|
-
*/
|
|
9
|
-
export function deriveRunRecords(lines) {
|
|
10
|
-
const runs = new Map();
|
|
11
|
-
for (const line of lines) {
|
|
12
|
-
const event = decodeEvent(line);
|
|
13
|
-
if (!event)
|
|
14
|
-
continue;
|
|
15
|
-
const runId = event.run;
|
|
16
|
-
if (!runId)
|
|
17
|
-
continue;
|
|
18
|
-
const topic = String(event.topic);
|
|
19
|
-
if (topic === "loop.start" && event.shape === "fields") {
|
|
20
|
-
const f = event.fields;
|
|
21
|
-
runs.set(runId, {
|
|
22
|
-
run_id: runId,
|
|
23
|
-
status: "running",
|
|
24
|
-
preset: f.preset ?? "",
|
|
25
|
-
objective: f.objective ?? "",
|
|
26
|
-
trigger: f.trigger ?? "",
|
|
27
|
-
project_dir: f.project_dir ?? "",
|
|
28
|
-
work_dir: f.work_dir ?? "",
|
|
29
|
-
state_dir: "",
|
|
30
|
-
journal_file: "",
|
|
31
|
-
parent_run_id: f.parent_run_id ?? "",
|
|
32
|
-
backend: normalizeBackendLabel(f.backend ?? ""),
|
|
33
|
-
backend_args: f.backend_args ? splitCsv(f.backend_args) : [],
|
|
34
|
-
created_at: f.created_at ?? "",
|
|
35
|
-
updated_at: f.created_at ?? "",
|
|
36
|
-
iteration: 0,
|
|
37
|
-
max_iterations: Number(f.max_iterations) || 0,
|
|
38
|
-
stop_reason: "",
|
|
39
|
-
latest_event: topic,
|
|
40
|
-
isolation_mode: f.isolation_mode ?? "shared",
|
|
41
|
-
worktree_name: f.worktree_name ?? "",
|
|
42
|
-
worktree_path: f.worktree_path ?? "",
|
|
43
|
-
});
|
|
44
|
-
continue;
|
|
45
|
-
}
|
|
46
|
-
const record = runs.get(runId);
|
|
47
|
-
if (!record)
|
|
48
|
-
continue;
|
|
49
|
-
if (topic === "iteration.finish") {
|
|
50
|
-
const iter = event.iteration
|
|
51
|
-
? parseInt(event.iteration, 10)
|
|
52
|
-
: record.iteration;
|
|
53
|
-
record.iteration = Number.isNaN(iter) ? record.iteration : iter;
|
|
54
|
-
record.updated_at = record.created_at;
|
|
55
|
-
record.latest_event = topic;
|
|
56
|
-
continue;
|
|
57
|
-
}
|
|
58
|
-
if (topic === "loop.complete") {
|
|
59
|
-
record.status = "completed";
|
|
60
|
-
record.stop_reason = fieldValue(event, "reason");
|
|
61
|
-
record.updated_at = record.created_at;
|
|
62
|
-
record.latest_event = topic;
|
|
63
|
-
continue;
|
|
64
|
-
}
|
|
65
|
-
if (topic === "loop.stop") {
|
|
66
|
-
record.status = stopReasonToStatus(fieldValue(event, "reason"));
|
|
67
|
-
record.stop_reason = fieldValue(event, "reason");
|
|
68
|
-
record.updated_at = record.created_at;
|
|
69
|
-
record.latest_event = topic;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return Array.from(runs.values());
|
|
73
|
-
}
|
|
74
|
-
function fieldValue(event, key) {
|
|
75
|
-
if (!event)
|
|
76
|
-
return "";
|
|
77
|
-
if (event.shape === "fields")
|
|
78
|
-
return event.fields[key] ?? "";
|
|
79
|
-
return "";
|
|
80
|
-
}
|
|
81
|
-
export function stopReasonToStatus(reason) {
|
|
82
|
-
if (reason === "backend_failed")
|
|
83
|
-
return "failed";
|
|
84
|
-
if (reason === "backend_timeout")
|
|
85
|
-
return "timed_out";
|
|
86
|
-
return "stopped";
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=derive.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/registry/derive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { RunRecord } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Discover chain and worktree registry files under the given state directory.
|
|
4
|
-
* Walks chains/{id}/step-{n}/.autoloop/ for registry.jsonl files,
|
|
5
|
-
* including worktree-isolated registries nested further below.
|
|
6
|
-
*/
|
|
7
|
-
export declare function discoverChainRegistries(stateDir: string): string[];
|
|
8
|
-
/**
|
|
9
|
-
* Read the root registry plus all discovered chain/worktree registries,
|
|
10
|
-
* returning a deduplicated merged view.
|
|
11
|
-
*/
|
|
12
|
-
export declare function readMergedRegistry(stateDir: string): RunRecord[];
|
|
13
|
-
/** Active runs from the merged registry view. */
|
|
14
|
-
export declare function mergedActiveRuns(stateDir: string): RunRecord[];
|
|
15
|
-
/** Recent runs from the merged registry view, sorted by updated_at desc. */
|
|
16
|
-
export declare function mergedRecentRuns(stateDir: string, limit: number): RunRecord[];
|
|
17
|
-
/**
|
|
18
|
-
* Find a run by exact or prefix match across the merged registry.
|
|
19
|
-
*/
|
|
20
|
-
export declare function mergedFindRunByPrefix(stateDir: string, partial: string): RunRecord | RunRecord[] | undefined;
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { existsSync, readdirSync } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { readRegistry } from "./read.js";
|
|
4
|
-
function listDirs(dir) {
|
|
5
|
-
if (!existsSync(dir))
|
|
6
|
-
return [];
|
|
7
|
-
try {
|
|
8
|
-
return readdirSync(dir, { withFileTypes: true })
|
|
9
|
-
.filter((d) => d.isDirectory())
|
|
10
|
-
.map((d) => join(dir, d.name));
|
|
11
|
-
}
|
|
12
|
-
catch {
|
|
13
|
-
return [];
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Discover chain and worktree registry files under the given state directory.
|
|
18
|
-
* Walks chains/{id}/step-{n}/.autoloop/ for registry.jsonl files,
|
|
19
|
-
* including worktree-isolated registries nested further below.
|
|
20
|
-
*/
|
|
21
|
-
export function discoverChainRegistries(stateDir) {
|
|
22
|
-
const results = [];
|
|
23
|
-
const chainsDir = join(stateDir, "chains");
|
|
24
|
-
for (const chainDir of listDirs(chainsDir)) {
|
|
25
|
-
for (const stepDir of listDirs(chainDir)) {
|
|
26
|
-
if (!stepDir.includes("step-"))
|
|
27
|
-
continue;
|
|
28
|
-
const stepState = join(stepDir, ".autoloop");
|
|
29
|
-
// Direct chain step registry
|
|
30
|
-
const regPath = join(stepState, "registry.jsonl");
|
|
31
|
-
if (existsSync(regPath))
|
|
32
|
-
results.push(regPath);
|
|
33
|
-
// Worktree-isolated registries under this step
|
|
34
|
-
const wtDir = join(stepState, "worktrees");
|
|
35
|
-
for (const wtRunDir of listDirs(wtDir)) {
|
|
36
|
-
const wtReg = join(wtRunDir, "tree", ".autoloop", "registry.jsonl");
|
|
37
|
-
if (existsSync(wtReg))
|
|
38
|
-
results.push(wtReg);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return results;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Merge records from multiple registries, deduplicating by run_id.
|
|
46
|
-
* The record with the most recent updated_at wins.
|
|
47
|
-
*/
|
|
48
|
-
function mergeRecords(recordSets) {
|
|
49
|
-
const map = new Map();
|
|
50
|
-
for (const records of recordSets) {
|
|
51
|
-
for (const r of records) {
|
|
52
|
-
const existing = map.get(r.run_id);
|
|
53
|
-
if (!existing || r.updated_at > existing.updated_at) {
|
|
54
|
-
map.set(r.run_id, r);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return Array.from(map.values());
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Read the root registry plus all discovered chain/worktree registries,
|
|
62
|
-
* returning a deduplicated merged view.
|
|
63
|
-
*/
|
|
64
|
-
export function readMergedRegistry(stateDir) {
|
|
65
|
-
const rootPath = join(stateDir, "registry.jsonl");
|
|
66
|
-
const childPaths = discoverChainRegistries(stateDir);
|
|
67
|
-
const recordSets = [readRegistry(rootPath)];
|
|
68
|
-
for (const p of childPaths) {
|
|
69
|
-
recordSets.push(readRegistry(p));
|
|
70
|
-
}
|
|
71
|
-
return mergeRecords(recordSets);
|
|
72
|
-
}
|
|
73
|
-
/** Active runs from the merged registry view. */
|
|
74
|
-
export function mergedActiveRuns(stateDir) {
|
|
75
|
-
return readMergedRegistry(stateDir).filter((r) => r.status === "running");
|
|
76
|
-
}
|
|
77
|
-
/** Recent runs from the merged registry view, sorted by updated_at desc. */
|
|
78
|
-
export function mergedRecentRuns(stateDir, limit) {
|
|
79
|
-
const all = readMergedRegistry(stateDir);
|
|
80
|
-
all.sort((a, b) => b.updated_at.localeCompare(a.updated_at));
|
|
81
|
-
return all.slice(0, limit);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Find a run by exact or prefix match across the merged registry.
|
|
85
|
-
*/
|
|
86
|
-
export function mergedFindRunByPrefix(stateDir, partial) {
|
|
87
|
-
const all = readMergedRegistry(stateDir);
|
|
88
|
-
const exact = all.find((r) => r.run_id === partial);
|
|
89
|
-
if (exact)
|
|
90
|
-
return exact;
|
|
91
|
-
const matches = all.filter((r) => r.run_id.startsWith(partial));
|
|
92
|
-
if (matches.length === 1)
|
|
93
|
-
return matches[0];
|
|
94
|
-
if (matches.length > 1)
|
|
95
|
-
return matches;
|
|
96
|
-
return undefined;
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=discover.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/registry/discover.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { LoopContext } from "../harness/types.js";
|
|
2
|
-
import type { RegistryStatus } from "./types.js";
|
|
3
|
-
export declare function registryStart(loop: LoopContext): void;
|
|
4
|
-
export declare function registryProgress(loop: LoopContext, iteration: number): void;
|
|
5
|
-
export declare function registryTerminal(loop: LoopContext, iteration: number, status: RegistryStatus, stopReason: string, latestEvent: string): void;
|
|
6
|
-
export declare function registryComplete(loop: LoopContext, iteration: number, reason: string): void;
|
|
7
|
-
export declare function registryStop(loop: LoopContext, iteration: number, reason: string): void;
|
package/dist/registry/harness.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { normalizeBackendLabel } from "../backend/index.js";
|
|
2
|
-
import { stopReasonToStatus } from "./derive.js";
|
|
3
|
-
import { getRun } from "./read.js";
|
|
4
|
-
import { appendRegistryEntry } from "./update.js";
|
|
5
|
-
function registryPath(loop) {
|
|
6
|
-
return loop.paths.registryFile;
|
|
7
|
-
}
|
|
8
|
-
function baseRecord(loop) {
|
|
9
|
-
return {
|
|
10
|
-
run_id: loop.runtime.runId,
|
|
11
|
-
status: "running",
|
|
12
|
-
preset: loop.launch.preset,
|
|
13
|
-
objective: loop.objective,
|
|
14
|
-
trigger: loop.launch.trigger,
|
|
15
|
-
project_dir: loop.paths.projectDir,
|
|
16
|
-
work_dir: loop.paths.workDir,
|
|
17
|
-
state_dir: loop.paths.stateDir,
|
|
18
|
-
journal_file: loop.paths.journalFile,
|
|
19
|
-
parent_run_id: loop.launch.parentRunId,
|
|
20
|
-
backend: normalizeBackendLabel(loop.backend.command),
|
|
21
|
-
backend_args: loop.backend.args,
|
|
22
|
-
created_at: loop.launch.createdAt,
|
|
23
|
-
updated_at: new Date().toISOString(),
|
|
24
|
-
iteration: 0,
|
|
25
|
-
max_iterations: loop.limits.maxIterations,
|
|
26
|
-
stop_reason: "",
|
|
27
|
-
latest_event: "loop.start",
|
|
28
|
-
isolation_mode: loop.runtime.isolationMode ?? "shared",
|
|
29
|
-
worktree_name: loop.paths.worktreeBranch || "",
|
|
30
|
-
worktree_path: loop.paths.worktreePath || "",
|
|
31
|
-
pid: process.pid,
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
export function registryStart(loop) {
|
|
35
|
-
appendRegistryEntry(registryPath(loop), baseRecord(loop));
|
|
36
|
-
}
|
|
37
|
-
export function registryProgress(loop, iteration) {
|
|
38
|
-
const path = registryPath(loop);
|
|
39
|
-
const existing = getRun(path, loop.runtime.runId);
|
|
40
|
-
const record = existing ? { ...existing } : baseRecord(loop);
|
|
41
|
-
record.iteration = iteration;
|
|
42
|
-
record.updated_at = new Date().toISOString();
|
|
43
|
-
record.latest_event = "iteration.finish";
|
|
44
|
-
appendRegistryEntry(path, record);
|
|
45
|
-
}
|
|
46
|
-
export function registryTerminal(loop, iteration, status, stopReason, latestEvent) {
|
|
47
|
-
const path = registryPath(loop);
|
|
48
|
-
const existing = getRun(path, loop.runtime.runId);
|
|
49
|
-
const record = existing ? { ...existing } : baseRecord(loop);
|
|
50
|
-
record.status = status;
|
|
51
|
-
record.iteration = iteration;
|
|
52
|
-
record.stop_reason = stopReason;
|
|
53
|
-
record.updated_at = new Date().toISOString();
|
|
54
|
-
record.latest_event = latestEvent;
|
|
55
|
-
appendRegistryEntry(path, record);
|
|
56
|
-
}
|
|
57
|
-
export function registryComplete(loop, iteration, reason) {
|
|
58
|
-
registryTerminal(loop, iteration, "completed", reason, "loop.complete");
|
|
59
|
-
}
|
|
60
|
-
export function registryStop(loop, iteration, reason) {
|
|
61
|
-
registryTerminal(loop, iteration, stopReasonToStatus(reason), reason, "loop.stop");
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=harness.js.map
|