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.
- 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/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/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 +5 -3
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.invokeClaudeCodeForReflect = void 0;
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
5
|
+
const helpful_errors_1 = require("helpful-errors");
|
|
6
|
+
const extractJsonFromResultText_1 = require("./extractJsonFromResultText");
|
|
7
|
+
/**
|
|
8
|
+
* .what = invokes claude-code cli for reflect step
|
|
9
|
+
* .why = executes brain invocation via claude-code print mode
|
|
10
|
+
*/
|
|
11
|
+
const invokeClaudeCodeForReflect = async (input) => {
|
|
12
|
+
// determine model and settings based on rapid flag
|
|
13
|
+
// note: both models need enough turns to write multiple rules
|
|
14
|
+
const model = input.rapid ? 'haiku' : 'sonnet';
|
|
15
|
+
const maxTurns = input.rapid ? '50' : '30';
|
|
16
|
+
// invoke claude-code cli via stdin to avoid E2BIG on large prompts
|
|
17
|
+
const output = await new Promise((resolve, reject) => {
|
|
18
|
+
const child = (0, child_process_1.spawn)('claude', [
|
|
19
|
+
'-p',
|
|
20
|
+
'-',
|
|
21
|
+
'--output-format',
|
|
22
|
+
'json',
|
|
23
|
+
'--allowedTools',
|
|
24
|
+
'Write',
|
|
25
|
+
'--model',
|
|
26
|
+
model,
|
|
27
|
+
'--max-turns',
|
|
28
|
+
maxTurns,
|
|
29
|
+
], {
|
|
30
|
+
cwd: input.cwd,
|
|
31
|
+
});
|
|
32
|
+
let stdout = '';
|
|
33
|
+
let stderr = '';
|
|
34
|
+
child.stdout.on('data', (data) => {
|
|
35
|
+
stdout += data.toString();
|
|
36
|
+
});
|
|
37
|
+
child.stderr.on('data', (data) => {
|
|
38
|
+
stderr += data.toString();
|
|
39
|
+
});
|
|
40
|
+
child.on('error', reject);
|
|
41
|
+
child.on('close', (code) => {
|
|
42
|
+
if (code !== 0) {
|
|
43
|
+
// check for prompt too long error
|
|
44
|
+
if (stdout.includes('Prompt is too long')) {
|
|
45
|
+
reject(new helpful_errors_1.BadRequestError('prompt is too long for claude context window; reduce scope', {
|
|
46
|
+
status: code,
|
|
47
|
+
hint: 'try narrowing your feedback scope',
|
|
48
|
+
}));
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
reject(new helpful_errors_1.UnexpectedCodePathError('claude-code exited with non-zero', {
|
|
52
|
+
status: code,
|
|
53
|
+
stdout: stdout.slice(0, 2000),
|
|
54
|
+
stderr: stderr.slice(0, 2000),
|
|
55
|
+
}));
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
resolve(stdout);
|
|
59
|
+
});
|
|
60
|
+
// write prompt to stdin and close
|
|
61
|
+
child.stdin.write(input.prompt);
|
|
62
|
+
child.stdin.end();
|
|
63
|
+
});
|
|
64
|
+
// parse the json response from claude-code
|
|
65
|
+
const claudeResponse = (() => {
|
|
66
|
+
try {
|
|
67
|
+
return JSON.parse(output);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
throw new helpful_errors_1.UnexpectedCodePathError('failed to parse claude-code response', { output: output.slice(0, 2000) });
|
|
71
|
+
}
|
|
72
|
+
})();
|
|
73
|
+
// extract the result text from claude-code response
|
|
74
|
+
const resultText = (() => {
|
|
75
|
+
// claude-code json output has a 'result' field with the text content
|
|
76
|
+
if (claudeResponse.result && typeof claudeResponse.result === 'string') {
|
|
77
|
+
return claudeResponse.result;
|
|
78
|
+
}
|
|
79
|
+
// fallback: look for text in message content
|
|
80
|
+
if (claudeResponse.content && Array.isArray(claudeResponse.content)) {
|
|
81
|
+
const textContent = claudeResponse.content.find((c) => c.type === 'text');
|
|
82
|
+
if (textContent?.text) {
|
|
83
|
+
return textContent.text;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
throw new helpful_errors_1.UnexpectedCodePathError('failed to extract result from response', {
|
|
87
|
+
claudeResponse,
|
|
88
|
+
});
|
|
89
|
+
})();
|
|
90
|
+
// extract JSON from result text (may be wrapped in markdown code block or inline backticks)
|
|
91
|
+
const jsonContent = (0, extractJsonFromResultText_1.extractJsonFromResultText)({ resultText });
|
|
92
|
+
// parse the extracted JSON
|
|
93
|
+
const response = (() => {
|
|
94
|
+
try {
|
|
95
|
+
return JSON.parse(jsonContent);
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
throw new helpful_errors_1.UnexpectedCodePathError('failed to parse JSON from result', {
|
|
99
|
+
resultText: resultText.slice(0, 2000),
|
|
100
|
+
jsonContent: jsonContent.slice(0, 2000),
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
})();
|
|
104
|
+
// extract usage from response
|
|
105
|
+
const usage = (() => {
|
|
106
|
+
if (!claudeResponse.usage)
|
|
107
|
+
throw new helpful_errors_1.UnexpectedCodePathError('response.usage not found', {
|
|
108
|
+
claudeResponse,
|
|
109
|
+
});
|
|
110
|
+
return {
|
|
111
|
+
input: claudeResponse.usage.input_tokens ?? 0,
|
|
112
|
+
cacheWrite: claudeResponse.usage.cache_creation_input_tokens ?? 0,
|
|
113
|
+
cacheRead: claudeResponse.usage.cache_read_input_tokens ?? 0,
|
|
114
|
+
output: claudeResponse.usage.output_tokens ?? 0,
|
|
115
|
+
};
|
|
116
|
+
})();
|
|
117
|
+
return { response, usage };
|
|
118
|
+
};
|
|
119
|
+
exports.invokeClaudeCodeForReflect = invokeClaudeCodeForReflect;
|
|
120
|
+
//# sourceMappingURL=invokeClaudeCodeForReflect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invokeClaudeCodeForReflect.js","sourceRoot":"","sources":["../../../src/domain.operations/reflect/invokeClaudeCodeForReflect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* .what = estimates tokens and cost before reflect execution
|
|
3
|
+
* .why = enables context window check and cost preview
|
|
4
|
+
*/
|
|
5
|
+
export declare const computeMetricsExpected: (input: {
|
|
6
|
+
step1PromptTokens: number;
|
|
7
|
+
step2PromptTokens: number;
|
|
8
|
+
}) => {
|
|
9
|
+
tokens: number;
|
|
10
|
+
contextWindowPercent: number;
|
|
11
|
+
cost: number;
|
|
12
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeMetricsExpected = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* .what = estimates tokens and cost before reflect execution
|
|
6
|
+
* .why = enables context window check and cost preview
|
|
7
|
+
*/
|
|
8
|
+
const computeMetricsExpected = (input) => {
|
|
9
|
+
// claude sonnet context window is 200k tokens
|
|
10
|
+
const contextWindow = 200000;
|
|
11
|
+
// estimate output tokens as ~30% of input
|
|
12
|
+
const estimatedOutputTokens = (input.step1PromptTokens + input.step2PromptTokens) * 0.3;
|
|
13
|
+
// total tokens includes input + estimated output
|
|
14
|
+
const tokens = input.step1PromptTokens + input.step2PromptTokens + estimatedOutputTokens;
|
|
15
|
+
// context window usage as percentage
|
|
16
|
+
const contextWindowPercent = (tokens / contextWindow) * 100;
|
|
17
|
+
// claude sonnet pricing: $3/1M input, $15/1M output
|
|
18
|
+
const inputCost = ((input.step1PromptTokens + input.step2PromptTokens) / 1000000) * 3;
|
|
19
|
+
const outputCost = (estimatedOutputTokens / 1000000) * 15;
|
|
20
|
+
const cost = inputCost + outputCost;
|
|
21
|
+
return {
|
|
22
|
+
tokens: Math.round(tokens),
|
|
23
|
+
contextWindowPercent: Math.round(contextWindowPercent * 100) / 100,
|
|
24
|
+
cost: Math.round(cost * 1000) / 1000,
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
exports.computeMetricsExpected = computeMetricsExpected;
|
|
28
|
+
//# sourceMappingURL=computeMetricsExpected.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeMetricsExpected.js","sourceRoot":"","sources":["../../../../src/domain.operations/reflect/metrics/computeMetricsExpected.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACI,MAAM,sBAAsB,GAAG,CAAC,KAGtC,EAIC,EAAE;IACF,8CAA8C;IAC9C,MAAM,aAAa,GAAG,MAAO,CAAC;IAE9B,0CAA0C;IAC1C,MAAM,qBAAqB,GACzB,CAAC,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAC;IAE5D,iDAAiD;IACjD,MAAM,MAAM,GACV,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,GAAG,qBAAqB,CAAC;IAE5E,qCAAqC;IACrC,MAAM,oBAAoB,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC;IAE5D,oDAAoD;IACpD,MAAM,SAAS,GACb,CAAC,CAAC,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,OAAS,CAAC,GAAG,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,CAAC,qBAAqB,GAAG,OAAS,CAAC,GAAG,EAAE,CAAC;IAC5D,MAAM,IAAI,GAAG,SAAS,GAAG,UAAU,CAAC;IAEpC,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC1B,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,GAAG,CAAC,GAAG,GAAG;QAClE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI;KACrC,CAAC;AACJ,CAAC,CAAC;AAjCW,QAAA,sBAAsB,0BAiCjC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ReviewerReflectCostMetrics, ReviewerReflectTokenMetrics } from '../../../domain.objects/Reviewer/ReviewerReflectMetrics';
|
|
2
|
+
/**
|
|
3
|
+
* .what = computes actual metrics from brain responses
|
|
4
|
+
* .why = enables accurate cost track after execution
|
|
5
|
+
*/
|
|
6
|
+
export declare const computeMetricsRealized: (input: {
|
|
7
|
+
step1: {
|
|
8
|
+
tokens: ReviewerReflectTokenMetrics;
|
|
9
|
+
};
|
|
10
|
+
step2: {
|
|
11
|
+
tokens: ReviewerReflectTokenMetrics;
|
|
12
|
+
};
|
|
13
|
+
}) => {
|
|
14
|
+
step1: {
|
|
15
|
+
tokens: ReviewerReflectTokenMetrics;
|
|
16
|
+
cost: ReviewerReflectCostMetrics;
|
|
17
|
+
};
|
|
18
|
+
step2: {
|
|
19
|
+
tokens: ReviewerReflectTokenMetrics;
|
|
20
|
+
cost: ReviewerReflectCostMetrics;
|
|
21
|
+
};
|
|
22
|
+
total: {
|
|
23
|
+
tokens: ReviewerReflectTokenMetrics;
|
|
24
|
+
cost: ReviewerReflectCostMetrics;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeMetricsRealized = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* .what = computes actual metrics from brain responses
|
|
6
|
+
* .why = enables accurate cost track after execution
|
|
7
|
+
*/
|
|
8
|
+
const computeMetricsRealized = (input) => {
|
|
9
|
+
// compute costs for step 1
|
|
10
|
+
const step1Cost = computeStepCost(input.step1.tokens);
|
|
11
|
+
// compute costs for step 2
|
|
12
|
+
const step2Cost = computeStepCost(input.step2.tokens);
|
|
13
|
+
// compute total tokens
|
|
14
|
+
const totalTokens = {
|
|
15
|
+
input: input.step1.tokens.input + input.step2.tokens.input,
|
|
16
|
+
cacheWrite: input.step1.tokens.cacheWrite + input.step2.tokens.cacheWrite,
|
|
17
|
+
cacheRead: input.step1.tokens.cacheRead + input.step2.tokens.cacheRead,
|
|
18
|
+
output: input.step1.tokens.output + input.step2.tokens.output,
|
|
19
|
+
};
|
|
20
|
+
// compute total cost
|
|
21
|
+
const totalCost = {
|
|
22
|
+
input: step1Cost.input + step2Cost.input,
|
|
23
|
+
cacheWrite: step1Cost.cacheWrite + step2Cost.cacheWrite,
|
|
24
|
+
cacheRead: step1Cost.cacheRead + step2Cost.cacheRead,
|
|
25
|
+
output: step1Cost.output + step2Cost.output,
|
|
26
|
+
total: step1Cost.total + step2Cost.total,
|
|
27
|
+
};
|
|
28
|
+
return {
|
|
29
|
+
step1: {
|
|
30
|
+
tokens: input.step1.tokens,
|
|
31
|
+
cost: step1Cost,
|
|
32
|
+
},
|
|
33
|
+
step2: {
|
|
34
|
+
tokens: input.step2.tokens,
|
|
35
|
+
cost: step2Cost,
|
|
36
|
+
},
|
|
37
|
+
total: {
|
|
38
|
+
tokens: totalTokens,
|
|
39
|
+
cost: totalCost,
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
exports.computeMetricsRealized = computeMetricsRealized;
|
|
44
|
+
/**
|
|
45
|
+
* .what = computes cost for a single step
|
|
46
|
+
* .why = applies claude sonnet pricing to token counts
|
|
47
|
+
*/
|
|
48
|
+
const computeStepCost = (tokens) => {
|
|
49
|
+
// claude sonnet pricing per 1M tokens:
|
|
50
|
+
// - input: $3
|
|
51
|
+
// - cache write: $3.75
|
|
52
|
+
// - cache read: $0.30
|
|
53
|
+
// - output: $15
|
|
54
|
+
const inputCost = (tokens.input / 1000000) * 3;
|
|
55
|
+
const cacheWriteCost = (tokens.cacheWrite / 1000000) * 3.75;
|
|
56
|
+
const cacheReadCost = (tokens.cacheRead / 1000000) * 0.3;
|
|
57
|
+
const outputCost = (tokens.output / 1000000) * 15;
|
|
58
|
+
return {
|
|
59
|
+
input: Math.round(inputCost * 10000) / 10000,
|
|
60
|
+
cacheWrite: Math.round(cacheWriteCost * 10000) / 10000,
|
|
61
|
+
cacheRead: Math.round(cacheReadCost * 10000) / 10000,
|
|
62
|
+
output: Math.round(outputCost * 10000) / 10000,
|
|
63
|
+
total: Math.round((inputCost + cacheWriteCost + cacheReadCost + outputCost) * 10000) / 10000,
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=computeMetricsRealized.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeMetricsRealized.js","sourceRoot":"","sources":["../../../../src/domain.operations/reflect/metrics/computeMetricsRealized.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReviewerReflectMetrics } from '../../../domain.objects/Reviewer/ReviewerReflectMetrics';
|
|
2
|
+
/**
|
|
3
|
+
* .what = writes execution log artifact to draft directory
|
|
4
|
+
* .why = enables review of execution metrics and results
|
|
5
|
+
*/
|
|
6
|
+
export declare const writeLogArtifact: (input: {
|
|
7
|
+
draftDir: string;
|
|
8
|
+
metrics: ReviewerReflectMetrics;
|
|
9
|
+
results: {
|
|
10
|
+
created: number;
|
|
11
|
+
updated: number;
|
|
12
|
+
appended: number;
|
|
13
|
+
omitted: number;
|
|
14
|
+
};
|
|
15
|
+
}) => Promise<{
|
|
16
|
+
logPath: string;
|
|
17
|
+
}>;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.writeLogArtifact = void 0;
|
|
27
|
+
const fs = __importStar(require("fs/promises"));
|
|
28
|
+
const path = __importStar(require("path"));
|
|
29
|
+
/**
|
|
30
|
+
* .what = writes execution log artifact to draft directory
|
|
31
|
+
* .why = enables review of execution metrics and results
|
|
32
|
+
*/
|
|
33
|
+
const writeLogArtifact = async (input) => {
|
|
34
|
+
// build log content
|
|
35
|
+
const logContent = buildLogContent({
|
|
36
|
+
metrics: input.metrics,
|
|
37
|
+
results: input.results,
|
|
38
|
+
});
|
|
39
|
+
// write to draft directory
|
|
40
|
+
const logPath = path.join(input.draftDir, 'reflect.log.md');
|
|
41
|
+
await fs.writeFile(logPath, logContent, 'utf-8');
|
|
42
|
+
return { logPath };
|
|
43
|
+
};
|
|
44
|
+
exports.writeLogArtifact = writeLogArtifact;
|
|
45
|
+
/**
|
|
46
|
+
* .what = builds markdown content for execution log
|
|
47
|
+
* .why = formats metrics and results for review
|
|
48
|
+
*/
|
|
49
|
+
const buildLogContent = (input) => {
|
|
50
|
+
const sections = [];
|
|
51
|
+
// header
|
|
52
|
+
sections.push(`# reviewer.reflect execution log`);
|
|
53
|
+
sections.push(`timestamp: ${new Date().toISOString()}`);
|
|
54
|
+
sections.push('');
|
|
55
|
+
// file counts
|
|
56
|
+
sections.push(`## files`);
|
|
57
|
+
sections.push(`- feedback files: ${input.metrics.files.feedbackCount}`);
|
|
58
|
+
sections.push(`- rules proposed: ${input.metrics.files.rulesCount}`);
|
|
59
|
+
sections.push('');
|
|
60
|
+
// expected metrics
|
|
61
|
+
sections.push(`## expected (pre-execution)`);
|
|
62
|
+
sections.push(`- tokens: ${input.metrics.expected.tokens.toLocaleString()}`);
|
|
63
|
+
sections.push(`- context window: ${input.metrics.expected.contextWindowPercent}%`);
|
|
64
|
+
sections.push(`- estimated cost: $${input.metrics.expected.cost.toFixed(3)}`);
|
|
65
|
+
sections.push('');
|
|
66
|
+
// realized metrics
|
|
67
|
+
sections.push(`## realized (post-execution)`);
|
|
68
|
+
sections.push('');
|
|
69
|
+
sections.push(`### step 1: propose pure rules`);
|
|
70
|
+
sections.push(`- input tokens: ${input.metrics.realized.step1.tokens.input.toLocaleString()}`);
|
|
71
|
+
sections.push(`- output tokens: ${input.metrics.realized.step1.tokens.output.toLocaleString()}`);
|
|
72
|
+
sections.push(`- cost: $${input.metrics.realized.step1.cost.total.toFixed(4)}`);
|
|
73
|
+
sections.push('');
|
|
74
|
+
sections.push(`### step 2: blend with existing`);
|
|
75
|
+
sections.push(`- input tokens: ${input.metrics.realized.step2.tokens.input.toLocaleString()}`);
|
|
76
|
+
sections.push(`- output tokens: ${input.metrics.realized.step2.tokens.output.toLocaleString()}`);
|
|
77
|
+
sections.push(`- cost: $${input.metrics.realized.step2.cost.total.toFixed(4)}`);
|
|
78
|
+
sections.push('');
|
|
79
|
+
sections.push(`### total`);
|
|
80
|
+
sections.push(`- input tokens: ${input.metrics.realized.total.tokens.input.toLocaleString()}`);
|
|
81
|
+
sections.push(`- output tokens: ${input.metrics.realized.total.tokens.output.toLocaleString()}`);
|
|
82
|
+
sections.push(`- total cost: $${input.metrics.realized.total.cost.total.toFixed(4)}`);
|
|
83
|
+
sections.push('');
|
|
84
|
+
// results
|
|
85
|
+
sections.push(`## blend results`);
|
|
86
|
+
sections.push(`- created: ${input.results.created}`);
|
|
87
|
+
sections.push(`- updated: ${input.results.updated}`);
|
|
88
|
+
sections.push(`- appended: ${input.results.appended}`);
|
|
89
|
+
sections.push(`- omitted: ${input.results.omitted}`);
|
|
90
|
+
sections.push('');
|
|
91
|
+
return sections.join('\n');
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=writeLogArtifact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeLogArtifact.js","sourceRoot":"","sources":["../../../../src/domain.operations/reflect/metrics/writeLogArtifact.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* .what = generates citations.md content from feedback files
|
|
3
|
+
* .why = creates permanent record of all feedback sources for rule proposals
|
|
4
|
+
*/
|
|
5
|
+
export declare const compileCitationsMarkdown: (input: {
|
|
6
|
+
feedbackFiles: string[];
|
|
7
|
+
cwd: string;
|
|
8
|
+
}) => string;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.compileCitationsMarkdown = void 0;
|
|
4
|
+
const genGitHubFileUrl_1 = require("../../../domain.operations/git/genGitHubFileUrl");
|
|
5
|
+
/**
|
|
6
|
+
* .what = generates citations.md content from feedback files
|
|
7
|
+
* .why = creates permanent record of all feedback sources for rule proposals
|
|
8
|
+
*/
|
|
9
|
+
const compileCitationsMarkdown = (input) => {
|
|
10
|
+
const lines = [
|
|
11
|
+
'# citations',
|
|
12
|
+
'',
|
|
13
|
+
'feedback files extracted for rule proposal:',
|
|
14
|
+
'',
|
|
15
|
+
];
|
|
16
|
+
for (const file of input.feedbackFiles) {
|
|
17
|
+
const url = (0, genGitHubFileUrl_1.genGitHubFileUrl)({ filePath: file, cwd: input.cwd });
|
|
18
|
+
lines.push(`- [${file}](${url})`);
|
|
19
|
+
}
|
|
20
|
+
lines.push('');
|
|
21
|
+
lines.push('---');
|
|
22
|
+
lines.push('');
|
|
23
|
+
lines.push(`generated: ${new Date().toISOString()}`);
|
|
24
|
+
lines.push(`total: ${input.feedbackFiles.length} files`);
|
|
25
|
+
return lines.join('\n');
|
|
26
|
+
};
|
|
27
|
+
exports.compileCitationsMarkdown = compileCitationsMarkdown;
|
|
28
|
+
//# sourceMappingURL=compileCitationsMarkdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compileCitationsMarkdown.js","sourceRoot":"","sources":["../../../../src/domain.operations/reflect/step1/compileCitationsMarkdown.ts"],"names":[],"mappings":";;;AAAA,kFAA+E;AAE/E;;;GAGG;AACI,MAAM,wBAAwB,GAAG,CAAC,KAGxC,EAAU,EAAE;IACX,MAAM,KAAK,GAAa;QACtB,aAAa;QACb,EAAE;QACF,6CAA6C;QAC7C,EAAE;KACH,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,IAAA,mCAAgB,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,aAAa,CAAC,MAAM,QAAQ,CAAC,CAAC;IAEzD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC,CAAC;AAvBW,QAAA,wBAAwB,4BAuBnC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* .what = compiles step 1 brain prompt for rule proposal
|
|
3
|
+
* .why = instructs brain to extract rules from feedback citations
|
|
4
|
+
*/
|
|
5
|
+
export declare const compileReflectStep1Prompt: (input: {
|
|
6
|
+
feedbackFiles: string[];
|
|
7
|
+
citationsMarkdown: string;
|
|
8
|
+
draftDir: string;
|
|
9
|
+
cwd: string;
|
|
10
|
+
mode: 'soft' | 'hard';
|
|
11
|
+
}) => Promise<{
|
|
12
|
+
prompt: string;
|
|
13
|
+
tokenEstimate: number;
|
|
14
|
+
}>;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.compileReflectStep1Prompt = void 0;
|
|
27
|
+
const fs = __importStar(require("fs/promises"));
|
|
28
|
+
const path = __importStar(require("path"));
|
|
29
|
+
/**
|
|
30
|
+
* .what = compiles step 1 brain prompt for rule proposal
|
|
31
|
+
* .why = instructs brain to extract rules from feedback citations
|
|
32
|
+
*/
|
|
33
|
+
const compileReflectStep1Prompt = async (input) => {
|
|
34
|
+
const sections = [];
|
|
35
|
+
// objective section
|
|
36
|
+
sections.push(`# objective
|
|
37
|
+
|
|
38
|
+
propose rules from feedback citations.
|
|
39
|
+
|
|
40
|
+
extract generalized insights from the feedback and propose them as rule files.
|
|
41
|
+
do NOT consult any existing rules - propose with fresh perspective.
|
|
42
|
+
|
|
43
|
+
IMPORTANT: you MUST write rule files using the Write tool. do NOT ask clarifying questions.
|
|
44
|
+
if feedback is unclear, skip it - only create rules for clear patterns.
|
|
45
|
+
`);
|
|
46
|
+
// citations section
|
|
47
|
+
sections.push(`# citations
|
|
48
|
+
|
|
49
|
+
${input.citationsMarkdown}
|
|
50
|
+
`);
|
|
51
|
+
// feedback content (hard mode only)
|
|
52
|
+
if (input.mode === 'hard') {
|
|
53
|
+
sections.push('# feedback content\n');
|
|
54
|
+
for (const file of input.feedbackFiles) {
|
|
55
|
+
const content = await fs.readFile(path.join(input.cwd, file), 'utf-8');
|
|
56
|
+
sections.push(`## ${file}\n\n\`\`\`\n${content}\n\`\`\`\n`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// instructions section
|
|
60
|
+
sections.push(`# instructions
|
|
61
|
+
|
|
62
|
+
1. analyze the feedback citations${input.mode === 'hard' ? ' and content' : ''}
|
|
63
|
+
2. identify patterns and generalizable insights
|
|
64
|
+
3. propose rules as \`rule.$directive.$topic.md\` files
|
|
65
|
+
4. each rule must include:
|
|
66
|
+
- # tldr section with ## severity, .what summary, .why rationale
|
|
67
|
+
- ---\\n---\\n--- separator
|
|
68
|
+
- # deets section with ## .citations which contain a github url and relevant excerpt
|
|
69
|
+
5. directives: forbid (blocker), require (blocker), avoid (nitpick), prefer (nitpick)
|
|
70
|
+
6. consolidate multiple feedback citations into single rule where applicable
|
|
71
|
+
7. be thorough - include code examples and detailed explanations where helpful
|
|
72
|
+
|
|
73
|
+
# output
|
|
74
|
+
|
|
75
|
+
use the Write tool to write each rule file to: ${input.draftDir}/pure/
|
|
76
|
+
|
|
77
|
+
after writing all rules, respond with a JSON summary:
|
|
78
|
+
\`\`\`json
|
|
79
|
+
{
|
|
80
|
+
"rules": [
|
|
81
|
+
{ "name": "rule.forbid.example.md" },
|
|
82
|
+
{ "name": "rule.require.other.md" }
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
\`\`\`
|
|
86
|
+
`);
|
|
87
|
+
const prompt = sections.join('\n');
|
|
88
|
+
// estimate tokens (rough: 4 chars per token)
|
|
89
|
+
const tokenEstimate = Math.ceil(prompt.length / 4);
|
|
90
|
+
return { prompt, tokenEstimate };
|
|
91
|
+
};
|
|
92
|
+
exports.compileReflectStep1Prompt = compileReflectStep1Prompt;
|
|
93
|
+
//# sourceMappingURL=compileReflectStep1Prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compileReflectStep1Prompt.js","sourceRoot":"","sources":["../../../../src/domain.operations/reflect/step1/compileReflectStep1Prompt.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,2CAA6B;AAE7B;;;GAGG;AACI,MAAM,yBAAyB,GAAG,KAAK,EAAE,KAM/C,EAGE,EAAE;IACH,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,oBAAoB;IACpB,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;CASf,CAAC,CAAC;IAED,oBAAoB;IACpB,QAAQ,CAAC,IAAI,CAAC;;EAEd,KAAK,CAAC,iBAAiB;CACxB,CAAC,CAAC;IAED,oCAAoC;IACpC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YACvE,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,OAAO,YAAY,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,QAAQ,CAAC,IAAI,CAAC;;mCAEmB,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;iDAa7B,KAAK,CAAC,QAAQ;;;;;;;;;;;CAW9D,CAAC,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnC,6CAA6C;IAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEnD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AACnC,CAAC,CAAC;AA1EW,QAAA,yBAAyB,6BA0EpC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* .what = compiles step 2 brain prompt for rule blend
|
|
3
|
+
* .why = instructs brain to create manifest.json for blend operations
|
|
4
|
+
*
|
|
5
|
+
* .note = when rapid=true (haiku), SET_UPDATE is disabled because haiku cannot
|
|
6
|
+
* reliably provide required fields. this means duplicates may be produced
|
|
7
|
+
* when prior rules exist. use rapid=false (sonnet) for proper deduplication.
|
|
8
|
+
*/
|
|
9
|
+
export declare const compileReflectStep2Prompt: (input: {
|
|
10
|
+
targetDir: string;
|
|
11
|
+
draftDir: string;
|
|
12
|
+
pureDir: string;
|
|
13
|
+
mode: 'soft' | 'hard';
|
|
14
|
+
rapid?: boolean;
|
|
15
|
+
}) => Promise<{
|
|
16
|
+
prompt: string;
|
|
17
|
+
tokenEstimate: number;
|
|
18
|
+
}>;
|