vibe-fabric 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +171 -0
- package/dist/cli/commands/claude.d.ts +19 -0
- package/dist/cli/commands/claude.d.ts.map +1 -0
- package/dist/cli/commands/claude.js +107 -0
- package/dist/cli/commands/claude.js.map +1 -0
- package/dist/cli/commands/coverage.d.ts +37 -0
- package/dist/cli/commands/coverage.d.ts.map +1 -0
- package/dist/cli/commands/coverage.js +374 -0
- package/dist/cli/commands/coverage.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +30 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +187 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/gaps.d.ts +52 -0
- package/dist/cli/commands/gaps.d.ts.map +1 -0
- package/dist/cli/commands/gaps.js +487 -0
- package/dist/cli/commands/gaps.js.map +1 -0
- package/dist/cli/commands/help.d.ts +7 -0
- package/dist/cli/commands/help.d.ts.map +1 -0
- package/dist/cli/commands/help.js +51 -0
- package/dist/cli/commands/help.js.map +1 -0
- package/dist/cli/commands/init.d.ts +39 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +246 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/prd.d.ts +30 -0
- package/dist/cli/commands/prd.d.ts.map +1 -0
- package/dist/cli/commands/prd.js +179 -0
- package/dist/cli/commands/prd.js.map +1 -0
- package/dist/cli/commands/repo/add.d.ts +36 -0
- package/dist/cli/commands/repo/add.d.ts.map +1 -0
- package/dist/cli/commands/repo/add.js +303 -0
- package/dist/cli/commands/repo/add.js.map +1 -0
- package/dist/cli/commands/scope.d.ts +36 -0
- package/dist/cli/commands/scope.d.ts.map +1 -0
- package/dist/cli/commands/scope.js +312 -0
- package/dist/cli/commands/scope.js.map +1 -0
- package/dist/cli/commands/send.d.ts +43 -0
- package/dist/cli/commands/send.d.ts.map +1 -0
- package/dist/cli/commands/send.js +469 -0
- package/dist/cli/commands/send.js.map +1 -0
- package/dist/cli/commands/status.d.ts +32 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +422 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/sync.d.ts +37 -0
- package/dist/cli/commands/sync.d.ts.map +1 -0
- package/dist/cli/commands/sync.js +299 -0
- package/dist/cli/commands/sync.js.map +1 -0
- package/dist/cli/commands/version.d.ts +7 -0
- package/dist/cli/commands/version.d.ts.map +1 -0
- package/dist/cli/commands/version.js +45 -0
- package/dist/cli/commands/version.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +65 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/ui/components/ActiveScopes.d.ts +13 -0
- package/dist/cli/ui/components/ActiveScopes.d.ts.map +1 -0
- package/dist/cli/ui/components/ActiveScopes.js +25 -0
- package/dist/cli/ui/components/ActiveScopes.js.map +1 -0
- package/dist/cli/ui/components/EmptyState.d.ts +24 -0
- package/dist/cli/ui/components/EmptyState.d.ts.map +1 -0
- package/dist/cli/ui/components/EmptyState.js +13 -0
- package/dist/cli/ui/components/EmptyState.js.map +1 -0
- package/dist/cli/ui/components/Header.d.ts +11 -0
- package/dist/cli/ui/components/Header.d.ts.map +1 -0
- package/dist/cli/ui/components/Header.js +32 -0
- package/dist/cli/ui/components/Header.js.map +1 -0
- package/dist/cli/ui/components/PrdCoverage.d.ts +12 -0
- package/dist/cli/ui/components/PrdCoverage.d.ts.map +1 -0
- package/dist/cli/ui/components/PrdCoverage.js +15 -0
- package/dist/cli/ui/components/PrdCoverage.js.map +1 -0
- package/dist/cli/ui/components/RecentActivity.d.ts +12 -0
- package/dist/cli/ui/components/RecentActivity.d.ts.map +1 -0
- package/dist/cli/ui/components/RecentActivity.js +40 -0
- package/dist/cli/ui/components/RecentActivity.js.map +1 -0
- package/dist/cli/ui/components/RepoList.d.ts +12 -0
- package/dist/cli/ui/components/RepoList.d.ts.map +1 -0
- package/dist/cli/ui/components/RepoList.js +24 -0
- package/dist/cli/ui/components/RepoList.js.map +1 -0
- package/dist/cli/ui/components/Shortcuts.d.ts +7 -0
- package/dist/cli/ui/components/Shortcuts.d.ts.map +1 -0
- package/dist/cli/ui/components/Shortcuts.js +7 -0
- package/dist/cli/ui/components/Shortcuts.js.map +1 -0
- package/dist/cli/ui/components/index.d.ts +12 -0
- package/dist/cli/ui/components/index.d.ts.map +1 -0
- package/dist/cli/ui/components/index.js +12 -0
- package/dist/cli/ui/components/index.js.map +1 -0
- package/dist/cli/ui/dashboard.d.ts +9 -0
- package/dist/cli/ui/dashboard.d.ts.map +1 -0
- package/dist/cli/ui/dashboard.js +102 -0
- package/dist/cli/ui/dashboard.js.map +1 -0
- package/dist/core/commands.d.ts +32 -0
- package/dist/core/commands.d.ts.map +1 -0
- package/dist/core/commands.js +361 -0
- package/dist/core/commands.js.map +1 -0
- package/dist/core/config.d.ts +18 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +78 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/coverage.d.ts +32 -0
- package/dist/core/coverage.d.ts.map +1 -0
- package/dist/core/coverage.js +286 -0
- package/dist/core/coverage.js.map +1 -0
- package/dist/core/dashboard/data.d.ts +73 -0
- package/dist/core/dashboard/data.d.ts.map +1 -0
- package/dist/core/dashboard/data.js +250 -0
- package/dist/core/dashboard/data.js.map +1 -0
- package/dist/core/dependencies.d.ts +39 -0
- package/dist/core/dependencies.d.ts.map +1 -0
- package/dist/core/dependencies.js +160 -0
- package/dist/core/dependencies.js.map +1 -0
- package/dist/core/doctor/auth.d.ts +22 -0
- package/dist/core/doctor/auth.d.ts.map +1 -0
- package/dist/core/doctor/auth.js +147 -0
- package/dist/core/doctor/auth.js.map +1 -0
- package/dist/core/doctor/config.d.ts +26 -0
- package/dist/core/doctor/config.d.ts.map +1 -0
- package/dist/core/doctor/config.js +172 -0
- package/dist/core/doctor/config.js.map +1 -0
- package/dist/core/doctor/environment.d.ts +26 -0
- package/dist/core/doctor/environment.d.ts.map +1 -0
- package/dist/core/doctor/environment.js +145 -0
- package/dist/core/doctor/environment.js.map +1 -0
- package/dist/core/doctor/index.d.ts +44 -0
- package/dist/core/doctor/index.d.ts.map +1 -0
- package/dist/core/doctor/index.js +134 -0
- package/dist/core/doctor/index.js.map +1 -0
- package/dist/core/doctor/repos.d.ts +22 -0
- package/dist/core/doctor/repos.d.ts.map +1 -0
- package/dist/core/doctor/repos.js +262 -0
- package/dist/core/doctor/repos.js.map +1 -0
- package/dist/core/doctor/sync.d.ts +18 -0
- package/dist/core/doctor/sync.d.ts.map +1 -0
- package/dist/core/doctor/sync.js +146 -0
- package/dist/core/doctor/sync.js.map +1 -0
- package/dist/core/gaps.d.ts +70 -0
- package/dist/core/gaps.d.ts.map +1 -0
- package/dist/core/gaps.js +448 -0
- package/dist/core/gaps.js.map +1 -0
- package/dist/core/github.d.ts +38 -0
- package/dist/core/github.d.ts.map +1 -0
- package/dist/core/github.js +102 -0
- package/dist/core/github.js.map +1 -0
- package/dist/core/prd/analyzer.d.ts +44 -0
- package/dist/core/prd/analyzer.d.ts.map +1 -0
- package/dist/core/prd/analyzer.js +259 -0
- package/dist/core/prd/analyzer.js.map +1 -0
- package/dist/core/prd/check.d.ts +17 -0
- package/dist/core/prd/check.d.ts.map +1 -0
- package/dist/core/prd/check.js +154 -0
- package/dist/core/prd/check.js.map +1 -0
- package/dist/core/prd/index.d.ts +6 -0
- package/dist/core/prd/index.d.ts.map +1 -0
- package/dist/core/prd/index.js +6 -0
- package/dist/core/prd/index.js.map +1 -0
- package/dist/core/project.d.ts +13 -0
- package/dist/core/project.d.ts.map +1 -0
- package/dist/core/project.js +810 -0
- package/dist/core/project.js.map +1 -0
- package/dist/core/prompts.d.ts +52 -0
- package/dist/core/prompts.d.ts.map +1 -0
- package/dist/core/prompts.js +266 -0
- package/dist/core/prompts.js.map +1 -0
- package/dist/core/repo/framework.d.ts +38 -0
- package/dist/core/repo/framework.d.ts.map +1 -0
- package/dist/core/repo/framework.js +142 -0
- package/dist/core/repo/framework.js.map +1 -0
- package/dist/core/repo/index.d.ts +6 -0
- package/dist/core/repo/index.d.ts.map +1 -0
- package/dist/core/repo/index.js +6 -0
- package/dist/core/repo/index.js.map +1 -0
- package/dist/core/repo/templates/claude-agents.d.ts +6 -0
- package/dist/core/repo/templates/claude-agents.d.ts.map +1 -0
- package/dist/core/repo/templates/claude-agents.js +173 -0
- package/dist/core/repo/templates/claude-agents.js.map +1 -0
- package/dist/core/repo/templates/claude-commands.d.ts +6 -0
- package/dist/core/repo/templates/claude-commands.d.ts.map +1 -0
- package/dist/core/repo/templates/claude-commands.js +278 -0
- package/dist/core/repo/templates/claude-commands.js.map +1 -0
- package/dist/core/repo/templates/claude-prompts.d.ts +6 -0
- package/dist/core/repo/templates/claude-prompts.d.ts.map +1 -0
- package/dist/core/repo/templates/claude-prompts.js +258 -0
- package/dist/core/repo/templates/claude-prompts.js.map +1 -0
- package/dist/core/repo/templates/claude-scripts.d.ts +6 -0
- package/dist/core/repo/templates/claude-scripts.d.ts.map +1 -0
- package/dist/core/repo/templates/claude-scripts.js +212 -0
- package/dist/core/repo/templates/claude-scripts.js.map +1 -0
- package/dist/core/repo/templates/index.d.ts +22 -0
- package/dist/core/repo/templates/index.d.ts.map +1 -0
- package/dist/core/repo/templates/index.js +121 -0
- package/dist/core/repo/templates/index.js.map +1 -0
- package/dist/core/repo/templates/vibe-readme.d.ts +6 -0
- package/dist/core/repo/templates/vibe-readme.d.ts.map +1 -0
- package/dist/core/repo/templates/vibe-readme.js +204 -0
- package/dist/core/repo/templates/vibe-readme.js.map +1 -0
- package/dist/core/repo/templates/vibe-scripts.d.ts +6 -0
- package/dist/core/repo/templates/vibe-scripts.d.ts.map +1 -0
- package/dist/core/repo/templates/vibe-scripts.js +308 -0
- package/dist/core/repo/templates/vibe-scripts.js.map +1 -0
- package/dist/core/repo/validation.d.ts +46 -0
- package/dist/core/repo/validation.d.ts.map +1 -0
- package/dist/core/repo/validation.js +154 -0
- package/dist/core/repo/validation.js.map +1 -0
- package/dist/core/runner.d.ts +38 -0
- package/dist/core/runner.d.ts.map +1 -0
- package/dist/core/runner.js +124 -0
- package/dist/core/runner.js.map +1 -0
- package/dist/core/send.d.ts +83 -0
- package/dist/core/send.d.ts.map +1 -0
- package/dist/core/send.js +565 -0
- package/dist/core/send.js.map +1 -0
- package/dist/core/status.d.ts +76 -0
- package/dist/core/status.d.ts.map +1 -0
- package/dist/core/status.js +430 -0
- package/dist/core/status.js.map +1 -0
- package/dist/core/sync/aggregator.d.ts +22 -0
- package/dist/core/sync/aggregator.d.ts.map +1 -0
- package/dist/core/sync/aggregator.js +278 -0
- package/dist/core/sync/aggregator.js.map +1 -0
- package/dist/core/sync/completion.d.ts +37 -0
- package/dist/core/sync/completion.d.ts.map +1 -0
- package/dist/core/sync/completion.js +264 -0
- package/dist/core/sync/completion.js.map +1 -0
- package/dist/core/sync/index.d.ts +51 -0
- package/dist/core/sync/index.d.ts.map +1 -0
- package/dist/core/sync/index.js +200 -0
- package/dist/core/sync/index.js.map +1 -0
- package/dist/core/sync/scanner.d.ts +39 -0
- package/dist/core/sync/scanner.d.ts.map +1 -0
- package/dist/core/sync/scanner.js +364 -0
- package/dist/core/sync/scanner.js.map +1 -0
- package/dist/types/config.d.ts +157 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +58 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/coverage.d.ts +100 -0
- package/dist/types/coverage.d.ts.map +1 -0
- package/dist/types/coverage.js +8 -0
- package/dist/types/coverage.js.map +1 -0
- package/dist/types/doctor.d.ts +68 -0
- package/dist/types/doctor.d.ts.map +1 -0
- package/dist/types/doctor.js +5 -0
- package/dist/types/doctor.js.map +1 -0
- package/dist/types/gaps.d.ts +129 -0
- package/dist/types/gaps.d.ts.map +1 -0
- package/dist/types/gaps.js +8 -0
- package/dist/types/gaps.js.map +1 -0
- package/dist/types/prompts.d.ts +99 -0
- package/dist/types/prompts.d.ts.map +1 -0
- package/dist/types/prompts.js +5 -0
- package/dist/types/prompts.js.map +1 -0
- package/dist/types/runner.d.ts +156 -0
- package/dist/types/runner.d.ts.map +1 -0
- package/dist/types/runner.js +41 -0
- package/dist/types/runner.js.map +1 -0
- package/dist/types/send.d.ts +157 -0
- package/dist/types/send.d.ts.map +1 -0
- package/dist/types/send.js +18 -0
- package/dist/types/send.js.map +1 -0
- package/dist/types/status.d.ts +150 -0
- package/dist/types/status.d.ts.map +1 -0
- package/dist/types/status.js +15 -0
- package/dist/types/status.js.map +1 -0
- package/dist/types/sync.d.ts +259 -0
- package/dist/types/sync.d.ts.map +1 -0
- package/dist/types/sync.js +38 -0
- package/dist/types/sync.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/core/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAErF;;GAEG;AACH,MAAM,mBAAmB,GAAG;IAC1B,iBAAiB;IACjB,kBAAkB;IAClB,oBAAoB;IACpB,mBAAmB;IACnB,kBAAkB;IAClB,uBAAuB;IACvB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAmB,EACnB,WAAmB,EACnB,WAAgC;IAEhC,4CAA4C;IAC5C,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,4BAA4B;IAC5B,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC5C,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,wBAAwB;IACxB,MAAM,MAAM,GAAW;QACrB,OAAO,EAAE;YACP,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACjC,IAAI,EAAE,WAAW;SAClB;QACD,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,MAAM,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAEtC,uBAAuB;IACvB,MAAM,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAEnD,4CAA4C;IAC5C,MAAM,2BAA2B,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAE3C,0CAA0C;IAC1C,MAAM,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,WAAmB,EAAE,WAAmB;IACxE,qCAAqC;IACrC,MAAM,QAAQ,GAAG,KAAK,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BlC,CAAC;IAEA,kCAAkC;IAClC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;CAenB,CAAC;IAEA,YAAY;IACZ,MAAM,QAAQ,GAAG,KAAK,WAAW;;;;;;;;;;;;;;;;;;iBAkBlB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACtD,CAAC;IAEA,cAAc;IACd,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxE,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1E,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACnF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,IAAI,WAAW,GAAG,OAAO,CAAC;IAE1B,OAAO,WAAW,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACjD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,IAAI,WAAW,GAAG,SAAS,CAAC;IAE5B,OAAO,WAAW,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACjD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC;YAC3D,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,WAAmB;IACnD,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyoBtB,CAAC;IAEA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAClF,MAAM,SAAS,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt utilities - loading, parsing, and validating prompt templates
|
|
3
|
+
*/
|
|
4
|
+
import type { PromptOperation, PromptVariable, PromptMetadata, PromptVariables, SubstitutionResult, PromptValidation, OutputValidation } from '../types/prompts.js';
|
|
5
|
+
/**
|
|
6
|
+
* Get the path to a prompt file
|
|
7
|
+
*/
|
|
8
|
+
export declare function getPromptPath(projectPath: string, operation: PromptOperation, promptName: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Check if a prompt file exists
|
|
11
|
+
*/
|
|
12
|
+
export declare function promptExists(projectPath: string, operation: PromptOperation, promptName: string): Promise<boolean>;
|
|
13
|
+
/**
|
|
14
|
+
* Load a prompt template from file
|
|
15
|
+
*/
|
|
16
|
+
export declare function loadPrompt(projectPath: string, operation: PromptOperation, promptName: string): Promise<string>;
|
|
17
|
+
/**
|
|
18
|
+
* Parse the Variables table from a prompt template
|
|
19
|
+
*/
|
|
20
|
+
export declare function parseVariables(content: string): PromptVariable[];
|
|
21
|
+
/**
|
|
22
|
+
* Extract all variable references from a prompt template
|
|
23
|
+
*/
|
|
24
|
+
export declare function extractVariables(content: string): string[];
|
|
25
|
+
/**
|
|
26
|
+
* Substitute variables in a prompt template
|
|
27
|
+
*/
|
|
28
|
+
export declare function substituteVariables(template: string, variables: PromptVariables): SubstitutionResult;
|
|
29
|
+
/**
|
|
30
|
+
* Validate that all required variables are provided
|
|
31
|
+
*/
|
|
32
|
+
export declare function validateVariables(template: string, variables: PromptVariables): PromptValidation;
|
|
33
|
+
/**
|
|
34
|
+
* Parse prompt metadata from template content
|
|
35
|
+
*/
|
|
36
|
+
export declare function parsePromptMetadata(content: string, filePath: string): PromptMetadata;
|
|
37
|
+
/**
|
|
38
|
+
* List all available prompts for an operation
|
|
39
|
+
*/
|
|
40
|
+
export declare function listPrompts(projectPath: string, operation: PromptOperation): Promise<string[]>;
|
|
41
|
+
/**
|
|
42
|
+
* Validate assessment output format
|
|
43
|
+
*/
|
|
44
|
+
export declare function validateAssessmentOutput(output: unknown): OutputValidation;
|
|
45
|
+
/**
|
|
46
|
+
* Load and prepare a prompt for execution
|
|
47
|
+
*/
|
|
48
|
+
export declare function preparePrompt(projectPath: string, operation: PromptOperation, promptName: string, variables: PromptVariables): Promise<{
|
|
49
|
+
content: string;
|
|
50
|
+
validation: PromptValidation;
|
|
51
|
+
}>;
|
|
52
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/core/prompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EACV,eAAe,EAEf,cAAc,EACd,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAU7B;;GAEG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE,CAqChE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAU1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,eAAe,GACzB,kBAAkB,CAyBpB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,eAAe,GACzB,gBAAgB,CA4BlB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,cAAc,CA0BhB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,MAAM,EAAE,CAAC,CAUnB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB,CAiD1E;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAqB5D"}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt utilities - loading, parsing, and validating prompt templates
|
|
3
|
+
*/
|
|
4
|
+
import { readFile, access, readdir } from 'fs/promises';
|
|
5
|
+
import { constants } from 'fs';
|
|
6
|
+
import path from 'path';
|
|
7
|
+
const PROMPTS_DIR = '.claude/prompts';
|
|
8
|
+
/**
|
|
9
|
+
* Variable pattern: matches {VARIABLE_NAME}
|
|
10
|
+
* Only uppercase letters and underscores
|
|
11
|
+
*/
|
|
12
|
+
const VARIABLE_PATTERN = /\{([A-Z][A-Z0-9_]*)\}/g;
|
|
13
|
+
/**
|
|
14
|
+
* Get the path to a prompt file
|
|
15
|
+
*/
|
|
16
|
+
export function getPromptPath(projectPath, operation, promptName) {
|
|
17
|
+
return path.join(projectPath, PROMPTS_DIR, operation, `${promptName}.md`);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Check if a prompt file exists
|
|
21
|
+
*/
|
|
22
|
+
export async function promptExists(projectPath, operation, promptName) {
|
|
23
|
+
const promptPath = getPromptPath(projectPath, operation, promptName);
|
|
24
|
+
try {
|
|
25
|
+
await access(promptPath, constants.R_OK);
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Load a prompt template from file
|
|
34
|
+
*/
|
|
35
|
+
export async function loadPrompt(projectPath, operation, promptName) {
|
|
36
|
+
const promptPath = getPromptPath(projectPath, operation, promptName);
|
|
37
|
+
try {
|
|
38
|
+
return await readFile(promptPath, 'utf-8');
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
throw new Error(`Prompt not found: ${promptPath}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Parse the Variables table from a prompt template
|
|
46
|
+
*/
|
|
47
|
+
export function parseVariables(content) {
|
|
48
|
+
const variables = [];
|
|
49
|
+
// Find the Variables section
|
|
50
|
+
const variablesMatch = content.match(/## Variables\s*\n\n\|[^\n]+\|\s*\n\|[-|\s]+\|\s*\n((?:\|[^\n]+\|\s*\n?)+)/);
|
|
51
|
+
if (!variablesMatch) {
|
|
52
|
+
return variables;
|
|
53
|
+
}
|
|
54
|
+
const tableContent = variablesMatch[1];
|
|
55
|
+
if (!tableContent) {
|
|
56
|
+
return variables;
|
|
57
|
+
}
|
|
58
|
+
const tableRows = tableContent.trim().split('\n');
|
|
59
|
+
for (const row of tableRows) {
|
|
60
|
+
// Parse table row: | {VAR} | Description | Required |
|
|
61
|
+
const cells = row.split('|').map(c => c.trim()).filter(c => c);
|
|
62
|
+
if (cells.length >= 2) {
|
|
63
|
+
const firstCell = cells[0];
|
|
64
|
+
const secondCell = cells[1];
|
|
65
|
+
if (!firstCell || !secondCell)
|
|
66
|
+
continue;
|
|
67
|
+
const varMatch = firstCell.match(/\{([A-Z][A-Z0-9_]*)\}/);
|
|
68
|
+
if (varMatch && varMatch[1]) {
|
|
69
|
+
const thirdCell = cells[2];
|
|
70
|
+
variables.push({
|
|
71
|
+
name: varMatch[1],
|
|
72
|
+
description: secondCell,
|
|
73
|
+
required: thirdCell ? thirdCell.toLowerCase() === 'yes' : true,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return variables;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Extract all variable references from a prompt template
|
|
82
|
+
*/
|
|
83
|
+
export function extractVariables(content) {
|
|
84
|
+
const matches = content.matchAll(VARIABLE_PATTERN);
|
|
85
|
+
const variables = new Set();
|
|
86
|
+
for (const match of matches) {
|
|
87
|
+
const varName = match[1];
|
|
88
|
+
if (varName) {
|
|
89
|
+
variables.add(varName);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return Array.from(variables);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Substitute variables in a prompt template
|
|
96
|
+
*/
|
|
97
|
+
export function substituteVariables(template, variables) {
|
|
98
|
+
let content = template;
|
|
99
|
+
let substitutedCount = 0;
|
|
100
|
+
const missingVariables = [];
|
|
101
|
+
// Substitute each variable
|
|
102
|
+
for (const [key, value] of Object.entries(variables)) {
|
|
103
|
+
const pattern = new RegExp(`\\{${key}\\}`, 'g');
|
|
104
|
+
const stringValue = typeof value === 'object' ? JSON.stringify(value) : String(value);
|
|
105
|
+
const matches = content.match(pattern);
|
|
106
|
+
if (matches) {
|
|
107
|
+
content = content.replace(pattern, stringValue);
|
|
108
|
+
substitutedCount += matches.length;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Check for missing variables
|
|
112
|
+
const remainingVars = extractVariables(content);
|
|
113
|
+
missingVariables.push(...remainingVars);
|
|
114
|
+
return {
|
|
115
|
+
content,
|
|
116
|
+
substitutedCount,
|
|
117
|
+
missingVariables,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Validate that all required variables are provided
|
|
122
|
+
*/
|
|
123
|
+
export function validateVariables(template, variables) {
|
|
124
|
+
const errors = [];
|
|
125
|
+
const warnings = [];
|
|
126
|
+
// Parse declared variables from template
|
|
127
|
+
const declaredVars = parseVariables(template);
|
|
128
|
+
const providedKeys = new Set(Object.keys(variables));
|
|
129
|
+
// Check required variables
|
|
130
|
+
for (const declared of declaredVars) {
|
|
131
|
+
if (declared.required && !providedKeys.has(declared.name)) {
|
|
132
|
+
errors.push(`Missing required variable: {${declared.name}}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// Check for extra variables (not an error, just a warning)
|
|
136
|
+
const declaredNames = new Set(declaredVars.map(v => v.name));
|
|
137
|
+
for (const provided of providedKeys) {
|
|
138
|
+
if (!declaredNames.has(provided)) {
|
|
139
|
+
warnings.push(`Variable {${provided}} not declared in template`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
valid: errors.length === 0,
|
|
144
|
+
errors,
|
|
145
|
+
warnings,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Parse prompt metadata from template content
|
|
150
|
+
*/
|
|
151
|
+
export function parsePromptMetadata(content, filePath) {
|
|
152
|
+
// Extract title from first heading
|
|
153
|
+
const titleMatch = content.match(/^#\s+(.+)$/m);
|
|
154
|
+
const title = titleMatch && titleMatch[1] ? titleMatch[1] : 'Unknown';
|
|
155
|
+
// Determine operation and phase from file path
|
|
156
|
+
const pathParts = filePath.split(path.sep);
|
|
157
|
+
const promptsIndex = pathParts.indexOf('prompts');
|
|
158
|
+
const operationFromPath = promptsIndex >= 0 ? pathParts[promptsIndex + 1] : undefined;
|
|
159
|
+
const operation = operationFromPath || 'prd';
|
|
160
|
+
const fileName = path.basename(filePath, '.md');
|
|
161
|
+
let phase = 'execute';
|
|
162
|
+
if (fileName === 'assess') {
|
|
163
|
+
phase = 'assess';
|
|
164
|
+
}
|
|
165
|
+
else if (fileName === 'synthesize') {
|
|
166
|
+
phase = 'synthesize';
|
|
167
|
+
}
|
|
168
|
+
return {
|
|
169
|
+
title,
|
|
170
|
+
operation,
|
|
171
|
+
phase,
|
|
172
|
+
variables: parseVariables(content),
|
|
173
|
+
filePath,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* List all available prompts for an operation
|
|
178
|
+
*/
|
|
179
|
+
export async function listPrompts(projectPath, operation) {
|
|
180
|
+
const operationDir = path.join(projectPath, PROMPTS_DIR, operation);
|
|
181
|
+
try {
|
|
182
|
+
const files = await readdir(operationDir);
|
|
183
|
+
return files
|
|
184
|
+
.filter(f => f.endsWith('.md'))
|
|
185
|
+
.map(f => f.replace('.md', ''));
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
return [];
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Validate assessment output format
|
|
193
|
+
*/
|
|
194
|
+
export function validateAssessmentOutput(output) {
|
|
195
|
+
const missingFields = [];
|
|
196
|
+
const invalidFields = [];
|
|
197
|
+
if (!output || typeof output !== 'object') {
|
|
198
|
+
return {
|
|
199
|
+
valid: false,
|
|
200
|
+
missingFields: ['root object'],
|
|
201
|
+
invalidFields: [],
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
const data = output;
|
|
205
|
+
// Check required fields
|
|
206
|
+
if (!('complexity' in data)) {
|
|
207
|
+
missingFields.push('complexity');
|
|
208
|
+
}
|
|
209
|
+
else if (!['S', 'M', 'L', 'XL'].includes(data.complexity)) {
|
|
210
|
+
invalidFields.push('complexity (must be S, M, L, or XL)');
|
|
211
|
+
}
|
|
212
|
+
if (!('assessment' in data)) {
|
|
213
|
+
missingFields.push('assessment');
|
|
214
|
+
}
|
|
215
|
+
else if (typeof data.assessment !== 'object') {
|
|
216
|
+
invalidFields.push('assessment (must be object)');
|
|
217
|
+
}
|
|
218
|
+
if (!('tasks' in data)) {
|
|
219
|
+
missingFields.push('tasks');
|
|
220
|
+
}
|
|
221
|
+
else if (!Array.isArray(data.tasks)) {
|
|
222
|
+
invalidFields.push('tasks (must be array)');
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
// Validate each task
|
|
226
|
+
for (let i = 0; i < data.tasks.length; i++) {
|
|
227
|
+
const task = data.tasks[i];
|
|
228
|
+
const taskPrefix = `tasks[${i}]`;
|
|
229
|
+
if (!('id' in task))
|
|
230
|
+
missingFields.push(`${taskPrefix}.id`);
|
|
231
|
+
if (!('name' in task))
|
|
232
|
+
missingFields.push(`${taskPrefix}.name`);
|
|
233
|
+
if (!('description' in task))
|
|
234
|
+
missingFields.push(`${taskPrefix}.description`);
|
|
235
|
+
if (!('prompt' in task))
|
|
236
|
+
missingFields.push(`${taskPrefix}.prompt`);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return {
|
|
240
|
+
valid: missingFields.length === 0 && invalidFields.length === 0,
|
|
241
|
+
missingFields,
|
|
242
|
+
invalidFields,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Load and prepare a prompt for execution
|
|
247
|
+
*/
|
|
248
|
+
export async function preparePrompt(projectPath, operation, promptName, variables) {
|
|
249
|
+
// Load template
|
|
250
|
+
const template = await loadPrompt(projectPath, operation, promptName);
|
|
251
|
+
// Validate variables
|
|
252
|
+
const validation = validateVariables(template, variables);
|
|
253
|
+
// Substitute variables (even if validation fails, for better error reporting)
|
|
254
|
+
const { content, missingVariables } = substituteVariables(template, variables);
|
|
255
|
+
// Add missing variable errors
|
|
256
|
+
if (missingVariables.length > 0) {
|
|
257
|
+
validation.valid = false;
|
|
258
|
+
for (const v of missingVariables) {
|
|
259
|
+
if (!validation.errors.some(e => e.includes(v))) {
|
|
260
|
+
validation.errors.push(`Unsubstituted variable in template: {${v}}`);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
return { content, validation };
|
|
265
|
+
}
|
|
266
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/core/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework detection and injection for dev repositories
|
|
3
|
+
*/
|
|
4
|
+
import { Octokit } from 'octokit';
|
|
5
|
+
/**
|
|
6
|
+
* Framework detection result
|
|
7
|
+
*/
|
|
8
|
+
export interface FrameworkDetectionResult {
|
|
9
|
+
status: 'none' | 'partial' | 'complete';
|
|
10
|
+
existingFiles: string[];
|
|
11
|
+
missingFiles: string[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Framework injection result
|
|
15
|
+
*/
|
|
16
|
+
export interface FrameworkInjectionResult {
|
|
17
|
+
success: boolean;
|
|
18
|
+
filesCreated: string[];
|
|
19
|
+
commitSha?: string;
|
|
20
|
+
error?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Detect existing framework structure in a repository
|
|
24
|
+
*/
|
|
25
|
+
export declare function detectFrameworkStructure(octokit: Octokit, owner: string, repo: string, branch?: string): Promise<FrameworkDetectionResult>;
|
|
26
|
+
/**
|
|
27
|
+
* Inject framework structure into a repository via single commit
|
|
28
|
+
*/
|
|
29
|
+
export declare function injectFrameworkStructure(octokit: Octokit, owner: string, repo: string, branch: string, missingFiles: string[]): Promise<FrameworkInjectionResult>;
|
|
30
|
+
/**
|
|
31
|
+
* Get a summary of what will be injected
|
|
32
|
+
*/
|
|
33
|
+
export declare function getInjectionSummary(missingFiles: string[]): {
|
|
34
|
+
vibeFiles: string[];
|
|
35
|
+
claudeFiles: string[];
|
|
36
|
+
totalFiles: number;
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=framework.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framework.d.ts","sourceRoot":"","sources":["../../../src/core/repo/framework.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IACxC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAe,GACtB,OAAO,CAAC,wBAAwB,CAAC,CA8BnC;AAyBD;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,wBAAwB,CAAC,CA+EnC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG;IAC3D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,CASA"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework detection and injection for dev repositories
|
|
3
|
+
*/
|
|
4
|
+
import { getFrameworkFiles, getFrameworkFilePaths } from './templates/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* Detect existing framework structure in a repository
|
|
7
|
+
*/
|
|
8
|
+
export async function detectFrameworkStructure(octokit, owner, repo, branch = 'main') {
|
|
9
|
+
const allPaths = getFrameworkFilePaths();
|
|
10
|
+
const existingFiles = [];
|
|
11
|
+
const missingFiles = [];
|
|
12
|
+
// Check for each framework file
|
|
13
|
+
for (const filePath of allPaths) {
|
|
14
|
+
const exists = await fileExistsInRepo(octokit, owner, repo, filePath, branch);
|
|
15
|
+
if (exists) {
|
|
16
|
+
existingFiles.push(filePath);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
missingFiles.push(filePath);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// Determine status
|
|
23
|
+
let status;
|
|
24
|
+
if (existingFiles.length === 0) {
|
|
25
|
+
status = 'none';
|
|
26
|
+
}
|
|
27
|
+
else if (missingFiles.length === 0) {
|
|
28
|
+
status = 'complete';
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
status = 'partial';
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
status,
|
|
35
|
+
existingFiles,
|
|
36
|
+
missingFiles,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Check if a file exists in a repository
|
|
41
|
+
*/
|
|
42
|
+
async function fileExistsInRepo(octokit, owner, repo, path, branch) {
|
|
43
|
+
try {
|
|
44
|
+
await octokit.rest.repos.getContent({
|
|
45
|
+
owner,
|
|
46
|
+
repo,
|
|
47
|
+
path,
|
|
48
|
+
ref: branch,
|
|
49
|
+
});
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Inject framework structure into a repository via single commit
|
|
58
|
+
*/
|
|
59
|
+
export async function injectFrameworkStructure(octokit, owner, repo, branch, missingFiles) {
|
|
60
|
+
try {
|
|
61
|
+
// Get all framework files
|
|
62
|
+
const allFiles = getFrameworkFiles();
|
|
63
|
+
// Filter to only missing files
|
|
64
|
+
const filesToCreate = allFiles.filter((f) => missingFiles.includes(f.path));
|
|
65
|
+
if (filesToCreate.length === 0) {
|
|
66
|
+
return {
|
|
67
|
+
success: true,
|
|
68
|
+
filesCreated: [],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
// Get the current commit SHA for the branch
|
|
72
|
+
const { data: ref } = await octokit.rest.git.getRef({
|
|
73
|
+
owner,
|
|
74
|
+
repo,
|
|
75
|
+
ref: `heads/${branch}`,
|
|
76
|
+
});
|
|
77
|
+
const baseSha = ref.object.sha;
|
|
78
|
+
// Create blobs for each file
|
|
79
|
+
const blobs = await Promise.all(filesToCreate.map(async (file) => {
|
|
80
|
+
const { data: blob } = await octokit.rest.git.createBlob({
|
|
81
|
+
owner,
|
|
82
|
+
repo,
|
|
83
|
+
content: Buffer.from(file.content).toString('base64'),
|
|
84
|
+
encoding: 'base64',
|
|
85
|
+
});
|
|
86
|
+
return {
|
|
87
|
+
path: file.path,
|
|
88
|
+
mode: '100644',
|
|
89
|
+
type: 'blob',
|
|
90
|
+
sha: blob.sha,
|
|
91
|
+
};
|
|
92
|
+
}));
|
|
93
|
+
// Create a new tree with all the files
|
|
94
|
+
const { data: newTree } = await octokit.rest.git.createTree({
|
|
95
|
+
owner,
|
|
96
|
+
repo,
|
|
97
|
+
base_tree: baseSha,
|
|
98
|
+
tree: blobs,
|
|
99
|
+
});
|
|
100
|
+
// Create a commit
|
|
101
|
+
const { data: commit } = await octokit.rest.git.createCommit({
|
|
102
|
+
owner,
|
|
103
|
+
repo,
|
|
104
|
+
message: '[vibe-fabric] Initialize framework structure',
|
|
105
|
+
tree: newTree.sha,
|
|
106
|
+
parents: [baseSha],
|
|
107
|
+
});
|
|
108
|
+
// Update the branch reference to point to the new commit
|
|
109
|
+
await octokit.rest.git.updateRef({
|
|
110
|
+
owner,
|
|
111
|
+
repo,
|
|
112
|
+
ref: `heads/${branch}`,
|
|
113
|
+
sha: commit.sha,
|
|
114
|
+
});
|
|
115
|
+
return {
|
|
116
|
+
success: true,
|
|
117
|
+
filesCreated: filesToCreate.map((f) => f.path),
|
|
118
|
+
commitSha: commit.sha,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
123
|
+
return {
|
|
124
|
+
success: false,
|
|
125
|
+
filesCreated: [],
|
|
126
|
+
error: message,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Get a summary of what will be injected
|
|
132
|
+
*/
|
|
133
|
+
export function getInjectionSummary(missingFiles) {
|
|
134
|
+
const vibeFiles = missingFiles.filter((f) => f.startsWith('vibe/'));
|
|
135
|
+
const claudeFiles = missingFiles.filter((f) => f.startsWith('.claude/'));
|
|
136
|
+
return {
|
|
137
|
+
vibeFiles,
|
|
138
|
+
claudeFiles,
|
|
139
|
+
totalFiles: missingFiles.length,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=framework.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framework.js","sourceRoot":"","sources":["../../../src/core/repo/framework.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/repo/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/repo/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-agents.d.ts","sourceRoot":"","sources":["../../../../src/core/repo/templates/claude-agents.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,YAAY,EAAE,YAAY,EA4KtC,CAAC"}
|