rhachet 1.11.0 → 1.12.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/dist/contract/cli/invoke.js +10 -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 +9 -47
  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 +9 -0
  13. package/dist/contract/cli/invokeInit.js +57 -0
  14. package/dist/contract/cli/invokeInit.js.map +1 -0
  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 +17 -96
  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/init/discoverRolePackages.d.ts +8 -0
  62. package/dist/logic/init/discoverRolePackages.js +20 -0
  63. package/dist/logic/init/discoverRolePackages.js.map +1 -0
  64. package/dist/logic/init/generateRhachetConfig.d.ts +8 -0
  65. package/dist/logic/init/generateRhachetConfig.js +40 -0
  66. package/dist/logic/init/generateRhachetConfig.js.map +1 -0
  67. package/dist/logic/invoke/assureFindRole.d.ts +2 -2
  68. package/dist/logic/invoke/assureUniqueRoles.d.ts +1 -1
  69. package/dist/logic/invoke/getAgentReadmeTemplates.js +1 -1
  70. package/dist/logic/invoke/getInvokeHooksByOpts.d.ts +4 -3
  71. package/dist/logic/invoke/getInvokeHooksByOpts.js +11 -3
  72. package/dist/logic/invoke/getInvokeHooksByOpts.js.map +1 -1
  73. package/dist/logic/invoke/getRegistriesByOpts.d.ts +2 -2
  74. package/dist/logic/invoke/getSkillContext.d.ts +3 -3
  75. package/dist/logic/invoke/getSkillThreads.d.ts +4 -4
  76. package/dist/logic/invoke/hooks/onInvokeAskInput.d.ts +2 -2
  77. package/dist/logic/invoke/link/findsertFile.d.ts +9 -0
  78. package/dist/logic/invoke/link/findsertFile.js +29 -0
  79. package/dist/logic/invoke/link/findsertFile.js.map +1 -0
  80. package/dist/logic/invoke/link/symlinkResourceDirectories.d.ts +12 -0
  81. package/dist/logic/invoke/link/symlinkResourceDirectories.js +81 -0
  82. package/dist/logic/invoke/link/symlinkResourceDirectories.js.map +1 -0
  83. package/dist/logic/invoke/performInCurrentThread.d.ts +2 -2
  84. package/dist/logic/invoke/performInIsolatedThread.execute.d.ts +1 -1
  85. package/dist/logic/invoke/performInIsolatedThread.invoke.d.ts +2 -2
  86. package/dist/logic/invoke/performInIsolatedThread.invoke.js +3 -3
  87. package/dist/logic/invoke/performInIsolatedThread.invoke.js.map +1 -1
  88. package/dist/logic/invoke/performInIsolatedThreads.d.ts +1 -1
  89. package/dist/logic/role/addRoleTraits.d.ts +5 -5
  90. package/dist/logic/role/enrollThread.d.ts +4 -4
  91. package/dist/logic/role/genRoleSkill.d.ts +1 -1
  92. package/dist/logic/stitch/adapters/imagineViaOpenAI.d.ts +1 -1
  93. package/dist/logic/stitch/enstitch.d.ts +3 -3
  94. package/dist/logic/stitch/enstitch.js +1 -1
  95. package/dist/logic/stitch/enstitch.js.map +1 -1
  96. package/dist/logic/stitch/invokeImagineStitcher.d.ts +3 -3
  97. package/dist/logic/stitch/withStitchTrail.d.ts +4 -4
  98. package/dist/logic/stitch/withStitchTrail.js +1 -1
  99. package/dist/logic/stitch/withStitchTrail.js.map +1 -1
  100. package/dist/logic/template/genStepImagineViaTemplate.d.ts +2 -2
  101. package/dist/logic/template/genStepImagineViaTemplate.js.map +1 -1
  102. package/dist/logic/template/genTemplate.d.ts +3 -3
  103. package/dist/logic/template/getTemplatePathByCallerPath.d.ts +1 -1
  104. package/dist/logic/template/getTemplatePathByCallerPath.js +2 -2
  105. package/dist/logic/template/getTemplatePathByCallerPath.js.map +1 -1
  106. package/dist/logic/template/getTemplateValFromArtifacts.d.ts +2 -2
  107. package/dist/logic/template/getTemplateValFromArtifacts.js.map +1 -1
  108. package/dist/logic/template/getTemplateVarsFromInheritance.d.ts +1 -1
  109. package/dist/logic/template/useTemplate.d.ts +2 -2
  110. package/dist/logic/thread/getStitch.d.ts +1 -1
  111. package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.d.ts +3 -3
  112. package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.d.ts +4 -4
  113. package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.d.ts +6 -6
  114. package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.d.ts +4 -4
  115. package/dist/logic/weave/compose/ProcedureContextMerged.generic.d.ts +1 -1
  116. package/dist/logic/weave/compose/ThreadsMerged.generic.d.ts +4 -4
  117. package/dist/logic/weave/compose/asStitcher.d.ts +3 -3
  118. package/dist/logic/weave/compose/asStitcherFlat.d.ts +2 -2
  119. package/dist/logic/weave/compose/genStitchChoice.d.ts +3 -3
  120. package/dist/logic/weave/compose/genStitchCycle.d.ts +5 -5
  121. package/dist/logic/weave/compose/genStitchFanout.d.ts +5 -5
  122. package/dist/logic/weave/compose/genStitchFanout.js.map +1 -1
  123. package/dist/logic/weave/compose/genStitchRoute.d.ts +3 -3
  124. package/dist/logic/weave/compose/genStitchRoute.js.map +1 -1
  125. package/dist/logic/weave/enweaveOneChoice.d.ts +2 -2
  126. package/dist/logic/weave/enweaveOneChoice.js.map +1 -1
  127. package/dist/logic/weave/enweaveOneCycle.d.ts +2 -2
  128. package/dist/logic/weave/enweaveOneCycle.js.map +1 -1
  129. package/dist/logic/weave/enweaveOneFanout.d.ts +2 -2
  130. package/dist/logic/weave/enweaveOneFanout.js.map +1 -1
  131. package/dist/logic/weave/enweaveOneRoute.d.ts +2 -2
  132. package/dist/logic/weave/enweaveOneRoute.js.map +1 -1
  133. package/dist/logic/weave/enweaveOneStitcher.d.ts +2 -2
  134. package/dist/logic/weave/enweaveOneStitcher.js.map +1 -1
  135. package/license.md +21 -0
  136. package/package.json +36 -36
  137. package/dist/.test/directory.d.ts +0 -2
  138. package/dist/.test/directory.js +0 -6
  139. package/dist/.test/directory.js.map +0 -1
  140. package/dist/.test/example.use.repo/example.echoRegistry.d.ts +0 -2
  141. package/dist/.test/example.use.repo/example.echoRegistry.js +0 -108
  142. package/dist/.test/example.use.repo/example.echoRegistry.js.map +0 -1
  143. package/dist/.test/genContextLogTrail.d.ts +0 -2
  144. package/dist/.test/genContextLogTrail.js +0 -12
  145. package/dist/.test/genContextLogTrail.js.map +0 -1
  146. package/dist/.test/getContextOpenAI.d.ts +0 -2
  147. package/dist/.test/getContextOpenAI.js +0 -18
  148. package/dist/.test/getContextOpenAI.js.map +0 -1
  149. package/dist/.test/stitchers/genStitcherCodeFileRead.d.ts +0 -14
  150. package/dist/.test/stitchers/genStitcherCodeFileRead.js +0 -23
  151. package/dist/.test/stitchers/genStitcherCodeFileRead.js.map +0 -1
  152. package/dist/.test/stitchers/genStitcherCodeFileWrite.d.ts +0 -16
  153. package/dist/.test/stitchers/genStitcherCodeFileWrite.js +0 -29
  154. package/dist/.test/stitchers/genStitcherCodeFileWrite.js.map +0 -1
  155. package/dist/.test/stitchers/genStitcherCodeReviewImagine.d.ts +0 -15
  156. package/dist/.test/stitchers/genStitcherCodeReviewImagine.js +0 -97
  157. package/dist/.test/stitchers/genStitcherCodeReviewImagine.js.map +0 -1
  158. package/dist/.test/stitchers/stitcherCodeDiffImagine.d.ts +0 -13
  159. package/dist/.test/stitchers/stitcherCodeDiffImagine.js +0 -33
  160. package/dist/.test/stitchers/stitcherCodeDiffImagine.js.map +0 -1
  161. package/dist/.test/stitchers/stitcherFanoutRandomSum.d.ts +0 -13
  162. package/dist/.test/stitchers/stitcherFanoutRandomSum.js +0 -45
  163. package/dist/.test/stitchers/stitcherFanoutRandomSum.js.map +0 -1
  164. package/dist/.test/stitchers/stitcherFanoutSubroutes.d.ts +0 -35
  165. package/dist/.test/stitchers/stitcherFanoutSubroutes.js +0 -76
  166. package/dist/.test/stitchers/stitcherFanoutSubroutes.js.map +0 -1
  167. package/dist/.test/threads/codeArtist.d.ts +0 -6
  168. package/dist/.test/threads/codeArtist.js +0 -26
  169. package/dist/.test/threads/codeArtist.js.map +0 -1
  170. package/dist/.test/threads/codeCritic.d.ts +0 -6
  171. package/dist/.test/threads/codeCritic.js +0 -21
  172. package/dist/.test/threads/codeCritic.js.map +0 -1
  173. package/dist/.test/threads/director.d.ts +0 -6
  174. package/dist/.test/threads/director.js +0 -14
  175. package/dist/.test/threads/director.js.map +0 -1
  176. package/dist/contract/cli/invoke.integration.test.d.ts +0 -1
  177. package/dist/contract/cli/invoke.integration.test.js +0 -39
  178. package/dist/contract/cli/invoke.integration.test.js.map +0 -1
  179. package/dist/contract/cli/invokeAsk.integration.test.d.ts +0 -1
  180. package/dist/contract/cli/invokeAsk.integration.test.js +0 -69
  181. package/dist/contract/cli/invokeAsk.integration.test.js.map +0 -1
  182. package/dist/contract/cli/invokeBriefsBoot.integration.test.d.ts +0 -1
  183. package/dist/contract/cli/invokeBriefsBoot.integration.test.js +0 -159
  184. package/dist/contract/cli/invokeBriefsBoot.integration.test.js.map +0 -1
  185. package/dist/contract/cli/invokeBriefsLink.integration.test.d.ts +0 -1
  186. package/dist/contract/cli/invokeBriefsLink.integration.test.js +0 -97
  187. package/dist/contract/cli/invokeBriefsLink.integration.test.js.map +0 -1
  188. package/dist/contract/cli/invokeChoose.integration.test.d.ts +0 -1
  189. package/dist/contract/cli/invokeChoose.integration.test.js +0 -111
  190. package/dist/contract/cli/invokeChoose.integration.test.js.map +0 -1
  191. package/dist/contract/cli/invokeReadme.integration.test.d.ts +0 -1
  192. package/dist/contract/cli/invokeReadme.integration.test.js +0 -62
  193. package/dist/contract/cli/invokeReadme.integration.test.js.map +0 -1
  194. package/dist/domain/objects/InvokeOpts.test.d.ts +0 -1
  195. package/dist/domain/objects/InvokeOpts.test.js +0 -41
  196. package/dist/domain/objects/InvokeOpts.test.js.map +0 -1
  197. package/dist/domain/objects/Stitcher.test.d.ts +0 -1
  198. package/dist/domain/objects/Stitcher.test.js +0 -78
  199. package/dist/domain/objects/Stitcher.test.js.map +0 -1
  200. package/dist/domain/objects/Template.test.d.ts +0 -1
  201. package/dist/domain/objects/Template.test.js +0 -48
  202. package/dist/domain/objects/Template.test.js.map +0 -1
  203. package/dist/logic/invoke/addAttemptQualifierToOutputPath.test.d.ts +0 -1
  204. package/dist/logic/invoke/addAttemptQualifierToOutputPath.test.js +0 -130
  205. package/dist/logic/invoke/addAttemptQualifierToOutputPath.test.js.map +0 -1
  206. package/dist/logic/invoke/getPeerQualifiersOfOutputChoice.test.d.ts +0 -1
  207. package/dist/logic/invoke/getPeerQualifiersOfOutputChoice.test.js +0 -77
  208. package/dist/logic/invoke/getPeerQualifiersOfOutputChoice.test.js.map +0 -1
  209. package/dist/logic/invoke/getSkillContext.test.d.ts +0 -1
  210. package/dist/logic/invoke/getSkillContext.test.js +0 -85
  211. package/dist/logic/invoke/getSkillContext.test.js.map +0 -1
  212. package/dist/logic/invoke/getSkillThread.test.d.ts +0 -1
  213. package/dist/logic/invoke/getSkillThread.test.js +0 -115
  214. package/dist/logic/invoke/getSkillThread.test.js.map +0 -1
  215. package/dist/logic/invoke/performInIsolatedThread.invoke.integration.test.d.ts +0 -1
  216. package/dist/logic/invoke/performInIsolatedThread.invoke.integration.test.js +0 -74
  217. package/dist/logic/invoke/performInIsolatedThread.invoke.integration.test.js.map +0 -1
  218. package/dist/logic/invoke/performInIsolatedThreads.integration.test.d.ts +0 -1
  219. package/dist/logic/invoke/performInIsolatedThreads.integration.test.js +0 -75
  220. package/dist/logic/invoke/performInIsolatedThreads.integration.test.js.map +0 -1
  221. package/dist/logic/role/addRoleTraits.test.d.ts +0 -1
  222. package/dist/logic/role/addRoleTraits.test.js +0 -93
  223. package/dist/logic/role/addRoleTraits.test.js.map +0 -1
  224. package/dist/logic/role/enrollThread.integration.test.d.ts +0 -1
  225. package/dist/logic/role/enrollThread.integration.test.js +0 -79
  226. package/dist/logic/role/enrollThread.integration.test.js.map +0 -1
  227. package/dist/logic/role/genRoleSkill.test.d.ts +0 -1
  228. package/dist/logic/role/genRoleSkill.test.js +0 -79
  229. package/dist/logic/role/genRoleSkill.test.js.map +0 -1
  230. package/dist/logic/stitch/enstitch.test.d.ts +0 -1
  231. package/dist/logic/stitch/enstitch.test.js +0 -112
  232. package/dist/logic/stitch/enstitch.test.js.map +0 -1
  233. package/dist/logic/stitch/invokeImagineStitcher.integration.test.d.ts +0 -1
  234. package/dist/logic/stitch/invokeImagineStitcher.integration.test.js +0 -195
  235. package/dist/logic/stitch/invokeImagineStitcher.integration.test.js.map +0 -1
  236. package/dist/logic/template/genStepImagineViaTemplate.test.d.ts +0 -1
  237. package/dist/logic/template/genStepImagineViaTemplate.test.js +0 -126
  238. package/dist/logic/template/genStepImagineViaTemplate.test.js.map +0 -1
  239. package/dist/logic/template/genTemplate.test.d.ts +0 -1
  240. package/dist/logic/template/genTemplate.test.js +0 -118
  241. package/dist/logic/template/genTemplate.test.js.map +0 -1
  242. package/dist/logic/template/useTemplate.integration.test.d.ts +0 -1
  243. package/dist/logic/template/useTemplate.integration.test.js +0 -28
  244. package/dist/logic/template/useTemplate.integration.test.js.map +0 -1
  245. package/dist/logic/thread/getStitch.test.d.ts +0 -1
  246. package/dist/logic/thread/getStitch.test.js +0 -73
  247. package/dist/logic/thread/getStitch.test.js.map +0 -1
  248. package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.test.d.ts +0 -1
  249. package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.test.js +0 -67
  250. package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.test.js.map +0 -1
  251. package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.test.d.ts +0 -1
  252. package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.test.js +0 -132
  253. package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.test.js.map +0 -1
  254. package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.test.d.ts +0 -1
  255. package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.test.js +0 -74
  256. package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.test.js.map +0 -1
  257. package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.test.d.ts +0 -1
  258. package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.test.js +0 -190
  259. package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.test.js.map +0 -1
  260. package/dist/logic/weave/compose/ProcedureContextMerged.generic.test.d.ts +0 -1
  261. package/dist/logic/weave/compose/ProcedureContextMerged.generic.test.js +0 -29
  262. package/dist/logic/weave/compose/ProcedureContextMerged.generic.test.js.map +0 -1
  263. package/dist/logic/weave/compose/ThreadsMerged.generic.test.d.ts +0 -1
  264. package/dist/logic/weave/compose/ThreadsMerged.generic.test.js +0 -420
  265. package/dist/logic/weave/compose/ThreadsMerged.generic.test.js.map +0 -1
  266. package/dist/logic/weave/compose/asStitcher.test.d.ts +0 -1
  267. package/dist/logic/weave/compose/asStitcher.test.js +0 -95
  268. package/dist/logic/weave/compose/asStitcher.test.js.map +0 -1
  269. package/dist/logic/weave/compose/asStitcherFlat.test.d.ts +0 -1
  270. package/dist/logic/weave/compose/asStitcherFlat.test.js +0 -96
  271. package/dist/logic/weave/compose/asStitcherFlat.test.js.map +0 -1
  272. package/dist/logic/weave/compose/genStitchChoice.test.d.ts +0 -1
  273. package/dist/logic/weave/compose/genStitchChoice.test.js +0 -200
  274. package/dist/logic/weave/compose/genStitchChoice.test.js.map +0 -1
  275. package/dist/logic/weave/compose/genStitchCycle.test.d.ts +0 -1
  276. package/dist/logic/weave/compose/genStitchCycle.test.js +0 -267
  277. package/dist/logic/weave/compose/genStitchCycle.test.js.map +0 -1
  278. package/dist/logic/weave/compose/genStitchFanout.test.d.ts +0 -1
  279. package/dist/logic/weave/compose/genStitchFanout.test.js +0 -79
  280. package/dist/logic/weave/compose/genStitchFanout.test.js.map +0 -1
  281. package/dist/logic/weave/compose/genStitchRoute.test.d.ts +0 -1
  282. package/dist/logic/weave/compose/genStitchRoute.test.js +0 -120
  283. package/dist/logic/weave/compose/genStitchRoute.test.js.map +0 -1
  284. package/dist/logic/weave/enweaveOneChoice.test.d.ts +0 -1
  285. package/dist/logic/weave/enweaveOneChoice.test.js +0 -181
  286. package/dist/logic/weave/enweaveOneChoice.test.js.map +0 -1
  287. package/dist/logic/weave/enweaveOneCycle.test.d.ts +0 -1
  288. package/dist/logic/weave/enweaveOneCycle.test.js +0 -180
  289. package/dist/logic/weave/enweaveOneCycle.test.js.map +0 -1
  290. package/dist/logic/weave/enweaveOneFanout.integration.test.d.ts +0 -1
  291. package/dist/logic/weave/enweaveOneFanout.integration.test.js +0 -166
  292. package/dist/logic/weave/enweaveOneFanout.integration.test.js.map +0 -1
  293. package/dist/logic/weave/enweaveOneRoute.integration.test.d.ts +0 -1
  294. package/dist/logic/weave/enweaveOneRoute.integration.test.js +0 -159
  295. package/dist/logic/weave/enweaveOneRoute.integration.test.js.map +0 -1
  296. package/dist/logic/weave/enweaveOneStitcher.integration.test.d.ts +0 -2
  297. package/dist/logic/weave/enweaveOneStitcher.integration.test.js +0 -258
  298. 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,97 +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', 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 symlinks were created
65
- expect((0, node_fs_1.existsSync)((0, node_path_1.resolve)(testDir, '.agent/repo=test/role=mechanic/briefs/brief1.md'))).toBe(true);
66
- expect((0, node_fs_1.existsSync)((0, node_path_1.resolve)(testDir, '.agent/repo=test/role=mechanic/briefs/brief2.md'))).toBe(true);
67
- // Check log output
68
- expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Linking briefs for role "mechanic"'));
69
- });
70
- });
71
- (0, test_fns_1.when)('invoked with "link" without --repo', () => {
72
- (0, test_fns_1.then)('it should throw an error requiring --repo', async () => {
73
- const error = await (0, test_fns_1.getError)(() => briefsCommand.parseAsync(['link', '--role', 'mechanic'], {
74
- from: 'user',
75
- }));
76
- expect(error?.message).toContain('--repo is required');
77
- });
78
- });
79
- (0, test_fns_1.when)('invoked with "link" without --role', () => {
80
- (0, test_fns_1.then)('it should throw an error requiring --role', async () => {
81
- const error = await (0, test_fns_1.getError)(() => briefsCommand.parseAsync(['link', '--repo', 'test'], {
82
- from: 'user',
83
- }));
84
- expect(error?.message).toContain('--role is required');
85
- });
86
- });
87
- (0, test_fns_1.when)('invoked with "link --repo test --role nonexistent"', () => {
88
- (0, test_fns_1.then)('it should throw an error about role not found', async () => {
89
- const error = await (0, test_fns_1.getError)(() => briefsCommand.parseAsync(['link', '--repo', 'test', '--role', 'nonexistent'], {
90
- from: 'user',
91
- }));
92
- expect(error?.message).toContain('no role named "nonexistent"');
93
- });
94
- });
95
- });
96
- });
97
- //# 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,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
@@ -1 +0,0 @@
1
- {"version":3,"file":"invokeReadme.integration.test.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeReadme.integration.test.ts"],"names":[],"mappings":";;AAAA,yCAAoC;AACpC,uCAAuD;AAEvD,4FAAqF;AACrF,iDAA8C;AAE9C,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,IAAA,gBAAK,EACH,mEAAmE,EACnE,GAAG,EAAE;QACH,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACvE,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QACrC,IAAA,2BAAY,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,uCAAgB,CAAC,EAAE,CAAC,CAAC;QAE1D,IAAA,eAAI,EAAC,8BAA8B,EAAE,GAAG,EAAE;YACxC,IAAA,eAAI,EAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;gBACrD,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE;oBACzD,IAAI,EAAE,MAAM;iBACb,CAAC,CAAC;gBAEH,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;gBACtD,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CACjC,MAAM,CAAC,gBAAgB,CAAC,uCAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,CACjE,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,eAAI,EAAC,0BAA0B,EAAE,GAAG,EAAE;YACpC,IAAA,eAAI,EAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;gBACjD,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;oBACvD,IAAI,EAAE,MAAM;iBACb,CAAC,CAAC;gBAEH,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;gBACxD,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CACjC,MAAM,CAAC,gBAAgB,CACrB,uCAAgB,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAClD,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,eAAI,EAAC,iCAAiC,EAAE,GAAG,EAAE;YAC3C,IAAA,eAAI,EAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;gBAClD,MAAM,OAAO,CAAC,UAAU,CACtB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,EACjD,EAAE,IAAI,EAAE,MAAM,EAAE,CACjB,CAAC;gBAEF,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;gBAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CACjC,MAAM,CAAC,gBAAgB,CACrB,uCAAgB,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAClE,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,eAAI,EAAC,8BAA8B,EAAE,GAAG,EAAE;YACxC,IAAA,eAAI,EAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;gBACtD,MAAM,KAAK,GAAG,MAAM,IAAA,mBAAQ,EAAC,GAAG,EAAE,CAChC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;oBAClD,IAAI,EAAE,MAAM;iBACb,CAAC,CACH,CAAC;gBAEF,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,CAC9B,+CAA+C,CAChD,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,eAAI,EAAC,+BAA+B,EAAE,GAAG,EAAE;YACzC,IAAA,eAAI,EAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;gBACvD,MAAM,KAAK,GAAG,MAAM,IAAA,mBAAQ,EAAC,GAAG,EAAE,CAChC,OAAO,CAAC,UAAU,CAChB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,EACpD,EAAE,IAAI,EAAE,MAAM,EAAE,CACjB,CACF,CAAC;gBAEF,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,CAC9B,qCAAqC,CACtC,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,eAAI,EAAC,kCAAkC,EAAE,GAAG,EAAE;YAC5C,IAAA,eAAI,EAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;gBAC1D,MAAM,KAAK,GAAG,MAAM,IAAA,mBAAQ,EAAC,GAAG,EAAE,CAChC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE;oBACtD,IAAI,EAAE,MAAM;iBACb,CAAC,CACH,CAAC;gBAEF,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- describe('InvokeOpts', () => {
4
- it('should allow guaranteed presence of TMinimum string values', () => {
5
- // ✅ allowed: exact minimum present with correct string type
6
- const opts1 = { skill: 'writer' };
7
- const use1 = opts1.skill;
8
- const use1alt = opts1.role;
9
- expect(use1).toBe('writer');
10
- // ❌ not allowed: must have the keys required in TMinimum at a minimum
11
- // @ts-expect-error -- 'skill' must be declared
12
- const opts2 = { other: 'x', another: undefined };
13
- // ❌ not allowed: wrong type for required minimum key
14
- // @ts-expect-error -- 'skill' must be a string per TMinimum
15
- const opts3 = { skill: 123 };
16
- // ❌ not allowed: non-string extras in the record branch
17
- // @ts-expect-error -- extra props in the record branch must be string | undefined
18
- const opts4 = { other: 42 };
19
- });
20
- it('should allow guaranteed presence of TMinimum numeric values', () => {
21
- // ✅ allowed: exact minimum present with correct numeric type
22
- const opts1 = { attempts: 2 };
23
- const use1 = opts1.attempts;
24
- expect(use1).toBe(2);
25
- // ❌ not allowed: must include the keys required in TMinimum at a minimum
26
- // @ts-expect-error -- missing required key 'attempts'
27
- const opts2 = { something: 'else' };
28
- // ✅ allowed: minimum present + extra string props
29
- const opts3 = { attempts: 3, something: 'x' };
30
- const use2 = opts3.attempts;
31
- const use2alt = opts3.something;
32
- expect(use2).toBe(3);
33
- // ❌ not allowed: wrong type for required minimum key
34
- // @ts-expect-error -- 'attempts' must be a number per TMinimum
35
- const opts4 = { attempts: '2' };
36
- // ❌ not allowed: non-string extras in the record branch
37
- // @ts-expect-error -- extra props in the record branch must be string | undefined
38
- const opts5 = { other: 42 };
39
- });
40
- });
41
- //# sourceMappingURL=InvokeOpts.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InvokeOpts.test.js","sourceRoot":"","sources":["../../../src/domain/objects/InvokeOpts.test.ts"],"names":[],"mappings":";;AAGA,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QAGpE,4DAA4D;QAC5D,MAAM,KAAK,GAAyB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACxD,MAAM,IAAI,GAAW,KAAK,CAAC,KAAK,CAAC;QACjC,MAAM,OAAO,GAAgC,KAAK,CAAC,IAAI,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE5B,sEAAsE;QACtE,+CAA+C;QAC/C,MAAM,KAAK,GAAyB,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAEvE,qDAAqD;QACrD,4DAA4D;QAC5D,MAAM,KAAK,GAAyB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QAEnD,wDAAwD;QACxD,kFAAkF;QAClF,MAAM,KAAK,GAAyB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QAGrE,6DAA6D;QAC7D,MAAM,KAAK,GAAyB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,GAAW,KAAK,CAAC,QAAQ,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAErB,yEAAyE;QACzE,sDAAsD;QACtD,MAAM,KAAK,GAAyB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAE1D,kDAAkD;QAClD,MAAM,KAAK,GAAyB,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;QACpE,MAAM,IAAI,GAAW,KAAK,CAAC,QAAQ,CAAC;QACpC,MAAM,OAAO,GAAgC,KAAK,CAAC,SAAS,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAErB,qDAAqD;QACrD,+DAA+D;QAC/D,MAAM,KAAK,GAAyB,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAEtD,wDAAwD;QACxD,kFAAkF;QAClF,MAAM,KAAK,GAAyB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,78 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * example thread builder
5
- */
6
- const genThread = (ctx) => ({
7
- context: ctx,
8
- stitches: [],
9
- });
10
- /**
11
- * Compile-time test suite using Jest
12
- */
13
- describe('GStitcher', () => {
14
- it('accepts single-threaded Threads', () => {
15
- const stitcher = {
16
- threads: {
17
- artist: genThread({ role: 'artist', name: 'Zane' }),
18
- },
19
- context: {
20
- stitch: { trail: [] },
21
- log: console,
22
- },
23
- output: 'done',
24
- };
25
- expect(stitcher.output).toBe('done');
26
- });
27
- it('accepts multi-threaded Threads using Threads<..., "multiple">', () => {
28
- const stitcher = {
29
- threads: {
30
- artist: {
31
- seed: genThread({ role: 'artist', name: 'Zane' }),
32
- peers: [genThread({ role: 'artist', name: 'Zane' })],
33
- },
34
- },
35
- context: {
36
- stitch: { trail: [] },
37
- log: console,
38
- },
39
- output: 'done',
40
- };
41
- expect(stitcher.threads.artist.peers[0]?.context.name).toBe('Zane');
42
- });
43
- it('rejects invalid thread shape', () => {
44
- // @ts-expect-error - artist must be a Thread or Thread[]
45
- const stitcher = {
46
- threads: {
47
- artist: 'not-a-thread',
48
- },
49
- context: {
50
- stitch: { trail: [] },
51
- log: console,
52
- },
53
- output: 'fail',
54
- };
55
- expect(stitcher);
56
- });
57
- describe('Stitcher<GStitcher>', () => {
58
- // ✅ Positive, single
59
- it('should allow Stitcher<GStitcher> with Threads<..., "single">', () => {
60
- const assert = null;
61
- expect(assert).toBeNull();
62
- });
63
- // ✅ Positive, multiple
64
- it('only allow StitchStep<GStitcher> with Threads<..., "multiple">', () => {
65
- const assert = null;
66
- expect(assert).toBeNull();
67
- });
68
- // ❌ Negative, single
69
- it('should reject Stitcher<GStitcher> with non-Thread single shape', () => {
70
- expect(true).toBe(true);
71
- });
72
- // ❌ Negative, multiple
73
- it('should reject Stitcher<GStitcher> with non-Thread[] multiple shape', () => {
74
- expect(true).toBe(true);
75
- });
76
- });
77
- });
78
- //# sourceMappingURL=Stitcher.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Stitcher.test.js","sourceRoot":"","sources":["../../../src/domain/objects/Stitcher.test.ts"],"names":[],"mappings":";;AAUA;;GAEG;AACH,MAAM,SAAS,GAAG,CAAI,GAAM,EAAa,EAAE,CAAC,CAAC;IAC3C,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC;AAEH;;GAEG;AACH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IAGzB,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAGzC,MAAM,QAAQ,GAAkD;YAC9D,OAAO,EAAE;gBACP,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;aAC7D;YACD,OAAO,EAAE;gBACP,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBACrB,GAAG,EAAE,OAAO;aACb;YACD,MAAM,EAAE,MAAM;SACf,CAAC;QAEF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QAGvE,MAAM,QAAQ,GAAiD;YAC7D,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,IAAI,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oBACjD,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;iBACrD;aACF;YACD,OAAO,EAAE;gBACP,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBACrB,GAAG,EAAE,OAAO;aACb;YACD,MAAM,EAAE,MAAM;SACf,CAAC;QAEF,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAKtC,yDAAyD;QACzD,MAAM,QAAQ,GAAmD;YAC/D,OAAO,EAAE;gBACP,MAAM,EAAE,cAAc;aACvB;YACD,OAAO,EAAE;gBACP,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBACrB,GAAG,EAAE,OAAO;aACb;YACD,MAAM,EAAE,MAAM;SACf,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,qBAAqB;QACrB,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YAMtE,MAAM,MAAM,GAAa,IAAI,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,uBAAuB;QACvB,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;YAMxE,MAAM,MAAM,GAAa,IAAI,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;YAQxE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,uBAAuB;QACvB,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAQ5E,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};