rhachet-roles-bhrain 0.2.0 → 0.5.1

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 (365) hide show
  1. package/dist/.test/getContextOpenAI.js +1 -1
  2. package/dist/.test/getContextOpenAI.js.map +1 -1
  3. package/dist/access/sdk/sdkOpenAi.d.ts +25 -0
  4. package/dist/access/sdk/sdkOpenAi.js +122 -0
  5. package/dist/access/sdk/sdkOpenAi.js.map +1 -1
  6. package/dist/access/sdks/anthropic/sdkAnthropic.d.ts +31 -0
  7. package/dist/access/sdks/anthropic/sdkAnthropic.js +151 -0
  8. package/dist/access/sdks/anthropic/sdkAnthropic.js.map +1 -0
  9. package/dist/access/sdks/qwen/sdkQwen.d.ts +31 -0
  10. package/dist/access/sdks/qwen/sdkQwen.js +134 -0
  11. package/dist/access/sdks/qwen/sdkQwen.js.map +1 -0
  12. package/dist/domain.objects/BrainArch1/BrainArch1Actor.d.ts +67 -0
  13. package/dist/domain.objects/BrainArch1/BrainArch1Actor.js +12 -0
  14. package/dist/domain.objects/BrainArch1/BrainArch1Actor.js.map +1 -0
  15. package/dist/domain.objects/BrainArch1/BrainArch1Atom.d.ts +40 -0
  16. package/dist/domain.objects/BrainArch1/BrainArch1Atom.js +3 -0
  17. package/dist/domain.objects/BrainArch1/BrainArch1Atom.js.map +1 -0
  18. package/dist/domain.objects/BrainArch1/BrainArch1Context.d.ts +30 -0
  19. package/dist/domain.objects/BrainArch1/BrainArch1Context.js +3 -0
  20. package/dist/domain.objects/BrainArch1/BrainArch1Context.js.map +1 -0
  21. package/dist/domain.objects/BrainArch1/BrainArch1LoopIteration.d.ts +34 -0
  22. package/dist/domain.objects/BrainArch1/BrainArch1LoopIteration.js +8 -0
  23. package/dist/domain.objects/BrainArch1/BrainArch1LoopIteration.js.map +1 -0
  24. package/dist/domain.objects/BrainArch1/BrainArch1LoopIterationCompletedEvent.d.ts +23 -0
  25. package/dist/domain.objects/BrainArch1/BrainArch1LoopIterationCompletedEvent.js +9 -0
  26. package/dist/domain.objects/BrainArch1/BrainArch1LoopIterationCompletedEvent.js.map +1 -0
  27. package/dist/domain.objects/BrainArch1/BrainArch1LoopResult.d.ts +49 -0
  28. package/dist/domain.objects/BrainArch1/BrainArch1LoopResult.js +8 -0
  29. package/dist/domain.objects/BrainArch1/BrainArch1LoopResult.js.map +1 -0
  30. package/dist/domain.objects/BrainArch1/BrainArch1MemoryCompactedEvent.d.ts +31 -0
  31. package/dist/domain.objects/BrainArch1/BrainArch1MemoryCompactedEvent.js +9 -0
  32. package/dist/domain.objects/BrainArch1/BrainArch1MemoryCompactedEvent.js.map +1 -0
  33. package/dist/domain.objects/BrainArch1/BrainArch1MemoryCompactionResult.d.ts +27 -0
  34. package/dist/domain.objects/BrainArch1/BrainArch1MemoryCompactionResult.js +8 -0
  35. package/dist/domain.objects/BrainArch1/BrainArch1MemoryCompactionResult.js.map +1 -0
  36. package/dist/domain.objects/BrainArch1/BrainArch1MemoryManager.d.ts +45 -0
  37. package/dist/domain.objects/BrainArch1/BrainArch1MemoryManager.js +3 -0
  38. package/dist/domain.objects/BrainArch1/BrainArch1MemoryManager.js.map +1 -0
  39. package/dist/domain.objects/BrainArch1/BrainArch1MemoryTokenUsage.d.ts +29 -0
  40. package/dist/domain.objects/BrainArch1/BrainArch1MemoryTokenUsage.js +8 -0
  41. package/dist/domain.objects/BrainArch1/BrainArch1MemoryTokenUsage.js.map +1 -0
  42. package/dist/domain.objects/BrainArch1/BrainArch1PermissionDecision.d.ts +22 -0
  43. package/dist/domain.objects/BrainArch1/BrainArch1PermissionDecision.js +8 -0
  44. package/dist/domain.objects/BrainArch1/BrainArch1PermissionDecision.js.map +1 -0
  45. package/dist/domain.objects/BrainArch1/BrainArch1PermissionGuard.d.ts +30 -0
  46. package/dist/domain.objects/BrainArch1/BrainArch1PermissionGuard.js +3 -0
  47. package/dist/domain.objects/BrainArch1/BrainArch1PermissionGuard.js.map +1 -0
  48. package/dist/domain.objects/BrainArch1/BrainArch1Session.d.ts +47 -0
  49. package/dist/domain.objects/BrainArch1/BrainArch1Session.js +17 -0
  50. package/dist/domain.objects/BrainArch1/BrainArch1Session.js.map +1 -0
  51. package/dist/domain.objects/BrainArch1/BrainArch1SessionMessage.d.ts +34 -0
  52. package/dist/domain.objects/BrainArch1/BrainArch1SessionMessage.js +12 -0
  53. package/dist/domain.objects/BrainArch1/BrainArch1SessionMessage.js.map +1 -0
  54. package/dist/domain.objects/BrainArch1/BrainArch1ToolCall.d.ts +21 -0
  55. package/dist/domain.objects/BrainArch1/BrainArch1ToolCall.js +8 -0
  56. package/dist/domain.objects/BrainArch1/BrainArch1ToolCall.js.map +1 -0
  57. package/dist/domain.objects/BrainArch1/BrainArch1ToolDefinition.d.ts +54 -0
  58. package/dist/domain.objects/BrainArch1/BrainArch1ToolDefinition.js +20 -0
  59. package/dist/domain.objects/BrainArch1/BrainArch1ToolDefinition.js.map +1 -0
  60. package/dist/domain.objects/BrainArch1/BrainArch1ToolExecutionCompletedEvent.d.ts +36 -0
  61. package/dist/domain.objects/BrainArch1/BrainArch1ToolExecutionCompletedEvent.js +9 -0
  62. package/dist/domain.objects/BrainArch1/BrainArch1ToolExecutionCompletedEvent.js.map +1 -0
  63. package/dist/domain.objects/BrainArch1/BrainArch1ToolResult.d.ts +25 -0
  64. package/dist/domain.objects/BrainArch1/BrainArch1ToolResult.js +8 -0
  65. package/dist/domain.objects/BrainArch1/BrainArch1ToolResult.js.map +1 -0
  66. package/dist/domain.objects/BrainArch1/BrainArch1Toolbox.d.ts +31 -0
  67. package/dist/domain.objects/BrainArch1/BrainArch1Toolbox.js +3 -0
  68. package/dist/domain.objects/BrainArch1/BrainArch1Toolbox.js.map +1 -0
  69. package/dist/domain.objects/Reviewer/ReviewerReflectManifest.d.ts +44 -0
  70. package/dist/domain.objects/Reviewer/ReviewerReflectManifest.js +8 -0
  71. package/dist/domain.objects/Reviewer/ReviewerReflectManifest.js.map +1 -0
  72. package/dist/domain.objects/Reviewer/ReviewerReflectManifestOperation.d.ts +30 -0
  73. package/dist/domain.objects/Reviewer/ReviewerReflectManifestOperation.js +35 -0
  74. package/dist/domain.objects/Reviewer/ReviewerReflectManifestOperation.js.map +1 -0
  75. package/dist/domain.objects/Reviewer/ReviewerReflectMetrics.d.ts +89 -0
  76. package/dist/domain.objects/Reviewer/ReviewerReflectMetrics.js +8 -0
  77. package/dist/domain.objects/Reviewer/ReviewerReflectMetrics.js.map +1 -0
  78. package/dist/domain.objects/Reviewer/ReviewerReflectRuleProposal.d.ts +43 -0
  79. package/dist/domain.objects/Reviewer/ReviewerReflectRuleProposal.js +8 -0
  80. package/dist/domain.objects/Reviewer/ReviewerReflectRuleProposal.js.map +1 -0
  81. package/dist/domain.operations/artifact/genLoopFeedback.js +1 -1
  82. package/dist/domain.operations/artifact/genLoopFeedback.js.map +1 -1
  83. package/dist/domain.operations/artifact/genStepGrabCallerFeedbackToArtifact.d.ts +1 -1
  84. package/dist/domain.operations/brain.replic.arch1/core/invokeBrainArch1.d.ts +13 -0
  85. package/dist/domain.operations/brain.replic.arch1/core/invokeBrainArch1.js +106 -0
  86. package/dist/domain.operations/brain.replic.arch1/core/invokeBrainArch1.js.map +1 -0
  87. package/dist/domain.operations/brain.replic.arch1/llm/generateBrainArch1LlmResponse.d.ts +18 -0
  88. package/dist/domain.operations/brain.replic.arch1/llm/generateBrainArch1LlmResponse.js +16 -0
  89. package/dist/domain.operations/brain.replic.arch1/llm/generateBrainArch1LlmResponse.js.map +1 -0
  90. package/dist/domain.operations/brain.replic.arch1/loop/iterateBrainArch1Loop.d.ts +30 -0
  91. package/dist/domain.operations/brain.replic.arch1/loop/iterateBrainArch1Loop.js +71 -0
  92. package/dist/domain.operations/brain.replic.arch1/loop/iterateBrainArch1Loop.js.map +1 -0
  93. package/dist/domain.operations/brain.replic.arch1/loop/runBrainArch1Loop.d.ts +20 -0
  94. package/dist/domain.operations/brain.replic.arch1/loop/runBrainArch1Loop.js +90 -0
  95. package/dist/domain.operations/brain.replic.arch1/loop/runBrainArch1Loop.js.map +1 -0
  96. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/anthropic.d.ts +8 -0
  97. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/anthropic.js +31 -0
  98. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/anthropic.js.map +1 -0
  99. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/index.d.ts +3 -0
  100. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/index.js +10 -0
  101. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/index.js.map +1 -0
  102. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/openai.d.ts +8 -0
  103. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/openai.js +31 -0
  104. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/openai.js.map +1 -0
  105. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/qwen.d.ts +8 -0
  106. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/qwen.js +32 -0
  107. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/qwen.js.map +1 -0
  108. package/dist/domain.operations/brain.replic.arch1/plugins/memoryManagers/slidingWindow.d.ts +6 -0
  109. package/dist/domain.operations/brain.replic.arch1/plugins/memoryManagers/slidingWindow.js +80 -0
  110. package/dist/domain.operations/brain.replic.arch1/plugins/memoryManagers/slidingWindow.js.map +1 -0
  111. package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/allowAll.d.ts +6 -0
  112. package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/allowAll.js +14 -0
  113. package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/allowAll.js.map +1 -0
  114. package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/promptUser.d.ts +8 -0
  115. package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/promptUser.js +52 -0
  116. package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/promptUser.js.map +1 -0
  117. package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/readOnly.d.ts +8 -0
  118. package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/readOnly.js +38 -0
  119. package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/readOnly.js.map +1 -0
  120. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/bash/exec.d.ts +33 -0
  121. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/bash/exec.js +100 -0
  122. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/bash/exec.js.map +1 -0
  123. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/bash/index.d.ts +6 -0
  124. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/bash/index.js +26 -0
  125. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/bash/index.js.map +1 -0
  126. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/edit.d.ts +41 -0
  127. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/edit.js +107 -0
  128. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/edit.js.map +1 -0
  129. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/glob.d.ts +33 -0
  130. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/glob.js +68 -0
  131. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/glob.js.map +1 -0
  132. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/grep.d.ts +41 -0
  133. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/grep.js +97 -0
  134. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/grep.js.map +1 -0
  135. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/index.d.ts +6 -0
  136. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/index.js +65 -0
  137. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/index.js.map +1 -0
  138. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/read.d.ts +37 -0
  139. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/read.js +96 -0
  140. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/read.js.map +1 -0
  141. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/write.d.ts +33 -0
  142. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/write.js +81 -0
  143. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/write.js.map +1 -0
  144. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/fetch.d.ts +33 -0
  145. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/fetch.js +113 -0
  146. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/fetch.js.map +1 -0
  147. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/index.d.ts +6 -0
  148. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/index.js +36 -0
  149. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/index.js.map +1 -0
  150. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/search.d.ts +36 -0
  151. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/search.js +101 -0
  152. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/search.js.map +1 -0
  153. package/dist/domain.operations/brain.replic.arch1/tool/executeBrainArch1ToolCall.d.ts +14 -0
  154. package/dist/domain.operations/brain.replic.arch1/tool/executeBrainArch1ToolCall.js +45 -0
  155. package/dist/domain.operations/brain.replic.arch1/tool/executeBrainArch1ToolCall.js.map +1 -0
  156. package/dist/domain.operations/brain.replic.arch1/tool/mergeBrainArch1Toolboxes.d.ts +19 -0
  157. package/dist/domain.operations/brain.replic.arch1/tool/mergeBrainArch1Toolboxes.js +35 -0
  158. package/dist/domain.operations/brain.replic.arch1/tool/mergeBrainArch1Toolboxes.js.map +1 -0
  159. package/dist/domain.operations/git/genGitHubFileUrl.d.ts +9 -0
  160. package/dist/domain.operations/git/genGitHubFileUrl.js +55 -0
  161. package/dist/domain.operations/git/genGitHubFileUrl.js.map +1 -0
  162. package/dist/domain.operations/git/getGitRemoteUrl.d.ts +7 -0
  163. package/dist/domain.operations/git/getGitRemoteUrl.js +40 -0
  164. package/dist/domain.operations/git/getGitRemoteUrl.js.map +1 -0
  165. package/dist/domain.operations/hooks/getInvokeHooks.js +1 -1
  166. package/dist/domain.operations/hooks/getInvokeHooks.js.map +1 -1
  167. package/dist/domain.operations/reflect/createDraftDirectory.d.ts +11 -0
  168. package/dist/domain.operations/reflect/createDraftDirectory.js +46 -0
  169. package/dist/domain.operations/reflect/createDraftDirectory.js.map +1 -0
  170. package/dist/domain.operations/reflect/enumFeedbackFiles.d.ts +7 -0
  171. package/dist/domain.operations/reflect/enumFeedbackFiles.js +69 -0
  172. package/dist/domain.operations/reflect/enumFeedbackFiles.js.map +1 -0
  173. package/dist/domain.operations/reflect/extractJsonFromResultText.d.ts +7 -0
  174. package/dist/domain.operations/reflect/extractJsonFromResultText.js +19 -0
  175. package/dist/domain.operations/reflect/extractJsonFromResultText.js.map +1 -0
  176. package/dist/domain.operations/reflect/invokeClaudeCodeForReflect.d.ts +46 -0
  177. package/dist/domain.operations/reflect/invokeClaudeCodeForReflect.js +120 -0
  178. package/dist/domain.operations/reflect/invokeClaudeCodeForReflect.js.map +1 -0
  179. package/dist/domain.operations/reflect/metrics/computeMetricsExpected.d.ts +12 -0
  180. package/dist/domain.operations/reflect/metrics/computeMetricsExpected.js +28 -0
  181. package/dist/domain.operations/reflect/metrics/computeMetricsExpected.js.map +1 -0
  182. package/dist/domain.operations/reflect/metrics/computeMetricsRealized.d.ts +26 -0
  183. package/dist/domain.operations/reflect/metrics/computeMetricsRealized.js +66 -0
  184. package/dist/domain.operations/reflect/metrics/computeMetricsRealized.js.map +1 -0
  185. package/dist/domain.operations/reflect/metrics/writeLogArtifact.d.ts +17 -0
  186. package/dist/domain.operations/reflect/metrics/writeLogArtifact.js +93 -0
  187. package/dist/domain.operations/reflect/metrics/writeLogArtifact.js.map +1 -0
  188. package/dist/domain.operations/reflect/step1/compileCitationsMarkdown.d.ts +8 -0
  189. package/dist/domain.operations/reflect/step1/compileCitationsMarkdown.js +28 -0
  190. package/dist/domain.operations/reflect/step1/compileCitationsMarkdown.js.map +1 -0
  191. package/dist/domain.operations/reflect/step1/compileReflectStep1Prompt.d.ts +14 -0
  192. package/dist/domain.operations/reflect/step1/compileReflectStep1Prompt.js +93 -0
  193. package/dist/domain.operations/reflect/step1/compileReflectStep1Prompt.js.map +1 -0
  194. package/dist/domain.operations/reflect/step2/compileReflectStep2Prompt.d.ts +18 -0
  195. package/dist/domain.operations/reflect/step2/compileReflectStep2Prompt.js +208 -0
  196. package/dist/domain.operations/reflect/step2/compileReflectStep2Prompt.js.map +1 -0
  197. package/dist/domain.operations/reflect/step2/executeManifestOperations.d.ts +17 -0
  198. package/dist/domain.operations/reflect/step2/executeManifestOperations.js +189 -0
  199. package/dist/domain.operations/reflect/step2/executeManifestOperations.js.map +1 -0
  200. package/dist/domain.operations/reflect/step2/parseManifestOperations.d.ts +8 -0
  201. package/dist/domain.operations/reflect/step2/parseManifestOperations.js +73 -0
  202. package/dist/domain.operations/reflect/step2/parseManifestOperations.js.map +1 -0
  203. package/dist/domain.operations/reflect/validateSourceDirectory.d.ts +9 -0
  204. package/dist/domain.operations/reflect/validateSourceDirectory.js +63 -0
  205. package/dist/domain.operations/reflect/validateSourceDirectory.js.map +1 -0
  206. package/dist/domain.operations/reflect/validateTargetDirectory.d.ts +10 -0
  207. package/dist/domain.operations/reflect/validateTargetDirectory.js +59 -0
  208. package/dist/domain.operations/reflect/validateTargetDirectory.js.map +1 -0
  209. package/dist/domain.operations/review/compileReviewPrompt.d.ts +22 -0
  210. package/dist/domain.operations/review/compileReviewPrompt.js +95 -0
  211. package/dist/domain.operations/review/compileReviewPrompt.js.map +1 -0
  212. package/dist/domain.operations/review/enumFilesFromDiffs.d.ts +8 -0
  213. package/dist/domain.operations/review/enumFilesFromDiffs.js +74 -0
  214. package/dist/domain.operations/review/enumFilesFromDiffs.js.map +1 -0
  215. package/dist/domain.operations/review/enumFilesFromGlob.d.ts +8 -0
  216. package/dist/domain.operations/review/enumFilesFromGlob.js +31 -0
  217. package/dist/domain.operations/review/enumFilesFromGlob.js.map +1 -0
  218. package/dist/domain.operations/review/estimateTokenCount.d.ts +9 -0
  219. package/dist/domain.operations/review/estimateTokenCount.js +20 -0
  220. package/dist/domain.operations/review/estimateTokenCount.js.map +1 -0
  221. package/dist/domain.operations/review/formatReviewOutput.d.ts +14 -0
  222. package/dist/domain.operations/review/formatReviewOutput.js +42 -0
  223. package/dist/domain.operations/review/formatReviewOutput.js.map +1 -0
  224. package/dist/domain.operations/review/genTokenBreakdownMarkdown.d.ts +19 -0
  225. package/dist/domain.operations/review/genTokenBreakdownMarkdown.js +110 -0
  226. package/dist/domain.operations/review/genTokenBreakdownMarkdown.js.map +1 -0
  227. package/dist/domain.operations/review/genTokenBreakdownReport.d.ts +24 -0
  228. package/dist/domain.operations/review/genTokenBreakdownReport.js +64 -0
  229. package/dist/domain.operations/review/genTokenBreakdownReport.js.map +1 -0
  230. package/dist/domain.operations/review/invokeClaudeCode.d.ts +22 -0
  231. package/dist/domain.operations/review/invokeClaudeCode.js +92 -0
  232. package/dist/domain.operations/review/invokeClaudeCode.js.map +1 -0
  233. package/dist/domain.operations/review/writeInputArtifacts.d.ts +27 -0
  234. package/dist/domain.operations/review/writeInputArtifacts.js +50 -0
  235. package/dist/domain.operations/review/writeInputArtifacts.js.map +1 -0
  236. package/dist/domain.operations/review/writeOutputArtifacts.d.ts +12 -0
  237. package/dist/domain.operations/review/writeOutputArtifacts.js +46 -0
  238. package/dist/domain.operations/review/writeOutputArtifacts.js.map +1 -0
  239. package/dist/index.js.map +1 -1
  240. package/dist/roles/architect/getArchitectRole.d.ts +6 -0
  241. package/dist/roles/architect/getArchitectRole.js +31 -0
  242. package/dist/roles/architect/getArchitectRole.js.map +1 -0
  243. package/dist/roles/brain/getBrainRole.d.ts +6 -0
  244. package/dist/roles/brain/getBrainRole.js +28 -0
  245. package/dist/roles/brain/getBrainRole.js.map +1 -0
  246. package/dist/roles/brain/skills/act/skillAct.d.ts +5 -0
  247. package/dist/roles/brain/skills/act/skillAct.js +147 -0
  248. package/dist/roles/brain/skills/act/skillAct.js.map +1 -0
  249. package/dist/roles/brain/skills/act/skillAct.ts +186 -0
  250. package/dist/roles/brain/skills/act/stepAct.d.ts +27 -0
  251. package/dist/roles/brain/skills/act/stepAct.js +95 -0
  252. package/dist/roles/brain/skills/act/stepAct.js.map +1 -0
  253. package/dist/roles/brain/skills/act/stepAct.ts +123 -0
  254. package/dist/roles/getRoleRegistry.js +5 -3
  255. package/dist/roles/getRoleRegistry.js.map +1 -1
  256. package/dist/roles/getRoleRegistry.readme.js +6 -0
  257. package/dist/roles/getRoleRegistry.readme.js.map +1 -1
  258. package/dist/roles/reviewer/briefs/on.rules/rules101.[article].md +41 -0
  259. package/dist/roles/reviewer/briefs/on.rules/rules101.citations.[article].md +88 -0
  260. package/dist/roles/reviewer/briefs/on.rules/rules101.collocated.[article].md +97 -0
  261. package/dist/roles/reviewer/briefs/on.rules/rules101.content.[article].md +228 -0
  262. package/dist/roles/reviewer/briefs/on.rules/rules101.content.[demo].forbid.failhide.md +87 -0
  263. package/dist/roles/reviewer/briefs/on.rules/rules101.content.[demo].forbid.gerunds.md +85 -0
  264. package/dist/roles/reviewer/briefs/on.rules/rules101.content.[demo].require.failfast.md +73 -0
  265. package/dist/roles/reviewer/briefs/on.rules/rules101.structure.[article].md +70 -0
  266. package/dist/roles/reviewer/briefs/review.tactics.md +60 -0
  267. package/dist/roles/reviewer/getReviewerRole.d.ts +6 -0
  268. package/dist/roles/reviewer/getReviewerRole.js +80 -0
  269. package/dist/roles/reviewer/getReviewerRole.js.map +1 -0
  270. package/dist/roles/reviewer/skills/reflect/reflect.d.ts +30 -0
  271. package/dist/roles/reviewer/skills/reflect/reflect.js +305 -0
  272. package/dist/roles/reviewer/skills/reflect/reflect.js.map +1 -0
  273. package/dist/roles/reviewer/skills/reflect/reflect.sh +38 -0
  274. package/dist/roles/reviewer/skills/reflect/reflect.ts +356 -0
  275. package/dist/roles/reviewer/skills/review/review.d.ts +57 -0
  276. package/dist/roles/reviewer/skills/review/review.js +445 -0
  277. package/dist/roles/reviewer/skills/review/review.js.map +1 -0
  278. package/dist/roles/reviewer/skills/review/review.sh +21 -0
  279. package/dist/roles/reviewer/skills/review/review.ts +575 -0
  280. package/dist/roles/thinker/getThinkerBrief.d.ts +1 -1
  281. package/dist/roles/thinker/getThinkerRole.js +9 -9
  282. package/dist/roles/thinker/getThinkerRole.js.map +1 -1
  283. package/dist/roles/thinker/skills/brief.articulate/.demo/article.vision.v2025_08_19..i1.via_chatgpt.md +47 -0
  284. package/dist/roles/thinker/skills/brief.articulate/.demo/article.vision.v2025_08_19.i2.via_rhachet.md +60 -0
  285. package/dist/roles/thinker/skills/brief.articulate/.demo/diverge.v2025_08_17.i1.md +62 -0
  286. package/dist/roles/thinker/skills/brief.articulate/.demo/diverge.v2025_08_17.i1.with_feedback.md +89 -0
  287. package/dist/roles/thinker/skills/brief.articulate/.demo/diverge.v2025_08_17.i2.md +47 -0
  288. package/dist/roles/thinker/skills/brief.articulate/.demo/joke.v2025_08_15.i1.md +44 -0
  289. package/dist/roles/thinker/skills/brief.articulate/.demo/joke.v2025_08_15.i2.md +63 -0
  290. package/dist/roles/thinker/skills/brief.articulate/.demo/joke.v2025_08_15.i3.md +51 -0
  291. package/dist/roles/thinker/skills/brief.articulate/.demo/user-journey.v2025_08_17.i1.md +62 -0
  292. package/dist/roles/thinker/skills/brief.articulate/.demo/user-journey.v2025_08_17.i2.md +49 -0
  293. package/dist/roles/thinker/skills/brief.articulate/.readme.md +0 -0
  294. package/dist/roles/thinker/skills/brief.articulate/stepArticulate.skill.js +1 -1
  295. package/dist/roles/thinker/skills/brief.articulate/stepArticulate.skill.js.map +1 -1
  296. package/dist/roles/thinker/skills/brief.articulate/stepArticulate.skill.ts +168 -0
  297. package/dist/roles/thinker/skills/brief.articulate/stepArticulate.ts +157 -0
  298. package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_08_28.i1.md +93 -0
  299. package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_08_28.i2.md +84 -0
  300. package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_09_28.i1.no_focus_context.md +8 -0
  301. package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_09_28.i2.md +54 -0
  302. package/dist/roles/thinker/skills/brief.catalogize/.demo/persona.usecases.v2025_08_28.i1.md +62 -0
  303. package/dist/roles/thinker/skills/brief.catalogize/.demo/persona.usecases.v2025_08_28.i2.md +64 -0
  304. package/dist/roles/thinker/skills/brief.catalogize/.readme.md +5 -0
  305. package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.js +1 -1
  306. package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.js.map +1 -1
  307. package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.ts +173 -0
  308. package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.ts +132 -0
  309. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.i4.md +3 -0
  310. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.i5.md +3 -0
  311. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.i6.md +3 -0
  312. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.md +3 -0
  313. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i1.md +52 -0
  314. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i2.md +51 -0
  315. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i3.md +47 -0
  316. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i4.md +62 -0
  317. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i5.md +47 -0
  318. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i6.md +53 -0
  319. package/dist/roles/thinker/skills/brief.demonstrate/.readme +3 -0
  320. package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.skill.js +1 -1
  321. package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.skill.js.map +1 -1
  322. package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.skill.ts +190 -0
  323. package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.ts +164 -0
  324. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i1.md +72 -0
  325. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i2.md +53 -0
  326. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i3.which_objectives.md +58 -0
  327. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i5.which_personas.md +64 -0
  328. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input2.cluster.v2025_08_17.i1.md +67 -0
  329. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input2.cluster.v2025_08_17.i2.md +49 -0
  330. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input2.cluster.v2025_08_17.i3.md +59 -0
  331. package/dist/roles/thinker/skills/khue.cluster/.readme.md +0 -0
  332. package/dist/roles/thinker/skills/khue.cluster/stepCluster.skill.js +1 -1
  333. package/dist/roles/thinker/skills/khue.cluster/stepCluster.skill.js.map +1 -1
  334. package/dist/roles/thinker/skills/khue.cluster/stepCluster.skill.ts +174 -0
  335. package/dist/roles/thinker/skills/khue.cluster/stepCluster.ts +150 -0
  336. package/dist/roles/thinker/skills/khue.decompose/.readme.md +9 -0
  337. package/dist/roles/thinker/skills/khue.diverge/.demo/joke.examples.v2025_08_17.i2.md +23 -0
  338. package/dist/roles/thinker/skills/khue.diverge/.demo/joke.examples.v2025_08_17.i3.md +23 -0
  339. package/dist/roles/thinker/skills/khue.diverge/.demo/joke.varieties.v2025_08_17.i1.md +23 -0
  340. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i1.md +9 -0
  341. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i2.md +9 -0
  342. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i3.md +23 -0
  343. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i4.folksy.md +9 -0
  344. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i5.folksy.md +23 -0
  345. package/dist/roles/thinker/skills/khue.diverge/.readme.md +0 -0
  346. package/dist/roles/thinker/skills/khue.diverge/stepDiverge.skill.js +1 -1
  347. package/dist/roles/thinker/skills/khue.diverge/stepDiverge.skill.js.map +1 -1
  348. package/dist/roles/thinker/skills/khue.diverge/stepDiverge.skill.ts +149 -0
  349. package/dist/roles/thinker/skills/khue.diverge/stepDiverge.ts +151 -0
  350. package/dist/roles/thinker/skills/khue.encompose/.readme.md +7 -0
  351. package/dist/roles/thinker/skills/khue.instantiate/.readme.md +14 -0
  352. package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.js +1 -1
  353. package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.js.map +1 -1
  354. package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.ts +190 -0
  355. package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.ts +132 -0
  356. package/dist/roles/thinker/skills/khue.triage/.demo/laughs.v2025_08_18.i1.md +29 -0
  357. package/dist/roles/thinker/skills/khue.triage/.demo/user.journeys.v2025_08_17.i1.md +86 -0
  358. package/dist/roles/thinker/skills/khue.triage/.demo/user.journeys.v2025_08_17.i2.md +68 -0
  359. package/dist/roles/thinker/skills/khue.triage/.readme.md +0 -0
  360. package/dist/roles/thinker/skills/khue.triage/stepTriage.skill.js +1 -1
  361. package/dist/roles/thinker/skills/khue.triage/stepTriage.skill.js.map +1 -1
  362. package/dist/roles/thinker/skills/khue.triage/stepTriage.skill.ts +174 -0
  363. package/dist/roles/thinker/skills/khue.triage/stepTriage.ts +153 -0
  364. package/package.json +11 -8
  365. package/readme.md +55 -0
@@ -0,0 +1,174 @@
1
+ import { enrollThread, genRoleSkill } from 'rhachet';
2
+ import { genArtifactGitFile, getArtifactObsDir } from 'rhachet-artifact-git';
3
+
4
+ import { genContextLogTrail } from '@src/.test/genContextLogTrail';
5
+ import { genContextStitchTrail } from '@src/.test/genContextStitchTrail';
6
+ import { getContextOpenAI } from '@src/.test/getContextOpenAI';
7
+
8
+ import { BRIEFS_FOR_TRIAGE, loopTriage } from './stepTriage';
9
+
10
+ export const SKILL_TRIAGE = genRoleSkill({
11
+ slug: 'triage',
12
+ route: loopTriage,
13
+ threads: {
14
+ lookup: {
15
+ output: {
16
+ source: 'process.argv',
17
+ char: 'o',
18
+ desc: 'the output file to write against',
19
+ type: 'string',
20
+ },
21
+ input: {
22
+ source: 'process.argv',
23
+ char: 'i',
24
+ desc: 'the input file to seed from',
25
+ type: 'string',
26
+ },
27
+ goal: {
28
+ source: 'process.argv',
29
+ char: 'g',
30
+ desc: 'the goal of the request',
31
+ type: '?string',
32
+ },
33
+ references: {
34
+ source: 'process.argv',
35
+ char: 'f',
36
+ desc: 'reference files to to use, if any; delimit with commas',
37
+ type: '?string',
38
+ },
39
+ briefs: {
40
+ source: 'process.argv',
41
+ char: 'b',
42
+ desc: 'brief files to to use, if any; delimit with commas',
43
+ type: '?string',
44
+ },
45
+ },
46
+ assess: (
47
+ input,
48
+ ): input is {
49
+ output: string;
50
+ input: string;
51
+ goal: string;
52
+ references: string;
53
+ briefs: string;
54
+ ask: string;
55
+ } => typeof input.output === 'string',
56
+ instantiate: async (input: {
57
+ output: string;
58
+ input: string;
59
+ goal: string;
60
+ references: string;
61
+ briefs: string;
62
+ ask: string;
63
+ }) => {
64
+ // declare where all the artifacts will be found
65
+ const obsDir = getArtifactObsDir({ uri: input.output });
66
+ const artifacts = {
67
+ goal: {
68
+ concept: genArtifactGitFile(
69
+ { uri: obsDir + '.goal.concept.md' },
70
+ { versions: true },
71
+ ),
72
+ context: genArtifactGitFile(
73
+ { uri: obsDir + '.goal.context.md' },
74
+ { versions: true },
75
+ ),
76
+ },
77
+ feedback: genArtifactGitFile(
78
+ { uri: obsDir + '.feedback.md' },
79
+ { versions: true },
80
+ ),
81
+ 'focus.context': genArtifactGitFile(
82
+ { uri: obsDir + '.focus.context.md' },
83
+ { versions: true },
84
+ ),
85
+ 'focus.concept': genArtifactGitFile(
86
+ { uri: input.output },
87
+ { versions: true },
88
+ ),
89
+ input: genArtifactGitFile({ uri: input.input }, { versions: true }),
90
+ references:
91
+ input.references
92
+ ?.split(',')
93
+ .filter((uri) => !!uri)
94
+ .map((reference) =>
95
+ genArtifactGitFile({ uri: reference }, { access: 'readonly' }),
96
+ ) ?? [],
97
+ briefs:
98
+ input.briefs
99
+ ?.split(',')
100
+ .filter((uri) => !!uri)
101
+ .map((brief) =>
102
+ genArtifactGitFile({ uri: brief }, { access: 'readonly' }),
103
+ ) ?? [],
104
+ };
105
+
106
+ // detect the goal of the caller
107
+ const goalConcept: string = await (async () => {
108
+ // if goal explicitly defined, use it
109
+ if (input.goal)
110
+ return (
111
+ (
112
+ await genArtifactGitFile(
113
+ { uri: input.goal },
114
+ { access: 'readonly' },
115
+ ).get()
116
+ )?.content ?? input.ask
117
+ );
118
+
119
+ // otherwise, assume its the ask
120
+ return input.ask;
121
+ })();
122
+ await artifacts.goal.concept.set({ content: goalConcept });
123
+
124
+ return {
125
+ caller: await enrollThread({
126
+ role: 'caller',
127
+ stash: {
128
+ ask: '',
129
+ art: {
130
+ 'foci.goal.concept': artifacts.goal.concept,
131
+ 'foci.goal.context': artifacts.goal.context,
132
+ 'foci.input.concept': artifacts.input,
133
+ feedback: artifacts.feedback,
134
+ },
135
+ refs: artifacts.references,
136
+ },
137
+ }),
138
+ thinker: await enrollThread({
139
+ role: 'thinker',
140
+ stash: {
141
+ art: {
142
+ 'focus.context': artifacts['focus.context'],
143
+ 'focus.concept': artifacts['focus.concept'],
144
+ },
145
+ briefs: [
146
+ ...artifacts.briefs,
147
+ ...BRIEFS_FOR_TRIAGE, // flow the triage briefs down so that <ponder> has them in context too; this approach does cause duplicate briefs for triage, but thats no biggie
148
+ ],
149
+ },
150
+ }),
151
+ };
152
+ },
153
+ },
154
+ context: {
155
+ lookup: {
156
+ apiKeyOpenai: {
157
+ source: 'process.env',
158
+ envar: 'OPENAI_API_KEY',
159
+ desc: 'the openai key to use',
160
+ type: 'string',
161
+ },
162
+ },
163
+ assess: (input): input is { apiKeyOpenai: string } =>
164
+ typeof input.apiKeyOpenai === 'string',
165
+ instantiate: () => {
166
+ return {
167
+ ...getContextOpenAI(),
168
+ ...genContextLogTrail(),
169
+ ...genContextStitchTrail(),
170
+ };
171
+ },
172
+ },
173
+ readme: '',
174
+ });
@@ -0,0 +1,153 @@
1
+ import { UnexpectedCodePathError } from 'helpful-errors';
2
+ import {
3
+ asStitcherFlat,
4
+ type GStitcher,
5
+ genStepImagineViaTemplate,
6
+ genStitchRoute,
7
+ genTemplate,
8
+ getTemplatePathByCallerPath,
9
+ getTemplateValFromArtifacts,
10
+ getTemplateVarsFromRoleInherit,
11
+ type RoleContext,
12
+ type Threads,
13
+ } from 'rhachet';
14
+ import type { Artifact } from 'rhachet-artifact';
15
+ import type { GitFile } from 'rhachet-artifact-git';
16
+ import { withRetry, withTimeout } from 'wrapper-fns';
17
+
18
+ import type { Focus } from '@src/_topublish/rhachet-roles-bhrain/src/domain/objects/Focus';
19
+ import { type ContextOpenAI, sdkOpenAi } from '@src/access/sdk/sdkOpenAi';
20
+ import { genLoopFeedback } from '@src/domain.operations/artifact/genLoopFeedback';
21
+ import { genStepArtSet } from '@src/domain.operations/artifact/genStepArtSet';
22
+ import { getThinkerBriefs } from '@src/roles/thinker/getThinkerBrief';
23
+
24
+ // exported so that we can pass them through to <ponder> too
25
+ export const BRIEFS_FOR_TRIAGE = getThinkerBriefs([
26
+ 'trait.ocd.md',
27
+ 'cognition/cog401.questions.._.md',
28
+ 'cognition/cog000.overview.and.premise.md',
29
+ 'cognition/cog101.concept.treestruct._.md',
30
+ 'cognition/cog201.cortal.focus.p1.definition.md',
31
+ 'cognition/cog301.traversal.1.motion.primitives._.md',
32
+ 'cognition/cog401.questions.._.md',
33
+ 'cognition/cog401.questions.2.1.primitives.rough._.md',
34
+ 'librarian.tactics/<articulate>._.[article].frame.cognitive.md', // todo: keep or remove
35
+ 'librarian.tactics/<articulate>._.[article].frame.tactical.md',
36
+ 'cognition/cog201.cortal.focus.p2.breadth.md',
37
+ 'cognition/cog301.traversal.1.motion.primitives.breadth.md',
38
+ 'cognition/cog301.traversal.1.motion.primitives.breadth.vary.md',
39
+ 'thinker.tactics/<triage>._.[article].frame.tactical.md',
40
+ 'thinker.tactics/<triage>.persp.implicit_question.[article].md',
41
+ 'thinker.tactics/<triage>.persp.grades_from_context.[article].md',
42
+ 'librarian.tactics/[brief].verbiage.outline.over.narrative.md',
43
+ ]);
44
+
45
+ type StitcherDesired = GStitcher<
46
+ Threads<{
47
+ caller: RoleContext<
48
+ 'caller',
49
+ {
50
+ art: {
51
+ feedback: Artifact<typeof GitFile>;
52
+ 'foci.goal.concept': Focus['concept'];
53
+ 'foci.goal.context': Focus['context'];
54
+ 'foci.input.concept': Focus['concept'];
55
+ };
56
+ refs: Artifact<typeof GitFile>[];
57
+ }
58
+ >;
59
+ thinker: RoleContext<
60
+ 'thinker',
61
+ {
62
+ art: {
63
+ 'focus.concept': Focus['concept'];
64
+ 'focus.context': Focus['context'];
65
+ };
66
+ briefs: Artifact<typeof GitFile>[];
67
+ }
68
+ >;
69
+ }>,
70
+ ContextOpenAI & GStitcher['context'],
71
+ { content: string }
72
+ >;
73
+
74
+ const template = genTemplate<StitcherDesired['threads']>({
75
+ ref: { uri: getTemplatePathByCallerPath({ auto: true }) },
76
+ getVariables: async ({ threads }) => ({
77
+ ...(await getTemplateVarsFromRoleInherit({ thread: threads.thinker })),
78
+
79
+ guide: {
80
+ goal:
81
+ (await threads.caller.context.stash.art['foci.goal.concept'].get())
82
+ ?.content ||
83
+ UnexpectedCodePathError.throw('goal not declared', {
84
+ art: threads.caller.context.stash.art['foci.goal.concept'],
85
+ }),
86
+ feedback:
87
+ (await threads.caller.context.stash.art.feedback.get())?.content || '',
88
+ },
89
+
90
+ focus: {
91
+ context:
92
+ (await threads.thinker.context.stash.art['focus.context'].get())
93
+ ?.content ||
94
+ (await threads.caller.context.stash.art['foci.goal.context'].get()) // fallback to @[caller].focus[goal].context
95
+ ?.content ||
96
+ '',
97
+ concept:
98
+ (await threads.thinker.context.stash.art['focus.concept'].get())
99
+ ?.content || '',
100
+ },
101
+
102
+ seed: {
103
+ concepts:
104
+ (await threads.caller.context.stash.art['foci.input.concept'].get())
105
+ ?.content ||
106
+ UnexpectedCodePathError.throw('input not declared', {
107
+ art: threads.caller.context.stash.art['foci.input.concept'],
108
+ }),
109
+ },
110
+
111
+ skill: {
112
+ briefs: await getTemplateValFromArtifacts({
113
+ artifacts: [
114
+ ...BRIEFS_FOR_TRIAGE,
115
+ ...threads.thinker.context.stash.briefs,
116
+ ],
117
+ }),
118
+ },
119
+
120
+ references: await getTemplateValFromArtifacts({
121
+ artifacts: threads.caller.context.stash.refs,
122
+ }),
123
+ }),
124
+ });
125
+
126
+ const stepImagine = genStepImagineViaTemplate<StitcherDesired>({
127
+ slug: '@[thinker]<triage>',
128
+ stitchee: 'thinker',
129
+ readme: '',
130
+ template,
131
+ imagine: withRetry(
132
+ withTimeout(sdkOpenAi.imagine, { threshold: { seconds: 60 } }), // allow up to 60 sec, for longer files
133
+ ),
134
+ });
135
+
136
+ const stepPersist = genStepArtSet({
137
+ stitchee: 'thinker',
138
+ artee: 'focus.concept',
139
+ });
140
+
141
+ export const stepTriage = asStitcherFlat<StitcherDesired>(
142
+ genStitchRoute({
143
+ slug: '@[thinker]<triage>',
144
+ readme: '@[thinker]<triage> -> [article]',
145
+ sequence: [stepImagine, stepPersist],
146
+ }),
147
+ );
148
+
149
+ export const loopTriage = genLoopFeedback({
150
+ stitchee: 'thinker',
151
+ artee: 'focus.concept',
152
+ repeatee: stepTriage,
153
+ });
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "rhachet-roles-bhrain",
3
3
  "author": "ehmpathy",
4
4
  "description": "reliable thought concept navigation roles, briefs, and skills, via rhachet",
5
- "version": "0.2.0",
5
+ "version": "0.5.1",
6
6
  "repository": "ehmpathy/rhachet-roles-bhrain",
7
7
  "homepage": "https://github.com/ehmpathy/rhachet-roles-bhrain",
8
8
  "keywords": [
@@ -25,20 +25,19 @@
25
25
  "fix:format": "npm run fix:format:biome",
26
26
  "fix:lint": "biome check --write",
27
27
  "fix": "npm run fix:format && npm run fix:lint",
28
- "build:clean": "rm dist/ -rf",
28
+ "build:clean": "chmod -R u+w dist 2>/dev/null; rm -rf dist/",
29
29
  "build:compile": "tsc -p ./tsconfig.build.json && tsc-alias -p ./tsconfig.build.json",
30
- "build:complete": "rsync -a --prune-empty-dirs --include='*/' --exclude='**/.route/**' --exclude='**/.scratch/**' --exclude='**/.behavior/**' --exclude='**/*.test.sh' --include='**/*.template.md' --include='**/briefs/**/*.md' --include='**/briefs/*.md' --include='**/skills/**/*.sh' --include='**/skills/*.sh' --include='**/skills/**/*.jsonc' --include='**/skills/*.jsonc' --exclude='*' src/ dist/",
30
+ "build:complete": "rsync -a --prune-empty-dirs --exclude='.test' --exclude='.route' --exclude='.scratch' --exclude='.behavior' --exclude='*.test.*' --include='*/' --include='briefs/**' --include='skills/**' --exclude='*' src/ dist/",
31
31
  "build": "npm run build:clean && npm run build:compile && npm run build:complete --if-present",
32
32
  "test:commits": "LAST_TAG=$(git describe --tags --abbrev=0 @^ 2> /dev/null || git rev-list --max-parents=0 HEAD) && npx commitlint --from $LAST_TAG --to HEAD --verbose",
33
33
  "test:types": "tsc -p ./tsconfig.json --noEmit",
34
34
  "test:format": "npm run test:format:biome",
35
35
  "test:lint:deps": "npx depcheck -c ./.depcheckrc.yml",
36
- "test:integration:hold": "jest -c ./jest.integration.config.ts --forceExit --verbose --passWithNoTests $([ -z $THOROUGH ] && echo '--changedSince=main')",
37
36
  "test:lint:biome": "biome check --diagnostic-level=error",
38
37
  "test:lint:biome:all": "biome check",
39
38
  "test:lint": "npm run test:lint:biome && npm run test:lint:deps",
40
39
  "test:unit": "jest -c ./jest.unit.config.ts --forceExit --verbose --passWithNoTests $([ -z $THOROUGH ] && echo '--changedSince=main') $([ -n $RESNAP ] && echo '--updateSnapshot')",
41
- "test:integration": "echo 'todo: release'",
40
+ "test:integration": "jest -c ./jest.integration.config.ts --forceExit --verbose --passWithNoTests $([ -z $THOROUGH ] && echo '--changedSince=main') $([ -n $RESNAP ] && echo '--updateSnapshot')",
42
41
  "test:acceptance:locally": "npm run build && LOCALLY=true jest -c ./jest.acceptance.config.ts --forceExit --verbose --runInBand --passWithNoTests $([ -n $RESNAP ] && echo '--updateSnapshot')",
43
42
  "test": "npm run test:commits && npm run test:types && npm run test:format && npm run test:lint && npm run test:unit && npm run test:integration && npm run test:acceptance:locally",
44
43
  "test:acceptance": "npm run build && jest -c ./jest.acceptance.config.ts --forceExit --verbose --runInBand --passWithNoTests $([ -n $RESNAP ] && echo '--updateSnapshot')",
@@ -52,6 +51,7 @@
52
51
  "prepare:rhachet": "rhachet init && rhachet roles link --role mechanic && rhachet roles link --role behaver && rhachet roles init --role mechanic"
53
52
  },
54
53
  "dependencies": {
54
+ "@anthropic-ai/sdk": "0.51.0",
55
55
  "@ehmpathy/as-command": "1.0.3",
56
56
  "@ehmpathy/uni-time": "1.8.1",
57
57
  "as-procedure": "1.1.7",
@@ -67,9 +67,12 @@
67
67
  "simple-in-memory-cache": "0.4.0",
68
68
  "type-fns": "1.21.0",
69
69
  "with-simple-caching": "0.14.2",
70
- "wrapper-fns": "1.1.0"
70
+ "wrapper-fns": "1.1.0",
71
+ "zod": "3.25.76",
72
+ "zod-to-json-schema": "3.25.0"
71
73
  },
72
74
  "devDependencies": {
75
+ "@anthropic-ai/claude-code": "2.0.76",
73
76
  "@biomejs/biome": "2.3.8",
74
77
  "@commitlint/cli": "19.5.0",
75
78
  "@commitlint/config-conventional": "19.5.0",
@@ -89,8 +92,8 @@
89
92
  "husky": "8.0.3",
90
93
  "jest": "30.2.0",
91
94
  "rhachet": "1.15.0",
92
- "rhachet-roles-ehmpathy": "1.15.14",
93
- "test-fns": "1.6.0",
95
+ "rhachet-roles-ehmpathy": "1.15.15",
96
+ "test-fns": "1.7.2",
94
97
  "tsc-alias": "1.8.10",
95
98
  "tsx": "4.20.6",
96
99
  "typescript": "5.4.5",
package/readme.md CHANGED
@@ -38,6 +38,12 @@ Used to navigate through concept space. See src/roles/thinker/briefs/cognition f
38
38
  ## 📚 Librarian
39
39
 
40
40
  Used to curate knowledge and context. see src/roles/thinker/briefs/librarian.context and src/roles/thinker/briefs/librarian.tactics for details.
41
+
42
+ ---
43
+
44
+ ## 🔍 Reviewer
45
+
46
+ Used to review artifacts against declared rules. Designed to be composed into review skills for other roles.
41
47
  ```
42
48
 
43
49
  ## `ask -r thinker -s instantiate`
@@ -89,3 +95,52 @@ npx rhachet ask -r thinker -s articulate \
89
95
  how to identify a sea turtle?
90
96
  "
91
97
  ```
98
+
99
+ ## `run --repo bhrain --skill review`
100
+
101
+ reviews artifacts against rules using claude-code as the brain. designed to be composed into review skills for other roles.
102
+
103
+ ```sh
104
+ npx rhachet run --repo bhrain --skill review --mode hard --diffs uptil-main --paths '!pnpm-lock.yaml'
105
+ ```
106
+
107
+ produces
108
+
109
+ ```
110
+ 🌊 skill "review" from repo=bhrain role=reviewer
111
+
112
+ 🔭 metrics.expected
113
+ ├─ files
114
+ │ ├─ rules: 60
115
+ │ └─ targets: 69
116
+ ├─ tokens
117
+ │ ├─ estimate: 73122
118
+ │ └─ context: 36.6%
119
+ └─ cost
120
+ └─ estimate: $0.3290
121
+
122
+ 🪵 logs
123
+ ├─ scope: .log/bhrain/review/2025-12-23T00-39-00-673Z/input.scope.json
124
+ ├─ metrics: .log/bhrain/review/2025-12-23T00-39-00-673Z/metrics.expected.json
125
+ └─ tokens: .log/bhrain/review/2025-12-23T00-39-00-673Z/tokens.expected.md
126
+
127
+ 🐢 let's review!
128
+ └─ elapsed: 85s ✓
129
+
130
+ ✨ metrics.realized
131
+ ├─ tokens
132
+ │ ├─ input: 2
133
+ │ ├─ cache.write: 144578
134
+ │ ├─ cache.read: 14316
135
+ │ └─ output: 1090
136
+ └─ cost
137
+ ├─ input: $0.0000
138
+ ├─ cache.write: $0.5422
139
+ ├─ cache.read: $0.0043
140
+ ├─ output: $0.0164
141
+ └─ total: $0.5629
142
+
143
+ 🌊 output
144
+ ├─ logs: .log/bhrain/review/2025-12-23T00-39-00-673Z
145
+ └─ review: .review/bhrain/v2025-12-23T00-39-00-645Z/[feedback].[given].by_robot.md
146
+ ```