@mindfoldhq/trellis 0.4.0 → 0.5.0-beta.10
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 +10 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +382 -120
- 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 +178 -61
- 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 +146 -100
- 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 +7 -25
- package/dist/configurators/opencode.d.ts.map +1 -1
- package/dist/configurators/opencode.js +57 -56
- package/dist/configurators/opencode.js.map +1 -1
- package/dist/configurators/qoder.d.ts +6 -3
- package/dist/configurators/qoder.d.ts.map +1 -1
- package/dist/configurators/qoder.js +27 -46
- package/dist/configurators/qoder.js.map +1 -1
- package/dist/configurators/shared.d.ts +68 -3
- package/dist/configurators/shared.d.ts.map +1 -1
- package/dist/configurators/shared.js +274 -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 +1646 -0
- package/dist/migrations/manifests/0.5.0-beta.1.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/templates/claude/agents/{check.md → trellis-check.md} +3 -31
- package/dist/templates/claude/agents/{implement.md → trellis-implement.md} +1 -2
- package/dist/templates/claude/agents/trellis-research.md +137 -0
- 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 +6 -4
- package/dist/templates/{iflow/agents/check.md → codebuddy/agents/trellis-check.md} +3 -31
- package/dist/templates/{iflow/agents/implement.md → codebuddy/agents/trellis-implement.md} +1 -2
- package/dist/templates/codebuddy/agents/trellis-research.md +137 -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/trellis-check.toml +38 -0
- package/dist/templates/codex/agents/{implement.toml → trellis-implement.toml} +1 -1
- package/dist/templates/codex/agents/trellis-research.toml +60 -0
- 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/codex/skills/start/SKILL.md +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/{droid/commands/trellis → common/skills}/brainstorm.md +51 -12
- package/dist/templates/{iflow/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/copilot/prompts/start.prompt.md +13 -16
- package/dist/templates/cursor/agents/trellis-check.md +94 -0
- package/dist/templates/cursor/agents/trellis-implement.md +94 -0
- package/dist/templates/cursor/agents/trellis-research.md +137 -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/trellis-check.md +94 -0
- package/dist/templates/droid/droids/trellis-implement.md +94 -0
- package/dist/templates/droid/droids/trellis-research.md +137 -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/trellis-check.md +94 -0
- package/dist/templates/gemini/agents/trellis-implement.md +94 -0
- package/dist/templates/gemini/agents/trellis-research.md +137 -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/trellis-check.json +13 -0
- package/dist/templates/kiro/agents/trellis-implement.json +13 -0
- package/dist/templates/kiro/agents/trellis-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 → trellis-check.md} +3 -30
- package/dist/templates/opencode/agents/{implement.md → trellis-implement.md} +1 -1
- package/dist/templates/opencode/agents/{research.md → trellis-research.md} +1 -2
- package/dist/templates/opencode/plugins/inject-subagent-context.js +18 -190
- package/dist/templates/opencode/plugins/inject-workflow-state.js +172 -0
- package/dist/templates/opencode/plugins/session-start.js +76 -39
- package/dist/templates/qoder/agents/trellis-check.md +94 -0
- package/dist/templates/qoder/agents/trellis-implement.md +94 -0
- package/dist/templates/qoder/agents/trellis-research.md +137 -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 +77 -266
- package/dist/templates/shared-hooks/inject-workflow-state.py +244 -0
- package/dist/templates/{claude/hooks → shared-hooks}/session-start.py +172 -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/config.yaml +6 -0
- package/dist/templates/trellis/index.d.ts +1 -15
- package/dist/templates/trellis/index.d.ts.map +1 -1
- package/dist/templates/trellis/index.js +2 -29
- package/dist/templates/trellis/index.js.map +1 -1
- package/dist/templates/trellis/scripts/common/cli_adapter.py +31 -8
- 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 +23 -28
- package/dist/templates/trellis/scripts/common/task_store.py +0 -12
- package/dist/templates/trellis/scripts/common/types.py +0 -2
- package/dist/templates/trellis/scripts/common/workflow_phase.py +176 -0
- package/dist/templates/trellis/scripts/task.py +13 -35
- package/dist/templates/trellis/workflow.md +283 -298
- package/dist/types/ai-tools.d.ts +30 -3
- package/dist/types/ai-tools.d.ts.map +1 -1
- package/dist/types/ai-tools.js +119 -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/dist/utils/project-detector.d.ts +2 -0
- package/dist/utils/project-detector.d.ts.map +1 -1
- package/dist/utils/project-detector.js +120 -11
- package/dist/utils/project-detector.js.map +1 -1
- package/dist/utils/task-json.d.ts +46 -0
- package/dist/utils/task-json.d.ts.map +1 -0
- package/dist/utils/task-json.js +49 -0
- package/dist/utils/task-json.js.map +1 -0
- 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/agents/research.md +0 -120
- 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/brainstorm.md +0 -487
- 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/agents/check.toml +0 -23
- package/dist/templates/codex/agents/research.toml +0 -26
- 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/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/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/markdown/spec/backend/directory-structure.md +0 -292
- package/dist/templates/markdown/spec/backend/index.md +0 -40
- package/dist/templates/markdown/spec/backend/script-conventions.md +0 -742
- package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md +0 -118
- package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md +0 -394
- 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/break-loop.md +0 -125
- 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/create_bootstrap.py +0 -298
- 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,217 +1,31 @@
|
|
|
1
1
|
type TemplateCategory = "scripts" | "markdown" | "commands";
|
|
2
2
|
/**
|
|
3
|
-
* Get the path to the trellis templates directory.
|
|
4
|
-
*
|
|
5
|
-
* This reads from src/templates/trellis/ (development) or dist/templates/trellis/ (production).
|
|
6
|
-
* These are GENERIC templates, not the Trellis project's own .trellis/ configuration.
|
|
3
|
+
* Get the path to the trellis templates directory (.trellis/ scaffolding).
|
|
7
4
|
*/
|
|
8
5
|
export declare function getTrellisTemplatePath(): string;
|
|
9
|
-
/**
|
|
10
|
-
* @deprecated Use getTrellisTemplatePath() instead.
|
|
11
|
-
* This function is kept for backwards compatibility but now returns the template path.
|
|
12
|
-
*/
|
|
6
|
+
/** @deprecated Use getTrellisTemplatePath() instead. */
|
|
13
7
|
export declare function getTrellisSourcePath(): string;
|
|
14
8
|
/**
|
|
15
|
-
* Get the path to the
|
|
16
|
-
*
|
|
17
|
-
* This reads from src/templates/cursor/ (development) or dist/templates/cursor/ (production).
|
|
18
|
-
* These are GENERIC templates, not the Trellis project's own .cursor/ configuration.
|
|
19
|
-
*/
|
|
20
|
-
export declare function getCursorTemplatePath(): string;
|
|
21
|
-
/**
|
|
22
|
-
* @deprecated Use getCursorTemplatePath() instead.
|
|
23
|
-
*/
|
|
24
|
-
export declare function getCursorSourcePath(): string;
|
|
25
|
-
/**
|
|
26
|
-
* Get the path to the claude templates directory.
|
|
27
|
-
*
|
|
28
|
-
* This reads from src/templates/claude/ (development) or dist/templates/claude/ (production).
|
|
29
|
-
* These are GENERIC templates, not the Trellis project's own .claude/ configuration.
|
|
9
|
+
* Get the path to the claude templates directory (hooks, agents, settings).
|
|
30
10
|
*/
|
|
31
11
|
export declare function getClaudeTemplatePath(): string;
|
|
32
12
|
/**
|
|
33
|
-
* Get the path to the opencode templates directory.
|
|
34
|
-
*
|
|
35
|
-
* This reads from src/templates/opencode/ (development) or dist/templates/opencode/ (production).
|
|
36
|
-
* These are GENERIC templates, not the Trellis project's own .opencode/ configuration.
|
|
13
|
+
* Get the path to the opencode templates directory (agents, plugins, lib).
|
|
37
14
|
*/
|
|
38
15
|
export declare function getOpenCodeTemplatePath(): string;
|
|
39
16
|
/**
|
|
40
|
-
*
|
|
41
|
-
*/
|
|
42
|
-
export declare function getClaudeSourcePath(): string;
|
|
43
|
-
/**
|
|
44
|
-
* Get the path to the iflow templates directory.
|
|
45
|
-
*
|
|
46
|
-
* This reads from src/templates/iflow/ (development) or dist/templates/iflow/ (production).
|
|
47
|
-
* These are GENERIC templates, not the Trellis project's own .iflow/ configuration.
|
|
48
|
-
*/
|
|
49
|
-
export declare function getIflowTemplatePath(): string;
|
|
50
|
-
/**
|
|
51
|
-
* @deprecated Use getIflowTemplatePath() instead.
|
|
52
|
-
*/
|
|
53
|
-
export declare function getIflowSourcePath(): string;
|
|
54
|
-
/**
|
|
55
|
-
* Get the path to the Codex templates directory.
|
|
56
|
-
*
|
|
57
|
-
* This reads from src/templates/codex/ (development) or dist/templates/codex/ (production).
|
|
58
|
-
* These are GENERIC templates, not the Trellis project's own .agents/.codex configuration.
|
|
59
|
-
*/
|
|
60
|
-
export declare function getCodexTemplatePath(): string;
|
|
61
|
-
/**
|
|
62
|
-
* @deprecated Use getCodexTemplatePath() instead.
|
|
63
|
-
*/
|
|
64
|
-
export declare function getCodexSourcePath(): string;
|
|
65
|
-
/**
|
|
66
|
-
* Get the path to the kilo templates directory.
|
|
67
|
-
*
|
|
68
|
-
* This reads from src/templates/kilo/ (development) or dist/templates/kilo/ (production).
|
|
69
|
-
* These are GENERIC templates, not the Trellis project's own .kilo/ configuration.
|
|
70
|
-
*/
|
|
71
|
-
export declare function getKiloTemplatePath(): string;
|
|
72
|
-
/**
|
|
73
|
-
* Get the path to the kiro templates directory.
|
|
74
|
-
*
|
|
75
|
-
* This reads from src/templates/kiro/ (development) or dist/templates/kiro/ (production).
|
|
76
|
-
* These are GENERIC templates, not the Trellis project's own .kiro/ configuration.
|
|
77
|
-
*/
|
|
78
|
-
export declare function getKiroTemplatePath(): string;
|
|
79
|
-
/**
|
|
80
|
-
* @deprecated Use getKiroTemplatePath() instead.
|
|
81
|
-
*/
|
|
82
|
-
export declare function getKiroSourcePath(): string;
|
|
83
|
-
/**
|
|
84
|
-
* Get the path to the antigravity templates directory.
|
|
85
|
-
*
|
|
86
|
-
* This reads from src/templates/antigravity/ (development) or dist/templates/antigravity/ (production).
|
|
87
|
-
* These are GENERIC templates, not the Trellis project's own .agent/workflows configuration.
|
|
88
|
-
*/
|
|
89
|
-
export declare function getAntigravityTemplatePath(): string;
|
|
90
|
-
/**
|
|
91
|
-
* @deprecated Use getAntigravityTemplatePath() instead.
|
|
92
|
-
*/
|
|
93
|
-
export declare function getAntigravitySourcePath(): string;
|
|
94
|
-
/**
|
|
95
|
-
* Get the path to the windsurf templates directory.
|
|
96
|
-
*
|
|
97
|
-
* This reads from src/templates/windsurf/ (development) or dist/templates/windsurf/ (production).
|
|
98
|
-
* These are GENERIC templates, not the Trellis project's own .windsurf/workflows configuration.
|
|
99
|
-
*/
|
|
100
|
-
export declare function getWindsurfTemplatePath(): string;
|
|
101
|
-
/**
|
|
102
|
-
* @deprecated Use getWindsurfTemplatePath() instead.
|
|
103
|
-
*/
|
|
104
|
-
export declare function getWindsurfSourcePath(): string;
|
|
105
|
-
/**
|
|
106
|
-
* Get the path to the qoder templates directory.
|
|
107
|
-
*
|
|
108
|
-
* This reads from src/templates/qoder/ (development) or dist/templates/qoder/ (production).
|
|
109
|
-
* These are GENERIC templates, not the Trellis project's own .qoder/ configuration.
|
|
110
|
-
*/
|
|
111
|
-
export declare function getQoderTemplatePath(): string;
|
|
112
|
-
/**
|
|
113
|
-
* Get the path to the codebuddy templates directory.
|
|
114
|
-
*
|
|
115
|
-
* This reads from src/templates/codebuddy/ (development) or dist/templates/codebuddy/ (production).
|
|
116
|
-
* These are GENERIC templates, not the Trellis project's own .codebuddy/ configuration.
|
|
117
|
-
*/
|
|
118
|
-
export declare function getCodebuddyTemplatePath(): string;
|
|
119
|
-
/**
|
|
120
|
-
* Get the path to the droid templates directory.
|
|
121
|
-
*
|
|
122
|
-
* This reads from src/templates/droid/ (development) or dist/templates/droid/ (production).
|
|
123
|
-
* These are GENERIC templates, not the Trellis project's own .factory/ configuration.
|
|
124
|
-
*/
|
|
125
|
-
export declare function getDroidTemplatePath(): string;
|
|
126
|
-
/**
|
|
127
|
-
* @deprecated Use getDroidTemplatePath() instead.
|
|
128
|
-
*/
|
|
129
|
-
export declare function getDroidSourcePath(): string;
|
|
130
|
-
/**
|
|
131
|
-
* Get the path to the copilot templates directory.
|
|
132
|
-
*
|
|
133
|
-
* This reads from src/templates/copilot/ (development) or dist/templates/copilot/ (production).
|
|
134
|
-
* These are GENERIC templates, not the Trellis project's own .github/copilot/ configuration.
|
|
135
|
-
*/
|
|
136
|
-
export declare function getCopilotTemplatePath(): string;
|
|
137
|
-
/**
|
|
138
|
-
* Read a file from the .trellis directory
|
|
139
|
-
* @param relativePath - Path relative to .trellis/ (e.g., 'scripts/task.py')
|
|
140
|
-
* @returns File content as string
|
|
17
|
+
* Read a file from the trellis template directory.
|
|
141
18
|
*/
|
|
142
19
|
export declare function readTrellisFile(relativePath: string): string;
|
|
143
20
|
/**
|
|
144
|
-
* Read template content from a
|
|
145
|
-
* @param category - Template category (only 'commands' uses .txt files now)
|
|
146
|
-
* @param filename - Template filename (e.g., 'common/finish-work.txt')
|
|
147
|
-
* @returns File content as string
|
|
21
|
+
* Read template content from a category directory.
|
|
148
22
|
*/
|
|
149
23
|
export declare function readTemplate(category: TemplateCategory, filename: string): string;
|
|
150
|
-
/**
|
|
151
|
-
* Helper to read script template from .trellis/scripts/
|
|
152
|
-
* @param relativePath - Path relative to .trellis/scripts/ (e.g., 'task.py')
|
|
153
|
-
*/
|
|
154
24
|
export declare function readScript(relativePath: string): string;
|
|
155
|
-
/**
|
|
156
|
-
* Helper to read markdown template from .trellis/
|
|
157
|
-
* @param relativePath - Path relative to .trellis/ (e.g., 'workflow.md')
|
|
158
|
-
*/
|
|
159
25
|
export declare function readMarkdown(relativePath: string): string;
|
|
160
|
-
/**
|
|
161
|
-
* Helper to read command template (these still use .txt files in src/templates/commands/)
|
|
162
|
-
*/
|
|
163
26
|
export declare function readCommand(filename: string): string;
|
|
164
27
|
/**
|
|
165
|
-
*
|
|
166
|
-
* @param relativePath - Path relative to .cursor/ (e.g., 'commands/start.md')
|
|
167
|
-
* @returns File content as string
|
|
168
|
-
*/
|
|
169
|
-
export declare function readCursorFile(relativePath: string): string;
|
|
170
|
-
/**
|
|
171
|
-
* Read a file from the .claude directory (dogfooding)
|
|
172
|
-
* @param relativePath - Path relative to .claude/ (e.g., 'commands/start.md')
|
|
173
|
-
* @returns File content as string
|
|
174
|
-
*/
|
|
175
|
-
export declare function readClaudeFile(relativePath: string): string;
|
|
176
|
-
/**
|
|
177
|
-
* @deprecated Use getOpenCodeTemplatePath() instead.
|
|
178
|
-
*/
|
|
179
|
-
export declare function getOpenCodeSourcePath(): string;
|
|
180
|
-
/**
|
|
181
|
-
* Read a file from the .opencode directory (dogfooding)
|
|
182
|
-
* @param relativePath - Path relative to .opencode/ (e.g., 'commands/start.md')
|
|
183
|
-
* @returns File content as string
|
|
184
|
-
*/
|
|
185
|
-
export declare function readOpenCodeFile(relativePath: string): string;
|
|
186
|
-
/**
|
|
187
|
-
* Read a file from the .kilo directory (dogfooding)
|
|
188
|
-
* @param relativePath - Path relative to .kilo/ (e.g., 'commands/start.md')
|
|
189
|
-
* @returns File content as string
|
|
190
|
-
*/
|
|
191
|
-
export declare function readKiloFile(relativePath: string): string;
|
|
192
|
-
/**
|
|
193
|
-
* Get the path to the gemini templates directory.
|
|
194
|
-
*
|
|
195
|
-
* This reads from src/templates/gemini/ (development) or dist/templates/gemini/ (production).
|
|
196
|
-
* These are GENERIC templates, not the Trellis project's own .gemini/ configuration.
|
|
197
|
-
*/
|
|
198
|
-
export declare function getGeminiTemplatePath(): string;
|
|
199
|
-
/**
|
|
200
|
-
* @deprecated Use getGeminiTemplatePath() instead.
|
|
201
|
-
*/
|
|
202
|
-
export declare function getGeminiSourcePath(): string;
|
|
203
|
-
/**
|
|
204
|
-
* Read a file from the .gemini directory (dogfooding)
|
|
205
|
-
* @param relativePath - Path relative to .gemini/ (e.g., 'commands/trellis/start.toml')
|
|
206
|
-
* @returns File content as string
|
|
207
|
-
*/
|
|
208
|
-
export declare function readGeminiFile(relativePath: string): string;
|
|
209
|
-
/**
|
|
210
|
-
* Copy a directory from .trellis/ to target, making scripts executable
|
|
211
|
-
* Uses writeFile to handle file conflicts with the global writeMode setting
|
|
212
|
-
* @param srcRelativePath - Source path relative to .trellis/ (e.g., 'scripts')
|
|
213
|
-
* @param destPath - Absolute destination path
|
|
214
|
-
* @param options - Copy options
|
|
28
|
+
* Copy a directory from trellis templates to target, making scripts executable.
|
|
215
29
|
*/
|
|
216
30
|
export declare function copyTrellisDir(srcRelativePath: string, destPath: string, options?: {
|
|
217
31
|
executable?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/templates/extract.ts"],"names":[],"mappings":"AAQA,KAAK,gBAAgB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5D
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/templates/extract.ts"],"names":[],"mappings":"AAQA,KAAK,gBAAgB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5D;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAQ/C;AAED,wDAAwD;AACxD,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAQ9C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAQhD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,MAAM,GACf,MAAM,CAGR;AAED,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACjC,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
|
@@ -5,50 +5,21 @@ import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
|
5
5
|
const __filename = fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = path.dirname(__filename);
|
|
7
7
|
/**
|
|
8
|
-
* Get the path to the trellis templates directory.
|
|
9
|
-
*
|
|
10
|
-
* This reads from src/templates/trellis/ (development) or dist/templates/trellis/ (production).
|
|
11
|
-
* These are GENERIC templates, not the Trellis project's own .trellis/ configuration.
|
|
8
|
+
* Get the path to the trellis templates directory (.trellis/ scaffolding).
|
|
12
9
|
*/
|
|
13
10
|
export function getTrellisTemplatePath() {
|
|
14
|
-
// Templates are in the same directory as this file
|
|
15
11
|
const templatePath = path.join(__dirname, "trellis");
|
|
16
12
|
if (fs.existsSync(templatePath)) {
|
|
17
13
|
return templatePath;
|
|
18
14
|
}
|
|
19
15
|
throw new Error("Could not find trellis templates directory. Expected at templates/trellis/");
|
|
20
16
|
}
|
|
21
|
-
/**
|
|
22
|
-
* @deprecated Use getTrellisTemplatePath() instead.
|
|
23
|
-
* This function is kept for backwards compatibility but now returns the template path.
|
|
24
|
-
*/
|
|
17
|
+
/** @deprecated Use getTrellisTemplatePath() instead. */
|
|
25
18
|
export function getTrellisSourcePath() {
|
|
26
19
|
return getTrellisTemplatePath();
|
|
27
20
|
}
|
|
28
21
|
/**
|
|
29
|
-
* Get the path to the
|
|
30
|
-
*
|
|
31
|
-
* This reads from src/templates/cursor/ (development) or dist/templates/cursor/ (production).
|
|
32
|
-
* These are GENERIC templates, not the Trellis project's own .cursor/ configuration.
|
|
33
|
-
*/
|
|
34
|
-
export function getCursorTemplatePath() {
|
|
35
|
-
const templatePath = path.join(__dirname, "cursor");
|
|
36
|
-
if (fs.existsSync(templatePath)) {
|
|
37
|
-
return templatePath;
|
|
38
|
-
}
|
|
39
|
-
throw new Error("Could not find cursor templates directory. Expected at templates/cursor/");
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* @deprecated Use getCursorTemplatePath() instead.
|
|
43
|
-
*/
|
|
44
|
-
export function getCursorSourcePath() {
|
|
45
|
-
return getCursorTemplatePath();
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Get the path to the claude templates directory.
|
|
49
|
-
*
|
|
50
|
-
* This reads from src/templates/claude/ (development) or dist/templates/claude/ (production).
|
|
51
|
-
* These are GENERIC templates, not the Trellis project's own .claude/ configuration.
|
|
22
|
+
* Get the path to the claude templates directory (hooks, agents, settings).
|
|
52
23
|
*/
|
|
53
24
|
export function getClaudeTemplatePath() {
|
|
54
25
|
const templatePath = path.join(__dirname, "claude");
|
|
@@ -58,10 +29,7 @@ export function getClaudeTemplatePath() {
|
|
|
58
29
|
throw new Error("Could not find claude templates directory. Expected at templates/claude/");
|
|
59
30
|
}
|
|
60
31
|
/**
|
|
61
|
-
* Get the path to the opencode templates directory.
|
|
62
|
-
*
|
|
63
|
-
* This reads from src/templates/opencode/ (development) or dist/templates/opencode/ (production).
|
|
64
|
-
* These are GENERIC templates, not the Trellis project's own .opencode/ configuration.
|
|
32
|
+
* Get the path to the opencode templates directory (agents, plugins, lib).
|
|
65
33
|
*/
|
|
66
34
|
export function getOpenCodeTemplatePath() {
|
|
67
35
|
const templatePath = path.join(__dirname, "opencode");
|
|
@@ -71,181 +39,7 @@ export function getOpenCodeTemplatePath() {
|
|
|
71
39
|
throw new Error("Could not find opencode templates directory. Expected at templates/opencode/");
|
|
72
40
|
}
|
|
73
41
|
/**
|
|
74
|
-
*
|
|
75
|
-
*/
|
|
76
|
-
export function getClaudeSourcePath() {
|
|
77
|
-
return getClaudeTemplatePath();
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Get the path to the iflow templates directory.
|
|
81
|
-
*
|
|
82
|
-
* This reads from src/templates/iflow/ (development) or dist/templates/iflow/ (production).
|
|
83
|
-
* These are GENERIC templates, not the Trellis project's own .iflow/ configuration.
|
|
84
|
-
*/
|
|
85
|
-
export function getIflowTemplatePath() {
|
|
86
|
-
const templatePath = path.join(__dirname, "iflow");
|
|
87
|
-
if (fs.existsSync(templatePath)) {
|
|
88
|
-
return templatePath;
|
|
89
|
-
}
|
|
90
|
-
throw new Error("Could not find iflow templates directory. Expected at templates/iflow/");
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* @deprecated Use getIflowTemplatePath() instead.
|
|
94
|
-
*/
|
|
95
|
-
export function getIflowSourcePath() {
|
|
96
|
-
return getIflowTemplatePath();
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Get the path to the Codex templates directory.
|
|
100
|
-
*
|
|
101
|
-
* This reads from src/templates/codex/ (development) or dist/templates/codex/ (production).
|
|
102
|
-
* These are GENERIC templates, not the Trellis project's own .agents/.codex configuration.
|
|
103
|
-
*/
|
|
104
|
-
export function getCodexTemplatePath() {
|
|
105
|
-
const templatePath = path.join(__dirname, "codex");
|
|
106
|
-
if (fs.existsSync(templatePath)) {
|
|
107
|
-
return templatePath;
|
|
108
|
-
}
|
|
109
|
-
throw new Error("Could not find codex templates directory. Expected at templates/codex/");
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* @deprecated Use getCodexTemplatePath() instead.
|
|
113
|
-
*/
|
|
114
|
-
export function getCodexSourcePath() {
|
|
115
|
-
return getCodexTemplatePath();
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Get the path to the kilo templates directory.
|
|
119
|
-
*
|
|
120
|
-
* This reads from src/templates/kilo/ (development) or dist/templates/kilo/ (production).
|
|
121
|
-
* These are GENERIC templates, not the Trellis project's own .kilo/ configuration.
|
|
122
|
-
*/
|
|
123
|
-
export function getKiloTemplatePath() {
|
|
124
|
-
const templatePath = path.join(__dirname, "kilo");
|
|
125
|
-
if (fs.existsSync(templatePath)) {
|
|
126
|
-
return templatePath;
|
|
127
|
-
}
|
|
128
|
-
throw new Error("Could not find kilo templates directory. Expected at templates/kilo/");
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Get the path to the kiro templates directory.
|
|
132
|
-
*
|
|
133
|
-
* This reads from src/templates/kiro/ (development) or dist/templates/kiro/ (production).
|
|
134
|
-
* These are GENERIC templates, not the Trellis project's own .kiro/ configuration.
|
|
135
|
-
*/
|
|
136
|
-
export function getKiroTemplatePath() {
|
|
137
|
-
const templatePath = path.join(__dirname, "kiro");
|
|
138
|
-
if (fs.existsSync(templatePath)) {
|
|
139
|
-
return templatePath;
|
|
140
|
-
}
|
|
141
|
-
throw new Error("Could not find kiro templates directory. Expected at templates/kiro/");
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* @deprecated Use getKiroTemplatePath() instead.
|
|
145
|
-
*/
|
|
146
|
-
export function getKiroSourcePath() {
|
|
147
|
-
return getKiroTemplatePath();
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Get the path to the antigravity templates directory.
|
|
151
|
-
*
|
|
152
|
-
* This reads from src/templates/antigravity/ (development) or dist/templates/antigravity/ (production).
|
|
153
|
-
* These are GENERIC templates, not the Trellis project's own .agent/workflows configuration.
|
|
154
|
-
*/
|
|
155
|
-
export function getAntigravityTemplatePath() {
|
|
156
|
-
const templatePath = path.join(__dirname, "antigravity");
|
|
157
|
-
if (fs.existsSync(templatePath)) {
|
|
158
|
-
return templatePath;
|
|
159
|
-
}
|
|
160
|
-
throw new Error("Could not find antigravity templates directory. Expected at templates/antigravity/");
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* @deprecated Use getAntigravityTemplatePath() instead.
|
|
164
|
-
*/
|
|
165
|
-
export function getAntigravitySourcePath() {
|
|
166
|
-
return getAntigravityTemplatePath();
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Get the path to the windsurf templates directory.
|
|
170
|
-
*
|
|
171
|
-
* This reads from src/templates/windsurf/ (development) or dist/templates/windsurf/ (production).
|
|
172
|
-
* These are GENERIC templates, not the Trellis project's own .windsurf/workflows configuration.
|
|
173
|
-
*/
|
|
174
|
-
export function getWindsurfTemplatePath() {
|
|
175
|
-
const templatePath = path.join(__dirname, "windsurf");
|
|
176
|
-
if (fs.existsSync(templatePath)) {
|
|
177
|
-
return templatePath;
|
|
178
|
-
}
|
|
179
|
-
throw new Error("Could not find windsurf templates directory. Expected at templates/windsurf/");
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* @deprecated Use getWindsurfTemplatePath() instead.
|
|
183
|
-
*/
|
|
184
|
-
export function getWindsurfSourcePath() {
|
|
185
|
-
return getWindsurfTemplatePath();
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Get the path to the qoder templates directory.
|
|
189
|
-
*
|
|
190
|
-
* This reads from src/templates/qoder/ (development) or dist/templates/qoder/ (production).
|
|
191
|
-
* These are GENERIC templates, not the Trellis project's own .qoder/ configuration.
|
|
192
|
-
*/
|
|
193
|
-
export function getQoderTemplatePath() {
|
|
194
|
-
const templatePath = path.join(__dirname, "qoder");
|
|
195
|
-
if (fs.existsSync(templatePath)) {
|
|
196
|
-
return templatePath;
|
|
197
|
-
}
|
|
198
|
-
throw new Error("Could not find qoder templates directory. Expected at templates/qoder/");
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Get the path to the codebuddy templates directory.
|
|
202
|
-
*
|
|
203
|
-
* This reads from src/templates/codebuddy/ (development) or dist/templates/codebuddy/ (production).
|
|
204
|
-
* These are GENERIC templates, not the Trellis project's own .codebuddy/ configuration.
|
|
205
|
-
*/
|
|
206
|
-
export function getCodebuddyTemplatePath() {
|
|
207
|
-
const templatePath = path.join(__dirname, "codebuddy");
|
|
208
|
-
if (fs.existsSync(templatePath)) {
|
|
209
|
-
return templatePath;
|
|
210
|
-
}
|
|
211
|
-
throw new Error("Could not find codebuddy templates directory. Expected at templates/codebuddy/");
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Get the path to the droid templates directory.
|
|
215
|
-
*
|
|
216
|
-
* This reads from src/templates/droid/ (development) or dist/templates/droid/ (production).
|
|
217
|
-
* These are GENERIC templates, not the Trellis project's own .factory/ configuration.
|
|
218
|
-
*/
|
|
219
|
-
export function getDroidTemplatePath() {
|
|
220
|
-
const templatePath = path.join(__dirname, "droid");
|
|
221
|
-
if (fs.existsSync(templatePath)) {
|
|
222
|
-
return templatePath;
|
|
223
|
-
}
|
|
224
|
-
throw new Error("Could not find droid templates directory. Expected at templates/droid/");
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* @deprecated Use getDroidTemplatePath() instead.
|
|
228
|
-
*/
|
|
229
|
-
export function getDroidSourcePath() {
|
|
230
|
-
return getDroidTemplatePath();
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Get the path to the copilot templates directory.
|
|
234
|
-
*
|
|
235
|
-
* This reads from src/templates/copilot/ (development) or dist/templates/copilot/ (production).
|
|
236
|
-
* These are GENERIC templates, not the Trellis project's own .github/copilot/ configuration.
|
|
237
|
-
*/
|
|
238
|
-
export function getCopilotTemplatePath() {
|
|
239
|
-
const templatePath = path.join(__dirname, "copilot");
|
|
240
|
-
if (fs.existsSync(templatePath)) {
|
|
241
|
-
return templatePath;
|
|
242
|
-
}
|
|
243
|
-
throw new Error("Could not find copilot templates directory. Expected at templates/copilot/");
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* Read a file from the .trellis directory
|
|
247
|
-
* @param relativePath - Path relative to .trellis/ (e.g., 'scripts/task.py')
|
|
248
|
-
* @returns File content as string
|
|
42
|
+
* Read a file from the trellis template directory.
|
|
249
43
|
*/
|
|
250
44
|
export function readTrellisFile(relativePath) {
|
|
251
45
|
const trellisPath = getTrellisSourcePath();
|
|
@@ -253,126 +47,29 @@ export function readTrellisFile(relativePath) {
|
|
|
253
47
|
return fs.readFileSync(filePath, "utf-8");
|
|
254
48
|
}
|
|
255
49
|
/**
|
|
256
|
-
* Read template content from a
|
|
257
|
-
* @param category - Template category (only 'commands' uses .txt files now)
|
|
258
|
-
* @param filename - Template filename (e.g., 'common/finish-work.txt')
|
|
259
|
-
* @returns File content as string
|
|
50
|
+
* Read template content from a category directory.
|
|
260
51
|
*/
|
|
261
52
|
export function readTemplate(category, filename) {
|
|
262
53
|
const templatePath = path.join(__dirname, category, filename);
|
|
263
54
|
return fs.readFileSync(templatePath, "utf-8");
|
|
264
55
|
}
|
|
265
|
-
/**
|
|
266
|
-
* Helper to read script template from .trellis/scripts/
|
|
267
|
-
* @param relativePath - Path relative to .trellis/scripts/ (e.g., 'task.py')
|
|
268
|
-
*/
|
|
269
56
|
export function readScript(relativePath) {
|
|
270
57
|
return readTrellisFile(`scripts/${relativePath}`);
|
|
271
58
|
}
|
|
272
|
-
/**
|
|
273
|
-
* Helper to read markdown template from .trellis/
|
|
274
|
-
* @param relativePath - Path relative to .trellis/ (e.g., 'workflow.md')
|
|
275
|
-
*/
|
|
276
59
|
export function readMarkdown(relativePath) {
|
|
277
60
|
return readTrellisFile(relativePath);
|
|
278
61
|
}
|
|
279
|
-
/**
|
|
280
|
-
* Helper to read command template (these still use .txt files in src/templates/commands/)
|
|
281
|
-
*/
|
|
282
62
|
export function readCommand(filename) {
|
|
283
63
|
return readTemplate("commands", filename);
|
|
284
64
|
}
|
|
285
65
|
/**
|
|
286
|
-
*
|
|
287
|
-
* @param relativePath - Path relative to .cursor/ (e.g., 'commands/start.md')
|
|
288
|
-
* @returns File content as string
|
|
289
|
-
*/
|
|
290
|
-
export function readCursorFile(relativePath) {
|
|
291
|
-
const cursorPath = getCursorSourcePath();
|
|
292
|
-
const filePath = path.join(cursorPath, relativePath);
|
|
293
|
-
return fs.readFileSync(filePath, "utf-8");
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* Read a file from the .claude directory (dogfooding)
|
|
297
|
-
* @param relativePath - Path relative to .claude/ (e.g., 'commands/start.md')
|
|
298
|
-
* @returns File content as string
|
|
299
|
-
*/
|
|
300
|
-
export function readClaudeFile(relativePath) {
|
|
301
|
-
const claudePath = getClaudeSourcePath();
|
|
302
|
-
const filePath = path.join(claudePath, relativePath);
|
|
303
|
-
return fs.readFileSync(filePath, "utf-8");
|
|
304
|
-
}
|
|
305
|
-
/**
|
|
306
|
-
* @deprecated Use getOpenCodeTemplatePath() instead.
|
|
307
|
-
*/
|
|
308
|
-
export function getOpenCodeSourcePath() {
|
|
309
|
-
return getOpenCodeTemplatePath();
|
|
310
|
-
}
|
|
311
|
-
/**
|
|
312
|
-
* Read a file from the .opencode directory (dogfooding)
|
|
313
|
-
* @param relativePath - Path relative to .opencode/ (e.g., 'commands/start.md')
|
|
314
|
-
* @returns File content as string
|
|
315
|
-
*/
|
|
316
|
-
export function readOpenCodeFile(relativePath) {
|
|
317
|
-
const opencodePath = getOpenCodeSourcePath();
|
|
318
|
-
const filePath = path.join(opencodePath, relativePath);
|
|
319
|
-
return fs.readFileSync(filePath, "utf-8");
|
|
320
|
-
}
|
|
321
|
-
/**
|
|
322
|
-
* Read a file from the .kilo directory (dogfooding)
|
|
323
|
-
* @param relativePath - Path relative to .kilo/ (e.g., 'commands/start.md')
|
|
324
|
-
* @returns File content as string
|
|
325
|
-
*/
|
|
326
|
-
export function readKiloFile(relativePath) {
|
|
327
|
-
const kiloPath = getKiloTemplatePath();
|
|
328
|
-
const filePath = path.join(kiloPath, relativePath);
|
|
329
|
-
return fs.readFileSync(filePath, "utf-8");
|
|
330
|
-
}
|
|
331
|
-
/**
|
|
332
|
-
* Get the path to the gemini templates directory.
|
|
333
|
-
*
|
|
334
|
-
* This reads from src/templates/gemini/ (development) or dist/templates/gemini/ (production).
|
|
335
|
-
* These are GENERIC templates, not the Trellis project's own .gemini/ configuration.
|
|
336
|
-
*/
|
|
337
|
-
export function getGeminiTemplatePath() {
|
|
338
|
-
const templatePath = path.join(__dirname, "gemini");
|
|
339
|
-
if (fs.existsSync(templatePath)) {
|
|
340
|
-
return templatePath;
|
|
341
|
-
}
|
|
342
|
-
throw new Error("Could not find gemini templates directory. Expected at templates/gemini/");
|
|
343
|
-
}
|
|
344
|
-
/**
|
|
345
|
-
* @deprecated Use getGeminiTemplatePath() instead.
|
|
346
|
-
*/
|
|
347
|
-
export function getGeminiSourcePath() {
|
|
348
|
-
return getGeminiTemplatePath();
|
|
349
|
-
}
|
|
350
|
-
/**
|
|
351
|
-
* Read a file from the .gemini directory (dogfooding)
|
|
352
|
-
* @param relativePath - Path relative to .gemini/ (e.g., 'commands/trellis/start.toml')
|
|
353
|
-
* @returns File content as string
|
|
354
|
-
*/
|
|
355
|
-
export function readGeminiFile(relativePath) {
|
|
356
|
-
const geminiPath = getGeminiTemplatePath();
|
|
357
|
-
const filePath = path.join(geminiPath, relativePath);
|
|
358
|
-
return fs.readFileSync(filePath, "utf-8");
|
|
359
|
-
}
|
|
360
|
-
/**
|
|
361
|
-
* Copy a directory from .trellis/ to target, making scripts executable
|
|
362
|
-
* Uses writeFile to handle file conflicts with the global writeMode setting
|
|
363
|
-
* @param srcRelativePath - Source path relative to .trellis/ (e.g., 'scripts')
|
|
364
|
-
* @param destPath - Absolute destination path
|
|
365
|
-
* @param options - Copy options
|
|
66
|
+
* Copy a directory from trellis templates to target, making scripts executable.
|
|
366
67
|
*/
|
|
367
68
|
export async function copyTrellisDir(srcRelativePath, destPath, options) {
|
|
368
69
|
const trellisPath = getTrellisSourcePath();
|
|
369
70
|
const srcPath = path.join(trellisPath, srcRelativePath);
|
|
370
71
|
await copyDirRecursive(srcPath, destPath, options);
|
|
371
72
|
}
|
|
372
|
-
/**
|
|
373
|
-
* Recursively copy directory with options
|
|
374
|
-
* Uses writeFile to handle file conflicts
|
|
375
|
-
*/
|
|
376
73
|
async function copyDirRecursive(src, dest, options) {
|
|
377
74
|
ensureDir(dest);
|
|
378
75
|
for (const entry of fs.readdirSync(src)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/templates/extract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAI3C
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/templates/extract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAI3C;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACrD,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,oBAAoB;IAClC,OAAO,sBAAsB,EAAE,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACpD,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACtD,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,YAAoB;IAClD,MAAM,WAAW,GAAG,oBAAoB,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACtD,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,QAA0B,EAC1B,QAAgB;IAEhB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9D,OAAO,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,YAAoB;IAC7C,OAAO,eAAe,CAAC,WAAW,YAAY,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,YAAoB;IAC/C,OAAO,eAAe,CAAC,YAAY,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,OAAO,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,eAAuB,EACvB,QAAgB,EAChB,OAAkC;IAElC,MAAM,WAAW,GAAG,oBAAoB,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACxD,MAAM,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,GAAW,EACX,IAAY,EACZ,OAAkC;IAElC,SAAS,CAAC,IAAI,CAAC,CAAC;IAEhB,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAElC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,YAAY,GAChB,OAAO,EAAE,UAAU,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1E,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;AACH,CAAC"}
|