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.
Files changed (204) hide show
  1. package/bin/run +4 -0
  2. package/dist/.test/directory.js.map +1 -0
  3. package/dist/.test/genContextLogTrail.js.map +1 -0
  4. package/dist/.test/genContextStitchTrail.js.map +1 -0
  5. package/dist/.test/getContextOpenAI.js.map +1 -0
  6. package/dist/.test/stitchers/genStitcherCodeFileRead.js.map +1 -0
  7. package/dist/.test/stitchers/genStitcherCodeFileWrite.js.map +1 -0
  8. package/dist/.test/stitchers/genStitcherCodeReviewImagine.js.map +1 -0
  9. package/dist/.test/stitchers/stitcherCodeDiffImagine.js.map +1 -0
  10. package/dist/.test/stitchers/stitcherFanoutRandomSum.js.map +1 -0
  11. package/dist/.test/stitchers/stitcherFanoutSubroutes.js.map +1 -0
  12. package/dist/{__test_assets__ → .test}/threads/codeArtist.js +1 -1
  13. package/dist/.test/threads/codeArtist.js.map +1 -0
  14. package/dist/{__test_assets__ → .test}/threads/codeCritic.js +1 -1
  15. package/dist/.test/threads/codeCritic.js.map +1 -0
  16. package/dist/.test/threads/director.js.map +1 -0
  17. package/dist/_topublish/file-fns/src/getFile.js.map +1 -0
  18. package/dist/contract/cli/.test/example.echoRegistry.d.ts +2 -0
  19. package/dist/contract/cli/.test/example.echoRegistry.js +54 -0
  20. package/dist/contract/cli/.test/example.echoRegistry.js.map +1 -0
  21. package/dist/contract/cli/invoke.d.ts +12 -0
  22. package/dist/contract/cli/invoke.integration.test.d.ts +1 -0
  23. package/dist/contract/cli/invoke.integration.test.js +38 -0
  24. package/dist/contract/cli/invoke.integration.test.js.map +1 -0
  25. package/dist/contract/cli/invoke.js +88 -0
  26. package/dist/contract/cli/invoke.js.map +1 -0
  27. package/dist/contract/cli/invokeAsk.d.ts +10 -0
  28. package/dist/contract/cli/invokeAsk.integration.test.d.ts +1 -0
  29. package/dist/contract/cli/invokeAsk.integration.test.js +41 -0
  30. package/dist/contract/cli/invokeAsk.integration.test.js.map +1 -0
  31. package/dist/contract/cli/invokeAsk.js +78 -0
  32. package/dist/contract/cli/invokeAsk.js.map +1 -0
  33. package/dist/contract/cli/invokeList.d.ts +10 -0
  34. package/dist/contract/cli/invokeList.js +48 -0
  35. package/dist/contract/cli/invokeList.js.map +1 -0
  36. package/dist/contract/cli/invokeReadme.d.ts +15 -0
  37. package/dist/contract/cli/invokeReadme.integration.test.d.ts +1 -0
  38. package/dist/contract/cli/invokeReadme.integration.test.js +62 -0
  39. package/dist/contract/cli/invokeReadme.integration.test.js.map +1 -0
  40. package/dist/contract/cli/invokeReadme.js +72 -0
  41. package/dist/contract/cli/invokeReadme.js.map +1 -0
  42. package/dist/domain/objects/Role.d.ts +47 -0
  43. package/dist/domain/objects/Role.js +9 -0
  44. package/dist/domain/objects/Role.js.map +1 -0
  45. package/dist/domain/objects/RoleContext.d.ts +46 -0
  46. package/dist/domain/objects/RoleContext.js +3 -0
  47. package/dist/domain/objects/RoleContext.js.map +1 -0
  48. package/dist/domain/objects/RoleRegistry.d.ts +31 -0
  49. package/dist/domain/objects/RoleRegistry.js +13 -0
  50. package/dist/domain/objects/RoleRegistry.js.map +1 -0
  51. package/dist/domain/objects/RoleSkill.d.ts +38 -0
  52. package/dist/domain/objects/RoleSkill.js +9 -0
  53. package/dist/domain/objects/RoleSkill.js.map +1 -0
  54. package/dist/domain/objects/RoleSkillArgGetter.d.ts +137 -0
  55. package/dist/domain/objects/RoleSkillArgGetter.js +11 -0
  56. package/dist/domain/objects/RoleSkillArgGetter.js.map +1 -0
  57. package/dist/domain/objects/RoleTrait.d.ts +34 -0
  58. package/dist/domain/objects/RoleTrait.js +9 -0
  59. package/dist/domain/objects/RoleTrait.js.map +1 -0
  60. package/dist/domain/objects/StitchStep.d.ts +1 -1
  61. package/dist/domain/objects/StitchStep.js.map +1 -1
  62. package/dist/domain/objects/Template.d.ts +21 -0
  63. package/dist/domain/objects/Template.js +8 -0
  64. package/dist/domain/objects/Template.js.map +1 -0
  65. package/dist/domain/objects/Template.test.d.ts +1 -0
  66. package/dist/domain/objects/Template.test.js +48 -0
  67. package/dist/domain/objects/Template.test.js.map +1 -0
  68. package/dist/domain/objects/index.d.ts +7 -0
  69. package/dist/domain/objects/index.js +7 -0
  70. package/dist/domain/objects/index.js.map +1 -1
  71. package/dist/logic/invoke/assureFindRole.d.ts +10 -0
  72. package/dist/logic/invoke/assureFindRole.js +22 -0
  73. package/dist/logic/invoke/assureFindRole.js.map +1 -0
  74. package/dist/logic/invoke/assureUniqueRoles.d.ts +5 -0
  75. package/dist/logic/invoke/assureUniqueRoles.js +19 -0
  76. package/dist/logic/invoke/assureUniqueRoles.js.map +1 -0
  77. package/dist/logic/invoke/getSkillContext.d.ts +17 -0
  78. package/dist/logic/invoke/getSkillContext.js +44 -0
  79. package/dist/logic/invoke/getSkillContext.js.map +1 -0
  80. package/dist/logic/invoke/getSkillContext.test.d.ts +1 -0
  81. package/dist/logic/invoke/getSkillContext.test.js +85 -0
  82. package/dist/logic/invoke/getSkillContext.test.js.map +1 -0
  83. package/dist/logic/invoke/getSkillThread.test.d.ts +1 -0
  84. package/dist/logic/invoke/getSkillThread.test.js +115 -0
  85. package/dist/logic/invoke/getSkillThread.test.js.map +1 -0
  86. package/dist/logic/invoke/getSkillThreads.d.ts +16 -0
  87. package/dist/logic/invoke/getSkillThreads.js +46 -0
  88. package/dist/logic/invoke/getSkillThreads.js.map +1 -0
  89. package/dist/logic/role/addRoleTraits.d.ts +18 -0
  90. package/dist/logic/role/addRoleTraits.js +33 -0
  91. package/dist/logic/role/addRoleTraits.js.map +1 -0
  92. package/dist/logic/role/addRoleTraits.test.d.ts +1 -0
  93. package/dist/logic/role/addRoleTraits.test.js +93 -0
  94. package/dist/logic/role/addRoleTraits.test.js.map +1 -0
  95. package/dist/logic/role/enrollThread.d.ts +16 -0
  96. package/dist/logic/role/enrollThread.integration.test.d.ts +1 -0
  97. package/dist/logic/role/enrollThread.integration.test.js +79 -0
  98. package/dist/logic/role/enrollThread.integration.test.js.map +1 -0
  99. package/dist/logic/role/enrollThread.js +36 -0
  100. package/dist/logic/role/enrollThread.js.map +1 -0
  101. package/dist/logic/stitch/adapters/imagineViaOpenAI.js.map +1 -1
  102. package/dist/logic/stitch/enstitch.test.js +2 -2
  103. package/dist/logic/stitch/enstitch.test.js.map +1 -1
  104. package/dist/logic/stitch/invokeImagineStitcher.integration.test.js +5 -3
  105. package/dist/logic/stitch/invokeImagineStitcher.integration.test.js.map +1 -1
  106. package/dist/logic/stitch/invokeImagineStitcher.js +1 -1
  107. package/dist/logic/stitch/invokeImagineStitcher.js.map +1 -1
  108. package/dist/logic/template/genStepImagineViaTemplate.d.ts +22 -0
  109. package/dist/logic/template/genStepImagineViaTemplate.js +22 -0
  110. package/dist/logic/template/genStepImagineViaTemplate.js.map +1 -0
  111. package/dist/logic/template/genStepImagineViaTemplate.test.d.ts +1 -0
  112. package/dist/logic/template/genStepImagineViaTemplate.test.js +126 -0
  113. package/dist/logic/template/genStepImagineViaTemplate.test.js.map +1 -0
  114. package/dist/logic/template/genTemplate.d.ts +16 -0
  115. package/dist/logic/template/genTemplate.js +21 -0
  116. package/dist/logic/template/genTemplate.js.map +1 -0
  117. package/dist/logic/template/genTemplate.test.d.ts +1 -0
  118. package/dist/logic/template/genTemplate.test.js +118 -0
  119. package/dist/logic/template/genTemplate.test.js.map +1 -0
  120. package/dist/logic/template/getTemplateValFromArtifacts.d.ts +9 -0
  121. package/dist/logic/template/getTemplateValFromArtifacts.js +27 -0
  122. package/dist/logic/template/getTemplateValFromArtifacts.js.map +1 -0
  123. package/dist/logic/template/getTemplateVarsFromInheritance.d.ts +22 -0
  124. package/dist/logic/template/getTemplateVarsFromInheritance.js +15 -0
  125. package/dist/logic/template/getTemplateVarsFromInheritance.js.map +1 -0
  126. package/dist/logic/template/useTemplate.d.ts +10 -0
  127. package/dist/logic/template/useTemplate.integration.test.d.ts +1 -0
  128. package/dist/logic/template/useTemplate.integration.test.js +28 -0
  129. package/dist/logic/template/useTemplate.integration.test.js.map +1 -0
  130. package/dist/logic/template/useTemplate.js +26 -0
  131. package/dist/logic/template/useTemplate.js.map +1 -0
  132. package/dist/logic/thread/getStitch.d.ts +11 -0
  133. package/dist/logic/thread/getStitch.js +18 -0
  134. package/dist/logic/thread/getStitch.js.map +1 -0
  135. package/dist/logic/thread/getStitch.test.d.ts +1 -0
  136. package/dist/logic/thread/getStitch.test.js +73 -0
  137. package/dist/logic/thread/getStitch.test.js.map +1 -0
  138. package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.test.js +2 -2
  139. package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.test.js.map +1 -1
  140. package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.test.js +2 -2
  141. package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.test.js.map +1 -1
  142. package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.test.js +2 -2
  143. package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.test.js.map +1 -1
  144. package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.test.js +2 -2
  145. package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.test.js.map +1 -1
  146. package/dist/logic/weave/compose/genStitchCycle.test.js +117 -2
  147. package/dist/logic/weave/compose/genStitchCycle.test.js.map +1 -1
  148. package/dist/logic/weave/compose/genStitchFanout.test.js +2 -2
  149. package/dist/logic/weave/compose/genStitchFanout.test.js.map +1 -1
  150. package/dist/logic/weave/enweaveOneChoice.test.js +2 -2
  151. package/dist/logic/weave/enweaveOneChoice.test.js.map +1 -1
  152. package/dist/logic/weave/enweaveOneCycle.test.js +2 -2
  153. package/dist/logic/weave/enweaveOneCycle.test.js.map +1 -1
  154. package/dist/logic/weave/enweaveOneFanout.integration.test.js +6 -6
  155. package/dist/logic/weave/enweaveOneFanout.integration.test.js.map +1 -1
  156. package/dist/logic/weave/enweaveOneRoute.integration.test.js +6 -6
  157. package/dist/logic/weave/enweaveOneRoute.integration.test.js.map +1 -1
  158. package/dist/logic/weave/enweaveOneStitcher.integration.test.js +10 -10
  159. package/dist/logic/weave/enweaveOneStitcher.integration.test.js.map +1 -1
  160. package/package.json +14 -4
  161. package/readme.md +32 -33
  162. package/dist/__nonpublished_modules__/file-fns/src/getFile.js.map +0 -1
  163. package/dist/__test_assets__/directory.js.map +0 -1
  164. package/dist/__test_assets__/genContextLogTrail.js.map +0 -1
  165. package/dist/__test_assets__/genContextStitchTrail.js.map +0 -1
  166. package/dist/__test_assets__/getContextOpenAI.js.map +0 -1
  167. package/dist/__test_assets__/stitchers/genStitcherCodeFileRead.js.map +0 -1
  168. package/dist/__test_assets__/stitchers/genStitcherCodeFileWrite.js.map +0 -1
  169. package/dist/__test_assets__/stitchers/genStitcherCodeReviewImagine.js.map +0 -1
  170. package/dist/__test_assets__/stitchers/stitcherCodeDiffImagine.js.map +0 -1
  171. package/dist/__test_assets__/stitchers/stitcherFanoutRandomSum.js.map +0 -1
  172. package/dist/__test_assets__/stitchers/stitcherFanoutSubroutes.js.map +0 -1
  173. package/dist/__test_assets__/threads/codeArtist.js.map +0 -1
  174. package/dist/__test_assets__/threads/codeCritic.js.map +0 -1
  175. package/dist/__test_assets__/threads/director.js.map +0 -1
  176. package/dist/logic/thread/enroleThread.d.ts +0 -4
  177. package/dist/logic/thread/enroleThread.js +0 -6
  178. package/dist/logic/thread/enroleThread.js.map +0 -1
  179. /package/dist/{__test_assets__ → .test}/directory.d.ts +0 -0
  180. /package/dist/{__test_assets__ → .test}/directory.js +0 -0
  181. /package/dist/{__test_assets__ → .test}/genContextLogTrail.d.ts +0 -0
  182. /package/dist/{__test_assets__ → .test}/genContextLogTrail.js +0 -0
  183. /package/dist/{__test_assets__ → .test}/genContextStitchTrail.d.ts +0 -0
  184. /package/dist/{__test_assets__ → .test}/genContextStitchTrail.js +0 -0
  185. /package/dist/{__test_assets__ → .test}/getContextOpenAI.d.ts +0 -0
  186. /package/dist/{__test_assets__ → .test}/getContextOpenAI.js +0 -0
  187. /package/dist/{__test_assets__ → .test}/stitchers/genStitcherCodeFileRead.d.ts +0 -0
  188. /package/dist/{__test_assets__ → .test}/stitchers/genStitcherCodeFileRead.js +0 -0
  189. /package/dist/{__test_assets__ → .test}/stitchers/genStitcherCodeFileWrite.d.ts +0 -0
  190. /package/dist/{__test_assets__ → .test}/stitchers/genStitcherCodeFileWrite.js +0 -0
  191. /package/dist/{__test_assets__ → .test}/stitchers/genStitcherCodeReviewImagine.d.ts +0 -0
  192. /package/dist/{__test_assets__ → .test}/stitchers/genStitcherCodeReviewImagine.js +0 -0
  193. /package/dist/{__test_assets__ → .test}/stitchers/stitcherCodeDiffImagine.d.ts +0 -0
  194. /package/dist/{__test_assets__ → .test}/stitchers/stitcherCodeDiffImagine.js +0 -0
  195. /package/dist/{__test_assets__ → .test}/stitchers/stitcherFanoutRandomSum.d.ts +0 -0
  196. /package/dist/{__test_assets__ → .test}/stitchers/stitcherFanoutRandomSum.js +0 -0
  197. /package/dist/{__test_assets__ → .test}/stitchers/stitcherFanoutSubroutes.d.ts +0 -0
  198. /package/dist/{__test_assets__ → .test}/stitchers/stitcherFanoutSubroutes.js +0 -0
  199. /package/dist/{__test_assets__ → .test}/threads/codeArtist.d.ts +0 -0
  200. /package/dist/{__test_assets__ → .test}/threads/codeCritic.d.ts +0 -0
  201. /package/dist/{__test_assets__ → .test}/threads/director.d.ts +0 -0
  202. /package/dist/{__test_assets__ → .test}/threads/director.js +0 -0
  203. /package/dist/{__nonpublished_modules__ → _topublish}/file-fns/src/getFile.d.ts +0 -0
  204. /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;AAerB,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
+ {"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("../../__test_assets__/genContextLogTrail");
5
- const genContextStitchTrail_1 = require("../../__test_assets__/genContextStitchTrail");
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":"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"}
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("../../__test_assets__/genContextLogTrail");
5
- const genContextStitchTrail_1 = require("../../__test_assets__/genContextStitchTrail");
6
- const getContextOpenAI_1 = require("../../__test_assets__/getContextOpenAI");
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":"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"}
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;IAE9C,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"}
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,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