@ibotor/smart-trellis 0.5.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +235 -0
- package/README.md +263 -0
- package/bin/smart-trellis.js +3 -0
- package/bin/trellis.js +3 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +132 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/smart.d.ts +2 -0
- package/dist/cli/smart.d.ts.map +1 -0
- package/dist/cli/smart.js +41 -0
- package/dist/cli/smart.js.map +1 -0
- package/dist/commands/init.d.ts +56 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +1466 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/smart-init.d.ts +22 -0
- package/dist/commands/smart-init.d.ts.map +1 -0
- package/dist/commands/smart-init.js +122 -0
- package/dist/commands/smart-init.js.map +1 -0
- package/dist/commands/uninstall.d.ts +27 -0
- package/dist/commands/uninstall.d.ts.map +1 -0
- package/dist/commands/uninstall.js +339 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/commands/update.d.ts +72 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +1926 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/configurators/antigravity.d.ts +7 -0
- package/dist/configurators/antigravity.d.ts.map +1 -0
- package/dist/configurators/antigravity.js +19 -0
- package/dist/configurators/antigravity.js.map +1 -0
- package/dist/configurators/claude.d.ts +9 -0
- package/dist/configurators/claude.d.ts.map +1 -0
- package/dist/configurators/claude.js +72 -0
- package/dist/configurators/claude.js.map +1 -0
- package/dist/configurators/codebuddy.d.ts +10 -0
- package/dist/configurators/codebuddy.d.ts.map +1 -0
- package/dist/configurators/codebuddy.js +30 -0
- package/dist/configurators/codebuddy.js.map +1 -0
- package/dist/configurators/codex.d.ts +8 -0
- package/dist/configurators/codex.d.ts.map +1 -0
- package/dist/configurators/codex.js +85 -0
- package/dist/configurators/codex.js.map +1 -0
- package/dist/configurators/copilot.d.ts +10 -0
- package/dist/configurators/copilot.d.ts.map +1 -0
- package/dist/configurators/copilot.js +51 -0
- package/dist/configurators/copilot.js.map +1 -0
- package/dist/configurators/cursor.d.ts +10 -0
- package/dist/configurators/cursor.d.ts.map +1 -0
- package/dist/configurators/cursor.js +29 -0
- package/dist/configurators/cursor.js.map +1 -0
- package/dist/configurators/droid.d.ts +10 -0
- package/dist/configurators/droid.d.ts.map +1 -0
- package/dist/configurators/droid.js +30 -0
- package/dist/configurators/droid.js.map +1 -0
- package/dist/configurators/gemini.d.ts +16 -0
- package/dist/configurators/gemini.d.ts.map +1 -0
- package/dist/configurators/gemini.js +38 -0
- package/dist/configurators/gemini.js.map +1 -0
- package/dist/configurators/index.d.ts +65 -0
- package/dist/configurators/index.d.ts.map +1 -0
- package/dist/configurators/index.js +367 -0
- package/dist/configurators/index.js.map +1 -0
- package/dist/configurators/kilo.d.ts +7 -0
- package/dist/configurators/kilo.d.ts.map +1 -0
- package/dist/configurators/kilo.js +19 -0
- package/dist/configurators/kilo.js.map +1 -0
- package/dist/configurators/kiro.d.ts +8 -0
- package/dist/configurators/kiro.d.ts.map +1 -0
- package/dist/configurators/kiro.js +24 -0
- package/dist/configurators/kiro.js.map +1 -0
- package/dist/configurators/opencode.d.ts +14 -0
- package/dist/configurators/opencode.d.ts.map +1 -0
- package/dist/configurators/opencode.js +96 -0
- package/dist/configurators/opencode.js.map +1 -0
- package/dist/configurators/pi.d.ts +3 -0
- package/dist/configurators/pi.d.ts.map +1 -0
- package/dist/configurators/pi.js +45 -0
- package/dist/configurators/pi.js.map +1 -0
- package/dist/configurators/qoder.d.ts +11 -0
- package/dist/configurators/qoder.d.ts.map +1 -0
- package/dist/configurators/qoder.js +31 -0
- package/dist/configurators/qoder.js.map +1 -0
- package/dist/configurators/shared.d.ts +178 -0
- package/dist/configurators/shared.d.ts.map +1 -0
- package/dist/configurators/shared.js +538 -0
- package/dist/configurators/shared.js.map +1 -0
- package/dist/configurators/windsurf.d.ts +7 -0
- package/dist/configurators/windsurf.d.ts.map +1 -0
- package/dist/configurators/windsurf.js +19 -0
- package/dist/configurators/windsurf.js.map +1 -0
- package/dist/configurators/workflow.d.ts +29 -0
- package/dist/configurators/workflow.d.ts.map +1 -0
- package/dist/configurators/workflow.js +163 -0
- package/dist/configurators/workflow.js.map +1 -0
- package/dist/constants/paths.d.ts +70 -0
- package/dist/constants/paths.d.ts.map +1 -0
- package/dist/constants/paths.js +79 -0
- package/dist/constants/paths.js.map +1 -0
- package/dist/constants/version.d.ts +9 -0
- package/dist/constants/version.d.ts.map +1 -0
- package/dist/constants/version.js +15 -0
- package/dist/constants/version.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/migrations/index.d.ts +62 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +187 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/manifests/0.1.9.json +30 -0
- package/dist/migrations/manifests/0.2.0.json +49 -0
- package/dist/migrations/manifests/0.2.12.json +9 -0
- package/dist/migrations/manifests/0.2.13.json +9 -0
- package/dist/migrations/manifests/0.2.14.json +175 -0
- package/dist/migrations/manifests/0.2.15.json +33 -0
- package/dist/migrations/manifests/0.3.0-beta.0.json +297 -0
- package/dist/migrations/manifests/0.3.0-beta.1.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.10.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.11.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.12.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.13.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.14.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.15.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.16.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.2.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.3.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.4.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.5.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.6.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.7.json +11 -0
- package/dist/migrations/manifests/0.3.0-beta.8.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.9.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.0.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.1.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.2.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.3.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.4.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.5.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.6.json +9 -0
- package/dist/migrations/manifests/0.3.0.json +11 -0
- package/dist/migrations/manifests/0.3.1.json +9 -0
- package/dist/migrations/manifests/0.3.10.json +9 -0
- package/dist/migrations/manifests/0.3.2.json +9 -0
- package/dist/migrations/manifests/0.3.3.json +9 -0
- package/dist/migrations/manifests/0.3.4.json +21 -0
- package/dist/migrations/manifests/0.3.5.json +9 -0
- package/dist/migrations/manifests/0.3.6.json +9 -0
- package/dist/migrations/manifests/0.3.7.json +9 -0
- package/dist/migrations/manifests/0.3.8.json +9 -0
- package/dist/migrations/manifests/0.3.9.json +9 -0
- package/dist/migrations/manifests/0.4.0-beta.1.json +228 -0
- package/dist/migrations/manifests/0.4.0-beta.10.json +9 -0
- package/dist/migrations/manifests/0.4.0-beta.2.json +9 -0
- package/dist/migrations/manifests/0.4.0-beta.3.json +9 -0
- package/dist/migrations/manifests/0.4.0-beta.4.json +9 -0
- package/dist/migrations/manifests/0.4.0-beta.5.json +9 -0
- package/dist/migrations/manifests/0.4.0-beta.6.json +9 -0
- package/dist/migrations/manifests/0.4.0-beta.7.json +9 -0
- package/dist/migrations/manifests/0.4.0-beta.8.json +34 -0
- package/dist/migrations/manifests/0.4.0-beta.9.json +9 -0
- package/dist/migrations/manifests/0.4.0-rc.0.json +9 -0
- package/dist/migrations/manifests/0.4.0-rc.1.json +9 -0
- package/dist/migrations/manifests/0.4.0.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.0.json +1646 -0
- package/dist/migrations/manifests/0.5.0-beta.1.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.10.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.11.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.12.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.13.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.14.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.15.json +116 -0
- package/dist/migrations/manifests/0.5.0-beta.16.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.17.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.18.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.19.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.2.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.3.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.4.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.5.json +222 -0
- package/dist/migrations/manifests/0.5.0-beta.6.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.7.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.8.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.9.json +48 -0
- package/dist/migrations/manifests/0.5.0-rc.0.json +9 -0
- package/dist/migrations/manifests/0.5.0-rc.1.json +9 -0
- package/dist/migrations/manifests/0.5.0-rc.2.json +9 -0
- package/dist/migrations/manifests/0.5.0-rc.3.json +9 -0
- package/dist/migrations/manifests/0.5.0-rc.4.json +9 -0
- package/dist/migrations/manifests/0.5.0-rc.5.json +9 -0
- package/dist/migrations/manifests/0.5.0-rc.6.json +9 -0
- package/dist/migrations/manifests/0.5.0-rc.7.json +9 -0
- package/dist/migrations/manifests/0.5.0.json +9 -0
- package/dist/migrations/manifests/0.5.1.json +9 -0
- package/dist/migrations/manifests/0.5.10.json +9 -0
- package/dist/migrations/manifests/0.5.11.json +16 -0
- package/dist/migrations/manifests/0.5.12.json +9 -0
- package/dist/migrations/manifests/0.5.13.json +9 -0
- package/dist/migrations/manifests/0.5.14.json +9 -0
- package/dist/migrations/manifests/0.5.15.json +9 -0
- package/dist/migrations/manifests/0.5.16.json +9 -0
- package/dist/migrations/manifests/0.5.17.json +9 -0
- package/dist/migrations/manifests/0.5.18.json +9 -0
- package/dist/migrations/manifests/0.5.19.json +9 -0
- package/dist/migrations/manifests/0.5.2.json +9 -0
- package/dist/migrations/manifests/0.5.3.json +9 -0
- package/dist/migrations/manifests/0.5.4.json +9 -0
- package/dist/migrations/manifests/0.5.5.json +9 -0
- package/dist/migrations/manifests/0.5.6.json +9 -0
- package/dist/migrations/manifests/0.5.7.json +16 -0
- package/dist/migrations/manifests/0.5.8.json +9 -0
- package/dist/migrations/manifests/0.5.9.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.0.json +16 -0
- package/dist/migrations/manifests/0.6.0-beta.1.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.10.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.11.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.12.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.13.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.14.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.15.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.16.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.17.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.18.json +16 -0
- package/dist/migrations/manifests/0.6.0-beta.19.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.2.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.20.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.21.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.3.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.4.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.5.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.6.json +16 -0
- package/dist/migrations/manifests/0.6.0-beta.7.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.8.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.9.json +9 -0
- package/dist/templates/claude/agents/trellis-check.md +109 -0
- package/dist/templates/claude/agents/trellis-implement.md +109 -0
- package/dist/templates/claude/agents/trellis-research.md +137 -0
- package/dist/templates/claude/index.d.ts +22 -0
- package/dist/templates/claude/index.d.ts.map +1 -0
- package/dist/templates/claude/index.js +46 -0
- package/dist/templates/claude/index.js.map +1 -0
- package/dist/templates/claude/settings.json +73 -0
- package/dist/templates/codebuddy/agents/trellis-check.md +109 -0
- package/dist/templates/codebuddy/agents/trellis-implement.md +109 -0
- package/dist/templates/codebuddy/agents/trellis-research.md +137 -0
- package/dist/templates/codebuddy/index.d.ts +15 -0
- package/dist/templates/codebuddy/index.d.ts.map +1 -0
- package/dist/templates/codebuddy/index.js +15 -0
- package/dist/templates/codebuddy/index.js.map +1 -0
- package/dist/templates/codebuddy/settings.json +59 -0
- package/dist/templates/codex/agents/trellis-check.toml +84 -0
- package/dist/templates/codex/agents/trellis-implement.toml +65 -0
- package/dist/templates/codex/agents/trellis-research.toml +73 -0
- package/dist/templates/codex/config.toml +28 -0
- package/dist/templates/codex/hooks/session-start.py +481 -0
- package/dist/templates/codex/hooks.json +15 -0
- package/dist/templates/codex/index.d.ts +39 -0
- package/dist/templates/codex/index.d.ts.map +1 -0
- package/dist/templates/codex/index.js +85 -0
- package/dist/templates/codex/index.js.map +1 -0
- package/dist/templates/codex/skills/before-dev/SKILL.md +34 -0
- package/dist/templates/codex/skills/brainstorm/SKILL.md +500 -0
- package/dist/templates/codex/skills/break-loop/SKILL.md +130 -0
- package/dist/templates/codex/skills/check/SKILL.md +30 -0
- package/dist/templates/codex/skills/check-cross-layer/SKILL.md +158 -0
- package/dist/templates/codex/skills/create-command/SKILL.md +101 -0
- package/dist/templates/codex/skills/finish-work/SKILL.md +90 -0
- package/dist/templates/codex/skills/improve-ut/SKILL.md +69 -0
- package/dist/templates/codex/skills/integrate-skill/SKILL.md +221 -0
- package/dist/templates/codex/skills/onboard/SKILL.md +363 -0
- package/dist/templates/codex/skills/record-session/SKILL.md +67 -0
- package/dist/templates/codex/skills/start/SKILL.md +354 -0
- package/dist/templates/codex/skills/update-spec/SKILL.md +335 -0
- package/dist/templates/common/bundled-skills/trellis-meta/SKILL.md +73 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/add-project-local-conventions.md +83 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-agents.md +54 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-context-loading.md +81 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-hooks.md +57 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-skills-or-commands.md +78 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-spec-structure.md +83 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-task-lifecycle.md +90 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-workflow.md +64 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/overview.md +55 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/context-injection.md +68 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/generated-files.md +80 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/overview.md +51 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/spec-system.md +102 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/task-system.md +101 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/workflow.md +75 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/workspace-memory.md +71 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/agents.md +79 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/hooks-and-settings.md +69 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/overview.md +59 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/platform-map.md +74 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/skills-and-commands.md +83 -0
- package/dist/templates/common/bundled-skills/trellis-spec-bootstarp/SKILL.md +41 -0
- package/dist/templates/common/bundled-skills/trellis-spec-bootstarp/references/mcp-setup.md +90 -0
- package/dist/templates/common/bundled-skills/trellis-spec-bootstarp/references/repository-analysis.md +59 -0
- package/dist/templates/common/bundled-skills/trellis-spec-bootstarp/references/spec-task-planning.md +61 -0
- package/dist/templates/common/bundled-skills/trellis-spec-bootstarp/references/spec-writing.md +70 -0
- package/dist/templates/common/commands/continue.md +55 -0
- package/dist/templates/common/commands/finish-work.md +66 -0
- package/dist/templates/common/commands/start.md +58 -0
- package/dist/templates/common/index.d.ts +48 -0
- package/dist/templates/common/index.d.ts.map +1 -0
- package/dist/templates/common/index.js +104 -0
- package/dist/templates/common/index.js.map +1 -0
- package/dist/templates/common/skills/before-dev.md +29 -0
- package/dist/templates/common/skills/brainstorm.md +543 -0
- package/dist/templates/common/skills/break-loop.md +125 -0
- package/dist/templates/common/skills/check.md +87 -0
- package/dist/templates/common/skills/update-spec.md +351 -0
- package/dist/templates/copilot/hooks/session-start.py +454 -0
- package/dist/templates/copilot/hooks.json +19 -0
- package/dist/templates/copilot/index.d.ts +23 -0
- package/dist/templates/copilot/index.d.ts.map +1 -0
- package/dist/templates/copilot/index.js +54 -0
- package/dist/templates/copilot/index.js.map +1 -0
- package/dist/templates/copilot/prompts/before-dev.prompt.md +33 -0
- package/dist/templates/copilot/prompts/brainstorm.prompt.md +499 -0
- package/dist/templates/copilot/prompts/break-loop.prompt.md +129 -0
- package/dist/templates/copilot/prompts/check-cross-layer.prompt.md +157 -0
- package/dist/templates/copilot/prompts/check.prompt.md +29 -0
- package/dist/templates/copilot/prompts/create-command.prompt.md +116 -0
- package/dist/templates/copilot/prompts/finish-work.prompt.md +99 -0
- package/dist/templates/copilot/prompts/integrate-skill.prompt.md +223 -0
- package/dist/templates/copilot/prompts/onboard.prompt.md +362 -0
- package/dist/templates/copilot/prompts/parallel.prompt.md +196 -0
- package/dist/templates/copilot/prompts/record-session.prompt.md +66 -0
- package/dist/templates/copilot/prompts/start.prompt.md +397 -0
- package/dist/templates/copilot/prompts/update-spec.prompt.md +358 -0
- package/dist/templates/cursor/agents/trellis-check.md +108 -0
- package/dist/templates/cursor/agents/trellis-implement.md +108 -0
- package/dist/templates/cursor/agents/trellis-research.md +136 -0
- package/dist/templates/cursor/hooks.json +24 -0
- package/dist/templates/cursor/index.d.ts +13 -0
- package/dist/templates/cursor/index.d.ts.map +1 -0
- package/dist/templates/cursor/index.js +13 -0
- package/dist/templates/cursor/index.js.map +1 -0
- package/dist/templates/droid/droids/trellis-check.md +101 -0
- package/dist/templates/droid/droids/trellis-implement.md +101 -0
- package/dist/templates/droid/droids/trellis-research.md +137 -0
- package/dist/templates/droid/index.d.ts +15 -0
- package/dist/templates/droid/index.d.ts.map +1 -0
- package/dist/templates/droid/index.js +15 -0
- package/dist/templates/droid/index.js.map +1 -0
- package/dist/templates/droid/settings.json +59 -0
- package/dist/templates/extract.d.ts +40 -0
- package/dist/templates/extract.d.ts.map +1 -0
- package/dist/templates/extract.js +106 -0
- package/dist/templates/extract.js.map +1 -0
- package/dist/templates/gemini/agents/trellis-check.md +101 -0
- package/dist/templates/gemini/agents/trellis-implement.md +101 -0
- package/dist/templates/gemini/agents/trellis-research.md +136 -0
- package/dist/templates/gemini/index.d.ts +13 -0
- package/dist/templates/gemini/index.d.ts.map +1 -0
- package/dist/templates/gemini/index.js +13 -0
- package/dist/templates/gemini/index.js.map +1 -0
- package/dist/templates/gemini/settings.json +28 -0
- package/dist/templates/kiro/agents/trellis-check.json +26 -0
- package/dist/templates/kiro/agents/trellis-implement.json +26 -0
- package/dist/templates/kiro/agents/trellis-research.json +30 -0
- package/dist/templates/kiro/index.d.ts +18 -0
- package/dist/templates/kiro/index.d.ts.map +1 -0
- package/dist/templates/kiro/index.js +18 -0
- package/dist/templates/kiro/index.js.map +1 -0
- package/dist/templates/markdown/agents.md +21 -0
- package/dist/templates/markdown/gitignore.txt +15 -0
- package/dist/templates/markdown/index.d.ts +27 -0
- package/dist/templates/markdown/index.d.ts.map +1 -0
- package/dist/templates/markdown/index.js +52 -0
- package/dist/templates/markdown/index.js.map +1 -0
- package/dist/templates/markdown/spec/backend/database-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/backend/directory-structure.md.txt +54 -0
- package/dist/templates/markdown/spec/backend/error-handling.md.txt +51 -0
- package/dist/templates/markdown/spec/backend/index.md.txt +38 -0
- package/dist/templates/markdown/spec/backend/logging-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/backend/quality-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/frontend/component-guidelines.md.txt +59 -0
- package/dist/templates/markdown/spec/frontend/directory-structure.md.txt +54 -0
- package/dist/templates/markdown/spec/frontend/hook-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/frontend/index.md.txt +39 -0
- package/dist/templates/markdown/spec/frontend/quality-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/frontend/state-management.md.txt +51 -0
- package/dist/templates/markdown/spec/frontend/type-safety.md.txt +51 -0
- package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md.txt +105 -0
- package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +162 -0
- package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +595 -0
- package/dist/templates/markdown/spec/guides/index.md.txt +79 -0
- package/dist/templates/markdown/workspace-index.md +125 -0
- package/dist/templates/markdown/worktree.yaml.txt +58 -0
- package/dist/templates/opencode/agents/trellis-check.md +116 -0
- package/dist/templates/opencode/agents/trellis-implement.md +117 -0
- package/dist/templates/opencode/agents/trellis-research.md +145 -0
- package/dist/templates/opencode/lib/session-utils.js +432 -0
- package/dist/templates/opencode/lib/trellis-context.js +381 -0
- package/dist/templates/opencode/package.json +5 -0
- package/dist/templates/opencode/plugins/inject-subagent-context.js +497 -0
- package/dist/templates/opencode/plugins/inject-workflow-state.js +162 -0
- package/dist/templates/opencode/plugins/session-start.js +101 -0
- package/dist/templates/pi/agents/trellis-check.md +36 -0
- package/dist/templates/pi/agents/trellis-implement.md +41 -0
- package/dist/templates/pi/agents/trellis-research.md +25 -0
- package/dist/templates/pi/extensions/trellis/index.ts.txt +1172 -0
- package/dist/templates/pi/index.d.ts +5 -0
- package/dist/templates/pi/index.d.ts.map +1 -0
- package/dist/templates/pi/index.js +12 -0
- package/dist/templates/pi/index.js.map +1 -0
- package/dist/templates/pi/settings.json +21 -0
- package/dist/templates/qoder/agents/trellis-check.md +102 -0
- package/dist/templates/qoder/agents/trellis-implement.md +102 -0
- package/dist/templates/qoder/agents/trellis-research.md +137 -0
- package/dist/templates/qoder/index.d.ts +15 -0
- package/dist/templates/qoder/index.d.ts.map +1 -0
- package/dist/templates/qoder/index.js +15 -0
- package/dist/templates/qoder/index.js.map +1 -0
- package/dist/templates/qoder/settings.json +47 -0
- package/dist/templates/shared-hooks/index.d.ts +50 -0
- package/dist/templates/shared-hooks/index.d.ts.map +1 -0
- package/dist/templates/shared-hooks/index.js +88 -0
- package/dist/templates/shared-hooks/index.js.map +1 -0
- package/dist/templates/shared-hooks/inject-shell-session-context.py +183 -0
- package/dist/templates/shared-hooks/inject-subagent-context.py +749 -0
- package/dist/templates/shared-hooks/inject-workflow-state.py +387 -0
- package/dist/templates/shared-hooks/session-start.py +797 -0
- package/dist/templates/template-utils.d.ts +26 -0
- package/dist/templates/template-utils.d.ts.map +1 -0
- package/dist/templates/template-utils.js +60 -0
- package/dist/templates/template-utils.js.map +1 -0
- package/dist/templates/trellis/config.yaml +90 -0
- package/dist/templates/trellis/gitignore.txt +32 -0
- package/dist/templates/trellis/index.d.ts +52 -0
- package/dist/templates/trellis/index.d.ts.map +1 -0
- package/dist/templates/trellis/index.js +97 -0
- package/dist/templates/trellis/index.js.map +1 -0
- package/dist/templates/trellis/scripts/__init__.py +5 -0
- package/dist/templates/trellis/scripts/add_session.py +547 -0
- package/dist/templates/trellis/scripts/common/__init__.py +92 -0
- package/dist/templates/trellis/scripts/common/active_task.py +626 -0
- package/dist/templates/trellis/scripts/common/cli_adapter.py +811 -0
- package/dist/templates/trellis/scripts/common/config.py +445 -0
- package/dist/templates/trellis/scripts/common/developer.py +190 -0
- package/dist/templates/trellis/scripts/common/git.py +31 -0
- package/dist/templates/trellis/scripts/common/git_context.py +106 -0
- package/dist/templates/trellis/scripts/common/io.py +37 -0
- package/dist/templates/trellis/scripts/common/log.py +45 -0
- package/dist/templates/trellis/scripts/common/packages_context.py +238 -0
- package/dist/templates/trellis/scripts/common/paths.py +447 -0
- package/dist/templates/trellis/scripts/common/safe_commit.py +285 -0
- package/dist/templates/trellis/scripts/common/session_context.py +821 -0
- package/dist/templates/trellis/scripts/common/task_context.py +223 -0
- package/dist/templates/trellis/scripts/common/task_queue.py +188 -0
- package/dist/templates/trellis/scripts/common/task_store.py +697 -0
- package/dist/templates/trellis/scripts/common/task_utils.py +274 -0
- package/dist/templates/trellis/scripts/common/tasks.py +112 -0
- package/dist/templates/trellis/scripts/common/trellis_config.py +131 -0
- package/dist/templates/trellis/scripts/common/types.py +110 -0
- package/dist/templates/trellis/scripts/common/workflow_phase.py +215 -0
- package/dist/templates/trellis/scripts/get_context.py +16 -0
- package/dist/templates/trellis/scripts/get_developer.py +26 -0
- package/dist/templates/trellis/scripts/hooks/linear_sync.py +243 -0
- package/dist/templates/trellis/scripts/init_developer.py +51 -0
- package/dist/templates/trellis/scripts/task.py +500 -0
- package/dist/templates/trellis/tasks/.gitkeep +0 -0
- package/dist/templates/trellis/workflow.md +690 -0
- package/dist/types/ai-tools.d.ts +95 -0
- package/dist/types/ai-tools.d.ts.map +1 -0
- package/dist/types/ai-tools.js +280 -0
- package/dist/types/ai-tools.js.map +1 -0
- package/dist/types/migration.d.ts +125 -0
- package/dist/types/migration.d.ts.map +1 -0
- package/dist/types/migration.js +8 -0
- package/dist/types/migration.js.map +1 -0
- package/dist/utils/compare-versions.d.ts +12 -0
- package/dist/utils/compare-versions.d.ts.map +1 -0
- package/dist/utils/compare-versions.js +86 -0
- package/dist/utils/compare-versions.js.map +1 -0
- package/dist/utils/cwd-guard.d.ts +38 -0
- package/dist/utils/cwd-guard.d.ts.map +1 -0
- package/dist/utils/cwd-guard.js +62 -0
- package/dist/utils/cwd-guard.js.map +1 -0
- package/dist/utils/file-writer.d.ts +36 -0
- package/dist/utils/file-writer.d.ts.map +1 -0
- package/dist/utils/file-writer.js +203 -0
- package/dist/utils/file-writer.js.map +1 -0
- package/dist/utils/manifest-prune.d.ts +61 -0
- package/dist/utils/manifest-prune.d.ts.map +1 -0
- package/dist/utils/manifest-prune.js +136 -0
- package/dist/utils/manifest-prune.js.map +1 -0
- package/dist/utils/posix.d.ts +13 -0
- package/dist/utils/posix.d.ts.map +1 -0
- package/dist/utils/posix.js +15 -0
- package/dist/utils/posix.js.map +1 -0
- package/dist/utils/project-detector.d.ts +46 -0
- package/dist/utils/project-detector.d.ts.map +1 -0
- package/dist/utils/project-detector.js +666 -0
- package/dist/utils/project-detector.js.map +1 -0
- package/dist/utils/proxy.d.ts +25 -0
- package/dist/utils/proxy.d.ts.map +1 -0
- package/dist/utils/proxy.js +60 -0
- package/dist/utils/proxy.js.map +1 -0
- package/dist/utils/task-json.d.ts +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/dist/utils/template-fetcher.d.ts +150 -0
- package/dist/utils/template-fetcher.d.ts.map +1 -0
- package/dist/utils/template-fetcher.js +907 -0
- package/dist/utils/template-fetcher.js.map +1 -0
- package/dist/utils/template-hash.d.ts +123 -0
- package/dist/utils/template-hash.d.ts.map +1 -0
- package/dist/utils/template-hash.js +334 -0
- package/dist/utils/template-hash.js.map +1 -0
- package/dist/utils/uninstall-scrubbers.d.ts +66 -0
- package/dist/utils/uninstall-scrubbers.d.ts.map +1 -0
- package/dist/utils/uninstall-scrubbers.js +342 -0
- package/dist/utils/uninstall-scrubbers.js.map +1 -0
- package/package.json +89 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"droid.js","sourceRoot":"","sources":["../../src/configurators/droid.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAW;IAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAEpD,WAAW;IACX,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACjE,SAAS,CAAC,WAAW,CAAC,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,WAAW,CACf,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAC/B,aAAa,CAAC,GAAG,CAAC,EAClB,oBAAoB,CAAC,GAAG,CAAC,CAC1B,CAAC;IACF,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IACnE,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IAEhE,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC1C,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CACtC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configure Gemini CLI (pull-based class-2 platform):
|
|
3
|
+
* - commands/trellis/ — start + finish-work as TOML slash commands
|
|
4
|
+
* - .agents/skills/trellis-{name}/SKILL.md — 5 auto-triggered shared skills
|
|
5
|
+
* written to the cross-platform `.agents/skills/` workspace alias (Gemini
|
|
6
|
+
* CLI 0.40+ reads it natively; previously `.gemini/skills/` was used,
|
|
7
|
+
* which collided with Codex's identical write target and caused
|
|
8
|
+
* duplicate-skill warnings — issue #224).
|
|
9
|
+
* - agents/{name}.md — sub-agent definitions, with pull-based prelude
|
|
10
|
+
* - hooks/*.py — session-start only (no inject-subagent-context.py — Gemini
|
|
11
|
+
* BeforeTool can fire but #18128 limits chain-of-thought visibility; sub-agents
|
|
12
|
+
* Read jsonl/prd themselves)
|
|
13
|
+
* - settings.json — hook configuration (SessionStart + BeforeAgent)
|
|
14
|
+
*/
|
|
15
|
+
export declare function configureGemini(cwd: string): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=gemini.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/configurators/gemini.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BhE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { AI_TOOLS } from "../types/ai-tools.js";
|
|
3
|
+
import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
4
|
+
import { resolvePlaceholders, resolveCommands, resolveSkillsNeutral, resolveBundledSkills, writeSkills, writeAgents, writeSharedHooks, applyPullBasedPreludeMarkdown, } from "./shared.js";
|
|
5
|
+
import { getAllAgents, getSettingsTemplate, } from "../templates/gemini/index.js";
|
|
6
|
+
/**
|
|
7
|
+
* Configure Gemini CLI (pull-based class-2 platform):
|
|
8
|
+
* - commands/trellis/ — start + finish-work as TOML slash commands
|
|
9
|
+
* - .agents/skills/trellis-{name}/SKILL.md — 5 auto-triggered shared skills
|
|
10
|
+
* written to the cross-platform `.agents/skills/` workspace alias (Gemini
|
|
11
|
+
* CLI 0.40+ reads it natively; previously `.gemini/skills/` was used,
|
|
12
|
+
* which collided with Codex's identical write target and caused
|
|
13
|
+
* duplicate-skill warnings — issue #224).
|
|
14
|
+
* - agents/{name}.md — sub-agent definitions, with pull-based prelude
|
|
15
|
+
* - hooks/*.py — session-start only (no inject-subagent-context.py — Gemini
|
|
16
|
+
* BeforeTool can fire but #18128 limits chain-of-thought visibility; sub-agents
|
|
17
|
+
* Read jsonl/prd themselves)
|
|
18
|
+
* - settings.json — hook configuration (SessionStart + BeforeAgent)
|
|
19
|
+
*/
|
|
20
|
+
export async function configureGemini(cwd) {
|
|
21
|
+
const config = AI_TOOLS.gemini;
|
|
22
|
+
const ctx = config.templateContext;
|
|
23
|
+
const configRoot = path.join(cwd, config.configDir);
|
|
24
|
+
const commandsDir = path.join(configRoot, "commands", "trellis");
|
|
25
|
+
ensureDir(commandsDir);
|
|
26
|
+
for (const cmd of resolveCommands(ctx)) {
|
|
27
|
+
const toml = `description = "Trellis: ${cmd.name}"\n\nprompt = """\n${cmd.content}\n"""\n`;
|
|
28
|
+
await writeFile(path.join(commandsDir, `${cmd.name}.toml`), toml);
|
|
29
|
+
}
|
|
30
|
+
// Shared skills go to `.agents/skills/` (read by Gemini CLI 0.40+ as a
|
|
31
|
+
// workspace alias), using the neutral placeholder resolver so the rendered
|
|
32
|
+
// SKILL.md files are byte-identical to Codex's writes for the same skills.
|
|
33
|
+
await writeSkills(path.join(cwd, ".agents", "skills"), resolveSkillsNeutral(ctx), resolveBundledSkills(ctx));
|
|
34
|
+
await writeAgents(path.join(configRoot, "agents"), applyPullBasedPreludeMarkdown(getAllAgents()));
|
|
35
|
+
await writeSharedHooks(path.join(configRoot, "hooks"), "gemini");
|
|
36
|
+
await writeFile(path.join(configRoot, "settings.json"), resolvePlaceholders(getSettingsTemplate()));
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=gemini.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/configurators/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AAEtC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW;IAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACjE,SAAS,CAAC,WAAW,CAAC,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,2BAA2B,GAAG,CAAC,IAAI,sBAAsB,GAAG,CAAC,OAAO,SAAS,CAAC;QAC3F,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,uEAAuE;IACvE,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,WAAW,CACf,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,EACnC,oBAAoB,CAAC,GAAG,CAAC,EACzB,oBAAoB,CAAC,GAAG,CAAC,CAC1B,CAAC;IACF,MAAM,WAAW,CACf,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAC/B,6BAA6B,CAAC,YAAY,EAAE,CAAC,CAC9C,CAAC;IACF,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEjE,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EACtC,mBAAmB,CAAC,mBAAmB,EAAE,CAAC,CAC3C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform Registry — Single source of truth for platform functions and derived helpers
|
|
3
|
+
*
|
|
4
|
+
* All platform-specific lists (backup dirs, template dirs, configured platforms, etc.)
|
|
5
|
+
* are derived from AI_TOOLS in types/ai-tools.ts. Adding a new platform requires:
|
|
6
|
+
* 1. Adding to AI_TOOLS (data)
|
|
7
|
+
* 2. Adding to PLATFORM_FUNCTIONS below (behavior)
|
|
8
|
+
* 3. Creating the configurator file + template directory
|
|
9
|
+
*/
|
|
10
|
+
import { type AITool, type CliFlag } from "../types/ai-tools.js";
|
|
11
|
+
/** All platform IDs */
|
|
12
|
+
export declare const PLATFORM_IDS: AITool[];
|
|
13
|
+
/** All platform config directory names (e.g., [".claude", ".cursor", ".opencode"]) */
|
|
14
|
+
export declare const CONFIG_DIRS: string[];
|
|
15
|
+
/** All managed paths for every platform (primary configDir + extra managed paths). */
|
|
16
|
+
export declare const PLATFORM_MANAGED_DIRS: string[];
|
|
17
|
+
/** All directories managed by Trellis (including .trellis itself) */
|
|
18
|
+
export declare const ALL_MANAGED_DIRS: string[];
|
|
19
|
+
/**
|
|
20
|
+
* Detect which platforms are configured by checking for configDir existence.
|
|
21
|
+
*
|
|
22
|
+
* Note: Detection uses only `configDir` (the platform-specific directory),
|
|
23
|
+
* NOT shared layers like `.agents/skills/`. This prevents false positives
|
|
24
|
+
* where a shared directory triggers detection of a specific platform.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getConfiguredPlatforms(cwd: string): Set<AITool>;
|
|
27
|
+
/**
|
|
28
|
+
* Get platform IDs that have Python hooks (for Windows encoding detection)
|
|
29
|
+
*/
|
|
30
|
+
export declare function getPlatformsWithPythonHooks(): AITool[];
|
|
31
|
+
/**
|
|
32
|
+
* Check if a path starts with any managed directory
|
|
33
|
+
*/
|
|
34
|
+
export declare function isManagedPath(dirPath: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Check if a directory name is a managed root directory (should not be deleted)
|
|
37
|
+
*/
|
|
38
|
+
export declare function isManagedRootDir(dirName: string): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Get all managed paths for a platform.
|
|
41
|
+
*/
|
|
42
|
+
export declare function getPlatformManagedPaths(platformId: AITool): string[];
|
|
43
|
+
/**
|
|
44
|
+
* Get the configure function for a platform
|
|
45
|
+
*/
|
|
46
|
+
export declare function configurePlatform(platformId: AITool, cwd: string): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Collect template files for a specific platform (for update tracking).
|
|
49
|
+
* Returns undefined if the platform doesn't support template tracking.
|
|
50
|
+
*/
|
|
51
|
+
export declare function collectPlatformTemplates(platformId: AITool): Map<string, string> | undefined;
|
|
52
|
+
/**
|
|
53
|
+
* Build TOOLS array for interactive init prompt, derived from AI_TOOLS registry
|
|
54
|
+
*/
|
|
55
|
+
export declare function getInitToolChoices(): {
|
|
56
|
+
key: CliFlag;
|
|
57
|
+
name: string;
|
|
58
|
+
defaultChecked: boolean;
|
|
59
|
+
platformId: AITool;
|
|
60
|
+
}[];
|
|
61
|
+
/**
|
|
62
|
+
* Resolve CLI flag name to AITool id (e.g., "claude" → "claude-code")
|
|
63
|
+
*/
|
|
64
|
+
export declare function resolveCliFlag(flag: string): AITool | undefined;
|
|
65
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configurators/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAGL,KAAK,MAAM,EACX,KAAK,OAAO,EACb,MAAM,sBAAsB,CAAC;AAsb9B,uBAAuB;AACvB,eAAO,MAAM,YAAY,EAA4B,MAAM,EAAE,CAAC;AAE9D,sFAAsF;AACtF,eAAO,MAAM,WAAW,UAAmD,CAAC;AAE5E,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,UAEjC,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,UAAkD,CAAC;AAEhF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAQ/D;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,EAAE,CAEtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAMtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAEpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,GACjB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAGjC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI;IACpC,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,EAAE,CAOF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE/D"}
|
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform Registry — Single source of truth for platform functions and derived helpers
|
|
3
|
+
*
|
|
4
|
+
* All platform-specific lists (backup dirs, template dirs, configured platforms, etc.)
|
|
5
|
+
* are derived from AI_TOOLS in types/ai-tools.ts. Adding a new platform requires:
|
|
6
|
+
* 1. Adding to AI_TOOLS (data)
|
|
7
|
+
* 2. Adding to PLATFORM_FUNCTIONS below (behavior)
|
|
8
|
+
* 3. Creating the configurator file + template directory
|
|
9
|
+
*/
|
|
10
|
+
import fs from "node:fs";
|
|
11
|
+
import path from "node:path";
|
|
12
|
+
import { AI_TOOLS, getManagedPaths, } from "../types/ai-tools.js";
|
|
13
|
+
// Platform configurators
|
|
14
|
+
import { configureClaude } from "./claude.js";
|
|
15
|
+
import { configureCursor } from "./cursor.js";
|
|
16
|
+
import { configureOpenCode, collectOpenCodeTemplates } from "./opencode.js";
|
|
17
|
+
import { configureCodex } from "./codex.js";
|
|
18
|
+
import { configureKilo } from "./kilo.js";
|
|
19
|
+
import { configureKiro } from "./kiro.js";
|
|
20
|
+
import { configureGemini } from "./gemini.js";
|
|
21
|
+
import { configureAntigravity } from "./antigravity.js";
|
|
22
|
+
import { configureWindsurf } from "./windsurf.js";
|
|
23
|
+
import { configureQoder } from "./qoder.js";
|
|
24
|
+
import { configureCodebuddy } from "./codebuddy.js";
|
|
25
|
+
import { configureCopilot } from "./copilot.js";
|
|
26
|
+
import { configureDroid } from "./droid.js";
|
|
27
|
+
import { configurePi, collectPiTemplates } from "./pi.js";
|
|
28
|
+
// Shared utilities
|
|
29
|
+
import { replacePythonCommandLiterals, resolvePlaceholders, resolveAllAsSkills, resolveAllAsSkillsNeutral, resolveBundledSkills, resolveCodexTrellisStartSkill, resolveCommands, resolveSkills, resolveSkillsNeutral, wrapWithCommandFrontmatter, collectSkillTemplates, applyPullBasedPreludeMarkdown, applyPullBasedPreludeToml, normalizeCopilotMarkdownAgents, } from "./shared.js";
|
|
30
|
+
// Platform-specific template content (hooks, agents, settings — NOT commands/skills)
|
|
31
|
+
import { getAllAgents as getClaudeAgents, getSettingsTemplate as getClaudeSettings, } from "../templates/claude/index.js";
|
|
32
|
+
import { getAllAgents as getCodexAgents, getAllCodexSkills as getCodexPlatformSkills, getAllHooks as getCodexHooks, getConfigTemplate as getCodexConfigTemplate, getHooksConfig as getCodexHooksConfig, } from "../templates/codex/index.js";
|
|
33
|
+
import { getAllHooks as getCopilotHooks, getHooksConfig as getCopilotHooksConfig, } from "../templates/copilot/index.js";
|
|
34
|
+
import { getAllAgents as getQoderAgents, getSettingsTemplate as getQoderSettings, } from "../templates/qoder/index.js";
|
|
35
|
+
import { getAllAgents as getCodebuddyAgents, getSettingsTemplate as getCodebuddySettings, } from "../templates/codebuddy/index.js";
|
|
36
|
+
import { getAllDroids as getDroidDroids, getSettingsTemplate as getDroidSettings, } from "../templates/droid/index.js";
|
|
37
|
+
import { getAllAgents as getCursorAgents, getHooksConfig as getCursorHooksConfig, } from "../templates/cursor/index.js";
|
|
38
|
+
import { getAllAgents as getGeminiAgents, getSettingsTemplate as getGeminiSettings, } from "../templates/gemini/index.js";
|
|
39
|
+
import { getAllAgents as getKiroAgents } from "../templates/kiro/index.js";
|
|
40
|
+
import { getSharedHookScriptsForPlatform, } from "../templates/shared-hooks/index.js";
|
|
41
|
+
/**
|
|
42
|
+
* Platform functions registry — maps each AITool to its behavior.
|
|
43
|
+
* When adding a new platform, add an entry here.
|
|
44
|
+
*/
|
|
45
|
+
/** Helper: collect the shared hook scripts that `platform` actually
|
|
46
|
+
* registers. Keyed off SHARED_HOOKS_BY_PLATFORM so runtime install
|
|
47
|
+
* (writeSharedHooks) and update diff (collectSharedHooks) never drift.
|
|
48
|
+
*/
|
|
49
|
+
function collectSharedHooks(hooksPath, platform) {
|
|
50
|
+
const files = new Map();
|
|
51
|
+
for (const hook of getSharedHookScriptsForPlatform(platform)) {
|
|
52
|
+
files.set(`${hooksPath}/${hook.name}`, hook.content);
|
|
53
|
+
}
|
|
54
|
+
return files;
|
|
55
|
+
}
|
|
56
|
+
/** Apply python3→python replacement to all content in a template map. */
|
|
57
|
+
function replaceInMap(map) {
|
|
58
|
+
const result = new Map();
|
|
59
|
+
for (const [key, content] of map) {
|
|
60
|
+
result.set(key, replacePythonCommandLiterals(content));
|
|
61
|
+
}
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
64
|
+
/** Helper: collect commands + skills for "both" platforms */
|
|
65
|
+
function collectBothTemplates(ctx, cmdPath, skillRoot, wrapCmd) {
|
|
66
|
+
const files = new Map();
|
|
67
|
+
for (const cmd of resolveCommands(ctx)) {
|
|
68
|
+
const filePath = cmdPath(cmd.name);
|
|
69
|
+
files.set(filePath, wrapCmd ? wrapCmd(filePath, cmd.content) : cmd.content);
|
|
70
|
+
}
|
|
71
|
+
for (const [filePath, content] of collectSkillTemplates(skillRoot, resolveSkills(ctx), resolveBundledSkills(ctx))) {
|
|
72
|
+
files.set(filePath, content);
|
|
73
|
+
}
|
|
74
|
+
return files;
|
|
75
|
+
}
|
|
76
|
+
const PLATFORM_FUNCTIONS = {
|
|
77
|
+
"claude-code": {
|
|
78
|
+
configure: configureClaude,
|
|
79
|
+
collectTemplates: () => {
|
|
80
|
+
const ctx = AI_TOOLS["claude-code"].templateContext;
|
|
81
|
+
const files = collectBothTemplates(ctx, (n) => `.claude/commands/trellis/${n}.md`, ".claude/skills");
|
|
82
|
+
for (const agent of getClaudeAgents()) {
|
|
83
|
+
files.set(`.claude/agents/${agent.name}.md`, agent.content);
|
|
84
|
+
}
|
|
85
|
+
for (const [k, v] of collectSharedHooks(".claude/hooks", "claude")) {
|
|
86
|
+
files.set(k, v);
|
|
87
|
+
}
|
|
88
|
+
const settings = getClaudeSettings();
|
|
89
|
+
files.set(`.claude/${settings.targetPath}`, resolvePlaceholders(settings.content));
|
|
90
|
+
return files;
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
cursor: {
|
|
94
|
+
configure: configureCursor,
|
|
95
|
+
collectTemplates: () => {
|
|
96
|
+
const files = collectBothTemplates(AI_TOOLS.cursor.templateContext, (n) => `.cursor/commands/trellis-${n}.md`, ".cursor/skills");
|
|
97
|
+
for (const agent of getCursorAgents()) {
|
|
98
|
+
files.set(`.cursor/agents/${agent.name}.md`, agent.content);
|
|
99
|
+
}
|
|
100
|
+
for (const [k, v] of collectSharedHooks(".cursor/hooks", "cursor")) {
|
|
101
|
+
files.set(k, v);
|
|
102
|
+
}
|
|
103
|
+
files.set(".cursor/hooks.json", resolvePlaceholders(getCursorHooksConfig()));
|
|
104
|
+
return files;
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
opencode: {
|
|
108
|
+
configure: configureOpenCode,
|
|
109
|
+
collectTemplates: () => collectOpenCodeTemplates(),
|
|
110
|
+
},
|
|
111
|
+
codex: {
|
|
112
|
+
configure: configureCodex,
|
|
113
|
+
collectTemplates: () => {
|
|
114
|
+
const files = new Map();
|
|
115
|
+
const ctx = AI_TOOLS.codex.templateContext;
|
|
116
|
+
for (const [filePath, content] of collectSkillTemplates(".agents/skills", resolveAllAsSkillsNeutral(ctx), resolveBundledSkills(ctx))) {
|
|
117
|
+
files.set(filePath, content);
|
|
118
|
+
}
|
|
119
|
+
// Mirror configureCodex's extra trellis-start write so `trellis update`
|
|
120
|
+
// picks up the file (was missing pre-0.5.7 — upgrade path silently
|
|
121
|
+
// dropped the skill).
|
|
122
|
+
const trellisStart = resolveCodexTrellisStartSkill(ctx);
|
|
123
|
+
if (trellisStart) {
|
|
124
|
+
files.set(`.agents/skills/${trellisStart.name}/SKILL.md`, trellisStart.content);
|
|
125
|
+
}
|
|
126
|
+
for (const skill of getCodexPlatformSkills()) {
|
|
127
|
+
files.set(`.codex/skills/${skill.name}/SKILL.md`, skill.content);
|
|
128
|
+
}
|
|
129
|
+
for (const agent of applyPullBasedPreludeToml(getCodexAgents())) {
|
|
130
|
+
files.set(`.codex/agents/${agent.name}.toml`, agent.content);
|
|
131
|
+
}
|
|
132
|
+
for (const hook of getCodexHooks()) {
|
|
133
|
+
files.set(`.codex/hooks/${hook.name}`, hook.content);
|
|
134
|
+
}
|
|
135
|
+
// Shared hooks (inject-workflow-state.py only) — mirror configureCodex
|
|
136
|
+
for (const [k, v] of collectSharedHooks(".codex/hooks", "codex")) {
|
|
137
|
+
files.set(k, v);
|
|
138
|
+
}
|
|
139
|
+
files.set(".codex/hooks.json", resolvePlaceholders(getCodexHooksConfig()));
|
|
140
|
+
const config = getCodexConfigTemplate();
|
|
141
|
+
files.set(`.codex/${config.targetPath}`, config.content);
|
|
142
|
+
return files;
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
kilo: {
|
|
146
|
+
configure: configureKilo,
|
|
147
|
+
collectTemplates: () => collectBothTemplates(AI_TOOLS.kilo.templateContext, (n) => `.kilocode/workflows/${n}.md`, ".kilocode/skills"),
|
|
148
|
+
},
|
|
149
|
+
kiro: {
|
|
150
|
+
configure: configureKiro,
|
|
151
|
+
collectTemplates: () => {
|
|
152
|
+
const files = new Map();
|
|
153
|
+
const ctx = AI_TOOLS.kiro.templateContext;
|
|
154
|
+
for (const [filePath, content] of collectSkillTemplates(".kiro/skills", resolveAllAsSkills(ctx), resolveBundledSkills(ctx))) {
|
|
155
|
+
files.set(filePath, content);
|
|
156
|
+
}
|
|
157
|
+
for (const agent of getKiroAgents()) {
|
|
158
|
+
files.set(`.kiro/agents/${agent.name}.json`, resolvePlaceholders(agent.content));
|
|
159
|
+
}
|
|
160
|
+
for (const [k, v] of collectSharedHooks(".kiro/hooks", "kiro")) {
|
|
161
|
+
files.set(k, v);
|
|
162
|
+
}
|
|
163
|
+
return files;
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
gemini: {
|
|
167
|
+
configure: configureGemini,
|
|
168
|
+
collectTemplates: () => {
|
|
169
|
+
const ctx = AI_TOOLS.gemini.templateContext;
|
|
170
|
+
const files = new Map();
|
|
171
|
+
for (const cmd of resolveCommands(ctx)) {
|
|
172
|
+
const toml = `description = "Trellis: ${cmd.name}"\n\nprompt = """\n${cmd.content}\n"""\n`;
|
|
173
|
+
files.set(`.gemini/commands/trellis/${cmd.name}.toml`, toml);
|
|
174
|
+
}
|
|
175
|
+
// Shared skills written to `.agents/skills/` (Gemini CLI 0.40+ workspace
|
|
176
|
+
// alias). Neutral resolver keeps content byte-identical to Codex's writes
|
|
177
|
+
// for the same skill names.
|
|
178
|
+
for (const [filePath, content] of collectSkillTemplates(".agents/skills", resolveSkillsNeutral(ctx), resolveBundledSkills(ctx))) {
|
|
179
|
+
files.set(filePath, content);
|
|
180
|
+
}
|
|
181
|
+
for (const agent of applyPullBasedPreludeMarkdown(getGeminiAgents())) {
|
|
182
|
+
files.set(`.gemini/agents/${agent.name}.md`, agent.content);
|
|
183
|
+
}
|
|
184
|
+
for (const [k, v] of collectSharedHooks(".gemini/hooks", "gemini")) {
|
|
185
|
+
files.set(k, v);
|
|
186
|
+
}
|
|
187
|
+
files.set(".gemini/settings.json", resolvePlaceholders(getGeminiSettings()));
|
|
188
|
+
return files;
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
antigravity: {
|
|
192
|
+
configure: configureAntigravity,
|
|
193
|
+
collectTemplates: () => collectBothTemplates(AI_TOOLS.antigravity.templateContext, (n) => `.agent/workflows/${n}.md`, ".agent/skills"),
|
|
194
|
+
},
|
|
195
|
+
windsurf: {
|
|
196
|
+
configure: configureWindsurf,
|
|
197
|
+
collectTemplates: () => collectBothTemplates(AI_TOOLS.windsurf.templateContext, (n) => `.windsurf/workflows/trellis-${n}.md`, ".windsurf/skills"),
|
|
198
|
+
},
|
|
199
|
+
qoder: {
|
|
200
|
+
configure: configureQoder,
|
|
201
|
+
collectTemplates: () => {
|
|
202
|
+
const files = collectBothTemplates(AI_TOOLS.qoder.templateContext, (n) => `.qoder/commands/trellis-${n}.md`, ".qoder/skills", (filePath, content) => {
|
|
203
|
+
const name = path.basename(filePath, ".md");
|
|
204
|
+
return wrapWithCommandFrontmatter(name, content);
|
|
205
|
+
});
|
|
206
|
+
for (const agent of applyPullBasedPreludeMarkdown(getQoderAgents())) {
|
|
207
|
+
files.set(`.qoder/agents/${agent.name}.md`, agent.content);
|
|
208
|
+
}
|
|
209
|
+
for (const [k, v] of collectSharedHooks(".qoder/hooks", "qoder")) {
|
|
210
|
+
files.set(k, v);
|
|
211
|
+
}
|
|
212
|
+
const settings = getQoderSettings();
|
|
213
|
+
files.set(`.qoder/${settings.targetPath}`, resolvePlaceholders(settings.content));
|
|
214
|
+
return files;
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
codebuddy: {
|
|
218
|
+
configure: configureCodebuddy,
|
|
219
|
+
collectTemplates: () => {
|
|
220
|
+
const files = collectBothTemplates(AI_TOOLS.codebuddy.templateContext, (n) => `.codebuddy/commands/trellis/${n}.md`, ".codebuddy/skills");
|
|
221
|
+
for (const agent of getCodebuddyAgents()) {
|
|
222
|
+
files.set(`.codebuddy/agents/${agent.name}.md`, agent.content);
|
|
223
|
+
}
|
|
224
|
+
for (const [k, v] of collectSharedHooks(".codebuddy/hooks", "codebuddy")) {
|
|
225
|
+
files.set(k, v);
|
|
226
|
+
}
|
|
227
|
+
const settings = getCodebuddySettings();
|
|
228
|
+
files.set(`.codebuddy/${settings.targetPath}`, resolvePlaceholders(settings.content));
|
|
229
|
+
return files;
|
|
230
|
+
},
|
|
231
|
+
},
|
|
232
|
+
copilot: {
|
|
233
|
+
configure: configureCopilot,
|
|
234
|
+
collectTemplates: () => {
|
|
235
|
+
const ctx = AI_TOOLS.copilot.templateContext;
|
|
236
|
+
const files = new Map();
|
|
237
|
+
for (const cmd of resolveCommands(ctx)) {
|
|
238
|
+
files.set(`.github/prompts/${cmd.name}.prompt.md`, cmd.content);
|
|
239
|
+
}
|
|
240
|
+
for (const [filePath, content] of collectSkillTemplates(".github/skills", resolveSkills(ctx), resolveBundledSkills(ctx))) {
|
|
241
|
+
files.set(filePath, content);
|
|
242
|
+
}
|
|
243
|
+
// Copilot's own session-start hook
|
|
244
|
+
for (const hook of getCopilotHooks()) {
|
|
245
|
+
files.set(`.github/copilot/hooks/${hook.name}`, hook.content);
|
|
246
|
+
}
|
|
247
|
+
// Shared hooks (inject-workflow-state.py only). Copilot bundles its own
|
|
248
|
+
// session-start.py above; sub-agent context is pull-based (class-2).
|
|
249
|
+
for (const [k, v] of collectSharedHooks(".github/copilot/hooks", "copilot")) {
|
|
250
|
+
files.set(k, v);
|
|
251
|
+
}
|
|
252
|
+
// Agents: reuse Cursor content + prepend pull-based prelude, then
|
|
253
|
+
// normalize Cursor's Claude-style tools frontmatter for Copilot.
|
|
254
|
+
for (const agent of applyPullBasedPreludeMarkdown(normalizeCopilotMarkdownAgents(getCursorAgents()))) {
|
|
255
|
+
files.set(`.github/agents/${agent.name}.agent.md`, agent.content);
|
|
256
|
+
}
|
|
257
|
+
const hooksConfig = resolvePlaceholders(getCopilotHooksConfig());
|
|
258
|
+
files.set(".github/copilot/hooks.json", hooksConfig);
|
|
259
|
+
files.set(".github/hooks/trellis.json", hooksConfig);
|
|
260
|
+
return files;
|
|
261
|
+
},
|
|
262
|
+
},
|
|
263
|
+
droid: {
|
|
264
|
+
configure: configureDroid,
|
|
265
|
+
collectTemplates: () => {
|
|
266
|
+
const files = collectBothTemplates(AI_TOOLS.droid.templateContext, (n) => `.factory/commands/trellis/${n}.md`, ".factory/skills");
|
|
267
|
+
for (const droid of getDroidDroids()) {
|
|
268
|
+
files.set(`.factory/droids/${droid.name}.md`, droid.content);
|
|
269
|
+
}
|
|
270
|
+
for (const [k, v] of collectSharedHooks(".factory/hooks", "droid")) {
|
|
271
|
+
files.set(k, v);
|
|
272
|
+
}
|
|
273
|
+
const settings = getDroidSettings();
|
|
274
|
+
files.set(`.factory/${settings.targetPath}`, resolvePlaceholders(settings.content));
|
|
275
|
+
return files;
|
|
276
|
+
},
|
|
277
|
+
},
|
|
278
|
+
pi: {
|
|
279
|
+
configure: configurePi,
|
|
280
|
+
collectTemplates: () => collectPiTemplates(),
|
|
281
|
+
},
|
|
282
|
+
};
|
|
283
|
+
// =============================================================================
|
|
284
|
+
// Derived Helpers — all derived from AI_TOOLS registry
|
|
285
|
+
// =============================================================================
|
|
286
|
+
/** All platform IDs */
|
|
287
|
+
export const PLATFORM_IDS = Object.keys(AI_TOOLS);
|
|
288
|
+
/** All platform config directory names (e.g., [".claude", ".cursor", ".opencode"]) */
|
|
289
|
+
export const CONFIG_DIRS = PLATFORM_IDS.map((id) => AI_TOOLS[id].configDir);
|
|
290
|
+
/** All managed paths for every platform (primary configDir + extra managed paths). */
|
|
291
|
+
export const PLATFORM_MANAGED_DIRS = PLATFORM_IDS.flatMap((id) => getManagedPaths(id));
|
|
292
|
+
/** All directories managed by Trellis (including .trellis itself) */
|
|
293
|
+
export const ALL_MANAGED_DIRS = [".trellis", ...new Set(PLATFORM_MANAGED_DIRS)];
|
|
294
|
+
/**
|
|
295
|
+
* Detect which platforms are configured by checking for configDir existence.
|
|
296
|
+
*
|
|
297
|
+
* Note: Detection uses only `configDir` (the platform-specific directory),
|
|
298
|
+
* NOT shared layers like `.agents/skills/`. This prevents false positives
|
|
299
|
+
* where a shared directory triggers detection of a specific platform.
|
|
300
|
+
*/
|
|
301
|
+
export function getConfiguredPlatforms(cwd) {
|
|
302
|
+
const platforms = new Set();
|
|
303
|
+
for (const id of PLATFORM_IDS) {
|
|
304
|
+
if (fs.existsSync(path.join(cwd, AI_TOOLS[id].configDir))) {
|
|
305
|
+
platforms.add(id);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
return platforms;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Get platform IDs that have Python hooks (for Windows encoding detection)
|
|
312
|
+
*/
|
|
313
|
+
export function getPlatformsWithPythonHooks() {
|
|
314
|
+
return PLATFORM_IDS.filter((id) => AI_TOOLS[id].hasPythonHooks);
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Check if a path starts with any managed directory
|
|
318
|
+
*/
|
|
319
|
+
export function isManagedPath(dirPath) {
|
|
320
|
+
// Normalize Windows backslashes to forward slashes for consistent matching
|
|
321
|
+
const normalized = dirPath.replace(/\\/g, "/");
|
|
322
|
+
return ALL_MANAGED_DIRS.some((d) => normalized.startsWith(d + "/") || normalized === d);
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Check if a directory name is a managed root directory (should not be deleted)
|
|
326
|
+
*/
|
|
327
|
+
export function isManagedRootDir(dirName) {
|
|
328
|
+
return ALL_MANAGED_DIRS.includes(dirName);
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Get all managed paths for a platform.
|
|
332
|
+
*/
|
|
333
|
+
export function getPlatformManagedPaths(platformId) {
|
|
334
|
+
return getManagedPaths(platformId);
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Get the configure function for a platform
|
|
338
|
+
*/
|
|
339
|
+
export function configurePlatform(platformId, cwd) {
|
|
340
|
+
return PLATFORM_FUNCTIONS[platformId].configure(cwd);
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Collect template files for a specific platform (for update tracking).
|
|
344
|
+
* Returns undefined if the platform doesn't support template tracking.
|
|
345
|
+
*/
|
|
346
|
+
export function collectPlatformTemplates(platformId) {
|
|
347
|
+
const map = PLATFORM_FUNCTIONS[platformId].collectTemplates?.();
|
|
348
|
+
return map ? replaceInMap(map) : map;
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Build TOOLS array for interactive init prompt, derived from AI_TOOLS registry
|
|
352
|
+
*/
|
|
353
|
+
export function getInitToolChoices() {
|
|
354
|
+
return PLATFORM_IDS.map((id) => ({
|
|
355
|
+
key: AI_TOOLS[id].cliFlag,
|
|
356
|
+
name: AI_TOOLS[id].name,
|
|
357
|
+
defaultChecked: AI_TOOLS[id].defaultChecked,
|
|
358
|
+
platformId: id,
|
|
359
|
+
}));
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Resolve CLI flag name to AITool id (e.g., "claude" → "claude-code")
|
|
363
|
+
*/
|
|
364
|
+
export function resolveCliFlag(flag) {
|
|
365
|
+
return PLATFORM_IDS.find((id) => AI_TOOLS[id].cliFlag === flag);
|
|
366
|
+
}
|
|
367
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/configurators/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kilo.d.ts","sourceRoot":"","sources":["../../src/configurators/kilo.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc9D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { AI_TOOLS } from "../types/ai-tools.js";
|
|
3
|
+
import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
4
|
+
import { resolveBundledSkills, resolveCommands, resolveSkills, writeSkills, } from "./shared.js";
|
|
5
|
+
/**
|
|
6
|
+
* Configure Kilo CLI:
|
|
7
|
+
* - workflows/ — start + finish-work as slash commands
|
|
8
|
+
* - skills/trellis-{name}/SKILL.md — other 5 as auto-triggered skills
|
|
9
|
+
*/
|
|
10
|
+
export async function configureKilo(cwd) {
|
|
11
|
+
const ctx = AI_TOOLS.kilo.templateContext;
|
|
12
|
+
const workflowsDir = path.join(cwd, ".kilocode", "workflows");
|
|
13
|
+
ensureDir(workflowsDir);
|
|
14
|
+
for (const cmd of resolveCommands(ctx)) {
|
|
15
|
+
await writeFile(path.join(workflowsDir, `${cmd.name}.md`), cmd.content);
|
|
16
|
+
}
|
|
17
|
+
await writeSkills(path.join(cwd, ".kilocode", "skills"), resolveSkills(ctx), resolveBundledSkills(ctx));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=kilo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kilo.js","sourceRoot":"","sources":["../../src/configurators/kilo.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,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC;IAE1C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAC9D,SAAS,CAAC,YAAY,CAAC,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,WAAW,CACf,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,EACrC,aAAa,CAAC,GAAG,CAAC,EAClB,oBAAoB,CAAC,GAAG,CAAC,CAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configure Kiro Code:
|
|
3
|
+
* - skills/trellis-{name}/SKILL.md — all templates as auto-triggered skills
|
|
4
|
+
* - agents/{name}.json — sub-agent definitions (JSON, with hooks embedded)
|
|
5
|
+
* - hooks/*.py — shared hook scripts (referenced by agent JSON hooks)
|
|
6
|
+
*/
|
|
7
|
+
export declare function configureKiro(cwd: string): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=kiro.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kiro.d.ts","sourceRoot":"","sources":["../../src/configurators/kiro.ts"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB9D"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { AI_TOOLS } from "../types/ai-tools.js";
|
|
3
|
+
import { resolvePlaceholders, resolveAllAsSkills, resolveBundledSkills, writeSkills, writeAgents, writeSharedHooks, } from "./shared.js";
|
|
4
|
+
import { getAllAgents } from "../templates/kiro/index.js";
|
|
5
|
+
/**
|
|
6
|
+
* Configure Kiro Code:
|
|
7
|
+
* - skills/trellis-{name}/SKILL.md — all templates as auto-triggered skills
|
|
8
|
+
* - agents/{name}.json — sub-agent definitions (JSON, with hooks embedded)
|
|
9
|
+
* - hooks/*.py — shared hook scripts (referenced by agent JSON hooks)
|
|
10
|
+
*/
|
|
11
|
+
export async function configureKiro(cwd) {
|
|
12
|
+
const config = AI_TOOLS.kiro;
|
|
13
|
+
// Kiro configDir is ".kiro/skills" — agents and hooks go under ".kiro/"
|
|
14
|
+
const kiroRoot = path.join(cwd, ".kiro");
|
|
15
|
+
await writeSkills(path.join(kiroRoot, "skills"), resolveAllAsSkills(config.templateContext), resolveBundledSkills(config.templateContext));
|
|
16
|
+
// Agents (JSON format, with {{PYTHON_CMD}} resolved)
|
|
17
|
+
const agents = getAllAgents().map((a) => ({
|
|
18
|
+
...a,
|
|
19
|
+
content: resolvePlaceholders(a.content),
|
|
20
|
+
}));
|
|
21
|
+
await writeAgents(path.join(kiroRoot, "agents"), agents, ".json");
|
|
22
|
+
await writeSharedHooks(path.join(kiroRoot, "hooks"), "kiro");
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=kiro.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kiro.js","sourceRoot":"","sources":["../../src/configurators/kiro.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC7B,wEAAwE;IACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAEzC,MAAM,WAAW,CACf,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAC7B,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,EAC1C,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC,CAC7C,CAAC;IAEF,qDAAqD;IACrD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxC,GAAG,CAAC;QACJ,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC;KACxC,CAAC,CAAC,CAAC;IACJ,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAElE,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Collect all opencode template files that `trellis update` should track.
|
|
3
|
+
*
|
|
4
|
+
* Must stay in sync with `configureOpenCode`: both paths produce the same
|
|
5
|
+
* `Map<relPath, content>`. If they drift, update will spuriously flag newly
|
|
6
|
+
* init'd files as modifications on the next run.
|
|
7
|
+
*/
|
|
8
|
+
export declare function collectOpenCodeTemplates(): Map<string, string>;
|
|
9
|
+
/**
|
|
10
|
+
* Configure OpenCode at init time by writing the same file set enumerated
|
|
11
|
+
* by `collectOpenCodeTemplates`.
|
|
12
|
+
*/
|
|
13
|
+
export declare function configureOpenCode(cwd: string): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=opencode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/configurators/opencode.ts"],"names":[],"mappings":"AA8EA;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAc9D;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMlE"}
|