@mindfoldhq/trellis 0.4.0 → 0.5.0-beta.2
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/dist/cli/index.js +0 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/init.d.ts +0 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +2 -4
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/update.d.ts +5 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +100 -24
- package/dist/commands/update.js.map +1 -1
- package/dist/configurators/antigravity.d.ts +3 -4
- package/dist/configurators/antigravity.d.ts.map +1 -1
- package/dist/configurators/antigravity.js +17 -10
- package/dist/configurators/antigravity.js.map +1 -1
- package/dist/configurators/claude.d.ts +5 -28
- package/dist/configurators/claude.d.ts.map +1 -1
- package/dist/configurators/claude.js +30 -51
- package/dist/configurators/claude.js.map +1 -1
- package/dist/configurators/codebuddy.d.ts +6 -7
- package/dist/configurators/codebuddy.d.ts.map +1 -1
- package/dist/configurators/codebuddy.js +23 -51
- package/dist/configurators/codebuddy.js.map +1 -1
- package/dist/configurators/codex.d.ts +3 -6
- package/dist/configurators/codex.d.ts.map +1 -1
- package/dist/configurators/codex.js +29 -12
- package/dist/configurators/codex.js.map +1 -1
- package/dist/configurators/copilot.d.ts +6 -5
- package/dist/configurators/copilot.d.ts.map +1 -1
- package/dist/configurators/copilot.js +42 -13
- package/dist/configurators/copilot.js.map +1 -1
- package/dist/configurators/cursor.d.ts +6 -1
- package/dist/configurators/cursor.d.ts.map +1 -1
- package/dist/configurators/cursor.js +22 -45
- package/dist/configurators/cursor.js.map +1 -1
- package/dist/configurators/droid.d.ts +6 -1
- package/dist/configurators/droid.d.ts.map +1 -1
- package/dist/configurators/droid.js +23 -41
- package/dist/configurators/droid.js.map +1 -1
- package/dist/configurators/gemini.d.ts +8 -4
- package/dist/configurators/gemini.d.ts.map +1 -1
- package/dist/configurators/gemini.js +28 -47
- package/dist/configurators/gemini.js.map +1 -1
- package/dist/configurators/index.d.ts +1 -1
- package/dist/configurators/index.d.ts.map +1 -1
- package/dist/configurators/index.js +142 -98
- package/dist/configurators/index.js.map +1 -1
- package/dist/configurators/kilo.d.ts +3 -4
- package/dist/configurators/kilo.d.ts.map +1 -1
- package/dist/configurators/kilo.js +19 -46
- package/dist/configurators/kilo.js.map +1 -1
- package/dist/configurators/kiro.d.ts +4 -4
- package/dist/configurators/kiro.d.ts.map +1 -1
- package/dist/configurators/kiro.js +18 -14
- package/dist/configurators/kiro.js.map +1 -1
- package/dist/configurators/opencode.d.ts +3 -28
- package/dist/configurators/opencode.d.ts.map +1 -1
- package/dist/configurators/opencode.js +23 -48
- package/dist/configurators/opencode.js.map +1 -1
- package/dist/configurators/qoder.d.ts +6 -4
- package/dist/configurators/qoder.d.ts.map +1 -1
- package/dist/configurators/qoder.js +20 -47
- package/dist/configurators/qoder.js.map +1 -1
- package/dist/configurators/shared.d.ts +66 -3
- package/dist/configurators/shared.d.ts.map +1 -1
- package/dist/configurators/shared.js +251 -3
- package/dist/configurators/shared.js.map +1 -1
- package/dist/configurators/windsurf.d.ts +3 -4
- package/dist/configurators/windsurf.d.ts.map +1 -1
- package/dist/configurators/windsurf.js +17 -10
- package/dist/configurators/windsurf.js.map +1 -1
- package/dist/configurators/workflow.d.ts +0 -3
- package/dist/configurators/workflow.d.ts.map +1 -1
- package/dist/configurators/workflow.js +1 -7
- package/dist/configurators/workflow.js.map +1 -1
- package/dist/migrations/manifests/0.4.0.json +1 -1
- package/dist/migrations/manifests/0.5.0-beta.0.json +1644 -0
- package/dist/templates/claude/agents/check.md +2 -29
- package/dist/templates/claude/agents/research.md +70 -52
- package/dist/templates/claude/index.d.ts +5 -37
- package/dist/templates/claude/index.d.ts.map +1 -1
- package/dist/templates/claude/index.js +3 -42
- package/dist/templates/claude/index.js.map +1 -1
- package/dist/templates/claude/settings.json +3 -4
- package/dist/templates/{iflow → codebuddy}/agents/check.md +3 -30
- package/dist/templates/{iflow → codebuddy}/agents/implement.md +1 -1
- package/dist/templates/codebuddy/agents/research.md +138 -0
- package/dist/templates/codebuddy/index.d.ts +6 -16
- package/dist/templates/codebuddy/index.d.ts.map +1 -1
- package/dist/templates/codebuddy/index.js +6 -36
- package/dist/templates/codebuddy/index.js.map +1 -1
- package/dist/templates/codebuddy/settings.json +59 -0
- package/dist/templates/codex/agents/research.toml +50 -16
- package/dist/templates/codex/config.toml +10 -0
- package/dist/templates/codex/hooks/session-start.py +65 -29
- package/dist/templates/codex/hooks.json +11 -0
- package/dist/templates/codex/index.d.ts +0 -1
- package/dist/templates/codex/index.d.ts.map +1 -1
- package/dist/templates/codex/index.js +1 -8
- package/dist/templates/codex/index.js.map +1 -1
- package/dist/templates/common/commands/continue.md +51 -0
- package/dist/templates/common/commands/finish-work.md +32 -0
- package/dist/templates/common/commands/start.md +56 -0
- package/dist/templates/common/index.d.ts +28 -0
- package/dist/templates/common/index.d.ts.map +1 -0
- package/dist/templates/common/index.js +55 -0
- package/dist/templates/common/index.js.map +1 -0
- package/dist/templates/{codebuddy/commands/trellis → common/skills}/brainstorm.md +4 -4
- package/dist/templates/{opencode/commands/trellis → common/skills}/break-loop.md +4 -4
- package/dist/templates/common/skills/check.md +87 -0
- package/dist/templates/{codebuddy/commands/trellis → common/skills}/update-spec.md +18 -21
- package/dist/templates/copilot/hooks/session-start.py +65 -29
- package/dist/templates/copilot/hooks.json +8 -0
- package/dist/templates/cursor/agents/check.md +95 -0
- package/dist/templates/cursor/agents/implement.md +95 -0
- package/dist/templates/cursor/agents/research.md +138 -0
- package/dist/templates/cursor/hooks.json +24 -0
- package/dist/templates/cursor/index.d.ts +6 -17
- package/dist/templates/cursor/index.d.ts.map +1 -1
- package/dist/templates/cursor/index.js +6 -37
- package/dist/templates/cursor/index.js.map +1 -1
- package/dist/templates/droid/droids/check.md +95 -0
- package/dist/templates/droid/droids/implement.md +95 -0
- package/dist/templates/droid/droids/research.md +138 -0
- package/dist/templates/droid/index.d.ts +7 -19
- package/dist/templates/droid/index.d.ts.map +1 -1
- package/dist/templates/droid/index.js +7 -39
- package/dist/templates/droid/index.js.map +1 -1
- package/dist/templates/droid/settings.json +59 -0
- package/dist/templates/extract.d.ts +7 -193
- package/dist/templates/extract.d.ts.map +1 -1
- package/dist/templates/extract.js +7 -310
- package/dist/templates/extract.js.map +1 -1
- package/dist/templates/gemini/agents/check.md +95 -0
- package/dist/templates/gemini/agents/implement.md +95 -0
- package/dist/templates/gemini/agents/research.md +138 -0
- package/dist/templates/gemini/index.d.ts +6 -14
- package/dist/templates/gemini/index.d.ts.map +1 -1
- package/dist/templates/gemini/index.js +6 -37
- package/dist/templates/gemini/index.js.map +1 -1
- package/dist/templates/gemini/settings.json +28 -0
- package/dist/templates/kiro/agents/check.json +13 -0
- package/dist/templates/kiro/agents/implement.json +13 -0
- package/dist/templates/kiro/agents/research.json +21 -0
- package/dist/templates/kiro/index.d.ts +11 -11
- package/dist/templates/kiro/index.d.ts.map +1 -1
- package/dist/templates/kiro/index.js +11 -33
- package/dist/templates/kiro/index.js.map +1 -1
- package/dist/templates/opencode/agents/check.md +3 -30
- package/dist/templates/opencode/agents/implement.md +1 -1
- package/dist/templates/opencode/agents/research.md +1 -2
- package/dist/templates/opencode/plugins/inject-subagent-context.js +9 -183
- package/dist/templates/opencode/plugins/inject-workflow-state.js +160 -0
- package/dist/templates/opencode/plugins/session-start.js +71 -32
- package/dist/templates/qoder/agents/check.md +95 -0
- package/dist/templates/qoder/agents/implement.md +95 -0
- package/dist/templates/qoder/agents/research.md +138 -0
- package/dist/templates/qoder/index.d.ts +7 -10
- package/dist/templates/qoder/index.d.ts.map +1 -1
- package/dist/templates/qoder/index.js +7 -32
- package/dist/templates/qoder/index.js.map +1 -1
- package/dist/templates/qoder/settings.json +47 -0
- package/dist/templates/shared-hooks/index.d.ts +19 -0
- package/dist/templates/shared-hooks/index.d.ts.map +1 -0
- package/dist/templates/shared-hooks/index.js +30 -0
- package/dist/templates/shared-hooks/index.js.map +1 -0
- package/dist/templates/{iflow/hooks → shared-hooks}/inject-subagent-context.py +74 -263
- package/dist/templates/shared-hooks/inject-workflow-state.py +231 -0
- package/dist/templates/{claude/hooks → shared-hooks}/session-start.py +162 -55
- 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/index.d.ts +1 -14
- package/dist/templates/trellis/index.d.ts.map +1 -1
- package/dist/templates/trellis/index.js +2 -27
- package/dist/templates/trellis/index.js.map +1 -1
- package/dist/templates/trellis/scripts/common/cli_adapter.py +2 -2
- package/dist/templates/trellis/scripts/common/config.py +126 -1
- package/dist/templates/trellis/scripts/common/git_context.py +25 -2
- package/dist/templates/trellis/scripts/common/task_context.py +3 -23
- package/dist/templates/trellis/scripts/common/task_store.py +0 -12
- package/dist/templates/trellis/scripts/common/workflow_phase.py +176 -0
- package/dist/templates/trellis/scripts/task.py +6 -35
- package/dist/templates/trellis/workflow.md +274 -297
- package/dist/types/ai-tools.d.ts +21 -3
- package/dist/types/ai-tools.d.ts.map +1 -1
- package/dist/types/ai-tools.js +106 -15
- package/dist/types/ai-tools.js.map +1 -1
- package/dist/types/migration.d.ts +8 -1
- package/dist/types/migration.d.ts.map +1 -1
- package/package.json +3 -2
- package/dist/configurators/iflow.d.ts +0 -33
- package/dist/configurators/iflow.d.ts.map +0 -1
- package/dist/configurators/iflow.js +0 -99
- package/dist/configurators/iflow.js.map +0 -1
- package/dist/templates/antigravity/index.d.ts +0 -12
- package/dist/templates/antigravity/index.d.ts.map +0 -1
- package/dist/templates/antigravity/index.js +0 -29
- package/dist/templates/antigravity/index.js.map +0 -1
- package/dist/templates/claude/agents/debug.md +0 -106
- package/dist/templates/claude/agents/dispatch.md +0 -213
- package/dist/templates/claude/agents/plan.md +0 -396
- package/dist/templates/claude/commands/trellis/brainstorm.md +0 -487
- package/dist/templates/claude/commands/trellis/break-loop.md +0 -125
- package/dist/templates/claude/commands/trellis/check-cross-layer.md +0 -153
- package/dist/templates/claude/commands/trellis/check.md +0 -25
- package/dist/templates/claude/commands/trellis/create-command.md +0 -154
- package/dist/templates/claude/commands/trellis/finish-work.md +0 -153
- package/dist/templates/claude/commands/trellis/integrate-skill.md +0 -219
- package/dist/templates/claude/commands/trellis/onboard.md +0 -358
- package/dist/templates/claude/commands/trellis/parallel.md +0 -192
- package/dist/templates/claude/commands/trellis/record-session.md +0 -62
- package/dist/templates/claude/commands/trellis/start.md +0 -393
- package/dist/templates/claude/commands/trellis/update-spec.md +0 -354
- package/dist/templates/claude/hooks/inject-subagent-context.py +0 -803
- package/dist/templates/claude/hooks/ralph-loop.py +0 -396
- package/dist/templates/codebuddy/commands/trellis/before-dev.md +0 -29
- package/dist/templates/codebuddy/commands/trellis/break-loop.md +0 -107
- package/dist/templates/codebuddy/commands/trellis/check-cross-layer.md +0 -153
- package/dist/templates/codebuddy/commands/trellis/check.md +0 -25
- package/dist/templates/codebuddy/commands/trellis/create-command.md +0 -154
- package/dist/templates/codebuddy/commands/trellis/finish-work.md +0 -143
- package/dist/templates/codebuddy/commands/trellis/integrate-skill.md +0 -219
- package/dist/templates/codebuddy/commands/trellis/onboard.md +0 -358
- package/dist/templates/codebuddy/commands/trellis/record-session.md +0 -61
- package/dist/templates/codebuddy/commands/trellis/start.md +0 -373
- package/dist/templates/codex/codex-skills/parallel/SKILL.md +0 -194
- package/dist/templates/cursor/commands/trellis-before-dev.md +0 -29
- package/dist/templates/cursor/commands/trellis-brainstorm.md +0 -487
- package/dist/templates/cursor/commands/trellis-break-loop.md +0 -107
- package/dist/templates/cursor/commands/trellis-check-cross-layer.md +0 -153
- package/dist/templates/cursor/commands/trellis-check.md +0 -25
- package/dist/templates/cursor/commands/trellis-create-command.md +0 -154
- package/dist/templates/cursor/commands/trellis-finish-work.md +0 -143
- package/dist/templates/cursor/commands/trellis-integrate-skill.md +0 -219
- package/dist/templates/cursor/commands/trellis-onboard.md +0 -358
- package/dist/templates/cursor/commands/trellis-record-session.md +0 -62
- package/dist/templates/cursor/commands/trellis-start.md +0 -373
- package/dist/templates/cursor/commands/trellis-update-spec.md +0 -354
- package/dist/templates/droid/commands/trellis/before-dev.md +0 -33
- package/dist/templates/droid/commands/trellis/brainstorm.md +0 -491
- package/dist/templates/droid/commands/trellis/break-loop.md +0 -111
- package/dist/templates/droid/commands/trellis/check-cross-layer.md +0 -157
- package/dist/templates/droid/commands/trellis/check.md +0 -29
- package/dist/templates/droid/commands/trellis/create-command.md +0 -158
- package/dist/templates/droid/commands/trellis/finish-work.md +0 -147
- package/dist/templates/droid/commands/trellis/integrate-skill.md +0 -223
- package/dist/templates/droid/commands/trellis/onboard.md +0 -362
- package/dist/templates/droid/commands/trellis/record-session.md +0 -66
- package/dist/templates/droid/commands/trellis/start.md +0 -377
- package/dist/templates/droid/commands/trellis/update-spec.md +0 -358
- package/dist/templates/gemini/commands/trellis/before-dev.toml +0 -33
- package/dist/templates/gemini/commands/trellis/brainstorm.toml +0 -435
- package/dist/templates/gemini/commands/trellis/break-loop.toml +0 -129
- package/dist/templates/gemini/commands/trellis/check-cross-layer.toml +0 -147
- package/dist/templates/gemini/commands/trellis/check.toml +0 -29
- package/dist/templates/gemini/commands/trellis/create-command.toml +0 -119
- package/dist/templates/gemini/commands/trellis/finish-work.toml +0 -133
- package/dist/templates/gemini/commands/trellis/integrate-skill.toml +0 -104
- package/dist/templates/gemini/commands/trellis/onboard.toml +0 -111
- package/dist/templates/gemini/commands/trellis/record-session.toml +0 -66
- package/dist/templates/gemini/commands/trellis/start.toml +0 -354
- package/dist/templates/gemini/commands/trellis/update-spec.toml +0 -132
- package/dist/templates/iflow/agents/debug.md +0 -106
- package/dist/templates/iflow/agents/dispatch.md +0 -213
- package/dist/templates/iflow/agents/plan.md +0 -396
- package/dist/templates/iflow/agents/research.md +0 -120
- package/dist/templates/iflow/commands/trellis/before-dev.md +0 -29
- package/dist/templates/iflow/commands/trellis/brainstorm.md +0 -487
- package/dist/templates/iflow/commands/trellis/break-loop.md +0 -125
- package/dist/templates/iflow/commands/trellis/check-cross-layer.md +0 -153
- package/dist/templates/iflow/commands/trellis/check.md +0 -25
- package/dist/templates/iflow/commands/trellis/create-command.md +0 -152
- package/dist/templates/iflow/commands/trellis/finish-work.md +0 -153
- package/dist/templates/iflow/commands/trellis/integrate-skill.md +0 -219
- package/dist/templates/iflow/commands/trellis/onboard.md +0 -358
- package/dist/templates/iflow/commands/trellis/parallel.md +0 -192
- package/dist/templates/iflow/commands/trellis/record-session.md +0 -62
- package/dist/templates/iflow/commands/trellis/start.md +0 -393
- package/dist/templates/iflow/commands/trellis/update-spec.md +0 -354
- package/dist/templates/iflow/hooks/ralph-loop.py +0 -395
- package/dist/templates/iflow/hooks/session-start.py +0 -403
- package/dist/templates/iflow/index.d.ts +0 -54
- package/dist/templates/iflow/index.d.ts.map +0 -1
- package/dist/templates/iflow/index.js +0 -85
- package/dist/templates/iflow/index.js.map +0 -1
- package/dist/templates/iflow/settings.json +0 -60
- package/dist/templates/kilo/index.d.ts +0 -16
- package/dist/templates/kilo/index.d.ts.map +0 -1
- package/dist/templates/kilo/index.js +0 -39
- package/dist/templates/kilo/index.js.map +0 -1
- package/dist/templates/kilo/workflows/before-dev.md +0 -29
- package/dist/templates/kilo/workflows/brainstorm.md +0 -487
- package/dist/templates/kilo/workflows/break-loop.md +0 -125
- package/dist/templates/kilo/workflows/check-cross-layer.md +0 -153
- package/dist/templates/kilo/workflows/check.md +0 -25
- package/dist/templates/kilo/workflows/create-command.md +0 -152
- package/dist/templates/kilo/workflows/finish-work.md +0 -129
- package/dist/templates/kilo/workflows/integrate-skill.md +0 -219
- package/dist/templates/kilo/workflows/onboard.md +0 -358
- package/dist/templates/kilo/workflows/parallel.md +0 -193
- package/dist/templates/kilo/workflows/record-session.md +0 -62
- package/dist/templates/kilo/workflows/start.md +0 -387
- package/dist/templates/kilo/workflows/update-spec.md +0 -285
- package/dist/templates/kiro/skills/before-dev/SKILL.md +0 -34
- package/dist/templates/kiro/skills/brainstorm/SKILL.md +0 -492
- package/dist/templates/kiro/skills/break-loop/SKILL.md +0 -130
- package/dist/templates/kiro/skills/check/SKILL.md +0 -30
- package/dist/templates/kiro/skills/check-cross-layer/SKILL.md +0 -158
- package/dist/templates/kiro/skills/create-command/SKILL.md +0 -101
- package/dist/templates/kiro/skills/finish-work/SKILL.md +0 -148
- package/dist/templates/kiro/skills/integrate-skill/SKILL.md +0 -221
- package/dist/templates/kiro/skills/onboard/SKILL.md +0 -363
- package/dist/templates/kiro/skills/record-session/SKILL.md +0 -67
- package/dist/templates/kiro/skills/start/SKILL.md +0 -351
- package/dist/templates/kiro/skills/update-spec/SKILL.md +0 -335
- package/dist/templates/opencode/agents/debug.md +0 -129
- package/dist/templates/opencode/agents/dispatch.md +0 -223
- package/dist/templates/opencode/agents/trellis-plan.md +0 -427
- package/dist/templates/opencode/commands/trellis/before-dev.md +0 -29
- package/dist/templates/opencode/commands/trellis/brainstorm.md +0 -487
- package/dist/templates/opencode/commands/trellis/check-cross-layer.md +0 -153
- package/dist/templates/opencode/commands/trellis/check.md +0 -25
- package/dist/templates/opencode/commands/trellis/create-command.md +0 -154
- package/dist/templates/opencode/commands/trellis/finish-work.md +0 -144
- package/dist/templates/opencode/commands/trellis/integrate-skill.md +0 -219
- package/dist/templates/opencode/commands/trellis/migrate-specs.md +0 -0
- package/dist/templates/opencode/commands/trellis/onboard.md +0 -358
- package/dist/templates/opencode/commands/trellis/parallel.md +0 -193
- package/dist/templates/opencode/commands/trellis/record-session.md +0 -62
- package/dist/templates/opencode/commands/trellis/start.md +0 -351
- package/dist/templates/opencode/commands/trellis/update-spec.md +0 -354
- package/dist/templates/qoder/skills/before-dev/SKILL.md +0 -34
- package/dist/templates/qoder/skills/brainstorm/SKILL.md +0 -492
- package/dist/templates/qoder/skills/break-loop/SKILL.md +0 -130
- package/dist/templates/qoder/skills/check/SKILL.md +0 -30
- package/dist/templates/qoder/skills/check-cross-layer/SKILL.md +0 -158
- package/dist/templates/qoder/skills/create-command/SKILL.md +0 -101
- package/dist/templates/qoder/skills/finish-work/SKILL.md +0 -134
- package/dist/templates/qoder/skills/integrate-skill/SKILL.md +0 -221
- package/dist/templates/qoder/skills/onboard/SKILL.md +0 -363
- package/dist/templates/qoder/skills/record-session/SKILL.md +0 -67
- package/dist/templates/qoder/skills/start/SKILL.md +0 -388
- package/dist/templates/qoder/skills/update-spec/SKILL.md +0 -290
- package/dist/templates/trellis/scripts/common/phase.py +0 -254
- package/dist/templates/trellis/scripts/common/registry.py +0 -335
- package/dist/templates/trellis/scripts/common/worktree.py +0 -305
- package/dist/templates/trellis/scripts/multi_agent/__init__.py +0 -5
- package/dist/templates/trellis/scripts/multi_agent/_bootstrap.py +0 -17
- package/dist/templates/trellis/scripts/multi_agent/cleanup.py +0 -398
- package/dist/templates/trellis/scripts/multi_agent/create_pr.py +0 -620
- package/dist/templates/trellis/scripts/multi_agent/plan.py +0 -213
- package/dist/templates/trellis/scripts/multi_agent/start.py +0 -539
- package/dist/templates/trellis/scripts/multi_agent/status.py +0 -76
- package/dist/templates/trellis/scripts/multi_agent/status_display.py +0 -542
- package/dist/templates/trellis/scripts/multi_agent/status_monitor.py +0 -225
- package/dist/templates/trellis/scripts-shell-archive/add-session.sh +0 -384
- package/dist/templates/trellis/scripts-shell-archive/common/developer.sh +0 -129
- package/dist/templates/trellis/scripts-shell-archive/common/git-context.sh +0 -263
- package/dist/templates/trellis/scripts-shell-archive/common/paths.sh +0 -208
- package/dist/templates/trellis/scripts-shell-archive/common/phase.sh +0 -150
- package/dist/templates/trellis/scripts-shell-archive/common/registry.sh +0 -247
- package/dist/templates/trellis/scripts-shell-archive/common/task-queue.sh +0 -142
- package/dist/templates/trellis/scripts-shell-archive/common/task-utils.sh +0 -151
- package/dist/templates/trellis/scripts-shell-archive/common/worktree.sh +0 -128
- package/dist/templates/trellis/scripts-shell-archive/create-bootstrap.sh +0 -299
- package/dist/templates/trellis/scripts-shell-archive/get-context.sh +0 -7
- package/dist/templates/trellis/scripts-shell-archive/get-developer.sh +0 -15
- package/dist/templates/trellis/scripts-shell-archive/init-developer.sh +0 -34
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/cleanup.sh +0 -396
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/create-pr.sh +0 -241
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/plan.sh +0 -207
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/start.sh +0 -317
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/status.sh +0 -828
- package/dist/templates/trellis/scripts-shell-archive/task.sh +0 -1204
- package/dist/templates/trellis/worktree.yaml +0 -47
- package/dist/templates/windsurf/index.d.ts +0 -21
- package/dist/templates/windsurf/index.d.ts.map +0 -1
- package/dist/templates/windsurf/index.js +0 -44
- package/dist/templates/windsurf/index.js.map +0 -1
- package/dist/templates/windsurf/workflows/trellis-before-dev.md +0 -31
- package/dist/templates/windsurf/workflows/trellis-brainstorm.md +0 -491
- package/dist/templates/windsurf/workflows/trellis-break-loop.md +0 -111
- package/dist/templates/windsurf/workflows/trellis-check-cross-layer.md +0 -157
- package/dist/templates/windsurf/workflows/trellis-check.md +0 -27
- package/dist/templates/windsurf/workflows/trellis-create-command.md +0 -154
- package/dist/templates/windsurf/workflows/trellis-finish-work.md +0 -147
- package/dist/templates/windsurf/workflows/trellis-integrate-skill.md +0 -220
- package/dist/templates/windsurf/workflows/trellis-onboard.md +0 -362
- package/dist/templates/windsurf/workflows/trellis-record-session.md +0 -66
- package/dist/templates/windsurf/workflows/trellis-start.md +0 -373
- package/dist/templates/windsurf/workflows/trellis-update-spec.md +0 -358
- /package/dist/templates/{claude/commands/trellis → common/skills}/before-dev.md +0 -0
- /package/dist/templates/{claude/hooks → shared-hooks}/statusline.py +0 -0
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Configure Codex by writing:
|
|
3
|
-
* - .agents/skills
|
|
4
|
-
* - .codex/skills
|
|
5
|
-
* - .codex/agents
|
|
6
|
-
* - .codex/hooks/session-start.py
|
|
7
|
-
* - .codex/hooks.json
|
|
8
|
-
* - .codex/config.toml
|
|
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
|
|
9
6
|
*/
|
|
10
7
|
export declare function configureCodex(cwd: string): Promise<void>;
|
|
11
8
|
//# sourceMappingURL=codex.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/configurators/codex.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/configurators/codex.ts"],"names":[],"mappings":"AAiBA;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0E/D"}
|
|
@@ -1,27 +1,25 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import {
|
|
2
|
+
import { AI_TOOLS } from "../types/ai-tools.js";
|
|
3
|
+
import { getAllAgents, getAllCodexSkills, getAllHooks, getConfigTemplate, getHooksConfig, } from "../templates/codex/index.js";
|
|
3
4
|
import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
4
|
-
import { resolvePlaceholders } from "./shared.js";
|
|
5
|
+
import { resolvePlaceholders, resolveAllAsSkills, applyPullBasedPreludeToml, writeSharedHooks, } from "./shared.js";
|
|
5
6
|
/**
|
|
6
7
|
* Configure Codex by writing:
|
|
7
|
-
* - .agents/skills
|
|
8
|
-
* - .codex/skills
|
|
9
|
-
* - .codex/agents
|
|
10
|
-
* - .codex/hooks/session-start.py
|
|
11
|
-
* - .codex/hooks.json
|
|
12
|
-
* - .codex/config.toml
|
|
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
|
|
13
11
|
*/
|
|
14
12
|
export async function configureCodex(cwd) {
|
|
15
|
-
// Shared skills → .agents/skills/
|
|
13
|
+
// Shared skills from common source → .agents/skills/
|
|
16
14
|
const sharedSkillsRoot = path.join(cwd, ".agents", "skills");
|
|
17
15
|
ensureDir(sharedSkillsRoot);
|
|
18
|
-
for (const skill of
|
|
16
|
+
for (const skill of resolveAllAsSkills(AI_TOOLS.codex.templateContext)) {
|
|
19
17
|
const skillDir = path.join(sharedSkillsRoot, skill.name);
|
|
20
18
|
ensureDir(skillDir);
|
|
21
19
|
await writeFile(path.join(skillDir, "SKILL.md"), skill.content);
|
|
22
20
|
}
|
|
23
21
|
const codexRoot = path.join(cwd, ".codex");
|
|
24
|
-
// Codex-specific skills → .codex/skills/
|
|
22
|
+
// Codex-specific skills (platform-specific) → .codex/skills/
|
|
25
23
|
const codexSkillsRoot = path.join(codexRoot, "skills");
|
|
26
24
|
ensureDir(codexSkillsRoot);
|
|
27
25
|
for (const skill of getAllCodexSkills()) {
|
|
@@ -32,17 +30,36 @@ export async function configureCodex(cwd) {
|
|
|
32
30
|
// Custom agents → .codex/agents/
|
|
33
31
|
const codexAgentsRoot = path.join(codexRoot, "agents");
|
|
34
32
|
ensureDir(codexAgentsRoot);
|
|
35
|
-
|
|
33
|
+
// Codex is a class-2 (pull-based) platform: PreToolUse only fires for Bash
|
|
34
|
+
// and CollabAgentSpawn hook is not implemented (#15486). Sub-agents must
|
|
35
|
+
// load Trellis context themselves via the prelude injected here.
|
|
36
|
+
for (const agent of applyPullBasedPreludeToml(getAllAgents())) {
|
|
36
37
|
await writeFile(path.join(codexAgentsRoot, `${agent.name}.toml`), agent.content);
|
|
37
38
|
}
|
|
38
39
|
// Hooks → .codex/hooks/
|
|
39
40
|
const hooksDir = path.join(codexRoot, "hooks");
|
|
40
41
|
ensureDir(hooksDir);
|
|
42
|
+
// Codex-specific hooks (e.g., session-start.py tailored for Codex)
|
|
41
43
|
for (const hook of getAllHooks()) {
|
|
42
44
|
await writeFile(path.join(hooksDir, hook.name), hook.content);
|
|
43
45
|
}
|
|
46
|
+
// Shared hooks (inject-workflow-state.py etc.) — Codex hooks.json references
|
|
47
|
+
// these paths. inject-subagent-context.py is skipped because Codex sub-agents
|
|
48
|
+
// can't reliably receive hook-modified prompts (class-2 pull-based).
|
|
49
|
+
await writeSharedHooks(hooksDir, {
|
|
50
|
+
exclude: ["session-start.py", "inject-subagent-context.py"],
|
|
51
|
+
});
|
|
44
52
|
// Hooks config → .codex/hooks.json
|
|
45
53
|
await writeFile(path.join(codexRoot, "hooks.json"), resolvePlaceholders(getHooksConfig()));
|
|
54
|
+
// NOTE: Codex hooks require `features.codex_hooks = true` in the user's
|
|
55
|
+
// ~/.codex/config.toml. Without this flag the hooks.json is ignored and
|
|
56
|
+
// inject-workflow-state.py will never fire. This prerequisite is documented
|
|
57
|
+
// in spec/cli/backend/platform-integration.md.
|
|
58
|
+
if (!process.env.VITEST && !process.env.TRELLIS_QUIET) {
|
|
59
|
+
process.stderr.write("⚠️ Codex hooks require `features.codex_hooks = true` in your " +
|
|
60
|
+
"~/.codex/config.toml. Without it the Trellis workflow breadcrumb " +
|
|
61
|
+
"won't fire. See Trellis docs for details.\n");
|
|
62
|
+
}
|
|
46
63
|
// Config → .codex/config.toml
|
|
47
64
|
const config = getConfigTemplate();
|
|
48
65
|
await writeFile(path.join(codexRoot, config.targetPath), config.content);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/configurators/codex.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/configurators/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Configure GitHub Copilot
|
|
3
|
-
* -
|
|
4
|
-
* -
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
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
|
|
7
8
|
*/
|
|
8
9
|
export declare function configureCopilot(cwd: string): Promise<void>;
|
|
9
10
|
//# sourceMappingURL=copilot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../src/configurators/copilot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../src/configurators/copilot.ts"],"names":[],"mappings":"AAYA;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0DjE"}
|
|
@@ -1,32 +1,61 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import {
|
|
2
|
+
import { AI_TOOLS } from "../types/ai-tools.js";
|
|
3
|
+
import { getAllHooks, getHooksConfig } from "../templates/copilot/index.js";
|
|
3
4
|
import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
4
|
-
import { resolvePlaceholders } from "./shared.js";
|
|
5
|
+
import { resolvePlaceholders, resolveCommands, resolveSkills, applyPullBasedPreludeMarkdown, } from "./shared.js";
|
|
6
|
+
import { getSharedHookScripts } from "../templates/shared-hooks/index.js";
|
|
5
7
|
/**
|
|
6
|
-
* Configure GitHub Copilot
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
10
|
-
* -
|
|
8
|
+
* Configure GitHub Copilot:
|
|
9
|
+
* - prompts/ — start + finish-work as prompt files
|
|
10
|
+
* - skills/trellis-{name}/SKILL.md — other 5 as auto-triggered skills
|
|
11
|
+
* - agents/{name}.agent.md — sub-agent definitions (note .agent.md suffix)
|
|
12
|
+
* - copilot/hooks/ — platform-specific + shared hook scripts
|
|
13
|
+
* - hooks config — hooks.json
|
|
11
14
|
*/
|
|
12
15
|
export async function configureCopilot(cwd) {
|
|
16
|
+
const config = AI_TOOLS.copilot;
|
|
17
|
+
const ctx = config.templateContext;
|
|
13
18
|
const copilotRoot = path.join(cwd, ".github", "copilot");
|
|
14
|
-
// Prompt files → .github/prompts/*.prompt.md
|
|
15
19
|
const promptsDir = path.join(cwd, ".github", "prompts");
|
|
16
20
|
ensureDir(promptsDir);
|
|
17
|
-
for (const
|
|
18
|
-
await writeFile(path.join(promptsDir, `${
|
|
21
|
+
for (const cmd of resolveCommands(ctx)) {
|
|
22
|
+
await writeFile(path.join(promptsDir, `${cmd.name}.prompt.md`), cmd.content);
|
|
19
23
|
}
|
|
20
|
-
//
|
|
24
|
+
// Skills
|
|
25
|
+
const skillsDir = path.join(cwd, ".github", "skills");
|
|
26
|
+
ensureDir(skillsDir);
|
|
27
|
+
for (const skill of resolveSkills(ctx)) {
|
|
28
|
+
const skillDir = path.join(skillsDir, skill.name);
|
|
29
|
+
ensureDir(skillDir);
|
|
30
|
+
await writeFile(path.join(skillDir, "SKILL.md"), skill.content);
|
|
31
|
+
}
|
|
32
|
+
const agentsDir = path.join(cwd, ".github", "agents");
|
|
33
|
+
ensureDir(agentsDir);
|
|
34
|
+
// Copilot is a class-2 (pull-based) platform: hook events don't reliably
|
|
35
|
+
// fire for sub-agents (#2392/#2540). Reuse Cursor's agent content and
|
|
36
|
+
// prepend the pull-based prelude so sub-agents Read Trellis context themselves.
|
|
37
|
+
const { getAllAgents: getCursorAgents } = await import("../templates/cursor/index.js");
|
|
38
|
+
for (const agent of applyPullBasedPreludeMarkdown(getCursorAgents())) {
|
|
39
|
+
await writeFile(path.join(agentsDir, `${agent.name}.agent.md`), agent.content);
|
|
40
|
+
}
|
|
41
|
+
// Platform-specific hook scripts (Copilot's own session-start.py)
|
|
21
42
|
const hooksDir = path.join(copilotRoot, "hooks");
|
|
22
43
|
ensureDir(hooksDir);
|
|
23
44
|
for (const hook of getAllHooks()) {
|
|
24
45
|
await writeFile(path.join(hooksDir, hook.name), hook.content);
|
|
25
46
|
}
|
|
26
|
-
//
|
|
47
|
+
// Shared hook scripts: skip session-start (Copilot has its own) and
|
|
48
|
+
// inject-subagent-context (Copilot is pull-based, hook can't reach sub-agents)
|
|
49
|
+
for (const hook of getSharedHookScripts()) {
|
|
50
|
+
if (hook.name === "session-start.py")
|
|
51
|
+
continue;
|
|
52
|
+
if (hook.name === "inject-subagent-context.py")
|
|
53
|
+
continue;
|
|
54
|
+
await writeFile(path.join(hooksDir, hook.name), hook.content);
|
|
55
|
+
}
|
|
56
|
+
// Hooks config
|
|
27
57
|
const resolvedConfig = resolvePlaceholders(getHooksConfig());
|
|
28
58
|
await writeFile(path.join(copilotRoot, "hooks.json"), resolvedConfig);
|
|
29
|
-
// Hooks config → .github/hooks/trellis.json (VS Code Copilot discovery)
|
|
30
59
|
const githubHooksDir = path.join(cwd, ".github", "hooks");
|
|
31
60
|
ensureDir(githubHooksDir);
|
|
32
61
|
await writeFile(path.join(githubHooksDir, "trellis.json"), resolvedConfig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/configurators/copilot.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/configurators/copilot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Configure Cursor
|
|
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)
|
|
3
8
|
*/
|
|
4
9
|
export declare function configureCursor(cwd: string): Promise<void>;
|
|
5
10
|
//# sourceMappingURL=cursor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/configurators/cursor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/configurators/cursor.ts"],"names":[],"mappings":"AAaA;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBhE"}
|
|
@@ -1,52 +1,29 @@
|
|
|
1
|
-
import { readFileSync, readdirSync, statSync } from "node:fs";
|
|
2
1
|
import path from "node:path";
|
|
3
|
-
import {
|
|
2
|
+
import { AI_TOOLS } from "../types/ai-tools.js";
|
|
4
3
|
import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
4
|
+
import { resolvePlaceholders, resolveCommands, resolveSkills, writeSkills, writeAgents, writeSharedHooks, } from "./shared.js";
|
|
5
|
+
import { getAllAgents, getHooksConfig } from "../templates/cursor/index.js";
|
|
5
6
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
*
|
|
12
|
-
*/
|
|
13
|
-
function shouldExclude(filename) {
|
|
14
|
-
for (const pattern of EXCLUDE_PATTERNS) {
|
|
15
|
-
if (filename.endsWith(pattern)) {
|
|
16
|
-
return true;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Recursively copy directory, excluding build artifacts
|
|
23
|
-
* Uses writeFile to handle file conflicts with the global writeMode setting
|
|
24
|
-
*/
|
|
25
|
-
async function copyDirFiltered(src, dest) {
|
|
26
|
-
ensureDir(dest);
|
|
27
|
-
for (const entry of readdirSync(src)) {
|
|
28
|
-
if (shouldExclude(entry)) {
|
|
29
|
-
continue;
|
|
30
|
-
}
|
|
31
|
-
const srcPath = path.join(src, entry);
|
|
32
|
-
const destPath = path.join(dest, entry);
|
|
33
|
-
const stat = statSync(srcPath);
|
|
34
|
-
if (stat.isDirectory()) {
|
|
35
|
-
await copyDirFiltered(srcPath, destPath);
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
const content = readFileSync(srcPath, "utf-8");
|
|
39
|
-
await writeFile(destPath, content);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Configure Cursor by copying from templates
|
|
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)
|
|
45
13
|
*/
|
|
46
14
|
export async function configureCursor(cwd) {
|
|
47
|
-
const
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
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));
|
|
24
|
+
await writeAgents(path.join(configRoot, "agents"), getAllAgents());
|
|
25
|
+
await writeSharedHooks(path.join(configRoot, "hooks"));
|
|
26
|
+
// Hooks config (separate file, not settings.json)
|
|
27
|
+
await writeFile(path.join(configRoot, "hooks.json"), resolvePlaceholders(getHooksConfig()));
|
|
51
28
|
}
|
|
52
29
|
//# sourceMappingURL=cursor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/configurators/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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,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,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,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,CAAC,CAAC;IAEvD,kDAAkD;IAClD,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EACnC,mBAAmB,CAAC,cAAc,EAAE,CAAC,CACtC,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Configure
|
|
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
|
|
3
8
|
*/
|
|
4
9
|
export declare function configureDroid(cwd: string): Promise<void>;
|
|
5
10
|
//# sourceMappingURL=droid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"droid.d.ts","sourceRoot":"","sources":["../../src/configurators/droid.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"droid.d.ts","sourceRoot":"","sources":["../../src/configurators/droid.ts"],"names":[],"mappings":"AAaA;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB/D"}
|
|
@@ -1,48 +1,30 @@
|
|
|
1
|
-
import { readFileSync, readdirSync, statSync } from "node:fs";
|
|
2
1
|
import path from "node:path";
|
|
3
|
-
import {
|
|
2
|
+
import { AI_TOOLS } from "../types/ai-tools.js";
|
|
4
3
|
import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
4
|
+
import { resolvePlaceholders, resolveCommands, resolveSkills, writeSkills, writeAgents, writeSharedHooks, } from "./shared.js";
|
|
5
|
+
import { getAllDroids, getSettingsTemplate } from "../templates/droid/index.js";
|
|
5
6
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (filename.endsWith(pattern)) {
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Recursively copy directory, excluding build artifacts.
|
|
20
|
-
* Uses writeFile so file conflicts honor the global writeMode setting.
|
|
21
|
-
*/
|
|
22
|
-
async function copyDirFiltered(src, dest) {
|
|
23
|
-
ensureDir(dest);
|
|
24
|
-
for (const entry of readdirSync(src)) {
|
|
25
|
-
if (shouldExclude(entry)) {
|
|
26
|
-
continue;
|
|
27
|
-
}
|
|
28
|
-
const srcPath = path.join(src, entry);
|
|
29
|
-
const destPath = path.join(dest, entry);
|
|
30
|
-
const stat = statSync(srcPath);
|
|
31
|
-
if (stat.isDirectory()) {
|
|
32
|
-
await copyDirFiltered(srcPath, destPath);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
const content = readFileSync(srcPath, "utf-8");
|
|
36
|
-
await writeFile(destPath, content);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Configure Droid (Factory.ai) by copying templates into .factory/.
|
|
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
|
|
42
13
|
*/
|
|
43
14
|
export async function configureDroid(cwd) {
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
|
|
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));
|
|
25
|
+
await writeAgents(path.join(configRoot, "droids"), getAllDroids());
|
|
26
|
+
await writeSharedHooks(path.join(configRoot, "hooks"));
|
|
27
|
+
const settings = getSettingsTemplate();
|
|
28
|
+
await writeFile(path.join(configRoot, settings.targetPath), resolvePlaceholders(settings.content));
|
|
47
29
|
}
|
|
48
30
|
//# sourceMappingURL=droid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"droid.js","sourceRoot":"","sources":["../../src/configurators/droid.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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,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,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,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,CAAC,CAAC;IAEvD,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"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Gemini CLI
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* Configure Gemini CLI (pull-based class-2 platform):
|
|
3
|
+
* - commands/trellis/ — start + finish-work as TOML slash commands
|
|
4
|
+
* - skills/trellis-{name}/SKILL.md — other 5 as auto-triggered skills
|
|
5
|
+
* - agents/{name}.md — sub-agent definitions, with pull-based prelude
|
|
6
|
+
* - hooks/*.py — session-start only (no inject-subagent-context.py — Gemini
|
|
7
|
+
* BeforeTool can fire but #18128 limits chain-of-thought visibility; sub-agents
|
|
8
|
+
* Read jsonl/prd themselves)
|
|
9
|
+
* - settings.json — hook configuration (SessionStart only)
|
|
6
10
|
*/
|
|
7
11
|
export declare function configureGemini(cwd: string): Promise<void>;
|
|
8
12
|
//# sourceMappingURL=gemini.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/configurators/gemini.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/configurators/gemini.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBhE"}
|
|
@@ -1,52 +1,33 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Gemini CLI configurator
|
|
3
|
-
*
|
|
4
|
-
* Configures Gemini CLI by copying templates from src/templates/gemini/.
|
|
5
|
-
* Gemini CLI uses TOML commands, no hooks/agents/settings.
|
|
6
|
-
*/
|
|
7
|
-
import { readFileSync, readdirSync, statSync } from "node:fs";
|
|
8
1
|
import path from "node:path";
|
|
9
|
-
import {
|
|
2
|
+
import { AI_TOOLS } from "../types/ai-tools.js";
|
|
10
3
|
import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (filename.endsWith(pattern) || filename === pattern) {
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return false;
|
|
28
|
-
}
|
|
29
|
-
async function copyDirFiltered(src, dest) {
|
|
30
|
-
ensureDir(dest);
|
|
31
|
-
for (const entry of readdirSync(src)) {
|
|
32
|
-
if (shouldExclude(entry)) {
|
|
33
|
-
continue;
|
|
34
|
-
}
|
|
35
|
-
const srcPath = path.join(src, entry);
|
|
36
|
-
const destPath = path.join(dest, entry);
|
|
37
|
-
const stat = statSync(srcPath);
|
|
38
|
-
if (stat.isDirectory()) {
|
|
39
|
-
await copyDirFiltered(srcPath, destPath);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
const content = readFileSync(srcPath, "utf-8");
|
|
43
|
-
await writeFile(destPath, content);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
4
|
+
import { resolvePlaceholders, resolveCommands, resolveSkills, 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
|
+
* - skills/trellis-{name}/SKILL.md — other 5 as auto-triggered skills
|
|
10
|
+
* - agents/{name}.md — sub-agent definitions, with pull-based prelude
|
|
11
|
+
* - hooks/*.py — session-start only (no inject-subagent-context.py — Gemini
|
|
12
|
+
* BeforeTool can fire but #18128 limits chain-of-thought visibility; sub-agents
|
|
13
|
+
* Read jsonl/prd themselves)
|
|
14
|
+
* - settings.json — hook configuration (SessionStart only)
|
|
15
|
+
*/
|
|
47
16
|
export async function configureGemini(cwd) {
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
|
|
17
|
+
const config = AI_TOOLS.gemini;
|
|
18
|
+
const ctx = config.templateContext;
|
|
19
|
+
const configRoot = path.join(cwd, config.configDir);
|
|
20
|
+
const commandsDir = path.join(configRoot, "commands", "trellis");
|
|
21
|
+
ensureDir(commandsDir);
|
|
22
|
+
for (const cmd of resolveCommands(ctx)) {
|
|
23
|
+
const toml = `description = "Trellis: ${cmd.name}"\n\nprompt = """\n${cmd.content}\n"""\n`;
|
|
24
|
+
await writeFile(path.join(commandsDir, `${cmd.name}.toml`), toml);
|
|
25
|
+
}
|
|
26
|
+
await writeSkills(path.join(configRoot, "skills"), resolveSkills(ctx));
|
|
27
|
+
await writeAgents(path.join(configRoot, "agents"), applyPullBasedPreludeMarkdown(getAllAgents()));
|
|
28
|
+
await writeSharedHooks(path.join(configRoot, "hooks"), {
|
|
29
|
+
exclude: ["inject-subagent-context.py"],
|
|
30
|
+
});
|
|
31
|
+
await writeFile(path.join(configRoot, "settings.json"), resolvePlaceholders(getSettingsTemplate()));
|
|
51
32
|
}
|
|
52
33
|
//# sourceMappingURL=gemini.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/configurators/gemini.ts"],"names":[],"mappings":"AAAA
|
|
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,aAAa,EACb,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AAEtC;;;;;;;;;GASG;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,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,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;QACrD,OAAO,EAAE,CAAC,4BAA4B,CAAC;KACxC,CAAC,CAAC;IAEH,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EACtC,mBAAmB,CAAC,mBAAmB,EAAE,CAAC,CAC3C,CAAC;AACJ,CAAC"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
import { type AITool, type CliFlag } from "../types/ai-tools.js";
|
|
11
11
|
/** All platform IDs */
|
|
12
12
|
export declare const PLATFORM_IDS: AITool[];
|
|
13
|
-
/** All platform config directory names (e.g., [".claude", ".cursor", ".
|
|
13
|
+
/** All platform config directory names (e.g., [".claude", ".cursor", ".opencode"]) */
|
|
14
14
|
export declare const CONFIG_DIRS: string[];
|
|
15
15
|
/** All managed paths for every platform (primary configDir + extra managed paths). */
|
|
16
16
|
export declare const PLATFORM_MANAGED_DIRS: string[];
|
|
@@ -1 +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;
|
|
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;AA0X9B,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,CAEjC;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"}
|