trellis-hgl 0.6.0-beta.18
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 +235 -0
- package/README.md +149 -0
- package/bin/trellis.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 +207 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/commands/channel/adapters/claude.d.ts +38 -0
- package/dist/commands/channel/adapters/claude.d.ts.map +1 -0
- package/dist/commands/channel/adapters/claude.js +209 -0
- package/dist/commands/channel/adapters/claude.js.map +1 -0
- package/dist/commands/channel/adapters/codex.d.ts +81 -0
- package/dist/commands/channel/adapters/codex.d.ts.map +1 -0
- package/dist/commands/channel/adapters/codex.js +512 -0
- package/dist/commands/channel/adapters/codex.js.map +1 -0
- package/dist/commands/channel/adapters/index.d.ts +79 -0
- package/dist/commands/channel/adapters/index.d.ts.map +1 -0
- package/dist/commands/channel/adapters/index.js +109 -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 +154 -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 +290 -0
- package/dist/commands/channel/context-loader.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/index.d.ts +3 -0
- package/dist/commands/channel/index.d.ts.map +1 -0
- package/dist/commands/channel/index.js +503 -0
- package/dist/commands/channel/index.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 +121 -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 +16 -0
- package/dist/commands/channel/messages.d.ts.map +1 -0
- package/dist/commands/channel/messages.js +249 -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 +31 -0
- package/dist/commands/channel/run.d.ts.map +1 -0
- package/dist/commands/channel/run.js +137 -0
- package/dist/commands/channel/run.js.map +1 -0
- package/dist/commands/channel/send.d.ts +13 -0
- package/dist/commands/channel/send.d.ts.map +1 -0
- package/dist/commands/channel/send.js +26 -0
- package/dist/commands/channel/send.js.map +1 -0
- package/dist/commands/channel/spawn.d.ts +30 -0
- package/dist/commands/channel/spawn.d.ts.map +1 -0
- package/dist/commands/channel/spawn.js +194 -0
- package/dist/commands/channel/spawn.js.map +1 -0
- package/dist/commands/channel/store/events.d.ts +39 -0
- package/dist/commands/channel/store/events.d.ts.map +1 -0
- package/dist/commands/channel/store/events.js +87 -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 +63 -0
- package/dist/commands/channel/store/paths.d.ts.map +1 -0
- package/dist/commands/channel/store/paths.js +246 -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 +146 -0
- package/dist/commands/channel/store/watch.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 +66 -0
- package/dist/commands/channel/supervisor/shutdown.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/shutdown.js +143 -0
- package/dist/commands/channel/supervisor/shutdown.js.map +1 -0
- package/dist/commands/channel/supervisor/stdout.d.ts +51 -0
- package/dist/commands/channel/supervisor/stdout.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/stdout.js +121 -0
- package/dist/commands/channel/supervisor/stdout.js.map +1 -0
- package/dist/commands/channel/supervisor/turns.d.ts +20 -0
- package/dist/commands/channel/supervisor/turns.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/turns.js +28 -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 +53 -0
- package/dist/commands/channel/supervisor.d.ts.map +1 -0
- package/dist/commands/channel/supervisor.js +304 -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 +18 -0
- package/dist/commands/channel/wait.d.ts.map +1 -0
- package/dist/commands/channel/wait.js +76 -0
- package/dist/commands/channel/wait.js.map +1 -0
- package/dist/commands/init.d.ts +59 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +1459 -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 +424 -0
- package/dist/commands/mem.js.map +1 -0
- package/dist/commands/uninstall.d.ts +27 -0
- package/dist/commands/uninstall.d.ts.map +1 -0
- package/dist/commands/uninstall.js +339 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/commands/update.d.ts +72 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +1926 -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 +219 -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 +19 -0
- package/dist/configurators/antigravity.js.map +1 -0
- package/dist/configurators/claude.d.ts +9 -0
- package/dist/configurators/claude.d.ts.map +1 -0
- package/dist/configurators/claude.js +72 -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 +30 -0
- package/dist/configurators/codebuddy.js.map +1 -0
- package/dist/configurators/codex.d.ts +8 -0
- package/dist/configurators/codex.d.ts.map +1 -0
- package/dist/configurators/codex.js +87 -0
- package/dist/configurators/codex.js.map +1 -0
- package/dist/configurators/copilot.d.ts +10 -0
- package/dist/configurators/copilot.d.ts.map +1 -0
- package/dist/configurators/copilot.js +51 -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 +29 -0
- package/dist/configurators/cursor.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 +30 -0
- package/dist/configurators/droid.js.map +1 -0
- package/dist/configurators/gemini.d.ts +16 -0
- package/dist/configurators/gemini.d.ts.map +1 -0
- package/dist/configurators/gemini.js +38 -0
- package/dist/configurators/gemini.js.map +1 -0
- package/dist/configurators/index.d.ts +65 -0
- package/dist/configurators/index.d.ts.map +1 -0
- package/dist/configurators/index.js +367 -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 +19 -0
- package/dist/configurators/kilo.js.map +1 -0
- package/dist/configurators/kiro.d.ts +8 -0
- package/dist/configurators/kiro.d.ts.map +1 -0
- package/dist/configurators/kiro.js +24 -0
- package/dist/configurators/kiro.js.map +1 -0
- package/dist/configurators/opencode.d.ts +14 -0
- package/dist/configurators/opencode.d.ts.map +1 -0
- package/dist/configurators/opencode.js +96 -0
- package/dist/configurators/opencode.js.map +1 -0
- package/dist/configurators/pi.d.ts +3 -0
- package/dist/configurators/pi.d.ts.map +1 -0
- package/dist/configurators/pi.js +45 -0
- package/dist/configurators/pi.js.map +1 -0
- package/dist/configurators/qoder.d.ts +11 -0
- package/dist/configurators/qoder.d.ts.map +1 -0
- package/dist/configurators/qoder.js +31 -0
- package/dist/configurators/qoder.js.map +1 -0
- package/dist/configurators/shared.d.ts +178 -0
- package/dist/configurators/shared.d.ts.map +1 -0
- package/dist/configurators/shared.js +541 -0
- package/dist/configurators/shared.js.map +1 -0
- package/dist/configurators/windsurf.d.ts +7 -0
- package/dist/configurators/windsurf.d.ts.map +1 -0
- package/dist/configurators/windsurf.js +19 -0
- package/dist/configurators/windsurf.js.map +1 -0
- package/dist/configurators/workflow.d.ts +37 -0
- package/dist/configurators/workflow.d.ts.map +1 -0
- package/dist/configurators/workflow.js +164 -0
- package/dist/configurators/workflow.js.map +1 -0
- package/dist/constants/paths.d.ts +70 -0
- package/dist/constants/paths.d.ts.map +1 -0
- package/dist/constants/paths.js +79 -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 +62 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +187 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/manifests/0.1.9.json +30 -0
- package/dist/migrations/manifests/0.2.0.json +49 -0
- package/dist/migrations/manifests/0.2.12.json +9 -0
- package/dist/migrations/manifests/0.2.13.json +9 -0
- package/dist/migrations/manifests/0.2.14.json +175 -0
- package/dist/migrations/manifests/0.2.15.json +33 -0
- package/dist/migrations/manifests/0.3.0-beta.0.json +297 -0
- package/dist/migrations/manifests/0.3.0-beta.1.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.10.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.11.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.12.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.13.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.14.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.15.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.16.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.2.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.3.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.4.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.5.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.6.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.7.json +11 -0
- package/dist/migrations/manifests/0.3.0-beta.8.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.9.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.0.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.1.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.2.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.3.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.4.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.5.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.6.json +9 -0
- package/dist/migrations/manifests/0.3.0.json +11 -0
- package/dist/migrations/manifests/0.3.1.json +9 -0
- package/dist/migrations/manifests/0.3.10.json +9 -0
- package/dist/migrations/manifests/0.3.2.json +9 -0
- package/dist/migrations/manifests/0.3.3.json +9 -0
- package/dist/migrations/manifests/0.3.4.json +21 -0
- package/dist/migrations/manifests/0.3.5.json +9 -0
- package/dist/migrations/manifests/0.3.6.json +9 -0
- package/dist/migrations/manifests/0.3.7.json +9 -0
- package/dist/migrations/manifests/0.3.8.json +9 -0
- package/dist/migrations/manifests/0.3.9.json +9 -0
- package/dist/migrations/manifests/0.4.0-beta.1.json +228 -0
- package/dist/migrations/manifests/0.4.0-beta.10.json +9 -0
- package/dist/migrations/manifests/0.4.0-beta.2.json +9 -0
- package/dist/migrations/manifests/0.4.0-beta.3.json +9 -0
- package/dist/migrations/manifests/0.4.0-beta.4.json +9 -0
- package/dist/migrations/manifests/0.4.0-beta.5.json +9 -0
- package/dist/migrations/manifests/0.4.0-beta.6.json +9 -0
- package/dist/migrations/manifests/0.4.0-beta.7.json +9 -0
- package/dist/migrations/manifests/0.4.0-beta.8.json +34 -0
- package/dist/migrations/manifests/0.4.0-beta.9.json +9 -0
- package/dist/migrations/manifests/0.4.0-rc.0.json +9 -0
- package/dist/migrations/manifests/0.4.0-rc.1.json +9 -0
- package/dist/migrations/manifests/0.4.0.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.0.json +1646 -0
- package/dist/migrations/manifests/0.5.0-beta.1.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.10.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.11.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.12.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.13.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.14.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.15.json +116 -0
- package/dist/migrations/manifests/0.5.0-beta.16.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.17.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.18.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.19.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.2.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.3.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.4.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.5.json +222 -0
- package/dist/migrations/manifests/0.5.0-beta.6.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.7.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.8.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.9.json +48 -0
- package/dist/migrations/manifests/0.5.0-rc.0.json +9 -0
- package/dist/migrations/manifests/0.5.0-rc.1.json +9 -0
- package/dist/migrations/manifests/0.5.0-rc.2.json +9 -0
- package/dist/migrations/manifests/0.5.0-rc.3.json +9 -0
- package/dist/migrations/manifests/0.5.0-rc.4.json +9 -0
- package/dist/migrations/manifests/0.5.0-rc.5.json +9 -0
- package/dist/migrations/manifests/0.5.0-rc.6.json +9 -0
- package/dist/migrations/manifests/0.5.0-rc.7.json +9 -0
- package/dist/migrations/manifests/0.5.0.json +9 -0
- package/dist/migrations/manifests/0.5.1.json +9 -0
- package/dist/migrations/manifests/0.5.10.json +9 -0
- package/dist/migrations/manifests/0.5.11.json +16 -0
- package/dist/migrations/manifests/0.5.12.json +9 -0
- package/dist/migrations/manifests/0.5.13.json +9 -0
- package/dist/migrations/manifests/0.5.14.json +9 -0
- package/dist/migrations/manifests/0.5.15.json +9 -0
- package/dist/migrations/manifests/0.5.2.json +9 -0
- package/dist/migrations/manifests/0.5.3.json +9 -0
- package/dist/migrations/manifests/0.5.4.json +9 -0
- package/dist/migrations/manifests/0.5.5.json +9 -0
- package/dist/migrations/manifests/0.5.6.json +9 -0
- package/dist/migrations/manifests/0.5.7.json +16 -0
- package/dist/migrations/manifests/0.5.8.json +9 -0
- package/dist/migrations/manifests/0.5.9.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.0.json +16 -0
- package/dist/migrations/manifests/0.6.0-beta.1.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.10.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.11.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.12.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.13.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.14.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.15.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.16.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.17.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.2.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.3.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.4.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.5.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.6.json +16 -0
- package/dist/migrations/manifests/0.6.0-beta.7.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.8.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.9.json +9 -0
- package/dist/templates/claude/agents/trellis-check.md +123 -0
- package/dist/templates/claude/agents/trellis-code-architecture-review.md +71 -0
- package/dist/templates/claude/agents/trellis-code-review.md +71 -0
- package/dist/templates/claude/agents/trellis-implement.md +118 -0
- package/dist/templates/claude/agents/trellis-merge-review.md +72 -0
- package/dist/templates/claude/agents/trellis-research.md +137 -0
- package/dist/templates/claude/agents/trellis-spec-review.md +71 -0
- package/dist/templates/claude/index.d.ts +22 -0
- package/dist/templates/claude/index.d.ts.map +1 -0
- package/dist/templates/claude/index.js +46 -0
- package/dist/templates/claude/index.js.map +1 -0
- package/dist/templates/claude/settings.json +73 -0
- package/dist/templates/codebuddy/agents/trellis-check.md +115 -0
- package/dist/templates/codebuddy/agents/trellis-implement.md +110 -0
- package/dist/templates/codebuddy/agents/trellis-research.md +137 -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 +59 -0
- package/dist/templates/codex/agents/trellis-check.toml +84 -0
- package/dist/templates/codex/agents/trellis-implement.toml +65 -0
- package/dist/templates/codex/agents/trellis-research.toml +73 -0
- package/dist/templates/codex/config.toml +35 -0
- package/dist/templates/codex/hooks/session-start.py +545 -0
- package/dist/templates/codex/hooks.json +15 -0
- package/dist/templates/codex/index.d.ts +39 -0
- package/dist/templates/codex/index.d.ts.map +1 -0
- package/dist/templates/codex/index.js +85 -0
- package/dist/templates/codex/index.js.map +1 -0
- package/dist/templates/codex/skills/before-dev/SKILL.md +40 -0
- package/dist/templates/codex/skills/brainstorm/SKILL.md +112 -0
- package/dist/templates/codex/skills/break-loop/SKILL.md +130 -0
- package/dist/templates/codex/skills/check/SKILL.md +98 -0
- package/dist/templates/codex/skills/check-cross-layer/SKILL.md +158 -0
- package/dist/templates/codex/skills/create-command/SKILL.md +101 -0
- package/dist/templates/codex/skills/finish-work/SKILL.md +90 -0
- package/dist/templates/codex/skills/improve-ut/SKILL.md +69 -0
- package/dist/templates/codex/skills/integrate-skill/SKILL.md +221 -0
- package/dist/templates/codex/skills/onboard/SKILL.md +363 -0
- package/dist/templates/codex/skills/record-session/SKILL.md +67 -0
- package/dist/templates/codex/skills/start/SKILL.md +64 -0
- package/dist/templates/codex/skills/update-spec/SKILL.md +335 -0
- package/dist/templates/common/bundled-skills/trellis-meta/SKILL.md +73 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/add-project-local-conventions.md +83 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-agents.md +54 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-context-loading.md +84 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-hooks.md +57 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-skills-or-commands.md +78 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-spec-structure.md +83 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-task-lifecycle.md +90 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-workflow.md +65 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/overview.md +55 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/context-injection.md +68 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/generated-files.md +80 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/overview.md +51 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/spec-system.md +102 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/task-system.md +130 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/workflow.md +75 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/workspace-memory.md +71 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/agents.md +80 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/hooks-and-settings.md +69 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/overview.md +59 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/platform-map.md +74 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/skills-and-commands.md +83 -0
- package/dist/templates/common/commands/continue.md +56 -0
- package/dist/templates/common/commands/finish-work.md +66 -0
- package/dist/templates/common/commands/start.md +59 -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 +41 -0
- package/dist/templates/common/skills/brainstorm.md +112 -0
- package/dist/templates/common/skills/break-loop.md +125 -0
- package/dist/templates/common/skills/check.md +93 -0
- package/dist/templates/common/skills/grill-me.md +49 -0
- package/dist/templates/common/skills/improve-codebase-architecture.md +38 -0
- package/dist/templates/common/skills/tdd.md +34 -0
- package/dist/templates/common/skills/update-spec.md +351 -0
- package/dist/templates/copilot/hooks/session-start.py +547 -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 +54 -0
- package/dist/templates/copilot/index.js.map +1 -0
- package/dist/templates/copilot/prompts/before-dev.prompt.md +39 -0
- package/dist/templates/copilot/prompts/brainstorm.prompt.md +111 -0
- package/dist/templates/copilot/prompts/break-loop.prompt.md +129 -0
- package/dist/templates/copilot/prompts/check-cross-layer.prompt.md +157 -0
- package/dist/templates/copilot/prompts/check.prompt.md +97 -0
- package/dist/templates/copilot/prompts/create-command.prompt.md +116 -0
- package/dist/templates/copilot/prompts/finish-work.prompt.md +99 -0
- package/dist/templates/copilot/prompts/integrate-skill.prompt.md +223 -0
- package/dist/templates/copilot/prompts/onboard.prompt.md +362 -0
- package/dist/templates/copilot/prompts/parallel.prompt.md +204 -0
- package/dist/templates/copilot/prompts/record-session.prompt.md +66 -0
- package/dist/templates/copilot/prompts/start.prompt.md +63 -0
- package/dist/templates/copilot/prompts/update-spec.prompt.md +358 -0
- package/dist/templates/cursor/agents/trellis-check.md +114 -0
- package/dist/templates/cursor/agents/trellis-implement.md +109 -0
- package/dist/templates/cursor/agents/trellis-research.md +136 -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/trellis-check.md +107 -0
- package/dist/templates/droid/droids/trellis-implement.md +102 -0
- package/dist/templates/droid/droids/trellis-research.md +137 -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 +59 -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/trellis-check.md +107 -0
- package/dist/templates/gemini/agents/trellis-implement.md +102 -0
- package/dist/templates/gemini/agents/trellis-research.md +136 -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 +28 -0
- package/dist/templates/kiro/agents/trellis-check.json +26 -0
- package/dist/templates/kiro/agents/trellis-implement.json +26 -0
- package/dist/templates/kiro/agents/trellis-research.json +30 -0
- package/dist/templates/kiro/index.d.ts +18 -0
- package/dist/templates/kiro/index.d.ts.map +1 -0
- package/dist/templates/kiro/index.js +18 -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 +259 -0
- package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +595 -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/opencode/agents/trellis-check.md +122 -0
- package/dist/templates/opencode/agents/trellis-implement.md +118 -0
- package/dist/templates/opencode/agents/trellis-research.md +145 -0
- package/dist/templates/opencode/lib/session-utils.js +521 -0
- package/dist/templates/opencode/lib/trellis-context.js +381 -0
- package/dist/templates/opencode/package.json +5 -0
- package/dist/templates/opencode/plugins/inject-subagent-context.js +513 -0
- package/dist/templates/opencode/plugins/inject-workflow-state.js +159 -0
- package/dist/templates/opencode/plugins/session-start.js +101 -0
- package/dist/templates/pi/agents/trellis-check.md +37 -0
- package/dist/templates/pi/agents/trellis-implement.md +42 -0
- package/dist/templates/pi/agents/trellis-research.md +25 -0
- package/dist/templates/pi/extensions/trellis/index.ts.txt +1174 -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 +21 -0
- package/dist/templates/qoder/agents/trellis-check.md +108 -0
- package/dist/templates/qoder/agents/trellis-implement.md +103 -0
- package/dist/templates/qoder/agents/trellis-research.md +137 -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 +47 -0
- package/dist/templates/shared-hooks/index.d.ts +50 -0
- package/dist/templates/shared-hooks/index.d.ts.map +1 -0
- package/dist/templates/shared-hooks/index.js +88 -0
- package/dist/templates/shared-hooks/index.js.map +1 -0
- package/dist/templates/shared-hooks/inject-shell-session-context.py +183 -0
- package/dist/templates/shared-hooks/inject-subagent-context.py +771 -0
- package/dist/templates/shared-hooks/inject-workflow-state.py +363 -0
- package/dist/templates/shared-hooks/session-start.py +832 -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 +60 -0
- package/dist/templates/template-utils.js.map +1 -0
- package/dist/templates/trellis/config.yaml +90 -0
- package/dist/templates/trellis/gitignore.txt +32 -0
- package/dist/templates/trellis/index.d.ts +52 -0
- package/dist/templates/trellis/index.d.ts.map +1 -0
- package/dist/templates/trellis/index.js +97 -0
- package/dist/templates/trellis/index.js.map +1 -0
- package/dist/templates/trellis/scripts/__init__.py +5 -0
- package/dist/templates/trellis/scripts/add_session.py +547 -0
- package/dist/templates/trellis/scripts/common/__init__.py +92 -0
- package/dist/templates/trellis/scripts/common/active_task.py +626 -0
- package/dist/templates/trellis/scripts/common/cli_adapter.py +811 -0
- package/dist/templates/trellis/scripts/common/config.py +445 -0
- package/dist/templates/trellis/scripts/common/developer.py +190 -0
- package/dist/templates/trellis/scripts/common/git.py +31 -0
- package/dist/templates/trellis/scripts/common/git_context.py +106 -0
- package/dist/templates/trellis/scripts/common/io.py +37 -0
- package/dist/templates/trellis/scripts/common/log.py +45 -0
- package/dist/templates/trellis/scripts/common/packages_context.py +238 -0
- package/dist/templates/trellis/scripts/common/paths.py +447 -0
- package/dist/templates/trellis/scripts/common/safe_commit.py +285 -0
- package/dist/templates/trellis/scripts/common/session_context.py +821 -0
- package/dist/templates/trellis/scripts/common/task_context.py +223 -0
- package/dist/templates/trellis/scripts/common/task_queue.py +188 -0
- package/dist/templates/trellis/scripts/common/task_store.py +698 -0
- package/dist/templates/trellis/scripts/common/task_utils.py +274 -0
- package/dist/templates/trellis/scripts/common/tasks.py +112 -0
- package/dist/templates/trellis/scripts/common/trellis_config.py +131 -0
- package/dist/templates/trellis/scripts/common/types.py +110 -0
- package/dist/templates/trellis/scripts/common/workflow_phase.py +212 -0
- package/dist/templates/trellis/scripts/get_context.py +16 -0
- package/dist/templates/trellis/scripts/get_developer.py +26 -0
- package/dist/templates/trellis/scripts/hooks/linear_sync.py +243 -0
- package/dist/templates/trellis/scripts/init_developer.py +51 -0
- package/dist/templates/trellis/scripts/task.py +500 -0
- package/dist/templates/trellis/tasks/.gitkeep +0 -0
- package/dist/templates/trellis/workflow.md +750 -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 +280 -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/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 +203 -0
- package/dist/utils/file-writer.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 +136 -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/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 +150 -0
- package/dist/utils/template-fetcher.d.ts.map +1 -0
- package/dist/utils/template-fetcher.js +907 -0
- package/dist/utils/template-fetcher.js.map +1 -0
- package/dist/utils/template-hash.d.ts +123 -0
- package/dist/utils/template-hash.d.ts.map +1 -0
- package/dist/utils/template-hash.js +334 -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 +342 -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 +90 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { readFileSync, readdirSync, statSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { AI_TOOLS } from "../types/ai-tools.js";
|
|
4
|
+
import { getClaudeTemplatePath } from "../templates/extract.js";
|
|
5
|
+
import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
6
|
+
import { resolvePlaceholders, resolveCommands, resolveSkills, resolveBundledSkills, writeSkills, writeSharedHooks, replacePythonCommandLiterals, } from "./shared.js";
|
|
7
|
+
const EXCLUDE_PATTERNS = [
|
|
8
|
+
".d.ts",
|
|
9
|
+
".d.ts.map",
|
|
10
|
+
".js",
|
|
11
|
+
".js.map",
|
|
12
|
+
".ts", // TypeScript source — dev-only; not part of user-shipped templates
|
|
13
|
+
"__pycache__",
|
|
14
|
+
];
|
|
15
|
+
function shouldExclude(filename) {
|
|
16
|
+
for (const pattern of EXCLUDE_PATTERNS) {
|
|
17
|
+
if (filename.endsWith(pattern) || filename === pattern) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Recursively copy directory, excluding build artifacts and the commands/ dir
|
|
25
|
+
* (commands are now written from common templates).
|
|
26
|
+
*/
|
|
27
|
+
async function copyDirFiltered(src, dest, skipDirs = []) {
|
|
28
|
+
ensureDir(dest);
|
|
29
|
+
for (const entry of readdirSync(src)) {
|
|
30
|
+
if (shouldExclude(entry) || skipDirs.includes(entry)) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
const srcPath = path.join(src, entry);
|
|
34
|
+
const destPath = path.join(dest, entry);
|
|
35
|
+
const stat = statSync(srcPath);
|
|
36
|
+
if (stat.isDirectory()) {
|
|
37
|
+
await copyDirFiltered(srcPath, destPath);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
let content = readFileSync(srcPath, "utf-8");
|
|
41
|
+
if (entry === "settings.json") {
|
|
42
|
+
content = resolvePlaceholders(content);
|
|
43
|
+
}
|
|
44
|
+
await writeFile(destPath, replacePythonCommandLiterals(content));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Configure Claude Code:
|
|
50
|
+
* - agents/, settings.json from platform-specific templates
|
|
51
|
+
* - hooks/ from shared-hooks/ (unified with other platforms)
|
|
52
|
+
* - commands/trellis/ — start + finish-work as slash commands
|
|
53
|
+
* - skills/trellis-{name}/SKILL.md — other 5 as auto-triggered skills
|
|
54
|
+
*/
|
|
55
|
+
export async function configureClaude(cwd) {
|
|
56
|
+
const sourcePath = getClaudeTemplatePath();
|
|
57
|
+
const destPath = path.join(cwd, ".claude");
|
|
58
|
+
const ctx = AI_TOOLS["claude-code"].templateContext;
|
|
59
|
+
// Copy platform-specific files (agents, settings) — hooks come from shared-hooks
|
|
60
|
+
await copyDirFiltered(sourcePath, destPath, ["commands", "hooks"]);
|
|
61
|
+
// Shared hook scripts (same source as 7 other platforms)
|
|
62
|
+
await writeSharedHooks(path.join(destPath, "hooks"), "claude");
|
|
63
|
+
// start + finish-work as slash commands
|
|
64
|
+
const commandsDir = path.join(destPath, "commands", "trellis");
|
|
65
|
+
ensureDir(commandsDir);
|
|
66
|
+
for (const cmd of resolveCommands(ctx)) {
|
|
67
|
+
await writeFile(path.join(commandsDir, `${cmd.name}.md`), cmd.content);
|
|
68
|
+
}
|
|
69
|
+
// Auto-trigger workflow skills + multi-file built-in skills.
|
|
70
|
+
await writeSkills(path.join(destPath, "skills"), resolveSkills(ctx), resolveBundledSkills(ctx));
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=claude.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/configurators/claude.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configure CodeBuddy:
|
|
3
|
+
* - commands/trellis/ — start + finish-work as slash commands
|
|
4
|
+
* - skills/trellis-{name}/SKILL.md — other 5 as auto-triggered skills
|
|
5
|
+
* - agents/{name}.md — sub-agent definitions
|
|
6
|
+
* - hooks/*.py — shared hook scripts
|
|
7
|
+
* - settings.json — hook configuration
|
|
8
|
+
*/
|
|
9
|
+
export declare function configureCodebuddy(cwd: string): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=codebuddy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codebuddy.d.ts","sourceRoot":"","sources":["../../src/configurators/codebuddy.ts"],"names":[],"mappings":"AAiBA;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBnE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { AI_TOOLS } from "../types/ai-tools.js";
|
|
3
|
+
import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
4
|
+
import { resolvePlaceholders, resolveCommands, resolveSkills, resolveBundledSkills, writeSkills, writeAgents, writeSharedHooks, } from "./shared.js";
|
|
5
|
+
import { getAllAgents, getSettingsTemplate, } from "../templates/codebuddy/index.js";
|
|
6
|
+
/**
|
|
7
|
+
* Configure CodeBuddy:
|
|
8
|
+
* - commands/trellis/ — start + finish-work as slash commands
|
|
9
|
+
* - skills/trellis-{name}/SKILL.md — other 5 as auto-triggered skills
|
|
10
|
+
* - agents/{name}.md — sub-agent definitions
|
|
11
|
+
* - hooks/*.py — shared hook scripts
|
|
12
|
+
* - settings.json — hook configuration
|
|
13
|
+
*/
|
|
14
|
+
export async function configureCodebuddy(cwd) {
|
|
15
|
+
const config = AI_TOOLS.codebuddy;
|
|
16
|
+
const ctx = config.templateContext;
|
|
17
|
+
const configRoot = path.join(cwd, config.configDir);
|
|
18
|
+
// Commands
|
|
19
|
+
const commandsDir = path.join(configRoot, "commands", "trellis");
|
|
20
|
+
ensureDir(commandsDir);
|
|
21
|
+
for (const cmd of resolveCommands(ctx)) {
|
|
22
|
+
await writeFile(path.join(commandsDir, `${cmd.name}.md`), cmd.content);
|
|
23
|
+
}
|
|
24
|
+
await writeSkills(path.join(configRoot, "skills"), resolveSkills(ctx), resolveBundledSkills(ctx));
|
|
25
|
+
await writeAgents(path.join(configRoot, "agents"), getAllAgents());
|
|
26
|
+
await writeSharedHooks(path.join(configRoot, "hooks"), "codebuddy");
|
|
27
|
+
const settings = getSettingsTemplate();
|
|
28
|
+
await writeFile(path.join(configRoot, settings.targetPath), resolvePlaceholders(settings.content));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=codebuddy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codebuddy.js","sourceRoot":"","sources":["../../src/configurators/codebuddy.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AAEzC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAW;IAClD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAEpD,WAAW;IACX,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACjE,SAAS,CAAC,WAAW,CAAC,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,WAAW,CACf,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAC/B,aAAa,CAAC,GAAG,CAAC,EAClB,oBAAoB,CAAC,GAAG,CAAC,CAC1B,CAAC;IACF,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IACnE,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC1C,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CACtC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configure Codex by writing:
|
|
3
|
+
* - .agents/skills/ — shared skills from common source
|
|
4
|
+
* - .codex/skills/ — Codex-specific skills (platform-specific templates)
|
|
5
|
+
* - .codex/agents/, hooks/, hooks.json, config.toml — platform-specific
|
|
6
|
+
*/
|
|
7
|
+
export declare function configureCodex(cwd: string): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=codex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/configurators/codex.ts"],"names":[],"mappings":"AAqBA;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgH/D"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { AI_TOOLS } from "../types/ai-tools.js";
|
|
3
|
+
import { getAllAgents, getAllCodexSkills, getAllHooks, getConfigTemplate, getHooksConfig, } from "../templates/codex/index.js";
|
|
4
|
+
import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
5
|
+
import { resolvePlaceholders, resolveAllAsSkillsNeutral, resolveBundledSkills, resolveCodexTrellisStartSkill, applyPullBasedPreludeToml, writeSkills, writeSharedHooks, replacePythonCommandLiterals, } from "./shared.js";
|
|
6
|
+
/**
|
|
7
|
+
* Configure Codex by writing:
|
|
8
|
+
* - .agents/skills/ — shared skills from common source
|
|
9
|
+
* - .codex/skills/ — Codex-specific skills (platform-specific templates)
|
|
10
|
+
* - .codex/agents/, hooks/, hooks.json, config.toml — platform-specific
|
|
11
|
+
*/
|
|
12
|
+
export async function configureCodex(cwd) {
|
|
13
|
+
// Shared skills from common source → .agents/skills/
|
|
14
|
+
// Uses the neutral placeholder resolver so the 5 shared workflow skills
|
|
15
|
+
// (brainstorm, before-dev, check, break-loop, update-spec) render to the
|
|
16
|
+
// same bytes regardless of which platform writes them — required because
|
|
17
|
+
// Gemini CLI 0.40+ also targets `.agents/skills/` (last-writer-wins is
|
|
18
|
+
// safe when both writers produce identical output).
|
|
19
|
+
const sharedSkillsRoot = path.join(cwd, ".agents", "skills");
|
|
20
|
+
await writeSkills(sharedSkillsRoot, resolveAllAsSkillsNeutral(AI_TOOLS.codex.templateContext), resolveBundledSkills(AI_TOOLS.codex.templateContext));
|
|
21
|
+
// Additionally write `trellis-start` to .agents/skills/ — Codex-specific.
|
|
22
|
+
// The SessionStart hook was removed in 0.5.5 (de-recursion); inject-workflow-state.py
|
|
23
|
+
// injects a `<trellis-bootstrap>` block on no_task turns instructing the AI to
|
|
24
|
+
// invoke `$trellis-start` to load workflow context. Without this skill, that
|
|
25
|
+
// invocation has nothing to resolve. Other agent-capable platforms keep their
|
|
26
|
+
// working SessionStart hooks and don't need this.
|
|
27
|
+
// Must stay in sync with `collectPlatformTemplates.codex.collectTemplates`
|
|
28
|
+
// (configurators/index.ts) — both share `resolveCodexTrellisStartSkill`.
|
|
29
|
+
const trellisStart = resolveCodexTrellisStartSkill(AI_TOOLS.codex.templateContext);
|
|
30
|
+
if (trellisStart) {
|
|
31
|
+
const trellisStartDir = path.join(sharedSkillsRoot, trellisStart.name);
|
|
32
|
+
ensureDir(trellisStartDir);
|
|
33
|
+
await writeFile(path.join(trellisStartDir, "SKILL.md"), trellisStart.content);
|
|
34
|
+
}
|
|
35
|
+
const codexRoot = path.join(cwd, ".codex");
|
|
36
|
+
// Codex-specific skills (platform-specific) → .codex/skills/
|
|
37
|
+
const codexSkillsRoot = path.join(codexRoot, "skills");
|
|
38
|
+
ensureDir(codexSkillsRoot);
|
|
39
|
+
for (const skill of getAllCodexSkills()) {
|
|
40
|
+
const skillDir = path.join(codexSkillsRoot, skill.name);
|
|
41
|
+
ensureDir(skillDir);
|
|
42
|
+
await writeFile(path.join(skillDir, "SKILL.md"), replacePythonCommandLiterals(skill.content));
|
|
43
|
+
}
|
|
44
|
+
// Custom agents → .codex/agents/
|
|
45
|
+
const codexAgentsRoot = path.join(codexRoot, "agents");
|
|
46
|
+
ensureDir(codexAgentsRoot);
|
|
47
|
+
// Codex is a class-2 (pull-based) platform: PreToolUse only fires for Bash
|
|
48
|
+
// and CollabAgentSpawn hook is not implemented (#15486). Sub-agents must
|
|
49
|
+
// load Trellis context themselves via the prelude injected here.
|
|
50
|
+
for (const agent of applyPullBasedPreludeToml(getAllAgents())) {
|
|
51
|
+
await writeFile(path.join(codexAgentsRoot, `${agent.name}.toml`), replacePythonCommandLiterals(agent.content));
|
|
52
|
+
}
|
|
53
|
+
// Hooks → .codex/hooks/
|
|
54
|
+
const hooksDir = path.join(codexRoot, "hooks");
|
|
55
|
+
ensureDir(hooksDir);
|
|
56
|
+
// Codex-specific hook files. hooks.json currently registers only
|
|
57
|
+
// UserPromptSubmit; session-start.py is retained as a compact compatibility
|
|
58
|
+
// template and regression surface.
|
|
59
|
+
for (const hook of getAllHooks()) {
|
|
60
|
+
await writeFile(path.join(hooksDir, hook.name), replacePythonCommandLiterals(hook.content));
|
|
61
|
+
}
|
|
62
|
+
// Shared hooks (inject-workflow-state.py only). Sub-agent context is
|
|
63
|
+
// pull-based (class-2).
|
|
64
|
+
await writeSharedHooks(hooksDir, "codex");
|
|
65
|
+
// Hooks config → .codex/hooks.json
|
|
66
|
+
await writeFile(path.join(codexRoot, "hooks.json"), resolvePlaceholders(getHooksConfig()));
|
|
67
|
+
// NOTE: Codex hooks require `features.hooks = true` in the user's
|
|
68
|
+
// ~/.codex/config.toml (Codex 0.129+). The legacy `features.codex_hooks = true`
|
|
69
|
+
// still works on 0.129+ but emits a deprecation warning; pre-0.129 only
|
|
70
|
+
// accepts `codex_hooks`. Without this flag the hooks.json is ignored and
|
|
71
|
+
// inject-workflow-state.py will never fire. Codex 0.129+ also gates each
|
|
72
|
+
// installed hook behind a one-time `/hooks` review — until the user approves
|
|
73
|
+
// it the workflow breadcrumb won't auto-inject (the trellis-bootstrap
|
|
74
|
+
// fallback in inject-workflow-state.py covers this case). Documented in
|
|
75
|
+
// spec/cli/backend/platform-integration.md.
|
|
76
|
+
if (!process.env.VITEST && !process.env.TRELLIS_QUIET) {
|
|
77
|
+
process.stderr.write("⚠️ Codex hooks require `features.hooks = true` in your " +
|
|
78
|
+
"~/.codex/config.toml (Codex 0.129+; older versions: `codex_hooks = true`). " +
|
|
79
|
+
"On Codex 0.129+ also run `/hooks` once to approve the Trellis " +
|
|
80
|
+
"UserPromptSubmit hook. Without these the Trellis workflow breadcrumb " +
|
|
81
|
+
"won't auto-inject. See Trellis docs for details.\n");
|
|
82
|
+
}
|
|
83
|
+
// Config → .codex/config.toml
|
|
84
|
+
const config = getConfigTemplate();
|
|
85
|
+
await writeFile(path.join(codexRoot, config.targetPath), replacePythonCommandLiterals(config.content));
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=codex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/configurators/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configure GitHub Copilot:
|
|
3
|
+
* - prompts/ — start + finish-work as prompt files
|
|
4
|
+
* - skills/trellis-{name}/SKILL.md — other 5 as auto-triggered skills
|
|
5
|
+
* - agents/{name}.agent.md — sub-agent definitions (note .agent.md suffix)
|
|
6
|
+
* - copilot/hooks/ — platform-specific + shared hook scripts
|
|
7
|
+
* - hooks config — hooks.json
|
|
8
|
+
*/
|
|
9
|
+
export declare function configureCopilot(cwd: string): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=copilot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../src/configurators/copilot.ts"],"names":[],"mappings":"AAgBA;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0DjE"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { AI_TOOLS } from "../types/ai-tools.js";
|
|
3
|
+
import { getAllHooks, getHooksConfig } from "../templates/copilot/index.js";
|
|
4
|
+
import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
5
|
+
import { resolvePlaceholders, resolveCommands, resolveSkills, resolveBundledSkills, applyPullBasedPreludeMarkdown, normalizeCopilotMarkdownAgents, writeSkills, writeSharedHooks, replacePythonCommandLiterals, } from "./shared.js";
|
|
6
|
+
/**
|
|
7
|
+
* Configure GitHub Copilot:
|
|
8
|
+
* - prompts/ — start + finish-work as prompt files
|
|
9
|
+
* - skills/trellis-{name}/SKILL.md — other 5 as auto-triggered skills
|
|
10
|
+
* - agents/{name}.agent.md — sub-agent definitions (note .agent.md suffix)
|
|
11
|
+
* - copilot/hooks/ — platform-specific + shared hook scripts
|
|
12
|
+
* - hooks config — hooks.json
|
|
13
|
+
*/
|
|
14
|
+
export async function configureCopilot(cwd) {
|
|
15
|
+
const config = AI_TOOLS.copilot;
|
|
16
|
+
const ctx = config.templateContext;
|
|
17
|
+
const copilotRoot = path.join(cwd, ".github", "copilot");
|
|
18
|
+
const promptsDir = path.join(cwd, ".github", "prompts");
|
|
19
|
+
ensureDir(promptsDir);
|
|
20
|
+
for (const cmd of resolveCommands(ctx)) {
|
|
21
|
+
await writeFile(path.join(promptsDir, `${cmd.name}.prompt.md`), cmd.content);
|
|
22
|
+
}
|
|
23
|
+
await writeSkills(path.join(cwd, ".github", "skills"), resolveSkills(ctx), resolveBundledSkills(ctx));
|
|
24
|
+
const agentsDir = path.join(cwd, ".github", "agents");
|
|
25
|
+
ensureDir(agentsDir);
|
|
26
|
+
// Copilot is a class-2 (pull-based) platform: hook events don't reliably
|
|
27
|
+
// fire for sub-agents (#2392/#2540). Reuse Cursor's agent content and
|
|
28
|
+
// prepend the pull-based prelude so sub-agents Read Trellis context themselves.
|
|
29
|
+
// Cursor uses Claude-style comma-separated tools frontmatter; normalize that
|
|
30
|
+
// to Copilot's YAML tool list format before writing into .github/agents.
|
|
31
|
+
const { getAllAgents: getCursorAgents } = await import("../templates/cursor/index.js");
|
|
32
|
+
for (const agent of applyPullBasedPreludeMarkdown(normalizeCopilotMarkdownAgents(getCursorAgents()))) {
|
|
33
|
+
await writeFile(path.join(agentsDir, `${agent.name}.agent.md`), replacePythonCommandLiterals(agent.content));
|
|
34
|
+
}
|
|
35
|
+
// Platform-specific hook scripts (Copilot's own session-start.py)
|
|
36
|
+
const hooksDir = path.join(copilotRoot, "hooks");
|
|
37
|
+
ensureDir(hooksDir);
|
|
38
|
+
for (const hook of getAllHooks()) {
|
|
39
|
+
await writeFile(path.join(hooksDir, hook.name), replacePythonCommandLiterals(hook.content));
|
|
40
|
+
}
|
|
41
|
+
// Shared hook scripts (inject-workflow-state.py only). Copilot bundles its
|
|
42
|
+
// own session-start.py above; sub-agent context is pull-based (class-2).
|
|
43
|
+
await writeSharedHooks(hooksDir, "copilot");
|
|
44
|
+
// Hooks config
|
|
45
|
+
const resolvedConfig = resolvePlaceholders(getHooksConfig());
|
|
46
|
+
await writeFile(path.join(copilotRoot, "hooks.json"), resolvedConfig);
|
|
47
|
+
const githubHooksDir = path.join(cwd, ".github", "hooks");
|
|
48
|
+
ensureDir(githubHooksDir);
|
|
49
|
+
await writeFile(path.join(githubHooksDir, "trellis.json"), resolvedConfig);
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=copilot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/configurators/copilot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configure Cursor:
|
|
3
|
+
* - commands/ — start + finish-work as slash commands (trellis- prefix, flat)
|
|
4
|
+
* - skills/trellis-{name}/SKILL.md — other 5 as auto-triggered skills
|
|
5
|
+
* - agents/{name}.md — sub-agent definitions
|
|
6
|
+
* - hooks/*.py — shared hook scripts
|
|
7
|
+
* - hooks.json — hook configuration (separate file, not settings.json)
|
|
8
|
+
*/
|
|
9
|
+
export declare function configureCursor(cwd: string): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=cursor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/configurators/cursor.ts"],"names":[],"mappings":"AAcA;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BhE"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { AI_TOOLS } from "../types/ai-tools.js";
|
|
3
|
+
import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
4
|
+
import { resolvePlaceholders, resolveCommands, resolveSkills, resolveBundledSkills, writeSkills, writeAgents, writeSharedHooks, } from "./shared.js";
|
|
5
|
+
import { getAllAgents, getHooksConfig } from "../templates/cursor/index.js";
|
|
6
|
+
/**
|
|
7
|
+
* Configure Cursor:
|
|
8
|
+
* - commands/ — start + finish-work as slash commands (trellis- prefix, flat)
|
|
9
|
+
* - skills/trellis-{name}/SKILL.md — other 5 as auto-triggered skills
|
|
10
|
+
* - agents/{name}.md — sub-agent definitions
|
|
11
|
+
* - hooks/*.py — shared hook scripts
|
|
12
|
+
* - hooks.json — hook configuration (separate file, not settings.json)
|
|
13
|
+
*/
|
|
14
|
+
export async function configureCursor(cwd) {
|
|
15
|
+
const config = AI_TOOLS.cursor;
|
|
16
|
+
const ctx = config.templateContext;
|
|
17
|
+
const configRoot = path.join(cwd, config.configDir);
|
|
18
|
+
const commandsDir = path.join(configRoot, "commands");
|
|
19
|
+
ensureDir(commandsDir);
|
|
20
|
+
for (const cmd of resolveCommands(ctx)) {
|
|
21
|
+
await writeFile(path.join(commandsDir, `trellis-${cmd.name}.md`), cmd.content);
|
|
22
|
+
}
|
|
23
|
+
await writeSkills(path.join(configRoot, "skills"), resolveSkills(ctx), resolveBundledSkills(ctx));
|
|
24
|
+
await writeAgents(path.join(configRoot, "agents"), getAllAgents());
|
|
25
|
+
await writeSharedHooks(path.join(configRoot, "hooks"), "cursor");
|
|
26
|
+
// Hooks config (separate file, not settings.json)
|
|
27
|
+
await writeFile(path.join(configRoot, "hooks.json"), resolvePlaceholders(getHooksConfig()));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=cursor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/configurators/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE5E;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW;IAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACtD,SAAS,CAAC,WAAW,CAAC,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,CAAC,IAAI,KAAK,CAAC,EAChD,GAAG,CAAC,OAAO,CACZ,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,CACf,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAC/B,aAAa,CAAC,GAAG,CAAC,EAClB,oBAAoB,CAAC,GAAG,CAAC,CAC1B,CAAC;IACF,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IACnE,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEjE,kDAAkD;IAClD,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EACnC,mBAAmB,CAAC,cAAc,EAAE,CAAC,CACtC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configure Factory Droid:
|
|
3
|
+
* - commands/trellis/ — start + finish-work as slash commands
|
|
4
|
+
* - skills/trellis-{name}/SKILL.md — other 5 as auto-triggered skills
|
|
5
|
+
* - droids/{name}.md — sub-agent definitions (Droid calls them "droids")
|
|
6
|
+
* - hooks/*.py — shared hook scripts
|
|
7
|
+
* - settings.json — hook configuration
|
|
8
|
+
*/
|
|
9
|
+
export declare function configureDroid(cwd: string): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=droid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"droid.d.ts","sourceRoot":"","sources":["../../src/configurators/droid.ts"],"names":[],"mappings":"AAcA;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB/D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { AI_TOOLS } from "../types/ai-tools.js";
|
|
3
|
+
import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
4
|
+
import { resolvePlaceholders, resolveCommands, resolveSkills, resolveBundledSkills, writeSkills, writeAgents, writeSharedHooks, } from "./shared.js";
|
|
5
|
+
import { getAllDroids, getSettingsTemplate } from "../templates/droid/index.js";
|
|
6
|
+
/**
|
|
7
|
+
* Configure Factory Droid:
|
|
8
|
+
* - commands/trellis/ — start + finish-work as slash commands
|
|
9
|
+
* - skills/trellis-{name}/SKILL.md — other 5 as auto-triggered skills
|
|
10
|
+
* - droids/{name}.md — sub-agent definitions (Droid calls them "droids")
|
|
11
|
+
* - hooks/*.py — shared hook scripts
|
|
12
|
+
* - settings.json — hook configuration
|
|
13
|
+
*/
|
|
14
|
+
export async function configureDroid(cwd) {
|
|
15
|
+
const config = AI_TOOLS.droid;
|
|
16
|
+
const ctx = config.templateContext;
|
|
17
|
+
const configRoot = path.join(cwd, config.configDir);
|
|
18
|
+
// Commands
|
|
19
|
+
const commandsDir = path.join(configRoot, "commands", "trellis");
|
|
20
|
+
ensureDir(commandsDir);
|
|
21
|
+
for (const cmd of resolveCommands(ctx)) {
|
|
22
|
+
await writeFile(path.join(commandsDir, `${cmd.name}.md`), cmd.content);
|
|
23
|
+
}
|
|
24
|
+
await writeSkills(path.join(configRoot, "skills"), resolveSkills(ctx), resolveBundledSkills(ctx));
|
|
25
|
+
await writeAgents(path.join(configRoot, "droids"), getAllDroids());
|
|
26
|
+
await writeSharedHooks(path.join(configRoot, "hooks"), "droid");
|
|
27
|
+
const settings = getSettingsTemplate();
|
|
28
|
+
await writeFile(path.join(configRoot, settings.targetPath), resolvePlaceholders(settings.content));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=droid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"droid.js","sourceRoot":"","sources":["../../src/configurators/droid.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAW;IAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAEpD,WAAW;IACX,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACjE,SAAS,CAAC,WAAW,CAAC,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,WAAW,CACf,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAC/B,aAAa,CAAC,GAAG,CAAC,EAClB,oBAAoB,CAAC,GAAG,CAAC,CAC1B,CAAC;IACF,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IACnE,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IAEhE,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC1C,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CACtC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configure Gemini CLI (pull-based class-2 platform):
|
|
3
|
+
* - commands/trellis/ — start + finish-work as TOML slash commands
|
|
4
|
+
* - .agents/skills/trellis-{name}/SKILL.md — 5 auto-triggered shared skills
|
|
5
|
+
* written to the cross-platform `.agents/skills/` workspace alias (Gemini
|
|
6
|
+
* CLI 0.40+ reads it natively; previously `.gemini/skills/` was used,
|
|
7
|
+
* which collided with Codex's identical write target and caused
|
|
8
|
+
* duplicate-skill warnings — issue #224).
|
|
9
|
+
* - agents/{name}.md — sub-agent definitions, with pull-based prelude
|
|
10
|
+
* - hooks/*.py — session-start only (no inject-subagent-context.py — Gemini
|
|
11
|
+
* BeforeTool can fire but #18128 limits chain-of-thought visibility; sub-agents
|
|
12
|
+
* Read jsonl/prd themselves)
|
|
13
|
+
* - settings.json — hook configuration (SessionStart + BeforeAgent)
|
|
14
|
+
*/
|
|
15
|
+
export declare function configureGemini(cwd: string): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=gemini.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/configurators/gemini.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BhE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { AI_TOOLS } from "../types/ai-tools.js";
|
|
3
|
+
import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
4
|
+
import { resolvePlaceholders, resolveCommands, resolveSkillsNeutral, resolveBundledSkills, writeSkills, writeAgents, writeSharedHooks, applyPullBasedPreludeMarkdown, } from "./shared.js";
|
|
5
|
+
import { getAllAgents, getSettingsTemplate, } from "../templates/gemini/index.js";
|
|
6
|
+
/**
|
|
7
|
+
* Configure Gemini CLI (pull-based class-2 platform):
|
|
8
|
+
* - commands/trellis/ — start + finish-work as TOML slash commands
|
|
9
|
+
* - .agents/skills/trellis-{name}/SKILL.md — 5 auto-triggered shared skills
|
|
10
|
+
* written to the cross-platform `.agents/skills/` workspace alias (Gemini
|
|
11
|
+
* CLI 0.40+ reads it natively; previously `.gemini/skills/` was used,
|
|
12
|
+
* which collided with Codex's identical write target and caused
|
|
13
|
+
* duplicate-skill warnings — issue #224).
|
|
14
|
+
* - agents/{name}.md — sub-agent definitions, with pull-based prelude
|
|
15
|
+
* - hooks/*.py — session-start only (no inject-subagent-context.py — Gemini
|
|
16
|
+
* BeforeTool can fire but #18128 limits chain-of-thought visibility; sub-agents
|
|
17
|
+
* Read jsonl/prd themselves)
|
|
18
|
+
* - settings.json — hook configuration (SessionStart + BeforeAgent)
|
|
19
|
+
*/
|
|
20
|
+
export async function configureGemini(cwd) {
|
|
21
|
+
const config = AI_TOOLS.gemini;
|
|
22
|
+
const ctx = config.templateContext;
|
|
23
|
+
const configRoot = path.join(cwd, config.configDir);
|
|
24
|
+
const commandsDir = path.join(configRoot, "commands", "trellis");
|
|
25
|
+
ensureDir(commandsDir);
|
|
26
|
+
for (const cmd of resolveCommands(ctx)) {
|
|
27
|
+
const toml = `description = "Trellis: ${cmd.name}"\n\nprompt = """\n${cmd.content}\n"""\n`;
|
|
28
|
+
await writeFile(path.join(commandsDir, `${cmd.name}.toml`), toml);
|
|
29
|
+
}
|
|
30
|
+
// Shared skills go to `.agents/skills/` (read by Gemini CLI 0.40+ as a
|
|
31
|
+
// workspace alias), using the neutral placeholder resolver so the rendered
|
|
32
|
+
// SKILL.md files are byte-identical to Codex's writes for the same skills.
|
|
33
|
+
await writeSkills(path.join(cwd, ".agents", "skills"), resolveSkillsNeutral(ctx), resolveBundledSkills(ctx));
|
|
34
|
+
await writeAgents(path.join(configRoot, "agents"), applyPullBasedPreludeMarkdown(getAllAgents()));
|
|
35
|
+
await writeSharedHooks(path.join(configRoot, "hooks"), "gemini");
|
|
36
|
+
await writeFile(path.join(configRoot, "settings.json"), resolvePlaceholders(getSettingsTemplate()));
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=gemini.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/configurators/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AAEtC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW;IAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACjE,SAAS,CAAC,WAAW,CAAC,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,2BAA2B,GAAG,CAAC,IAAI,sBAAsB,GAAG,CAAC,OAAO,SAAS,CAAC;QAC3F,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,uEAAuE;IACvE,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,WAAW,CACf,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,EACnC,oBAAoB,CAAC,GAAG,CAAC,EACzB,oBAAoB,CAAC,GAAG,CAAC,CAC1B,CAAC;IACF,MAAM,WAAW,CACf,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAC/B,6BAA6B,CAAC,YAAY,EAAE,CAAC,CAC9C,CAAC;IACF,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEjE,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EACtC,mBAAmB,CAAC,mBAAmB,EAAE,CAAC,CAC3C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform Registry — Single source of truth for platform functions and derived helpers
|
|
3
|
+
*
|
|
4
|
+
* All platform-specific lists (backup dirs, template dirs, configured platforms, etc.)
|
|
5
|
+
* are derived from AI_TOOLS in types/ai-tools.ts. Adding a new platform requires:
|
|
6
|
+
* 1. Adding to AI_TOOLS (data)
|
|
7
|
+
* 2. Adding to PLATFORM_FUNCTIONS below (behavior)
|
|
8
|
+
* 3. Creating the configurator file + template directory
|
|
9
|
+
*/
|
|
10
|
+
import { type AITool, type CliFlag } from "../types/ai-tools.js";
|
|
11
|
+
/** All platform IDs */
|
|
12
|
+
export declare const PLATFORM_IDS: AITool[];
|
|
13
|
+
/** All platform config directory names (e.g., [".claude", ".cursor", ".opencode"]) */
|
|
14
|
+
export declare const CONFIG_DIRS: string[];
|
|
15
|
+
/** All managed paths for every platform (primary configDir + extra managed paths). */
|
|
16
|
+
export declare const PLATFORM_MANAGED_DIRS: string[];
|
|
17
|
+
/** All directories managed by Trellis (including .trellis itself) */
|
|
18
|
+
export declare const ALL_MANAGED_DIRS: string[];
|
|
19
|
+
/**
|
|
20
|
+
* Detect which platforms are configured by checking for configDir existence.
|
|
21
|
+
*
|
|
22
|
+
* Note: Detection uses only `configDir` (the platform-specific directory),
|
|
23
|
+
* NOT shared layers like `.agents/skills/`. This prevents false positives
|
|
24
|
+
* where a shared directory triggers detection of a specific platform.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getConfiguredPlatforms(cwd: string): Set<AITool>;
|
|
27
|
+
/**
|
|
28
|
+
* Get platform IDs that have Python hooks (for Windows encoding detection)
|
|
29
|
+
*/
|
|
30
|
+
export declare function getPlatformsWithPythonHooks(): AITool[];
|
|
31
|
+
/**
|
|
32
|
+
* Check if a path starts with any managed directory
|
|
33
|
+
*/
|
|
34
|
+
export declare function isManagedPath(dirPath: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Check if a directory name is a managed root directory (should not be deleted)
|
|
37
|
+
*/
|
|
38
|
+
export declare function isManagedRootDir(dirName: string): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Get all managed paths for a platform.
|
|
41
|
+
*/
|
|
42
|
+
export declare function getPlatformManagedPaths(platformId: AITool): string[];
|
|
43
|
+
/**
|
|
44
|
+
* Get the configure function for a platform
|
|
45
|
+
*/
|
|
46
|
+
export declare function configurePlatform(platformId: AITool, cwd: string): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Collect template files for a specific platform (for update tracking).
|
|
49
|
+
* Returns undefined if the platform doesn't support template tracking.
|
|
50
|
+
*/
|
|
51
|
+
export declare function collectPlatformTemplates(platformId: AITool): Map<string, string> | undefined;
|
|
52
|
+
/**
|
|
53
|
+
* Build TOOLS array for interactive init prompt, derived from AI_TOOLS registry
|
|
54
|
+
*/
|
|
55
|
+
export declare function getInitToolChoices(): {
|
|
56
|
+
key: CliFlag;
|
|
57
|
+
name: string;
|
|
58
|
+
defaultChecked: boolean;
|
|
59
|
+
platformId: AITool;
|
|
60
|
+
}[];
|
|
61
|
+
/**
|
|
62
|
+
* Resolve CLI flag name to AITool id (e.g., "claude" → "claude-code")
|
|
63
|
+
*/
|
|
64
|
+
export declare function resolveCliFlag(flag: string): AITool | undefined;
|
|
65
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configurators/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAGL,KAAK,MAAM,EACX,KAAK,OAAO,EACb,MAAM,sBAAsB,CAAC;AAsb9B,uBAAuB;AACvB,eAAO,MAAM,YAAY,EAA4B,MAAM,EAAE,CAAC;AAE9D,sFAAsF;AACtF,eAAO,MAAM,WAAW,UAAmD,CAAC;AAE5E,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,UAEjC,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,UAAkD,CAAC;AAEhF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAQ/D;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,EAAE,CAEtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAMtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAEpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,GACjB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAGjC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI;IACpC,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,EAAE,CAOF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE/D"}
|