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
@@ -1,9 +1,14 @@
1
1
  import type { ContextLogTrail } from 'as-procedure';
2
2
  import type { ChatModel } from 'openai/resources/index';
3
+ import type { BrainArch1Context } from '../../domain.objects/BrainArch1/BrainArch1Context';
4
+ import { BrainArch1MemoryTokenUsage } from '../../domain.objects/BrainArch1/BrainArch1MemoryTokenUsage';
5
+ import { BrainArch1SessionMessage } from '../../domain.objects/BrainArch1/BrainArch1SessionMessage';
6
+ import type { BrainArch1ToolDefinition } from '../../domain.objects/BrainArch1/BrainArch1ToolDefinition';
3
7
  export interface ContextOpenAI {
4
8
  openai: {
5
9
  auth: {
6
10
  key: string;
11
+ url?: string;
7
12
  };
8
13
  llm: {
9
14
  model: ChatModel;
@@ -13,4 +18,24 @@ export interface ContextOpenAI {
13
18
  }
14
19
  export declare const sdkOpenAi: {
15
20
  imagine: (input: string, context: ContextOpenAI & ContextLogTrail) => Promise<string>;
21
+ generate: (input: {
22
+ messages: BrainArch1SessionMessage[];
23
+ tools: BrainArch1ToolDefinition[];
24
+ maxTokens?: number;
25
+ }, context: {
26
+ openai: {
27
+ auth: {
28
+ key: string;
29
+ url?: string;
30
+ };
31
+ llm: {
32
+ model: string;
33
+ };
34
+ };
35
+ } & {
36
+ log: BrainArch1Context['log'];
37
+ }) => Promise<{
38
+ message: BrainArch1SessionMessage;
39
+ tokenUsage: BrainArch1MemoryTokenUsage;
40
+ }>;
16
41
  };
@@ -6,6 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.sdkOpenAi = void 0;
7
7
  const helpful_errors_1 = require("helpful-errors");
8
8
  const openai_1 = __importDefault(require("openai"));
9
+ const BrainArch1MemoryTokenUsage_1 = require("../../domain.objects/BrainArch1/BrainArch1MemoryTokenUsage");
10
+ const BrainArch1SessionMessage_1 = require("../../domain.objects/BrainArch1/BrainArch1SessionMessage");
11
+ const BrainArch1ToolCall_1 = require("../../domain.objects/BrainArch1/BrainArch1ToolCall");
9
12
  const imagine = async (input, context) => {
10
13
  const openai = new openai_1.default({
11
14
  apiKey: context.openai.auth.key,
@@ -36,7 +39,126 @@ const imagine = async (input, context) => {
36
39
  : content;
37
40
  return stripped;
38
41
  };
42
+ /**
43
+ * .what = converts bhrain tool definitions to openai tool format
44
+ * .why = openai has its own function calling schema format
45
+ */
46
+ const toOpenAiTools = (tools) => {
47
+ return tools.map((tool) => ({
48
+ type: 'function',
49
+ function: {
50
+ name: tool.name,
51
+ description: tool.description,
52
+ parameters: {
53
+ type: 'object',
54
+ properties: tool.schema.input.properties,
55
+ required: tool.schema.input.required,
56
+ },
57
+ strict: tool.strict,
58
+ },
59
+ }));
60
+ };
61
+ /**
62
+ * .what = converts bhrain messages to openai message format
63
+ * .why = openai has its own message structure
64
+ */
65
+ const toOpenAiMessages = (messages) => {
66
+ return messages.map((msg) => {
67
+ // handle tool result messages
68
+ if (msg.role === 'tool' && msg.toolCallId) {
69
+ return {
70
+ role: 'tool',
71
+ tool_call_id: msg.toolCallId,
72
+ content: msg.content ?? '',
73
+ };
74
+ }
75
+ // handle assistant messages with tool calls
76
+ if (msg.role === 'assistant' && msg.toolCalls && msg.toolCalls.length > 0) {
77
+ return {
78
+ role: 'assistant',
79
+ content: msg.content,
80
+ tool_calls: msg.toolCalls.map((call) => ({
81
+ id: call.id,
82
+ type: 'function',
83
+ function: {
84
+ name: call.name,
85
+ arguments: JSON.stringify(call.input),
86
+ },
87
+ })),
88
+ };
89
+ }
90
+ // handle regular messages
91
+ if (msg.role === 'system') {
92
+ return { role: 'system', content: msg.content ?? '' };
93
+ }
94
+ if (msg.role === 'user') {
95
+ return { role: 'user', content: msg.content ?? '' };
96
+ }
97
+ return { role: 'assistant', content: msg.content ?? '' };
98
+ });
99
+ };
100
+ /**
101
+ * .what = converts openai response to bhrain message format
102
+ * .why = normalizes openai's response to our domain model
103
+ */
104
+ const toBrainArch1Message = (choice) => {
105
+ const toolCalls = [];
106
+ if (choice.message.tool_calls) {
107
+ for (const tc of choice.message.tool_calls) {
108
+ toolCalls.push(new BrainArch1ToolCall_1.BrainArch1ToolCall({
109
+ id: tc.id,
110
+ name: tc.function.name,
111
+ input: JSON.parse(tc.function.arguments || '{}'),
112
+ }));
113
+ }
114
+ }
115
+ return new BrainArch1SessionMessage_1.BrainArch1SessionMessage({
116
+ role: 'assistant',
117
+ content: choice.message.content,
118
+ toolCalls: toolCalls.length > 0 ? toolCalls : null,
119
+ toolCallId: null,
120
+ });
121
+ };
122
+ /**
123
+ * .what = generates a response from openai api with tool support
124
+ * .why = enables brain to use openai as its llm atom
125
+ */
126
+ const generate = async (input, context) => {
127
+ // instantiate client
128
+ const client = new openai_1.default({
129
+ apiKey: context.openai.auth.key,
130
+ baseURL: context.openai.auth.url,
131
+ });
132
+ // prepare request
133
+ const openaiMessages = toOpenAiMessages(input.messages);
134
+ const openaiTools = input.tools.length > 0 ? toOpenAiTools(input.tools) : undefined;
135
+ // make api call
136
+ const response = await client.chat.completions.create({
137
+ model: context.openai.llm.model,
138
+ max_tokens: input.maxTokens ?? 8192,
139
+ messages: openaiMessages,
140
+ tools: openaiTools,
141
+ });
142
+ // validate response
143
+ const choice = response.choices[0];
144
+ if (!choice) {
145
+ throw new helpful_errors_1.UnexpectedCodePathError('no choice in openai response', {
146
+ response,
147
+ });
148
+ }
149
+ // convert to bhrain format
150
+ const message = toBrainArch1Message(choice);
151
+ const tokenUsage = new BrainArch1MemoryTokenUsage_1.BrainArch1MemoryTokenUsage({
152
+ inputTokens: response.usage?.prompt_tokens ?? 0,
153
+ outputTokens: response.usage?.completion_tokens ?? 0,
154
+ totalTokens: response.usage?.total_tokens ?? 0,
155
+ cacheReadTokens: null,
156
+ cacheWriteTokens: null,
157
+ });
158
+ return { message, tokenUsage };
159
+ };
39
160
  exports.sdkOpenAi = {
40
161
  imagine,
162
+ generate,
41
163
  };
42
164
  //# sourceMappingURL=sdkOpenAi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdkOpenAi.js","sourceRoot":"","sources":["../../../src/access/sdk/sdkOpenAi.ts"],"names":[],"mappings":";;;;;;AACA,mDAAyD;AACzD,oDAA4B;AAa5B,MAAM,OAAO,GAAG,KAAK,EACnB,KAAa,EACb,OAAwC,EACvB,EAAE;IACnB,MAAM,MAAM,GAAG,IAAI,gBAAM,CAAC;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;KAChC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QACpD,eAAe,EACb,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM;YAClC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE;YACzB,CAAC,CAAC,SAAS;QACf,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,KAAK;aACf;SACF;QACD,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK;KAChC,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACtB,MAAM,IAAI,wCAAuB,CAC/B,iDAAiD,EACjD,EAAE,QAAQ,EAAE,CACb,CAAC;IACJ,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAC7B,MAAM,IAAI,wCAAuB,CAC/B,wCAAwC,EACxC,EAAE,QAAQ,EAAE,CACb,CAAC;IACJ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;QACtC,MAAM,IAAI,wCAAuB,CAAC,iCAAiC,EAAE;YACnE,QAAQ;SACT,CAAC,CAAC;IACL,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC3D,MAAM,QAAQ,GACZ,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,iEAAiE;QACpH,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;QACpD,CAAC,CAAC,OAAO,CAAC;IACd,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEW,QAAA,SAAS,GAAG;IACvB,OAAO;CACR,CAAC"}
1
+ {"version":3,"file":"sdkOpenAi.js","sourceRoot":"","sources":["../../../src/access/sdk/sdkOpenAi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { BrainArch1Context } from '../../../domain.objects/BrainArch1/BrainArch1Context';
2
+ import { BrainArch1MemoryTokenUsage } from '../../../domain.objects/BrainArch1/BrainArch1MemoryTokenUsage';
3
+ import { BrainArch1SessionMessage } from '../../../domain.objects/BrainArch1/BrainArch1SessionMessage';
4
+ import type { BrainArch1ToolDefinition } from '../../../domain.objects/BrainArch1/BrainArch1ToolDefinition';
5
+ /**
6
+ * .what = context required for anthropic api calls
7
+ * .why = enables dependency injection of anthropic-specific config
8
+ */
9
+ export interface ContextAnthropic {
10
+ anthropic: {
11
+ auth: {
12
+ key: string;
13
+ url?: string;
14
+ };
15
+ llm: {
16
+ model: string;
17
+ };
18
+ };
19
+ }
20
+ export declare const sdkAnthropic: {
21
+ generate: (input: {
22
+ messages: BrainArch1SessionMessage[];
23
+ tools: BrainArch1ToolDefinition[];
24
+ maxTokens?: number;
25
+ }, context: ContextAnthropic & {
26
+ log: BrainArch1Context['log'];
27
+ }) => Promise<{
28
+ message: BrainArch1SessionMessage;
29
+ tokenUsage: BrainArch1MemoryTokenUsage;
30
+ }>;
31
+ };
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.sdkAnthropic = void 0;
7
+ const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
8
+ const helpful_errors_1 = require("helpful-errors");
9
+ const BrainArch1MemoryTokenUsage_1 = require("../../../domain.objects/BrainArch1/BrainArch1MemoryTokenUsage");
10
+ const BrainArch1SessionMessage_1 = require("../../../domain.objects/BrainArch1/BrainArch1SessionMessage");
11
+ const BrainArch1ToolCall_1 = require("../../../domain.objects/BrainArch1/BrainArch1ToolCall");
12
+ /**
13
+ * .what = converts bhrain tool definitions to anthropic tool format
14
+ * .why = anthropic has its own tool schema format
15
+ */
16
+ const toAnthropicTools = (tools) => {
17
+ return tools.map((tool) => ({
18
+ name: tool.name,
19
+ description: tool.description,
20
+ input_schema: {
21
+ type: 'object',
22
+ properties: tool.schema.input.properties,
23
+ required: tool.schema.input.required,
24
+ },
25
+ }));
26
+ };
27
+ /**
28
+ * .what = converts bhrain messages to anthropic message format
29
+ * .why = anthropic has its own message structure with content blocks
30
+ */
31
+ const toAnthropicMessages = (messages) => {
32
+ return messages
33
+ .filter((m) => m.role !== 'system') // system handled separately
34
+ .map((msg) => {
35
+ // handle tool result messages
36
+ if (msg.role === 'tool' && msg.toolCallId) {
37
+ return {
38
+ role: 'user',
39
+ content: [
40
+ {
41
+ type: 'tool_result',
42
+ tool_use_id: msg.toolCallId,
43
+ content: msg.content ?? '',
44
+ },
45
+ ],
46
+ };
47
+ }
48
+ // handle assistant messages with tool calls
49
+ if (msg.role === 'assistant' &&
50
+ msg.toolCalls &&
51
+ msg.toolCalls.length > 0) {
52
+ const content = [];
53
+ if (msg.content) {
54
+ content.push({ type: 'text', text: msg.content });
55
+ }
56
+ for (const call of msg.toolCalls) {
57
+ content.push({
58
+ type: 'tool_use',
59
+ id: call.id,
60
+ name: call.name,
61
+ input: call.input,
62
+ });
63
+ }
64
+ return { role: 'assistant', content };
65
+ }
66
+ // handle regular messages
67
+ return {
68
+ role: msg.role === 'user' ? 'user' : 'assistant',
69
+ content: msg.content ?? '',
70
+ };
71
+ });
72
+ };
73
+ /**
74
+ * .what = extracts system prompt from messages
75
+ * .why = anthropic handles system prompt separately from messages
76
+ */
77
+ const extractSystemPrompt = (messages) => {
78
+ const systemMsg = messages.find((m) => m.role === 'system');
79
+ return systemMsg?.content ?? undefined;
80
+ };
81
+ /**
82
+ * .what = converts anthropic response to bhrain message format
83
+ * .why = normalizes anthropic's response to our domain model
84
+ */
85
+ const toBrainArch1Message = (response) => {
86
+ let textContent = null;
87
+ const toolCalls = [];
88
+ for (const block of response.content) {
89
+ if (block.type === 'text') {
90
+ textContent = block.text;
91
+ }
92
+ else if (block.type === 'tool_use') {
93
+ toolCalls.push(new BrainArch1ToolCall_1.BrainArch1ToolCall({
94
+ id: block.id,
95
+ name: block.name,
96
+ input: block.input,
97
+ }));
98
+ }
99
+ }
100
+ return new BrainArch1SessionMessage_1.BrainArch1SessionMessage({
101
+ role: 'assistant',
102
+ content: textContent,
103
+ toolCalls: toolCalls.length > 0 ? toolCalls : null,
104
+ toolCallId: null,
105
+ });
106
+ };
107
+ /**
108
+ * .what = generates a response from anthropic claude api
109
+ * .why = enables brain to use anthropic as its llm atom
110
+ */
111
+ const generate = async (input, context) => {
112
+ // instantiate client
113
+ const client = new sdk_1.default({
114
+ apiKey: context.anthropic.auth.key,
115
+ baseURL: context.anthropic.auth.url,
116
+ });
117
+ // prepare request
118
+ const systemPrompt = extractSystemPrompt(input.messages);
119
+ const anthropicMessages = toAnthropicMessages(input.messages);
120
+ const anthropicTools = input.tools.length > 0 ? toAnthropicTools(input.tools) : undefined;
121
+ // make api call
122
+ const response = await client.messages.create({
123
+ model: context.anthropic.llm.model,
124
+ max_tokens: input.maxTokens ?? 8192,
125
+ system: systemPrompt,
126
+ messages: anthropicMessages,
127
+ tools: anthropicTools,
128
+ });
129
+ // validate response
130
+ if (response.content.length === 0) {
131
+ throw new helpful_errors_1.UnexpectedCodePathError('empty content in anthropic response', {
132
+ response,
133
+ });
134
+ }
135
+ // convert to bhrain format
136
+ const message = toBrainArch1Message(response);
137
+ const tokenUsage = new BrainArch1MemoryTokenUsage_1.BrainArch1MemoryTokenUsage({
138
+ inputTokens: response.usage.input_tokens,
139
+ outputTokens: response.usage.output_tokens,
140
+ totalTokens: response.usage.input_tokens + response.usage.output_tokens,
141
+ cacheReadTokens: response.usage
142
+ .cache_read_input_tokens ?? null,
143
+ cacheWriteTokens: response.usage
144
+ .cache_creation_input_tokens ?? null,
145
+ });
146
+ return { message, tokenUsage };
147
+ };
148
+ exports.sdkAnthropic = {
149
+ generate,
150
+ };
151
+ //# sourceMappingURL=sdkAnthropic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdkAnthropic.js","sourceRoot":"","sources":["../../../../src/access/sdks/anthropic/sdkAnthropic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { BrainArch1Context } from '../../../domain.objects/BrainArch1/BrainArch1Context';
2
+ import { BrainArch1MemoryTokenUsage } from '../../../domain.objects/BrainArch1/BrainArch1MemoryTokenUsage';
3
+ import { BrainArch1SessionMessage } from '../../../domain.objects/BrainArch1/BrainArch1SessionMessage';
4
+ import type { BrainArch1ToolDefinition } from '../../../domain.objects/BrainArch1/BrainArch1ToolDefinition';
5
+ /**
6
+ * .what = context required for qwen api calls
7
+ * .why = enables dependency injection of qwen-specific config
8
+ */
9
+ export interface ContextQwen {
10
+ qwen: {
11
+ auth: {
12
+ key: string;
13
+ url: string;
14
+ };
15
+ llm: {
16
+ model: string;
17
+ };
18
+ };
19
+ }
20
+ export declare const sdkQwen: {
21
+ generate: (input: {
22
+ messages: BrainArch1SessionMessage[];
23
+ tools: BrainArch1ToolDefinition[];
24
+ maxTokens?: number;
25
+ }, context: ContextQwen & {
26
+ log: BrainArch1Context['log'];
27
+ }) => Promise<{
28
+ message: BrainArch1SessionMessage;
29
+ tokenUsage: BrainArch1MemoryTokenUsage;
30
+ }>;
31
+ };
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.sdkQwen = void 0;
7
+ const helpful_errors_1 = require("helpful-errors");
8
+ const openai_1 = __importDefault(require("openai"));
9
+ const BrainArch1MemoryTokenUsage_1 = require("../../../domain.objects/BrainArch1/BrainArch1MemoryTokenUsage");
10
+ const BrainArch1SessionMessage_1 = require("../../../domain.objects/BrainArch1/BrainArch1SessionMessage");
11
+ const BrainArch1ToolCall_1 = require("../../../domain.objects/BrainArch1/BrainArch1ToolCall");
12
+ /**
13
+ * .what = converts bhrain tool definitions to openai-compatible tool format
14
+ * .why = qwen uses openai-compatible api
15
+ */
16
+ const toQwenTools = (tools) => {
17
+ return tools.map((tool) => ({
18
+ type: 'function',
19
+ function: {
20
+ name: tool.name,
21
+ description: tool.description,
22
+ parameters: {
23
+ type: 'object',
24
+ properties: tool.schema.input.properties,
25
+ required: tool.schema.input.required,
26
+ },
27
+ },
28
+ }));
29
+ };
30
+ /**
31
+ * .what = converts bhrain messages to openai-compatible message format
32
+ * .why = qwen uses openai-compatible api
33
+ */
34
+ const toQwenMessages = (messages) => {
35
+ return messages.map((msg) => {
36
+ // handle tool result messages
37
+ if (msg.role === 'tool' && msg.toolCallId) {
38
+ return {
39
+ role: 'tool',
40
+ tool_call_id: msg.toolCallId,
41
+ content: msg.content ?? '',
42
+ };
43
+ }
44
+ // handle assistant messages with tool calls
45
+ if (msg.role === 'assistant' && msg.toolCalls && msg.toolCalls.length > 0) {
46
+ return {
47
+ role: 'assistant',
48
+ content: msg.content,
49
+ tool_calls: msg.toolCalls.map((call) => ({
50
+ id: call.id,
51
+ type: 'function',
52
+ function: {
53
+ name: call.name,
54
+ arguments: JSON.stringify(call.input),
55
+ },
56
+ })),
57
+ };
58
+ }
59
+ // handle regular messages
60
+ if (msg.role === 'system') {
61
+ return { role: 'system', content: msg.content ?? '' };
62
+ }
63
+ if (msg.role === 'user') {
64
+ return { role: 'user', content: msg.content ?? '' };
65
+ }
66
+ return { role: 'assistant', content: msg.content ?? '' };
67
+ });
68
+ };
69
+ /**
70
+ * .what = converts qwen response to bhrain message format
71
+ * .why = normalizes qwen's response to our domain model
72
+ */
73
+ const toBrainArch1Message = (choice) => {
74
+ const toolCalls = [];
75
+ if (choice.message.tool_calls) {
76
+ for (const tc of choice.message.tool_calls) {
77
+ toolCalls.push(new BrainArch1ToolCall_1.BrainArch1ToolCall({
78
+ id: tc.id,
79
+ name: tc.function.name,
80
+ input: JSON.parse(tc.function.arguments || '{}'),
81
+ }));
82
+ }
83
+ }
84
+ return new BrainArch1SessionMessage_1.BrainArch1SessionMessage({
85
+ role: 'assistant',
86
+ content: choice.message.content,
87
+ toolCalls: toolCalls.length > 0 ? toolCalls : null,
88
+ toolCallId: null,
89
+ });
90
+ };
91
+ /**
92
+ * .what = generates a response from qwen api (openai-compatible)
93
+ * .why = enables brain to use qwen as its llm atom
94
+ *
95
+ * .note = qwen uses dashscope's openai-compatible endpoint
96
+ */
97
+ const generate = async (input, context) => {
98
+ // instantiate client with qwen endpoint
99
+ const client = new openai_1.default({
100
+ apiKey: context.qwen.auth.key,
101
+ baseURL: context.qwen.auth.url,
102
+ });
103
+ // prepare request
104
+ const qwenMessages = toQwenMessages(input.messages);
105
+ const qwenTools = input.tools.length > 0 ? toQwenTools(input.tools) : undefined;
106
+ // make api call
107
+ const response = await client.chat.completions.create({
108
+ model: context.qwen.llm.model,
109
+ max_tokens: input.maxTokens ?? 8192,
110
+ messages: qwenMessages,
111
+ tools: qwenTools,
112
+ });
113
+ // validate response
114
+ const choice = response.choices[0];
115
+ if (!choice) {
116
+ throw new helpful_errors_1.UnexpectedCodePathError('no choice in qwen response', {
117
+ response,
118
+ });
119
+ }
120
+ // convert to bhrain format
121
+ const message = toBrainArch1Message(choice);
122
+ const tokenUsage = new BrainArch1MemoryTokenUsage_1.BrainArch1MemoryTokenUsage({
123
+ inputTokens: response.usage?.prompt_tokens ?? 0,
124
+ outputTokens: response.usage?.completion_tokens ?? 0,
125
+ totalTokens: response.usage?.total_tokens ?? 0,
126
+ cacheReadTokens: null,
127
+ cacheWriteTokens: null,
128
+ });
129
+ return { message, tokenUsage };
130
+ };
131
+ exports.sdkQwen = {
132
+ generate,
133
+ };
134
+ //# sourceMappingURL=sdkQwen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdkQwen.js","sourceRoot":"","sources":["../../../../src/access/sdks/qwen/sdkQwen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { DomainLiteral } from 'domain-objects';
2
+ import type { BrainArch1Atom } from './BrainArch1Atom';
3
+ import type { BrainArch1MemoryManager } from './BrainArch1MemoryManager';
4
+ import type { BrainArch1PermissionGuard } from './BrainArch1PermissionGuard';
5
+ import type { BrainArch1Toolbox } from './BrainArch1Toolbox';
6
+ /**
7
+ * .what = instantiates a specific actor which will use the BrainArch1 architecture
8
+ * .why = enables configuring an actor with plugins (atom, tools, memory, permissions)
9
+ * that the brain loop will leverage to enable action
10
+ *
11
+ * .note = the difference between actor & agent is that agency is granted only after
12
+ * a real user delegates responsibilities to the actor. so we can't say it's
13
+ * an agent here yet (since it could be readonly with no delegated responsibilities).
14
+ * but we know for sure it's an actor.
15
+ */
16
+ export interface BrainArch1Actor {
17
+ /**
18
+ * the llm atom plugin to use for generation
19
+ *
20
+ * .todo = support an atom plugin that chooses which model to use based on
21
+ * context, task complexity, cost optimization, etc. Today we only support
22
+ * using one atom for the entire session.
23
+ */
24
+ atom: BrainArch1Atom;
25
+ /**
26
+ * the role this actor should take
27
+ *
28
+ * .todo = support rhachet roles more fundamentally
29
+ */
30
+ role: {
31
+ /**
32
+ * system prompt to prepend to conversation (null for default)
33
+ */
34
+ systemPrompt: string | null;
35
+ };
36
+ /**
37
+ * constraints on actor execution
38
+ */
39
+ constraints: {
40
+ /**
41
+ * maximum iterations before forced termination
42
+ */
43
+ maxIterations: number;
44
+ /**
45
+ * maximum tokens for context window
46
+ */
47
+ maxTokens: number;
48
+ };
49
+ /**
50
+ * toolboxes available to the actor
51
+ */
52
+ toolboxes: BrainArch1Toolbox[];
53
+ /**
54
+ * memory manager plugin for context optimization
55
+ */
56
+ memory: BrainArch1MemoryManager | null;
57
+ /**
58
+ * permission guard plugin for tool execution authorization
59
+ */
60
+ permission: BrainArch1PermissionGuard | null;
61
+ }
62
+ export declare class BrainArch1Actor extends DomainLiteral<BrainArch1Actor> implements BrainArch1Actor {
63
+ static nested: {
64
+ role: typeof DomainLiteral;
65
+ constraints: typeof DomainLiteral;
66
+ };
67
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BrainArch1Actor = void 0;
4
+ const domain_objects_1 = require("domain-objects");
5
+ class BrainArch1Actor extends domain_objects_1.DomainLiteral {
6
+ }
7
+ exports.BrainArch1Actor = BrainArch1Actor;
8
+ BrainArch1Actor.nested = {
9
+ role: domain_objects_1.DomainLiteral,
10
+ constraints: domain_objects_1.DomainLiteral,
11
+ };
12
+ //# sourceMappingURL=BrainArch1Actor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrainArch1Actor.js","sourceRoot":"","sources":["../../../src/domain.objects/BrainArch1/BrainArch1Actor.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAsE/C,MAAa,eACX,SAAQ,8BAA8B;;AADxC,0CAQC;AAJe,sBAAM,GAAG;IACrB,IAAI,EAAE,8BAAa;IACnB,WAAW,EAAE,8BAAa;CAC3B,CAAC"}