rhachet 1.12.1 → 1.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/contract/cli/invoke.js +1 -1
- package/dist/contract/cli/invoke.js.map +1 -1
- package/dist/contract/cli/invokeAsk.d.ts +3 -3
- package/dist/contract/cli/invokeBriefs.d.ts +2 -2
- package/dist/contract/cli/invokeBriefsBoot.d.ts +1 -1
- package/dist/contract/cli/invokeBriefsBoot.js +2 -2
- package/dist/contract/cli/invokeBriefsBoot.js.map +1 -1
- package/dist/contract/cli/invokeBriefsLink.d.ts +2 -2
- package/dist/contract/cli/invokeBriefsLink.js +1 -1
- package/dist/contract/cli/invokeBriefsLink.js.map +1 -1
- package/dist/contract/cli/invokeChoose.d.ts +1 -1
- package/dist/contract/cli/invokeInit.d.ts +1 -1
- package/dist/contract/cli/invokeInit.js +1 -1
- package/dist/contract/cli/invokeInit.js.map +1 -1
- package/dist/contract/cli/invokeList.d.ts +2 -2
- package/dist/contract/cli/invokeReadme.d.ts +2 -2
- package/dist/contract/cli/invokeRoles.d.ts +2 -2
- package/dist/contract/cli/invokeRolesBoot.d.ts +1 -1
- package/dist/contract/cli/invokeRolesBoot.js +2 -2
- package/dist/contract/cli/invokeRolesBoot.js.map +1 -1
- package/dist/contract/cli/invokeRolesLink.d.ts +2 -2
- package/dist/contract/cli/invokeRolesLink.js +1 -1
- package/dist/contract/cli/invokeRolesLink.js.map +1 -1
- package/dist/contract/sdk.d.ts +13 -13
- package/dist/contract/sdk.js +25 -25
- package/dist/contract/sdk.js.map +1 -1
- package/dist/domain/constants.d.ts +3 -0
- package/dist/domain/constants.js +5 -0
- package/dist/domain/constants.js.map +1 -0
- package/dist/domain/objects/InvokeHooks.d.ts +1 -1
- package/dist/domain/objects/InvokeOpts.d.ts +1 -1
- package/dist/domain/objects/Role.d.ts +2 -2
- package/dist/domain/objects/RoleContext.d.ts +1 -1
- package/dist/domain/objects/RoleSkill.d.ts +2 -2
- package/dist/domain/objects/RoleSkillArgGetter.d.ts +3 -3
- package/dist/domain/objects/RoleTrait.d.ts +2 -2
- package/dist/domain/objects/Stitch.d.ts +4 -4
- package/dist/domain/objects/Stitch.js.map +1 -1
- package/dist/domain/objects/StitchChoice.d.ts +2 -2
- package/dist/domain/objects/StitchChoice.js.map +1 -1
- package/dist/domain/objects/StitchCycle.d.ts +4 -4
- package/dist/domain/objects/StitchCycle.js.map +1 -1
- package/dist/domain/objects/StitchFanout.d.ts +4 -4
- package/dist/domain/objects/StitchFanout.js.map +1 -1
- package/dist/domain/objects/StitchRoute.d.ts +1 -1
- package/dist/domain/objects/StitchRoute.js.map +1 -1
- package/dist/domain/objects/StitchSetEvent.d.ts +3 -3
- package/dist/domain/objects/StitchStep.d.ts +3 -3
- package/dist/domain/objects/Stitcher.d.ts +9 -9
- package/dist/domain/objects/Stitcher.js.map +1 -1
- package/dist/domain/objects/Template.d.ts +2 -2
- package/dist/domain/objects/Template.js.map +1 -1
- package/dist/domain/objects/Thread.d.ts +2 -2
- package/dist/domain/objects/Threads.d.ts +2 -2
- package/dist/domain/objects/Threads.js.map +1 -1
- package/dist/domain/objects/index.d.ts +2 -2
- package/dist/domain/objects/index.js +2 -2
- package/dist/domain/objects/index.js.map +1 -1
- package/dist/logic/context/genContextStitchTrail.d.ts +1 -1
- package/dist/logic/context/genContextStitchTrail.js.map +1 -1
- package/dist/logic/invoke/assureFindRole.d.ts +2 -2
- package/dist/logic/invoke/assureUniqueRoles.d.ts +1 -1
- package/dist/logic/invoke/getInvokeHooksByOpts.d.ts +2 -2
- package/dist/logic/invoke/getRegistriesByOpts.d.ts +2 -2
- package/dist/logic/invoke/getSkillContext.d.ts +3 -3
- package/dist/logic/invoke/getSkillThreads.d.ts +4 -4
- package/dist/logic/invoke/hooks/onInvokeAskInput.d.ts +2 -2
- package/dist/logic/invoke/performInCurrentThread.d.ts +2 -2
- package/dist/logic/invoke/performInIsolatedThread.execute.d.ts +1 -1
- package/dist/logic/invoke/performInIsolatedThread.invoke.d.ts +2 -2
- package/dist/logic/invoke/performInIsolatedThread.invoke.js +3 -3
- package/dist/logic/invoke/performInIsolatedThread.invoke.js.map +1 -1
- package/dist/logic/invoke/performInIsolatedThreads.d.ts +1 -1
- package/dist/logic/role/addRoleTraits.d.ts +5 -5
- package/dist/logic/role/enrollThread.d.ts +4 -4
- package/dist/logic/role/genRoleSkill.d.ts +1 -1
- package/dist/logic/stitch/adapters/imagineViaOpenAI.d.ts +1 -1
- package/dist/logic/stitch/enstitch.d.ts +3 -3
- package/dist/logic/stitch/enstitch.js +1 -1
- package/dist/logic/stitch/enstitch.js.map +1 -1
- package/dist/logic/stitch/invokeImagineStitcher.d.ts +3 -3
- package/dist/logic/stitch/withStitchTrail.d.ts +4 -4
- package/dist/logic/stitch/withStitchTrail.js +1 -1
- package/dist/logic/stitch/withStitchTrail.js.map +1 -1
- package/dist/logic/template/genStepImagineViaTemplate.d.ts +2 -2
- package/dist/logic/template/genStepImagineViaTemplate.js.map +1 -1
- package/dist/logic/template/genTemplate.d.ts +3 -3
- package/dist/logic/template/getTemplatePathByCallerPath.d.ts +1 -1
- package/dist/logic/template/getTemplatePathByCallerPath.js +2 -2
- package/dist/logic/template/getTemplatePathByCallerPath.js.map +1 -1
- package/dist/logic/template/getTemplateValFromArtifacts.d.ts +2 -2
- package/dist/logic/template/getTemplateValFromArtifacts.js.map +1 -1
- package/dist/logic/template/getTemplateVarsFromInheritance.d.ts +1 -1
- package/dist/logic/template/useTemplate.d.ts +2 -2
- package/dist/logic/thread/getStitch.d.ts +1 -1
- package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.d.ts +3 -3
- package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.d.ts +4 -4
- package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.d.ts +6 -6
- package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.d.ts +4 -4
- package/dist/logic/weave/compose/ProcedureContextMerged.generic.d.ts +1 -1
- package/dist/logic/weave/compose/ThreadsMerged.generic.d.ts +4 -4
- package/dist/logic/weave/compose/asStitcher.d.ts +3 -3
- package/dist/logic/weave/compose/asStitcherFlat.d.ts +2 -2
- package/dist/logic/weave/compose/genStitchChoice.d.ts +3 -3
- package/dist/logic/weave/compose/genStitchCycle.d.ts +5 -5
- package/dist/logic/weave/compose/genStitchFanout.d.ts +5 -5
- package/dist/logic/weave/compose/genStitchFanout.js.map +1 -1
- package/dist/logic/weave/compose/genStitchRoute.d.ts +3 -3
- package/dist/logic/weave/compose/genStitchRoute.js.map +1 -1
- package/dist/logic/weave/enweaveOneChoice.d.ts +2 -2
- package/dist/logic/weave/enweaveOneChoice.js.map +1 -1
- package/dist/logic/weave/enweaveOneCycle.d.ts +2 -2
- package/dist/logic/weave/enweaveOneCycle.js.map +1 -1
- package/dist/logic/weave/enweaveOneFanout.d.ts +2 -2
- package/dist/logic/weave/enweaveOneFanout.js.map +1 -1
- package/dist/logic/weave/enweaveOneRoute.d.ts +2 -2
- package/dist/logic/weave/enweaveOneRoute.js.map +1 -1
- package/dist/logic/weave/enweaveOneStitcher.d.ts +2 -2
- package/dist/logic/weave/enweaveOneStitcher.js.map +1 -1
- package/license.md +21 -0
- package/package.json +36 -36
- package/dist/.test/directory.d.ts +0 -2
- package/dist/.test/directory.js +0 -6
- package/dist/.test/directory.js.map +0 -1
- package/dist/.test/example.use.repo/example.echoRegistry.d.ts +0 -2
- package/dist/.test/example.use.repo/example.echoRegistry.js +0 -108
- package/dist/.test/example.use.repo/example.echoRegistry.js.map +0 -1
- package/dist/.test/genContextLogTrail.d.ts +0 -2
- package/dist/.test/genContextLogTrail.js +0 -12
- package/dist/.test/genContextLogTrail.js.map +0 -1
- package/dist/.test/getContextOpenAI.d.ts +0 -2
- package/dist/.test/getContextOpenAI.js +0 -18
- package/dist/.test/getContextOpenAI.js.map +0 -1
- package/dist/.test/stitchers/genStitcherCodeFileRead.d.ts +0 -14
- package/dist/.test/stitchers/genStitcherCodeFileRead.js +0 -23
- package/dist/.test/stitchers/genStitcherCodeFileRead.js.map +0 -1
- package/dist/.test/stitchers/genStitcherCodeFileWrite.d.ts +0 -16
- package/dist/.test/stitchers/genStitcherCodeFileWrite.js +0 -29
- package/dist/.test/stitchers/genStitcherCodeFileWrite.js.map +0 -1
- package/dist/.test/stitchers/genStitcherCodeReviewImagine.d.ts +0 -15
- package/dist/.test/stitchers/genStitcherCodeReviewImagine.js +0 -97
- package/dist/.test/stitchers/genStitcherCodeReviewImagine.js.map +0 -1
- package/dist/.test/stitchers/stitcherCodeDiffImagine.d.ts +0 -13
- package/dist/.test/stitchers/stitcherCodeDiffImagine.js +0 -33
- package/dist/.test/stitchers/stitcherCodeDiffImagine.js.map +0 -1
- package/dist/.test/stitchers/stitcherFanoutRandomSum.d.ts +0 -13
- package/dist/.test/stitchers/stitcherFanoutRandomSum.js +0 -45
- package/dist/.test/stitchers/stitcherFanoutRandomSum.js.map +0 -1
- package/dist/.test/stitchers/stitcherFanoutSubroutes.d.ts +0 -35
- package/dist/.test/stitchers/stitcherFanoutSubroutes.js +0 -76
- package/dist/.test/stitchers/stitcherFanoutSubroutes.js.map +0 -1
- package/dist/.test/threads/codeArtist.d.ts +0 -6
- package/dist/.test/threads/codeArtist.js +0 -26
- package/dist/.test/threads/codeArtist.js.map +0 -1
- package/dist/.test/threads/codeCritic.d.ts +0 -6
- package/dist/.test/threads/codeCritic.js +0 -21
- package/dist/.test/threads/codeCritic.js.map +0 -1
- package/dist/.test/threads/director.d.ts +0 -6
- package/dist/.test/threads/director.js +0 -14
- package/dist/.test/threads/director.js.map +0 -1
- package/dist/contract/cli/invoke.integration.test.d.ts +0 -1
- package/dist/contract/cli/invoke.integration.test.js +0 -39
- package/dist/contract/cli/invoke.integration.test.js.map +0 -1
- package/dist/contract/cli/invokeAsk.integration.test.d.ts +0 -1
- package/dist/contract/cli/invokeAsk.integration.test.js +0 -69
- package/dist/contract/cli/invokeAsk.integration.test.js.map +0 -1
- package/dist/contract/cli/invokeBriefsBoot.integration.test.d.ts +0 -1
- package/dist/contract/cli/invokeBriefsBoot.integration.test.js +0 -159
- package/dist/contract/cli/invokeBriefsBoot.integration.test.js.map +0 -1
- package/dist/contract/cli/invokeBriefsLink.integration.test.d.ts +0 -1
- package/dist/contract/cli/invokeBriefsLink.integration.test.js +0 -100
- package/dist/contract/cli/invokeBriefsLink.integration.test.js.map +0 -1
- package/dist/contract/cli/invokeChoose.integration.test.d.ts +0 -1
- package/dist/contract/cli/invokeChoose.integration.test.js +0 -111
- package/dist/contract/cli/invokeChoose.integration.test.js.map +0 -1
- package/dist/contract/cli/invokeInit.integration.test.d.ts +0 -1
- package/dist/contract/cli/invokeInit.integration.test.js +0 -123
- package/dist/contract/cli/invokeInit.integration.test.js.map +0 -1
- package/dist/contract/cli/invokeReadme.integration.test.d.ts +0 -1
- package/dist/contract/cli/invokeReadme.integration.test.js +0 -62
- package/dist/contract/cli/invokeReadme.integration.test.js.map +0 -1
- package/dist/contract/cli/invokeRolesBoot.integration.test.d.ts +0 -1
- package/dist/contract/cli/invokeRolesBoot.integration.test.js +0 -152
- package/dist/contract/cli/invokeRolesBoot.integration.test.js.map +0 -1
- package/dist/contract/cli/invokeRolesLink.integration.test.d.ts +0 -1
- package/dist/contract/cli/invokeRolesLink.integration.test.js +0 -117
- package/dist/contract/cli/invokeRolesLink.integration.test.js.map +0 -1
- package/dist/domain/objects/InvokeOpts.test.d.ts +0 -1
- package/dist/domain/objects/InvokeOpts.test.js +0 -41
- package/dist/domain/objects/InvokeOpts.test.js.map +0 -1
- package/dist/domain/objects/Stitcher.test.d.ts +0 -1
- package/dist/domain/objects/Stitcher.test.js +0 -78
- package/dist/domain/objects/Stitcher.test.js.map +0 -1
- package/dist/domain/objects/Template.test.d.ts +0 -1
- package/dist/domain/objects/Template.test.js +0 -48
- package/dist/domain/objects/Template.test.js.map +0 -1
- package/dist/logic/init/generateRhachetConfig.test.d.ts +0 -1
- package/dist/logic/init/generateRhachetConfig.test.js +0 -35
- package/dist/logic/init/generateRhachetConfig.test.js.map +0 -1
- package/dist/logic/invoke/addAttemptQualifierToOutputPath.test.d.ts +0 -1
- package/dist/logic/invoke/addAttemptQualifierToOutputPath.test.js +0 -130
- package/dist/logic/invoke/addAttemptQualifierToOutputPath.test.js.map +0 -1
- package/dist/logic/invoke/getPeerQualifiersOfOutputChoice.test.d.ts +0 -1
- package/dist/logic/invoke/getPeerQualifiersOfOutputChoice.test.js +0 -77
- package/dist/logic/invoke/getPeerQualifiersOfOutputChoice.test.js.map +0 -1
- package/dist/logic/invoke/getSkillContext.test.d.ts +0 -1
- package/dist/logic/invoke/getSkillContext.test.js +0 -85
- package/dist/logic/invoke/getSkillContext.test.js.map +0 -1
- package/dist/logic/invoke/getSkillThread.test.d.ts +0 -1
- package/dist/logic/invoke/getSkillThread.test.js +0 -115
- package/dist/logic/invoke/getSkillThread.test.js.map +0 -1
- package/dist/logic/invoke/performInIsolatedThread.invoke.integration.test.d.ts +0 -1
- package/dist/logic/invoke/performInIsolatedThread.invoke.integration.test.js +0 -74
- package/dist/logic/invoke/performInIsolatedThread.invoke.integration.test.js.map +0 -1
- package/dist/logic/invoke/performInIsolatedThreads.integration.test.d.ts +0 -1
- package/dist/logic/invoke/performInIsolatedThreads.integration.test.js +0 -75
- package/dist/logic/invoke/performInIsolatedThreads.integration.test.js.map +0 -1
- package/dist/logic/role/addRoleTraits.test.d.ts +0 -1
- package/dist/logic/role/addRoleTraits.test.js +0 -93
- package/dist/logic/role/addRoleTraits.test.js.map +0 -1
- package/dist/logic/role/enrollThread.integration.test.d.ts +0 -1
- package/dist/logic/role/enrollThread.integration.test.js +0 -79
- package/dist/logic/role/enrollThread.integration.test.js.map +0 -1
- package/dist/logic/role/genRoleSkill.test.d.ts +0 -1
- package/dist/logic/role/genRoleSkill.test.js +0 -79
- package/dist/logic/role/genRoleSkill.test.js.map +0 -1
- package/dist/logic/stitch/enstitch.test.d.ts +0 -1
- package/dist/logic/stitch/enstitch.test.js +0 -112
- package/dist/logic/stitch/enstitch.test.js.map +0 -1
- package/dist/logic/stitch/invokeImagineStitcher.integration.test.d.ts +0 -1
- package/dist/logic/stitch/invokeImagineStitcher.integration.test.js +0 -195
- package/dist/logic/stitch/invokeImagineStitcher.integration.test.js.map +0 -1
- package/dist/logic/template/genStepImagineViaTemplate.test.d.ts +0 -1
- package/dist/logic/template/genStepImagineViaTemplate.test.js +0 -126
- package/dist/logic/template/genStepImagineViaTemplate.test.js.map +0 -1
- package/dist/logic/template/genTemplate.test.d.ts +0 -1
- package/dist/logic/template/genTemplate.test.js +0 -118
- package/dist/logic/template/genTemplate.test.js.map +0 -1
- package/dist/logic/template/useTemplate.integration.test.d.ts +0 -1
- package/dist/logic/template/useTemplate.integration.test.js +0 -28
- package/dist/logic/template/useTemplate.integration.test.js.map +0 -1
- package/dist/logic/thread/getStitch.test.d.ts +0 -1
- package/dist/logic/thread/getStitch.test.js +0 -73
- package/dist/logic/thread/getStitch.test.js.map +0 -1
- package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.test.d.ts +0 -1
- package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.test.js +0 -67
- package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.test.js.map +0 -1
- package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.test.d.ts +0 -1
- package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.test.js +0 -132
- package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.test.js.map +0 -1
- package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.test.d.ts +0 -1
- package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.test.js +0 -74
- package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.test.js.map +0 -1
- package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.test.d.ts +0 -1
- package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.test.js +0 -190
- package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.test.js.map +0 -1
- package/dist/logic/weave/compose/ProcedureContextMerged.generic.test.d.ts +0 -1
- package/dist/logic/weave/compose/ProcedureContextMerged.generic.test.js +0 -29
- package/dist/logic/weave/compose/ProcedureContextMerged.generic.test.js.map +0 -1
- package/dist/logic/weave/compose/ThreadsMerged.generic.test.d.ts +0 -1
- package/dist/logic/weave/compose/ThreadsMerged.generic.test.js +0 -420
- package/dist/logic/weave/compose/ThreadsMerged.generic.test.js.map +0 -1
- package/dist/logic/weave/compose/asStitcher.test.d.ts +0 -1
- package/dist/logic/weave/compose/asStitcher.test.js +0 -95
- package/dist/logic/weave/compose/asStitcher.test.js.map +0 -1
- package/dist/logic/weave/compose/asStitcherFlat.test.d.ts +0 -1
- package/dist/logic/weave/compose/asStitcherFlat.test.js +0 -96
- package/dist/logic/weave/compose/asStitcherFlat.test.js.map +0 -1
- package/dist/logic/weave/compose/genStitchChoice.test.d.ts +0 -1
- package/dist/logic/weave/compose/genStitchChoice.test.js +0 -200
- package/dist/logic/weave/compose/genStitchChoice.test.js.map +0 -1
- package/dist/logic/weave/compose/genStitchCycle.test.d.ts +0 -1
- package/dist/logic/weave/compose/genStitchCycle.test.js +0 -267
- package/dist/logic/weave/compose/genStitchCycle.test.js.map +0 -1
- package/dist/logic/weave/compose/genStitchFanout.test.d.ts +0 -1
- package/dist/logic/weave/compose/genStitchFanout.test.js +0 -79
- package/dist/logic/weave/compose/genStitchFanout.test.js.map +0 -1
- package/dist/logic/weave/compose/genStitchRoute.test.d.ts +0 -1
- package/dist/logic/weave/compose/genStitchRoute.test.js +0 -120
- package/dist/logic/weave/compose/genStitchRoute.test.js.map +0 -1
- package/dist/logic/weave/enweaveOneChoice.test.d.ts +0 -1
- package/dist/logic/weave/enweaveOneChoice.test.js +0 -181
- package/dist/logic/weave/enweaveOneChoice.test.js.map +0 -1
- package/dist/logic/weave/enweaveOneCycle.test.d.ts +0 -1
- package/dist/logic/weave/enweaveOneCycle.test.js +0 -180
- package/dist/logic/weave/enweaveOneCycle.test.js.map +0 -1
- package/dist/logic/weave/enweaveOneFanout.integration.test.d.ts +0 -1
- package/dist/logic/weave/enweaveOneFanout.integration.test.js +0 -166
- package/dist/logic/weave/enweaveOneFanout.integration.test.js.map +0 -1
- package/dist/logic/weave/enweaveOneRoute.integration.test.d.ts +0 -1
- package/dist/logic/weave/enweaveOneRoute.integration.test.js +0 -159
- package/dist/logic/weave/enweaveOneRoute.integration.test.js.map +0 -1
- package/dist/logic/weave/enweaveOneStitcher.integration.test.d.ts +0 -2
- package/dist/logic/weave/enweaveOneStitcher.integration.test.js +0 -258
- package/dist/logic/weave/enweaveOneStitcher.integration.test.js.map +0 -1
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const commander_1 = require("commander");
|
|
4
|
-
const node_fs_1 = require("node:fs");
|
|
5
|
-
const node_path_1 = require("node:path");
|
|
6
|
-
const test_fns_1 = require("test-fns");
|
|
7
|
-
const invokeBriefsBoot_1 = require("./invokeBriefsBoot");
|
|
8
|
-
describe('invokeBriefsBoot (integration)', () => {
|
|
9
|
-
(0, test_fns_1.given)('a CLI program with invokeBriefsBoot registered', () => {
|
|
10
|
-
const testDir = (0, node_path_1.resolve)(__dirname, './.temp/invokeBriefsBoot');
|
|
11
|
-
const originalCwd = process.cwd();
|
|
12
|
-
beforeAll(() => {
|
|
13
|
-
// Create test directory structure
|
|
14
|
-
(0, node_fs_1.mkdirSync)(testDir, { recursive: true });
|
|
15
|
-
process.chdir(testDir);
|
|
16
|
-
});
|
|
17
|
-
afterAll(() => {
|
|
18
|
-
process.chdir(originalCwd);
|
|
19
|
-
});
|
|
20
|
-
const briefsCommand = new commander_1.Command('briefs');
|
|
21
|
-
const logSpy = jest.spyOn(console, 'log').mockImplementation(() => { });
|
|
22
|
-
beforeEach(() => {
|
|
23
|
-
logSpy.mockClear();
|
|
24
|
-
});
|
|
25
|
-
(0, invokeBriefsBoot_1.invokeBriefsBoot)({ command: briefsCommand });
|
|
26
|
-
(0, test_fns_1.when)('invoked with "boot --repo test --role mechanic" after creating briefs', () => {
|
|
27
|
-
beforeAll(() => {
|
|
28
|
-
// Clean up first to ensure fresh state
|
|
29
|
-
const cleanAgentDir = (0, node_path_1.resolve)(testDir, '.agent');
|
|
30
|
-
if ((0, node_fs_1.existsSync)(cleanAgentDir)) {
|
|
31
|
-
(0, node_fs_1.rmSync)(cleanAgentDir, { recursive: true, force: true });
|
|
32
|
-
}
|
|
33
|
-
// Setup: Create mock brief files in new structure
|
|
34
|
-
const briefsDir = (0, node_path_1.resolve)(testDir, '.agent/repo=test/role=mechanic/briefs');
|
|
35
|
-
(0, node_fs_1.mkdirSync)(briefsDir, { recursive: true });
|
|
36
|
-
// Create mock node_modules structure for symlinks
|
|
37
|
-
const mockRoleDir = (0, node_path_1.resolve)(testDir, 'node_modules/rhachet-roles-ehmpathy/dist/logic/roles/mechanic/.briefs');
|
|
38
|
-
(0, node_fs_1.mkdirSync)(mockRoleDir, { recursive: true });
|
|
39
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.resolve)(mockRoleDir, 'brief1.md'), '# Brief 1\nThis is test brief 1');
|
|
40
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.resolve)(mockRoleDir, 'brief2.md'), '# Brief 2\nThis is test brief 2');
|
|
41
|
-
// Create symlinks (need to go up 4 levels from briefs/ to testDir root)
|
|
42
|
-
(0, node_fs_1.symlinkSync)('../../../../node_modules/rhachet-roles-ehmpathy/dist/logic/roles/mechanic/.briefs/brief1.md', (0, node_path_1.resolve)(briefsDir, 'brief1.md'));
|
|
43
|
-
(0, node_fs_1.symlinkSync)('../../../../node_modules/rhachet-roles-ehmpathy/dist/logic/roles/mechanic/.briefs/brief2.md', (0, node_path_1.resolve)(briefsDir, 'brief2.md'));
|
|
44
|
-
});
|
|
45
|
-
(0, test_fns_1.then)('it should print all brief files with stats', async () => {
|
|
46
|
-
// Execute boot command
|
|
47
|
-
await briefsCommand.parseAsync(['boot', '--repo', 'test', '--role', 'mechanic'], {
|
|
48
|
-
from: 'user',
|
|
49
|
-
});
|
|
50
|
-
// Check that stats were printed
|
|
51
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('began:stats'));
|
|
52
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('files = 2'));
|
|
53
|
-
// Check that file contents were printed
|
|
54
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('began:.agent/repo=test/role=mechanic/briefs/brief1.md'));
|
|
55
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('This is test brief 1'));
|
|
56
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('began:.agent/repo=test/role=mechanic/briefs/brief2.md'));
|
|
57
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('This is test brief 2'));
|
|
58
|
-
// Snapshot the full console output
|
|
59
|
-
const allLogOutput = logSpy.mock.calls
|
|
60
|
-
.map((call) => call[0])
|
|
61
|
-
.join('\n');
|
|
62
|
-
expect(allLogOutput).toMatchSnapshot();
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
(0, test_fns_1.when)('invoked with "boot" without --repo', () => {
|
|
66
|
-
(0, test_fns_1.then)('it should throw an error requiring --repo', async () => {
|
|
67
|
-
const error = await (0, test_fns_1.getError)(() => briefsCommand.parseAsync(['boot', '--role', 'mechanic'], {
|
|
68
|
-
from: 'user',
|
|
69
|
-
}));
|
|
70
|
-
expect(error?.message).toContain('--repo is required');
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
(0, test_fns_1.when)('invoked with "boot" without --role', () => {
|
|
74
|
-
(0, test_fns_1.then)('it should throw an error requiring --role', async () => {
|
|
75
|
-
const error = await (0, test_fns_1.getError)(() => briefsCommand.parseAsync(['boot', '--repo', 'test'], {
|
|
76
|
-
from: 'user',
|
|
77
|
-
}));
|
|
78
|
-
expect(error?.message).toContain('--role is required');
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
(0, test_fns_1.when)('invoked with "boot --repo test --role mechanic" before creating briefs', () => {
|
|
82
|
-
beforeAll(() => {
|
|
83
|
-
// Clean up to ensure no briefs directory exists
|
|
84
|
-
const agentDir = (0, node_path_1.resolve)(testDir, '.agent');
|
|
85
|
-
if ((0, node_fs_1.existsSync)(agentDir)) {
|
|
86
|
-
(0, node_fs_1.rmSync)(agentDir, { recursive: true, force: true });
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
(0, test_fns_1.then)('it should throw an error about missing briefs directory', async () => {
|
|
90
|
-
const error = await (0, test_fns_1.getError)(() => briefsCommand.parseAsync(['boot', '--repo', 'test', '--role', 'mechanic'], {
|
|
91
|
-
from: 'user',
|
|
92
|
-
}));
|
|
93
|
-
expect(error?.message).toContain('Briefs directory not found');
|
|
94
|
-
expect(error?.message).toContain('briefs link');
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
(0, test_fns_1.when)('invoked with "boot --repo test --role mechanic" with empty briefs directory', () => {
|
|
98
|
-
beforeAll(() => {
|
|
99
|
-
// Clean up first, then create empty briefs directory
|
|
100
|
-
const cleanAgentDir = (0, node_path_1.resolve)(testDir, '.agent');
|
|
101
|
-
if ((0, node_fs_1.existsSync)(cleanAgentDir)) {
|
|
102
|
-
(0, node_fs_1.rmSync)(cleanAgentDir, { recursive: true, force: true });
|
|
103
|
-
}
|
|
104
|
-
// Setup: Create empty briefs directory
|
|
105
|
-
const briefsDir = (0, node_path_1.resolve)(testDir, '.agent/repo=test/role=mechanic/briefs');
|
|
106
|
-
(0, node_fs_1.mkdirSync)(briefsDir, { recursive: true });
|
|
107
|
-
});
|
|
108
|
-
(0, test_fns_1.then)('it should warn about no briefs found', async () => {
|
|
109
|
-
await briefsCommand.parseAsync(['boot', '--repo', 'test', '--role', 'mechanic'], {
|
|
110
|
-
from: 'user',
|
|
111
|
-
});
|
|
112
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('No briefs found'));
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
(0, test_fns_1.when)('invoked with "boot --repo test --role mechanic" with symlinked directory containing files', () => {
|
|
116
|
-
beforeAll(() => {
|
|
117
|
-
// Clean up first to ensure fresh state
|
|
118
|
-
const cleanAgentDir = (0, node_path_1.resolve)(testDir, '.agent');
|
|
119
|
-
if ((0, node_fs_1.existsSync)(cleanAgentDir)) {
|
|
120
|
-
(0, node_fs_1.rmSync)(cleanAgentDir, { recursive: true, force: true });
|
|
121
|
-
}
|
|
122
|
-
// Setup: Create briefs directory
|
|
123
|
-
const briefsDir = (0, node_path_1.resolve)(testDir, '.agent/repo=test/role=mechanic/briefs');
|
|
124
|
-
(0, node_fs_1.mkdirSync)(briefsDir, { recursive: true });
|
|
125
|
-
// Create a source directory with files and subdirectories
|
|
126
|
-
const sourceDir = (0, node_path_1.resolve)(testDir, 'test-briefs/subdir');
|
|
127
|
-
(0, node_fs_1.mkdirSync)(sourceDir, { recursive: true });
|
|
128
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.resolve)(sourceDir, 'nested1.md'), '# Nested Brief 1\nThis is nested brief 1');
|
|
129
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.resolve)(sourceDir, 'nested2.md'), '# Nested Brief 2\nThis is nested brief 2');
|
|
130
|
-
// Create a subdirectory within the source directory
|
|
131
|
-
const nestedSubdir = (0, node_path_1.resolve)(sourceDir, 'deeper');
|
|
132
|
-
(0, node_fs_1.mkdirSync)(nestedSubdir, { recursive: true });
|
|
133
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.resolve)(nestedSubdir, 'deep1.md'), '# Deep Brief 1\nThis is deep brief 1');
|
|
134
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.resolve)(nestedSubdir, 'deep2.md'), '# Deep Brief 2\nThis is deep brief 2');
|
|
135
|
-
// Create a symlink to the directory (need to go up 4 levels from briefs/ to testDir root)
|
|
136
|
-
(0, node_fs_1.symlinkSync)('../../../../test-briefs/subdir', (0, node_path_1.resolve)(briefsDir, 'linked-dir'));
|
|
137
|
-
});
|
|
138
|
-
(0, test_fns_1.then)('it should print all files including those in symlinked directories', async () => {
|
|
139
|
-
// Execute boot command
|
|
140
|
-
await briefsCommand.parseAsync(['boot', '--repo', 'test', '--role', 'mechanic'], {
|
|
141
|
-
from: 'user',
|
|
142
|
-
});
|
|
143
|
-
// Check that stats show 4 files (2 in linked-dir, 2 in linked-dir/deeper)
|
|
144
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('files = 4'));
|
|
145
|
-
// Check that nested file contents were printed
|
|
146
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('began:.agent/repo=test/role=mechanic/briefs/linked-dir/nested1.md'));
|
|
147
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('This is nested brief 1'));
|
|
148
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('began:.agent/repo=test/role=mechanic/briefs/linked-dir/nested2.md'));
|
|
149
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('This is nested brief 2'));
|
|
150
|
-
// Check that deeply nested file contents were printed
|
|
151
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('began:.agent/repo=test/role=mechanic/briefs/linked-dir/deeper/deep1.md'));
|
|
152
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('This is deep brief 1'));
|
|
153
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('began:.agent/repo=test/role=mechanic/briefs/linked-dir/deeper/deep2.md'));
|
|
154
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('This is deep brief 2'));
|
|
155
|
-
});
|
|
156
|
-
});
|
|
157
|
-
});
|
|
158
|
-
});
|
|
159
|
-
//# sourceMappingURL=invokeBriefsBoot.integration.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"invokeBriefsBoot.integration.test.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeBriefsBoot.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const commander_1 = require("commander");
|
|
4
|
-
const node_fs_1 = require("node:fs");
|
|
5
|
-
const node_path_1 = require("node:path");
|
|
6
|
-
const test_fns_1 = require("test-fns");
|
|
7
|
-
const Role_1 = require("../../domain/objects/Role");
|
|
8
|
-
const RoleRegistry_1 = require("../../domain/objects/RoleRegistry");
|
|
9
|
-
const invokeBriefsLink_1 = require("./invokeBriefsLink");
|
|
10
|
-
describe('invokeBriefsLink (integration)', () => {
|
|
11
|
-
(0, test_fns_1.given)('a CLI program with invokeBriefsLink registered', () => {
|
|
12
|
-
const testDir = (0, node_path_1.resolve)(__dirname, './.temp/invokeBriefsLink');
|
|
13
|
-
const originalCwd = process.cwd();
|
|
14
|
-
beforeAll(() => {
|
|
15
|
-
// Create test directory structure
|
|
16
|
-
(0, node_fs_1.mkdirSync)(testDir, { recursive: true });
|
|
17
|
-
process.chdir(testDir);
|
|
18
|
-
// Create mock briefs directory
|
|
19
|
-
const briefsDir = (0, node_path_1.resolve)(testDir, 'test-briefs');
|
|
20
|
-
(0, node_fs_1.mkdirSync)(briefsDir, { recursive: true });
|
|
21
|
-
// Create mock brief files
|
|
22
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.resolve)(briefsDir, 'brief1.md'), '# Brief 1\nThis is test brief 1');
|
|
23
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.resolve)(briefsDir, 'brief2.md'), '# Brief 2\nThis is test brief 2');
|
|
24
|
-
});
|
|
25
|
-
afterAll(() => {
|
|
26
|
-
process.chdir(originalCwd);
|
|
27
|
-
});
|
|
28
|
-
// Create mock registries with a role that has briefs configured
|
|
29
|
-
const mockRole = new Role_1.Role({
|
|
30
|
-
slug: 'mechanic',
|
|
31
|
-
name: 'Mechanic',
|
|
32
|
-
purpose: 'Test mechanic role',
|
|
33
|
-
readme: 'Test readme',
|
|
34
|
-
traits: [],
|
|
35
|
-
skills: {
|
|
36
|
-
dirs: [],
|
|
37
|
-
refs: [],
|
|
38
|
-
},
|
|
39
|
-
briefs: { dirs: [{ uri: 'test-briefs' }] },
|
|
40
|
-
});
|
|
41
|
-
const mockRegistry = new RoleRegistry_1.RoleRegistry({
|
|
42
|
-
slug: 'test-registry',
|
|
43
|
-
readme: 'Test readme',
|
|
44
|
-
roles: [mockRole],
|
|
45
|
-
});
|
|
46
|
-
const briefsCommand = new commander_1.Command('briefs');
|
|
47
|
-
const logSpy = jest.spyOn(console, 'log').mockImplementation(() => { });
|
|
48
|
-
beforeEach(() => {
|
|
49
|
-
logSpy.mockClear();
|
|
50
|
-
// Clean up any existing .agent directory
|
|
51
|
-
const agentDir = (0, node_path_1.resolve)(testDir, '.agent');
|
|
52
|
-
if ((0, node_fs_1.existsSync)(agentDir)) {
|
|
53
|
-
(0, node_fs_1.rmSync)(agentDir, { recursive: true, force: true });
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
(0, invokeBriefsLink_1.invokeBriefsLink)({ command: briefsCommand, registries: [mockRegistry] });
|
|
57
|
-
(0, test_fns_1.when)('invoked with "link --repo test --role mechanic"', () => {
|
|
58
|
-
(0, test_fns_1.then)('it should create symlinks to briefs directory', async () => {
|
|
59
|
-
await briefsCommand.parseAsync(['link', '--repo', 'test', '--role', 'mechanic'], {
|
|
60
|
-
from: 'user',
|
|
61
|
-
});
|
|
62
|
-
// Check that .agent/repo=test/role=mechanic/briefs directory was created
|
|
63
|
-
expect((0, node_fs_1.existsSync)((0, node_path_1.resolve)(testDir, '.agent/repo=test/role=mechanic/briefs'))).toBe(true);
|
|
64
|
-
// Check that the directory symlink was created (pointing to test-briefs)
|
|
65
|
-
expect((0, node_fs_1.existsSync)((0, node_path_1.resolve)(testDir, '.agent/repo=test/role=mechanic/briefs/test-briefs'))).toBe(true);
|
|
66
|
-
// Check that files are accessible through the symlinked directory
|
|
67
|
-
expect((0, node_fs_1.existsSync)((0, node_path_1.resolve)(testDir, '.agent/repo=test/role=mechanic/briefs/test-briefs/brief1.md'))).toBe(true);
|
|
68
|
-
expect((0, node_fs_1.existsSync)((0, node_path_1.resolve)(testDir, '.agent/repo=test/role=mechanic/briefs/test-briefs/brief2.md'))).toBe(true);
|
|
69
|
-
// Check log output
|
|
70
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Linking briefs for role "mechanic"'));
|
|
71
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('2 brief(s)'));
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
(0, test_fns_1.when)('invoked with "link" without --repo', () => {
|
|
75
|
-
(0, test_fns_1.then)('it should throw an error requiring --repo', async () => {
|
|
76
|
-
const error = await (0, test_fns_1.getError)(() => briefsCommand.parseAsync(['link', '--role', 'mechanic'], {
|
|
77
|
-
from: 'user',
|
|
78
|
-
}));
|
|
79
|
-
expect(error?.message).toContain('--repo is required');
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
(0, test_fns_1.when)('invoked with "link" without --role', () => {
|
|
83
|
-
(0, test_fns_1.then)('it should throw an error requiring --role', async () => {
|
|
84
|
-
const error = await (0, test_fns_1.getError)(() => briefsCommand.parseAsync(['link', '--repo', 'test'], {
|
|
85
|
-
from: 'user',
|
|
86
|
-
}));
|
|
87
|
-
expect(error?.message).toContain('--role is required');
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
(0, test_fns_1.when)('invoked with "link --repo test --role nonexistent"', () => {
|
|
91
|
-
(0, test_fns_1.then)('it should throw an error about role not found', async () => {
|
|
92
|
-
const error = await (0, test_fns_1.getError)(() => briefsCommand.parseAsync(['link', '--repo', 'test', '--role', 'nonexistent'], {
|
|
93
|
-
from: 'user',
|
|
94
|
-
}));
|
|
95
|
-
expect(error?.message).toContain('no role named "nonexistent"');
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
//# sourceMappingURL=invokeBriefsLink.integration.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"invokeBriefsLink.integration.test.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeBriefsLink.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const commander_1 = require("commander");
|
|
27
|
-
const promises_1 = require("node:fs/promises");
|
|
28
|
-
const path = __importStar(require("node:path"));
|
|
29
|
-
const test_fns_1 = require("test-fns");
|
|
30
|
-
const invokeChoose_1 = require("./invokeChoose");
|
|
31
|
-
// tiny fs helpers
|
|
32
|
-
const exists = async (p) => (0, promises_1.stat)(p)
|
|
33
|
-
.then(() => true)
|
|
34
|
-
.catch(() => false);
|
|
35
|
-
const read = async (p) => (await (0, promises_1.readFile)(p, 'utf8')).trim();
|
|
36
|
-
describe('invokeChoose (integration)', () => {
|
|
37
|
-
(0, test_fns_1.given)('a fixture directory with peer files', () => {
|
|
38
|
-
const fixtureRoot = path.resolve(__dirname + '/.temp/invokeChoose/');
|
|
39
|
-
const peerPrefix = 'provider.scene_6.loyalty_build.v1i2.[stories]';
|
|
40
|
-
const choiceDir = path.join(fixtureRoot);
|
|
41
|
-
const archiveDir = path.join(fixtureRoot, '.archive');
|
|
42
|
-
const peerNames = [
|
|
43
|
-
`${peerPrefix}._.md`,
|
|
44
|
-
`${peerPrefix}.v1._.md`,
|
|
45
|
-
`${peerPrefix}.v1.md`,
|
|
46
|
-
`${peerPrefix}.v1.i1.md`,
|
|
47
|
-
`${peerPrefix}.v1.i2.md`,
|
|
48
|
-
`${peerPrefix}.v1.i3.md`,
|
|
49
|
-
`${peerPrefix}.choice.v1.i3.md`,
|
|
50
|
-
`${peerPrefix}.v1.src`,
|
|
51
|
-
];
|
|
52
|
-
const peerChosen = peerNames[3]; // lets say we're choosing this one
|
|
53
|
-
const unrelated = 'random.txt'; // lets include a non peer too
|
|
54
|
-
const prepareTheScene = async () => {
|
|
55
|
-
// refresh the fixture
|
|
56
|
-
await (0, promises_1.rm)(fixtureRoot, { recursive: true, force: true });
|
|
57
|
-
await (0, promises_1.mkdir)(choiceDir, { recursive: true });
|
|
58
|
-
await (0, promises_1.mkdir)(archiveDir, { recursive: true });
|
|
59
|
-
// write peers with recognizable contents
|
|
60
|
-
await Promise.all(peerNames.map((name, index) => (0, promises_1.writeFile)(path.join(choiceDir, name), `content-${index}`)));
|
|
61
|
-
// an unrelated file that should remain untouched
|
|
62
|
-
await (0, promises_1.writeFile)(path.join(choiceDir, unrelated), 'unrelated-content');
|
|
63
|
-
console.log('🧹 fixture prepared', fixtureRoot);
|
|
64
|
-
};
|
|
65
|
-
beforeAll(async () => {
|
|
66
|
-
await prepareTheScene();
|
|
67
|
-
});
|
|
68
|
-
(0, test_fns_1.when)('invoking choose with a valid chosen attempt', () => {
|
|
69
|
-
// register command
|
|
70
|
-
const program = new commander_1.Command();
|
|
71
|
-
(0, invokeChoose_1.invokeChoose)({ program });
|
|
72
|
-
// declare the choice
|
|
73
|
-
const choicePath = path.join(choiceDir, peerChosen);
|
|
74
|
-
(0, test_fns_1.then)('it should succeed', async () => {
|
|
75
|
-
await program.parseAsync(['choose', '--choice', choicePath, '--archive', '@choice/.archive'], { from: 'user' });
|
|
76
|
-
});
|
|
77
|
-
(0, test_fns_1.then)('it should archive the peers', async () => {
|
|
78
|
-
for (const name of peerNames) {
|
|
79
|
-
const archivedPath = path.join(archiveDir, path.basename(name));
|
|
80
|
-
expect(await exists(archivedPath)).toBe(true);
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
(0, test_fns_1.then)('it should archive the peer choice with label', async () => {
|
|
84
|
-
// it should have been archived directly already
|
|
85
|
-
const choiceArchived = path.join(archiveDir, path.basename(peerChosen));
|
|
86
|
-
expect(await exists(choiceArchived)).toBe(true);
|
|
87
|
-
// it should ALSO have been archived with .choice label
|
|
88
|
-
const choiceArchivedLabeled = path.join(archiveDir, path
|
|
89
|
-
.basename(peerChosen)
|
|
90
|
-
.replace(`${peerPrefix}`, `${peerPrefix}.choice`));
|
|
91
|
-
expect(await exists(choiceArchivedLabeled)).toBe(true);
|
|
92
|
-
expect(await read(choiceArchivedLabeled)).toBe(await read(path.join(choiceDir, peerChosen)));
|
|
93
|
-
});
|
|
94
|
-
(0, test_fns_1.then)('it should keep only the .src and choice in the choice directory', async () => {
|
|
95
|
-
// chosen remains in place
|
|
96
|
-
expect(await exists(choicePath)).toBe(true);
|
|
97
|
-
// .src peers remain in place
|
|
98
|
-
expect(await exists(path.join(choiceDir, `${peerPrefix}.v1.src`))).toBe(true);
|
|
99
|
-
// non-source, non-chosen peers should be deleted from workdir
|
|
100
|
-
const shouldBeDeleted = peerNames.filter((p) => !p.endsWith('.src') && p !== peerChosen);
|
|
101
|
-
for (const name of shouldBeDeleted) {
|
|
102
|
-
expect(await exists(path.join(choiceDir, name))).toBe(false);
|
|
103
|
-
}
|
|
104
|
-
// unrelated file should remain untouched
|
|
105
|
-
expect(await exists(path.join(choiceDir, unrelated))).toBe(true);
|
|
106
|
-
expect(await read(path.join(choiceDir, unrelated))).toBe('unrelated-content');
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
//# sourceMappingURL=invokeChoose.integration.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"invokeChoose.integration.test.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeChoose.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const child_process_1 = require("child_process");
|
|
4
|
-
const commander_1 = require("commander");
|
|
5
|
-
const node_fs_1 = require("node:fs");
|
|
6
|
-
const node_path_1 = require("node:path");
|
|
7
|
-
const test_fns_1 = require("test-fns");
|
|
8
|
-
const invokeInit_1 = require("./invokeInit");
|
|
9
|
-
describe('invokeInit (integration)', () => {
|
|
10
|
-
(0, test_fns_1.given)('a CLI program with invokeInit registered', () => {
|
|
11
|
-
const testDir = (0, node_path_1.resolve)(__dirname, './.temp/invokeInit');
|
|
12
|
-
const originalCwd = process.cwd();
|
|
13
|
-
beforeAll(() => {
|
|
14
|
-
// Create test directory structure
|
|
15
|
-
(0, node_fs_1.mkdirSync)(testDir, { recursive: true });
|
|
16
|
-
// Initialize as a git repo for getGitRepoRoot to work
|
|
17
|
-
try {
|
|
18
|
-
(0, child_process_1.execSync)('git init', { cwd: testDir, stdio: 'pipe' });
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
// already a git repo
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
afterAll(() => {
|
|
25
|
-
process.chdir(originalCwd);
|
|
26
|
-
});
|
|
27
|
-
const program = new commander_1.Command('rhachet');
|
|
28
|
-
const logSpy = jest.spyOn(console, 'log').mockImplementation(() => { });
|
|
29
|
-
beforeEach(() => {
|
|
30
|
-
logSpy.mockClear();
|
|
31
|
-
process.chdir(testDir);
|
|
32
|
-
// Clean up any existing rhachet.use.ts
|
|
33
|
-
const configPath = (0, node_path_1.resolve)(testDir, 'rhachet.use.ts');
|
|
34
|
-
if ((0, node_fs_1.existsSync)(configPath)) {
|
|
35
|
-
(0, node_fs_1.rmSync)(configPath);
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
(0, invokeInit_1.invokeInit)({ program });
|
|
39
|
-
(0, test_fns_1.when)('invoked with package.json containing rhachet-roles-* packages', () => {
|
|
40
|
-
beforeEach(() => {
|
|
41
|
-
// Create package.json with rhachet-roles packages
|
|
42
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.resolve)(testDir, 'package.json'), JSON.stringify({
|
|
43
|
-
name: 'test-project',
|
|
44
|
-
dependencies: {
|
|
45
|
-
'rhachet-roles-ehmpathy': '1.0.0',
|
|
46
|
-
},
|
|
47
|
-
}));
|
|
48
|
-
});
|
|
49
|
-
(0, test_fns_1.then)('it should create rhachet.use.ts with discovered packages', async () => {
|
|
50
|
-
await program.parseAsync(['init'], { from: 'user' });
|
|
51
|
-
const configPath = (0, node_path_1.resolve)(testDir, 'rhachet.use.ts');
|
|
52
|
-
expect((0, node_fs_1.existsSync)(configPath)).toBe(true);
|
|
53
|
-
const content = (0, node_fs_1.readFileSync)(configPath, 'utf8');
|
|
54
|
-
expect(content).toContain('getRoleRegistryEhmpathy');
|
|
55
|
-
expect(content).toContain('getInvokeHooksEhmpathy');
|
|
56
|
-
expect(content).toContain("from 'rhachet-roles-ehmpathy'");
|
|
57
|
-
// Check log output
|
|
58
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('rhachet-roles-ehmpathy'));
|
|
59
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Done'));
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
(0, test_fns_1.when)('invoked with multiple rhachet-roles-* packages', () => {
|
|
63
|
-
beforeEach(() => {
|
|
64
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.resolve)(testDir, 'package.json'), JSON.stringify({
|
|
65
|
-
name: 'test-project',
|
|
66
|
-
dependencies: {
|
|
67
|
-
'rhachet-roles-ehmpathy': '1.0.0',
|
|
68
|
-
},
|
|
69
|
-
devDependencies: {
|
|
70
|
-
'rhachet-roles-other': '1.0.0',
|
|
71
|
-
},
|
|
72
|
-
}));
|
|
73
|
-
});
|
|
74
|
-
(0, test_fns_1.then)('it should include all packages in config', async () => {
|
|
75
|
-
await program.parseAsync(['init'], { from: 'user' });
|
|
76
|
-
const configPath = (0, node_path_1.resolve)(testDir, 'rhachet.use.ts');
|
|
77
|
-
const content = (0, node_fs_1.readFileSync)(configPath, 'utf8');
|
|
78
|
-
expect(content).toContain('getRoleRegistryEhmpathy');
|
|
79
|
-
expect(content).toContain('getRoleRegistryOther');
|
|
80
|
-
expect(content).toContain('getInvokeHooksEhmpathy(), getInvokeHooksOther()');
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
(0, test_fns_1.when)('invoked with no rhachet-roles-* packages', () => {
|
|
84
|
-
beforeEach(() => {
|
|
85
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.resolve)(testDir, 'package.json'), JSON.stringify({
|
|
86
|
-
name: 'test-project',
|
|
87
|
-
dependencies: {
|
|
88
|
-
lodash: '4.0.0',
|
|
89
|
-
},
|
|
90
|
-
}));
|
|
91
|
-
});
|
|
92
|
-
(0, test_fns_1.then)('it should warn and not create config', async () => {
|
|
93
|
-
await program.parseAsync(['init'], { from: 'user' });
|
|
94
|
-
const configPath = (0, node_path_1.resolve)(testDir, 'rhachet.use.ts');
|
|
95
|
-
expect((0, node_fs_1.existsSync)(configPath)).toBe(false);
|
|
96
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('No rhachet-roles-* packages found'));
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
(0, test_fns_1.when)('rhachet.use.ts already exists', () => {
|
|
100
|
-
beforeEach(() => {
|
|
101
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.resolve)(testDir, 'package.json'), JSON.stringify({
|
|
102
|
-
name: 'test-project',
|
|
103
|
-
dependencies: {
|
|
104
|
-
'rhachet-roles-ehmpathy': '1.0.0',
|
|
105
|
-
},
|
|
106
|
-
}));
|
|
107
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.resolve)(testDir, 'rhachet.use.ts'), '// existing config');
|
|
108
|
-
});
|
|
109
|
-
(0, test_fns_1.then)('it should throw an error without --force', async () => {
|
|
110
|
-
const error = await (0, test_fns_1.getError)(() => program.parseAsync(['init'], { from: 'user' }));
|
|
111
|
-
expect(error?.message).toContain('already exists');
|
|
112
|
-
expect(error?.message).toContain('--force');
|
|
113
|
-
});
|
|
114
|
-
(0, test_fns_1.then)('it should overwrite with --force', async () => {
|
|
115
|
-
await program.parseAsync(['init', '--force'], { from: 'user' });
|
|
116
|
-
const configPath = (0, node_path_1.resolve)(testDir, 'rhachet.use.ts');
|
|
117
|
-
const content = (0, node_fs_1.readFileSync)(configPath, 'utf8');
|
|
118
|
-
expect(content).toContain('getRoleRegistryEhmpathy');
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
//# sourceMappingURL=invokeInit.integration.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"invokeInit.integration.test.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeInit.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const commander_1 = require("commander");
|
|
4
|
-
const test_fns_1 = require("test-fns");
|
|
5
|
-
const example_echoRegistry_1 = require("../../.test/example.use.repo/example.echoRegistry");
|
|
6
|
-
const invokeReadme_1 = require("./invokeReadme");
|
|
7
|
-
describe('invokeReadme (integration)', () => {
|
|
8
|
-
(0, test_fns_1.given)('a CLI program with invokeReadme registered using EXAMPLE_REGISTRY', () => {
|
|
9
|
-
const program = new commander_1.Command();
|
|
10
|
-
const logSpy = jest.spyOn(console, 'log').mockImplementation(() => { });
|
|
11
|
-
beforeEach(() => logSpy.mockClear());
|
|
12
|
-
(0, invokeReadme_1.invokeReadme)({ program, registries: [example_echoRegistry_1.EXAMPLE_REGISTRY] });
|
|
13
|
-
(0, test_fns_1.when)('invoked with only --registry', () => {
|
|
14
|
-
(0, test_fns_1.then)('it should print the registry readme', async () => {
|
|
15
|
-
await program.parseAsync(['readme', '--registry', 'echo'], {
|
|
16
|
-
from: 'user',
|
|
17
|
-
});
|
|
18
|
-
expect(logSpy).toHaveBeenCalledWith('📜 echo.readme');
|
|
19
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining(example_echoRegistry_1.EXAMPLE_REGISTRY.readme.split('\n')[0]));
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
(0, test_fns_1.when)('invoked with --role only', () => {
|
|
23
|
-
(0, test_fns_1.then)('it should print the role readme', async () => {
|
|
24
|
-
await program.parseAsync(['readme', '--role', 'echoer'], {
|
|
25
|
-
from: 'user',
|
|
26
|
-
});
|
|
27
|
-
expect(logSpy).toHaveBeenCalledWith('📜 echoer.readme');
|
|
28
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining(example_echoRegistry_1.EXAMPLE_REGISTRY.roles[0].readme.split('\n')[0]));
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
(0, test_fns_1.when)('invoked with --role and --skill', () => {
|
|
32
|
-
(0, test_fns_1.then)('it should print the skill readme', async () => {
|
|
33
|
-
await program.parseAsync(['readme', '--role', 'echoer', '--skill', 'echo'], { from: 'user' });
|
|
34
|
-
expect(logSpy).toHaveBeenCalledWith('📜 echoer.echo.readme');
|
|
35
|
-
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining(example_echoRegistry_1.EXAMPLE_REGISTRY.roles[0].skills.refs[0].readme.split('\n')[0]));
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
(0, test_fns_1.when)('invoked with an unknown role', () => {
|
|
39
|
-
(0, test_fns_1.then)('it should throw a missing role error', async () => {
|
|
40
|
-
const error = await (0, test_fns_1.getError)(() => program.parseAsync(['readme', '--role', 'notreal'], {
|
|
41
|
-
from: 'user',
|
|
42
|
-
}));
|
|
43
|
-
expect(error?.message).toContain(`no role named "notreal" found in any registry`);
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
(0, test_fns_1.when)('invoked with an unknown skill', () => {
|
|
47
|
-
(0, test_fns_1.then)('it should throw a missing skill error', async () => {
|
|
48
|
-
const error = await (0, test_fns_1.getError)(() => program.parseAsync(['readme', '--role', 'echoer', '--skill', 'notreal'], { from: 'user' }));
|
|
49
|
-
expect(error?.message).toContain('no skill "notreal" in role "echoer"');
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
(0, test_fns_1.when)('invoked with an unknown registry', () => {
|
|
53
|
-
(0, test_fns_1.then)('it should throw a missing registry error', async () => {
|
|
54
|
-
const error = await (0, test_fns_1.getError)(() => program.parseAsync(['readme', '--registry', 'notreal'], {
|
|
55
|
-
from: 'user',
|
|
56
|
-
}));
|
|
57
|
-
expect(error?.message).toContain('no registry matches given options');
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
//# sourceMappingURL=invokeReadme.integration.test.js.map
|