rhachet 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/run +4 -0
- package/dist/.test/directory.js.map +1 -0
- package/dist/.test/genContextLogTrail.js.map +1 -0
- package/dist/.test/genContextStitchTrail.js.map +1 -0
- package/dist/.test/getContextOpenAI.js.map +1 -0
- package/dist/.test/stitchers/genStitcherCodeFileRead.js.map +1 -0
- package/dist/.test/stitchers/genStitcherCodeFileWrite.js.map +1 -0
- package/dist/.test/stitchers/genStitcherCodeReviewImagine.js.map +1 -0
- package/dist/.test/stitchers/stitcherCodeDiffImagine.js.map +1 -0
- package/dist/.test/stitchers/stitcherFanoutRandomSum.js.map +1 -0
- package/dist/.test/stitchers/stitcherFanoutSubroutes.js.map +1 -0
- package/dist/{__test_assets__ → .test}/threads/codeArtist.js +1 -1
- package/dist/.test/threads/codeArtist.js.map +1 -0
- package/dist/{__test_assets__ → .test}/threads/codeCritic.js +1 -1
- package/dist/.test/threads/codeCritic.js.map +1 -0
- package/dist/.test/threads/director.js.map +1 -0
- package/dist/_topublish/file-fns/src/getFile.js.map +1 -0
- package/dist/contract/cli/.test/example.echoRegistry.d.ts +2 -0
- package/dist/contract/cli/.test/example.echoRegistry.js +54 -0
- package/dist/contract/cli/.test/example.echoRegistry.js.map +1 -0
- package/dist/contract/cli/invoke.d.ts +12 -0
- package/dist/contract/cli/invoke.integration.test.d.ts +1 -0
- package/dist/contract/cli/invoke.integration.test.js +38 -0
- package/dist/contract/cli/invoke.integration.test.js.map +1 -0
- package/dist/contract/cli/invoke.js +88 -0
- package/dist/contract/cli/invoke.js.map +1 -0
- package/dist/contract/cli/invokeAsk.d.ts +10 -0
- package/dist/contract/cli/invokeAsk.integration.test.d.ts +1 -0
- package/dist/contract/cli/invokeAsk.integration.test.js +41 -0
- package/dist/contract/cli/invokeAsk.integration.test.js.map +1 -0
- package/dist/contract/cli/invokeAsk.js +78 -0
- package/dist/contract/cli/invokeAsk.js.map +1 -0
- package/dist/contract/cli/invokeList.d.ts +10 -0
- package/dist/contract/cli/invokeList.js +48 -0
- package/dist/contract/cli/invokeList.js.map +1 -0
- package/dist/contract/cli/invokeReadme.d.ts +15 -0
- package/dist/contract/cli/invokeReadme.integration.test.d.ts +1 -0
- package/dist/contract/cli/invokeReadme.integration.test.js +62 -0
- package/dist/contract/cli/invokeReadme.integration.test.js.map +1 -0
- package/dist/contract/cli/invokeReadme.js +72 -0
- package/dist/contract/cli/invokeReadme.js.map +1 -0
- package/dist/domain/objects/Role.d.ts +47 -0
- package/dist/domain/objects/Role.js +9 -0
- package/dist/domain/objects/Role.js.map +1 -0
- package/dist/domain/objects/RoleContext.d.ts +46 -0
- package/dist/domain/objects/RoleContext.js +3 -0
- package/dist/domain/objects/RoleContext.js.map +1 -0
- package/dist/domain/objects/RoleRegistry.d.ts +31 -0
- package/dist/domain/objects/RoleRegistry.js +13 -0
- package/dist/domain/objects/RoleRegistry.js.map +1 -0
- package/dist/domain/objects/RoleSkill.d.ts +38 -0
- package/dist/domain/objects/RoleSkill.js +9 -0
- package/dist/domain/objects/RoleSkill.js.map +1 -0
- package/dist/domain/objects/RoleSkillArgGetter.d.ts +137 -0
- package/dist/domain/objects/RoleSkillArgGetter.js +11 -0
- package/dist/domain/objects/RoleSkillArgGetter.js.map +1 -0
- package/dist/domain/objects/RoleTrait.d.ts +34 -0
- package/dist/domain/objects/RoleTrait.js +9 -0
- package/dist/domain/objects/RoleTrait.js.map +1 -0
- package/dist/domain/objects/StitchStep.d.ts +1 -1
- package/dist/domain/objects/StitchStep.js.map +1 -1
- package/dist/domain/objects/Template.d.ts +21 -0
- package/dist/domain/objects/Template.js +8 -0
- package/dist/domain/objects/Template.js.map +1 -0
- package/dist/domain/objects/Template.test.d.ts +1 -0
- package/dist/domain/objects/Template.test.js +48 -0
- package/dist/domain/objects/Template.test.js.map +1 -0
- package/dist/domain/objects/index.d.ts +7 -0
- package/dist/domain/objects/index.js +7 -0
- package/dist/domain/objects/index.js.map +1 -1
- package/dist/logic/invoke/assureFindRole.d.ts +10 -0
- package/dist/logic/invoke/assureFindRole.js +22 -0
- package/dist/logic/invoke/assureFindRole.js.map +1 -0
- package/dist/logic/invoke/assureUniqueRoles.d.ts +5 -0
- package/dist/logic/invoke/assureUniqueRoles.js +19 -0
- package/dist/logic/invoke/assureUniqueRoles.js.map +1 -0
- package/dist/logic/invoke/getSkillContext.d.ts +17 -0
- package/dist/logic/invoke/getSkillContext.js +44 -0
- package/dist/logic/invoke/getSkillContext.js.map +1 -0
- package/dist/logic/invoke/getSkillContext.test.d.ts +1 -0
- package/dist/logic/invoke/getSkillContext.test.js +85 -0
- package/dist/logic/invoke/getSkillContext.test.js.map +1 -0
- package/dist/logic/invoke/getSkillThread.test.d.ts +1 -0
- package/dist/logic/invoke/getSkillThread.test.js +115 -0
- package/dist/logic/invoke/getSkillThread.test.js.map +1 -0
- package/dist/logic/invoke/getSkillThreads.d.ts +16 -0
- package/dist/logic/invoke/getSkillThreads.js +46 -0
- package/dist/logic/invoke/getSkillThreads.js.map +1 -0
- package/dist/logic/role/addRoleTraits.d.ts +18 -0
- package/dist/logic/role/addRoleTraits.js +33 -0
- package/dist/logic/role/addRoleTraits.js.map +1 -0
- package/dist/logic/role/addRoleTraits.test.d.ts +1 -0
- package/dist/logic/role/addRoleTraits.test.js +93 -0
- package/dist/logic/role/addRoleTraits.test.js.map +1 -0
- package/dist/logic/role/enrollThread.d.ts +16 -0
- package/dist/logic/role/enrollThread.integration.test.d.ts +1 -0
- package/dist/logic/role/enrollThread.integration.test.js +79 -0
- package/dist/logic/role/enrollThread.integration.test.js.map +1 -0
- package/dist/logic/role/enrollThread.js +36 -0
- package/dist/logic/role/enrollThread.js.map +1 -0
- package/dist/logic/stitch/adapters/imagineViaOpenAI.js.map +1 -1
- package/dist/logic/stitch/enstitch.test.js +2 -2
- package/dist/logic/stitch/enstitch.test.js.map +1 -1
- package/dist/logic/stitch/invokeImagineStitcher.integration.test.js +5 -3
- package/dist/logic/stitch/invokeImagineStitcher.integration.test.js.map +1 -1
- package/dist/logic/stitch/invokeImagineStitcher.js +1 -1
- package/dist/logic/stitch/invokeImagineStitcher.js.map +1 -1
- package/dist/logic/template/genStepImagineViaTemplate.d.ts +22 -0
- package/dist/logic/template/genStepImagineViaTemplate.js +22 -0
- package/dist/logic/template/genStepImagineViaTemplate.js.map +1 -0
- package/dist/logic/template/genStepImagineViaTemplate.test.d.ts +1 -0
- package/dist/logic/template/genStepImagineViaTemplate.test.js +126 -0
- package/dist/logic/template/genStepImagineViaTemplate.test.js.map +1 -0
- package/dist/logic/template/genTemplate.d.ts +16 -0
- package/dist/logic/template/genTemplate.js +21 -0
- package/dist/logic/template/genTemplate.js.map +1 -0
- package/dist/logic/template/genTemplate.test.d.ts +1 -0
- package/dist/logic/template/genTemplate.test.js +118 -0
- package/dist/logic/template/genTemplate.test.js.map +1 -0
- package/dist/logic/template/getTemplateValFromArtifacts.d.ts +9 -0
- package/dist/logic/template/getTemplateValFromArtifacts.js +27 -0
- package/dist/logic/template/getTemplateValFromArtifacts.js.map +1 -0
- package/dist/logic/template/getTemplateVarsFromInheritance.d.ts +22 -0
- package/dist/logic/template/getTemplateVarsFromInheritance.js +15 -0
- package/dist/logic/template/getTemplateVarsFromInheritance.js.map +1 -0
- package/dist/logic/template/useTemplate.d.ts +10 -0
- package/dist/logic/template/useTemplate.integration.test.d.ts +1 -0
- package/dist/logic/template/useTemplate.integration.test.js +28 -0
- package/dist/logic/template/useTemplate.integration.test.js.map +1 -0
- package/dist/logic/template/useTemplate.js +26 -0
- package/dist/logic/template/useTemplate.js.map +1 -0
- package/dist/logic/thread/getStitch.d.ts +11 -0
- package/dist/logic/thread/getStitch.js +18 -0
- package/dist/logic/thread/getStitch.js.map +1 -0
- package/dist/logic/thread/getStitch.test.d.ts +1 -0
- package/dist/logic/thread/getStitch.test.js +73 -0
- package/dist/logic/thread/getStitch.test.js.map +1 -0
- package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.test.js +2 -2
- package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.test.js.map +1 -1
- package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.test.js +2 -2
- package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.test.js.map +1 -1
- package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.test.js +2 -2
- package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.test.js.map +1 -1
- package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.test.js +2 -2
- package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.test.js.map +1 -1
- package/dist/logic/weave/compose/genStitchCycle.test.js +117 -2
- package/dist/logic/weave/compose/genStitchCycle.test.js.map +1 -1
- package/dist/logic/weave/compose/genStitchFanout.test.js +2 -2
- package/dist/logic/weave/compose/genStitchFanout.test.js.map +1 -1
- package/dist/logic/weave/enweaveOneChoice.test.js +2 -2
- package/dist/logic/weave/enweaveOneChoice.test.js.map +1 -1
- package/dist/logic/weave/enweaveOneCycle.test.js +2 -2
- package/dist/logic/weave/enweaveOneCycle.test.js.map +1 -1
- package/dist/logic/weave/enweaveOneFanout.integration.test.js +6 -6
- package/dist/logic/weave/enweaveOneFanout.integration.test.js.map +1 -1
- package/dist/logic/weave/enweaveOneRoute.integration.test.js +6 -6
- package/dist/logic/weave/enweaveOneRoute.integration.test.js.map +1 -1
- package/dist/logic/weave/enweaveOneStitcher.integration.test.js +10 -10
- package/dist/logic/weave/enweaveOneStitcher.integration.test.js.map +1 -1
- package/package.json +14 -4
- package/readme.md +32 -33
- package/dist/__nonpublished_modules__/file-fns/src/getFile.js.map +0 -1
- package/dist/__test_assets__/directory.js.map +0 -1
- package/dist/__test_assets__/genContextLogTrail.js.map +0 -1
- package/dist/__test_assets__/genContextStitchTrail.js.map +0 -1
- package/dist/__test_assets__/getContextOpenAI.js.map +0 -1
- package/dist/__test_assets__/stitchers/genStitcherCodeFileRead.js.map +0 -1
- package/dist/__test_assets__/stitchers/genStitcherCodeFileWrite.js.map +0 -1
- package/dist/__test_assets__/stitchers/genStitcherCodeReviewImagine.js.map +0 -1
- package/dist/__test_assets__/stitchers/stitcherCodeDiffImagine.js.map +0 -1
- package/dist/__test_assets__/stitchers/stitcherFanoutRandomSum.js.map +0 -1
- package/dist/__test_assets__/stitchers/stitcherFanoutSubroutes.js.map +0 -1
- package/dist/__test_assets__/threads/codeArtist.js.map +0 -1
- package/dist/__test_assets__/threads/codeCritic.js.map +0 -1
- package/dist/__test_assets__/threads/director.js.map +0 -1
- package/dist/logic/thread/enroleThread.d.ts +0 -4
- package/dist/logic/thread/enroleThread.js +0 -6
- package/dist/logic/thread/enroleThread.js.map +0 -1
- /package/dist/{__test_assets__ → .test}/directory.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/directory.js +0 -0
- /package/dist/{__test_assets__ → .test}/genContextLogTrail.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/genContextLogTrail.js +0 -0
- /package/dist/{__test_assets__ → .test}/genContextStitchTrail.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/genContextStitchTrail.js +0 -0
- /package/dist/{__test_assets__ → .test}/getContextOpenAI.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/getContextOpenAI.js +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/genStitcherCodeFileRead.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/genStitcherCodeFileRead.js +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/genStitcherCodeFileWrite.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/genStitcherCodeFileWrite.js +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/genStitcherCodeReviewImagine.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/genStitcherCodeReviewImagine.js +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/stitcherCodeDiffImagine.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/stitcherCodeDiffImagine.js +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/stitcherFanoutRandomSum.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/stitcherFanoutRandomSum.js +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/stitcherFanoutSubroutes.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/stitcherFanoutSubroutes.js +0 -0
- /package/dist/{__test_assets__ → .test}/threads/codeArtist.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/threads/codeCritic.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/threads/director.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/threads/director.js +0 -0
- /package/dist/{__nonpublished_modules__ → _topublish}/file-fns/src/getFile.d.ts +0 -0
- /package/dist/{__nonpublished_modules__ → _topublish}/file-fns/src/getFile.js +0 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const helpful_errors_1 = require("helpful-errors");
|
|
4
|
+
const rhachet_artifact_git_1 = require("rhachet-artifact-git");
|
|
5
|
+
const test_fns_1 = require("test-fns");
|
|
6
|
+
const enrollThread_1 = require("./enrollThread");
|
|
7
|
+
describe('enrollThread', () => {
|
|
8
|
+
(0, test_fns_1.given)('a role with no traits or skills', () => {
|
|
9
|
+
(0, test_fns_1.when)('calling enrollThread()', () => {
|
|
10
|
+
(0, test_fns_1.then)('it should default traits and skills to empty arrays', async () => {
|
|
11
|
+
const thread = await (0, enrollThread_1.enrollThread)({
|
|
12
|
+
role: 'mechanic',
|
|
13
|
+
});
|
|
14
|
+
expect(thread.context.inherit.traits).toEqual([]);
|
|
15
|
+
expect(thread.context.inherit.skills).toEqual([]);
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
(0, test_fns_1.given)('a role with only traits provided', () => {
|
|
20
|
+
const traitArtifact = (0, rhachet_artifact_git_1.genArtifactGitFile)({
|
|
21
|
+
uri: __dirname + '/.temp/traits.md',
|
|
22
|
+
});
|
|
23
|
+
const traitContent = '__trait__';
|
|
24
|
+
beforeEach(() => traitArtifact.set({ content: traitContent }));
|
|
25
|
+
(0, test_fns_1.when)('calling enrollThread()', () => {
|
|
26
|
+
(0, test_fns_1.then)('it should inject traits and still initialize skills as an empty array', async () => {
|
|
27
|
+
const thread = await (0, enrollThread_1.enrollThread)({
|
|
28
|
+
role: 'analyst',
|
|
29
|
+
inherit: {
|
|
30
|
+
traits: [traitArtifact],
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
expect(thread.context.inherit.traits).toHaveLength(1);
|
|
34
|
+
expect(thread.context.inherit.traits[0]?.content).toBeDefined();
|
|
35
|
+
expect(thread.context.inherit.skills).toEqual([]);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
(0, test_fns_1.given)('a role with only skills provided', () => {
|
|
40
|
+
const skillArtifact = (0, rhachet_artifact_git_1.genArtifactGitFile)({
|
|
41
|
+
uri: __dirname + '/.temp/skills.md',
|
|
42
|
+
});
|
|
43
|
+
(0, test_fns_1.when)('calling enrollThread()', () => {
|
|
44
|
+
(0, test_fns_1.then)('it should throw since addRoleSkills is not yet implemented', async () => {
|
|
45
|
+
await expect((0, enrollThread_1.enrollThread)({
|
|
46
|
+
role: 'operator',
|
|
47
|
+
inherit: {
|
|
48
|
+
skills: [skillArtifact],
|
|
49
|
+
},
|
|
50
|
+
})).rejects.toThrow(helpful_errors_1.UnexpectedCodePathError);
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
(0, test_fns_1.given)('a role with both traits and stash', () => {
|
|
55
|
+
const traitArtifact = (0, rhachet_artifact_git_1.genArtifactGitFile)({
|
|
56
|
+
uri: __dirname + '/.temp/traits.md',
|
|
57
|
+
});
|
|
58
|
+
const traitContent = '__trait__';
|
|
59
|
+
beforeEach(() => traitArtifact.set({ content: traitContent }));
|
|
60
|
+
(0, test_fns_1.when)('calling enrollThread()', () => {
|
|
61
|
+
(0, test_fns_1.then)('it should inject both stash and traits and ensure skills is []', async () => {
|
|
62
|
+
const thread = await (0, enrollThread_1.enrollThread)({
|
|
63
|
+
role: 'teacher',
|
|
64
|
+
stash: {
|
|
65
|
+
lesson: 'always explain the why',
|
|
66
|
+
},
|
|
67
|
+
inherit: {
|
|
68
|
+
traits: [traitArtifact],
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
expect(thread.context.stash.lesson).toBe('always explain the why');
|
|
72
|
+
expect(thread.context.inherit.traits).toHaveLength(1);
|
|
73
|
+
expect(thread.context.inherit.traits[0].content).toEqual(traitContent);
|
|
74
|
+
expect(thread.context.inherit.skills).toEqual([]);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=enrollThread.integration.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enrollThread.integration.test.js","sourceRoot":"","sources":["../../../src/logic/role/enrollThread.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.enrollThread = void 0;
|
|
4
|
+
const helpful_errors_1 = require("helpful-errors");
|
|
5
|
+
const genThread_1 = require("../thread/genThread");
|
|
6
|
+
const addRoleTraits_1 = require("./addRoleTraits");
|
|
7
|
+
/**
|
|
8
|
+
* .what = creates a thread for a given role, with optional inherited traits and skills
|
|
9
|
+
* .why = eliminates boilerplate around thread setup, including `as const`, trait/skill injection, and context composition
|
|
10
|
+
*/
|
|
11
|
+
const enrollThread = async ({ role, inherit, stash, }) => {
|
|
12
|
+
let thread = (0, genThread_1.genThread)({
|
|
13
|
+
role: role,
|
|
14
|
+
inherit: {
|
|
15
|
+
traits: [],
|
|
16
|
+
skills: [],
|
|
17
|
+
},
|
|
18
|
+
stash: stash,
|
|
19
|
+
});
|
|
20
|
+
if (inherit?.traits?.length) {
|
|
21
|
+
thread = await (0, addRoleTraits_1.addRoleTraits)({
|
|
22
|
+
thread,
|
|
23
|
+
from: { artifacts: inherit.traits },
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
if (inherit?.skills?.length) {
|
|
27
|
+
throw new helpful_errors_1.UnexpectedCodePathError('todo');
|
|
28
|
+
// thread = await addRoleSkills({
|
|
29
|
+
// thread,
|
|
30
|
+
// from: { artifacts: inherit.skills },
|
|
31
|
+
// });
|
|
32
|
+
}
|
|
33
|
+
return thread;
|
|
34
|
+
};
|
|
35
|
+
exports.enrollThread = enrollThread;
|
|
36
|
+
//# sourceMappingURL=enrollThread.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enrollThread.js","sourceRoot":"","sources":["../../../src/logic/role/enrollThread.ts"],"names":[],"mappings":";;;AAAA,mDAAyD;AAMzD,mDAAgD;AAChD,mDAAgD;AAEhD;;;GAGG;AACI,MAAM,YAAY,GAAG,KAAK,EAG/B,EACA,IAAI,EACJ,OAAO,EACP,KAAK,GAQN,EAA+C,EAAE;IAChD,IAAI,MAAM,GAAG,IAAA,qBAAS,EAA6B;QACjD,IAAI,EAAE,IAAI;QACV,OAAO,EAAE;YACP,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACX;QACD,KAAK,EAAE,KAAe;KACvB,CAAC,CAAC;IAEH,IAAI,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC5B,MAAM,GAAG,MAAM,IAAA,6BAAa,EAAC;YAC3B,MAAM;YACN,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC5B,MAAM,IAAI,wCAAuB,CAAC,MAAM,CAAC,CAAC;QAC1C,iCAAiC;QACjC,YAAY;QACZ,yCAAyC;QACzC,MAAM;IACR,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAxCW,QAAA,YAAY,gBAwCvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imagineViaOpenAI.js","sourceRoot":"","sources":["../../../../src/logic/stitch/adapters/imagineViaOpenAI.ts"],"names":[],"mappings":";;;;;;AAAA,mDAAyD;AACzD,oDAA4B;
|
|
1
|
+
{"version":3,"file":"imagineViaOpenAI.js","sourceRoot":"","sources":["../../../../src/logic/stitch/adapters/imagineViaOpenAI.ts"],"names":[],"mappings":";;;;;;AAAA,mDAAyD;AACzD,oDAA4B;AAarB,MAAM,gBAAgB,GAAG,KAAK,EACnC,KAAa,EACb,OAAsB,EACL,EAAE;IACnB,MAAM,MAAM,GAAG,IAAI,gBAAM,CAAC;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;KAChC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QACpD,eAAe,EACb,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM;YAClC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE;YACzB,CAAC,CAAC,SAAS;QACf,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,KAAK;aACf;SACF;QACD,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK;KAChC,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACtB,MAAM,IAAI,wCAAuB,CAC/B,iDAAiD,EACjD,EAAE,QAAQ,EAAE,CACb,CAAC;IACJ,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAC7B,MAAM,IAAI,wCAAuB,CAC/B,wCAAwC,EACxC,EAAE,QAAQ,EAAE,CACb,CAAC;IACJ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;QACtC,MAAM,IAAI,wCAAuB,CAAC,iCAAiC,EAAE;YACnE,QAAQ;SACT,CAAC,CAAC;IACL,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;AAC7C,CAAC,CAAC;AAnCW,QAAA,gBAAgB,oBAmC3B"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const test_fns_1 = require("test-fns");
|
|
4
|
-
const genContextLogTrail_1 = require("
|
|
5
|
-
const genContextStitchTrail_1 = require("
|
|
4
|
+
const genContextLogTrail_1 = require("../../.test/genContextLogTrail");
|
|
5
|
+
const genContextStitchTrail_1 = require("../../.test/genContextStitchTrail");
|
|
6
6
|
const StitchStep_1 = require("../../domain/objects/StitchStep");
|
|
7
7
|
const Thread_1 = require("../../domain/objects/Thread");
|
|
8
8
|
const enstitch_1 = require("./enstitch");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enstitch.test.js","sourceRoot":"","sources":["../../../src/logic/stitch/enstitch.test.ts"],"names":[],"mappings":";;AAAA,uCAA6C;AAG7C,
|
|
1
|
+
{"version":3,"file":"enstitch.test.js","sourceRoot":"","sources":["../../../src/logic/stitch/enstitch.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const uni_time_1 = require("@ehmpathy/uni-time");
|
|
3
4
|
const test_fns_1 = require("test-fns");
|
|
4
|
-
const genContextLogTrail_1 = require("
|
|
5
|
-
const genContextStitchTrail_1 = require("
|
|
6
|
-
const getContextOpenAI_1 = require("
|
|
5
|
+
const genContextLogTrail_1 = require("../../.test/genContextLogTrail");
|
|
6
|
+
const genContextStitchTrail_1 = require("../../.test/genContextStitchTrail");
|
|
7
|
+
const getContextOpenAI_1 = require("../../.test/getContextOpenAI");
|
|
7
8
|
const StitchStep_1 = require("../../domain/objects/StitchStep");
|
|
8
9
|
const Thread_1 = require("../../domain/objects/Thread");
|
|
9
10
|
const imagineViaOpenAI_1 = require("./adapters/imagineViaOpenAI");
|
|
10
11
|
const enstitch_1 = require("./enstitch");
|
|
12
|
+
jest.setTimeout((0, uni_time_1.toMilliseconds)({ minutes: 3 }));
|
|
11
13
|
describe('invokeImagineStitcher', () => {
|
|
12
14
|
test_fns_1.given.runIf(!process.env.CI)('a representative imagine stitcher', () => {
|
|
13
15
|
const context = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invokeImagineStitcher.integration.test.js","sourceRoot":"","sources":["../../../src/logic/stitch/invokeImagineStitcher.integration.test.ts"],"names":[],"mappings":";;AAAA,uCAA6C;AAE7C,
|
|
1
|
+
{"version":3,"file":"invokeImagineStitcher.integration.test.js","sourceRoot":"","sources":["../../../src/logic/stitch/invokeImagineStitcher.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ exports.invokeImagineStitcher = void 0;
|
|
|
7
7
|
const invokeImagineStitcher = async (input, context) => {
|
|
8
8
|
const { stitcher, threads } = input;
|
|
9
9
|
// enprompt the thread
|
|
10
|
-
const prompt = stitcher.enprompt({ threads });
|
|
10
|
+
const prompt = await stitcher.enprompt({ threads });
|
|
11
11
|
// invoke the imagination
|
|
12
12
|
const imagined = await stitcher.imagine(prompt, context);
|
|
13
13
|
// deprompt back into a stitch
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invokeImagineStitcher.js","sourceRoot":"","sources":["../../../src/logic/stitch/invokeImagineStitcher.ts"],"names":[],"mappings":";;;AAIA;;GAEG;AACI,MAAM,qBAAqB,GAAG,KAAK,EACxC,KAGC,EACD,OAA6B,EACmC,EAAE;IAClE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEpC,sBAAsB;IACtB,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"invokeImagineStitcher.js","sourceRoot":"","sources":["../../../src/logic/stitch/invokeImagineStitcher.ts"],"names":[],"mappings":";;;AAIA;;GAEG;AACI,MAAM,qBAAqB,GAAG,KAAK,EACxC,KAGC,EACD,OAA6B,EACmC,EAAE;IAClE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEpC,sBAAsB;IACtB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAEpD,yBAAyB;IACzB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEzD,8BAA8B;IAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC/B,OAAO;QACP,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAC;IAEH,oBAAoB;IACpB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAxBW,QAAA,qBAAqB,yBAwBhC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { GStitcher, StitchStepImagine } from '../../domain/objects';
|
|
2
|
+
import { Template } from '../../domain/objects/Template';
|
|
3
|
+
/**
|
|
4
|
+
* .what = creates a typed StitchStepImagine from a prompt template and AI imagine function
|
|
5
|
+
* .why = enables reusable, type-safe imagine steps with minimal boilerplate
|
|
6
|
+
*/
|
|
7
|
+
export declare const genStepImagineViaTemplate: <TStitcher extends GStitcher<any, any, any>>(input: {
|
|
8
|
+
slug: string;
|
|
9
|
+
readme: string;
|
|
10
|
+
stitchee: keyof TStitcher['threads'];
|
|
11
|
+
template: Template<{
|
|
12
|
+
threads: TStitcher['threads'];
|
|
13
|
+
}>;
|
|
14
|
+
imagine: (prompt: string, context: TStitcher['context']) => Promise<string>;
|
|
15
|
+
deprompt?: (args: {
|
|
16
|
+
input: string;
|
|
17
|
+
output: string;
|
|
18
|
+
}) => {
|
|
19
|
+
output: TStitcher['output'];
|
|
20
|
+
input: any;
|
|
21
|
+
};
|
|
22
|
+
}) => StitchStepImagine<TStitcher>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.genStepImagineViaTemplate = void 0;
|
|
4
|
+
const objects_1 = require("../../domain/objects");
|
|
5
|
+
/**
|
|
6
|
+
* .what = creates a typed StitchStepImagine from a prompt template and AI imagine function
|
|
7
|
+
* .why = enables reusable, type-safe imagine steps with minimal boilerplate
|
|
8
|
+
*/
|
|
9
|
+
const genStepImagineViaTemplate = (input) => new objects_1.StitchStepImagine({
|
|
10
|
+
form: 'IMAGINE',
|
|
11
|
+
slug: input.slug,
|
|
12
|
+
readme: input.readme,
|
|
13
|
+
stitchee: input.stitchee,
|
|
14
|
+
enprompt: async ({ threads }) => input.template.use({ threads }),
|
|
15
|
+
imagine: input.imagine,
|
|
16
|
+
deprompt: ({ promptIn, promptOut }) => input.deprompt?.({ input: promptIn, output: promptOut }) ?? {
|
|
17
|
+
input: { prompt: promptIn },
|
|
18
|
+
output: { content: promptOut },
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
exports.genStepImagineViaTemplate = genStepImagineViaTemplate;
|
|
22
|
+
//# sourceMappingURL=genStepImagineViaTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genStepImagineViaTemplate.js","sourceRoot":"","sources":["../../../src/logic/template/genStepImagineViaTemplate.ts"],"names":[],"mappings":";;;AAAA,kDAAoE;AAGpE;;;GAGG;AACI,MAAM,yBAAyB,GAAG,CAEvC,KAUD,EAAgC,EAAE,CACjC,IAAI,2BAAiB,CAAY;IAC/B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,QAAQ,EAAE,KAAK,CAAC,QAAkB;IAClC,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;IAChE,OAAO,EAAE,KAAK,CAAC,OAAO;IACtB,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CACpC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,IAAI;QAC1D,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC3B,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAyB;KACtD;CACJ,CAAC,CAAC;AAzBQ,QAAA,yBAAyB,6BAyBjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const test_fns_1 = require("test-fns");
|
|
4
|
+
const genContextLogTrail_1 = require("../../.test/genContextLogTrail");
|
|
5
|
+
const genContextStitchTrail_1 = require("../../.test/genContextStitchTrail");
|
|
6
|
+
const genThread_1 = require("../thread/genThread");
|
|
7
|
+
const genStepImagineViaTemplate_1 = require("./genStepImagineViaTemplate");
|
|
8
|
+
const genTemplate_1 = require("./genTemplate");
|
|
9
|
+
const useTemplate_1 = require("./useTemplate");
|
|
10
|
+
jest.mock('./useTemplate', () => ({
|
|
11
|
+
useTemplate: jest.fn(),
|
|
12
|
+
}));
|
|
13
|
+
describe('genStepImagineViaTemplate', () => {
|
|
14
|
+
const context = {
|
|
15
|
+
...(0, genContextLogTrail_1.genContextLogTrail)(),
|
|
16
|
+
...(0, genContextStitchTrail_1.genContextStitchTrail)(),
|
|
17
|
+
};
|
|
18
|
+
(0, test_fns_1.given)('a prompt template and imagine step with incompatible threads', () => {
|
|
19
|
+
const threads = {
|
|
20
|
+
assistant: (0, genThread_1.genThread)({ role: 'assistant', name: 'Bert' }),
|
|
21
|
+
};
|
|
22
|
+
const template = (0, genTemplate_1.genTemplate)({
|
|
23
|
+
ref: { uri: 'path/to/template.md' },
|
|
24
|
+
getVariables: (input) => ({
|
|
25
|
+
name: input.threads.assistant.context.name,
|
|
26
|
+
}),
|
|
27
|
+
});
|
|
28
|
+
(0, test_fns_1.then)('there should be a devtime error on instantiation', async () => {
|
|
29
|
+
(0, genStepImagineViaTemplate_1.genStepImagineViaTemplate)({
|
|
30
|
+
slug: 'test-slug',
|
|
31
|
+
readme: 'testing imagine via template',
|
|
32
|
+
stitchee: 'assistant',
|
|
33
|
+
// @ts-expect-error: Property 'name' is missing in type 'ThreadContextRole<"assistant">' but required in type '{ role: "assistant"; name: string; }'.ts(2322)
|
|
34
|
+
template,
|
|
35
|
+
imagine: async (prompt) => `AI said: ${prompt}`,
|
|
36
|
+
deprompt: ({ input, output }) => ({
|
|
37
|
+
input: { prompt: input },
|
|
38
|
+
output: { content: output },
|
|
39
|
+
}),
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
(0, test_fns_1.given)('a prompt template and imagine step with compatible threads', () => {
|
|
44
|
+
const threads = {
|
|
45
|
+
assistant: (0, genThread_1.genThread)({ role: 'assistant', name: 'Casey' }),
|
|
46
|
+
};
|
|
47
|
+
const template = (0, genTemplate_1.genTemplate)({
|
|
48
|
+
ref: { uri: 'path/to/template.md' },
|
|
49
|
+
getVariables: (input) => ({
|
|
50
|
+
name: input.threads.assistant.context.name,
|
|
51
|
+
}),
|
|
52
|
+
});
|
|
53
|
+
(0, test_fns_1.when)('creating a StitchStepImagine', () => {
|
|
54
|
+
useTemplate_1.useTemplate.mockImplementation(async (input) => {
|
|
55
|
+
console.log({ input });
|
|
56
|
+
const vars = await input.variables;
|
|
57
|
+
return `hydrated: ${vars.name}`;
|
|
58
|
+
});
|
|
59
|
+
const imagineStep = (0, genStepImagineViaTemplate_1.genStepImagineViaTemplate)({
|
|
60
|
+
slug: 'test-slug',
|
|
61
|
+
readme: 'testing imagine via template',
|
|
62
|
+
stitchee: 'assistant',
|
|
63
|
+
template,
|
|
64
|
+
imagine: async (prompt) => `AI said: ${prompt}`,
|
|
65
|
+
deprompt: ({ input, output }) => ({
|
|
66
|
+
input: { prompt: input },
|
|
67
|
+
output: { content: output },
|
|
68
|
+
}),
|
|
69
|
+
});
|
|
70
|
+
(0, test_fns_1.then)('it defines a valid imagine step', async () => {
|
|
71
|
+
expect(imagineStep.form).toBe('IMAGINE');
|
|
72
|
+
expect(imagineStep.slug).toBe('test-slug');
|
|
73
|
+
expect(imagineStep.stitchee).toBe('assistant');
|
|
74
|
+
});
|
|
75
|
+
(0, test_fns_1.then)('it renders the prompt using useTemplate()', async () => {
|
|
76
|
+
const prompt = await imagineStep.enprompt({ threads });
|
|
77
|
+
expect(prompt).toBe('hydrated: Casey');
|
|
78
|
+
expect(useTemplate_1.useTemplate).toHaveBeenCalledWith({
|
|
79
|
+
ref: { uri: 'path/to/template.md' },
|
|
80
|
+
variables: { name: 'Casey' },
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
(0, test_fns_1.then)('it runs the imagine function with the prompt', async () => {
|
|
84
|
+
const result = await imagineStep.imagine('a prompt', context);
|
|
85
|
+
expect(result).toBe('AI said: a prompt');
|
|
86
|
+
});
|
|
87
|
+
(0, test_fns_1.then)('it transforms the output with deprompt', () => {
|
|
88
|
+
const deprompted = imagineStep.deprompt({
|
|
89
|
+
threads,
|
|
90
|
+
promptIn: 'abc',
|
|
91
|
+
promptOut: 'xyz',
|
|
92
|
+
});
|
|
93
|
+
expect(deprompted).toEqual({
|
|
94
|
+
input: { prompt: 'abc' },
|
|
95
|
+
output: { content: 'xyz' },
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
(0, test_fns_1.when)('passing an invalid stitchee', () => {
|
|
100
|
+
(0, test_fns_1.then)('TypeScript throws an error', () => {
|
|
101
|
+
(0, genStepImagineViaTemplate_1.genStepImagineViaTemplate)({
|
|
102
|
+
slug: 'invalid',
|
|
103
|
+
readme: 'should fail',
|
|
104
|
+
// @ts-expect-error 'ghost' is not a valid stitchee
|
|
105
|
+
stitchee: 'ghost',
|
|
106
|
+
template,
|
|
107
|
+
imagine: async (prompt) => `ghost: ${prompt}`,
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
(0, test_fns_1.when)('passing a non-literal stitchee key', () => {
|
|
112
|
+
const stitchee = 'assistant';
|
|
113
|
+
(0, test_fns_1.then)('TypeScript throws an error', () => {
|
|
114
|
+
(0, genStepImagineViaTemplate_1.genStepImagineViaTemplate)({
|
|
115
|
+
slug: 'bad-key',
|
|
116
|
+
readme: 'non-literal stitchee',
|
|
117
|
+
// @ts-expect-error stitchee must be a literal keyof threads
|
|
118
|
+
stitchee,
|
|
119
|
+
template,
|
|
120
|
+
imagine: async () => `result`,
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
//# sourceMappingURL=genStepImagineViaTemplate.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genStepImagineViaTemplate.test.js","sourceRoot":"","sources":["../../../src/logic/template/genStepImagineViaTemplate.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Serializable } from 'serde-fns';
|
|
2
|
+
import { Threads } from '../../domain/objects';
|
|
3
|
+
import { Template } from '../../domain/objects/Template';
|
|
4
|
+
/**
|
|
5
|
+
* .what = creates a Template that hydrates from a thread context
|
|
6
|
+
* .why = enables loading + variable projection in one step
|
|
7
|
+
* - transforms from Template<TVariables> to Template<{ threads: TThreads }>, so you can just template.use({ threads }), and abstract away the transform
|
|
8
|
+
*/
|
|
9
|
+
export declare const genTemplate: <TThreads extends Threads<any>, TVariables extends Record<string, Serializable> = Record<string, Serializable>>(input: {
|
|
10
|
+
ref: Template<TVariables>['ref'];
|
|
11
|
+
getVariables: (input: {
|
|
12
|
+
threads: TThreads;
|
|
13
|
+
}) => TVariables | Promise<TVariables>;
|
|
14
|
+
}) => Template<{
|
|
15
|
+
threads: TThreads;
|
|
16
|
+
}>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.genTemplate = void 0;
|
|
4
|
+
const useTemplate_1 = require("./useTemplate");
|
|
5
|
+
/**
|
|
6
|
+
* .what = creates a Template that hydrates from a thread context
|
|
7
|
+
* .why = enables loading + variable projection in one step
|
|
8
|
+
* - transforms from Template<TVariables> to Template<{ threads: TThreads }>, so you can just template.use({ threads }), and abstract away the transform
|
|
9
|
+
*/
|
|
10
|
+
const genTemplate = (input) => ({
|
|
11
|
+
ref: input.ref,
|
|
12
|
+
use: async ({ threads }) => {
|
|
13
|
+
const variables = await input.getVariables({ threads });
|
|
14
|
+
return (0, useTemplate_1.useTemplate)({
|
|
15
|
+
ref: input.ref,
|
|
16
|
+
variables,
|
|
17
|
+
});
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
exports.genTemplate = genTemplate;
|
|
21
|
+
//# sourceMappingURL=genTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genTemplate.js","sourceRoot":"","sources":["../../../src/logic/template/genTemplate.ts"],"names":[],"mappings":";;;AAIA,+CAA4C;AAE5C;;;;GAIG;AACI,MAAM,WAAW,GAAG,CAMzB,KAKD,EAAmC,EAAE,CAAC,CAAC;IACtC,GAAG,EAAE,KAAK,CAAC,GAAG;IACd,GAAG,EAAE,KAAK,EAAE,EAAE,OAAO,EAAyB,EAAE,EAAE;QAChD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACxD,OAAO,IAAA,yBAAW,EAAC;YACjB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,SAAS;SACV,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AApBU,QAAA,WAAW,eAoBrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const rhachet_artifact_git_1 = require("rhachet-artifact-git");
|
|
4
|
+
const test_fns_1 = require("test-fns");
|
|
5
|
+
const genThread_1 = require("../thread/genThread");
|
|
6
|
+
const genTemplate_1 = require("./genTemplate");
|
|
7
|
+
const ref = { uri: __dirname + '/.temp/useTemplate.example1.md' };
|
|
8
|
+
const templateArt = (0, rhachet_artifact_git_1.genArtifactGitFile)(ref);
|
|
9
|
+
describe('genTemplate', () => {
|
|
10
|
+
(0, test_fns_1.given)('a valid template and threads with nested values', () => {
|
|
11
|
+
const threads = {
|
|
12
|
+
person: (0, genThread_1.genThread)({
|
|
13
|
+
role: 'person',
|
|
14
|
+
name: 'Casey',
|
|
15
|
+
meta: { day: 'Monday' },
|
|
16
|
+
}),
|
|
17
|
+
};
|
|
18
|
+
(0, test_fns_1.when)('calling use() on a hydrated template', () => {
|
|
19
|
+
const template = (0, genTemplate_1.genTemplate)({
|
|
20
|
+
ref,
|
|
21
|
+
getVariables: (input) => ({
|
|
22
|
+
name: input.threads.person.context.name,
|
|
23
|
+
meta: input.threads.person.context.meta,
|
|
24
|
+
}),
|
|
25
|
+
});
|
|
26
|
+
(0, test_fns_1.then)('it returns the fully hydrated string', async () => {
|
|
27
|
+
await templateArt.set({
|
|
28
|
+
content: 'Hello $.rhachet{name} — today is $.rhachet{meta.day}',
|
|
29
|
+
});
|
|
30
|
+
const result = await template.use({ threads });
|
|
31
|
+
expect(result).toBe('Hello Casey — today is Monday');
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
(0, test_fns_1.given)('a template with deeply nested async variables', () => {
|
|
36
|
+
const threads = {
|
|
37
|
+
session: (0, genThread_1.genThread)({
|
|
38
|
+
role: 'session',
|
|
39
|
+
user: { name: 'Jordan', details: { role: 'admin' } },
|
|
40
|
+
}),
|
|
41
|
+
};
|
|
42
|
+
(0, test_fns_1.when)('calling use() with async getVariables', () => {
|
|
43
|
+
const template = (0, genTemplate_1.genTemplate)({
|
|
44
|
+
ref,
|
|
45
|
+
getVariables: async (input) => ({
|
|
46
|
+
user: input.threads.session.context.user,
|
|
47
|
+
}),
|
|
48
|
+
});
|
|
49
|
+
(0, test_fns_1.then)('it correctly interpolates the nested keys', async () => {
|
|
50
|
+
await templateArt.set({
|
|
51
|
+
content: 'User: $.rhachet{user.name}, Role: $.rhachet{user.details.role}',
|
|
52
|
+
});
|
|
53
|
+
const result = await template.use({ threads });
|
|
54
|
+
expect(result).toBe('User: Jordan, Role: admin');
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
(0, test_fns_1.given)('a template that references a missing variable', () => {
|
|
59
|
+
const threads = {
|
|
60
|
+
user: (0, genThread_1.genThread)({ role: 'user', name: 'Sam' }),
|
|
61
|
+
};
|
|
62
|
+
(0, test_fns_1.when)('calling use() with missing $.rhachet{missing}', () => {
|
|
63
|
+
const template = (0, genTemplate_1.genTemplate)({
|
|
64
|
+
ref,
|
|
65
|
+
getVariables: (input) => ({
|
|
66
|
+
name: input.threads.user.context.name,
|
|
67
|
+
}),
|
|
68
|
+
});
|
|
69
|
+
(0, test_fns_1.then)('it throws a missing variable error', async () => {
|
|
70
|
+
await templateArt.set({
|
|
71
|
+
content: 'Hello $.rhachet{name} and $.rhachet{missing}',
|
|
72
|
+
});
|
|
73
|
+
await expect(template.use({ threads })).rejects.toThrow('missing variable for $.rhachet{missing} in template');
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
(0, test_fns_1.given)('a non-existent template file', () => {
|
|
78
|
+
const badRef = { uri: __dirname + '/.temp/does-not-exist.md' };
|
|
79
|
+
(0, test_fns_1.when)('calling use() on a template with a missing file', () => {
|
|
80
|
+
const threads = {
|
|
81
|
+
ghost: (0, genThread_1.genThread)({ role: 'ghost' }),
|
|
82
|
+
};
|
|
83
|
+
const template = (0, genTemplate_1.genTemplate)({
|
|
84
|
+
ref: badRef,
|
|
85
|
+
getVariables: () => ({
|
|
86
|
+
hello: 'world',
|
|
87
|
+
}),
|
|
88
|
+
});
|
|
89
|
+
(0, test_fns_1.then)('it throws a file missing error', async () => {
|
|
90
|
+
await expect(template.use({ threads })).rejects.toThrow('template artifact does not exist');
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
(0, test_fns_1.given)('an invalid getVariables that references a nonexistent thread role', () => {
|
|
95
|
+
(0, test_fns_1.when)('defining the template', () => {
|
|
96
|
+
(0, test_fns_1.then)('TypeScript throws a compile-time error', () => {
|
|
97
|
+
(0, genTemplate_1.genTemplate)({
|
|
98
|
+
ref,
|
|
99
|
+
getVariables: (input) =>
|
|
100
|
+
// @ts-expect-error - threads.ghost does not exist
|
|
101
|
+
input.threads.ghost.context.name,
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
(0, test_fns_1.given)('an invalid getVariables that returns a non-object', () => {
|
|
107
|
+
(0, test_fns_1.when)('defining the template', () => {
|
|
108
|
+
(0, test_fns_1.then)('TypeScript throws a compile-time error', () => {
|
|
109
|
+
(0, genTemplate_1.genTemplate)({
|
|
110
|
+
ref,
|
|
111
|
+
// @ts-expect-error - return must be object-like
|
|
112
|
+
getVariables: () => 'just a string',
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=genTemplate.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genTemplate.test.js","sourceRoot":"","sources":["../../../src/logic/template/genTemplate.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Artifact } from 'rhachet-artifact';
|
|
2
|
+
import { GitFile } from 'rhachet-artifact-git';
|
|
3
|
+
/**
|
|
4
|
+
* .what = reads the artifacts given and returns a string for use in a template val
|
|
5
|
+
* .why = makes it easy to execute this common usecase
|
|
6
|
+
*/
|
|
7
|
+
export declare const getTemplateValFromArtifacts: (input: {
|
|
8
|
+
artifacts: Artifact<typeof GitFile>[];
|
|
9
|
+
}) => Promise<string>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTemplateValFromArtifacts = void 0;
|
|
4
|
+
const helpful_errors_1 = require("helpful-errors");
|
|
5
|
+
const rhachet_artifact_git_1 = require("rhachet-artifact-git");
|
|
6
|
+
/**
|
|
7
|
+
* .what = reads the artifacts given and returns a string for use in a template val
|
|
8
|
+
* .why = makes it easy to execute this common usecase
|
|
9
|
+
*/
|
|
10
|
+
const getTemplateValFromArtifacts = async (input) => {
|
|
11
|
+
const root = await (0, rhachet_artifact_git_1.getGitRepoRoot)({ from: process.cwd() });
|
|
12
|
+
return (await Promise.all(input.artifacts.map(async (ref) => {
|
|
13
|
+
const content = (await ref.get())?.content ??
|
|
14
|
+
helpful_errors_1.UnexpectedCodePathError.throw('artifact does not exist', {
|
|
15
|
+
ref,
|
|
16
|
+
});
|
|
17
|
+
return [
|
|
18
|
+
'',
|
|
19
|
+
' ```ts',
|
|
20
|
+
` // ${ref.ref.uri.replace(root, '@gitroot')}`,
|
|
21
|
+
...content.split('\n').map((line) => ` ${line}`), // indents by 4 chars
|
|
22
|
+
' ```',
|
|
23
|
+
].join('\n');
|
|
24
|
+
}))).join('\n\n');
|
|
25
|
+
};
|
|
26
|
+
exports.getTemplateValFromArtifacts = getTemplateValFromArtifacts;
|
|
27
|
+
//# sourceMappingURL=getTemplateValFromArtifacts.js.map
|