rhachet 1.12.1 → 1.12.3

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 (295) hide show
  1. package/dist/contract/cli/invoke.js +1 -1
  2. package/dist/contract/cli/invoke.js.map +1 -1
  3. package/dist/contract/cli/invokeAsk.d.ts +3 -3
  4. package/dist/contract/cli/invokeBriefs.d.ts +2 -2
  5. package/dist/contract/cli/invokeBriefsBoot.d.ts +1 -1
  6. package/dist/contract/cli/invokeBriefsBoot.js +2 -2
  7. package/dist/contract/cli/invokeBriefsBoot.js.map +1 -1
  8. package/dist/contract/cli/invokeBriefsLink.d.ts +2 -2
  9. package/dist/contract/cli/invokeBriefsLink.js +1 -1
  10. package/dist/contract/cli/invokeBriefsLink.js.map +1 -1
  11. package/dist/contract/cli/invokeChoose.d.ts +1 -1
  12. package/dist/contract/cli/invokeInit.d.ts +1 -1
  13. package/dist/contract/cli/invokeInit.js +1 -1
  14. package/dist/contract/cli/invokeInit.js.map +1 -1
  15. package/dist/contract/cli/invokeList.d.ts +2 -2
  16. package/dist/contract/cli/invokeReadme.d.ts +2 -2
  17. package/dist/contract/cli/invokeRoles.d.ts +2 -2
  18. package/dist/contract/cli/invokeRolesBoot.d.ts +1 -1
  19. package/dist/contract/cli/invokeRolesBoot.js +2 -2
  20. package/dist/contract/cli/invokeRolesBoot.js.map +1 -1
  21. package/dist/contract/cli/invokeRolesLink.d.ts +2 -2
  22. package/dist/contract/cli/invokeRolesLink.js +1 -1
  23. package/dist/contract/cli/invokeRolesLink.js.map +1 -1
  24. package/dist/contract/sdk.d.ts +13 -13
  25. package/dist/contract/sdk.js +25 -25
  26. package/dist/contract/sdk.js.map +1 -1
  27. package/dist/domain/constants.d.ts +3 -0
  28. package/dist/domain/constants.js +5 -0
  29. package/dist/domain/constants.js.map +1 -0
  30. package/dist/domain/objects/InvokeHooks.d.ts +1 -1
  31. package/dist/domain/objects/InvokeOpts.d.ts +1 -1
  32. package/dist/domain/objects/Role.d.ts +2 -2
  33. package/dist/domain/objects/RoleContext.d.ts +1 -1
  34. package/dist/domain/objects/RoleSkill.d.ts +2 -2
  35. package/dist/domain/objects/RoleSkillArgGetter.d.ts +3 -3
  36. package/dist/domain/objects/RoleTrait.d.ts +2 -2
  37. package/dist/domain/objects/Stitch.d.ts +4 -4
  38. package/dist/domain/objects/Stitch.js.map +1 -1
  39. package/dist/domain/objects/StitchChoice.d.ts +2 -2
  40. package/dist/domain/objects/StitchChoice.js.map +1 -1
  41. package/dist/domain/objects/StitchCycle.d.ts +4 -4
  42. package/dist/domain/objects/StitchCycle.js.map +1 -1
  43. package/dist/domain/objects/StitchFanout.d.ts +4 -4
  44. package/dist/domain/objects/StitchFanout.js.map +1 -1
  45. package/dist/domain/objects/StitchRoute.d.ts +1 -1
  46. package/dist/domain/objects/StitchRoute.js.map +1 -1
  47. package/dist/domain/objects/StitchSetEvent.d.ts +3 -3
  48. package/dist/domain/objects/StitchStep.d.ts +3 -3
  49. package/dist/domain/objects/Stitcher.d.ts +9 -9
  50. package/dist/domain/objects/Stitcher.js.map +1 -1
  51. package/dist/domain/objects/Template.d.ts +2 -2
  52. package/dist/domain/objects/Template.js.map +1 -1
  53. package/dist/domain/objects/Thread.d.ts +2 -2
  54. package/dist/domain/objects/Threads.d.ts +2 -2
  55. package/dist/domain/objects/Threads.js.map +1 -1
  56. package/dist/domain/objects/index.d.ts +2 -2
  57. package/dist/domain/objects/index.js +2 -2
  58. package/dist/domain/objects/index.js.map +1 -1
  59. package/dist/logic/context/genContextStitchTrail.d.ts +1 -1
  60. package/dist/logic/context/genContextStitchTrail.js.map +1 -1
  61. package/dist/logic/invoke/assureFindRole.d.ts +2 -2
  62. package/dist/logic/invoke/assureUniqueRoles.d.ts +1 -1
  63. package/dist/logic/invoke/getInvokeHooksByOpts.d.ts +2 -2
  64. package/dist/logic/invoke/getRegistriesByOpts.d.ts +2 -2
  65. package/dist/logic/invoke/getSkillContext.d.ts +3 -3
  66. package/dist/logic/invoke/getSkillThreads.d.ts +4 -4
  67. package/dist/logic/invoke/hooks/onInvokeAskInput.d.ts +2 -2
  68. package/dist/logic/invoke/performInCurrentThread.d.ts +2 -2
  69. package/dist/logic/invoke/performInIsolatedThread.execute.d.ts +1 -1
  70. package/dist/logic/invoke/performInIsolatedThread.invoke.d.ts +2 -2
  71. package/dist/logic/invoke/performInIsolatedThread.invoke.js +3 -3
  72. package/dist/logic/invoke/performInIsolatedThread.invoke.js.map +1 -1
  73. package/dist/logic/invoke/performInIsolatedThreads.d.ts +1 -1
  74. package/dist/logic/role/addRoleTraits.d.ts +5 -5
  75. package/dist/logic/role/enrollThread.d.ts +4 -4
  76. package/dist/logic/role/genRoleSkill.d.ts +1 -1
  77. package/dist/logic/stitch/adapters/imagineViaOpenAI.d.ts +1 -1
  78. package/dist/logic/stitch/enstitch.d.ts +3 -3
  79. package/dist/logic/stitch/enstitch.js +1 -1
  80. package/dist/logic/stitch/enstitch.js.map +1 -1
  81. package/dist/logic/stitch/invokeImagineStitcher.d.ts +3 -3
  82. package/dist/logic/stitch/withStitchTrail.d.ts +4 -4
  83. package/dist/logic/stitch/withStitchTrail.js +1 -1
  84. package/dist/logic/stitch/withStitchTrail.js.map +1 -1
  85. package/dist/logic/template/genStepImagineViaTemplate.d.ts +2 -2
  86. package/dist/logic/template/genStepImagineViaTemplate.js.map +1 -1
  87. package/dist/logic/template/genTemplate.d.ts +3 -3
  88. package/dist/logic/template/getTemplatePathByCallerPath.d.ts +1 -1
  89. package/dist/logic/template/getTemplatePathByCallerPath.js +2 -2
  90. package/dist/logic/template/getTemplatePathByCallerPath.js.map +1 -1
  91. package/dist/logic/template/getTemplateValFromArtifacts.d.ts +2 -2
  92. package/dist/logic/template/getTemplateValFromArtifacts.js.map +1 -1
  93. package/dist/logic/template/getTemplateVarsFromInheritance.d.ts +1 -1
  94. package/dist/logic/template/useTemplate.d.ts +2 -2
  95. package/dist/logic/thread/getStitch.d.ts +1 -1
  96. package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.d.ts +3 -3
  97. package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.d.ts +4 -4
  98. package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.d.ts +6 -6
  99. package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.d.ts +4 -4
  100. package/dist/logic/weave/compose/ProcedureContextMerged.generic.d.ts +1 -1
  101. package/dist/logic/weave/compose/ThreadsMerged.generic.d.ts +4 -4
  102. package/dist/logic/weave/compose/asStitcher.d.ts +3 -3
  103. package/dist/logic/weave/compose/asStitcherFlat.d.ts +2 -2
  104. package/dist/logic/weave/compose/genStitchChoice.d.ts +3 -3
  105. package/dist/logic/weave/compose/genStitchCycle.d.ts +5 -5
  106. package/dist/logic/weave/compose/genStitchFanout.d.ts +5 -5
  107. package/dist/logic/weave/compose/genStitchFanout.js.map +1 -1
  108. package/dist/logic/weave/compose/genStitchRoute.d.ts +3 -3
  109. package/dist/logic/weave/compose/genStitchRoute.js.map +1 -1
  110. package/dist/logic/weave/enweaveOneChoice.d.ts +2 -2
  111. package/dist/logic/weave/enweaveOneChoice.js.map +1 -1
  112. package/dist/logic/weave/enweaveOneCycle.d.ts +2 -2
  113. package/dist/logic/weave/enweaveOneCycle.js.map +1 -1
  114. package/dist/logic/weave/enweaveOneFanout.d.ts +2 -2
  115. package/dist/logic/weave/enweaveOneFanout.js.map +1 -1
  116. package/dist/logic/weave/enweaveOneRoute.d.ts +2 -2
  117. package/dist/logic/weave/enweaveOneRoute.js.map +1 -1
  118. package/dist/logic/weave/enweaveOneStitcher.d.ts +2 -2
  119. package/dist/logic/weave/enweaveOneStitcher.js.map +1 -1
  120. package/license.md +21 -0
  121. package/package.json +38 -38
  122. package/dist/.test/directory.d.ts +0 -2
  123. package/dist/.test/directory.js +0 -6
  124. package/dist/.test/directory.js.map +0 -1
  125. package/dist/.test/example.use.repo/example.echoRegistry.d.ts +0 -2
  126. package/dist/.test/example.use.repo/example.echoRegistry.js +0 -108
  127. package/dist/.test/example.use.repo/example.echoRegistry.js.map +0 -1
  128. package/dist/.test/genContextLogTrail.d.ts +0 -2
  129. package/dist/.test/genContextLogTrail.js +0 -12
  130. package/dist/.test/genContextLogTrail.js.map +0 -1
  131. package/dist/.test/getContextOpenAI.d.ts +0 -2
  132. package/dist/.test/getContextOpenAI.js +0 -18
  133. package/dist/.test/getContextOpenAI.js.map +0 -1
  134. package/dist/.test/stitchers/genStitcherCodeFileRead.d.ts +0 -14
  135. package/dist/.test/stitchers/genStitcherCodeFileRead.js +0 -23
  136. package/dist/.test/stitchers/genStitcherCodeFileRead.js.map +0 -1
  137. package/dist/.test/stitchers/genStitcherCodeFileWrite.d.ts +0 -16
  138. package/dist/.test/stitchers/genStitcherCodeFileWrite.js +0 -29
  139. package/dist/.test/stitchers/genStitcherCodeFileWrite.js.map +0 -1
  140. package/dist/.test/stitchers/genStitcherCodeReviewImagine.d.ts +0 -15
  141. package/dist/.test/stitchers/genStitcherCodeReviewImagine.js +0 -97
  142. package/dist/.test/stitchers/genStitcherCodeReviewImagine.js.map +0 -1
  143. package/dist/.test/stitchers/stitcherCodeDiffImagine.d.ts +0 -13
  144. package/dist/.test/stitchers/stitcherCodeDiffImagine.js +0 -33
  145. package/dist/.test/stitchers/stitcherCodeDiffImagine.js.map +0 -1
  146. package/dist/.test/stitchers/stitcherFanoutRandomSum.d.ts +0 -13
  147. package/dist/.test/stitchers/stitcherFanoutRandomSum.js +0 -45
  148. package/dist/.test/stitchers/stitcherFanoutRandomSum.js.map +0 -1
  149. package/dist/.test/stitchers/stitcherFanoutSubroutes.d.ts +0 -35
  150. package/dist/.test/stitchers/stitcherFanoutSubroutes.js +0 -76
  151. package/dist/.test/stitchers/stitcherFanoutSubroutes.js.map +0 -1
  152. package/dist/.test/threads/codeArtist.d.ts +0 -6
  153. package/dist/.test/threads/codeArtist.js +0 -26
  154. package/dist/.test/threads/codeArtist.js.map +0 -1
  155. package/dist/.test/threads/codeCritic.d.ts +0 -6
  156. package/dist/.test/threads/codeCritic.js +0 -21
  157. package/dist/.test/threads/codeCritic.js.map +0 -1
  158. package/dist/.test/threads/director.d.ts +0 -6
  159. package/dist/.test/threads/director.js +0 -14
  160. package/dist/.test/threads/director.js.map +0 -1
  161. package/dist/contract/cli/invoke.integration.test.d.ts +0 -1
  162. package/dist/contract/cli/invoke.integration.test.js +0 -39
  163. package/dist/contract/cli/invoke.integration.test.js.map +0 -1
  164. package/dist/contract/cli/invokeAsk.integration.test.d.ts +0 -1
  165. package/dist/contract/cli/invokeAsk.integration.test.js +0 -69
  166. package/dist/contract/cli/invokeAsk.integration.test.js.map +0 -1
  167. package/dist/contract/cli/invokeBriefsBoot.integration.test.d.ts +0 -1
  168. package/dist/contract/cli/invokeBriefsBoot.integration.test.js +0 -159
  169. package/dist/contract/cli/invokeBriefsBoot.integration.test.js.map +0 -1
  170. package/dist/contract/cli/invokeBriefsLink.integration.test.d.ts +0 -1
  171. package/dist/contract/cli/invokeBriefsLink.integration.test.js +0 -100
  172. package/dist/contract/cli/invokeBriefsLink.integration.test.js.map +0 -1
  173. package/dist/contract/cli/invokeChoose.integration.test.d.ts +0 -1
  174. package/dist/contract/cli/invokeChoose.integration.test.js +0 -111
  175. package/dist/contract/cli/invokeChoose.integration.test.js.map +0 -1
  176. package/dist/contract/cli/invokeInit.integration.test.d.ts +0 -1
  177. package/dist/contract/cli/invokeInit.integration.test.js +0 -123
  178. package/dist/contract/cli/invokeInit.integration.test.js.map +0 -1
  179. package/dist/contract/cli/invokeReadme.integration.test.d.ts +0 -1
  180. package/dist/contract/cli/invokeReadme.integration.test.js +0 -62
  181. package/dist/contract/cli/invokeReadme.integration.test.js.map +0 -1
  182. package/dist/contract/cli/invokeRolesBoot.integration.test.d.ts +0 -1
  183. package/dist/contract/cli/invokeRolesBoot.integration.test.js +0 -152
  184. package/dist/contract/cli/invokeRolesBoot.integration.test.js.map +0 -1
  185. package/dist/contract/cli/invokeRolesLink.integration.test.d.ts +0 -1
  186. package/dist/contract/cli/invokeRolesLink.integration.test.js +0 -117
  187. package/dist/contract/cli/invokeRolesLink.integration.test.js.map +0 -1
  188. package/dist/domain/objects/InvokeOpts.test.d.ts +0 -1
  189. package/dist/domain/objects/InvokeOpts.test.js +0 -41
  190. package/dist/domain/objects/InvokeOpts.test.js.map +0 -1
  191. package/dist/domain/objects/Stitcher.test.d.ts +0 -1
  192. package/dist/domain/objects/Stitcher.test.js +0 -78
  193. package/dist/domain/objects/Stitcher.test.js.map +0 -1
  194. package/dist/domain/objects/Template.test.d.ts +0 -1
  195. package/dist/domain/objects/Template.test.js +0 -48
  196. package/dist/domain/objects/Template.test.js.map +0 -1
  197. package/dist/logic/init/generateRhachetConfig.test.d.ts +0 -1
  198. package/dist/logic/init/generateRhachetConfig.test.js +0 -35
  199. package/dist/logic/init/generateRhachetConfig.test.js.map +0 -1
  200. package/dist/logic/invoke/addAttemptQualifierToOutputPath.test.d.ts +0 -1
  201. package/dist/logic/invoke/addAttemptQualifierToOutputPath.test.js +0 -130
  202. package/dist/logic/invoke/addAttemptQualifierToOutputPath.test.js.map +0 -1
  203. package/dist/logic/invoke/getPeerQualifiersOfOutputChoice.test.d.ts +0 -1
  204. package/dist/logic/invoke/getPeerQualifiersOfOutputChoice.test.js +0 -77
  205. package/dist/logic/invoke/getPeerQualifiersOfOutputChoice.test.js.map +0 -1
  206. package/dist/logic/invoke/getSkillContext.test.d.ts +0 -1
  207. package/dist/logic/invoke/getSkillContext.test.js +0 -85
  208. package/dist/logic/invoke/getSkillContext.test.js.map +0 -1
  209. package/dist/logic/invoke/getSkillThread.test.d.ts +0 -1
  210. package/dist/logic/invoke/getSkillThread.test.js +0 -115
  211. package/dist/logic/invoke/getSkillThread.test.js.map +0 -1
  212. package/dist/logic/invoke/performInIsolatedThread.invoke.integration.test.d.ts +0 -1
  213. package/dist/logic/invoke/performInIsolatedThread.invoke.integration.test.js +0 -74
  214. package/dist/logic/invoke/performInIsolatedThread.invoke.integration.test.js.map +0 -1
  215. package/dist/logic/invoke/performInIsolatedThreads.integration.test.d.ts +0 -1
  216. package/dist/logic/invoke/performInIsolatedThreads.integration.test.js +0 -75
  217. package/dist/logic/invoke/performInIsolatedThreads.integration.test.js.map +0 -1
  218. package/dist/logic/role/addRoleTraits.test.d.ts +0 -1
  219. package/dist/logic/role/addRoleTraits.test.js +0 -93
  220. package/dist/logic/role/addRoleTraits.test.js.map +0 -1
  221. package/dist/logic/role/enrollThread.integration.test.d.ts +0 -1
  222. package/dist/logic/role/enrollThread.integration.test.js +0 -79
  223. package/dist/logic/role/enrollThread.integration.test.js.map +0 -1
  224. package/dist/logic/role/genRoleSkill.test.d.ts +0 -1
  225. package/dist/logic/role/genRoleSkill.test.js +0 -79
  226. package/dist/logic/role/genRoleSkill.test.js.map +0 -1
  227. package/dist/logic/stitch/enstitch.test.d.ts +0 -1
  228. package/dist/logic/stitch/enstitch.test.js +0 -112
  229. package/dist/logic/stitch/enstitch.test.js.map +0 -1
  230. package/dist/logic/stitch/invokeImagineStitcher.integration.test.d.ts +0 -1
  231. package/dist/logic/stitch/invokeImagineStitcher.integration.test.js +0 -195
  232. package/dist/logic/stitch/invokeImagineStitcher.integration.test.js.map +0 -1
  233. package/dist/logic/template/genStepImagineViaTemplate.test.d.ts +0 -1
  234. package/dist/logic/template/genStepImagineViaTemplate.test.js +0 -126
  235. package/dist/logic/template/genStepImagineViaTemplate.test.js.map +0 -1
  236. package/dist/logic/template/genTemplate.test.d.ts +0 -1
  237. package/dist/logic/template/genTemplate.test.js +0 -118
  238. package/dist/logic/template/genTemplate.test.js.map +0 -1
  239. package/dist/logic/template/useTemplate.integration.test.d.ts +0 -1
  240. package/dist/logic/template/useTemplate.integration.test.js +0 -28
  241. package/dist/logic/template/useTemplate.integration.test.js.map +0 -1
  242. package/dist/logic/thread/getStitch.test.d.ts +0 -1
  243. package/dist/logic/thread/getStitch.test.js +0 -73
  244. package/dist/logic/thread/getStitch.test.js.map +0 -1
  245. package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.test.d.ts +0 -1
  246. package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.test.js +0 -67
  247. package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.test.js.map +0 -1
  248. package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.test.d.ts +0 -1
  249. package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.test.js +0 -132
  250. package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.test.js.map +0 -1
  251. package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.test.d.ts +0 -1
  252. package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.test.js +0 -74
  253. package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.test.js.map +0 -1
  254. package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.test.d.ts +0 -1
  255. package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.test.js +0 -190
  256. package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.test.js.map +0 -1
  257. package/dist/logic/weave/compose/ProcedureContextMerged.generic.test.d.ts +0 -1
  258. package/dist/logic/weave/compose/ProcedureContextMerged.generic.test.js +0 -29
  259. package/dist/logic/weave/compose/ProcedureContextMerged.generic.test.js.map +0 -1
  260. package/dist/logic/weave/compose/ThreadsMerged.generic.test.d.ts +0 -1
  261. package/dist/logic/weave/compose/ThreadsMerged.generic.test.js +0 -420
  262. package/dist/logic/weave/compose/ThreadsMerged.generic.test.js.map +0 -1
  263. package/dist/logic/weave/compose/asStitcher.test.d.ts +0 -1
  264. package/dist/logic/weave/compose/asStitcher.test.js +0 -95
  265. package/dist/logic/weave/compose/asStitcher.test.js.map +0 -1
  266. package/dist/logic/weave/compose/asStitcherFlat.test.d.ts +0 -1
  267. package/dist/logic/weave/compose/asStitcherFlat.test.js +0 -96
  268. package/dist/logic/weave/compose/asStitcherFlat.test.js.map +0 -1
  269. package/dist/logic/weave/compose/genStitchChoice.test.d.ts +0 -1
  270. package/dist/logic/weave/compose/genStitchChoice.test.js +0 -200
  271. package/dist/logic/weave/compose/genStitchChoice.test.js.map +0 -1
  272. package/dist/logic/weave/compose/genStitchCycle.test.d.ts +0 -1
  273. package/dist/logic/weave/compose/genStitchCycle.test.js +0 -267
  274. package/dist/logic/weave/compose/genStitchCycle.test.js.map +0 -1
  275. package/dist/logic/weave/compose/genStitchFanout.test.d.ts +0 -1
  276. package/dist/logic/weave/compose/genStitchFanout.test.js +0 -79
  277. package/dist/logic/weave/compose/genStitchFanout.test.js.map +0 -1
  278. package/dist/logic/weave/compose/genStitchRoute.test.d.ts +0 -1
  279. package/dist/logic/weave/compose/genStitchRoute.test.js +0 -120
  280. package/dist/logic/weave/compose/genStitchRoute.test.js.map +0 -1
  281. package/dist/logic/weave/enweaveOneChoice.test.d.ts +0 -1
  282. package/dist/logic/weave/enweaveOneChoice.test.js +0 -181
  283. package/dist/logic/weave/enweaveOneChoice.test.js.map +0 -1
  284. package/dist/logic/weave/enweaveOneCycle.test.d.ts +0 -1
  285. package/dist/logic/weave/enweaveOneCycle.test.js +0 -180
  286. package/dist/logic/weave/enweaveOneCycle.test.js.map +0 -1
  287. package/dist/logic/weave/enweaveOneFanout.integration.test.d.ts +0 -1
  288. package/dist/logic/weave/enweaveOneFanout.integration.test.js +0 -166
  289. package/dist/logic/weave/enweaveOneFanout.integration.test.js.map +0 -1
  290. package/dist/logic/weave/enweaveOneRoute.integration.test.d.ts +0 -1
  291. package/dist/logic/weave/enweaveOneRoute.integration.test.js +0 -159
  292. package/dist/logic/weave/enweaveOneRoute.integration.test.js.map +0 -1
  293. package/dist/logic/weave/enweaveOneStitcher.integration.test.d.ts +0 -2
  294. package/dist/logic/weave/enweaveOneStitcher.integration.test.js +0 -258
  295. 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,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