@slopus/beer 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -8
- package/dist/_workflows/_index.d.ts +14 -0
- package/dist/_workflows/_index.d.ts.map +1 -0
- package/dist/_workflows/_index.js +46 -0
- package/dist/_workflows/_index.js.map +1 -0
- package/dist/_workflows/bootstrap.d.ts +6 -0
- package/dist/_workflows/bootstrap.d.ts.map +1 -0
- package/dist/_workflows/bootstrap.js +109 -0
- package/dist/_workflows/bootstrap.js.map +1 -0
- package/dist/_workflows/checkpointWorkflow.d.ts +7 -0
- package/dist/_workflows/checkpointWorkflow.d.ts.map +1 -0
- package/dist/_workflows/checkpointWorkflow.js +11 -0
- package/dist/_workflows/checkpointWorkflow.js.map +1 -0
- package/dist/_workflows/context/context.d.ts +100 -0
- package/dist/_workflows/context/context.d.ts.map +1 -0
- package/dist/_workflows/context/context.js +246 -0
- package/dist/_workflows/context/context.js.map +1 -0
- package/dist/_workflows/context/context.spec.d.ts +2 -0
- package/dist/_workflows/context/context.spec.d.ts.map +1 -0
- package/dist/_workflows/context/context.spec.js +230 -0
- package/dist/_workflows/context/context.spec.js.map +1 -0
- package/dist/_workflows/context/utils/contextApplyConfig.d.ts +7 -0
- package/dist/_workflows/context/utils/contextApplyConfig.d.ts.map +1 -0
- package/dist/_workflows/context/utils/contextApplyConfig.js +22 -0
- package/dist/_workflows/context/utils/contextApplyConfig.js.map +1 -0
- package/dist/_workflows/context/utils/contextApplyConfig.spec.d.ts +2 -0
- package/dist/_workflows/context/utils/contextApplyConfig.spec.d.ts.map +1 -0
- package/dist/_workflows/context/utils/contextApplyConfig.spec.js +24 -0
- package/dist/_workflows/context/utils/contextApplyConfig.spec.js.map +1 -0
- package/dist/_workflows/context/utils/contextAskGithubRepo.d.ts +7 -0
- package/dist/_workflows/context/utils/contextAskGithubRepo.d.ts.map +1 -0
- package/dist/_workflows/context/utils/contextAskGithubRepo.js +23 -0
- package/dist/_workflows/context/utils/contextAskGithubRepo.js.map +1 -0
- package/dist/_workflows/context/utils/contextAskGithubRepo.spec.d.ts +2 -0
- package/dist/_workflows/context/utils/contextAskGithubRepo.spec.d.ts.map +1 -0
- package/dist/_workflows/context/utils/contextAskGithubRepo.spec.js +36 -0
- package/dist/_workflows/context/utils/contextAskGithubRepo.spec.js.map +1 -0
- package/dist/_workflows/context/utils/contextGitignoreEnsure.d.ts +6 -0
- package/dist/_workflows/context/utils/contextGitignoreEnsure.d.ts.map +1 -0
- package/dist/_workflows/context/utils/contextGitignoreEnsure.js +60 -0
- package/dist/_workflows/context/utils/contextGitignoreEnsure.js.map +1 -0
- package/dist/_workflows/context/utils/contextGitignoreEnsure.spec.d.ts +2 -0
- package/dist/_workflows/context/utils/contextGitignoreEnsure.spec.d.ts.map +1 -0
- package/dist/_workflows/context/utils/contextGitignoreEnsure.spec.js +35 -0
- package/dist/_workflows/context/utils/contextGitignoreEnsure.spec.js.map +1 -0
- package/dist/_workflows/context/utils/progressMultilineStart.d.ts +15 -0
- package/dist/_workflows/context/utils/progressMultilineStart.d.ts.map +1 -0
- package/dist/_workflows/context/utils/progressMultilineStart.js +115 -0
- package/dist/_workflows/context/utils/progressMultilineStart.js.map +1 -0
- package/dist/_workflows/context/utils/progressMultilineStart.spec.d.ts +2 -0
- package/dist/_workflows/context/utils/progressMultilineStart.spec.d.ts.map +1 -0
- package/dist/_workflows/context/utils/progressMultilineStart.spec.js +30 -0
- package/dist/_workflows/context/utils/progressMultilineStart.spec.js.map +1 -0
- package/dist/_workflows/context/utils/progressStart.d.ts +11 -0
- package/dist/_workflows/context/utils/progressStart.d.ts.map +1 -0
- package/dist/_workflows/context/utils/progressStart.js +73 -0
- package/dist/_workflows/context/utils/progressStart.js.map +1 -0
- package/dist/_workflows/planWorkflow.d.ts +7 -0
- package/dist/_workflows/planWorkflow.d.ts.map +1 -0
- package/dist/_workflows/planWorkflow.js +63 -0
- package/dist/_workflows/planWorkflow.js.map +1 -0
- package/dist/_workflows/ralphLoopWorkflow.d.ts +7 -0
- package/dist/_workflows/ralphLoopWorkflow.d.ts.map +1 -0
- package/dist/_workflows/ralphLoopWorkflow.js +21 -0
- package/dist/_workflows/ralphLoopWorkflow.js.map +1 -0
- package/dist/_workflows/ralphWorkflow.d.ts +7 -0
- package/dist/_workflows/ralphWorkflow.d.ts.map +1 -0
- package/dist/_workflows/ralphWorkflow.js +19 -0
- package/dist/_workflows/ralphWorkflow.js.map +1 -0
- package/dist/_workflows/researchWorkflow.d.ts +7 -0
- package/dist/_workflows/researchWorkflow.d.ts.map +1 -0
- package/dist/_workflows/researchWorkflow.js +312 -0
- package/dist/_workflows/researchWorkflow.js.map +1 -0
- package/dist/_workflows/steps/generate.d.ts +11 -0
- package/dist/_workflows/steps/generate.d.ts.map +1 -0
- package/dist/_workflows/steps/generate.js +42 -0
- package/dist/_workflows/steps/generate.js.map +1 -0
- package/dist/_workflows/steps/generateCommit.d.ts +16 -0
- package/dist/_workflows/steps/generateCommit.d.ts.map +1 -0
- package/dist/_workflows/steps/generateCommit.js +29 -0
- package/dist/_workflows/steps/generateCommit.js.map +1 -0
- package/dist/_workflows/steps/generateDocument.d.ts +26 -0
- package/dist/_workflows/steps/generateDocument.d.ts.map +1 -0
- package/dist/_workflows/steps/generateDocument.js +62 -0
- package/dist/_workflows/steps/generateDocument.js.map +1 -0
- package/dist/_workflows/steps/generateDocument.spec.d.ts +2 -0
- package/dist/_workflows/steps/generateDocument.spec.d.ts.map +1 -0
- package/dist/_workflows/steps/generateDocument.spec.js +56 -0
- package/dist/_workflows/steps/generateDocument.spec.js.map +1 -0
- package/dist/_workflows/steps/generateFrontmatter.d.ts +17 -0
- package/dist/_workflows/steps/generateFrontmatter.d.ts.map +1 -0
- package/dist/_workflows/steps/generateFrontmatter.js +51 -0
- package/dist/_workflows/steps/generateFrontmatter.js.map +1 -0
- package/dist/_workflows/steps/generateProgressMessageResolve.d.ts +10 -0
- package/dist/_workflows/steps/generateProgressMessageResolve.d.ts.map +1 -0
- package/dist/_workflows/steps/generateProgressMessageResolve.js +75 -0
- package/dist/_workflows/steps/generateProgressMessageResolve.js.map +1 -0
- package/dist/_workflows/steps/generateProgressMessageResolve.spec.d.ts +2 -0
- package/dist/_workflows/steps/generateProgressMessageResolve.spec.d.ts.map +1 -0
- package/dist/_workflows/steps/generateProgressMessageResolve.spec.js +53 -0
- package/dist/_workflows/steps/generateProgressMessageResolve.spec.js.map +1 -0
- package/dist/_workflows/steps/generateReadme.d.ts +21 -0
- package/dist/_workflows/steps/generateReadme.d.ts.map +1 -0
- package/dist/_workflows/steps/generateReadme.js +32 -0
- package/dist/_workflows/steps/generateReadme.js.map +1 -0
- package/dist/_workflows/steps/ralphExecute.d.ts +11 -0
- package/dist/_workflows/steps/ralphExecute.d.ts.map +1 -0
- package/dist/_workflows/steps/ralphExecute.js +39 -0
- package/dist/_workflows/steps/ralphExecute.js.map +1 -0
- package/dist/_workflows/steps/ralphLoopExecute.d.ts +11 -0
- package/dist/_workflows/steps/ralphLoopExecute.d.ts.map +1 -0
- package/dist/_workflows/steps/ralphLoopExecute.js +39 -0
- package/dist/_workflows/steps/ralphLoopExecute.js.map +1 -0
- package/dist/_workflows/steps/ralphLoopPlanGenerate.d.ts +15 -0
- package/dist/_workflows/steps/ralphLoopPlanGenerate.d.ts.map +1 -0
- package/dist/_workflows/steps/ralphLoopPlanGenerate.js +46 -0
- package/dist/_workflows/steps/ralphLoopPlanGenerate.js.map +1 -0
- package/dist/_workflows/steps/ralphLoopPlanPathResolve.d.ts +7 -0
- package/dist/_workflows/steps/ralphLoopPlanPathResolve.d.ts.map +1 -0
- package/dist/_workflows/steps/ralphLoopPlanPathResolve.js +21 -0
- package/dist/_workflows/steps/ralphLoopPlanPathResolve.js.map +1 -0
- package/dist/_workflows/steps/ralphLoopReviewRound.d.ts +11 -0
- package/dist/_workflows/steps/ralphLoopReviewRound.d.ts.map +1 -0
- package/dist/_workflows/steps/ralphLoopReviewRound.js +42 -0
- package/dist/_workflows/steps/ralphLoopReviewRound.js.map +1 -0
- package/dist/_workflows/steps/ralphPlan.d.ts +15 -0
- package/dist/_workflows/steps/ralphPlan.d.ts.map +1 -0
- package/dist/_workflows/steps/ralphPlan.js +100 -0
- package/dist/_workflows/steps/ralphPlan.js.map +1 -0
- package/dist/_workflows/steps/ralphPlanPathResolve.d.ts +7 -0
- package/dist/_workflows/steps/ralphPlanPathResolve.d.ts.map +1 -0
- package/dist/_workflows/steps/ralphPlanPathResolve.js +21 -0
- package/dist/_workflows/steps/ralphPlanPathResolve.js.map +1 -0
- package/dist/_workflows/steps/ralphPlanPathResolve.spec.d.ts +2 -0
- package/dist/_workflows/steps/ralphPlanPathResolve.spec.d.ts.map +1 -0
- package/dist/_workflows/steps/ralphPlanPathResolve.spec.js +19 -0
- package/dist/_workflows/steps/ralphPlanPathResolve.spec.js.map +1 -0
- package/dist/_workflows/steps/ralphPlanResponseParse.d.ts +10 -0
- package/dist/_workflows/steps/ralphPlanResponseParse.d.ts.map +1 -0
- package/dist/_workflows/steps/ralphPlanResponseParse.js +35 -0
- package/dist/_workflows/steps/ralphPlanResponseParse.js.map +1 -0
- package/dist/_workflows/steps/ralphPlanResponseParse.spec.d.ts +2 -0
- package/dist/_workflows/steps/ralphPlanResponseParse.spec.d.ts.map +1 -0
- package/dist/_workflows/steps/ralphPlanResponseParse.spec.js +46 -0
- package/dist/_workflows/steps/ralphPlanResponseParse.spec.js.map +1 -0
- package/dist/_workflows/steps/ralphReview.d.ts +12 -0
- package/dist/_workflows/steps/ralphReview.d.ts.map +1 -0
- package/dist/_workflows/steps/ralphReview.js +75 -0
- package/dist/_workflows/steps/ralphReview.js.map +1 -0
- package/dist/_workflows/steps/ralphReviewNoIssuesDetect.d.ts +6 -0
- package/dist/_workflows/steps/ralphReviewNoIssuesDetect.d.ts.map +1 -0
- package/dist/_workflows/steps/ralphReviewNoIssuesDetect.js +8 -0
- package/dist/_workflows/steps/ralphReviewNoIssuesDetect.js.map +1 -0
- package/dist/_workflows/steps/ralphReviewNoIssuesDetect.spec.d.ts +2 -0
- package/dist/_workflows/steps/ralphReviewNoIssuesDetect.spec.d.ts.map +1 -0
- package/dist/_workflows/steps/ralphReviewNoIssuesDetect.spec.js +14 -0
- package/dist/_workflows/steps/ralphReviewNoIssuesDetect.spec.js.map +1 -0
- package/dist/main.js +40 -9
- package/dist/main.js.map +1 -1
- package/dist/modules/ai/aiOutputExtract.js.map +1 -1
- package/dist/modules/ai/aiOutputExtract.spec.js.map +1 -1
- package/dist/modules/ai/generate.d.ts +14 -2
- package/dist/modules/ai/generate.d.ts.map +1 -1
- package/dist/modules/ai/generate.js +113 -25
- package/dist/modules/ai/generate.js.map +1 -1
- package/dist/modules/ai/generate.spec.js +1 -8
- package/dist/modules/ai/generate.spec.js.map +1 -1
- package/dist/modules/ai/generate.unit.spec.d.ts +2 -0
- package/dist/modules/ai/generate.unit.spec.d.ts.map +1 -0
- package/dist/modules/ai/generate.unit.spec.js +185 -0
- package/dist/modules/ai/generate.unit.spec.js.map +1 -0
- package/dist/modules/ai/generateEventTypes.d.ts +26 -0
- package/dist/modules/ai/generateEventTypes.d.ts.map +1 -0
- package/dist/modules/ai/generateEventTypes.js +2 -0
- package/dist/modules/ai/generateEventTypes.js.map +1 -0
- package/dist/modules/ai/generateFile.d.ts +6 -2
- package/dist/modules/ai/generateFile.d.ts.map +1 -1
- package/dist/modules/ai/generateFile.js +25 -12
- package/dist/modules/ai/generateFile.js.map +1 -1
- package/dist/modules/ai/generateFile.spec.js +108 -7
- package/dist/modules/ai/generateFile.spec.js.map +1 -1
- package/dist/modules/ai/generatePureSessionCreate.d.ts +19 -0
- package/dist/modules/ai/generatePureSessionCreate.d.ts.map +1 -0
- package/dist/modules/ai/generatePureSessionCreate.js +31 -0
- package/dist/modules/ai/generatePureSessionCreate.js.map +1 -0
- package/dist/modules/ai/generatePureSessionCreate.spec.d.ts +2 -0
- package/dist/modules/ai/generatePureSessionCreate.spec.d.ts.map +1 -0
- package/dist/modules/ai/generatePureSessionCreate.spec.js +38 -0
- package/dist/modules/ai/generatePureSessionCreate.spec.js.map +1 -0
- package/dist/modules/ai/generatePureText.d.ts +16 -0
- package/dist/modules/ai/generatePureText.d.ts.map +1 -0
- package/dist/modules/ai/generatePureText.js +151 -0
- package/dist/modules/ai/generatePureText.js.map +1 -0
- package/dist/modules/ai/generatePureText.spec.d.ts +2 -0
- package/dist/modules/ai/generatePureText.spec.d.ts.map +1 -0
- package/dist/modules/ai/generatePureText.spec.js +67 -0
- package/dist/modules/ai/generatePureText.spec.js.map +1 -0
- package/dist/modules/ai/generateSessionCreate.d.ts +18 -0
- package/dist/modules/ai/generateSessionCreate.d.ts.map +1 -0
- package/dist/modules/ai/generateSessionCreate.js +31 -0
- package/dist/modules/ai/generateSessionCreate.js.map +1 -0
- package/dist/modules/ai/generateSessionCreate.spec.d.ts +2 -0
- package/dist/modules/ai/generateSessionCreate.spec.d.ts.map +1 -0
- package/dist/modules/ai/generateSessionCreate.spec.js +38 -0
- package/dist/modules/ai/generateSessionCreate.spec.js.map +1 -0
- package/dist/modules/ai/generateText.d.ts +4 -2
- package/dist/modules/ai/generateText.d.ts.map +1 -1
- package/dist/modules/ai/generateText.js +4 -2
- package/dist/modules/ai/generateText.js.map +1 -1
- package/dist/modules/ai/generateText.spec.js +13 -2
- package/dist/modules/ai/generateText.spec.js.map +1 -1
- package/dist/modules/ai/generateVerify.spec.d.ts +2 -0
- package/dist/modules/ai/generateVerify.spec.d.ts.map +1 -0
- package/dist/modules/ai/generateVerify.spec.js +84 -0
- package/dist/modules/ai/generateVerify.spec.js.map +1 -0
- package/dist/modules/ai/providerEventTypes.d.ts +34 -0
- package/dist/modules/ai/providerEventTypes.d.ts.map +1 -0
- package/dist/modules/ai/providerEventTypes.js +2 -0
- package/dist/modules/ai/providerEventTypes.js.map +1 -0
- package/dist/modules/ai/providerGenerate.d.ts +11 -2
- package/dist/modules/ai/providerGenerate.d.ts.map +1 -1
- package/dist/modules/ai/providerGenerate.js +355 -92
- package/dist/modules/ai/providerGenerate.js.map +1 -1
- package/dist/modules/ai/providerGenerate.spec.js +93 -1
- package/dist/modules/ai/providerGenerate.spec.js.map +1 -1
- package/dist/modules/ai/providerGenerate.unit.spec.js +346 -12
- package/dist/modules/ai/providerGenerate.unit.spec.js.map +1 -1
- package/dist/modules/ai/providers/commandJSONL.d.ts +24 -0
- package/dist/modules/ai/providers/commandJSONL.d.ts.map +1 -0
- package/dist/modules/ai/providers/commandJSONL.js +158 -0
- package/dist/modules/ai/providers/commandJSONL.js.map +1 -0
- package/dist/modules/ai/providers/commandJSONL.spec.d.ts +2 -0
- package/dist/modules/ai/providers/commandJSONL.spec.d.ts.map +1 -0
- package/dist/modules/ai/providers/commandJSONL.spec.js +77 -0
- package/dist/modules/ai/providers/commandJSONL.spec.js.map +1 -0
- package/dist/modules/ai/providers/piProviderGenerate.d.ts +25 -0
- package/dist/modules/ai/providers/piProviderGenerate.d.ts.map +1 -0
- package/dist/modules/ai/providers/piProviderGenerate.js +72 -0
- package/dist/modules/ai/providers/piProviderGenerate.js.map +1 -0
- package/dist/modules/ai/providers/piProviderGenerate.spec.d.ts +2 -0
- package/dist/modules/ai/providers/piProviderGenerate.spec.d.ts.map +1 -0
- package/dist/modules/ai/providers/piProviderGenerate.spec.js +136 -0
- package/dist/modules/ai/providers/piProviderGenerate.spec.js.map +1 -0
- package/dist/modules/ai/providers/piProviderTypes.d.ts +77 -0
- package/dist/modules/ai/providers/piProviderTypes.d.ts.map +1 -0
- package/dist/modules/ai/providers/piProviderTypes.js +2 -0
- package/dist/modules/ai/providers/piProviderTypes.js.map +1 -0
- package/dist/modules/beer/beerOriginalPathResolve.d.ts +1 -1
- package/dist/modules/beer/beerOriginalPathResolve.js +2 -2
- package/dist/modules/beer/beerOriginalPathResolve.js.map +1 -1
- package/dist/modules/beer/beerOriginalPathResolve.spec.js +3 -3
- package/dist/modules/beer/beerOriginalPathResolve.spec.js.map +1 -1
- package/dist/modules/beer/beerSettingsRead.d.ts.map +1 -1
- package/dist/modules/beer/beerSettingsRead.js +3 -2
- package/dist/modules/beer/beerSettingsRead.js.map +1 -1
- package/dist/modules/beer/beerSettingsRead.spec.d.ts +2 -0
- package/dist/modules/beer/beerSettingsRead.spec.d.ts.map +1 -0
- package/dist/modules/beer/beerSettingsRead.spec.js +26 -0
- package/dist/modules/beer/beerSettingsRead.spec.js.map +1 -0
- package/dist/modules/beer/beerSettingsTypes.d.ts +3 -3
- package/dist/modules/beer/beerSettingsTypes.d.ts.map +1 -1
- package/dist/modules/beer/beerSettingsWrite.d.ts.map +1 -1
- package/dist/modules/beer/beerSettingsWrite.js.map +1 -1
- package/dist/modules/git/gitPush.js.map +1 -1
- package/dist/modules/git/gitRemoteEnsure.js.map +1 -1
- package/dist/modules/git/gitRepoCheckout.js.map +1 -1
- package/dist/modules/git/gitRepoCheckout.spec.js +1 -1
- package/dist/modules/git/gitRepoCheckout.spec.js.map +1 -1
- package/dist/modules/git/gitRepoEnsure.d.ts +6 -0
- package/dist/modules/git/gitRepoEnsure.d.ts.map +1 -0
- package/dist/modules/git/gitRepoEnsure.js +16 -0
- package/dist/modules/git/gitRepoEnsure.js.map +1 -0
- package/dist/modules/git/gitRepoEnsure.spec.d.ts +2 -0
- package/dist/modules/git/gitRepoEnsure.spec.d.ts.map +1 -0
- package/dist/modules/git/gitRepoEnsure.spec.js +45 -0
- package/dist/modules/git/gitRepoEnsure.spec.js.map +1 -0
- package/dist/modules/git/gitStageAndCommit.js.map +1 -1
- package/dist/modules/git/gitignoreEnsure.d.ts +6 -0
- package/dist/modules/git/gitignoreEnsure.d.ts.map +1 -0
- package/dist/modules/git/gitignoreEnsure.js +36 -0
- package/dist/modules/git/gitignoreEnsure.js.map +1 -0
- package/dist/modules/git/gitignoreEnsure.spec.d.ts +2 -0
- package/dist/modules/git/gitignoreEnsure.spec.d.ts.map +1 -0
- package/dist/modules/git/gitignoreEnsure.spec.js +35 -0
- package/dist/modules/git/gitignoreEnsure.spec.js.map +1 -0
- package/dist/modules/github/githubCliEnsure.js +2 -2
- package/dist/modules/github/githubCliEnsure.js.map +1 -1
- package/dist/modules/github/githubOwnerChoicesGet.js.map +1 -1
- package/dist/modules/github/githubRepoCreate.d.ts.map +1 -1
- package/dist/modules/github/githubRepoCreate.js.map +1 -1
- package/dist/modules/github/githubRepoExists.d.ts.map +1 -1
- package/dist/modules/github/githubRepoExists.js +3 -1
- package/dist/modules/github/githubRepoExists.js.map +1 -1
- package/dist/modules/github/githubRepoNameResolve.d.ts.map +1 -1
- package/dist/modules/github/githubRepoNameResolve.js +2 -2
- package/dist/modules/github/githubRepoNameResolve.js.map +1 -1
- package/dist/modules/github/githubRepoNameResolve.spec.js.map +1 -1
- package/dist/modules/github/githubRepoParse.d.ts.map +1 -1
- package/dist/modules/github/githubRepoParse.js +1 -3
- package/dist/modules/github/githubRepoParse.js.map +1 -1
- package/dist/modules/github/githubRepoParse.spec.js.map +1 -1
- package/dist/modules/github/githubRepoStatusGet.d.ts.map +1 -1
- package/dist/modules/github/githubRepoStatusGet.js +2 -2
- package/dist/modules/github/githubRepoStatusGet.js.map +1 -1
- package/dist/modules/github/githubRepoUrlBuild.js.map +1 -1
- package/dist/modules/github/githubTypes.d.ts.map +1 -1
- package/dist/modules/github/githubViewerGet.js +2 -2
- package/dist/modules/github/githubViewerGet.js.map +1 -1
- package/dist/modules/plan/planPromptChildren.d.ts +8 -0
- package/dist/modules/plan/planPromptChildren.d.ts.map +1 -0
- package/dist/modules/plan/planPromptChildren.js +29 -0
- package/dist/modules/plan/planPromptChildren.js.map +1 -0
- package/dist/modules/plan/planPromptChildren.spec.d.ts +2 -0
- package/dist/modules/plan/planPromptChildren.spec.d.ts.map +1 -0
- package/dist/modules/plan/planPromptChildren.spec.js +25 -0
- package/dist/modules/plan/planPromptChildren.spec.js.map +1 -0
- package/dist/modules/plan/planPromptDocument.d.ts +8 -0
- package/dist/modules/plan/planPromptDocument.d.ts.map +1 -0
- package/dist/modules/plan/planPromptDocument.js +36 -0
- package/dist/modules/plan/planPromptDocument.js.map +1 -0
- package/dist/modules/plan/planPromptDocument.spec.d.ts +2 -0
- package/dist/modules/plan/planPromptDocument.spec.d.ts.map +1 -0
- package/dist/modules/plan/planPromptDocument.spec.js +26 -0
- package/dist/modules/plan/planPromptDocument.spec.js.map +1 -0
- package/dist/modules/plan/planPromptPicker.d.ts +7 -0
- package/dist/modules/plan/planPromptPicker.d.ts.map +1 -0
- package/dist/modules/plan/planPromptPicker.js +28 -0
- package/dist/modules/plan/planPromptPicker.js.map +1 -0
- package/dist/modules/plan/planPromptPicker.spec.d.ts +2 -0
- package/dist/modules/plan/planPromptPicker.spec.d.ts.map +1 -0
- package/dist/modules/plan/planPromptPicker.spec.js +21 -0
- package/dist/modules/plan/planPromptPicker.spec.js.map +1 -0
- package/dist/modules/plan/planPromptRoot.d.ts +7 -0
- package/dist/modules/plan/planPromptRoot.d.ts.map +1 -0
- package/dist/modules/plan/planPromptRoot.js +27 -0
- package/dist/modules/plan/planPromptRoot.js.map +1 -0
- package/dist/modules/plan/planPromptRoot.spec.d.ts +2 -0
- package/dist/modules/plan/planPromptRoot.spec.d.ts.map +1 -0
- package/dist/modules/plan/planPromptRoot.spec.js +16 -0
- package/dist/modules/plan/planPromptRoot.spec.js.map +1 -0
- package/dist/modules/plan/planSourceDocumentTypes.d.ts +6 -0
- package/dist/modules/plan/planSourceDocumentTypes.d.ts.map +1 -0
- package/dist/modules/plan/planSourceDocumentTypes.js +2 -0
- package/dist/modules/plan/planSourceDocumentTypes.js.map +1 -0
- package/dist/modules/plan/planSourceDocumentsResolve.d.ts +7 -0
- package/dist/modules/plan/planSourceDocumentsResolve.d.ts.map +1 -0
- package/dist/modules/plan/planSourceDocumentsResolve.js +41 -0
- package/dist/modules/plan/planSourceDocumentsResolve.js.map +1 -0
- package/dist/modules/plan/planSourceDocumentsResolve.spec.d.ts +2 -0
- package/dist/modules/plan/planSourceDocumentsResolve.spec.d.ts.map +1 -0
- package/dist/modules/plan/planSourceDocumentsResolve.spec.js +21 -0
- package/dist/modules/plan/planSourceDocumentsResolve.spec.js.map +1 -0
- package/dist/modules/prompt/promptConfirm.d.ts.map +1 -1
- package/dist/modules/prompt/promptConfirm.js +1 -1
- package/dist/modules/prompt/promptConfirm.js.map +1 -1
- package/dist/modules/prompt/promptInput.d.ts.map +1 -1
- package/dist/modules/prompt/promptInput.js +1 -1
- package/dist/modules/prompt/promptInput.js.map +1 -1
- package/dist/modules/providers/providerDetect.d.ts.map +1 -1
- package/dist/modules/providers/providerDetect.js +1 -1
- package/dist/modules/providers/providerDetect.js.map +1 -1
- package/dist/modules/providers/providerDetect.spec.js +1 -1
- package/dist/modules/providers/providerDetect.spec.js.map +1 -1
- package/dist/modules/providers/providerModelSelect.d.ts.map +1 -1
- package/dist/modules/providers/providerModelSelect.js +99 -85
- package/dist/modules/providers/providerModelSelect.js.map +1 -1
- package/dist/modules/providers/providerModelSelect.spec.js +67 -27
- package/dist/modules/providers/providerModelSelect.spec.js.map +1 -1
- package/dist/modules/providers/providerModelsGet.d.ts.map +1 -1
- package/dist/modules/providers/providerModelsGet.js +3 -7
- package/dist/modules/providers/providerModelsGet.js.map +1 -1
- package/dist/modules/providers/providerModelsGet.spec.js +1 -1
- package/dist/modules/providers/providerModelsGet.spec.js.map +1 -1
- package/dist/modules/providers/providerPriorityList.d.ts.map +1 -1
- package/dist/modules/providers/providerPriorityList.js.map +1 -1
- package/dist/modules/providers/providerPriorityList.spec.js +2 -6
- package/dist/modules/providers/providerPriorityList.spec.js.map +1 -1
- package/dist/modules/providers/providerTypes.d.ts +1 -1
- package/dist/modules/providers/providerTypes.d.ts.map +1 -1
- package/dist/modules/sandbox/sandboxInferenceFilesystemPolicy.d.ts +1 -0
- package/dist/modules/sandbox/sandboxInferenceFilesystemPolicy.d.ts.map +1 -1
- package/dist/modules/sandbox/sandboxInferenceFilesystemPolicy.js +21 -17
- package/dist/modules/sandbox/sandboxInferenceFilesystemPolicy.js.map +1 -1
- package/dist/modules/sandbox/sandboxInferenceFilesystemPolicy.spec.js +28 -10
- package/dist/modules/sandbox/sandboxInferenceFilesystemPolicy.spec.js.map +1 -1
- package/dist/modules/sandbox/sandboxInferenceGet.d.ts +2 -1
- package/dist/modules/sandbox/sandboxInferenceGet.d.ts.map +1 -1
- package/dist/modules/sandbox/sandboxInferenceGet.js +8 -3
- package/dist/modules/sandbox/sandboxInferenceGet.js.map +1 -1
- package/dist/modules/sandbox/sandboxInferenceGet.spec.js +12 -0
- package/dist/modules/sandbox/sandboxInferenceGet.spec.js.map +1 -1
- package/dist/modules/sandbox/sandboxInferenceTypes.d.ts.map +1 -1
- package/dist/modules/sandbox/sandboxPassthrough.d.ts +7 -0
- package/dist/modules/sandbox/sandboxPassthrough.d.ts.map +1 -0
- package/dist/modules/sandbox/sandboxPassthrough.js +12 -0
- package/dist/modules/sandbox/sandboxPassthrough.js.map +1 -0
- package/dist/modules/sandbox/sandboxPassthrough.spec.d.ts +2 -0
- package/dist/modules/sandbox/sandboxPassthrough.spec.d.ts.map +1 -0
- package/dist/modules/sandbox/sandboxPassthrough.spec.js +9 -0
- package/dist/modules/sandbox/sandboxPassthrough.spec.js.map +1 -0
- package/dist/modules/sandbox/sandboxTypes.d.ts.map +1 -1
- package/dist/modules/tree/treeChildrenParse.d.ts +7 -0
- package/dist/modules/tree/treeChildrenParse.d.ts.map +1 -0
- package/dist/modules/tree/treeChildrenParse.js +23 -0
- package/dist/modules/tree/treeChildrenParse.js.map +1 -0
- package/dist/modules/tree/treeChildrenRead.d.ts +7 -0
- package/dist/modules/tree/treeChildrenRead.d.ts.map +1 -0
- package/dist/modules/tree/treeChildrenRead.js +44 -0
- package/dist/modules/tree/treeChildrenRead.js.map +1 -0
- package/dist/modules/tree/treeChildrenRead.spec.d.ts +2 -0
- package/dist/modules/tree/treeChildrenRead.spec.d.ts.map +1 -0
- package/dist/modules/tree/treeChildrenRead.spec.js +43 -0
- package/dist/modules/tree/treeChildrenRead.spec.js.map +1 -0
- package/dist/modules/tree/treeChildrenWrite.d.ts +7 -0
- package/dist/modules/tree/treeChildrenWrite.d.ts.map +1 -0
- package/dist/modules/tree/treeChildrenWrite.js +15 -0
- package/dist/modules/tree/treeChildrenWrite.js.map +1 -0
- package/dist/modules/tree/treeChildrenWrite.spec.d.ts +2 -0
- package/dist/modules/tree/treeChildrenWrite.spec.d.ts.map +1 -0
- package/dist/modules/tree/treeChildrenWrite.spec.js +34 -0
- package/dist/modules/tree/treeChildrenWrite.spec.js.map +1 -0
- package/dist/modules/tree/treeInferenceProgressRun.d.ts +7 -0
- package/dist/modules/tree/treeInferenceProgressRun.d.ts.map +1 -0
- package/dist/modules/tree/treeInferenceProgressRun.js +16 -0
- package/dist/modules/tree/treeInferenceProgressRun.js.map +1 -0
- package/dist/modules/tree/treeInferenceProgressRun.spec.d.ts +2 -0
- package/dist/modules/tree/treeInferenceProgressRun.spec.d.ts.map +1 -0
- package/dist/modules/tree/treeInferenceProgressRun.spec.js +35 -0
- package/dist/modules/tree/treeInferenceProgressRun.spec.js.map +1 -0
- package/dist/modules/tree/treeLeafPick.d.ts +7 -0
- package/dist/modules/tree/treeLeafPick.d.ts.map +1 -0
- package/dist/modules/tree/treeLeafPick.js +67 -0
- package/dist/modules/tree/treeLeafPick.js.map +1 -0
- package/dist/modules/tree/treeLeafPick.spec.d.ts +2 -0
- package/dist/modules/tree/treeLeafPick.spec.d.ts.map +1 -0
- package/dist/modules/tree/treeLeafPick.spec.js +119 -0
- package/dist/modules/tree/treeLeafPick.spec.js.map +1 -0
- package/dist/modules/tree/treeNodeExpand.d.ts +12 -0
- package/dist/modules/tree/treeNodeExpand.d.ts.map +1 -0
- package/dist/modules/tree/treeNodeExpand.js +128 -0
- package/dist/modules/tree/treeNodeExpand.js.map +1 -0
- package/dist/modules/tree/treeNodeExpand.spec.d.ts +2 -0
- package/dist/modules/tree/treeNodeExpand.spec.d.ts.map +1 -0
- package/dist/modules/tree/treeNodeExpand.spec.js +146 -0
- package/dist/modules/tree/treeNodeExpand.spec.js.map +1 -0
- package/dist/modules/tree/treeNodePathResolve.d.ts +7 -0
- package/dist/modules/tree/treeNodePathResolve.d.ts.map +1 -0
- package/dist/modules/tree/treeNodePathResolve.js +9 -0
- package/dist/modules/tree/treeNodePathResolve.js.map +1 -0
- package/dist/modules/tree/treeNodeRead.d.ts +7 -0
- package/dist/modules/tree/treeNodeRead.d.ts.map +1 -0
- package/dist/modules/tree/treeNodeRead.js +46 -0
- package/dist/modules/tree/treeNodeRead.js.map +1 -0
- package/dist/modules/tree/treeNodeRead.spec.d.ts +2 -0
- package/dist/modules/tree/treeNodeRead.spec.d.ts.map +1 -0
- package/dist/modules/tree/treeNodeRead.spec.js +42 -0
- package/dist/modules/tree/treeNodeRead.spec.js.map +1 -0
- package/dist/modules/tree/treeNodeSlug.d.ts +6 -0
- package/dist/modules/tree/treeNodeSlug.d.ts.map +1 -0
- package/dist/modules/tree/treeNodeSlug.js +20 -0
- package/dist/modules/tree/treeNodeSlug.js.map +1 -0
- package/dist/modules/tree/treeNodeSlug.spec.d.ts +2 -0
- package/dist/modules/tree/treeNodeSlug.spec.d.ts.map +1 -0
- package/dist/modules/tree/treeNodeSlug.spec.js +25 -0
- package/dist/modules/tree/treeNodeSlug.spec.js.map +1 -0
- package/dist/modules/tree/treeNodeWrite.d.ts +7 -0
- package/dist/modules/tree/treeNodeWrite.d.ts.map +1 -0
- package/dist/modules/tree/treeNodeWrite.js +15 -0
- package/dist/modules/tree/treeNodeWrite.js.map +1 -0
- package/dist/modules/tree/treeNodeWrite.spec.d.ts +2 -0
- package/dist/modules/tree/treeNodeWrite.spec.d.ts.map +1 -0
- package/dist/modules/tree/treeNodeWrite.spec.js +34 -0
- package/dist/modules/tree/treeNodeWrite.spec.js.map +1 -0
- package/dist/modules/tree/treeSearchRun.d.ts +7 -0
- package/dist/modules/tree/treeSearchRun.d.ts.map +1 -0
- package/dist/modules/tree/treeSearchRun.js +178 -0
- package/dist/modules/tree/treeSearchRun.js.map +1 -0
- package/dist/modules/tree/treeSearchRun.spec.d.ts +2 -0
- package/dist/modules/tree/treeSearchRun.spec.d.ts.map +1 -0
- package/dist/modules/tree/treeSearchRun.spec.js +203 -0
- package/dist/modules/tree/treeSearchRun.spec.js.map +1 -0
- package/dist/modules/tree/treeSearchTypes.d.ts +40 -0
- package/dist/modules/tree/treeSearchTypes.d.ts.map +1 -0
- package/dist/modules/tree/treeSearchTypes.js +2 -0
- package/dist/modules/tree/treeSearchTypes.js.map +1 -0
- package/dist/modules/tree/treeSearchTypes.spec.d.ts +2 -0
- package/dist/modules/tree/treeSearchTypes.spec.d.ts.map +1 -0
- package/dist/modules/tree/treeSearchTypes.spec.js +40 -0
- package/dist/modules/tree/treeSearchTypes.spec.js.map +1 -0
- package/dist/modules/tree/treeStateLeaves.d.ts +7 -0
- package/dist/modules/tree/treeStateLeaves.d.ts.map +1 -0
- package/dist/modules/tree/treeStateLeaves.js +20 -0
- package/dist/modules/tree/treeStateLeaves.js.map +1 -0
- package/dist/modules/tree/treeStateLeaves.spec.d.ts +2 -0
- package/dist/modules/tree/treeStateLeaves.spec.d.ts.map +1 -0
- package/dist/modules/tree/treeStateLeaves.spec.js +57 -0
- package/dist/modules/tree/treeStateLeaves.spec.js.map +1 -0
- package/dist/modules/tree/treeStateRead.d.ts +7 -0
- package/dist/modules/tree/treeStateRead.d.ts.map +1 -0
- package/dist/modules/tree/treeStateRead.js +39 -0
- package/dist/modules/tree/treeStateRead.js.map +1 -0
- package/dist/modules/tree/treeStateRead.spec.d.ts +2 -0
- package/dist/modules/tree/treeStateRead.spec.d.ts.map +1 -0
- package/dist/modules/tree/treeStateRead.spec.js +64 -0
- package/dist/modules/tree/treeStateRead.spec.js.map +1 -0
- package/dist/modules/tree/treeStateRender.d.ts +7 -0
- package/dist/modules/tree/treeStateRender.d.ts.map +1 -0
- package/dist/modules/tree/treeStateRender.js +19 -0
- package/dist/modules/tree/treeStateRender.js.map +1 -0
- package/dist/modules/tree/treeStateRender.spec.d.ts +2 -0
- package/dist/modules/tree/treeStateRender.spec.d.ts.map +1 -0
- package/dist/modules/tree/treeStateRender.spec.js +42 -0
- package/dist/modules/tree/treeStateRender.spec.js.map +1 -0
- package/dist/modules/util/asyncLock.d.ts +9 -0
- package/dist/modules/util/asyncLock.d.ts.map +1 -0
- package/dist/modules/util/asyncLock.js +22 -0
- package/dist/modules/util/asyncLock.js.map +1 -0
- package/dist/modules/util/asyncLock.spec.d.ts +2 -0
- package/dist/modules/util/asyncLock.spec.d.ts.map +1 -0
- package/dist/modules/util/asyncLock.spec.js +52 -0
- package/dist/modules/util/asyncLock.spec.js.map +1 -0
- package/dist/modules/util/commandRun.d.ts +1 -1
- package/dist/modules/util/commandRun.d.ts.map +1 -1
- package/dist/modules/util/commandRun.js +26 -21
- package/dist/modules/util/commandRun.js.map +1 -1
- package/dist/modules/util/commandRun.spec.js +10 -0
- package/dist/modules/util/commandRun.spec.js.map +1 -1
- package/dist/modules/util/pathLock.d.ts +21 -0
- package/dist/modules/util/pathLock.d.ts.map +1 -0
- package/dist/modules/util/pathLock.js +127 -0
- package/dist/modules/util/pathLock.js.map +1 -0
- package/dist/modules/util/pathLock.spec.d.ts +2 -0
- package/dist/modules/util/pathLock.spec.d.ts.map +1 -0
- package/dist/modules/util/pathLock.spec.js +98 -0
- package/dist/modules/util/pathLock.spec.js.map +1 -0
- package/dist/modules/util/pathLockOverlap.d.ts +11 -0
- package/dist/modules/util/pathLockOverlap.d.ts.map +1 -0
- package/dist/modules/util/pathLockOverlap.js +41 -0
- package/dist/modules/util/pathLockOverlap.js.map +1 -0
- package/dist/modules/util/pathLockOverlap.spec.d.ts +2 -0
- package/dist/modules/util/pathLockOverlap.spec.d.ts.map +1 -0
- package/dist/modules/util/pathLockOverlap.spec.js +34 -0
- package/dist/modules/util/pathLockOverlap.spec.js.map +1 -0
- package/dist/modules/util/pathResolveFromInitCwd.d.ts +1 -1
- package/dist/modules/util/pathResolveFromInitCwd.js +1 -1
- package/dist/modules/util/pathResolveFromInitCwd.js.map +1 -1
- package/dist/release/releaseRun.d.ts.map +1 -1
- package/dist/release/releaseRun.js +13 -26
- package/dist/release/releaseRun.js.map +1 -1
- package/dist/release/releaseVersionIncrement.d.ts.map +1 -1
- package/dist/release/releaseVersionIncrement.js.map +1 -1
- package/dist/release/releaseVersionIncrement.spec.js.map +1 -1
- package/dist/release/releaseVersionPrompt.d.ts.map +1 -1
- package/dist/release/releaseVersionPrompt.js +8 -9
- package/dist/release/releaseVersionPrompt.js.map +1 -1
- package/dist/text/all.txt +66 -1
- package/dist/text/text.d.ts +11 -5
- package/dist/text/text.d.ts.map +1 -1
- package/dist/text/text.gen.d.ts +378 -0
- package/dist/text/text.gen.d.ts.map +1 -0
- package/dist/text/text.gen.js +135 -0
- package/dist/text/text.gen.js.map +1 -0
- package/dist/text/text.js +31 -26
- package/dist/text/text.js.map +1 -1
- package/dist/text/text.spec.d.ts +2 -0
- package/dist/text/text.spec.d.ts.map +1 -0
- package/dist/text/text.spec.js +50 -0
- package/dist/text/text.spec.js.map +1 -0
- package/dist/text/textGenBuild.d.ts +6 -0
- package/dist/text/textGenBuild.d.ts.map +1 -0
- package/dist/text/textGenBuild.js +14 -0
- package/dist/text/textGenBuild.js.map +1 -0
- package/dist/text/textGenGenerate.d.ts +6 -0
- package/dist/text/textGenGenerate.d.ts.map +1 -0
- package/dist/text/textGenGenerate.js +74 -0
- package/dist/text/textGenGenerate.js.map +1 -0
- package/dist/text/textGenGenerate.spec.d.ts +2 -0
- package/dist/text/textGenGenerate.spec.d.ts.map +1 -0
- package/dist/text/textGenGenerate.spec.js +24 -0
- package/dist/text/textGenGenerate.spec.js.map +1 -0
- package/dist/types.d.ts +5 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +11 -6
- package/dist/apps/bootstrap.d.ts +0 -5
- package/dist/apps/bootstrap.d.ts.map +0 -1
- package/dist/apps/bootstrap.js +0 -170
- package/dist/apps/bootstrap.js.map +0 -1
- package/dist/commands/bootstrapCommand.d.ts +0 -6
- package/dist/commands/bootstrapCommand.d.ts.map +0 -1
- package/dist/commands/bootstrapCommand.js +0 -16
- package/dist/commands/bootstrapCommand.js.map +0 -1
- package/dist/modules/ai/aiReadmeGenerate.d.ts +0 -18
- package/dist/modules/ai/aiReadmeGenerate.d.ts.map +0 -1
- package/dist/modules/ai/aiReadmeGenerate.js +0 -23
- package/dist/modules/ai/aiReadmeGenerate.js.map +0 -1
- package/dist/modules/ai/aiReadmeGenerate.spec.d.ts +0 -2
- package/dist/modules/ai/aiReadmeGenerate.spec.d.ts.map +0 -1
- package/dist/modules/ai/aiReadmeGenerate.spec.js +0 -27
- package/dist/modules/ai/aiReadmeGenerate.spec.js.map +0 -1
- package/dist/modules/beer/beerDevFolderResolve.d.ts +0 -5
- package/dist/modules/beer/beerDevFolderResolve.d.ts.map +0 -1
- package/dist/modules/beer/beerDevFolderResolve.js +0 -9
- package/dist/modules/beer/beerDevFolderResolve.js.map +0 -1
- package/dist/modules/beer/beerDevFolderResolve.spec.d.ts +0 -2
- package/dist/modules/beer/beerDevFolderResolve.spec.d.ts.map +0 -1
- package/dist/modules/beer/beerDevFolderResolve.spec.js +0 -10
- package/dist/modules/beer/beerDevFolderResolve.spec.js.map +0 -1
- package/dist/modules/beer/beerSettingsPathResolve.d.ts +0 -5
- package/dist/modules/beer/beerSettingsPathResolve.d.ts.map +0 -1
- package/dist/modules/beer/beerSettingsPathResolve.js +0 -9
- package/dist/modules/beer/beerSettingsPathResolve.js.map +0 -1
- package/dist/modules/beer/beerSettingsPathResolve.spec.d.ts +0 -2
- package/dist/modules/beer/beerSettingsPathResolve.spec.d.ts.map +0 -1
- package/dist/modules/beer/beerSettingsPathResolve.spec.js +0 -10
- package/dist/modules/beer/beerSettingsPathResolve.spec.js.map +0 -1
- package/dist/modules/context/contextGet.d.ts +0 -7
- package/dist/modules/context/contextGet.d.ts.map +0 -1
- package/dist/modules/context/contextGet.js +0 -12
- package/dist/modules/context/contextGet.js.map +0 -1
- package/dist/modules/context/contextGetOrInitialize.d.ts +0 -7
- package/dist/modules/context/contextGetOrInitialize.d.ts.map +0 -1
- package/dist/modules/context/contextGetOrInitialize.js +0 -12
- package/dist/modules/context/contextGetOrInitialize.js.map +0 -1
- package/dist/modules/context/contextInitialize.d.ts +0 -7
- package/dist/modules/context/contextInitialize.d.ts.map +0 -1
- package/dist/modules/context/contextInitialize.js +0 -25
- package/dist/modules/context/contextInitialize.js.map +0 -1
- package/dist/modules/context/contextInitialize.spec.d.ts +0 -2
- package/dist/modules/context/contextInitialize.spec.d.ts.map +0 -1
- package/dist/modules/context/contextInitialize.spec.js +0 -77
- package/dist/modules/context/contextInitialize.spec.js.map +0 -1
- package/dist/modules/context/contextTypes.d.ts +0 -21
- package/dist/modules/context/contextTypes.d.ts.map +0 -1
- package/dist/modules/context/contextTypes.js +0 -2
- package/dist/modules/context/contextTypes.js.map +0 -1
- package/dist/workflows/steps/generateCommitMessage.d.ts +0 -13
- package/dist/workflows/steps/generateCommitMessage.d.ts.map +0 -1
- package/dist/workflows/steps/generateCommitMessage.js +0 -25
- package/dist/workflows/steps/generateCommitMessage.js.map +0 -1
- package/dist/workflows/steps/generateCommitMessage.spec.d.ts +0 -2
- package/dist/workflows/steps/generateCommitMessage.spec.d.ts.map +0 -1
- package/dist/workflows/steps/generateCommitMessage.spec.js +0 -28
- package/dist/workflows/steps/generateCommitMessage.spec.js.map +0 -1
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { text, textFormatKey } from "@text";
|
|
4
|
+
import { generateProgressMessageResolve } from "@/_workflows/steps/generateProgressMessageResolve.js";
|
|
5
|
+
import { ralphPlanPathResolve } from "@/_workflows/steps/ralphPlanPathResolve.js";
|
|
6
|
+
import { ralphPlanResponseParse } from "@/_workflows/steps/ralphPlanResponseParse.js";
|
|
7
|
+
import { generateSessionCreate } from "@/modules/ai/generateSessionCreate.js";
|
|
8
|
+
import { promptInput } from "@/modules/prompt/promptInput.js";
|
|
9
|
+
const initialPlanningPromptTemplate = [
|
|
10
|
+
"Create an implementation plan for this build goal: {{buildGoal}}",
|
|
11
|
+
"Respond using this exact structure:",
|
|
12
|
+
"<plan>",
|
|
13
|
+
"(full markdown plan with Overview, Validation Commands, and Implementation Steps with checkbox tasks)",
|
|
14
|
+
"</plan>",
|
|
15
|
+
"<questions>",
|
|
16
|
+
"(numbered clarifying questions, one per line)",
|
|
17
|
+
"</questions>",
|
|
18
|
+
"Rules:",
|
|
19
|
+
"- keep the plan concrete and scoped to this repository",
|
|
20
|
+
"- include tests for all code tasks",
|
|
21
|
+
"- if no clarifications are needed, omit the <questions> block entirely"
|
|
22
|
+
].join("\n");
|
|
23
|
+
const refinePlanPromptTemplate = [
|
|
24
|
+
"Refine the implementation plan using the latest user input.",
|
|
25
|
+
"Respond using the same structure as before (<plan> and optional <questions>).",
|
|
26
|
+
"If all clarifications are resolved, return only <plan> without <questions>."
|
|
27
|
+
].join("\n");
|
|
28
|
+
const rejectedPlanPromptTemplate = [
|
|
29
|
+
"The user rejected the current plan.",
|
|
30
|
+
"User feedback:",
|
|
31
|
+
"{{feedback}}",
|
|
32
|
+
"Revise the plan accordingly and respond using <plan> and optional <questions> tags."
|
|
33
|
+
].join("\n");
|
|
34
|
+
/**
|
|
35
|
+
* Runs an Opus planning loop with clarifying questions until user approval.
|
|
36
|
+
* Expects: buildGoal is non-empty and ctx.projectPath is writable for plan persistence.
|
|
37
|
+
*/
|
|
38
|
+
export async function ralphPlan(ctx, buildGoal, options = {}) {
|
|
39
|
+
const goal = buildGoal.trim();
|
|
40
|
+
if (!goal) {
|
|
41
|
+
throw new Error(text.error_ralph_goal_required);
|
|
42
|
+
}
|
|
43
|
+
const planPath = options.planPath ?? ralphPlanPathResolve(ctx, goal);
|
|
44
|
+
const session = generateSessionCreate(ctx, {
|
|
45
|
+
permissions: {
|
|
46
|
+
modelSelectionMode: "opus",
|
|
47
|
+
writePolicy: { mode: "read-only" }
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
let result = await ralphSessionGenerateWithProgress(ctx, session, initialPlanningPromptTemplate.replace(/\{\{buildGoal\}\}/g, goal), text.inference_ralph_planning);
|
|
51
|
+
let parsed = ralphPlanResponseParse(result.text);
|
|
52
|
+
while (true) {
|
|
53
|
+
while (parsed.questions.length > 0) {
|
|
54
|
+
const questionsAndAnswers = await ralphPlanQuestionsAndAnswersPrompt(parsed.questions);
|
|
55
|
+
result = await ralphSessionGenerateWithProgress(ctx, session, `${refinePlanPromptTemplate}\n\n${questionsAndAnswers}`, text.inference_ralph_plan_refining);
|
|
56
|
+
parsed = ralphPlanResponseParse(result.text);
|
|
57
|
+
}
|
|
58
|
+
const approved = ralphPlanApprovalParse(await promptInput(`${parsed.plan}\n\n${text.ralph_plan_approve_prompt}`, "y"));
|
|
59
|
+
if (approved) {
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
const feedback = await promptInput(text.ralph_plan_feedback_prompt);
|
|
63
|
+
const feedbackNormalized = feedback.trim() || "Improve the plan based on my rejection and clarify assumptions.";
|
|
64
|
+
result = await ralphSessionGenerateWithProgress(ctx, session, rejectedPlanPromptTemplate.replace(/\{\{feedback\}\}/g, feedbackNormalized), text.inference_ralph_plan_refining);
|
|
65
|
+
parsed = ralphPlanResponseParse(result.text);
|
|
66
|
+
}
|
|
67
|
+
const absolutePath = path.resolve(ctx.projectPath, planPath);
|
|
68
|
+
await mkdir(path.dirname(absolutePath), { recursive: true });
|
|
69
|
+
await writeFile(absolutePath, `${parsed.plan.trim()}\n`, "utf-8");
|
|
70
|
+
return {
|
|
71
|
+
planPath,
|
|
72
|
+
provider: result.provider,
|
|
73
|
+
sessionId: result.sessionId,
|
|
74
|
+
text: parsed.plan
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
async function ralphSessionGenerateWithProgress(ctx, session, prompt, progressMessage) {
|
|
78
|
+
let tokenCount = 0;
|
|
79
|
+
return ctx.progress(`${progressMessage} (starting, tokens 0)`, async (report) => session.generate(prompt, {
|
|
80
|
+
showProgress: false,
|
|
81
|
+
onEvent: (event) => {
|
|
82
|
+
const updated = generateProgressMessageResolve(progressMessage, event, tokenCount);
|
|
83
|
+
tokenCount = updated.tokenCount;
|
|
84
|
+
report(updated.message);
|
|
85
|
+
}
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
function ralphPlanApprovalParse(value) {
|
|
89
|
+
const normalized = value.trim().toLowerCase();
|
|
90
|
+
return normalized === "y" || normalized === "yes";
|
|
91
|
+
}
|
|
92
|
+
async function ralphPlanQuestionsAndAnswersPrompt(questions) {
|
|
93
|
+
const pairs = [];
|
|
94
|
+
for (const question of questions) {
|
|
95
|
+
const answer = await promptInput(textFormatKey("ralph_plan_questions_prompt", { question }));
|
|
96
|
+
pairs.push(`- Q: ${question}\n A: ${answer || "(no additional details)"}`);
|
|
97
|
+
}
|
|
98
|
+
return ["User answers:", ...pairs].join("\n");
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=ralphPlan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralphPlan.js","sourceRoot":"","sources":["../../../sources/_workflows/steps/ralphPlan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Context } from "@/types";
|
|
2
|
+
/**
|
|
3
|
+
* Resolves a deterministic plan file path for ralph.
|
|
4
|
+
* Expects: buildGoal is free-form user text describing what to build.
|
|
5
|
+
*/
|
|
6
|
+
export declare function ralphPlanPathResolve(_ctx: Context, buildGoal: string, nowMs?: number): string;
|
|
7
|
+
//# sourceMappingURL=ralphPlanPathResolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralphPlanPathResolve.d.ts","sourceRoot":"","sources":["../../../sources/_workflows/steps/ralphPlanPathResolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAAmB,GAAG,MAAM,CAIzG"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves a deterministic plan file path for ralph.
|
|
3
|
+
* Expects: buildGoal is free-form user text describing what to build.
|
|
4
|
+
*/
|
|
5
|
+
export function ralphPlanPathResolve(_ctx, buildGoal, nowMs = Date.now()) {
|
|
6
|
+
const date = new Date(nowMs).toISOString().slice(0, 10).replace(/-/g, "");
|
|
7
|
+
const slug = ralphPlanSlugResolve(buildGoal);
|
|
8
|
+
return `doc/plans/${date}-${slug}.md`;
|
|
9
|
+
}
|
|
10
|
+
function ralphPlanSlugResolve(input) {
|
|
11
|
+
const base = input
|
|
12
|
+
.toLowerCase()
|
|
13
|
+
.trim()
|
|
14
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
15
|
+
.replace(/^-+|-+$/g, "");
|
|
16
|
+
if (!base) {
|
|
17
|
+
return "task";
|
|
18
|
+
}
|
|
19
|
+
return base.slice(0, 48).replace(/-+$/g, "") || "task";
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=ralphPlanPathResolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralphPlanPathResolve.js","sourceRoot":"","sources":["../../../sources/_workflows/steps/ralphPlanPathResolve.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAa,EAAE,SAAiB,EAAE,QAAgB,IAAI,CAAC,GAAG,EAAE;IAC7F,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,aAAa,IAAI,IAAI,IAAI,KAAK,CAAC;AAC1C,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACvC,MAAM,IAAI,GAAG,KAAK;SACb,WAAW,EAAE;SACb,IAAI,EAAE;SACN,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralphPlanPathResolve.spec.d.ts","sourceRoot":"","sources":["../../../sources/_workflows/steps/ralphPlanPathResolve.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { ralphPlanPathResolve } from "./ralphPlanPathResolve.js";
|
|
3
|
+
describe("ralphPlanPathResolve", () => {
|
|
4
|
+
const context = {};
|
|
5
|
+
const nowMs = Date.UTC(2026, 1, 14, 9, 30, 0);
|
|
6
|
+
it("slugifies special characters and lowercases words", () => {
|
|
7
|
+
const path = ralphPlanPathResolve(context, "Fix API: OAuth + SSO!!!", nowMs);
|
|
8
|
+
expect(path).toBe("doc/plans/20260214-fix-api-oauth-sso.md");
|
|
9
|
+
});
|
|
10
|
+
it("falls back to task slug when input has no slug chars", () => {
|
|
11
|
+
const path = ralphPlanPathResolve(context, "!!! ???", nowMs);
|
|
12
|
+
expect(path).toBe("doc/plans/20260214-task.md");
|
|
13
|
+
});
|
|
14
|
+
it("trims long slugs to 48 characters", () => {
|
|
15
|
+
const path = ralphPlanPathResolve(context, "This is a very long goal to verify deterministic truncation of the generated slug value", nowMs);
|
|
16
|
+
expect(path).toBe("doc/plans/20260214-this-is-a-very-long-goal-to-verify-deterministic.md");
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=ralphPlanPathResolve.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralphPlanPathResolve.spec.js","sourceRoot":"","sources":["../../../sources/_workflows/steps/ralphPlanPathResolve.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,MAAM,OAAO,GAAG,EAAa,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE9C,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QACzD,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,EAAE,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAC7E,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC5D,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QACzC,MAAM,IAAI,GAAG,oBAAoB,CAC7B,OAAO,EACP,yFAAyF,EACzF,KAAK,CACR,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface RalphPlanResponse {
|
|
2
|
+
plan: string;
|
|
3
|
+
questions: string[];
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Parses planning output with <plan> and optional <questions> tags.
|
|
7
|
+
* Expects: text is model output and must include a non-empty <plan> section.
|
|
8
|
+
*/
|
|
9
|
+
export declare function ralphPlanResponseParse(text: string): RalphPlanResponse;
|
|
10
|
+
//# sourceMappingURL=ralphPlanResponseParse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralphPlanResponseParse.d.ts","sourceRoot":"","sources":["../../../sources/_workflows/steps/ralphPlanResponseParse.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAmBtE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parses planning output with <plan> and optional <questions> tags.
|
|
3
|
+
* Expects: text is model output and must include a non-empty <plan> section.
|
|
4
|
+
*/
|
|
5
|
+
export function ralphPlanResponseParse(text) {
|
|
6
|
+
const planMatch = text.match(/<plan>([\s\S]*?)<\/plan>/i);
|
|
7
|
+
if (!planMatch) {
|
|
8
|
+
throw new Error("Planning response is missing <plan>...</plan> tags.");
|
|
9
|
+
}
|
|
10
|
+
const plan = planMatch[1]?.trim();
|
|
11
|
+
if (!plan) {
|
|
12
|
+
throw new Error("Planning response contains an empty <plan> section.");
|
|
13
|
+
}
|
|
14
|
+
const questionsMatch = text.match(/<questions>([\s\S]*?)<\/questions>/i);
|
|
15
|
+
if (!questionsMatch) {
|
|
16
|
+
return { plan, questions: [] };
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
plan,
|
|
20
|
+
questions: ralphPlanQuestionsParse(questionsMatch[1] ?? "")
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function ralphPlanQuestionsParse(rawQuestions) {
|
|
24
|
+
const lines = rawQuestions
|
|
25
|
+
.split(/\r?\n/)
|
|
26
|
+
.map((line) => line.trim())
|
|
27
|
+
.filter((line) => line.length > 0);
|
|
28
|
+
if (lines.length === 1 && /^none\.?$/i.test(lines[0])) {
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
return lines
|
|
32
|
+
.map((line) => line.replace(/^(?:\d+[).\]:-]?\s*|[-*+]\s+)/, "").trim())
|
|
33
|
+
.filter((line) => line.length > 0);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=ralphPlanResponseParse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralphPlanResponseParse.js","sourceRoot":"","sources":["../../../sources/_workflows/steps/ralphPlanResponseParse.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC1D,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzE,IAAI,CAAC,cAAc,EAAE,CAAC;QAClB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IACnC,CAAC;IAED,OAAO;QACH,IAAI;QACJ,SAAS,EAAE,uBAAuB,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KAC9D,CAAC;AACN,CAAC;AAED,SAAS,uBAAuB,CAAC,YAAoB;IACjD,MAAM,KAAK,GAAG,YAAY;SACrB,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,OAAO,KAAK;SACP,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;SACvE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralphPlanResponseParse.spec.d.ts","sourceRoot":"","sources":["../../../sources/_workflows/steps/ralphPlanResponseParse.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { ralphPlanResponseParse } from "./ralphPlanResponseParse.js";
|
|
3
|
+
describe("ralphPlanResponseParse", () => {
|
|
4
|
+
it("parses plan and numbered questions", () => {
|
|
5
|
+
const result = ralphPlanResponseParse(`
|
|
6
|
+
<plan>
|
|
7
|
+
# Plan
|
|
8
|
+
Do work
|
|
9
|
+
</plan>
|
|
10
|
+
<questions>
|
|
11
|
+
1. Which runtime should we target?
|
|
12
|
+
2) Should this support dry run?
|
|
13
|
+
</questions>
|
|
14
|
+
`);
|
|
15
|
+
expect(result).toEqual({
|
|
16
|
+
plan: "# Plan\nDo work",
|
|
17
|
+
questions: ["Which runtime should we target?", "Should this support dry run?"]
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
it("returns no questions when questions tag is omitted", () => {
|
|
21
|
+
const result = ralphPlanResponseParse(`
|
|
22
|
+
<plan>
|
|
23
|
+
Plan only
|
|
24
|
+
</plan>
|
|
25
|
+
`);
|
|
26
|
+
expect(result).toEqual({
|
|
27
|
+
plan: "Plan only",
|
|
28
|
+
questions: []
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
it("treats questions block with none as empty", () => {
|
|
32
|
+
const result = ralphPlanResponseParse(`
|
|
33
|
+
<plan>
|
|
34
|
+
Plan only
|
|
35
|
+
</plan>
|
|
36
|
+
<questions>
|
|
37
|
+
none
|
|
38
|
+
</questions>
|
|
39
|
+
`);
|
|
40
|
+
expect(result.questions).toEqual([]);
|
|
41
|
+
});
|
|
42
|
+
it("throws when plan tag is missing", () => {
|
|
43
|
+
expect(() => ralphPlanResponseParse("<questions>1. Q?</questions>")).toThrow("Planning response is missing <plan>...</plan> tags.");
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=ralphPlanResponseParse.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralphPlanResponseParse.spec.js","sourceRoot":"","sources":["../../../sources/_workflows/steps/ralphPlanResponseParse.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,sBAAsB,CAAC;;;;;;;;;CAS7C,CAAC,CAAC;QAEK,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,iBAAiB;YACvB,SAAS,EAAE,CAAC,iCAAiC,EAAE,8BAA8B,CAAC;SACjF,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC1D,MAAM,MAAM,GAAG,sBAAsB,CAAC;;;;CAI7C,CAAC,CAAC;QACK,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,EAAE;SAChB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,MAAM,MAAM,GAAG,sBAAsB,CAAC;;;;;;;CAO7C,CAAC,CAAC;QACK,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,8BAA8B,CAAC,CAAC,CAAC,OAAO,CACxE,qDAAqD,CACxD,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Context } from "@/types";
|
|
2
|
+
/**
|
|
3
|
+
* Runs codex-high review rounds until no issues remain or the safety cap is reached.
|
|
4
|
+
* Expects: planPath points to an existing plan markdown file.
|
|
5
|
+
*/
|
|
6
|
+
export declare function ralphReview(ctx: Context, planPath: string): Promise<{
|
|
7
|
+
rounds: number;
|
|
8
|
+
provider?: string;
|
|
9
|
+
sessionId?: string;
|
|
10
|
+
text: string;
|
|
11
|
+
}>;
|
|
12
|
+
//# sourceMappingURL=ralphReview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralphReview.d.ts","sourceRoot":"","sources":["../../../sources/_workflows/steps/ralphReview.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAqBvC;;;GAGG;AACH,wBAAsB,WAAW,CAC7B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA6ClF"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { text } from "@text";
|
|
4
|
+
import { generateProgressMessageResolve } from "@/_workflows/steps/generateProgressMessageResolve.js";
|
|
5
|
+
import { ralphReviewNoIssuesDetect } from "@/_workflows/steps/ralphReviewNoIssuesDetect.js";
|
|
6
|
+
import { generateSessionCreate } from "@/modules/ai/generateSessionCreate.js";
|
|
7
|
+
const MAX_REVIEW_ROUNDS = 10;
|
|
8
|
+
const reviewInitialPromptTemplate = [
|
|
9
|
+
"Review the implemented changes against this plan:",
|
|
10
|
+
"{{planContent}}",
|
|
11
|
+
"Review checklist:",
|
|
12
|
+
"- identify bugs, regressions, and missing tests",
|
|
13
|
+
"- apply required fixes directly in repository files",
|
|
14
|
+
"- run relevant tests and typecheck",
|
|
15
|
+
"- include a short summary of fixes",
|
|
16
|
+
"- if no issues remain, include <no-issues/> in your response"
|
|
17
|
+
].join("\n\n");
|
|
18
|
+
const reviewFollowUpPromptTemplate = [
|
|
19
|
+
"Run another review pass on your latest changes.",
|
|
20
|
+
"If any issues remain, fix them now and summarize.",
|
|
21
|
+
"If no issues remain, include <no-issues/> in your response."
|
|
22
|
+
].join("\n\n");
|
|
23
|
+
/**
|
|
24
|
+
* Runs codex-high review rounds until no issues remain or the safety cap is reached.
|
|
25
|
+
* Expects: planPath points to an existing plan markdown file.
|
|
26
|
+
*/
|
|
27
|
+
export async function ralphReview(ctx, planPath) {
|
|
28
|
+
const projectPath = ctx.projectPath;
|
|
29
|
+
const planContent = await readFile(path.resolve(projectPath, planPath), "utf-8");
|
|
30
|
+
const session = generateSessionCreate(ctx, {
|
|
31
|
+
permissions: {
|
|
32
|
+
modelSelectionMode: "codex-high",
|
|
33
|
+
writePolicy: {
|
|
34
|
+
mode: "write-whitelist",
|
|
35
|
+
writablePaths: [projectPath]
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
const roundsSummary = [];
|
|
40
|
+
let rounds = 0;
|
|
41
|
+
let provider;
|
|
42
|
+
let sessionId;
|
|
43
|
+
for (let round = 1; round <= MAX_REVIEW_ROUNDS; round += 1) {
|
|
44
|
+
const prompt = round === 1
|
|
45
|
+
? reviewInitialPromptTemplate.replace(/\{\{planContent\}\}/g, planContent)
|
|
46
|
+
: reviewFollowUpPromptTemplate;
|
|
47
|
+
const result = await ralphReviewSessionGenerateWithProgress(ctx, session, prompt, text.inference_ralph_reviewing);
|
|
48
|
+
rounds = round;
|
|
49
|
+
provider = result.provider ?? provider;
|
|
50
|
+
sessionId = result.sessionId ?? sessionId;
|
|
51
|
+
const roundText = result.text.trim();
|
|
52
|
+
roundsSummary.push(`## Round ${round}\n\n${roundText}`);
|
|
53
|
+
if (ralphReviewNoIssuesDetect(roundText)) {
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
rounds,
|
|
59
|
+
provider,
|
|
60
|
+
sessionId,
|
|
61
|
+
text: roundsSummary.join("\n\n").trim()
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
async function ralphReviewSessionGenerateWithProgress(ctx, session, prompt, progressMessage) {
|
|
65
|
+
let tokenCount = 0;
|
|
66
|
+
return ctx.progress(`${progressMessage} (starting, tokens 0)`, async (report) => session.generate(prompt, {
|
|
67
|
+
showProgress: false,
|
|
68
|
+
onEvent: (event) => {
|
|
69
|
+
const updated = generateProgressMessageResolve(progressMessage, event, tokenCount);
|
|
70
|
+
tokenCount = updated.tokenCount;
|
|
71
|
+
report(updated.message);
|
|
72
|
+
}
|
|
73
|
+
}));
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=ralphReview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralphReview.js","sourceRoot":"","sources":["../../../sources/_workflows/steps/ralphReview.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralphReviewNoIssuesDetect.d.ts","sourceRoot":"","sources":["../../../sources/_workflows/steps/ralphReviewNoIssuesDetect.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/D"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns true when review output explicitly signals no remaining issues.
|
|
3
|
+
* Expects: text is the model review response.
|
|
4
|
+
*/
|
|
5
|
+
export function ralphReviewNoIssuesDetect(text) {
|
|
6
|
+
return /<no-issues\s*\/\s*>/i.test(text);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=ralphReviewNoIssuesDetect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralphReviewNoIssuesDetect.js","sourceRoot":"","sources":["../../../sources/_workflows/steps/ralphReviewNoIssuesDetect.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAY;IAClD,OAAO,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralphReviewNoIssuesDetect.spec.d.ts","sourceRoot":"","sources":["../../../sources/_workflows/steps/ralphReviewNoIssuesDetect.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { ralphReviewNoIssuesDetect } from "./ralphReviewNoIssuesDetect.js";
|
|
3
|
+
describe("ralphReviewNoIssuesDetect", () => {
|
|
4
|
+
it("returns true when no-issues tag is present", () => {
|
|
5
|
+
expect(ralphReviewNoIssuesDetect("Done.\n<no-issues/>")).toBe(true);
|
|
6
|
+
});
|
|
7
|
+
it("returns true with case-insensitive and spaced tag", () => {
|
|
8
|
+
expect(ralphReviewNoIssuesDetect("Summary\n<NO-ISSUES />")).toBe(true);
|
|
9
|
+
});
|
|
10
|
+
it("returns false when no-issues tag is missing", () => {
|
|
11
|
+
expect(ralphReviewNoIssuesDetect("Found and fixed two issues.")).toBe(false);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=ralphReviewNoIssuesDetect.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralphReviewNoIssuesDetect.spec.js","sourceRoot":"","sources":["../../../sources/_workflows/steps/ralphReviewNoIssuesDetect.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,yBAAyB,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,yBAAyB,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,yBAAyB,CAAC,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
package/dist/main.js
CHANGED
|
@@ -1,17 +1,48 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
2
1
|
import { readFileSync } from "node:fs";
|
|
3
|
-
import
|
|
2
|
+
import select from "@inquirer/select";
|
|
3
|
+
import { text } from "@text";
|
|
4
|
+
import { Command } from "commander";
|
|
5
|
+
import { workflows } from "@/_workflows/_index.js";
|
|
6
|
+
import { Context } from "@/_workflows/context/context.js";
|
|
7
|
+
import { githubCliEnsure } from "@/modules/github/githubCliEnsure.js";
|
|
8
|
+
import { pathResolveFromInitCwd } from "@/modules/util/pathResolveFromInitCwd.js";
|
|
4
9
|
const pkg = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf-8"));
|
|
5
10
|
const program = new Command();
|
|
6
11
|
program
|
|
7
12
|
.name("beer")
|
|
8
|
-
.description("
|
|
13
|
+
.description("Run HoldMyBeer workflows")
|
|
9
14
|
.option("--project <path>", "Project path used by bootstrap operations", ".")
|
|
10
|
-
.version(pkg.version)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
process.
|
|
15
|
-
|
|
15
|
+
.version(pkg.version)
|
|
16
|
+
.action(async function () {
|
|
17
|
+
const options = this.optsWithGlobals();
|
|
18
|
+
const projectPath = pathResolveFromInitCwd(options.project ?? ".");
|
|
19
|
+
process.env.BEER_PROJECT_PATH = projectPath;
|
|
20
|
+
await githubCliEnsure();
|
|
21
|
+
const ctx = await Context.create(projectPath);
|
|
22
|
+
const bootstrapped = mainWorkflowBootstrappedResolve(ctx);
|
|
23
|
+
const selectedWorkflowId = await select({
|
|
24
|
+
message: text.prompt_workflow_select,
|
|
25
|
+
choices: workflows.map((workflow) => ({
|
|
26
|
+
name: `${workflow.id}: ${workflow.title}`,
|
|
27
|
+
value: workflow.id,
|
|
28
|
+
disabled: mainWorkflowDisabledReasonResolve(workflow, bootstrapped)
|
|
29
|
+
}))
|
|
30
|
+
});
|
|
31
|
+
const selectedWorkflow = workflows.find((workflow) => workflow.id === selectedWorkflowId);
|
|
32
|
+
if (!selectedWorkflow) {
|
|
33
|
+
throw new Error(`Unknown workflow: ${selectedWorkflowId}`);
|
|
34
|
+
}
|
|
35
|
+
await selectedWorkflow.run(ctx);
|
|
36
|
+
});
|
|
16
37
|
await program.parseAsync(process.argv);
|
|
38
|
+
function mainWorkflowDisabledReasonResolve(workflow, bootstrapped) {
|
|
39
|
+
if (bootstrapped || workflow.id === "bootstrap") {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
return text.workflow_bootstrap_required;
|
|
43
|
+
}
|
|
44
|
+
function mainWorkflowBootstrappedResolve(ctx) {
|
|
45
|
+
const settings = ctx.settings;
|
|
46
|
+
return Boolean(settings.sourceRepo && settings.publishRepo && settings.sourceCommitHash);
|
|
47
|
+
}
|
|
17
48
|
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../sources/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../sources/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAiB,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAElF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAwB,CAAC;AAElH,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,kBAAkB,EAAE,2CAA2C,EAAE,GAAG,CAAC;KAC5E,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CAAC,KAAK;IACT,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAwB,CAAC;IAC7D,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,WAAW,CAAC;IAC5C,MAAM,eAAe,EAAE,CAAC;IACxB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,+BAA+B,CAAC,GAAG,CAAC,CAAC;IAC1D,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC;QACpC,OAAO,EAAE,IAAI,CAAC,sBAAuB;QACrC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAClC,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,KAAK,EAAE;YACzC,KAAK,EAAE,QAAQ,CAAC,EAAE;YAClB,QAAQ,EAAE,iCAAiC,CAAC,QAAQ,EAAE,YAAY,CAAC;SACtE,CAAC,CAAC;KACN,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,kBAAkB,CAAC,CAAC;IAC1F,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,kBAAkB,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEP,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvC,SAAS,iCAAiC,CAAC,QAAkB,EAAE,YAAqB;IAChF,IAAI,YAAY,IAAI,QAAQ,CAAC,EAAE,KAAK,WAAW,EAAE,CAAC;QAC9C,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,IAAI,CAAC,2BAA4B,CAAC;AAC7C,CAAC;AAED,SAAS,+BAA+B,CAAC,GAAY;IACjD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,OAAO,OAAO,CAAC,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAC7F,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiOutputExtract.js","sourceRoot":"","sources":["../../../sources/modules/ai/aiOutputExtract.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;
|
|
1
|
+
{"version":3,"file":"aiOutputExtract.js","sourceRoot":"","sources":["../../../sources/modules/ai/aiOutputExtract.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiOutputExtract.spec.js","sourceRoot":"","sources":["../../../sources/modules/ai/aiOutputExtract.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"aiOutputExtract.spec.js","sourceRoot":"","sources":["../../../sources/modules/ai/aiOutputExtract.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACtC,MAAM,MAAM,GAAG,eAAe,CAAC,uCAAuC,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAChD,MAAM,MAAM,GAAG,eAAe,CAAC,uCAAuC,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,MAAM,MAAM,GAAG,eAAe,CAAC,uCAAuC,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,eAAe,CAAC,sBAAsB,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1,21 +1,33 @@
|
|
|
1
|
-
import type { ProviderId, ProviderModelSelectionMode } from "@/types";
|
|
2
1
|
import type { InferenceWritePolicy } from "@/modules/sandbox/sandboxInferenceTypes.js";
|
|
3
|
-
import type { Context } from "@/types";
|
|
2
|
+
import type { Context, GenerateEvent, ProviderId, ProviderModelSelectionMode } from "@/types";
|
|
4
3
|
export interface GenerateResult {
|
|
5
4
|
provider?: string;
|
|
5
|
+
sessionId?: string;
|
|
6
6
|
text: string;
|
|
7
7
|
}
|
|
8
|
+
export type GenerateExpectedTextOutputVerify = (output: {
|
|
9
|
+
text: string;
|
|
10
|
+
}) => void | Promise<void>;
|
|
11
|
+
export type GenerateExpectedFileOutputVerify = (output: {
|
|
12
|
+
text: string;
|
|
13
|
+
filePath: string;
|
|
14
|
+
fileContent: string;
|
|
15
|
+
}) => void | Promise<void>;
|
|
8
16
|
export type GenerateExpectedOutput = {
|
|
9
17
|
type: "text";
|
|
18
|
+
verify?: GenerateExpectedTextOutputVerify;
|
|
10
19
|
} | {
|
|
11
20
|
type: "file";
|
|
12
21
|
filePath: string;
|
|
22
|
+
verify?: GenerateExpectedFileOutputVerify;
|
|
13
23
|
};
|
|
14
24
|
export interface GeneratePermissions {
|
|
25
|
+
sessionId?: string;
|
|
15
26
|
providerPriority?: readonly ProviderId[];
|
|
16
27
|
modelPriority?: readonly string[];
|
|
17
28
|
modelSelectionMode?: ProviderModelSelectionMode;
|
|
18
29
|
showProgress?: boolean;
|
|
30
|
+
onEvent?: (event: GenerateEvent) => void;
|
|
19
31
|
writePolicy?: InferenceWritePolicy;
|
|
20
32
|
enableWeakerNetworkIsolation?: boolean;
|
|
21
33
|
expectedOutput?: GenerateExpectedOutput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../sources/modules/ai/generate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../sources/modules/ai/generate.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,KAAK,EACR,OAAO,EACP,aAAa,EAGb,UAAU,EACV,0BAA0B,EAE7B,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,gCAAgC,GAAG,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAClG,MAAM,MAAM,gCAAgC,GAAG,CAAC,MAAM,EAAE;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACvB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3B,MAAM,MAAM,sBAAsB,GAC5B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,gCAAgC,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,gCAAgC,CAAA;CAAE,CAAC;AAEpF,MAAM,WAAW,mBAAmB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACzC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;IAChD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,cAAc,CAAC,EAAE,sBAAsB,CAAC;CAC3C;AA8ID;;;GAGG;AACH,wBAAsB,QAAQ,CAC1B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,mBAAwB,GACtC,OAAO,CAAC,cAAc,CAAC,CAiHzB"}
|