rhachet-roles-bhrain 0.3.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 (240) hide show
  1. package/dist/access/sdk/sdkOpenAi.d.ts +25 -0
  2. package/dist/access/sdk/sdkOpenAi.js +122 -0
  3. package/dist/access/sdk/sdkOpenAi.js.map +1 -1
  4. package/dist/access/sdks/anthropic/sdkAnthropic.d.ts +31 -0
  5. package/dist/access/sdks/anthropic/sdkAnthropic.js +151 -0
  6. package/dist/access/sdks/anthropic/sdkAnthropic.js.map +1 -0
  7. package/dist/access/sdks/qwen/sdkQwen.d.ts +31 -0
  8. package/dist/access/sdks/qwen/sdkQwen.js +134 -0
  9. package/dist/access/sdks/qwen/sdkQwen.js.map +1 -0
  10. package/dist/domain.objects/BrainArch1/BrainArch1Actor.d.ts +67 -0
  11. package/dist/domain.objects/BrainArch1/BrainArch1Actor.js +12 -0
  12. package/dist/domain.objects/BrainArch1/BrainArch1Actor.js.map +1 -0
  13. package/dist/domain.objects/BrainArch1/BrainArch1Atom.d.ts +40 -0
  14. package/dist/domain.objects/BrainArch1/BrainArch1Atom.js +3 -0
  15. package/dist/domain.objects/BrainArch1/BrainArch1Atom.js.map +1 -0
  16. package/dist/domain.objects/BrainArch1/BrainArch1Context.d.ts +30 -0
  17. package/dist/domain.objects/BrainArch1/BrainArch1Context.js +3 -0
  18. package/dist/domain.objects/BrainArch1/BrainArch1Context.js.map +1 -0
  19. package/dist/domain.objects/BrainArch1/BrainArch1LoopIteration.d.ts +34 -0
  20. package/dist/domain.objects/BrainArch1/BrainArch1LoopIteration.js +8 -0
  21. package/dist/domain.objects/BrainArch1/BrainArch1LoopIteration.js.map +1 -0
  22. package/dist/domain.objects/BrainArch1/BrainArch1LoopIterationCompletedEvent.d.ts +23 -0
  23. package/dist/domain.objects/BrainArch1/BrainArch1LoopIterationCompletedEvent.js +9 -0
  24. package/dist/domain.objects/BrainArch1/BrainArch1LoopIterationCompletedEvent.js.map +1 -0
  25. package/dist/domain.objects/BrainArch1/BrainArch1LoopResult.d.ts +49 -0
  26. package/dist/domain.objects/BrainArch1/BrainArch1LoopResult.js +8 -0
  27. package/dist/domain.objects/BrainArch1/BrainArch1LoopResult.js.map +1 -0
  28. package/dist/domain.objects/BrainArch1/BrainArch1MemoryCompactedEvent.d.ts +31 -0
  29. package/dist/domain.objects/BrainArch1/BrainArch1MemoryCompactedEvent.js +9 -0
  30. package/dist/domain.objects/BrainArch1/BrainArch1MemoryCompactedEvent.js.map +1 -0
  31. package/dist/domain.objects/BrainArch1/BrainArch1MemoryCompactionResult.d.ts +27 -0
  32. package/dist/domain.objects/BrainArch1/BrainArch1MemoryCompactionResult.js +8 -0
  33. package/dist/domain.objects/BrainArch1/BrainArch1MemoryCompactionResult.js.map +1 -0
  34. package/dist/domain.objects/BrainArch1/BrainArch1MemoryManager.d.ts +45 -0
  35. package/dist/domain.objects/BrainArch1/BrainArch1MemoryManager.js +3 -0
  36. package/dist/domain.objects/BrainArch1/BrainArch1MemoryManager.js.map +1 -0
  37. package/dist/domain.objects/BrainArch1/BrainArch1MemoryTokenUsage.d.ts +29 -0
  38. package/dist/domain.objects/BrainArch1/BrainArch1MemoryTokenUsage.js +8 -0
  39. package/dist/domain.objects/BrainArch1/BrainArch1MemoryTokenUsage.js.map +1 -0
  40. package/dist/domain.objects/BrainArch1/BrainArch1PermissionDecision.d.ts +22 -0
  41. package/dist/domain.objects/BrainArch1/BrainArch1PermissionDecision.js +8 -0
  42. package/dist/domain.objects/BrainArch1/BrainArch1PermissionDecision.js.map +1 -0
  43. package/dist/domain.objects/BrainArch1/BrainArch1PermissionGuard.d.ts +30 -0
  44. package/dist/domain.objects/BrainArch1/BrainArch1PermissionGuard.js +3 -0
  45. package/dist/domain.objects/BrainArch1/BrainArch1PermissionGuard.js.map +1 -0
  46. package/dist/domain.objects/BrainArch1/BrainArch1Session.d.ts +47 -0
  47. package/dist/domain.objects/BrainArch1/BrainArch1Session.js +17 -0
  48. package/dist/domain.objects/BrainArch1/BrainArch1Session.js.map +1 -0
  49. package/dist/domain.objects/BrainArch1/BrainArch1SessionMessage.d.ts +34 -0
  50. package/dist/domain.objects/BrainArch1/BrainArch1SessionMessage.js +12 -0
  51. package/dist/domain.objects/BrainArch1/BrainArch1SessionMessage.js.map +1 -0
  52. package/dist/domain.objects/BrainArch1/BrainArch1ToolCall.d.ts +21 -0
  53. package/dist/domain.objects/BrainArch1/BrainArch1ToolCall.js +8 -0
  54. package/dist/domain.objects/BrainArch1/BrainArch1ToolCall.js.map +1 -0
  55. package/dist/domain.objects/BrainArch1/BrainArch1ToolDefinition.d.ts +54 -0
  56. package/dist/domain.objects/BrainArch1/BrainArch1ToolDefinition.js +20 -0
  57. package/dist/domain.objects/BrainArch1/BrainArch1ToolDefinition.js.map +1 -0
  58. package/dist/domain.objects/BrainArch1/BrainArch1ToolExecutionCompletedEvent.d.ts +36 -0
  59. package/dist/domain.objects/BrainArch1/BrainArch1ToolExecutionCompletedEvent.js +9 -0
  60. package/dist/domain.objects/BrainArch1/BrainArch1ToolExecutionCompletedEvent.js.map +1 -0
  61. package/dist/domain.objects/BrainArch1/BrainArch1ToolResult.d.ts +25 -0
  62. package/dist/domain.objects/BrainArch1/BrainArch1ToolResult.js +8 -0
  63. package/dist/domain.objects/BrainArch1/BrainArch1ToolResult.js.map +1 -0
  64. package/dist/domain.objects/BrainArch1/BrainArch1Toolbox.d.ts +31 -0
  65. package/dist/domain.objects/BrainArch1/BrainArch1Toolbox.js +3 -0
  66. package/dist/domain.objects/BrainArch1/BrainArch1Toolbox.js.map +1 -0
  67. package/dist/domain.objects/Reviewer/ReviewerReflectManifest.d.ts +44 -0
  68. package/dist/domain.objects/Reviewer/ReviewerReflectManifest.js +8 -0
  69. package/dist/domain.objects/Reviewer/ReviewerReflectManifest.js.map +1 -0
  70. package/dist/domain.objects/Reviewer/ReviewerReflectManifestOperation.d.ts +30 -0
  71. package/dist/domain.objects/Reviewer/ReviewerReflectManifestOperation.js +35 -0
  72. package/dist/domain.objects/Reviewer/ReviewerReflectManifestOperation.js.map +1 -0
  73. package/dist/domain.objects/Reviewer/ReviewerReflectMetrics.d.ts +89 -0
  74. package/dist/domain.objects/Reviewer/ReviewerReflectMetrics.js +8 -0
  75. package/dist/domain.objects/Reviewer/ReviewerReflectMetrics.js.map +1 -0
  76. package/dist/domain.objects/Reviewer/ReviewerReflectRuleProposal.d.ts +43 -0
  77. package/dist/domain.objects/Reviewer/ReviewerReflectRuleProposal.js +8 -0
  78. package/dist/domain.objects/Reviewer/ReviewerReflectRuleProposal.js.map +1 -0
  79. package/dist/domain.operations/artifact/genLoopFeedback.js +1 -1
  80. package/dist/domain.operations/artifact/genLoopFeedback.js.map +1 -1
  81. package/dist/domain.operations/artifact/genStepGrabCallerFeedbackToArtifact.d.ts +1 -1
  82. package/dist/domain.operations/brain.replic.arch1/core/invokeBrainArch1.d.ts +13 -0
  83. package/dist/domain.operations/brain.replic.arch1/core/invokeBrainArch1.js +106 -0
  84. package/dist/domain.operations/brain.replic.arch1/core/invokeBrainArch1.js.map +1 -0
  85. package/dist/domain.operations/brain.replic.arch1/llm/generateBrainArch1LlmResponse.d.ts +18 -0
  86. package/dist/domain.operations/brain.replic.arch1/llm/generateBrainArch1LlmResponse.js +16 -0
  87. package/dist/domain.operations/brain.replic.arch1/llm/generateBrainArch1LlmResponse.js.map +1 -0
  88. package/dist/domain.operations/brain.replic.arch1/loop/iterateBrainArch1Loop.d.ts +30 -0
  89. package/dist/domain.operations/brain.replic.arch1/loop/iterateBrainArch1Loop.js +71 -0
  90. package/dist/domain.operations/brain.replic.arch1/loop/iterateBrainArch1Loop.js.map +1 -0
  91. package/dist/domain.operations/brain.replic.arch1/loop/runBrainArch1Loop.d.ts +20 -0
  92. package/dist/domain.operations/brain.replic.arch1/loop/runBrainArch1Loop.js +90 -0
  93. package/dist/domain.operations/brain.replic.arch1/loop/runBrainArch1Loop.js.map +1 -0
  94. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/anthropic.d.ts +8 -0
  95. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/anthropic.js +31 -0
  96. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/anthropic.js.map +1 -0
  97. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/index.d.ts +3 -0
  98. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/index.js +10 -0
  99. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/index.js.map +1 -0
  100. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/openai.d.ts +8 -0
  101. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/openai.js +31 -0
  102. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/openai.js.map +1 -0
  103. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/qwen.d.ts +8 -0
  104. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/qwen.js +32 -0
  105. package/dist/domain.operations/brain.replic.arch1/plugins/atoms/qwen.js.map +1 -0
  106. package/dist/domain.operations/brain.replic.arch1/plugins/memoryManagers/slidingWindow.d.ts +6 -0
  107. package/dist/domain.operations/brain.replic.arch1/plugins/memoryManagers/slidingWindow.js +80 -0
  108. package/dist/domain.operations/brain.replic.arch1/plugins/memoryManagers/slidingWindow.js.map +1 -0
  109. package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/allowAll.d.ts +6 -0
  110. package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/allowAll.js +14 -0
  111. package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/allowAll.js.map +1 -0
  112. package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/promptUser.d.ts +8 -0
  113. package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/promptUser.js +52 -0
  114. package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/promptUser.js.map +1 -0
  115. package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/readOnly.d.ts +8 -0
  116. package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/readOnly.js +38 -0
  117. package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/readOnly.js.map +1 -0
  118. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/bash/exec.d.ts +33 -0
  119. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/bash/exec.js +100 -0
  120. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/bash/exec.js.map +1 -0
  121. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/bash/index.d.ts +6 -0
  122. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/bash/index.js +26 -0
  123. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/bash/index.js.map +1 -0
  124. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/edit.d.ts +41 -0
  125. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/edit.js +107 -0
  126. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/edit.js.map +1 -0
  127. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/glob.d.ts +33 -0
  128. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/glob.js +68 -0
  129. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/glob.js.map +1 -0
  130. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/grep.d.ts +41 -0
  131. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/grep.js +97 -0
  132. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/grep.js.map +1 -0
  133. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/index.d.ts +6 -0
  134. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/index.js +65 -0
  135. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/index.js.map +1 -0
  136. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/read.d.ts +37 -0
  137. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/read.js +96 -0
  138. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/read.js.map +1 -0
  139. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/write.d.ts +33 -0
  140. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/write.js +81 -0
  141. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/write.js.map +1 -0
  142. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/fetch.d.ts +33 -0
  143. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/fetch.js +113 -0
  144. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/fetch.js.map +1 -0
  145. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/index.d.ts +6 -0
  146. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/index.js +36 -0
  147. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/index.js.map +1 -0
  148. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/search.d.ts +36 -0
  149. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/search.js +101 -0
  150. package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/search.js.map +1 -0
  151. package/dist/domain.operations/brain.replic.arch1/tool/executeBrainArch1ToolCall.d.ts +14 -0
  152. package/dist/domain.operations/brain.replic.arch1/tool/executeBrainArch1ToolCall.js +45 -0
  153. package/dist/domain.operations/brain.replic.arch1/tool/executeBrainArch1ToolCall.js.map +1 -0
  154. package/dist/domain.operations/brain.replic.arch1/tool/mergeBrainArch1Toolboxes.d.ts +19 -0
  155. package/dist/domain.operations/brain.replic.arch1/tool/mergeBrainArch1Toolboxes.js +35 -0
  156. package/dist/domain.operations/brain.replic.arch1/tool/mergeBrainArch1Toolboxes.js.map +1 -0
  157. package/dist/domain.operations/git/genGitHubFileUrl.d.ts +9 -0
  158. package/dist/domain.operations/git/genGitHubFileUrl.js +55 -0
  159. package/dist/domain.operations/git/genGitHubFileUrl.js.map +1 -0
  160. package/dist/domain.operations/git/getGitRemoteUrl.d.ts +7 -0
  161. package/dist/domain.operations/git/getGitRemoteUrl.js +40 -0
  162. package/dist/domain.operations/git/getGitRemoteUrl.js.map +1 -0
  163. package/dist/domain.operations/hooks/getInvokeHooks.js +1 -1
  164. package/dist/domain.operations/hooks/getInvokeHooks.js.map +1 -1
  165. package/dist/domain.operations/reflect/createDraftDirectory.d.ts +11 -0
  166. package/dist/domain.operations/reflect/createDraftDirectory.js +46 -0
  167. package/dist/domain.operations/reflect/createDraftDirectory.js.map +1 -0
  168. package/dist/domain.operations/reflect/enumFeedbackFiles.d.ts +7 -0
  169. package/dist/domain.operations/reflect/enumFeedbackFiles.js +69 -0
  170. package/dist/domain.operations/reflect/enumFeedbackFiles.js.map +1 -0
  171. package/dist/domain.operations/reflect/extractJsonFromResultText.d.ts +7 -0
  172. package/dist/domain.operations/reflect/extractJsonFromResultText.js +19 -0
  173. package/dist/domain.operations/reflect/extractJsonFromResultText.js.map +1 -0
  174. package/dist/domain.operations/reflect/invokeClaudeCodeForReflect.d.ts +46 -0
  175. package/dist/domain.operations/reflect/invokeClaudeCodeForReflect.js +120 -0
  176. package/dist/domain.operations/reflect/invokeClaudeCodeForReflect.js.map +1 -0
  177. package/dist/domain.operations/reflect/metrics/computeMetricsExpected.d.ts +12 -0
  178. package/dist/domain.operations/reflect/metrics/computeMetricsExpected.js +28 -0
  179. package/dist/domain.operations/reflect/metrics/computeMetricsExpected.js.map +1 -0
  180. package/dist/domain.operations/reflect/metrics/computeMetricsRealized.d.ts +26 -0
  181. package/dist/domain.operations/reflect/metrics/computeMetricsRealized.js +66 -0
  182. package/dist/domain.operations/reflect/metrics/computeMetricsRealized.js.map +1 -0
  183. package/dist/domain.operations/reflect/metrics/writeLogArtifact.d.ts +17 -0
  184. package/dist/domain.operations/reflect/metrics/writeLogArtifact.js +93 -0
  185. package/dist/domain.operations/reflect/metrics/writeLogArtifact.js.map +1 -0
  186. package/dist/domain.operations/reflect/step1/compileCitationsMarkdown.d.ts +8 -0
  187. package/dist/domain.operations/reflect/step1/compileCitationsMarkdown.js +28 -0
  188. package/dist/domain.operations/reflect/step1/compileCitationsMarkdown.js.map +1 -0
  189. package/dist/domain.operations/reflect/step1/compileReflectStep1Prompt.d.ts +14 -0
  190. package/dist/domain.operations/reflect/step1/compileReflectStep1Prompt.js +93 -0
  191. package/dist/domain.operations/reflect/step1/compileReflectStep1Prompt.js.map +1 -0
  192. package/dist/domain.operations/reflect/step2/compileReflectStep2Prompt.d.ts +18 -0
  193. package/dist/domain.operations/reflect/step2/compileReflectStep2Prompt.js +208 -0
  194. package/dist/domain.operations/reflect/step2/compileReflectStep2Prompt.js.map +1 -0
  195. package/dist/domain.operations/reflect/step2/executeManifestOperations.d.ts +17 -0
  196. package/dist/domain.operations/reflect/step2/executeManifestOperations.js +189 -0
  197. package/dist/domain.operations/reflect/step2/executeManifestOperations.js.map +1 -0
  198. package/dist/domain.operations/reflect/step2/parseManifestOperations.d.ts +8 -0
  199. package/dist/domain.operations/reflect/step2/parseManifestOperations.js +73 -0
  200. package/dist/domain.operations/reflect/step2/parseManifestOperations.js.map +1 -0
  201. package/dist/domain.operations/reflect/validateSourceDirectory.d.ts +9 -0
  202. package/dist/domain.operations/reflect/validateSourceDirectory.js +63 -0
  203. package/dist/domain.operations/reflect/validateSourceDirectory.js.map +1 -0
  204. package/dist/domain.operations/reflect/validateTargetDirectory.d.ts +10 -0
  205. package/dist/domain.operations/reflect/validateTargetDirectory.js +59 -0
  206. package/dist/domain.operations/reflect/validateTargetDirectory.js.map +1 -0
  207. package/dist/index.js.map +1 -1
  208. package/dist/roles/architect/getArchitectRole.d.ts +6 -0
  209. package/dist/roles/architect/getArchitectRole.js +31 -0
  210. package/dist/roles/architect/getArchitectRole.js.map +1 -0
  211. package/dist/roles/brain/getBrainRole.d.ts +6 -0
  212. package/dist/roles/brain/getBrainRole.js +28 -0
  213. package/dist/roles/brain/getBrainRole.js.map +1 -0
  214. package/dist/roles/brain/skills/act/skillAct.d.ts +5 -0
  215. package/dist/roles/brain/skills/act/skillAct.js +147 -0
  216. package/dist/roles/brain/skills/act/skillAct.js.map +1 -0
  217. package/dist/roles/brain/skills/act/skillAct.ts +186 -0
  218. package/dist/roles/brain/skills/act/stepAct.d.ts +27 -0
  219. package/dist/roles/brain/skills/act/stepAct.js +95 -0
  220. package/dist/roles/brain/skills/act/stepAct.js.map +1 -0
  221. package/dist/roles/brain/skills/act/stepAct.ts +123 -0
  222. package/dist/roles/getRoleRegistry.js +5 -4
  223. package/dist/roles/getRoleRegistry.js.map +1 -1
  224. package/dist/roles/reviewer/briefs/on.rules/rules101.[article].md +41 -0
  225. package/dist/roles/reviewer/briefs/on.rules/rules101.citations.[article].md +88 -0
  226. package/dist/roles/reviewer/briefs/on.rules/rules101.collocated.[article].md +97 -0
  227. package/dist/roles/reviewer/briefs/on.rules/rules101.content.[article].md +228 -0
  228. package/dist/roles/reviewer/briefs/on.rules/rules101.content.[demo].forbid.failhide.md +87 -0
  229. package/dist/roles/reviewer/briefs/on.rules/rules101.content.[demo].forbid.gerunds.md +85 -0
  230. package/dist/roles/reviewer/briefs/on.rules/rules101.content.[demo].require.failfast.md +73 -0
  231. package/dist/roles/reviewer/briefs/on.rules/rules101.structure.[article].md +70 -0
  232. package/dist/roles/reviewer/skills/reflect/reflect.d.ts +30 -0
  233. package/dist/roles/reviewer/skills/reflect/reflect.js +305 -0
  234. package/dist/roles/reviewer/skills/reflect/reflect.js.map +1 -0
  235. package/dist/roles/reviewer/skills/reflect/reflect.sh +38 -0
  236. package/dist/roles/reviewer/skills/reflect/reflect.ts +356 -0
  237. package/dist/roles/thinker/getThinkerBrief.d.ts +1 -1
  238. package/dist/roles/thinker/getThinkerRole.js +8 -8
  239. package/dist/roles/thinker/getThinkerRole.js.map +1 -1
  240. package/package.json +5 -3
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.invokeClaudeCodeForReflect = void 0;
4
+ const child_process_1 = require("child_process");
5
+ const helpful_errors_1 = require("helpful-errors");
6
+ const extractJsonFromResultText_1 = require("./extractJsonFromResultText");
7
+ /**
8
+ * .what = invokes claude-code cli for reflect step
9
+ * .why = executes brain invocation via claude-code print mode
10
+ */
11
+ const invokeClaudeCodeForReflect = async (input) => {
12
+ // determine model and settings based on rapid flag
13
+ // note: both models need enough turns to write multiple rules
14
+ const model = input.rapid ? 'haiku' : 'sonnet';
15
+ const maxTurns = input.rapid ? '50' : '30';
16
+ // invoke claude-code cli via stdin to avoid E2BIG on large prompts
17
+ const output = await new Promise((resolve, reject) => {
18
+ const child = (0, child_process_1.spawn)('claude', [
19
+ '-p',
20
+ '-',
21
+ '--output-format',
22
+ 'json',
23
+ '--allowedTools',
24
+ 'Write',
25
+ '--model',
26
+ model,
27
+ '--max-turns',
28
+ maxTurns,
29
+ ], {
30
+ cwd: input.cwd,
31
+ });
32
+ let stdout = '';
33
+ let stderr = '';
34
+ child.stdout.on('data', (data) => {
35
+ stdout += data.toString();
36
+ });
37
+ child.stderr.on('data', (data) => {
38
+ stderr += data.toString();
39
+ });
40
+ child.on('error', reject);
41
+ child.on('close', (code) => {
42
+ if (code !== 0) {
43
+ // check for prompt too long error
44
+ if (stdout.includes('Prompt is too long')) {
45
+ reject(new helpful_errors_1.BadRequestError('prompt is too long for claude context window; reduce scope', {
46
+ status: code,
47
+ hint: 'try narrowing your feedback scope',
48
+ }));
49
+ return;
50
+ }
51
+ reject(new helpful_errors_1.UnexpectedCodePathError('claude-code exited with non-zero', {
52
+ status: code,
53
+ stdout: stdout.slice(0, 2000),
54
+ stderr: stderr.slice(0, 2000),
55
+ }));
56
+ return;
57
+ }
58
+ resolve(stdout);
59
+ });
60
+ // write prompt to stdin and close
61
+ child.stdin.write(input.prompt);
62
+ child.stdin.end();
63
+ });
64
+ // parse the json response from claude-code
65
+ const claudeResponse = (() => {
66
+ try {
67
+ return JSON.parse(output);
68
+ }
69
+ catch {
70
+ throw new helpful_errors_1.UnexpectedCodePathError('failed to parse claude-code response', { output: output.slice(0, 2000) });
71
+ }
72
+ })();
73
+ // extract the result text from claude-code response
74
+ const resultText = (() => {
75
+ // claude-code json output has a 'result' field with the text content
76
+ if (claudeResponse.result && typeof claudeResponse.result === 'string') {
77
+ return claudeResponse.result;
78
+ }
79
+ // fallback: look for text in message content
80
+ if (claudeResponse.content && Array.isArray(claudeResponse.content)) {
81
+ const textContent = claudeResponse.content.find((c) => c.type === 'text');
82
+ if (textContent?.text) {
83
+ return textContent.text;
84
+ }
85
+ }
86
+ throw new helpful_errors_1.UnexpectedCodePathError('failed to extract result from response', {
87
+ claudeResponse,
88
+ });
89
+ })();
90
+ // extract JSON from result text (may be wrapped in markdown code block or inline backticks)
91
+ const jsonContent = (0, extractJsonFromResultText_1.extractJsonFromResultText)({ resultText });
92
+ // parse the extracted JSON
93
+ const response = (() => {
94
+ try {
95
+ return JSON.parse(jsonContent);
96
+ }
97
+ catch {
98
+ throw new helpful_errors_1.UnexpectedCodePathError('failed to parse JSON from result', {
99
+ resultText: resultText.slice(0, 2000),
100
+ jsonContent: jsonContent.slice(0, 2000),
101
+ });
102
+ }
103
+ })();
104
+ // extract usage from response
105
+ const usage = (() => {
106
+ if (!claudeResponse.usage)
107
+ throw new helpful_errors_1.UnexpectedCodePathError('response.usage not found', {
108
+ claudeResponse,
109
+ });
110
+ return {
111
+ input: claudeResponse.usage.input_tokens ?? 0,
112
+ cacheWrite: claudeResponse.usage.cache_creation_input_tokens ?? 0,
113
+ cacheRead: claudeResponse.usage.cache_read_input_tokens ?? 0,
114
+ output: claudeResponse.usage.output_tokens ?? 0,
115
+ };
116
+ })();
117
+ return { response, usage };
118
+ };
119
+ exports.invokeClaudeCodeForReflect = invokeClaudeCodeForReflect;
120
+ //# sourceMappingURL=invokeClaudeCodeForReflect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invokeClaudeCodeForReflect.js","sourceRoot":"","sources":["../../../src/domain.operations/reflect/invokeClaudeCodeForReflect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * .what = estimates tokens and cost before reflect execution
3
+ * .why = enables context window check and cost preview
4
+ */
5
+ export declare const computeMetricsExpected: (input: {
6
+ step1PromptTokens: number;
7
+ step2PromptTokens: number;
8
+ }) => {
9
+ tokens: number;
10
+ contextWindowPercent: number;
11
+ cost: number;
12
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.computeMetricsExpected = void 0;
4
+ /**
5
+ * .what = estimates tokens and cost before reflect execution
6
+ * .why = enables context window check and cost preview
7
+ */
8
+ const computeMetricsExpected = (input) => {
9
+ // claude sonnet context window is 200k tokens
10
+ const contextWindow = 200000;
11
+ // estimate output tokens as ~30% of input
12
+ const estimatedOutputTokens = (input.step1PromptTokens + input.step2PromptTokens) * 0.3;
13
+ // total tokens includes input + estimated output
14
+ const tokens = input.step1PromptTokens + input.step2PromptTokens + estimatedOutputTokens;
15
+ // context window usage as percentage
16
+ const contextWindowPercent = (tokens / contextWindow) * 100;
17
+ // claude sonnet pricing: $3/1M input, $15/1M output
18
+ const inputCost = ((input.step1PromptTokens + input.step2PromptTokens) / 1000000) * 3;
19
+ const outputCost = (estimatedOutputTokens / 1000000) * 15;
20
+ const cost = inputCost + outputCost;
21
+ return {
22
+ tokens: Math.round(tokens),
23
+ contextWindowPercent: Math.round(contextWindowPercent * 100) / 100,
24
+ cost: Math.round(cost * 1000) / 1000,
25
+ };
26
+ };
27
+ exports.computeMetricsExpected = computeMetricsExpected;
28
+ //# sourceMappingURL=computeMetricsExpected.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeMetricsExpected.js","sourceRoot":"","sources":["../../../../src/domain.operations/reflect/metrics/computeMetricsExpected.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACI,MAAM,sBAAsB,GAAG,CAAC,KAGtC,EAIC,EAAE;IACF,8CAA8C;IAC9C,MAAM,aAAa,GAAG,MAAO,CAAC;IAE9B,0CAA0C;IAC1C,MAAM,qBAAqB,GACzB,CAAC,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAC;IAE5D,iDAAiD;IACjD,MAAM,MAAM,GACV,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,GAAG,qBAAqB,CAAC;IAE5E,qCAAqC;IACrC,MAAM,oBAAoB,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC;IAE5D,oDAAoD;IACpD,MAAM,SAAS,GACb,CAAC,CAAC,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,OAAS,CAAC,GAAG,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,CAAC,qBAAqB,GAAG,OAAS,CAAC,GAAG,EAAE,CAAC;IAC5D,MAAM,IAAI,GAAG,SAAS,GAAG,UAAU,CAAC;IAEpC,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC1B,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,GAAG,CAAC,GAAG,GAAG;QAClE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI;KACrC,CAAC;AACJ,CAAC,CAAC;AAjCW,QAAA,sBAAsB,0BAiCjC"}
@@ -0,0 +1,26 @@
1
+ import type { ReviewerReflectCostMetrics, ReviewerReflectTokenMetrics } from '../../../domain.objects/Reviewer/ReviewerReflectMetrics';
2
+ /**
3
+ * .what = computes actual metrics from brain responses
4
+ * .why = enables accurate cost track after execution
5
+ */
6
+ export declare const computeMetricsRealized: (input: {
7
+ step1: {
8
+ tokens: ReviewerReflectTokenMetrics;
9
+ };
10
+ step2: {
11
+ tokens: ReviewerReflectTokenMetrics;
12
+ };
13
+ }) => {
14
+ step1: {
15
+ tokens: ReviewerReflectTokenMetrics;
16
+ cost: ReviewerReflectCostMetrics;
17
+ };
18
+ step2: {
19
+ tokens: ReviewerReflectTokenMetrics;
20
+ cost: ReviewerReflectCostMetrics;
21
+ };
22
+ total: {
23
+ tokens: ReviewerReflectTokenMetrics;
24
+ cost: ReviewerReflectCostMetrics;
25
+ };
26
+ };
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.computeMetricsRealized = void 0;
4
+ /**
5
+ * .what = computes actual metrics from brain responses
6
+ * .why = enables accurate cost track after execution
7
+ */
8
+ const computeMetricsRealized = (input) => {
9
+ // compute costs for step 1
10
+ const step1Cost = computeStepCost(input.step1.tokens);
11
+ // compute costs for step 2
12
+ const step2Cost = computeStepCost(input.step2.tokens);
13
+ // compute total tokens
14
+ const totalTokens = {
15
+ input: input.step1.tokens.input + input.step2.tokens.input,
16
+ cacheWrite: input.step1.tokens.cacheWrite + input.step2.tokens.cacheWrite,
17
+ cacheRead: input.step1.tokens.cacheRead + input.step2.tokens.cacheRead,
18
+ output: input.step1.tokens.output + input.step2.tokens.output,
19
+ };
20
+ // compute total cost
21
+ const totalCost = {
22
+ input: step1Cost.input + step2Cost.input,
23
+ cacheWrite: step1Cost.cacheWrite + step2Cost.cacheWrite,
24
+ cacheRead: step1Cost.cacheRead + step2Cost.cacheRead,
25
+ output: step1Cost.output + step2Cost.output,
26
+ total: step1Cost.total + step2Cost.total,
27
+ };
28
+ return {
29
+ step1: {
30
+ tokens: input.step1.tokens,
31
+ cost: step1Cost,
32
+ },
33
+ step2: {
34
+ tokens: input.step2.tokens,
35
+ cost: step2Cost,
36
+ },
37
+ total: {
38
+ tokens: totalTokens,
39
+ cost: totalCost,
40
+ },
41
+ };
42
+ };
43
+ exports.computeMetricsRealized = computeMetricsRealized;
44
+ /**
45
+ * .what = computes cost for a single step
46
+ * .why = applies claude sonnet pricing to token counts
47
+ */
48
+ const computeStepCost = (tokens) => {
49
+ // claude sonnet pricing per 1M tokens:
50
+ // - input: $3
51
+ // - cache write: $3.75
52
+ // - cache read: $0.30
53
+ // - output: $15
54
+ const inputCost = (tokens.input / 1000000) * 3;
55
+ const cacheWriteCost = (tokens.cacheWrite / 1000000) * 3.75;
56
+ const cacheReadCost = (tokens.cacheRead / 1000000) * 0.3;
57
+ const outputCost = (tokens.output / 1000000) * 15;
58
+ return {
59
+ input: Math.round(inputCost * 10000) / 10000,
60
+ cacheWrite: Math.round(cacheWriteCost * 10000) / 10000,
61
+ cacheRead: Math.round(cacheReadCost * 10000) / 10000,
62
+ output: Math.round(outputCost * 10000) / 10000,
63
+ total: Math.round((inputCost + cacheWriteCost + cacheReadCost + outputCost) * 10000) / 10000,
64
+ };
65
+ };
66
+ //# sourceMappingURL=computeMetricsRealized.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeMetricsRealized.js","sourceRoot":"","sources":["../../../../src/domain.operations/reflect/metrics/computeMetricsRealized.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { ReviewerReflectMetrics } from '../../../domain.objects/Reviewer/ReviewerReflectMetrics';
2
+ /**
3
+ * .what = writes execution log artifact to draft directory
4
+ * .why = enables review of execution metrics and results
5
+ */
6
+ export declare const writeLogArtifact: (input: {
7
+ draftDir: string;
8
+ metrics: ReviewerReflectMetrics;
9
+ results: {
10
+ created: number;
11
+ updated: number;
12
+ appended: number;
13
+ omitted: number;
14
+ };
15
+ }) => Promise<{
16
+ logPath: string;
17
+ }>;
@@ -0,0 +1,93 @@
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
+ exports.writeLogArtifact = void 0;
27
+ const fs = __importStar(require("fs/promises"));
28
+ const path = __importStar(require("path"));
29
+ /**
30
+ * .what = writes execution log artifact to draft directory
31
+ * .why = enables review of execution metrics and results
32
+ */
33
+ const writeLogArtifact = async (input) => {
34
+ // build log content
35
+ const logContent = buildLogContent({
36
+ metrics: input.metrics,
37
+ results: input.results,
38
+ });
39
+ // write to draft directory
40
+ const logPath = path.join(input.draftDir, 'reflect.log.md');
41
+ await fs.writeFile(logPath, logContent, 'utf-8');
42
+ return { logPath };
43
+ };
44
+ exports.writeLogArtifact = writeLogArtifact;
45
+ /**
46
+ * .what = builds markdown content for execution log
47
+ * .why = formats metrics and results for review
48
+ */
49
+ const buildLogContent = (input) => {
50
+ const sections = [];
51
+ // header
52
+ sections.push(`# reviewer.reflect execution log`);
53
+ sections.push(`timestamp: ${new Date().toISOString()}`);
54
+ sections.push('');
55
+ // file counts
56
+ sections.push(`## files`);
57
+ sections.push(`- feedback files: ${input.metrics.files.feedbackCount}`);
58
+ sections.push(`- rules proposed: ${input.metrics.files.rulesCount}`);
59
+ sections.push('');
60
+ // expected metrics
61
+ sections.push(`## expected (pre-execution)`);
62
+ sections.push(`- tokens: ${input.metrics.expected.tokens.toLocaleString()}`);
63
+ sections.push(`- context window: ${input.metrics.expected.contextWindowPercent}%`);
64
+ sections.push(`- estimated cost: $${input.metrics.expected.cost.toFixed(3)}`);
65
+ sections.push('');
66
+ // realized metrics
67
+ sections.push(`## realized (post-execution)`);
68
+ sections.push('');
69
+ sections.push(`### step 1: propose pure rules`);
70
+ sections.push(`- input tokens: ${input.metrics.realized.step1.tokens.input.toLocaleString()}`);
71
+ sections.push(`- output tokens: ${input.metrics.realized.step1.tokens.output.toLocaleString()}`);
72
+ sections.push(`- cost: $${input.metrics.realized.step1.cost.total.toFixed(4)}`);
73
+ sections.push('');
74
+ sections.push(`### step 2: blend with existing`);
75
+ sections.push(`- input tokens: ${input.metrics.realized.step2.tokens.input.toLocaleString()}`);
76
+ sections.push(`- output tokens: ${input.metrics.realized.step2.tokens.output.toLocaleString()}`);
77
+ sections.push(`- cost: $${input.metrics.realized.step2.cost.total.toFixed(4)}`);
78
+ sections.push('');
79
+ sections.push(`### total`);
80
+ sections.push(`- input tokens: ${input.metrics.realized.total.tokens.input.toLocaleString()}`);
81
+ sections.push(`- output tokens: ${input.metrics.realized.total.tokens.output.toLocaleString()}`);
82
+ sections.push(`- total cost: $${input.metrics.realized.total.cost.total.toFixed(4)}`);
83
+ sections.push('');
84
+ // results
85
+ sections.push(`## blend results`);
86
+ sections.push(`- created: ${input.results.created}`);
87
+ sections.push(`- updated: ${input.results.updated}`);
88
+ sections.push(`- appended: ${input.results.appended}`);
89
+ sections.push(`- omitted: ${input.results.omitted}`);
90
+ sections.push('');
91
+ return sections.join('\n');
92
+ };
93
+ //# sourceMappingURL=writeLogArtifact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writeLogArtifact.js","sourceRoot":"","sources":["../../../../src/domain.operations/reflect/metrics/writeLogArtifact.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * .what = generates citations.md content from feedback files
3
+ * .why = creates permanent record of all feedback sources for rule proposals
4
+ */
5
+ export declare const compileCitationsMarkdown: (input: {
6
+ feedbackFiles: string[];
7
+ cwd: string;
8
+ }) => string;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.compileCitationsMarkdown = void 0;
4
+ const genGitHubFileUrl_1 = require("../../../domain.operations/git/genGitHubFileUrl");
5
+ /**
6
+ * .what = generates citations.md content from feedback files
7
+ * .why = creates permanent record of all feedback sources for rule proposals
8
+ */
9
+ const compileCitationsMarkdown = (input) => {
10
+ const lines = [
11
+ '# citations',
12
+ '',
13
+ 'feedback files extracted for rule proposal:',
14
+ '',
15
+ ];
16
+ for (const file of input.feedbackFiles) {
17
+ const url = (0, genGitHubFileUrl_1.genGitHubFileUrl)({ filePath: file, cwd: input.cwd });
18
+ lines.push(`- [${file}](${url})`);
19
+ }
20
+ lines.push('');
21
+ lines.push('---');
22
+ lines.push('');
23
+ lines.push(`generated: ${new Date().toISOString()}`);
24
+ lines.push(`total: ${input.feedbackFiles.length} files`);
25
+ return lines.join('\n');
26
+ };
27
+ exports.compileCitationsMarkdown = compileCitationsMarkdown;
28
+ //# sourceMappingURL=compileCitationsMarkdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compileCitationsMarkdown.js","sourceRoot":"","sources":["../../../../src/domain.operations/reflect/step1/compileCitationsMarkdown.ts"],"names":[],"mappings":";;;AAAA,kFAA+E;AAE/E;;;GAGG;AACI,MAAM,wBAAwB,GAAG,CAAC,KAGxC,EAAU,EAAE;IACX,MAAM,KAAK,GAAa;QACtB,aAAa;QACb,EAAE;QACF,6CAA6C;QAC7C,EAAE;KACH,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,IAAA,mCAAgB,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,aAAa,CAAC,MAAM,QAAQ,CAAC,CAAC;IAEzD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC,CAAC;AAvBW,QAAA,wBAAwB,4BAuBnC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * .what = compiles step 1 brain prompt for rule proposal
3
+ * .why = instructs brain to extract rules from feedback citations
4
+ */
5
+ export declare const compileReflectStep1Prompt: (input: {
6
+ feedbackFiles: string[];
7
+ citationsMarkdown: string;
8
+ draftDir: string;
9
+ cwd: string;
10
+ mode: 'soft' | 'hard';
11
+ }) => Promise<{
12
+ prompt: string;
13
+ tokenEstimate: number;
14
+ }>;
@@ -0,0 +1,93 @@
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
+ exports.compileReflectStep1Prompt = void 0;
27
+ const fs = __importStar(require("fs/promises"));
28
+ const path = __importStar(require("path"));
29
+ /**
30
+ * .what = compiles step 1 brain prompt for rule proposal
31
+ * .why = instructs brain to extract rules from feedback citations
32
+ */
33
+ const compileReflectStep1Prompt = async (input) => {
34
+ const sections = [];
35
+ // objective section
36
+ sections.push(`# objective
37
+
38
+ propose rules from feedback citations.
39
+
40
+ extract generalized insights from the feedback and propose them as rule files.
41
+ do NOT consult any existing rules - propose with fresh perspective.
42
+
43
+ IMPORTANT: you MUST write rule files using the Write tool. do NOT ask clarifying questions.
44
+ if feedback is unclear, skip it - only create rules for clear patterns.
45
+ `);
46
+ // citations section
47
+ sections.push(`# citations
48
+
49
+ ${input.citationsMarkdown}
50
+ `);
51
+ // feedback content (hard mode only)
52
+ if (input.mode === 'hard') {
53
+ sections.push('# feedback content\n');
54
+ for (const file of input.feedbackFiles) {
55
+ const content = await fs.readFile(path.join(input.cwd, file), 'utf-8');
56
+ sections.push(`## ${file}\n\n\`\`\`\n${content}\n\`\`\`\n`);
57
+ }
58
+ }
59
+ // instructions section
60
+ sections.push(`# instructions
61
+
62
+ 1. analyze the feedback citations${input.mode === 'hard' ? ' and content' : ''}
63
+ 2. identify patterns and generalizable insights
64
+ 3. propose rules as \`rule.$directive.$topic.md\` files
65
+ 4. each rule must include:
66
+ - # tldr section with ## severity, .what summary, .why rationale
67
+ - ---\\n---\\n--- separator
68
+ - # deets section with ## .citations which contain a github url and relevant excerpt
69
+ 5. directives: forbid (blocker), require (blocker), avoid (nitpick), prefer (nitpick)
70
+ 6. consolidate multiple feedback citations into single rule where applicable
71
+ 7. be thorough - include code examples and detailed explanations where helpful
72
+
73
+ # output
74
+
75
+ use the Write tool to write each rule file to: ${input.draftDir}/pure/
76
+
77
+ after writing all rules, respond with a JSON summary:
78
+ \`\`\`json
79
+ {
80
+ "rules": [
81
+ { "name": "rule.forbid.example.md" },
82
+ { "name": "rule.require.other.md" }
83
+ ]
84
+ }
85
+ \`\`\`
86
+ `);
87
+ const prompt = sections.join('\n');
88
+ // estimate tokens (rough: 4 chars per token)
89
+ const tokenEstimate = Math.ceil(prompt.length / 4);
90
+ return { prompt, tokenEstimate };
91
+ };
92
+ exports.compileReflectStep1Prompt = compileReflectStep1Prompt;
93
+ //# sourceMappingURL=compileReflectStep1Prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compileReflectStep1Prompt.js","sourceRoot":"","sources":["../../../../src/domain.operations/reflect/step1/compileReflectStep1Prompt.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,2CAA6B;AAE7B;;;GAGG;AACI,MAAM,yBAAyB,GAAG,KAAK,EAAE,KAM/C,EAGE,EAAE;IACH,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,oBAAoB;IACpB,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;CASf,CAAC,CAAC;IAED,oBAAoB;IACpB,QAAQ,CAAC,IAAI,CAAC;;EAEd,KAAK,CAAC,iBAAiB;CACxB,CAAC,CAAC;IAED,oCAAoC;IACpC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YACvE,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,OAAO,YAAY,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,QAAQ,CAAC,IAAI,CAAC;;mCAEmB,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;iDAa7B,KAAK,CAAC,QAAQ;;;;;;;;;;;CAW9D,CAAC,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnC,6CAA6C;IAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEnD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AACnC,CAAC,CAAC;AA1EW,QAAA,yBAAyB,6BA0EpC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * .what = compiles step 2 brain prompt for rule blend
3
+ * .why = instructs brain to create manifest.json for blend operations
4
+ *
5
+ * .note = when rapid=true (haiku), SET_UPDATE is disabled because haiku cannot
6
+ * reliably provide required fields. this means duplicates may be produced
7
+ * when prior rules exist. use rapid=false (sonnet) for proper deduplication.
8
+ */
9
+ export declare const compileReflectStep2Prompt: (input: {
10
+ targetDir: string;
11
+ draftDir: string;
12
+ pureDir: string;
13
+ mode: 'soft' | 'hard';
14
+ rapid?: boolean;
15
+ }) => Promise<{
16
+ prompt: string;
17
+ tokenEstimate: number;
18
+ }>;