rhachet-roles-bhrain 0.3.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) 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/domain.operations/review/compileReviewPrompt.js +16 -5
  208. package/dist/domain.operations/review/compileReviewPrompt.js.map +1 -1
  209. package/dist/domain.operations/review/formatReviewOutput.d.ts +15 -6
  210. package/dist/domain.operations/review/formatReviewOutput.js +15 -17
  211. package/dist/domain.operations/review/formatReviewOutput.js.map +1 -1
  212. package/dist/index.js.map +1 -1
  213. package/dist/roles/architect/getArchitectRole.d.ts +6 -0
  214. package/dist/roles/architect/getArchitectRole.js +31 -0
  215. package/dist/roles/architect/getArchitectRole.js.map +1 -0
  216. package/dist/roles/brain/getBrainRole.d.ts +6 -0
  217. package/dist/roles/brain/getBrainRole.js +28 -0
  218. package/dist/roles/brain/getBrainRole.js.map +1 -0
  219. package/dist/roles/brain/skills/act/skillAct.d.ts +5 -0
  220. package/dist/roles/brain/skills/act/skillAct.js +147 -0
  221. package/dist/roles/brain/skills/act/skillAct.js.map +1 -0
  222. package/dist/roles/brain/skills/act/skillAct.ts +186 -0
  223. package/dist/roles/brain/skills/act/stepAct.d.ts +27 -0
  224. package/dist/roles/brain/skills/act/stepAct.js +95 -0
  225. package/dist/roles/brain/skills/act/stepAct.js.map +1 -0
  226. package/dist/roles/brain/skills/act/stepAct.ts +123 -0
  227. package/dist/roles/getRoleRegistry.js +5 -4
  228. package/dist/roles/getRoleRegistry.js.map +1 -1
  229. package/dist/roles/reviewer/briefs/on.rules/rules101.[article].md +41 -0
  230. package/dist/roles/reviewer/briefs/on.rules/rules101.citations.[article].md +88 -0
  231. package/dist/roles/reviewer/briefs/on.rules/rules101.collocated.[article].md +97 -0
  232. package/dist/roles/reviewer/briefs/on.rules/rules101.content.[article].md +228 -0
  233. package/dist/roles/reviewer/briefs/on.rules/rules101.content.[demo].forbid.failhide.md +87 -0
  234. package/dist/roles/reviewer/briefs/on.rules/rules101.content.[demo].forbid.gerunds.md +85 -0
  235. package/dist/roles/reviewer/briefs/on.rules/rules101.content.[demo].require.failfast.md +73 -0
  236. package/dist/roles/reviewer/briefs/on.rules/rules101.structure.[article].md +70 -0
  237. package/dist/roles/reviewer/skills/reflect/reflect.d.ts +30 -0
  238. package/dist/roles/reviewer/skills/reflect/reflect.js +305 -0
  239. package/dist/roles/reviewer/skills/reflect/reflect.js.map +1 -0
  240. package/dist/roles/reviewer/skills/reflect/reflect.sh +38 -0
  241. package/dist/roles/reviewer/skills/reflect/reflect.ts +356 -0
  242. package/dist/roles/reviewer/skills/review/review.js.map +1 -1
  243. package/dist/roles/reviewer/skills/review/review.ts +12 -3
  244. package/dist/roles/thinker/getThinkerBrief.d.ts +1 -1
  245. package/dist/roles/thinker/getThinkerRole.js +8 -8
  246. package/dist/roles/thinker/getThinkerRole.js.map +1 -1
  247. package/package.json +6 -4
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.invokeBrainArch1 = void 0;
4
+ const helpful_errors_1 = require("helpful-errors");
5
+ const BrainArch1LoopResult_1 = require("../../../domain.objects/BrainArch1/BrainArch1LoopResult");
6
+ const BrainArch1MemoryTokenUsage_1 = require("../../../domain.objects/BrainArch1/BrainArch1MemoryTokenUsage");
7
+ const BrainArch1PermissionDecision_1 = require("../../../domain.objects/BrainArch1/BrainArch1PermissionDecision");
8
+ const BrainArch1SessionMessage_1 = require("../../../domain.objects/BrainArch1/BrainArch1SessionMessage");
9
+ const runBrainArch1Loop_1 = require("../../../domain.operations/brain.replic.arch1/loop/runBrainArch1Loop");
10
+ const mergeBrainArch1Toolboxes_1 = require("../../../domain.operations/brain.replic.arch1/tool/mergeBrainArch1Toolboxes");
11
+ /**
12
+ * .what = default system prompt when none provided
13
+ * .why = establishes baseline assistant behavior
14
+ */
15
+ const DEFAULT_SYSTEM_PROMPT = `You are a helpful assistant with access to tools.
16
+ Use the tools when needed to help answer questions and complete tasks.
17
+ Be concise and accurate in your responses.`;
18
+ /**
19
+ * .what = default permission guard that allows all operations
20
+ * .why = provides sensible default when no guard specified
21
+ */
22
+ const createDefaultPermissionGuard = () => ({
23
+ name: 'allowAll',
24
+ description: 'allows all tool operations',
25
+ check: async () => new BrainArch1PermissionDecision_1.BrainArch1PermissionDecision({ verdict: 'allow', reason: null }),
26
+ });
27
+ /**
28
+ * .what = invokes the brain with a user input and returns the response
29
+ * .why = provides simple entry point for using the agentic loop
30
+ */
31
+ const invokeBrainArch1 = async (input, context) => {
32
+ // validate input
33
+ if (!input.userInput.trim()) {
34
+ return new BrainArch1LoopResult_1.BrainArch1LoopResult({
35
+ terminationReason: 'NATURAL_COMPLETION',
36
+ finalResponse: 'I notice your input was empty. Could you please provide a question or task?',
37
+ finalMessage: new BrainArch1SessionMessage_1.BrainArch1SessionMessage({
38
+ role: 'assistant',
39
+ content: 'I notice your input was empty. Could you please provide a question or task?',
40
+ toolCalls: null,
41
+ toolCallId: null,
42
+ }),
43
+ messages: [],
44
+ iterations: [],
45
+ iterationCount: 0,
46
+ totalTokenUsage: new BrainArch1MemoryTokenUsage_1.BrainArch1MemoryTokenUsage({
47
+ inputTokens: 0,
48
+ outputTokens: 0,
49
+ totalTokens: 0,
50
+ cacheReadTokens: null,
51
+ cacheWriteTokens: null,
52
+ }),
53
+ error: null,
54
+ });
55
+ }
56
+ // merge toolboxes
57
+ const { definitions, toolboxByToolName } = (0, mergeBrainArch1Toolboxes_1.mergeBrainArch1Toolboxes)({
58
+ toolboxes: input.actor.toolboxes,
59
+ });
60
+ // build initial messages
61
+ const systemPrompt = input.actor.role.systemPrompt ?? DEFAULT_SYSTEM_PROMPT;
62
+ const systemMessage = new BrainArch1SessionMessage_1.BrainArch1SessionMessage({
63
+ role: 'system',
64
+ content: systemPrompt,
65
+ toolCalls: null,
66
+ toolCallId: null,
67
+ });
68
+ const userMessage = new BrainArch1SessionMessage_1.BrainArch1SessionMessage({
69
+ role: 'user',
70
+ content: input.userInput,
71
+ toolCalls: null,
72
+ toolCallId: null,
73
+ });
74
+ const messages = [
75
+ systemMessage,
76
+ ...(input.conversationHistory ?? []),
77
+ userMessage,
78
+ ];
79
+ // estimate input token count (rough approximation)
80
+ const estimatedInputTokens = messages.reduce((acc, msg) => {
81
+ const content = msg.content ?? '';
82
+ return acc + Math.ceil(content.length / 4); // ~4 chars per token
83
+ }, 0);
84
+ // check if input exceeds max tokens
85
+ if (estimatedInputTokens > input.actor.constraints.maxTokens) {
86
+ throw new helpful_errors_1.BadRequestError('input exceeds context window limit', {
87
+ estimatedInputTokens,
88
+ maxTokens: input.actor.constraints.maxTokens,
89
+ });
90
+ }
91
+ // get permission guard
92
+ const permissionGuard = input.actor.permission ?? createDefaultPermissionGuard();
93
+ // run the agentic loop
94
+ const result = await (0, runBrainArch1Loop_1.runBrainArch1Loop)({
95
+ atom: input.actor.atom,
96
+ messages,
97
+ definitions,
98
+ toolboxByToolName,
99
+ permissionGuard,
100
+ maxIterations: input.actor.constraints.maxIterations,
101
+ maxTokens: input.actor.constraints.maxTokens,
102
+ }, context);
103
+ return result;
104
+ };
105
+ exports.invokeBrainArch1 = invokeBrainArch1;
106
+ //# sourceMappingURL=invokeBrainArch1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invokeBrainArch1.js","sourceRoot":"","sources":["../../../../src/domain.operations/brain.replic.arch1/core/invokeBrainArch1.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { BrainArch1Atom } from '../../../domain.objects/BrainArch1/BrainArch1Atom';
2
+ import type { BrainArch1Context } from '../../../domain.objects/BrainArch1/BrainArch1Context';
3
+ import type { BrainArch1MemoryTokenUsage } from '../../../domain.objects/BrainArch1/BrainArch1MemoryTokenUsage';
4
+ import type { BrainArch1SessionMessage } from '../../../domain.objects/BrainArch1/BrainArch1SessionMessage';
5
+ import type { BrainArch1ToolDefinition } from '../../../domain.objects/BrainArch1/BrainArch1ToolDefinition';
6
+ /**
7
+ * .what = generates an llm response using the provided atom plugin
8
+ * .why = delegates to atom.generate(), enabling brain to work with any atom implementation
9
+ */
10
+ export declare const generateBrainArch1LlmResponse: (input: {
11
+ atom: BrainArch1Atom;
12
+ messages: BrainArch1SessionMessage[];
13
+ tools: BrainArch1ToolDefinition[];
14
+ maxTokens?: number;
15
+ }, context: BrainArch1Context) => Promise<{
16
+ message: BrainArch1SessionMessage;
17
+ tokenUsage: BrainArch1MemoryTokenUsage;
18
+ }>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateBrainArch1LlmResponse = void 0;
4
+ /**
5
+ * .what = generates an llm response using the provided atom plugin
6
+ * .why = delegates to atom.generate(), enabling brain to work with any atom implementation
7
+ */
8
+ const generateBrainArch1LlmResponse = async (input, context) => {
9
+ return input.atom.generate({
10
+ messages: input.messages,
11
+ tools: input.tools,
12
+ maxTokens: input.maxTokens,
13
+ }, context);
14
+ };
15
+ exports.generateBrainArch1LlmResponse = generateBrainArch1LlmResponse;
16
+ //# sourceMappingURL=generateBrainArch1LlmResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateBrainArch1LlmResponse.js","sourceRoot":"","sources":["../../../../src/domain.operations/brain.replic.arch1/llm/generateBrainArch1LlmResponse.ts"],"names":[],"mappings":";;;AAMA;;;GAGG;AACI,MAAM,6BAA6B,GAAG,KAAK,EAChD,KAKC,EACD,OAA0B,EAIzB,EAAE;IACH,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CACxB;QACE,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,EACD,OAAO,CACR,CAAC;AACJ,CAAC,CAAC;AApBW,QAAA,6BAA6B,iCAoBxC"}
@@ -0,0 +1,30 @@
1
+ import type { BrainArch1Atom } from '../../../domain.objects/BrainArch1/BrainArch1Atom';
2
+ import type { BrainArch1Context } from '../../../domain.objects/BrainArch1/BrainArch1Context';
3
+ import { BrainArch1LoopIteration } from '../../../domain.objects/BrainArch1/BrainArch1LoopIteration';
4
+ import type { BrainArch1PermissionGuard } from '../../../domain.objects/BrainArch1/BrainArch1PermissionGuard';
5
+ import { BrainArch1SessionMessage } from '../../../domain.objects/BrainArch1/BrainArch1SessionMessage';
6
+ import type { BrainArch1Toolbox } from '../../../domain.objects/BrainArch1/BrainArch1Toolbox';
7
+ import type { BrainArch1ToolDefinition } from '../../../domain.objects/BrainArch1/BrainArch1ToolDefinition';
8
+ /**
9
+ * .what = result of a single loop iteration
10
+ * .why = provides updated messages and iteration metadata
11
+ */
12
+ export interface IterateBrainArch1LoopResult {
13
+ messages: BrainArch1SessionMessage[];
14
+ iteration: BrainArch1LoopIteration;
15
+ }
16
+ /**
17
+ * .what = performs a single iteration of the brain loop
18
+ * .why = encapsulates generate → tools → append cycle
19
+ *
20
+ * .note = returns updated messages array with assistant response and tool results
21
+ */
22
+ export declare const iterateBrainArch1Loop: (input: {
23
+ atom: BrainArch1Atom;
24
+ messages: BrainArch1SessionMessage[];
25
+ definitions: BrainArch1ToolDefinition[];
26
+ toolboxByToolName: Map<string, BrainArch1Toolbox>;
27
+ permissionGuard: BrainArch1PermissionGuard;
28
+ iterationNumber: number;
29
+ maxTokens?: number;
30
+ }, context: BrainArch1Context) => Promise<IterateBrainArch1LoopResult>;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.iterateBrainArch1Loop = void 0;
4
+ const BrainArch1LoopIteration_1 = require("../../../domain.objects/BrainArch1/BrainArch1LoopIteration");
5
+ const BrainArch1SessionMessage_1 = require("../../../domain.objects/BrainArch1/BrainArch1SessionMessage");
6
+ const generateBrainArch1LlmResponse_1 = require("../../../domain.operations/brain.replic.arch1/llm/generateBrainArch1LlmResponse");
7
+ const executeBrainArch1ToolCall_1 = require("../../../domain.operations/brain.replic.arch1/tool/executeBrainArch1ToolCall");
8
+ /**
9
+ * .what = performs a single iteration of the brain loop
10
+ * .why = encapsulates generate → tools → append cycle
11
+ *
12
+ * .note = returns updated messages array with assistant response and tool results
13
+ */
14
+ const iterateBrainArch1Loop = async (input, context) => {
15
+ const startedAt = new Date().toISOString();
16
+ // generate llm response
17
+ const { message, tokenUsage } = await (0, generateBrainArch1LlmResponse_1.generateBrainArch1LlmResponse)({
18
+ atom: input.atom,
19
+ messages: input.messages,
20
+ tools: input.definitions,
21
+ maxTokens: input.maxTokens,
22
+ }, context);
23
+ // append assistant message to context
24
+ const messagesWithAssistant = [...input.messages, message];
25
+ // check for tool calls
26
+ const toolCalls = message.toolCalls ?? [];
27
+ const hadToolCalls = toolCalls.length > 0;
28
+ // if no tool calls, return early
29
+ if (!hadToolCalls) {
30
+ const completedAt = new Date().toISOString();
31
+ return {
32
+ messages: messagesWithAssistant,
33
+ iteration: new BrainArch1LoopIteration_1.BrainArch1LoopIteration({
34
+ iterationNumber: input.iterationNumber,
35
+ hadToolCalls: false,
36
+ toolCallCount: 0,
37
+ tokenUsage,
38
+ startedAt,
39
+ completedAt,
40
+ }),
41
+ };
42
+ }
43
+ // execute all tool calls
44
+ const toolResults = await Promise.all(toolCalls.map((call) => (0, executeBrainArch1ToolCall_1.executeBrainArch1ToolCall)({
45
+ call,
46
+ toolboxByToolName: input.toolboxByToolName,
47
+ permissionGuard: input.permissionGuard,
48
+ }, context)));
49
+ // append tool results as tool messages
50
+ const toolMessages = toolResults.map((result) => new BrainArch1SessionMessage_1.BrainArch1SessionMessage({
51
+ role: 'tool',
52
+ content: result.output,
53
+ toolCalls: null,
54
+ toolCallId: result.callId,
55
+ }));
56
+ const messagesWithToolResults = [...messagesWithAssistant, ...toolMessages];
57
+ const completedAt = new Date().toISOString();
58
+ return {
59
+ messages: messagesWithToolResults,
60
+ iteration: new BrainArch1LoopIteration_1.BrainArch1LoopIteration({
61
+ iterationNumber: input.iterationNumber,
62
+ hadToolCalls: true,
63
+ toolCallCount: toolCalls.length,
64
+ tokenUsage,
65
+ startedAt,
66
+ completedAt,
67
+ }),
68
+ };
69
+ };
70
+ exports.iterateBrainArch1Loop = iterateBrainArch1Loop;
71
+ //# sourceMappingURL=iterateBrainArch1Loop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterateBrainArch1Loop.js","sourceRoot":"","sources":["../../../../src/domain.operations/brain.replic.arch1/loop/iterateBrainArch1Loop.ts"],"names":[],"mappings":";;;AAEA,oGAAiG;AAEjG,sGAAmG;AAGnG,+HAA4H;AAC5H,wHAAqH;AAWrH;;;;;GAKG;AACI,MAAM,qBAAqB,GAAG,KAAK,EACxC,KAQC,EACD,OAA0B,EACY,EAAE;IACxC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE3C,wBAAwB;IACxB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,6DAA6B,EACjE;QACE,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,WAAW;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,EACD,OAAO,CACR,CAAC;IAEF,sCAAsC;IACtC,MAAM,qBAAqB,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE3D,uBAAuB;IACvB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAE1C,iCAAiC;IACjC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC7C,OAAO;YACL,QAAQ,EAAE,qBAAqB;YAC/B,SAAS,EAAE,IAAI,iDAAuB,CAAC;gBACrC,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,YAAY,EAAE,KAAK;gBACnB,aAAa,EAAE,CAAC;gBAChB,UAAU;gBACV,SAAS;gBACT,WAAW;aACZ,CAAC;SACH,CAAC;IACJ,CAAC;IAED,yBAAyB;IACzB,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACrB,IAAA,qDAAyB,EACvB;QACE,IAAI;QACJ,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,EACD,OAAO,CACR,CACF,CACF,CAAC;IAEF,uCAAuC;IACvC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAClC,CAAC,MAAM,EAAE,EAAE,CACT,IAAI,mDAAwB,CAAC;QAC3B,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,MAAM,CAAC,MAAM;KAC1B,CAAC,CACL,CAAC;IAEF,MAAM,uBAAuB,GAAG,CAAC,GAAG,qBAAqB,EAAE,GAAG,YAAY,CAAC,CAAC;IAE5E,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7C,OAAO;QACL,QAAQ,EAAE,uBAAuB;QACjC,SAAS,EAAE,IAAI,iDAAuB,CAAC;YACrC,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,SAAS,CAAC,MAAM;YAC/B,UAAU;YACV,SAAS;YACT,WAAW;SACZ,CAAC;KACH,CAAC;AACJ,CAAC,CAAC;AAvFW,QAAA,qBAAqB,yBAuFhC"}
@@ -0,0 +1,20 @@
1
+ import type { BrainArch1Atom } from '../../../domain.objects/BrainArch1/BrainArch1Atom';
2
+ import type { BrainArch1Context } from '../../../domain.objects/BrainArch1/BrainArch1Context';
3
+ import { BrainArch1LoopResult } from '../../../domain.objects/BrainArch1/BrainArch1LoopResult';
4
+ import type { BrainArch1PermissionGuard } from '../../../domain.objects/BrainArch1/BrainArch1PermissionGuard';
5
+ import type { BrainArch1SessionMessage } from '../../../domain.objects/BrainArch1/BrainArch1SessionMessage';
6
+ import type { BrainArch1Toolbox } from '../../../domain.objects/BrainArch1/BrainArch1Toolbox';
7
+ import type { BrainArch1ToolDefinition } from '../../../domain.objects/BrainArch1/BrainArch1ToolDefinition';
8
+ /**
9
+ * .what = runs the agentic loop until completion
10
+ * .why = orchestrates iterations until natural completion or max iterations
11
+ */
12
+ export declare const runBrainArch1Loop: (input: {
13
+ atom: BrainArch1Atom;
14
+ messages: BrainArch1SessionMessage[];
15
+ definitions: BrainArch1ToolDefinition[];
16
+ toolboxByToolName: Map<string, BrainArch1Toolbox>;
17
+ permissionGuard: BrainArch1PermissionGuard;
18
+ maxIterations?: number;
19
+ maxTokens?: number;
20
+ }, context: BrainArch1Context) => Promise<BrainArch1LoopResult>;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runBrainArch1Loop = void 0;
4
+ const BrainArch1LoopResult_1 = require("../../../domain.objects/BrainArch1/BrainArch1LoopResult");
5
+ const BrainArch1MemoryTokenUsage_1 = require("../../../domain.objects/BrainArch1/BrainArch1MemoryTokenUsage");
6
+ const iterateBrainArch1Loop_1 = require("../../../domain.operations/brain.replic.arch1/loop/iterateBrainArch1Loop");
7
+ /**
8
+ * .what = default max iterations if not specified
9
+ * .why = prevents infinite loops
10
+ */
11
+ const DEFAULT_MAX_ITERATIONS = 100;
12
+ /**
13
+ * .what = aggregates token usage across multiple iterations
14
+ * .why = enables tracking cumulative cost/usage
15
+ */
16
+ const aggregateTokenUsage = (iterations) => {
17
+ const totals = iterations.reduce((acc, iter) => ({
18
+ inputTokens: acc.inputTokens + iter.tokenUsage.inputTokens,
19
+ outputTokens: acc.outputTokens + iter.tokenUsage.outputTokens,
20
+ totalTokens: acc.totalTokens + iter.tokenUsage.totalTokens,
21
+ cacheReadTokens: (acc.cacheReadTokens ?? 0) + (iter.tokenUsage.cacheReadTokens ?? 0),
22
+ cacheWriteTokens: (acc.cacheWriteTokens ?? 0) + (iter.tokenUsage.cacheWriteTokens ?? 0),
23
+ }), {
24
+ inputTokens: 0,
25
+ outputTokens: 0,
26
+ totalTokens: 0,
27
+ cacheReadTokens: 0,
28
+ cacheWriteTokens: 0,
29
+ });
30
+ return new BrainArch1MemoryTokenUsage_1.BrainArch1MemoryTokenUsage({
31
+ inputTokens: totals.inputTokens,
32
+ outputTokens: totals.outputTokens,
33
+ totalTokens: totals.totalTokens,
34
+ cacheReadTokens: totals.cacheReadTokens || null,
35
+ cacheWriteTokens: totals.cacheWriteTokens || null,
36
+ });
37
+ };
38
+ /**
39
+ * .what = runs the agentic loop until completion
40
+ * .why = orchestrates iterations until natural completion or max iterations
41
+ */
42
+ const runBrainArch1Loop = async (input, context) => {
43
+ const maxIterations = input.maxIterations ?? DEFAULT_MAX_ITERATIONS;
44
+ const iterations = [];
45
+ let messages = input.messages;
46
+ // run loop until no tool calls or max iterations
47
+ for (let i = 0; i < maxIterations; i++) {
48
+ // execute single iteration
49
+ const result = await (0, iterateBrainArch1Loop_1.iterateBrainArch1Loop)({
50
+ atom: input.atom,
51
+ messages,
52
+ definitions: input.definitions,
53
+ toolboxByToolName: input.toolboxByToolName,
54
+ permissionGuard: input.permissionGuard,
55
+ iterationNumber: i,
56
+ maxTokens: input.maxTokens,
57
+ }, context);
58
+ // track iteration
59
+ iterations.push(result.iteration);
60
+ messages = result.messages;
61
+ // check for natural completion (no tool calls)
62
+ if (!result.iteration.hadToolCalls) {
63
+ const lastMessage = messages[messages.length - 1];
64
+ return new BrainArch1LoopResult_1.BrainArch1LoopResult({
65
+ terminationReason: 'NATURAL_COMPLETION',
66
+ finalResponse: lastMessage?.content ?? null,
67
+ finalMessage: lastMessage ?? null,
68
+ messages,
69
+ iterations,
70
+ iterationCount: iterations.length,
71
+ totalTokenUsage: aggregateTokenUsage(iterations),
72
+ error: null,
73
+ });
74
+ }
75
+ }
76
+ // max iterations reached
77
+ const lastMessage = messages[messages.length - 1];
78
+ return new BrainArch1LoopResult_1.BrainArch1LoopResult({
79
+ terminationReason: 'MAX_ITERATIONS',
80
+ finalResponse: lastMessage?.content ?? null,
81
+ finalMessage: lastMessage ?? null,
82
+ messages,
83
+ iterations,
84
+ iterationCount: iterations.length,
85
+ totalTokenUsage: aggregateTokenUsage(iterations),
86
+ error: `loop terminated after ${maxIterations} iterations`,
87
+ });
88
+ };
89
+ exports.runBrainArch1Loop = runBrainArch1Loop;
90
+ //# sourceMappingURL=runBrainArch1Loop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runBrainArch1Loop.js","sourceRoot":"","sources":["../../../../src/domain.operations/brain.replic.arch1/loop/runBrainArch1Loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { BrainArch1Atom } from '../../../../domain.objects/BrainArch1/BrainArch1Atom';
2
+ /**
3
+ * .what = creates an anthropic atom plugin for BrainArch1
4
+ * .why = enables using anthropic models (claude) with the brain architecture
5
+ */
6
+ export declare const genAtomAnthropic: (input: {
7
+ model: string;
8
+ }) => BrainArch1Atom;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.genAtomAnthropic = void 0;
4
+ const sdkAnthropic_1 = require("../../../../access/sdks/anthropic/sdkAnthropic");
5
+ /**
6
+ * .what = creates an anthropic atom plugin for BrainArch1
7
+ * .why = enables using anthropic models (claude) with the brain architecture
8
+ */
9
+ const genAtomAnthropic = (input) => ({
10
+ platform: 'anthropic',
11
+ model: input.model,
12
+ description: `anthropic ${input.model} atom for llm generation`,
13
+ generate: async (params, context) => {
14
+ return sdkAnthropic_1.sdkAnthropic.generate({
15
+ messages: params.messages,
16
+ tools: params.tools,
17
+ maxTokens: params.maxTokens,
18
+ }, {
19
+ anthropic: {
20
+ auth: {
21
+ key: context.creds.anthropic.apiKey,
22
+ url: context.creds.anthropic.url ?? undefined,
23
+ },
24
+ llm: { model: input.model },
25
+ },
26
+ log: context.log,
27
+ });
28
+ },
29
+ });
30
+ exports.genAtomAnthropic = genAtomAnthropic;
31
+ //# sourceMappingURL=anthropic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../../../src/domain.operations/brain.replic.arch1/plugins/atoms/anthropic.ts"],"names":[],"mappings":";;;AAAA,0EAAuE;AAGvE;;;GAGG;AACI,MAAM,gBAAgB,GAAG,CAAC,KAAwB,EAAkB,EAAE,CAAC,CAAC;IAC7E,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,WAAW,EAAE,aAAa,KAAK,CAAC,KAAK,0BAA0B;IAC/D,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAClC,OAAO,2BAAY,CAAC,QAAQ,CAC1B;YACE,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,EACD;YACE,SAAS,EAAE;gBACT,IAAI,EAAE;oBACJ,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM;oBACnC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,SAAS;iBAC9C;gBACD,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;aAC5B;YACD,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAvBU,QAAA,gBAAgB,oBAuB1B"}
@@ -0,0 +1,3 @@
1
+ export { genAtomAnthropic } from './anthropic';
2
+ export { genAtomOpenai } from './openai';
3
+ export { genAtomQwen } from './qwen';
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.genAtomQwen = exports.genAtomOpenai = exports.genAtomAnthropic = void 0;
4
+ var anthropic_1 = require("./anthropic");
5
+ Object.defineProperty(exports, "genAtomAnthropic", { enumerable: true, get: function () { return anthropic_1.genAtomAnthropic; } });
6
+ var openai_1 = require("./openai");
7
+ Object.defineProperty(exports, "genAtomOpenai", { enumerable: true, get: function () { return openai_1.genAtomOpenai; } });
8
+ var qwen_1 = require("./qwen");
9
+ Object.defineProperty(exports, "genAtomQwen", { enumerable: true, get: function () { return qwen_1.genAtomQwen; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/domain.operations/brain.replic.arch1/plugins/atoms/index.ts"],"names":[],"mappings":";;;AAAA,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA;AACzB,mCAAyC;AAAhC,uGAAA,aAAa,OAAA;AACtB,+BAAqC;AAA5B,mGAAA,WAAW,OAAA"}
@@ -0,0 +1,8 @@
1
+ import type { BrainArch1Atom } from '../../../../domain.objects/BrainArch1/BrainArch1Atom';
2
+ /**
3
+ * .what = creates an openai atom plugin for BrainArch1
4
+ * .why = enables using openai models (gpt-4, etc) with the brain architecture
5
+ */
6
+ export declare const genAtomOpenai: (input: {
7
+ model: string;
8
+ }) => BrainArch1Atom;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.genAtomOpenai = void 0;
4
+ const sdkOpenAi_1 = require("../../../../access/sdk/sdkOpenAi");
5
+ /**
6
+ * .what = creates an openai atom plugin for BrainArch1
7
+ * .why = enables using openai models (gpt-4, etc) with the brain architecture
8
+ */
9
+ const genAtomOpenai = (input) => ({
10
+ platform: 'openai',
11
+ model: input.model,
12
+ description: `openai ${input.model} atom for llm generation`,
13
+ generate: async (params, context) => {
14
+ return sdkOpenAi_1.sdkOpenAi.generate({
15
+ messages: params.messages,
16
+ tools: params.tools,
17
+ maxTokens: params.maxTokens,
18
+ }, {
19
+ openai: {
20
+ auth: {
21
+ key: context.creds.openai.apiKey,
22
+ url: context.creds.openai.url ?? undefined,
23
+ },
24
+ llm: { model: input.model },
25
+ },
26
+ log: context.log,
27
+ });
28
+ },
29
+ });
30
+ exports.genAtomOpenai = genAtomOpenai;
31
+ //# sourceMappingURL=openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../../../src/domain.operations/brain.replic.arch1/plugins/atoms/openai.ts"],"names":[],"mappings":";;;AAAA,yDAAsD;AAGtD;;;GAGG;AACI,MAAM,aAAa,GAAG,CAAC,KAAwB,EAAkB,EAAE,CAAC,CAAC;IAC1E,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,WAAW,EAAE,UAAU,KAAK,CAAC,KAAK,0BAA0B;IAC5D,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAClC,OAAO,qBAAS,CAAC,QAAQ,CACvB;YACE,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,EACD;YACE,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;oBAChC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,SAAS;iBAC3C;gBACD,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;aAC5B;YACD,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAvBU,QAAA,aAAa,iBAuBvB"}
@@ -0,0 +1,8 @@
1
+ import type { BrainArch1Atom } from '../../../../domain.objects/BrainArch1/BrainArch1Atom';
2
+ /**
3
+ * .what = creates a qwen atom plugin for BrainArch1
4
+ * .why = enables using qwen models with the brain architecture
5
+ */
6
+ export declare const genAtomQwen: (input: {
7
+ model: string;
8
+ }) => BrainArch1Atom;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.genAtomQwen = void 0;
4
+ const sdkQwen_1 = require("../../../../access/sdks/qwen/sdkQwen");
5
+ /**
6
+ * .what = creates a qwen atom plugin for BrainArch1
7
+ * .why = enables using qwen models with the brain architecture
8
+ */
9
+ const genAtomQwen = (input) => ({
10
+ platform: 'qwen',
11
+ model: input.model,
12
+ description: `qwen ${input.model} atom for llm generation`,
13
+ generate: async (params, context) => {
14
+ return sdkQwen_1.sdkQwen.generate({
15
+ messages: params.messages,
16
+ tools: params.tools,
17
+ maxTokens: params.maxTokens,
18
+ }, {
19
+ qwen: {
20
+ auth: {
21
+ key: context.creds.qwen.apiKey,
22
+ url: context.creds.qwen.url ??
23
+ 'https://dashscope.aliyuncs.com/compatible-mode/v1',
24
+ },
25
+ llm: { model: input.model },
26
+ },
27
+ log: context.log,
28
+ });
29
+ },
30
+ });
31
+ exports.genAtomQwen = genAtomQwen;
32
+ //# sourceMappingURL=qwen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qwen.js","sourceRoot":"","sources":["../../../../../src/domain.operations/brain.replic.arch1/plugins/atoms/qwen.ts"],"names":[],"mappings":";;;AAAA,2DAAwD;AAGxD;;;GAGG;AACI,MAAM,WAAW,GAAG,CAAC,KAAwB,EAAkB,EAAE,CAAC,CAAC;IACxE,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,WAAW,EAAE,QAAQ,KAAK,CAAC,KAAK,0BAA0B;IAC1D,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAClC,OAAO,iBAAO,CAAC,QAAQ,CACrB;YACE,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,EACD;YACE,IAAI,EAAE;gBACJ,IAAI,EAAE;oBACJ,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM;oBAC9B,GAAG,EACD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;wBACtB,mDAAmD;iBACtD;gBACD,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;aAC5B;YACD,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAzBU,QAAA,WAAW,eAyBrB"}
@@ -0,0 +1,6 @@
1
+ import type { BrainArch1MemoryManager } from '../../../../domain.objects/BrainArch1/BrainArch1MemoryManager';
2
+ /**
3
+ * .what = sliding window memory manager
4
+ * .why = simple strategy to keep context under limit by removing oldest messages
5
+ */
6
+ export declare const memoryManagerSlidingWindow: BrainArch1MemoryManager;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.memoryManagerSlidingWindow = void 0;
4
+ const BrainArch1MemoryCompactionResult_1 = require("../../../../domain.objects/BrainArch1/BrainArch1MemoryCompactionResult");
5
+ /**
6
+ * .what = estimates token count for a message
7
+ * .why = provides approximate token counting without external dependency
8
+ *
9
+ * .note = uses ~4 chars per token as rough estimate
10
+ */
11
+ const estimateMessageTokens = (message) => {
12
+ const contentTokens = message.content
13
+ ? Math.ceil(message.content.length / 4)
14
+ : 0;
15
+ const toolCallsTokens = message.toolCalls
16
+ ? message.toolCalls.reduce((sum, tc) => {
17
+ const inputStr = JSON.stringify(tc.input);
18
+ return sum + Math.ceil((tc.name.length + inputStr.length) / 4);
19
+ }, 0)
20
+ : 0;
21
+ return contentTokens + toolCallsTokens + 10; // +10 for message overhead
22
+ };
23
+ /**
24
+ * .what = sliding window memory manager
25
+ * .why = simple strategy to keep context under limit by removing oldest messages
26
+ */
27
+ exports.memoryManagerSlidingWindow = {
28
+ name: 'slidingWindow',
29
+ description: 'Removes oldest messages to keep context within token limits, preserving system message and recent context',
30
+ shouldCompact: async ({ currentTokens, maxTokens }) => {
31
+ // compact when we exceed 80% of max tokens
32
+ const threshold = maxTokens * 0.8;
33
+ return currentTokens > threshold;
34
+ },
35
+ compact: async ({ messages, currentTokens, targetTokens }) => {
36
+ // separate system message (always keep) from conversation
37
+ const systemMessages = messages.filter((m) => m.role === 'system');
38
+ const conversationMessages = messages.filter((m) => m.role !== 'system');
39
+ // calculate system message tokens
40
+ const systemTokens = systemMessages.reduce((sum, m) => sum + estimateMessageTokens(m), 0);
41
+ // keep removing oldest messages until under target
42
+ let compactedConversation = [...conversationMessages];
43
+ let conversationTokens = conversationMessages.reduce((sum, m) => sum + estimateMessageTokens(m), 0);
44
+ // remove messages from the beginning (oldest first)
45
+ while (systemTokens + conversationTokens > targetTokens &&
46
+ compactedConversation.length > 2 // keep at least last 2 messages
47
+ ) {
48
+ const removed = compactedConversation.shift();
49
+ if (removed) {
50
+ conversationTokens -= estimateMessageTokens(removed);
51
+ }
52
+ }
53
+ // if we removed assistant messages with tool calls, remove orphaned tool results
54
+ const validToolCallIds = new Set();
55
+ compactedConversation.forEach((m) => {
56
+ if (m.toolCalls) {
57
+ m.toolCalls.forEach((tc) => validToolCallIds.add(tc.id));
58
+ }
59
+ });
60
+ // filter out orphaned tool results
61
+ compactedConversation = compactedConversation.filter((m) => {
62
+ if (m.role === 'tool' && m.toolCallId) {
63
+ return validToolCallIds.has(m.toolCallId);
64
+ }
65
+ return true;
66
+ });
67
+ // recalculate tokens after orphan removal
68
+ conversationTokens = compactedConversation.reduce((sum, m) => sum + estimateMessageTokens(m), 0);
69
+ // combine system messages with compacted conversation
70
+ const compactedMessages = [...systemMessages, ...compactedConversation];
71
+ const tokensAfter = systemTokens + conversationTokens;
72
+ return new BrainArch1MemoryCompactionResult_1.BrainArch1MemoryCompactionResult({
73
+ messages: compactedMessages,
74
+ tokensBefore: currentTokens,
75
+ tokensAfter,
76
+ compactionTokenUsage: null, // no llm call needed for sliding window
77
+ });
78
+ },
79
+ };
80
+ //# sourceMappingURL=slidingWindow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slidingWindow.js","sourceRoot":"","sources":["../../../../../src/domain.operations/brain.replic.arch1/plugins/memoryManagers/slidingWindow.ts"],"names":[],"mappings":";;;AAAA,sHAAmH;AAInH;;;;;GAKG;AACH,MAAM,qBAAqB,GAAG,CAAC,OAAiC,EAAU,EAAE;IAC1E,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO;QACnC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS;QACvC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAC1C,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,CAAC,EAAE,CAAC,CAAC;QACP,CAAC,CAAC,CAAC,CAAC;IACN,OAAO,aAAa,GAAG,eAAe,GAAG,EAAE,CAAC,CAAC,2BAA2B;AAC1E,CAAC,CAAC;AAEF;;;GAGG;AACU,QAAA,0BAA0B,GAA4B;IACjE,IAAI,EAAE,eAAe;IACrB,WAAW,EACT,2GAA2G;IAE7G,aAAa,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE;QACpD,2CAA2C;QAC3C,MAAM,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC;QAClC,OAAO,aAAa,GAAG,SAAS,CAAC;IACnC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,EAAE;QAC3D,0DAA0D;QAC1D,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QACnE,MAAM,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAEzE,kCAAkC;QAClC,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CACxC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAC1C,CAAC,CACF,CAAC;QAEF,mDAAmD;QACnD,IAAI,qBAAqB,GAAG,CAAC,GAAG,oBAAoB,CAAC,CAAC;QACtD,IAAI,kBAAkB,GAAG,oBAAoB,CAAC,MAAM,CAClD,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAC1C,CAAC,CACF,CAAC;QAEF,oDAAoD;QACpD,OACE,YAAY,GAAG,kBAAkB,GAAG,YAAY;YAChD,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,gCAAgC;UACjE,CAAC;YACD,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,EAAE,CAAC;YAC9C,IAAI,OAAO,EAAE,CAAC;gBACZ,kBAAkB,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAED,iFAAiF;QACjF,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC3C,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAClC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;gBAChB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,mCAAmC;QACnC,qBAAqB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACzD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;gBACtC,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC5C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,0CAA0C;QAC1C,kBAAkB,GAAG,qBAAqB,CAAC,MAAM,CAC/C,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAC1C,CAAC,CACF,CAAC;QAEF,sDAAsD;QACtD,MAAM,iBAAiB,GAAG,CAAC,GAAG,cAAc,EAAE,GAAG,qBAAqB,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,YAAY,GAAG,kBAAkB,CAAC;QAEtD,OAAO,IAAI,mEAAgC,CAAC;YAC1C,QAAQ,EAAE,iBAAiB;YAC3B,YAAY,EAAE,aAAa;YAC3B,WAAW;YACX,oBAAoB,EAAE,IAAI,EAAE,wCAAwC;SACrE,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}