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.
- package/dist/access/sdk/sdkOpenAi.d.ts +25 -0
- package/dist/access/sdk/sdkOpenAi.js +122 -0
- package/dist/access/sdk/sdkOpenAi.js.map +1 -1
- package/dist/access/sdks/anthropic/sdkAnthropic.d.ts +31 -0
- package/dist/access/sdks/anthropic/sdkAnthropic.js +151 -0
- package/dist/access/sdks/anthropic/sdkAnthropic.js.map +1 -0
- package/dist/access/sdks/qwen/sdkQwen.d.ts +31 -0
- package/dist/access/sdks/qwen/sdkQwen.js +134 -0
- package/dist/access/sdks/qwen/sdkQwen.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1Actor.d.ts +67 -0
- package/dist/domain.objects/BrainArch1/BrainArch1Actor.js +12 -0
- package/dist/domain.objects/BrainArch1/BrainArch1Actor.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1Atom.d.ts +40 -0
- package/dist/domain.objects/BrainArch1/BrainArch1Atom.js +3 -0
- package/dist/domain.objects/BrainArch1/BrainArch1Atom.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1Context.d.ts +30 -0
- package/dist/domain.objects/BrainArch1/BrainArch1Context.js +3 -0
- package/dist/domain.objects/BrainArch1/BrainArch1Context.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1LoopIteration.d.ts +34 -0
- package/dist/domain.objects/BrainArch1/BrainArch1LoopIteration.js +8 -0
- package/dist/domain.objects/BrainArch1/BrainArch1LoopIteration.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1LoopIterationCompletedEvent.d.ts +23 -0
- package/dist/domain.objects/BrainArch1/BrainArch1LoopIterationCompletedEvent.js +9 -0
- package/dist/domain.objects/BrainArch1/BrainArch1LoopIterationCompletedEvent.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1LoopResult.d.ts +49 -0
- package/dist/domain.objects/BrainArch1/BrainArch1LoopResult.js +8 -0
- package/dist/domain.objects/BrainArch1/BrainArch1LoopResult.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1MemoryCompactedEvent.d.ts +31 -0
- package/dist/domain.objects/BrainArch1/BrainArch1MemoryCompactedEvent.js +9 -0
- package/dist/domain.objects/BrainArch1/BrainArch1MemoryCompactedEvent.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1MemoryCompactionResult.d.ts +27 -0
- package/dist/domain.objects/BrainArch1/BrainArch1MemoryCompactionResult.js +8 -0
- package/dist/domain.objects/BrainArch1/BrainArch1MemoryCompactionResult.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1MemoryManager.d.ts +45 -0
- package/dist/domain.objects/BrainArch1/BrainArch1MemoryManager.js +3 -0
- package/dist/domain.objects/BrainArch1/BrainArch1MemoryManager.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1MemoryTokenUsage.d.ts +29 -0
- package/dist/domain.objects/BrainArch1/BrainArch1MemoryTokenUsage.js +8 -0
- package/dist/domain.objects/BrainArch1/BrainArch1MemoryTokenUsage.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1PermissionDecision.d.ts +22 -0
- package/dist/domain.objects/BrainArch1/BrainArch1PermissionDecision.js +8 -0
- package/dist/domain.objects/BrainArch1/BrainArch1PermissionDecision.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1PermissionGuard.d.ts +30 -0
- package/dist/domain.objects/BrainArch1/BrainArch1PermissionGuard.js +3 -0
- package/dist/domain.objects/BrainArch1/BrainArch1PermissionGuard.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1Session.d.ts +47 -0
- package/dist/domain.objects/BrainArch1/BrainArch1Session.js +17 -0
- package/dist/domain.objects/BrainArch1/BrainArch1Session.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1SessionMessage.d.ts +34 -0
- package/dist/domain.objects/BrainArch1/BrainArch1SessionMessage.js +12 -0
- package/dist/domain.objects/BrainArch1/BrainArch1SessionMessage.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1ToolCall.d.ts +21 -0
- package/dist/domain.objects/BrainArch1/BrainArch1ToolCall.js +8 -0
- package/dist/domain.objects/BrainArch1/BrainArch1ToolCall.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1ToolDefinition.d.ts +54 -0
- package/dist/domain.objects/BrainArch1/BrainArch1ToolDefinition.js +20 -0
- package/dist/domain.objects/BrainArch1/BrainArch1ToolDefinition.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1ToolExecutionCompletedEvent.d.ts +36 -0
- package/dist/domain.objects/BrainArch1/BrainArch1ToolExecutionCompletedEvent.js +9 -0
- package/dist/domain.objects/BrainArch1/BrainArch1ToolExecutionCompletedEvent.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1ToolResult.d.ts +25 -0
- package/dist/domain.objects/BrainArch1/BrainArch1ToolResult.js +8 -0
- package/dist/domain.objects/BrainArch1/BrainArch1ToolResult.js.map +1 -0
- package/dist/domain.objects/BrainArch1/BrainArch1Toolbox.d.ts +31 -0
- package/dist/domain.objects/BrainArch1/BrainArch1Toolbox.js +3 -0
- package/dist/domain.objects/BrainArch1/BrainArch1Toolbox.js.map +1 -0
- package/dist/domain.objects/Reviewer/ReviewerReflectManifest.d.ts +44 -0
- package/dist/domain.objects/Reviewer/ReviewerReflectManifest.js +8 -0
- package/dist/domain.objects/Reviewer/ReviewerReflectManifest.js.map +1 -0
- package/dist/domain.objects/Reviewer/ReviewerReflectManifestOperation.d.ts +30 -0
- package/dist/domain.objects/Reviewer/ReviewerReflectManifestOperation.js +35 -0
- package/dist/domain.objects/Reviewer/ReviewerReflectManifestOperation.js.map +1 -0
- package/dist/domain.objects/Reviewer/ReviewerReflectMetrics.d.ts +89 -0
- package/dist/domain.objects/Reviewer/ReviewerReflectMetrics.js +8 -0
- package/dist/domain.objects/Reviewer/ReviewerReflectMetrics.js.map +1 -0
- package/dist/domain.objects/Reviewer/ReviewerReflectRuleProposal.d.ts +43 -0
- package/dist/domain.objects/Reviewer/ReviewerReflectRuleProposal.js +8 -0
- package/dist/domain.objects/Reviewer/ReviewerReflectRuleProposal.js.map +1 -0
- package/dist/domain.operations/artifact/genLoopFeedback.js +1 -1
- package/dist/domain.operations/artifact/genLoopFeedback.js.map +1 -1
- package/dist/domain.operations/artifact/genStepGrabCallerFeedbackToArtifact.d.ts +1 -1
- package/dist/domain.operations/brain.replic.arch1/core/invokeBrainArch1.d.ts +13 -0
- package/dist/domain.operations/brain.replic.arch1/core/invokeBrainArch1.js +106 -0
- package/dist/domain.operations/brain.replic.arch1/core/invokeBrainArch1.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/llm/generateBrainArch1LlmResponse.d.ts +18 -0
- package/dist/domain.operations/brain.replic.arch1/llm/generateBrainArch1LlmResponse.js +16 -0
- package/dist/domain.operations/brain.replic.arch1/llm/generateBrainArch1LlmResponse.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/loop/iterateBrainArch1Loop.d.ts +30 -0
- package/dist/domain.operations/brain.replic.arch1/loop/iterateBrainArch1Loop.js +71 -0
- package/dist/domain.operations/brain.replic.arch1/loop/iterateBrainArch1Loop.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/loop/runBrainArch1Loop.d.ts +20 -0
- package/dist/domain.operations/brain.replic.arch1/loop/runBrainArch1Loop.js +90 -0
- package/dist/domain.operations/brain.replic.arch1/loop/runBrainArch1Loop.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/atoms/anthropic.d.ts +8 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/atoms/anthropic.js +31 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/atoms/anthropic.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/atoms/index.d.ts +3 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/atoms/index.js +10 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/atoms/index.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/atoms/openai.d.ts +8 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/atoms/openai.js +31 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/atoms/openai.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/atoms/qwen.d.ts +8 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/atoms/qwen.js +32 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/atoms/qwen.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/memoryManagers/slidingWindow.d.ts +6 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/memoryManagers/slidingWindow.js +80 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/memoryManagers/slidingWindow.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/allowAll.d.ts +6 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/allowAll.js +14 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/allowAll.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/promptUser.d.ts +8 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/promptUser.js +52 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/promptUser.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/readOnly.d.ts +8 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/readOnly.js +38 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/permissionGuards/readOnly.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/bash/exec.d.ts +33 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/bash/exec.js +100 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/bash/exec.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/bash/index.d.ts +6 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/bash/index.js +26 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/bash/index.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/edit.d.ts +41 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/edit.js +107 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/edit.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/glob.d.ts +33 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/glob.js +68 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/glob.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/grep.d.ts +41 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/grep.js +97 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/grep.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/index.d.ts +6 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/index.js +65 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/index.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/read.d.ts +37 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/read.js +96 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/read.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/write.d.ts +33 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/write.js +81 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/files/write.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/fetch.d.ts +33 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/fetch.js +113 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/fetch.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/index.d.ts +6 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/index.js +36 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/index.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/search.d.ts +36 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/search.js +101 -0
- package/dist/domain.operations/brain.replic.arch1/plugins/toolboxes/web/search.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/tool/executeBrainArch1ToolCall.d.ts +14 -0
- package/dist/domain.operations/brain.replic.arch1/tool/executeBrainArch1ToolCall.js +45 -0
- package/dist/domain.operations/brain.replic.arch1/tool/executeBrainArch1ToolCall.js.map +1 -0
- package/dist/domain.operations/brain.replic.arch1/tool/mergeBrainArch1Toolboxes.d.ts +19 -0
- package/dist/domain.operations/brain.replic.arch1/tool/mergeBrainArch1Toolboxes.js +35 -0
- package/dist/domain.operations/brain.replic.arch1/tool/mergeBrainArch1Toolboxes.js.map +1 -0
- package/dist/domain.operations/git/genGitHubFileUrl.d.ts +9 -0
- package/dist/domain.operations/git/genGitHubFileUrl.js +55 -0
- package/dist/domain.operations/git/genGitHubFileUrl.js.map +1 -0
- package/dist/domain.operations/git/getGitRemoteUrl.d.ts +7 -0
- package/dist/domain.operations/git/getGitRemoteUrl.js +40 -0
- package/dist/domain.operations/git/getGitRemoteUrl.js.map +1 -0
- package/dist/domain.operations/hooks/getInvokeHooks.js +1 -1
- package/dist/domain.operations/hooks/getInvokeHooks.js.map +1 -1
- package/dist/domain.operations/reflect/createDraftDirectory.d.ts +11 -0
- package/dist/domain.operations/reflect/createDraftDirectory.js +46 -0
- package/dist/domain.operations/reflect/createDraftDirectory.js.map +1 -0
- package/dist/domain.operations/reflect/enumFeedbackFiles.d.ts +7 -0
- package/dist/domain.operations/reflect/enumFeedbackFiles.js +69 -0
- package/dist/domain.operations/reflect/enumFeedbackFiles.js.map +1 -0
- package/dist/domain.operations/reflect/extractJsonFromResultText.d.ts +7 -0
- package/dist/domain.operations/reflect/extractJsonFromResultText.js +19 -0
- package/dist/domain.operations/reflect/extractJsonFromResultText.js.map +1 -0
- package/dist/domain.operations/reflect/invokeClaudeCodeForReflect.d.ts +46 -0
- package/dist/domain.operations/reflect/invokeClaudeCodeForReflect.js +120 -0
- package/dist/domain.operations/reflect/invokeClaudeCodeForReflect.js.map +1 -0
- package/dist/domain.operations/reflect/metrics/computeMetricsExpected.d.ts +12 -0
- package/dist/domain.operations/reflect/metrics/computeMetricsExpected.js +28 -0
- package/dist/domain.operations/reflect/metrics/computeMetricsExpected.js.map +1 -0
- package/dist/domain.operations/reflect/metrics/computeMetricsRealized.d.ts +26 -0
- package/dist/domain.operations/reflect/metrics/computeMetricsRealized.js +66 -0
- package/dist/domain.operations/reflect/metrics/computeMetricsRealized.js.map +1 -0
- package/dist/domain.operations/reflect/metrics/writeLogArtifact.d.ts +17 -0
- package/dist/domain.operations/reflect/metrics/writeLogArtifact.js +93 -0
- package/dist/domain.operations/reflect/metrics/writeLogArtifact.js.map +1 -0
- package/dist/domain.operations/reflect/step1/compileCitationsMarkdown.d.ts +8 -0
- package/dist/domain.operations/reflect/step1/compileCitationsMarkdown.js +28 -0
- package/dist/domain.operations/reflect/step1/compileCitationsMarkdown.js.map +1 -0
- package/dist/domain.operations/reflect/step1/compileReflectStep1Prompt.d.ts +14 -0
- package/dist/domain.operations/reflect/step1/compileReflectStep1Prompt.js +93 -0
- package/dist/domain.operations/reflect/step1/compileReflectStep1Prompt.js.map +1 -0
- package/dist/domain.operations/reflect/step2/compileReflectStep2Prompt.d.ts +18 -0
- package/dist/domain.operations/reflect/step2/compileReflectStep2Prompt.js +208 -0
- package/dist/domain.operations/reflect/step2/compileReflectStep2Prompt.js.map +1 -0
- package/dist/domain.operations/reflect/step2/executeManifestOperations.d.ts +17 -0
- package/dist/domain.operations/reflect/step2/executeManifestOperations.js +189 -0
- package/dist/domain.operations/reflect/step2/executeManifestOperations.js.map +1 -0
- package/dist/domain.operations/reflect/step2/parseManifestOperations.d.ts +8 -0
- package/dist/domain.operations/reflect/step2/parseManifestOperations.js +73 -0
- package/dist/domain.operations/reflect/step2/parseManifestOperations.js.map +1 -0
- package/dist/domain.operations/reflect/validateSourceDirectory.d.ts +9 -0
- package/dist/domain.operations/reflect/validateSourceDirectory.js +63 -0
- package/dist/domain.operations/reflect/validateSourceDirectory.js.map +1 -0
- package/dist/domain.operations/reflect/validateTargetDirectory.d.ts +10 -0
- package/dist/domain.operations/reflect/validateTargetDirectory.js +59 -0
- package/dist/domain.operations/reflect/validateTargetDirectory.js.map +1 -0
- package/dist/domain.operations/review/compileReviewPrompt.js +16 -5
- package/dist/domain.operations/review/compileReviewPrompt.js.map +1 -1
- package/dist/domain.operations/review/formatReviewOutput.d.ts +15 -6
- package/dist/domain.operations/review/formatReviewOutput.js +15 -17
- package/dist/domain.operations/review/formatReviewOutput.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/roles/architect/getArchitectRole.d.ts +6 -0
- package/dist/roles/architect/getArchitectRole.js +31 -0
- package/dist/roles/architect/getArchitectRole.js.map +1 -0
- package/dist/roles/brain/getBrainRole.d.ts +6 -0
- package/dist/roles/brain/getBrainRole.js +28 -0
- package/dist/roles/brain/getBrainRole.js.map +1 -0
- package/dist/roles/brain/skills/act/skillAct.d.ts +5 -0
- package/dist/roles/brain/skills/act/skillAct.js +147 -0
- package/dist/roles/brain/skills/act/skillAct.js.map +1 -0
- package/dist/roles/brain/skills/act/skillAct.ts +186 -0
- package/dist/roles/brain/skills/act/stepAct.d.ts +27 -0
- package/dist/roles/brain/skills/act/stepAct.js +95 -0
- package/dist/roles/brain/skills/act/stepAct.js.map +1 -0
- package/dist/roles/brain/skills/act/stepAct.ts +123 -0
- package/dist/roles/getRoleRegistry.js +5 -4
- package/dist/roles/getRoleRegistry.js.map +1 -1
- package/dist/roles/reviewer/briefs/on.rules/rules101.[article].md +41 -0
- package/dist/roles/reviewer/briefs/on.rules/rules101.citations.[article].md +88 -0
- package/dist/roles/reviewer/briefs/on.rules/rules101.collocated.[article].md +97 -0
- package/dist/roles/reviewer/briefs/on.rules/rules101.content.[article].md +228 -0
- package/dist/roles/reviewer/briefs/on.rules/rules101.content.[demo].forbid.failhide.md +87 -0
- package/dist/roles/reviewer/briefs/on.rules/rules101.content.[demo].forbid.gerunds.md +85 -0
- package/dist/roles/reviewer/briefs/on.rules/rules101.content.[demo].require.failfast.md +73 -0
- package/dist/roles/reviewer/briefs/on.rules/rules101.structure.[article].md +70 -0
- package/dist/roles/reviewer/skills/reflect/reflect.d.ts +30 -0
- package/dist/roles/reviewer/skills/reflect/reflect.js +305 -0
- package/dist/roles/reviewer/skills/reflect/reflect.js.map +1 -0
- package/dist/roles/reviewer/skills/reflect/reflect.sh +38 -0
- package/dist/roles/reviewer/skills/reflect/reflect.ts +356 -0
- package/dist/roles/reviewer/skills/review/review.js.map +1 -1
- package/dist/roles/reviewer/skills/review/review.ts +12 -3
- package/dist/roles/thinker/getThinkerBrief.d.ts +1 -1
- package/dist/roles/thinker/getThinkerRole.js +8 -8
- package/dist/roles/thinker/getThinkerRole.js.map +1 -1
- 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,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":"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"}
|