@chinhae/atw-cli 0.1.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.
- package/COPYRIGHT +14 -0
- package/LICENSE +77 -0
- package/README.md +122 -0
- package/bin/atw.js +3 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +299 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/commands/ablate.d.ts +14 -0
- package/dist/commands/ablate.d.ts.map +1 -0
- package/dist/commands/ablate.js +307 -0
- package/dist/commands/ablate.js.map +1 -0
- package/dist/commands/channel/adapters/claude.d.ts +53 -0
- package/dist/commands/channel/adapters/claude.d.ts.map +1 -0
- package/dist/commands/channel/adapters/claude.js +225 -0
- package/dist/commands/channel/adapters/claude.js.map +1 -0
- package/dist/commands/channel/adapters/codex.d.ts +93 -0
- package/dist/commands/channel/adapters/codex.d.ts.map +1 -0
- package/dist/commands/channel/adapters/codex.js +573 -0
- package/dist/commands/channel/adapters/codex.js.map +1 -0
- package/dist/commands/channel/adapters/index.d.ts +94 -0
- package/dist/commands/channel/adapters/index.d.ts.map +1 -0
- package/dist/commands/channel/adapters/index.js +116 -0
- package/dist/commands/channel/adapters/index.js.map +1 -0
- package/dist/commands/channel/adapters/types.d.ts +33 -0
- package/dist/commands/channel/adapters/types.d.ts.map +1 -0
- package/dist/commands/channel/adapters/types.js +2 -0
- package/dist/commands/channel/adapters/types.js.map +1 -0
- package/dist/commands/channel/agent-loader.d.ts +32 -0
- package/dist/commands/channel/agent-loader.d.ts.map +1 -0
- package/dist/commands/channel/agent-loader.js +158 -0
- package/dist/commands/channel/agent-loader.js.map +1 -0
- package/dist/commands/channel/context-loader.d.ts +26 -0
- package/dist/commands/channel/context-loader.d.ts.map +1 -0
- package/dist/commands/channel/context-loader.js +311 -0
- package/dist/commands/channel/context-loader.js.map +1 -0
- package/dist/commands/channel/context-trust.d.ts +31 -0
- package/dist/commands/channel/context-trust.d.ts.map +1 -0
- package/dist/commands/channel/context-trust.js +139 -0
- package/dist/commands/channel/context-trust.js.map +1 -0
- package/dist/commands/channel/context.d.ts +16 -0
- package/dist/commands/channel/context.d.ts.map +1 -0
- package/dist/commands/channel/context.js +83 -0
- package/dist/commands/channel/context.js.map +1 -0
- package/dist/commands/channel/create.d.ts +27 -0
- package/dist/commands/channel/create.d.ts.map +1 -0
- package/dist/commands/channel/create.js +39 -0
- package/dist/commands/channel/create.js.map +1 -0
- package/dist/commands/channel/dev-parse-trace.d.ts +14 -0
- package/dist/commands/channel/dev-parse-trace.d.ts.map +1 -0
- package/dist/commands/channel/dev-parse-trace.js +70 -0
- package/dist/commands/channel/dev-parse-trace.js.map +1 -0
- package/dist/commands/channel/guard.d.ts +150 -0
- package/dist/commands/channel/guard.d.ts.map +1 -0
- package/dist/commands/channel/guard.js +479 -0
- package/dist/commands/channel/guard.js.map +1 -0
- package/dist/commands/channel/index.d.ts +3 -0
- package/dist/commands/channel/index.d.ts.map +1 -0
- package/dist/commands/channel/index.js +535 -0
- package/dist/commands/channel/index.js.map +1 -0
- package/dist/commands/channel/interrupt.d.ts +10 -0
- package/dist/commands/channel/interrupt.d.ts.map +1 -0
- package/dist/commands/channel/interrupt.js +22 -0
- package/dist/commands/channel/interrupt.js.map +1 -0
- package/dist/commands/channel/kill.d.ts +7 -0
- package/dist/commands/channel/kill.d.ts.map +1 -0
- package/dist/commands/channel/kill.js +130 -0
- package/dist/commands/channel/kill.js.map +1 -0
- package/dist/commands/channel/list.d.ts +17 -0
- package/dist/commands/channel/list.d.ts.map +1 -0
- package/dist/commands/channel/list.js +233 -0
- package/dist/commands/channel/list.js.map +1 -0
- package/dist/commands/channel/messages.d.ts +15 -0
- package/dist/commands/channel/messages.d.ts.map +1 -0
- package/dist/commands/channel/messages.js +245 -0
- package/dist/commands/channel/messages.js.map +1 -0
- package/dist/commands/channel/rm.d.ts +27 -0
- package/dist/commands/channel/rm.d.ts.map +1 -0
- package/dist/commands/channel/rm.js +216 -0
- package/dist/commands/channel/rm.js.map +1 -0
- package/dist/commands/channel/run.d.ts +30 -0
- package/dist/commands/channel/run.d.ts.map +1 -0
- package/dist/commands/channel/run.js +130 -0
- package/dist/commands/channel/run.js.map +1 -0
- package/dist/commands/channel/send.d.ts +11 -0
- package/dist/commands/channel/send.d.ts.map +1 -0
- package/dist/commands/channel/send.js +24 -0
- package/dist/commands/channel/send.js.map +1 -0
- package/dist/commands/channel/spawn.d.ts +43 -0
- package/dist/commands/channel/spawn.d.ts.map +1 -0
- package/dist/commands/channel/spawn.js +247 -0
- package/dist/commands/channel/spawn.js.map +1 -0
- package/dist/commands/channel/store/events.d.ts +22 -0
- package/dist/commands/channel/store/events.d.ts.map +1 -0
- package/dist/commands/channel/store/events.js +43 -0
- package/dist/commands/channel/store/events.js.map +1 -0
- package/dist/commands/channel/store/filter.d.ts +3 -0
- package/dist/commands/channel/store/filter.d.ts.map +1 -0
- package/dist/commands/channel/store/filter.js +2 -0
- package/dist/commands/channel/store/filter.js.map +1 -0
- package/dist/commands/channel/store/lock.d.ts +23 -0
- package/dist/commands/channel/store/lock.d.ts.map +1 -0
- package/dist/commands/channel/store/lock.js +99 -0
- package/dist/commands/channel/store/lock.js.map +1 -0
- package/dist/commands/channel/store/paths.d.ts +77 -0
- package/dist/commands/channel/store/paths.d.ts.map +1 -0
- package/dist/commands/channel/store/paths.js +272 -0
- package/dist/commands/channel/store/paths.js.map +1 -0
- package/dist/commands/channel/store/schema.d.ts +27 -0
- package/dist/commands/channel/store/schema.d.ts.map +1 -0
- package/dist/commands/channel/store/schema.js +34 -0
- package/dist/commands/channel/store/schema.js.map +1 -0
- package/dist/commands/channel/store/thread-state.d.ts +5 -0
- package/dist/commands/channel/store/thread-state.d.ts.map +1 -0
- package/dist/commands/channel/store/thread-state.js +16 -0
- package/dist/commands/channel/store/thread-state.js.map +1 -0
- package/dist/commands/channel/store/watch.d.ts +19 -0
- package/dist/commands/channel/store/watch.d.ts.map +1 -0
- package/dist/commands/channel/store/watch.js +153 -0
- package/dist/commands/channel/store/watch.js.map +1 -0
- package/dist/commands/channel/supervisor/idle.d.ts +45 -0
- package/dist/commands/channel/supervisor/idle.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/idle.js +70 -0
- package/dist/commands/channel/supervisor/idle.js.map +1 -0
- package/dist/commands/channel/supervisor/inbox.d.ts +30 -0
- package/dist/commands/channel/supervisor/inbox.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/inbox.js +160 -0
- package/dist/commands/channel/supervisor/inbox.js.map +1 -0
- package/dist/commands/channel/supervisor/shutdown.d.ts +68 -0
- package/dist/commands/channel/supervisor/shutdown.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/shutdown.js +146 -0
- package/dist/commands/channel/supervisor/shutdown.js.map +1 -0
- package/dist/commands/channel/supervisor/stdout.d.ts +71 -0
- package/dist/commands/channel/supervisor/stdout.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/stdout.js +229 -0
- package/dist/commands/channel/supervisor/stdout.js.map +1 -0
- package/dist/commands/channel/supervisor/turns.d.ts +31 -0
- package/dist/commands/channel/supervisor/turns.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/turns.js +45 -0
- package/dist/commands/channel/supervisor/turns.js.map +1 -0
- package/dist/commands/channel/supervisor/warning.d.ts +48 -0
- package/dist/commands/channel/supervisor/warning.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/warning.js +77 -0
- package/dist/commands/channel/supervisor/warning.js.map +1 -0
- package/dist/commands/channel/supervisor.d.ts +91 -0
- package/dist/commands/channel/supervisor.d.ts.map +1 -0
- package/dist/commands/channel/supervisor.js +463 -0
- package/dist/commands/channel/supervisor.js.map +1 -0
- package/dist/commands/channel/text-body.d.ts +13 -0
- package/dist/commands/channel/text-body.d.ts.map +1 -0
- package/dist/commands/channel/text-body.js +47 -0
- package/dist/commands/channel/text-body.js.map +1 -0
- package/dist/commands/channel/threads.d.ts +39 -0
- package/dist/commands/channel/threads.d.ts.map +1 -0
- package/dist/commands/channel/threads.js +106 -0
- package/dist/commands/channel/threads.js.map +1 -0
- package/dist/commands/channel/title.d.ts +12 -0
- package/dist/commands/channel/title.d.ts.map +1 -0
- package/dist/commands/channel/title.js +24 -0
- package/dist/commands/channel/title.js.map +1 -0
- package/dist/commands/channel/wait.d.ts +17 -0
- package/dist/commands/channel/wait.d.ts.map +1 -0
- package/dist/commands/channel/wait.js +75 -0
- package/dist/commands/channel/wait.js.map +1 -0
- package/dist/commands/init.d.ts +71 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +1612 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/mem.d.ts +30 -0
- package/dist/commands/mem.d.ts.map +1 -0
- package/dist/commands/mem.js +423 -0
- package/dist/commands/mem.js.map +1 -0
- package/dist/commands/uninstall.d.ts +36 -0
- package/dist/commands/uninstall.d.ts.map +1 -0
- package/dist/commands/uninstall.js +205 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/commands/update.d.ts +133 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +2255 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/upgrade.d.ts +28 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +84 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/commands/workflow.d.ts +35 -0
- package/dist/commands/workflow.d.ts.map +1 -0
- package/dist/commands/workflow.js +232 -0
- package/dist/commands/workflow.js.map +1 -0
- package/dist/configurators/antigravity.d.ts +7 -0
- package/dist/configurators/antigravity.d.ts.map +1 -0
- package/dist/configurators/antigravity.js +11 -0
- package/dist/configurators/antigravity.js.map +1 -0
- package/dist/configurators/claude.d.ts +23 -0
- package/dist/configurators/claude.d.ts.map +1 -0
- package/dist/configurators/claude.js +123 -0
- package/dist/configurators/claude.js.map +1 -0
- package/dist/configurators/codebuddy.d.ts +10 -0
- package/dist/configurators/codebuddy.d.ts.map +1 -0
- package/dist/configurators/codebuddy.js +24 -0
- package/dist/configurators/codebuddy.js.map +1 -0
- package/dist/configurators/codex.d.ts +57 -0
- package/dist/configurators/codex.d.ts.map +1 -0
- package/dist/configurators/codex.js +170 -0
- package/dist/configurators/codex.js.map +1 -0
- package/dist/configurators/copilot.d.ts +18 -0
- package/dist/configurators/copilot.d.ts.map +1 -0
- package/dist/configurators/copilot.js +50 -0
- package/dist/configurators/copilot.js.map +1 -0
- package/dist/configurators/cursor.d.ts +10 -0
- package/dist/configurators/cursor.d.ts.map +1 -0
- package/dist/configurators/cursor.js +23 -0
- package/dist/configurators/cursor.js.map +1 -0
- package/dist/configurators/devin.d.ts +8 -0
- package/dist/configurators/devin.d.ts.map +1 -0
- package/dist/configurators/devin.js +12 -0
- package/dist/configurators/devin.js.map +1 -0
- package/dist/configurators/droid.d.ts +10 -0
- package/dist/configurators/droid.d.ts.map +1 -0
- package/dist/configurators/droid.js +24 -0
- package/dist/configurators/droid.js.map +1 -0
- package/dist/configurators/dsh.d.ts +29 -0
- package/dist/configurators/dsh.d.ts.map +1 -0
- package/dist/configurators/dsh.js +64 -0
- package/dist/configurators/dsh.js.map +1 -0
- package/dist/configurators/gemini.d.ts +19 -0
- package/dist/configurators/gemini.d.ts.map +1 -0
- package/dist/configurators/gemini.js +40 -0
- package/dist/configurators/gemini.js.map +1 -0
- package/dist/configurators/grok.d.ts +17 -0
- package/dist/configurators/grok.d.ts.map +1 -0
- package/dist/configurators/grok.js +38 -0
- package/dist/configurators/grok.js.map +1 -0
- package/dist/configurators/index.d.ts +68 -0
- package/dist/configurators/index.d.ts.map +1 -0
- package/dist/configurators/index.js +191 -0
- package/dist/configurators/index.js.map +1 -0
- package/dist/configurators/kilo.d.ts +7 -0
- package/dist/configurators/kilo.d.ts.map +1 -0
- package/dist/configurators/kilo.js +11 -0
- package/dist/configurators/kilo.js.map +1 -0
- package/dist/configurators/kimi.d.ts +26 -0
- package/dist/configurators/kimi.d.ts.map +1 -0
- package/dist/configurators/kimi.js +74 -0
- package/dist/configurators/kimi.js.map +1 -0
- package/dist/configurators/kiro.d.ts +11 -0
- package/dist/configurators/kiro.d.ts.map +1 -0
- package/dist/configurators/kiro.js +30 -0
- package/dist/configurators/kiro.js.map +1 -0
- package/dist/configurators/omp.d.ts +6 -0
- package/dist/configurators/omp.d.ts.map +1 -0
- package/dist/configurators/omp.js +28 -0
- package/dist/configurators/omp.js.map +1 -0
- package/dist/configurators/opencode.d.ts +5 -0
- package/dist/configurators/opencode.d.ts.map +1 -0
- package/dist/configurators/opencode.js +80 -0
- package/dist/configurators/opencode.js.map +1 -0
- package/dist/configurators/pi.d.ts +5 -0
- package/dist/configurators/pi.d.ts.map +1 -0
- package/dist/configurators/pi.js +39 -0
- package/dist/configurators/pi.js.map +1 -0
- package/dist/configurators/qoder.d.ts +12 -0
- package/dist/configurators/qoder.d.ts.map +1 -0
- package/dist/configurators/qoder.js +30 -0
- package/dist/configurators/qoder.js.map +1 -0
- package/dist/configurators/reasonix.d.ts +17 -0
- package/dist/configurators/reasonix.d.ts.map +1 -0
- package/dist/configurators/reasonix.js +37 -0
- package/dist/configurators/reasonix.js.map +1 -0
- package/dist/configurators/shared.d.ts +196 -0
- package/dist/configurators/shared.d.ts.map +1 -0
- package/dist/configurators/shared.js +600 -0
- package/dist/configurators/shared.js.map +1 -0
- package/dist/configurators/snow.d.ts +25 -0
- package/dist/configurators/snow.d.ts.map +1 -0
- package/dist/configurators/snow.js +69 -0
- package/dist/configurators/snow.js.map +1 -0
- package/dist/configurators/trae.d.ts +16 -0
- package/dist/configurators/trae.d.ts.map +1 -0
- package/dist/configurators/trae.js +34 -0
- package/dist/configurators/trae.js.map +1 -0
- package/dist/configurators/workflow.d.ts +51 -0
- package/dist/configurators/workflow.d.ts.map +1 -0
- package/dist/configurators/workflow.js +210 -0
- package/dist/configurators/workflow.js.map +1 -0
- package/dist/configurators/zcode.d.ts +19 -0
- package/dist/configurators/zcode.d.ts.map +1 -0
- package/dist/configurators/zcode.js +51 -0
- package/dist/configurators/zcode.js.map +1 -0
- package/dist/constants/paths.d.ts +74 -0
- package/dist/constants/paths.d.ts.map +1 -0
- package/dist/constants/paths.js +83 -0
- package/dist/constants/paths.js.map +1 -0
- package/dist/constants/version.d.ts +9 -0
- package/dist/constants/version.d.ts.map +1 -0
- package/dist/constants/version.js +15 -0
- package/dist/constants/version.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/migrations/index.d.ts +65 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +202 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/templates/atw/agents/implement-agent.md +69 -0
- package/dist/templates/atw/agents/review.md +68 -0
- package/dist/templates/atw/config.yaml +158 -0
- package/dist/templates/atw/gitattributes.txt +9 -0
- package/dist/templates/atw/gitignore.txt +32 -0
- package/dist/templates/atw/index.d.ts +70 -0
- package/dist/templates/atw/index.d.ts.map +1 -0
- package/dist/templates/atw/index.js +137 -0
- package/dist/templates/atw/index.js.map +1 -0
- package/dist/templates/atw/scripts/__init__.py +5 -0
- package/dist/templates/atw/scripts/add_session.py +1545 -0
- package/dist/templates/atw/scripts/common/__init__.py +94 -0
- package/dist/templates/atw/scripts/common/active_task.py +857 -0
- package/dist/templates/atw/scripts/common/atw_config.py +239 -0
- package/dist/templates/atw/scripts/common/cli_adapter.py +949 -0
- package/dist/templates/atw/scripts/common/config.py +482 -0
- package/dist/templates/atw/scripts/common/developer.py +192 -0
- package/dist/templates/atw/scripts/common/git.py +203 -0
- package/dist/templates/atw/scripts/common/git_context.py +106 -0
- package/dist/templates/atw/scripts/common/io.py +160 -0
- package/dist/templates/atw/scripts/common/log.py +45 -0
- package/dist/templates/atw/scripts/common/packages_context.py +238 -0
- package/dist/templates/atw/scripts/common/paths.py +543 -0
- package/dist/templates/atw/scripts/common/safe_commit.py +322 -0
- package/dist/templates/atw/scripts/common/session_context.py +892 -0
- package/dist/templates/atw/scripts/common/task_context.py +470 -0
- package/dist/templates/atw/scripts/common/task_queue.py +188 -0
- package/dist/templates/atw/scripts/common/task_store.py +1940 -0
- package/dist/templates/atw/scripts/common/task_utils.py +498 -0
- package/dist/templates/atw/scripts/common/tasks.py +122 -0
- package/dist/templates/atw/scripts/common/types.py +110 -0
- package/dist/templates/atw/scripts/common/workflow_phase.py +242 -0
- package/dist/templates/atw/scripts/get_context.py +16 -0
- package/dist/templates/atw/scripts/get_developer.py +26 -0
- package/dist/templates/atw/scripts/github_sync.py +391 -0
- package/dist/templates/atw/scripts/hooks/linear_sync.py +243 -0
- package/dist/templates/atw/scripts/init_developer.py +51 -0
- package/dist/templates/atw/scripts/task.py +833 -0
- package/dist/templates/atw/scripts/tickets.py +495 -0
- package/dist/templates/atw/tasks/.gitkeep +0 -0
- package/dist/templates/atw/workflow.md +754 -0
- package/dist/templates/claude/agents/atw-implement-agent.md +107 -0
- package/dist/templates/claude/agents/atw-review.md +113 -0
- package/dist/templates/claude/hooks/statusline.py +332 -0
- package/dist/templates/claude/index.d.ts +31 -0
- package/dist/templates/claude/index.d.ts.map +1 -0
- package/dist/templates/claude/index.js +57 -0
- package/dist/templates/claude/index.js.map +1 -0
- package/dist/templates/claude/settings.json +73 -0
- package/dist/templates/codebuddy/agents/atw-implement-agent.md +107 -0
- package/dist/templates/codebuddy/agents/atw-review.md +113 -0
- package/dist/templates/codebuddy/index.d.ts +15 -0
- package/dist/templates/codebuddy/index.d.ts.map +1 -0
- package/dist/templates/codebuddy/index.js +15 -0
- package/dist/templates/codebuddy/index.js.map +1 -0
- package/dist/templates/codebuddy/settings.json +69 -0
- package/dist/templates/codex/agents/atw-implement-agent.toml +37 -0
- package/dist/templates/codex/agents/atw-review.toml +56 -0
- package/dist/templates/codex/config.toml +39 -0
- package/dist/templates/codex/hooks/session-start.py +514 -0
- package/dist/templates/codex/hooks.json +27 -0
- package/dist/templates/codex/index.d.ts +35 -0
- package/dist/templates/codex/index.d.ts.map +1 -0
- package/dist/templates/codex/index.js +67 -0
- package/dist/templates/codex/index.js.map +1 -0
- package/dist/templates/common/bundled-skills/atw-askme/SKILL.md +7 -0
- package/dist/templates/common/bundled-skills/atw-askme/agents/openai.yaml +5 -0
- package/dist/templates/common/bundled-skills/atw-askme-with-docs/SKILL.md +7 -0
- package/dist/templates/common/bundled-skills/atw-askme-with-docs/agents/openai.yaml +5 -0
- package/dist/templates/common/bundled-skills/atw-channel/SKILL.md +67 -0
- package/dist/templates/common/bundled-skills/atw-channel/references/command-reference.md +480 -0
- package/dist/templates/common/bundled-skills/atw-channel/references/forum.md +233 -0
- package/dist/templates/common/bundled-skills/atw-channel/references/progress-debugging.md +226 -0
- package/dist/templates/common/bundled-skills/atw-channel/references/workers.md +274 -0
- package/dist/templates/common/bundled-skills/atw-channel/references/workflows.md +125 -0
- package/dist/templates/common/bundled-skills/atw-code-review/SKILL.md +113 -0
- package/dist/templates/common/bundled-skills/atw-code-review/agents/openai.yaml +3 -0
- package/dist/templates/common/bundled-skills/atw-codebase-design/DEEPENING.md +37 -0
- package/dist/templates/common/bundled-skills/atw-codebase-design/DESIGN-IT-TWICE.md +44 -0
- package/dist/templates/common/bundled-skills/atw-codebase-design/SKILL.md +114 -0
- package/dist/templates/common/bundled-skills/atw-codebase-design/agents/openai.yaml +3 -0
- package/dist/templates/common/bundled-skills/atw-diagnosing-bugs/SKILL.md +138 -0
- package/dist/templates/common/bundled-skills/atw-diagnosing-bugs/agents/openai.yaml +3 -0
- package/dist/templates/common/bundled-skills/atw-diagnosing-bugs/scripts/hitl-loop.template.sh +44 -0
- package/dist/templates/common/bundled-skills/atw-domain-modeling/ADR-FORMAT.md +47 -0
- package/dist/templates/common/bundled-skills/atw-domain-modeling/CONTEXT-FORMAT.md +60 -0
- package/dist/templates/common/bundled-skills/atw-domain-modeling/SKILL.md +74 -0
- package/dist/templates/common/bundled-skills/atw-domain-modeling/agents/openai.yaml +3 -0
- package/dist/templates/common/bundled-skills/atw-handoff/SKILL.md +16 -0
- package/dist/templates/common/bundled-skills/atw-handoff/agents/openai.yaml +5 -0
- package/dist/templates/common/bundled-skills/atw-implement/SKILL.md +21 -0
- package/dist/templates/common/bundled-skills/atw-implement/agents/openai.yaml +5 -0
- package/dist/templates/common/bundled-skills/atw-improve-codebase-architecture/HTML-REPORT.md +123 -0
- package/dist/templates/common/bundled-skills/atw-improve-codebase-architecture/SKILL.md +71 -0
- package/dist/templates/common/bundled-skills/atw-improve-codebase-architecture/agents/openai.yaml +5 -0
- package/dist/templates/common/bundled-skills/atw-init-repo/SKILL.md +130 -0
- package/dist/templates/common/bundled-skills/atw-init-repo/references/domain.md +51 -0
- package/dist/templates/common/bundled-skills/atw-init-repo/references/issue-tracker-atw-local.md +133 -0
- package/dist/templates/common/bundled-skills/atw-init-repo/references/issue-tracker-atw.md +109 -0
- package/dist/templates/common/bundled-skills/atw-init-repo/references/issue-tracker-github.md +45 -0
- package/dist/templates/common/bundled-skills/atw-init-repo/references/issue-tracker-gitlab.md +46 -0
- package/dist/templates/common/bundled-skills/atw-init-repo/references/issue-tracker-local.md +30 -0
- package/dist/templates/common/bundled-skills/atw-init-repo/references/triage-labels.md +15 -0
- package/dist/templates/common/bundled-skills/atw-interview/SKILL.md +22 -0
- package/dist/templates/common/bundled-skills/atw-interview/agents/openai.yaml +3 -0
- package/dist/templates/common/bundled-skills/atw-map/SKILL.md +128 -0
- package/dist/templates/common/bundled-skills/atw-map/agents/openai.yaml +5 -0
- package/dist/templates/common/bundled-skills/atw-merge/SKILL.md +14 -0
- package/dist/templates/common/bundled-skills/atw-merge/agents/openai.yaml +3 -0
- package/dist/templates/common/bundled-skills/atw-meta/SKILL.md +85 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/customize-local/add-project-local-conventions.md +83 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/customize-local/change-agents.md +55 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/customize-local/change-context-loading.md +80 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/customize-local/change-hooks.md +57 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/customize-local/change-skills-or-commands.md +123 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/customize-local/change-spec-structure.md +83 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/customize-local/change-task-lifecycle.md +91 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/customize-local/change-workflow.md +59 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/customize-local/overview.md +55 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/local-architecture/bundled-skills.md +159 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/local-architecture/context-injection.md +68 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/local-architecture/generated-files.md +80 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/local-architecture/multi-agent-channel.md +69 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/local-architecture/overview.md +51 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/local-architecture/spec-system.md +102 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/local-architecture/task-system.md +126 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/local-architecture/workflow.md +79 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/local-architecture/workspace-memory.md +71 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/platform-files/agents.md +80 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/platform-files/hooks-and-settings.md +72 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/platform-files/overview.md +59 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/platform-files/platform-map.md +112 -0
- package/dist/templates/common/bundled-skills/atw-meta/references/platform-files/skills-and-commands.md +86 -0
- package/dist/templates/common/bundled-skills/atw-prototype/LOGIC.md +67 -0
- package/dist/templates/common/bundled-skills/atw-prototype/SKILL.md +26 -0
- package/dist/templates/common/bundled-skills/atw-prototype/UI.md +112 -0
- package/dist/templates/common/bundled-skills/atw-prototype/agents/openai.yaml +3 -0
- package/dist/templates/common/bundled-skills/atw-research/SKILL.md +14 -0
- package/dist/templates/common/bundled-skills/atw-research/agents/openai.yaml +3 -0
- package/dist/templates/common/bundled-skills/atw-session-insight/SKILL.md +81 -0
- package/dist/templates/common/bundled-skills/atw-session-insight/references/cli-quick-reference.md +65 -0
- package/dist/templates/common/bundled-skills/atw-session-insight/references/triggering-patterns.md +93 -0
- package/dist/templates/common/bundled-skills/atw-spec/SKILL.md +75 -0
- package/dist/templates/common/bundled-skills/atw-spec/agents/openai.yaml +5 -0
- package/dist/templates/common/bundled-skills/atw-spec-bootstrap/SKILL.md +41 -0
- package/dist/templates/common/bundled-skills/atw-spec-bootstrap/references/mcp-setup.md +90 -0
- package/dist/templates/common/bundled-skills/atw-spec-bootstrap/references/repository-analysis.md +59 -0
- package/dist/templates/common/bundled-skills/atw-spec-bootstrap/references/spec-task-planning.md +61 -0
- package/dist/templates/common/bundled-skills/atw-spec-bootstrap/references/spec-writing.md +70 -0
- package/dist/templates/common/bundled-skills/atw-tdd/SKILL.md +38 -0
- package/dist/templates/common/bundled-skills/atw-tdd/agents/openai.yaml +3 -0
- package/dist/templates/common/bundled-skills/atw-tdd/mocking.md +59 -0
- package/dist/templates/common/bundled-skills/atw-tdd/tests.md +77 -0
- package/dist/templates/common/bundled-skills/atw-tickets/SKILL.md +105 -0
- package/dist/templates/common/bundled-skills/atw-tickets/agents/openai.yaml +5 -0
- package/dist/templates/common/bundled-skills/atw-triage/AGENT-BRIEF.md +207 -0
- package/dist/templates/common/bundled-skills/atw-triage/OUT-OF-SCOPE.md +105 -0
- package/dist/templates/common/bundled-skills/atw-triage/SKILL.md +112 -0
- package/dist/templates/common/bundled-skills/atw-triage/agents/openai.yaml +5 -0
- package/dist/templates/common/commands/continue.md +55 -0
- package/dist/templates/common/commands/finish-work.md +69 -0
- package/dist/templates/common/commands/start.md +68 -0
- package/dist/templates/common/index.d.ts +48 -0
- package/dist/templates/common/index.d.ts.map +1 -0
- package/dist/templates/common/index.js +104 -0
- package/dist/templates/common/index.js.map +1 -0
- package/dist/templates/common/skills/before-dev.md +44 -0
- package/dist/templates/common/skills/brainstorm.md +194 -0
- package/dist/templates/common/skills/update-spec.md +351 -0
- package/dist/templates/copilot/copilot-instructions.md +11 -0
- package/dist/templates/copilot/hooks/session-start.py +510 -0
- package/dist/templates/copilot/hooks.json +19 -0
- package/dist/templates/copilot/index.d.ts +23 -0
- package/dist/templates/copilot/index.d.ts.map +1 -0
- package/dist/templates/copilot/index.js +48 -0
- package/dist/templates/copilot/index.js.map +1 -0
- package/dist/templates/cursor/agents/atw-implement-agent.md +106 -0
- package/dist/templates/cursor/agents/atw-review.md +112 -0
- package/dist/templates/cursor/hooks.json +24 -0
- package/dist/templates/cursor/index.d.ts +13 -0
- package/dist/templates/cursor/index.d.ts.map +1 -0
- package/dist/templates/cursor/index.js +13 -0
- package/dist/templates/cursor/index.js.map +1 -0
- package/dist/templates/droid/droids/atw-implement-agent.md +99 -0
- package/dist/templates/droid/droids/atw-review.md +105 -0
- package/dist/templates/droid/index.d.ts +15 -0
- package/dist/templates/droid/index.d.ts.map +1 -0
- package/dist/templates/droid/index.js +15 -0
- package/dist/templates/droid/index.js.map +1 -0
- package/dist/templates/droid/settings.json +69 -0
- package/dist/templates/dsh/DSH.md +56 -0
- package/dist/templates/dsh/index.d.ts +21 -0
- package/dist/templates/dsh/index.d.ts.map +1 -0
- package/dist/templates/dsh/index.js +25 -0
- package/dist/templates/dsh/index.js.map +1 -0
- package/dist/templates/extract.d.ts +40 -0
- package/dist/templates/extract.d.ts.map +1 -0
- package/dist/templates/extract.js +106 -0
- package/dist/templates/extract.js.map +1 -0
- package/dist/templates/gemini/agents/atw-implement-agent.md +99 -0
- package/dist/templates/gemini/agents/atw-review.md +105 -0
- package/dist/templates/gemini/index.d.ts +13 -0
- package/dist/templates/gemini/index.d.ts.map +1 -0
- package/dist/templates/gemini/index.js +13 -0
- package/dist/templates/gemini/index.js.map +1 -0
- package/dist/templates/gemini/settings.json +40 -0
- package/dist/templates/grok/agents/atw-implement-agent.md +115 -0
- package/dist/templates/grok/agents/atw-review.md +105 -0
- package/dist/templates/grok/index.d.ts +15 -0
- package/dist/templates/grok/index.d.ts.map +1 -0
- package/dist/templates/grok/index.js +18 -0
- package/dist/templates/grok/index.js.map +1 -0
- package/dist/templates/kimi/agents/atw-implement-agent.md +114 -0
- package/dist/templates/kimi/agents/atw-review.md +103 -0
- package/dist/templates/kimi/index.d.ts +20 -0
- package/dist/templates/kimi/index.d.ts.map +1 -0
- package/dist/templates/kimi/index.js +23 -0
- package/dist/templates/kimi/index.js.map +1 -0
- package/dist/templates/kiro/agents/atw-implement-agent.json +26 -0
- package/dist/templates/kiro/agents/atw-review.json +26 -0
- package/dist/templates/kiro/agents/atw.json +34 -0
- package/dist/templates/kiro/hooks/atw-workflow-state.kiro.hook +14 -0
- package/dist/templates/kiro/index.d.ts +32 -0
- package/dist/templates/kiro/index.d.ts.map +1 -0
- package/dist/templates/kiro/index.js +28 -0
- package/dist/templates/kiro/index.js.map +1 -0
- package/dist/templates/markdown/agents.md +21 -0
- package/dist/templates/markdown/gitignore.txt +15 -0
- package/dist/templates/markdown/index.d.ts +27 -0
- package/dist/templates/markdown/index.d.ts.map +1 -0
- package/dist/templates/markdown/index.js +52 -0
- package/dist/templates/markdown/index.js.map +1 -0
- package/dist/templates/markdown/spec/backend/database-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/backend/directory-structure.md.txt +54 -0
- package/dist/templates/markdown/spec/backend/error-handling.md.txt +51 -0
- package/dist/templates/markdown/spec/backend/index.md.txt +38 -0
- package/dist/templates/markdown/spec/backend/logging-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/backend/quality-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/frontend/component-guidelines.md.txt +59 -0
- package/dist/templates/markdown/spec/frontend/directory-structure.md.txt +54 -0
- package/dist/templates/markdown/spec/frontend/hook-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/frontend/index.md.txt +39 -0
- package/dist/templates/markdown/spec/frontend/quality-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/frontend/state-management.md.txt +51 -0
- package/dist/templates/markdown/spec/frontend/type-safety.md.txt +51 -0
- package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md.txt +223 -0
- package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +290 -0
- package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +634 -0
- package/dist/templates/markdown/spec/guides/index.md.txt +97 -0
- package/dist/templates/markdown/workspace-index.md +125 -0
- package/dist/templates/markdown/worktree.yaml.txt +58 -0
- package/dist/templates/omp/agents/atw-implement-agent.md +45 -0
- package/dist/templates/omp/agents/atw-review.md +41 -0
- package/dist/templates/omp/extensions/atw/index.ts.txt +1109 -0
- package/dist/templates/omp/index.d.ts +4 -0
- package/dist/templates/omp/index.d.ts.map +1 -0
- package/dist/templates/omp/index.js +9 -0
- package/dist/templates/omp/index.js.map +1 -0
- package/dist/templates/opencode/agents/atw-implement-agent.md +115 -0
- package/dist/templates/opencode/agents/atw-review.md +120 -0
- package/dist/templates/opencode/lib/atw-context.js +637 -0
- package/dist/templates/opencode/lib/context-visibility.js +148 -0
- package/dist/templates/opencode/lib/session-utils.js +474 -0
- package/dist/templates/opencode/package.json +6 -0
- package/dist/templates/opencode/plugins/inject-subagent-context.js +390 -0
- package/dist/templates/opencode/plugins/inject-workflow-state.js +240 -0
- package/dist/templates/opencode/plugins/session-start.js +65 -0
- package/dist/templates/pi/agents/atw-implement-agent.md +42 -0
- package/dist/templates/pi/agents/atw-review.md +37 -0
- package/dist/templates/pi/extensions/atw/index.ts.txt +2014 -0
- package/dist/templates/pi/index.d.ts +5 -0
- package/dist/templates/pi/index.d.ts.map +1 -0
- package/dist/templates/pi/index.js +12 -0
- package/dist/templates/pi/index.js.map +1 -0
- package/dist/templates/pi/settings.json +9 -0
- package/dist/templates/qoder/agents/atw-implement-agent.md +100 -0
- package/dist/templates/qoder/agents/atw-review.md +106 -0
- package/dist/templates/qoder/index.d.ts +15 -0
- package/dist/templates/qoder/index.d.ts.map +1 -0
- package/dist/templates/qoder/index.js +15 -0
- package/dist/templates/qoder/index.js.map +1 -0
- package/dist/templates/qoder/settings.json +59 -0
- package/dist/templates/reasonix/agents/atw-implement-agent.md +41 -0
- package/dist/templates/reasonix/agents/atw-review.md +36 -0
- package/dist/templates/reasonix/index.d.ts +13 -0
- package/dist/templates/reasonix/index.d.ts.map +1 -0
- package/dist/templates/reasonix/index.js +16 -0
- package/dist/templates/reasonix/index.js.map +1 -0
- package/dist/templates/shared-hooks/index.d.ts +77 -0
- package/dist/templates/shared-hooks/index.d.ts.map +1 -0
- package/dist/templates/shared-hooks/index.js +140 -0
- package/dist/templates/shared-hooks/index.js.map +1 -0
- package/dist/templates/shared-hooks/inject-shell-session-context.py +292 -0
- package/dist/templates/shared-hooks/inject-subagent-context.py +1178 -0
- package/dist/templates/shared-hooks/inject-workflow-state.py +488 -0
- package/dist/templates/shared-hooks/session-start.py +889 -0
- package/dist/templates/snow/SNOW.md +86 -0
- package/dist/templates/snow/agents/atw-implement-agent.md +152 -0
- package/dist/templates/snow/agents/atw-review.md +135 -0
- package/dist/templates/snow/hooks/beforeSubAgentStart.json +15 -0
- package/dist/templates/snow/hooks/onSessionStart.json +15 -0
- package/dist/templates/snow/hooks/onUserMessage.json +15 -0
- package/dist/templates/snow/hooks/write-atw-context.py +637 -0
- package/dist/templates/snow/index.d.ts +25 -0
- package/dist/templates/snow/index.d.ts.map +1 -0
- package/dist/templates/snow/index.js +35 -0
- package/dist/templates/snow/index.js.map +1 -0
- package/dist/templates/template-utils.d.ts +26 -0
- package/dist/templates/template-utils.d.ts.map +1 -0
- package/dist/templates/template-utils.js +64 -0
- package/dist/templates/template-utils.js.map +1 -0
- package/dist/templates/trae/agents/atw-implement-agent.md +100 -0
- package/dist/templates/trae/agents/atw-review.md +106 -0
- package/dist/templates/trae/hooks.json +39 -0
- package/dist/templates/trae/index.d.ts +15 -0
- package/dist/templates/trae/index.d.ts.map +1 -0
- package/dist/templates/trae/index.js +15 -0
- package/dist/templates/trae/index.js.map +1 -0
- package/dist/templates/zcode/agents/atw-implement-agent.md +108 -0
- package/dist/templates/zcode/agents/atw-review.md +109 -0
- package/dist/templates/zcode/config.json +52 -0
- package/dist/templates/zcode/index.d.ts +22 -0
- package/dist/templates/zcode/index.d.ts.map +1 -0
- package/dist/templates/zcode/index.js +26 -0
- package/dist/templates/zcode/index.js.map +1 -0
- package/dist/types/ai-tools.d.ts +95 -0
- package/dist/types/ai-tools.d.ts.map +1 -0
- package/dist/types/ai-tools.js +494 -0
- package/dist/types/ai-tools.js.map +1 -0
- package/dist/types/migration.d.ts +125 -0
- package/dist/types/migration.d.ts.map +1 -0
- package/dist/types/migration.js +8 -0
- package/dist/types/migration.js.map +1 -0
- package/dist/utils/ablation-store.d.ts +123 -0
- package/dist/utils/ablation-store.d.ts.map +1 -0
- package/dist/utils/ablation-store.js +749 -0
- package/dist/utils/ablation-store.js.map +1 -0
- package/dist/utils/agent-refs.d.ts +31 -0
- package/dist/utils/agent-refs.d.ts.map +1 -0
- package/dist/utils/agent-refs.js +63 -0
- package/dist/utils/agent-refs.js.map +1 -0
- package/dist/utils/atomic-write.d.ts +12 -0
- package/dist/utils/atomic-write.d.ts.map +1 -0
- package/dist/utils/atomic-write.js +30 -0
- package/dist/utils/atomic-write.js.map +1 -0
- package/dist/utils/compare-versions.d.ts +12 -0
- package/dist/utils/compare-versions.d.ts.map +1 -0
- package/dist/utils/compare-versions.js +86 -0
- package/dist/utils/compare-versions.js.map +1 -0
- package/dist/utils/cwd-guard.d.ts +38 -0
- package/dist/utils/cwd-guard.d.ts.map +1 -0
- package/dist/utils/cwd-guard.js +62 -0
- package/dist/utils/cwd-guard.js.map +1 -0
- package/dist/utils/file-writer.d.ts +36 -0
- package/dist/utils/file-writer.d.ts.map +1 -0
- package/dist/utils/file-writer.js +204 -0
- package/dist/utils/file-writer.js.map +1 -0
- package/dist/utils/managed-paths.d.ts +5 -0
- package/dist/utils/managed-paths.d.ts.map +1 -0
- package/dist/utils/managed-paths.js +51 -0
- package/dist/utils/managed-paths.js.map +1 -0
- package/dist/utils/managed-removal.d.ts +74 -0
- package/dist/utils/managed-removal.d.ts.map +1 -0
- package/dist/utils/managed-removal.js +270 -0
- package/dist/utils/managed-removal.js.map +1 -0
- package/dist/utils/manifest-prune.d.ts +61 -0
- package/dist/utils/manifest-prune.d.ts.map +1 -0
- package/dist/utils/manifest-prune.js +135 -0
- package/dist/utils/manifest-prune.js.map +1 -0
- package/dist/utils/posix.d.ts +13 -0
- package/dist/utils/posix.d.ts.map +1 -0
- package/dist/utils/posix.js +15 -0
- package/dist/utils/posix.js.map +1 -0
- package/dist/utils/project-detector.d.ts +46 -0
- package/dist/utils/project-detector.d.ts.map +1 -0
- package/dist/utils/project-detector.js +666 -0
- package/dist/utils/project-detector.js.map +1 -0
- package/dist/utils/proxy.d.ts +25 -0
- package/dist/utils/proxy.d.ts.map +1 -0
- package/dist/utils/proxy.js +60 -0
- package/dist/utils/proxy.js.map +1 -0
- package/dist/utils/registry-config.d.ts +7 -0
- package/dist/utils/registry-config.d.ts.map +1 -0
- package/dist/utils/registry-config.js +172 -0
- package/dist/utils/registry-config.js.map +1 -0
- package/dist/utils/task-json.d.ts +13 -0
- package/dist/utils/task-json.d.ts.map +1 -0
- package/dist/utils/task-json.js +12 -0
- package/dist/utils/task-json.js.map +1 -0
- package/dist/utils/template-fetcher.d.ts +161 -0
- package/dist/utils/template-fetcher.d.ts.map +1 -0
- package/dist/utils/template-fetcher.js +994 -0
- package/dist/utils/template-fetcher.js.map +1 -0
- package/dist/utils/template-hash.d.ts +127 -0
- package/dist/utils/template-hash.d.ts.map +1 -0
- package/dist/utils/template-hash.js +335 -0
- package/dist/utils/template-hash.js.map +1 -0
- package/dist/utils/uninstall-scrubbers.d.ts +66 -0
- package/dist/utils/uninstall-scrubbers.d.ts.map +1 -0
- package/dist/utils/uninstall-scrubbers.js +417 -0
- package/dist/utils/uninstall-scrubbers.js.map +1 -0
- package/dist/utils/workflow-resolver.d.ts +86 -0
- package/dist/utils/workflow-resolver.d.ts.map +1 -0
- package/dist/utils/workflow-resolver.js +265 -0
- package/dist/utils/workflow-resolver.js.map +1 -0
- package/package.json +93 -0
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* stdout pipeline: line-buffered reader → adapter.parseLine → append
|
|
3
|
+
* events into events.jsonl + persist session/thread IDs + write any
|
|
4
|
+
* adapter `reply` back to the worker's stdin.
|
|
5
|
+
*
|
|
6
|
+
* Step 3 of the supervisor refactor: pulled out of supervisor.ts so the
|
|
7
|
+
* orchestrator stays thin. The pump itself is pure (no fs / process), so
|
|
8
|
+
* unit testing the line-splitting logic is straightforward once we want
|
|
9
|
+
* to. `applyParseResult` still touches fs for session-id persistence —
|
|
10
|
+
* that's intentional, it's the only place that needs to.
|
|
11
|
+
*/
|
|
12
|
+
import fs from "node:fs";
|
|
13
|
+
import { appendEvent } from "../store/events.js";
|
|
14
|
+
import { workerFile } from "../store/paths.js";
|
|
15
|
+
/**
|
|
16
|
+
* Coordinate early stdout capture with the durable `spawned` event.
|
|
17
|
+
*
|
|
18
|
+
* Startup failures discard captured lines because no `spawned` event exists.
|
|
19
|
+
* Normal shutdown may stop waiting for inherited pipe owners, but must leave
|
|
20
|
+
* the processing decision to the in-flight `spawned` append so stdout events
|
|
21
|
+
* can never overtake it in events.jsonl.
|
|
22
|
+
*/
|
|
23
|
+
export function createStdoutDrainControl() {
|
|
24
|
+
let resolveProcessLines;
|
|
25
|
+
const processLines = new Promise((resolve) => {
|
|
26
|
+
resolveProcessLines = resolve;
|
|
27
|
+
});
|
|
28
|
+
const controller = new AbortController();
|
|
29
|
+
return {
|
|
30
|
+
processLines,
|
|
31
|
+
signal: controller.signal,
|
|
32
|
+
allowProcessing: () => resolveProcessLines(true),
|
|
33
|
+
discard: () => {
|
|
34
|
+
resolveProcessLines(false);
|
|
35
|
+
controller.abort();
|
|
36
|
+
},
|
|
37
|
+
abortReading: () => controller.abort(),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* 按行读取 stdout,并把非空行串行交给 onLine
|
|
42
|
+
*
|
|
43
|
+
* @param stream 子进程 stdout 可读流
|
|
44
|
+
* @param onLine stdout 单行处理器,按读取顺序串行执行
|
|
45
|
+
* @param onError onLine 抛错时的错误处理器,也在同一队列中执行
|
|
46
|
+
* @param signal 中止等待并排空已读取内容的可选信号
|
|
47
|
+
* @returns stdout 结束且所有已排队行处理完成后 resolved 的 Promise
|
|
48
|
+
*/
|
|
49
|
+
export function pumpStdout(stream, onLine, onError, signal) {
|
|
50
|
+
let buf = "";
|
|
51
|
+
let queue = Promise.resolve();
|
|
52
|
+
let pending = 0;
|
|
53
|
+
let paused = false;
|
|
54
|
+
let finished = false;
|
|
55
|
+
/**
|
|
56
|
+
* 在有待处理行时暂停 stdout 读取
|
|
57
|
+
*
|
|
58
|
+
* @returns 无返回值
|
|
59
|
+
*/
|
|
60
|
+
const pauseForBackpressure = () => {
|
|
61
|
+
if (!paused) {
|
|
62
|
+
stream.pause();
|
|
63
|
+
paused = true;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* 在待处理行全部完成后恢复 stdout 读取
|
|
68
|
+
*
|
|
69
|
+
* @returns 无返回值
|
|
70
|
+
*/
|
|
71
|
+
const resumeIfDrained = () => {
|
|
72
|
+
if (paused && pending === 0) {
|
|
73
|
+
paused = false;
|
|
74
|
+
stream.resume();
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* 将 stdout 单行追加到串行处理队列
|
|
79
|
+
*
|
|
80
|
+
* @param line 已切分出的 stdout 单行文本
|
|
81
|
+
* @returns 无返回值
|
|
82
|
+
*/
|
|
83
|
+
const enqueue = (line) => {
|
|
84
|
+
pending += 1;
|
|
85
|
+
pauseForBackpressure();
|
|
86
|
+
queue = queue
|
|
87
|
+
.then(async () => {
|
|
88
|
+
try {
|
|
89
|
+
await onLine(line);
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
if (onError) {
|
|
93
|
+
try {
|
|
94
|
+
await onError(err instanceof Error ? err : new Error(String(err)));
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
// 吞掉错误处理器自身的错误
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
finally {
|
|
102
|
+
pending -= 1;
|
|
103
|
+
resumeIfDrained();
|
|
104
|
+
}
|
|
105
|
+
})
|
|
106
|
+
.catch(() => undefined);
|
|
107
|
+
};
|
|
108
|
+
const onData = (chunk) => {
|
|
109
|
+
buf += chunk.toString("utf-8");
|
|
110
|
+
let nl;
|
|
111
|
+
while ((nl = buf.indexOf("\n")) !== -1) {
|
|
112
|
+
const line = buf.slice(0, nl);
|
|
113
|
+
buf = buf.slice(nl + 1);
|
|
114
|
+
if (line.trim()) {
|
|
115
|
+
enqueue(line);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
let resolveFinished;
|
|
120
|
+
const streamFinished = new Promise((resolve) => {
|
|
121
|
+
resolveFinished = resolve;
|
|
122
|
+
});
|
|
123
|
+
const finish = () => {
|
|
124
|
+
if (finished)
|
|
125
|
+
return;
|
|
126
|
+
finished = true;
|
|
127
|
+
stream.off("data", onData);
|
|
128
|
+
stream.off("end", finish);
|
|
129
|
+
stream.off("close", finish);
|
|
130
|
+
signal?.removeEventListener("abort", finish);
|
|
131
|
+
if (buf.trim()) {
|
|
132
|
+
enqueue(buf);
|
|
133
|
+
}
|
|
134
|
+
buf = "";
|
|
135
|
+
resolveFinished();
|
|
136
|
+
};
|
|
137
|
+
stream.on("data", onData);
|
|
138
|
+
stream.once("end", finish);
|
|
139
|
+
stream.once("close", finish);
|
|
140
|
+
signal?.addEventListener("abort", finish, { once: true });
|
|
141
|
+
if (signal?.aborted ||
|
|
142
|
+
stream.readableEnded ||
|
|
143
|
+
stream.closed ||
|
|
144
|
+
stream.destroyed) {
|
|
145
|
+
queueMicrotask(finish);
|
|
146
|
+
}
|
|
147
|
+
return streamFinished.then(() => queue);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Translate an adapter `ParseResult` into channel events + adapter-level
|
|
151
|
+
* side-effects (session-id persistence, stdin writes). Also tells the
|
|
152
|
+
* shutdown controller when the adapter emits a `done`/`error` so the
|
|
153
|
+
* fallback synthesiser in `finalizeOnExit` doesn't duplicate.
|
|
154
|
+
*/
|
|
155
|
+
export async function applyParseResult(channelName, workerName, result, child, shutdown, turnTracker) {
|
|
156
|
+
for (const ev of result.events) {
|
|
157
|
+
// Claim the terminal slot SYNCHRONOUSLY before the await so a
|
|
158
|
+
// racing `child.on("exit") → finalizeOnExit` can't see
|
|
159
|
+
// `terminalEmitted=false` and synthesise a duplicate fallback while
|
|
160
|
+
// we're in the middle of writing the real terminal event.
|
|
161
|
+
if (ev.kind === "done" || ev.kind === "error") {
|
|
162
|
+
shutdown.markTerminalEmitted();
|
|
163
|
+
}
|
|
164
|
+
await appendEvent(channelName, {
|
|
165
|
+
kind: ev.kind,
|
|
166
|
+
by: workerName,
|
|
167
|
+
...(ev.payload ?? {}),
|
|
168
|
+
});
|
|
169
|
+
if (ev.kind === "done" || ev.kind === "error") {
|
|
170
|
+
const turn = turnTracker?.finish();
|
|
171
|
+
if (turn) {
|
|
172
|
+
const outcome = ev.kind === "done" ? "done" : "error";
|
|
173
|
+
await appendEvent(channelName, {
|
|
174
|
+
kind: "turn_finished",
|
|
175
|
+
by: workerName,
|
|
176
|
+
worker: workerName,
|
|
177
|
+
inputSeq: turn.inputSeq,
|
|
178
|
+
turnId: turn.turnId,
|
|
179
|
+
outcome,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
if (result.side) {
|
|
185
|
+
const { reply, persistSessionId, persistThreadId } = result.side;
|
|
186
|
+
if (persistSessionId) {
|
|
187
|
+
fs.writeFileSync(workerFile(channelName, workerName, "session-id"), persistSessionId);
|
|
188
|
+
}
|
|
189
|
+
if (persistThreadId) {
|
|
190
|
+
fs.writeFileSync(workerFile(channelName, workerName, "thread-id"), persistThreadId);
|
|
191
|
+
}
|
|
192
|
+
if (reply) {
|
|
193
|
+
for (const r of reply) {
|
|
194
|
+
try {
|
|
195
|
+
child.stdin.write(r);
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
// worker stdin closed — supervisor will exit soon
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Convenience wrapper: wire `pumpStdout` to `applyParseResult` with
|
|
206
|
+
* standard error-event-on-failure handling. The orchestrator just calls
|
|
207
|
+
* this and forgets about line buffering / parse plumbing.
|
|
208
|
+
*/
|
|
209
|
+
export function startStdoutPump(args) {
|
|
210
|
+
const { channelName, workerName, child, adapter, adapterCtx, log, shutdown, turnTracker, processLines, signal, } = args;
|
|
211
|
+
const drained = pumpStdout(child.stdout, async (line) => {
|
|
212
|
+
if (processLines && !(await processLines))
|
|
213
|
+
return;
|
|
214
|
+
log.write(line + "\n");
|
|
215
|
+
const result = adapter.parseLine(line, adapterCtx);
|
|
216
|
+
await applyParseResult(channelName, workerName, result, child, shutdown, turnTracker);
|
|
217
|
+
}, async (err) => {
|
|
218
|
+
log.write(`[supervisor] stdout line handler failed: ${err.message}\n`);
|
|
219
|
+
await appendEvent(channelName, {
|
|
220
|
+
kind: "error",
|
|
221
|
+
by: `supervisor:${workerName}`,
|
|
222
|
+
message: `stdout pipeline error: ${err.message}`,
|
|
223
|
+
}).catch(() => undefined);
|
|
224
|
+
}, signal);
|
|
225
|
+
return processLines
|
|
226
|
+
? Promise.all([drained, processLines]).then(() => undefined)
|
|
227
|
+
: drained;
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=stdout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdout.js","sourceRoot":"","sources":["../../../../src/commands/channel/supervisor/stdout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface ActiveTurn {
|
|
2
|
+
inputSeq: number;
|
|
3
|
+
turnId: string;
|
|
4
|
+
}
|
|
5
|
+
export type TurnOutcome = "done" | "error" | "aborted";
|
|
6
|
+
export interface TurnTrackerHooks {
|
|
7
|
+
/** Called when the tracker transitions from idle to mid-turn. */
|
|
8
|
+
onIdleExit?: () => void;
|
|
9
|
+
/** Called when the tracker transitions back to idle. */
|
|
10
|
+
onIdleEnter?: () => void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Host-local turn tracker for one supervisor process.
|
|
14
|
+
*
|
|
15
|
+
* The durable SOT is events.jsonl. This object only remembers the input
|
|
16
|
+
* message seq long enough for the inbox watcher and stdout pump to emit
|
|
17
|
+
* matching `turn_started` / `turn_finished` events.
|
|
18
|
+
*
|
|
19
|
+
* Optional hooks fire on the idle ↔ mid-turn transition so the
|
|
20
|
+
* supervisor idle-timer (OOM guard) can pause / reset without each
|
|
21
|
+
* inbox or stdout call site having to know about it.
|
|
22
|
+
*/
|
|
23
|
+
export declare class TurnTracker {
|
|
24
|
+
#private;
|
|
25
|
+
constructor(hooks?: TurnTrackerHooks);
|
|
26
|
+
begin(inputSeq: number): ActiveTurn;
|
|
27
|
+
finish(): ActiveTurn | undefined;
|
|
28
|
+
abortCurrent(): ActiveTurn | undefined;
|
|
29
|
+
current(): ActiveTurn | undefined;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=turns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turns.d.ts","sourceRoot":"","sources":["../../../../src/commands/channel/supervisor/turns.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,qBAAa,WAAW;;gBAIV,KAAK,GAAE,gBAAqB;IAIxC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU;IAWnC,MAAM,IAAI,UAAU,GAAG,SAAS;IAMhC,YAAY,IAAI,UAAU,GAAG,SAAS;IAMtC,OAAO,IAAI,UAAU,GAAG,SAAS;CAGlC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host-local turn tracker for one supervisor process.
|
|
3
|
+
*
|
|
4
|
+
* The durable SOT is events.jsonl. This object only remembers the input
|
|
5
|
+
* message seq long enough for the inbox watcher and stdout pump to emit
|
|
6
|
+
* matching `turn_started` / `turn_finished` events.
|
|
7
|
+
*
|
|
8
|
+
* Optional hooks fire on the idle ↔ mid-turn transition so the
|
|
9
|
+
* supervisor idle-timer (OOM guard) can pause / reset without each
|
|
10
|
+
* inbox or stdout call site having to know about it.
|
|
11
|
+
*/
|
|
12
|
+
export class TurnTracker {
|
|
13
|
+
#turns = [];
|
|
14
|
+
#hooks;
|
|
15
|
+
constructor(hooks = {}) {
|
|
16
|
+
this.#hooks = hooks;
|
|
17
|
+
}
|
|
18
|
+
begin(inputSeq) {
|
|
19
|
+
const wasIdle = this.#turns.length === 0;
|
|
20
|
+
const turn = {
|
|
21
|
+
inputSeq,
|
|
22
|
+
turnId: `msg:${inputSeq}`,
|
|
23
|
+
};
|
|
24
|
+
this.#turns.push(turn);
|
|
25
|
+
if (wasIdle)
|
|
26
|
+
this.#hooks.onIdleExit?.();
|
|
27
|
+
return turn;
|
|
28
|
+
}
|
|
29
|
+
finish() {
|
|
30
|
+
const turn = this.#turns.pop();
|
|
31
|
+
if (turn && this.#turns.length === 0)
|
|
32
|
+
this.#hooks.onIdleEnter?.();
|
|
33
|
+
return turn;
|
|
34
|
+
}
|
|
35
|
+
abortCurrent() {
|
|
36
|
+
const turn = this.#turns.pop();
|
|
37
|
+
if (turn && this.#turns.length === 0)
|
|
38
|
+
this.#hooks.onIdleEnter?.();
|
|
39
|
+
return turn;
|
|
40
|
+
}
|
|
41
|
+
current() {
|
|
42
|
+
return this.#turns.at(-1);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=turns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turns.js","sourceRoot":"","sources":["../../../../src/commands/channel/supervisor/turns.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;GAUG;AACH,MAAM,OAAO,WAAW;IACtB,MAAM,GAAiB,EAAE,CAAC;IAC1B,MAAM,CAAmB;IAEzB,YAAY,QAA0B,EAAE;QACtC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,QAAgB;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QACzC,MAAM,IAAI,GAAe;YACvB,QAAQ;YACR,MAAM,EAAE,OAAO,QAAQ,EAAE;SAC1B,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,OAAO;YAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supervisor pre-timeout warning scheduler.
|
|
3
|
+
*
|
|
4
|
+
* Emits a one-shot `supervisor_warning` channel event when the worker
|
|
5
|
+
* is approaching its lifetime timeout, so observers (dispatchers /
|
|
6
|
+
* `atw channel messages`) can see the impending kill without
|
|
7
|
+
* having to poll. The event is observability-only — it never replaces
|
|
8
|
+
* the eventual `killed` / `done` / `error` terminal event, and is
|
|
9
|
+
* not part of the meaningful-event set so plain `wait` does not wake
|
|
10
|
+
* on it unless `--kind supervisor_warning` is explicit.
|
|
11
|
+
*
|
|
12
|
+
* Scheduling lives outside `createShutdown()` because the warning is a
|
|
13
|
+
* pre-terminal observability event, not a terminal one — the shutdown
|
|
14
|
+
* funnel deliberately only owns kill ladder + `killed` append.
|
|
15
|
+
*/
|
|
16
|
+
/** Default lead time before the supervisor timeout (ms) to fire the warning. */
|
|
17
|
+
export declare const SUPERVISOR_TIMEOUT_WARNING_REMAINING_MS: number;
|
|
18
|
+
export interface SupervisorShutdownProbe {
|
|
19
|
+
isShuttingDown(): boolean;
|
|
20
|
+
hasTerminalEvent(): boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface ScheduleSupervisorTimeoutWarningArgs {
|
|
23
|
+
channelName: string;
|
|
24
|
+
workerName: string;
|
|
25
|
+
timeoutMs: number;
|
|
26
|
+
/** Warning lead time in ms. `<= 0` disables the pre-timeout warning. */
|
|
27
|
+
warnBeforeMs?: number;
|
|
28
|
+
shutdown: SupervisorShutdownProbe;
|
|
29
|
+
/** Returns true once the child process has exited (exitCode/signalCode set). */
|
|
30
|
+
isChildExited: () => boolean;
|
|
31
|
+
log: {
|
|
32
|
+
write: (data: string) => void;
|
|
33
|
+
};
|
|
34
|
+
project?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Schedule a single `supervisor_warning` append at `timeoutMs - warnBeforeMs`
|
|
38
|
+
* (clamped at 0 when the warning lead time is greater than the timeout).
|
|
39
|
+
* Guarded so the warning is emitted at most once, never after shutdown
|
|
40
|
+
* has been requested, never after a terminal event has been emitted,
|
|
41
|
+
* and never after the worker child has exited.
|
|
42
|
+
*
|
|
43
|
+
* Returns a cancel handle that callers can invoke to drop the pending
|
|
44
|
+
* timer (e.g. on supervisor teardown). Append failures are logged via
|
|
45
|
+
* `log.write` only and do not affect worker lifecycle.
|
|
46
|
+
*/
|
|
47
|
+
export declare function scheduleSupervisorTimeoutWarning(args: ScheduleSupervisorTimeoutWarningArgs): () => void;
|
|
48
|
+
//# sourceMappingURL=warning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warning.d.ts","sourceRoot":"","sources":["../../../../src/commands/channel/supervisor/warning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,gFAAgF;AAChF,eAAO,MAAM,uCAAuC,QAAa,CAAC;AAElE,MAAM,WAAW,uBAAuB;IACtC,cAAc,IAAI,OAAO,CAAC;IAC1B,gBAAgB,IAAI,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,oCAAoC;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,uBAAuB,CAAC;IAClC,gFAAgF;IAChF,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B,GAAG,EAAE;QAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,oCAAoC,GACzC,MAAM,IAAI,CAuDZ"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supervisor pre-timeout warning scheduler.
|
|
3
|
+
*
|
|
4
|
+
* Emits a one-shot `supervisor_warning` channel event when the worker
|
|
5
|
+
* is approaching its lifetime timeout, so observers (dispatchers /
|
|
6
|
+
* `atw channel messages`) can see the impending kill without
|
|
7
|
+
* having to poll. The event is observability-only — it never replaces
|
|
8
|
+
* the eventual `killed` / `done` / `error` terminal event, and is
|
|
9
|
+
* not part of the meaningful-event set so plain `wait` does not wake
|
|
10
|
+
* on it unless `--kind supervisor_warning` is explicit.
|
|
11
|
+
*
|
|
12
|
+
* Scheduling lives outside `createShutdown()` because the warning is a
|
|
13
|
+
* pre-terminal observability event, not a terminal one — the shutdown
|
|
14
|
+
* funnel deliberately only owns kill ladder + `killed` append.
|
|
15
|
+
*/
|
|
16
|
+
import { appendEvent } from "../store/events.js";
|
|
17
|
+
/** Default lead time before the supervisor timeout (ms) to fire the warning. */
|
|
18
|
+
export const SUPERVISOR_TIMEOUT_WARNING_REMAINING_MS = 5 * 60_000;
|
|
19
|
+
/**
|
|
20
|
+
* Schedule a single `supervisor_warning` append at `timeoutMs - warnBeforeMs`
|
|
21
|
+
* (clamped at 0 when the warning lead time is greater than the timeout).
|
|
22
|
+
* Guarded so the warning is emitted at most once, never after shutdown
|
|
23
|
+
* has been requested, never after a terminal event has been emitted,
|
|
24
|
+
* and never after the worker child has exited.
|
|
25
|
+
*
|
|
26
|
+
* Returns a cancel handle that callers can invoke to drop the pending
|
|
27
|
+
* timer (e.g. on supervisor teardown). Append failures are logged via
|
|
28
|
+
* `log.write` only and do not affect worker lifecycle.
|
|
29
|
+
*/
|
|
30
|
+
export function scheduleSupervisorTimeoutWarning(args) {
|
|
31
|
+
const { channelName, workerName, timeoutMs, shutdown, isChildExited, log } = args;
|
|
32
|
+
if (timeoutMs <= 0)
|
|
33
|
+
return () => undefined;
|
|
34
|
+
const warnBeforeMs = args.warnBeforeMs ?? SUPERVISOR_TIMEOUT_WARNING_REMAINING_MS;
|
|
35
|
+
if (warnBeforeMs <= 0)
|
|
36
|
+
return () => undefined;
|
|
37
|
+
const remaining = Math.min(timeoutMs, warnBeforeMs);
|
|
38
|
+
const delay = Math.max(0, timeoutMs - remaining);
|
|
39
|
+
let warningEmitted = false;
|
|
40
|
+
let cancelled = false;
|
|
41
|
+
const fire = () => {
|
|
42
|
+
if (cancelled || warningEmitted)
|
|
43
|
+
return;
|
|
44
|
+
if (shutdown.isShuttingDown() ||
|
|
45
|
+
shutdown.hasTerminalEvent() ||
|
|
46
|
+
isChildExited()) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
// Claim the slot synchronously so a re-entrant fire (or future
|
|
50
|
+
// caller wiring) cannot race two appends.
|
|
51
|
+
warningEmitted = true;
|
|
52
|
+
void (async () => {
|
|
53
|
+
try {
|
|
54
|
+
await appendEvent(channelName, {
|
|
55
|
+
kind: "supervisor_warning",
|
|
56
|
+
by: `supervisor:${workerName}`,
|
|
57
|
+
worker: workerName,
|
|
58
|
+
reason: "approaching_timeout",
|
|
59
|
+
timeout_ms: timeoutMs,
|
|
60
|
+
remaining_ms: remaining,
|
|
61
|
+
}, args.project);
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
65
|
+
log.write(`[supervisor] warning append failed: ${msg}\n`);
|
|
66
|
+
}
|
|
67
|
+
})();
|
|
68
|
+
};
|
|
69
|
+
const timer = setTimeout(fire, delay);
|
|
70
|
+
// Don't keep the supervisor alive solely for the warning timer.
|
|
71
|
+
timer.unref?.();
|
|
72
|
+
return () => {
|
|
73
|
+
cancelled = true;
|
|
74
|
+
clearTimeout(timer);
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=warning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warning.js","sourceRoot":"","sources":["../../../../src/commands/channel/supervisor/warning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,gFAAgF;AAChF,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,GAAG,MAAM,CAAC;AAoBlE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gCAAgC,CAC9C,IAA0C;IAE1C,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,GACxE,IAAI,CAAC;IACP,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IAC3C,MAAM,YAAY,GAChB,IAAI,CAAC,YAAY,IAAI,uCAAuC,CAAC;IAC/D,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IAE9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;IAEjD,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,IAAI,GAAG,GAAS,EAAE;QACtB,IAAI,SAAS,IAAI,cAAc;YAAE,OAAO;QACxC,IACE,QAAQ,CAAC,cAAc,EAAE;YACzB,QAAQ,CAAC,gBAAgB,EAAE;YAC3B,aAAa,EAAE,EACf,CAAC;YACD,OAAO;QACT,CAAC;QACD,+DAA+D;QAC/D,0CAA0C;QAC1C,cAAc,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,MAAM,WAAW,CACf,WAAW,EACX;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,EAAE,EAAE,cAAc,UAAU,EAAE;oBAC9B,MAAM,EAAE,UAAU;oBAClB,MAAM,EAAE,qBAAqB;oBAC7B,UAAU,EAAE,SAAS;oBACrB,YAAY,EAAE,SAAS;iBACxB,EACD,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,GAAG,CAAC,KAAK,CAAC,uCAAuC,GAAG,IAAI,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtC,gEAAgE;IAChE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IAEhB,OAAO,GAAG,EAAE;QACV,SAAS,GAAG,IAAI,CAAC;QACjB,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supervisor process: owns a single worker (claude or codex) and bridges
|
|
3
|
+
* worker ↔ channel events.jsonl.
|
|
4
|
+
*
|
|
5
|
+
* Run as: `atw channel __supervisor <channel> <worker> <config-path>`
|
|
6
|
+
*
|
|
7
|
+
* Three concurrent loops:
|
|
8
|
+
* 1. stdout reader — parse worker stdout → adapter → append events
|
|
9
|
+
* 2. inbox watcher — read events.jsonl for `to=<worker>` say events,
|
|
10
|
+
* translate via adapter.encodeUserMessage → worker stdin
|
|
11
|
+
* 3. signal handler — SIGTERM → close worker stdin → 3s → SIGTERM → 3s → SIGKILL
|
|
12
|
+
* → write `killed` event → exit
|
|
13
|
+
*/
|
|
14
|
+
import { type InboxPolicy } from "@chinhae/atw-core/channel";
|
|
15
|
+
import type { CodexSandboxMode } from "./adapters/codex.js";
|
|
16
|
+
import { type Provider } from "./adapters/index.js";
|
|
17
|
+
export interface SupervisorConfig {
|
|
18
|
+
provider: Provider;
|
|
19
|
+
cwd: string;
|
|
20
|
+
/** Combined worker system prompt: channel protocol prefix + agent body.
|
|
21
|
+
* Injected via Claude `--append-system-prompt(-file)` or Codex
|
|
22
|
+
* `developerInstructions`. The supervisor also persists it to
|
|
23
|
+
* `<worker>.system-prompt.md` and exposes the path as
|
|
24
|
+
* `view.systemPromptFile` so adapters can avoid OS argv-length limits.
|
|
25
|
+
* No "initial user prompt" — the worker stays idle until the first
|
|
26
|
+
* inbox `send --to <worker>` arrives. */
|
|
27
|
+
systemPrompt: string;
|
|
28
|
+
/** Extra env vars (ATW_HOOKS=0 etc. are added automatically). */
|
|
29
|
+
env?: Record<string, string>;
|
|
30
|
+
/** Optional model override. */
|
|
31
|
+
model?: string;
|
|
32
|
+
/** Resume an existing session/thread if id is provided. */
|
|
33
|
+
resume?: string;
|
|
34
|
+
/** Codex-only: overrides the `thread/start` sandbox mode (default `workspace-write`). */
|
|
35
|
+
sandbox?: CodexSandboxMode;
|
|
36
|
+
/** Auto-kill worker after this many ms (anti-zombie). */
|
|
37
|
+
timeoutMs?: number;
|
|
38
|
+
/** Emit supervisor_warning this many ms before timeout. `<=0` disables it. */
|
|
39
|
+
warnBeforeMs?: number;
|
|
40
|
+
/**
|
|
41
|
+
* OOM-guard idle-cleanup TTL in ms. When a running worker stays idle
|
|
42
|
+
* for this long (no active turn), the supervisor self-terminates with
|
|
43
|
+
* `killed{reason:"idle-timeout"}`. `<=0` or undefined disables.
|
|
44
|
+
*/
|
|
45
|
+
idleTimeoutMs?: number;
|
|
46
|
+
/** Caller identity recorded on the `spawned` event (default "main"). */
|
|
47
|
+
spawnedBy?: string;
|
|
48
|
+
/** Agent definition name loaded for this worker, if any (recorded on `spawned`). */
|
|
49
|
+
agent?: string;
|
|
50
|
+
/** Relative paths injected via --file / --jsonl (recorded on `spawned`). */
|
|
51
|
+
contextFiles?: string[];
|
|
52
|
+
/** Relative paths of every `--jsonl` manifest processed, even if empty
|
|
53
|
+
* (recorded on `spawned` for observability — "I passed --jsonl X but
|
|
54
|
+
* X contained no real entries"). */
|
|
55
|
+
contextManifests?: string[];
|
|
56
|
+
/** Worker inbox delivery policy (recorded on `spawned`; default
|
|
57
|
+
* `explicitOnly`). */
|
|
58
|
+
inboxPolicy?: InboxPolicy;
|
|
59
|
+
}
|
|
60
|
+
interface ResolvedProviderPath {
|
|
61
|
+
command: string;
|
|
62
|
+
prefixArgs: string[];
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Drain worker stdout before synthesising terminal state and removing the
|
|
66
|
+
* supervisor's runtime files.
|
|
67
|
+
*/
|
|
68
|
+
export declare function finalizeSupervisorExit(args: {
|
|
69
|
+
stdoutDrained: Promise<void>;
|
|
70
|
+
drainTimeoutMs: number;
|
|
71
|
+
abortStdoutDrain: () => void;
|
|
72
|
+
onDrainTimeout?: () => void;
|
|
73
|
+
finalizeOnExit: () => Promise<void>;
|
|
74
|
+
cleanup: () => Promise<void>;
|
|
75
|
+
exit: () => void;
|
|
76
|
+
}): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Resolve the real launch target for npm `.cmd` shims on Windows.
|
|
79
|
+
*
|
|
80
|
+
* @param provider CLI basename for the provider, such as `codex` or `claude`.
|
|
81
|
+
* @param cwd Worker launch directory, used to check local `node_modules/.bin` first.
|
|
82
|
+
* @returns Command and prefix arguments that can be passed directly to `spawn()`.
|
|
83
|
+
*/
|
|
84
|
+
export declare function resolveProviderPath(provider: string, cwd?: string): ResolvedProviderPath;
|
|
85
|
+
/**
|
|
86
|
+
* Entry point invoked by `atw channel __supervisor <channel> <worker> <config>`.
|
|
87
|
+
*/
|
|
88
|
+
export declare function runSupervisor(channelName: string, workerName: string, configPath: string): Promise<void>;
|
|
89
|
+
export declare function writeSupervisorConfig(channelName: string, workerName: string, config: SupervisorConfig, project?: string): string;
|
|
90
|
+
export {};
|
|
91
|
+
//# sourceMappingURL=supervisor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../../../src/commands/channel/supervisor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAahE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;8CAM0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yFAAyF;IACzF,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;yCAEqC;IACrC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;2BACuB;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAMD,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBhB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,oBAAoB,CAsCtB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CA2Wf;AA0DD,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAKR"}
|