@phuetz/code-buddy 0.1.24 → 0.1.26
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/README.md +1049 -741
- package/dist/agent/codebuddy-agent.d.ts +5 -0
- package/dist/agent/codebuddy-agent.js +46 -1
- package/dist/agent/codebuddy-agent.js.map +1 -1
- package/dist/agent/execution/agent-executor.d.ts +12 -0
- package/dist/agent/execution/agent-executor.js +147 -6
- package/dist/agent/execution/agent-executor.js.map +1 -1
- package/dist/agent/lessons-tracker.d.ts +50 -0
- package/dist/agent/lessons-tracker.js +234 -0
- package/dist/agent/lessons-tracker.js.map +1 -0
- package/dist/agent/message-queue.d.ts +39 -2
- package/dist/agent/message-queue.js +67 -2
- package/dist/agent/message-queue.js.map +1 -1
- package/dist/agent/middleware/index.d.ts +1 -0
- package/dist/agent/middleware/index.js +1 -0
- package/dist/agent/middleware/index.js.map +1 -1
- package/dist/agent/middleware/workflow-guard.d.ts +21 -0
- package/dist/agent/middleware/workflow-guard.js +94 -0
- package/dist/agent/middleware/workflow-guard.js.map +1 -0
- package/dist/agent/repo-profiler.d.ts +61 -0
- package/dist/agent/repo-profiler.js +295 -0
- package/dist/agent/repo-profiler.js.map +1 -0
- package/dist/agent/response-constraint.d.ts +61 -0
- package/dist/agent/response-constraint.js +91 -0
- package/dist/agent/response-constraint.js.map +1 -0
- package/dist/agent/todo-tracker.d.ts +67 -0
- package/dist/agent/todo-tracker.js +245 -0
- package/dist/agent/todo-tracker.js.map +1 -0
- package/dist/agent/tool-handler.d.ts +11 -0
- package/dist/agent/tool-handler.js +79 -1
- package/dist/agent/tool-handler.js.map +1 -1
- package/dist/agent/types.d.ts +20 -2
- package/dist/agent/wide-research.d.ts +93 -0
- package/dist/agent/wide-research.js +232 -0
- package/dist/agent/wide-research.js.map +1 -0
- package/dist/channels/index.d.ts +2 -0
- package/dist/channels/index.js +2 -0
- package/dist/channels/index.js.map +1 -1
- package/dist/channels/pro/callback-router.d.ts +54 -0
- package/dist/channels/pro/callback-router.js +178 -0
- package/dist/channels/pro/callback-router.js.map +1 -0
- package/dist/channels/pro/ci-watcher.d.ts +86 -0
- package/dist/channels/pro/ci-watcher.js +343 -0
- package/dist/channels/pro/ci-watcher.js.map +1 -0
- package/dist/channels/pro/diff-first.d.ts +63 -0
- package/dist/channels/pro/diff-first.js +187 -0
- package/dist/channels/pro/diff-first.js.map +1 -0
- package/dist/channels/pro/enhanced-commands.d.ts +83 -0
- package/dist/channels/pro/enhanced-commands.js +218 -0
- package/dist/channels/pro/enhanced-commands.js.map +1 -0
- package/dist/channels/pro/index.d.ts +19 -0
- package/dist/channels/pro/index.js +21 -0
- package/dist/channels/pro/index.js.map +1 -0
- package/dist/channels/pro/pro-features.d.ts +79 -0
- package/dist/channels/pro/pro-features.js +203 -0
- package/dist/channels/pro/pro-features.js.map +1 -0
- package/dist/channels/pro/run-commands.d.ts +59 -0
- package/dist/channels/pro/run-commands.js +122 -0
- package/dist/channels/pro/run-commands.js.map +1 -0
- package/dist/channels/pro/run-tracker.d.ts +74 -0
- package/dist/channels/pro/run-tracker.js +252 -0
- package/dist/channels/pro/run-tracker.js.map +1 -0
- package/dist/channels/pro/scoped-auth.d.ts +97 -0
- package/dist/channels/pro/scoped-auth.js +340 -0
- package/dist/channels/pro/scoped-auth.js.map +1 -0
- package/dist/channels/pro/text-formatter.d.ts +27 -0
- package/dist/channels/pro/text-formatter.js +269 -0
- package/dist/channels/pro/text-formatter.js.map +1 -0
- package/dist/channels/pro/types.d.ts +242 -0
- package/dist/channels/pro/types.js +14 -0
- package/dist/channels/pro/types.js.map +1 -0
- package/dist/channels/streaming-policy.d.ts +66 -0
- package/dist/channels/streaming-policy.js +266 -0
- package/dist/channels/streaming-policy.js.map +1 -0
- package/dist/channels/telegram/ci-watcher.d.ts +5 -0
- package/dist/channels/telegram/ci-watcher.js +5 -0
- package/dist/channels/telegram/ci-watcher.js.map +1 -0
- package/dist/channels/telegram/client.d.ts +28 -0
- package/dist/channels/telegram/client.js +147 -1
- package/dist/channels/telegram/client.js.map +1 -1
- package/dist/channels/telegram/diff-first.d.ts +5 -0
- package/dist/channels/telegram/diff-first.js +5 -0
- package/dist/channels/telegram/diff-first.js.map +1 -0
- package/dist/channels/telegram/enhanced-commands.d.ts +6 -0
- package/dist/channels/telegram/enhanced-commands.js +6 -0
- package/dist/channels/telegram/enhanced-commands.js.map +1 -0
- package/dist/channels/telegram/index.d.ts +6 -0
- package/dist/channels/telegram/index.js +6 -0
- package/dist/channels/telegram/index.js.map +1 -1
- package/dist/channels/telegram/pro-formatter.d.ts +30 -0
- package/dist/channels/telegram/pro-formatter.js +276 -0
- package/dist/channels/telegram/pro-formatter.js.map +1 -0
- package/dist/channels/telegram/run-commands.d.ts +5 -0
- package/dist/channels/telegram/run-commands.js +6 -0
- package/dist/channels/telegram/run-commands.js.map +1 -0
- package/dist/channels/telegram/run-tracker.d.ts +5 -0
- package/dist/channels/telegram/run-tracker.js +5 -0
- package/dist/channels/telegram/run-tracker.js.map +1 -0
- package/dist/channels/telegram/scoped-auth.d.ts +6 -0
- package/dist/channels/telegram/scoped-auth.js +5 -0
- package/dist/channels/telegram/scoped-auth.js.map +1 -0
- package/dist/channels/telegram/types.d.ts +34 -0
- package/dist/codebuddy/client.js +14 -1
- package/dist/codebuddy/client.js.map +1 -1
- package/dist/commands/dev/index.d.ts +12 -0
- package/dist/commands/dev/index.js +231 -0
- package/dist/commands/dev/index.js.map +1 -0
- package/dist/commands/dev/workflows.d.ts +31 -0
- package/dist/commands/dev/workflows.js +214 -0
- package/dist/commands/dev/workflows.js.map +1 -0
- package/dist/commands/execpolicy.d.ts +17 -0
- package/dist/commands/execpolicy.js +155 -0
- package/dist/commands/execpolicy.js.map +1 -0
- package/dist/commands/knowledge.d.ts +13 -0
- package/dist/commands/knowledge.js +142 -0
- package/dist/commands/knowledge.js.map +1 -0
- package/dist/commands/lessons.d.ts +11 -0
- package/dist/commands/lessons.js +129 -0
- package/dist/commands/lessons.js.map +1 -0
- package/dist/commands/pairing.d.ts +14 -0
- package/dist/commands/pairing.js +132 -0
- package/dist/commands/pairing.js.map +1 -0
- package/dist/commands/research/index.d.ts +13 -0
- package/dist/commands/research/index.js +91 -0
- package/dist/commands/research/index.js.map +1 -0
- package/dist/commands/run-cli/index.d.ts +11 -0
- package/dist/commands/run-cli/index.js +49 -0
- package/dist/commands/run-cli/index.js.map +1 -0
- package/dist/commands/todos.d.ts +9 -0
- package/dist/commands/todos.js +119 -0
- package/dist/commands/todos.js.map +1 -0
- package/dist/config/toml-config.d.ts +21 -0
- package/dist/config/toml-config.js +15 -0
- package/dist/config/toml-config.js.map +1 -1
- package/dist/context/enhanced-compression.js +12 -1
- package/dist/context/enhanced-compression.js.map +1 -1
- package/dist/context/observation-variator.d.ts +44 -0
- package/dist/context/observation-variator.js +83 -0
- package/dist/context/observation-variator.js.map +1 -0
- package/dist/context/precompaction-flush.d.ts +40 -0
- package/dist/context/precompaction-flush.js +134 -0
- package/dist/context/precompaction-flush.js.map +1 -0
- package/dist/context/restorable-compression.d.ts +80 -0
- package/dist/context/restorable-compression.js +228 -0
- package/dist/context/restorable-compression.js.map +1 -0
- package/dist/daemon/daily-reset.d.ts +77 -0
- package/dist/daemon/daily-reset.js +175 -0
- package/dist/daemon/daily-reset.js.map +1 -0
- package/dist/daemon/index.d.ts +1 -0
- package/dist/daemon/index.js +1 -0
- package/dist/daemon/index.js.map +1 -1
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -1
- package/dist/knowledge/knowledge-manager.d.ts +77 -0
- package/dist/knowledge/knowledge-manager.js +244 -0
- package/dist/knowledge/knowledge-manager.js.map +1 -0
- package/dist/observability/run-store.d.ts +133 -0
- package/dist/observability/run-store.js +419 -0
- package/dist/observability/run-store.js.map +1 -0
- package/dist/observability/run-viewer.d.ts +33 -0
- package/dist/observability/run-viewer.js +254 -0
- package/dist/observability/run-viewer.js.map +1 -0
- package/dist/optimization/cache-breakpoints.d.ts +52 -0
- package/dist/optimization/cache-breakpoints.js +97 -0
- package/dist/optimization/cache-breakpoints.js.map +1 -0
- package/dist/persistence/session-store.d.ts +3 -1
- package/dist/persistence/session-store.js +1 -1
- package/dist/persistence/session-store.js.map +1 -1
- package/dist/prompts/system-base.js +51 -7
- package/dist/prompts/system-base.js.map +1 -1
- package/dist/prompts/variation-injector.d.ts +55 -0
- package/dist/prompts/variation-injector.js +171 -0
- package/dist/prompts/variation-injector.js.map +1 -0
- package/dist/prompts/workflow-rules.d.ts +10 -0
- package/dist/prompts/workflow-rules.js +79 -0
- package/dist/prompts/workflow-rules.js.map +1 -0
- package/dist/sandbox/execpolicy.d.ts +45 -0
- package/dist/sandbox/execpolicy.js +80 -0
- package/dist/sandbox/execpolicy.js.map +1 -1
- package/dist/sandbox/os-sandbox.d.ts +25 -0
- package/dist/sandbox/os-sandbox.js +73 -0
- package/dist/sandbox/os-sandbox.js.map +1 -1
- package/dist/security/security-audit.d.ts +10 -0
- package/dist/security/security-audit.js +116 -0
- package/dist/security/security-audit.js.map +1 -1
- package/dist/security/shell-env-policy.d.ts +45 -0
- package/dist/security/shell-env-policy.js +141 -0
- package/dist/security/shell-env-policy.js.map +1 -0
- package/dist/security/ssrf-guard.d.ts +61 -0
- package/dist/security/ssrf-guard.js +382 -0
- package/dist/security/ssrf-guard.js.map +1 -0
- package/dist/security/write-policy.d.ts +57 -0
- package/dist/security/write-policy.js +117 -0
- package/dist/security/write-policy.js.map +1 -0
- package/dist/services/prompt-builder.js +37 -0
- package/dist/services/prompt-builder.js.map +1 -1
- package/dist/themes/theme-schema.d.ts +10 -10
- package/dist/tools/ask-human-tool.d.ts +62 -0
- package/dist/tools/ask-human-tool.js +112 -0
- package/dist/tools/ask-human-tool.js.map +1 -0
- package/dist/tools/bash/bash-tool.d.ts +15 -0
- package/dist/tools/bash/bash-tool.js +62 -0
- package/dist/tools/bash/bash-tool.js.map +1 -1
- package/dist/tools/bash/command-validator.d.ts +1 -0
- package/dist/tools/bash/command-validator.js +5 -0
- package/dist/tools/bash/command-validator.js.map +1 -1
- package/dist/tools/create-skill-tool.d.ts +87 -0
- package/dist/tools/create-skill-tool.js +142 -0
- package/dist/tools/create-skill-tool.js.map +1 -0
- package/dist/tools/fetch-tool.js +5 -3
- package/dist/tools/fetch-tool.js.map +1 -1
- package/dist/tools/hooks/default-hooks.js +24 -23
- package/dist/tools/hooks/default-hooks.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/plan-tool.d.ts +22 -0
- package/dist/tools/plan-tool.js +128 -0
- package/dist/tools/plan-tool.js.map +1 -0
- package/dist/tools/registry/attention-tools.d.ts +32 -0
- package/dist/tools/registry/attention-tools.js +225 -0
- package/dist/tools/registry/attention-tools.js.map +1 -0
- package/dist/tools/registry/index.d.ts +9 -1
- package/dist/tools/registry/index.js +30 -2
- package/dist/tools/registry/index.js.map +1 -1
- package/dist/tools/registry/knowledge-tools.d.ts +46 -0
- package/dist/tools/registry/knowledge-tools.js +293 -0
- package/dist/tools/registry/knowledge-tools.js.map +1 -0
- package/dist/tools/registry/lessons-tools.d.ts +48 -0
- package/dist/tools/registry/lessons-tools.js +359 -0
- package/dist/tools/registry/lessons-tools.js.map +1 -0
- package/dist/tools/registry/plan-tools.d.ts +2 -0
- package/dist/tools/registry/plan-tools.js +7 -0
- package/dist/tools/registry/plan-tools.js.map +1 -0
- package/dist/tools/registry/script-tools.d.ts +2 -0
- package/dist/tools/registry/script-tools.js +7 -0
- package/dist/tools/registry/script-tools.js.map +1 -0
- package/dist/tools/registry/tool-aliases.d.ts +44 -0
- package/dist/tools/registry/tool-aliases.js +130 -0
- package/dist/tools/registry/tool-aliases.js.map +1 -0
- package/dist/tools/run-script-tool.d.ts +13 -0
- package/dist/tools/run-script-tool.js +146 -0
- package/dist/tools/run-script-tool.js.map +1 -0
- package/dist/tools/web-search.d.ts +25 -0
- package/dist/tools/web-search.js +68 -6
- package/dist/tools/web-search.js.map +1 -1
- package/dist/utils/config-validation/schema.d.ts +2 -2
- package/dist/utils/debug-logger.d.ts +1 -1
- package/dist/utils/rtk-compressor.d.ts +13 -10
- package/dist/utils/rtk-compressor.js +83 -34
- package/dist/utils/rtk-compressor.js.map +1 -1
- package/dist/utils/stable-json.d.ts +27 -0
- package/dist/utils/stable-json.js +50 -0
- package/dist/utils/stable-json.js.map +1 -0
- package/dist/webhooks/webhook-manager.d.ts +7 -0
- package/dist/webhooks/webhook-manager.js +29 -0
- package/dist/webhooks/webhook-manager.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-base.js","sourceRoot":"","sources":["../../src/prompts/system-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,+EAA+E;AAC/E,yCAAyC;AACzC,+EAA+E;AAE/E,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA2BL,CAAC;AAEnB,+EAA+E;AAC/E,+BAA+B;AAC/B,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,iBAA0B,KAAK,EAC/B,MAAc,OAAO,CAAC,GAAG,EAAE,EAC3B,kBAA2B;IAE3B,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAErD,MAAM,yBAAyB,GAAG,kBAAkB;QAClD,CAAC,CAAC;;EAEJ,kBAAkB;;;sFAGkE;QAClF,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,kBAAkB,GAAG,cAAc;QACvC,CAAC,CAAC,2GAA2G;QAC7G,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;;;;kBAMS,KAAK;uBACA,GAAG;cACZ,OAAO,CAAC,QAAQ;;EAE5B,yBAAyB;EACzB,cAAc;;;;;;gEAMgD,kBAAkB
|
|
1
|
+
{"version":3,"file":"system-base.js","sourceRoot":"","sources":["../../src/prompts/system-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt Variation Injector — Manus AI structured variation pattern
|
|
3
|
+
*
|
|
4
|
+
* Applies randomised structural variation to the system prompt on each
|
|
5
|
+
* session initialisation to prevent the model from falling into brittle
|
|
6
|
+
* repetition patterns caused by memorised few-shot examples.
|
|
7
|
+
*
|
|
8
|
+
* What varies:
|
|
9
|
+
* - Order of reminder / behavioural rule blocks
|
|
10
|
+
* - Phrasing alternatives for common instructions (a pool of semantically
|
|
11
|
+
* equivalent wordings is sampled uniformly)
|
|
12
|
+
* - Optional emphasis markers (bold, italic, ALL-CAPS) rotated per block
|
|
13
|
+
*
|
|
14
|
+
* What does NOT vary:
|
|
15
|
+
* - Core tool definitions (must be stable for KV cache)
|
|
16
|
+
* - Safety rules that must always appear exactly (security patterns)
|
|
17
|
+
* - Knowledge / todo context injected after the stable prefix
|
|
18
|
+
*
|
|
19
|
+
* The injector operates on the "reminder section" of the system prompt —
|
|
20
|
+
* the footer block that lists behavioural guidelines. The tool definitions
|
|
21
|
+
* and identity preamble are left untouched so Anthropic prompt caching
|
|
22
|
+
* remains maximally effective on the stable prefix.
|
|
23
|
+
*
|
|
24
|
+
* Ref: "Context Engineering for AI Agents: Lessons from Building Manus"
|
|
25
|
+
* https://manus.im/blog/Context-Engineering-for-AI-Agents-Lessons-from-Building-Manus
|
|
26
|
+
*/
|
|
27
|
+
export interface VariationOptions {
|
|
28
|
+
/** Seed for deterministic variation (e.g., session ID). Omit for random. */
|
|
29
|
+
seed?: number;
|
|
30
|
+
/** Fraction of reminder blocks to vary (0-1). Default: 0.4 */
|
|
31
|
+
variationRate?: number;
|
|
32
|
+
/** Enable order shuffling. Default: true */
|
|
33
|
+
shuffleOrder?: boolean;
|
|
34
|
+
/** Enable phrasing alternatives. Default: true */
|
|
35
|
+
alternativePhrasing?: boolean;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Apply structural variation to a list of reminder/guideline blocks.
|
|
39
|
+
* Returns a new array — the input is not mutated.
|
|
40
|
+
*/
|
|
41
|
+
export declare function applyVariation(blocks: string[], options?: VariationOptions): string[];
|
|
42
|
+
/**
|
|
43
|
+
* Extract the reminder/footer section from a system prompt string.
|
|
44
|
+
* Returns { prefix, blocks, suffix } where blocks are the bullet-point lines.
|
|
45
|
+
*/
|
|
46
|
+
export declare function extractBlocks(prompt: string): {
|
|
47
|
+
prefix: string;
|
|
48
|
+
blocks: string[];
|
|
49
|
+
suffix: string;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Apply variation to a full system prompt string.
|
|
53
|
+
* Only the reminder/footer section is varied; the preamble is left untouched.
|
|
54
|
+
*/
|
|
55
|
+
export declare function varySystemPrompt(prompt: string, options?: VariationOptions): string;
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt Variation Injector — Manus AI structured variation pattern
|
|
3
|
+
*
|
|
4
|
+
* Applies randomised structural variation to the system prompt on each
|
|
5
|
+
* session initialisation to prevent the model from falling into brittle
|
|
6
|
+
* repetition patterns caused by memorised few-shot examples.
|
|
7
|
+
*
|
|
8
|
+
* What varies:
|
|
9
|
+
* - Order of reminder / behavioural rule blocks
|
|
10
|
+
* - Phrasing alternatives for common instructions (a pool of semantically
|
|
11
|
+
* equivalent wordings is sampled uniformly)
|
|
12
|
+
* - Optional emphasis markers (bold, italic, ALL-CAPS) rotated per block
|
|
13
|
+
*
|
|
14
|
+
* What does NOT vary:
|
|
15
|
+
* - Core tool definitions (must be stable for KV cache)
|
|
16
|
+
* - Safety rules that must always appear exactly (security patterns)
|
|
17
|
+
* - Knowledge / todo context injected after the stable prefix
|
|
18
|
+
*
|
|
19
|
+
* The injector operates on the "reminder section" of the system prompt —
|
|
20
|
+
* the footer block that lists behavioural guidelines. The tool definitions
|
|
21
|
+
* and identity preamble are left untouched so Anthropic prompt caching
|
|
22
|
+
* remains maximally effective on the stable prefix.
|
|
23
|
+
*
|
|
24
|
+
* Ref: "Context Engineering for AI Agents: Lessons from Building Manus"
|
|
25
|
+
* https://manus.im/blog/Context-Engineering-for-AI-Agents-Lessons-from-Building-Manus
|
|
26
|
+
*/
|
|
27
|
+
// ============================================================================
|
|
28
|
+
// Phrasing alternatives
|
|
29
|
+
// Maps a canonical instruction prefix to a pool of equivalent alternatives
|
|
30
|
+
// ============================================================================
|
|
31
|
+
const PHRASING_POOLS = {
|
|
32
|
+
'Always ask for clarification': [
|
|
33
|
+
'Always ask for clarification',
|
|
34
|
+
'Request clarification',
|
|
35
|
+
'When uncertain, clarify before proceeding',
|
|
36
|
+
'Seek clarification rather than guessing',
|
|
37
|
+
],
|
|
38
|
+
'Never modify files without': [
|
|
39
|
+
'Never modify files without',
|
|
40
|
+
'Do not modify files without',
|
|
41
|
+
'Refrain from modifying files without',
|
|
42
|
+
'Only modify files when',
|
|
43
|
+
],
|
|
44
|
+
'Prefer small, focused changes': [
|
|
45
|
+
'Prefer small, focused changes',
|
|
46
|
+
'Keep changes minimal and targeted',
|
|
47
|
+
'Make targeted, minimal edits',
|
|
48
|
+
'Focus changes to the minimum required',
|
|
49
|
+
],
|
|
50
|
+
'Use the available tools': [
|
|
51
|
+
'Use the available tools',
|
|
52
|
+
'Leverage the available tools',
|
|
53
|
+
'Employ the provided tools',
|
|
54
|
+
'Rely on the available tools',
|
|
55
|
+
],
|
|
56
|
+
'Explain your reasoning': [
|
|
57
|
+
'Explain your reasoning',
|
|
58
|
+
'Reason through your approach',
|
|
59
|
+
'Articulate your thought process',
|
|
60
|
+
'Think step by step',
|
|
61
|
+
],
|
|
62
|
+
'Check existing code before': [
|
|
63
|
+
'Check existing code before',
|
|
64
|
+
'Review existing code before',
|
|
65
|
+
'Examine existing code before',
|
|
66
|
+
'Read existing code before',
|
|
67
|
+
],
|
|
68
|
+
};
|
|
69
|
+
// ============================================================================
|
|
70
|
+
// Seeded RNG (xorshift32 — deterministic, lightweight)
|
|
71
|
+
// ============================================================================
|
|
72
|
+
function xorshift32(seed) {
|
|
73
|
+
let s = seed >>> 0 || 0xdeadbeef;
|
|
74
|
+
return () => {
|
|
75
|
+
s ^= s << 13;
|
|
76
|
+
s ^= s >> 17;
|
|
77
|
+
s ^= s << 5;
|
|
78
|
+
return (s >>> 0) / 0x100000000;
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
// ============================================================================
|
|
82
|
+
// Core functions
|
|
83
|
+
// ============================================================================
|
|
84
|
+
/**
|
|
85
|
+
* Apply structural variation to a list of reminder/guideline blocks.
|
|
86
|
+
* Returns a new array — the input is not mutated.
|
|
87
|
+
*/
|
|
88
|
+
export function applyVariation(blocks, options = {}) {
|
|
89
|
+
const { seed, variationRate = 0.4, shuffleOrder = true, alternativePhrasing = true, } = options;
|
|
90
|
+
const rng = seed !== undefined ? xorshift32(seed) : Math.random.bind(Math);
|
|
91
|
+
let result = [...blocks];
|
|
92
|
+
// 1. Shuffle order (Fisher-Yates)
|
|
93
|
+
if (shuffleOrder) {
|
|
94
|
+
for (let i = result.length - 1; i > 0; i--) {
|
|
95
|
+
const j = Math.floor(rng() * (i + 1));
|
|
96
|
+
[result[i], result[j]] = [result[j], result[i]];
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// 2. Apply phrasing alternatives to a subset of blocks
|
|
100
|
+
if (alternativePhrasing) {
|
|
101
|
+
result = result.map(block => {
|
|
102
|
+
if (rng() > variationRate)
|
|
103
|
+
return block; // skip this block
|
|
104
|
+
for (const [canonical, alternatives] of Object.entries(PHRASING_POOLS)) {
|
|
105
|
+
if (block.includes(canonical)) {
|
|
106
|
+
const pick = alternatives[Math.floor(rng() * alternatives.length)];
|
|
107
|
+
return block.replace(canonical, pick);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return block;
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return result;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Extract the reminder/footer section from a system prompt string.
|
|
117
|
+
* Returns { prefix, blocks, suffix } where blocks are the bullet-point lines.
|
|
118
|
+
*/
|
|
119
|
+
export function extractBlocks(prompt) {
|
|
120
|
+
const lines = prompt.split('\n');
|
|
121
|
+
let blockStart = -1;
|
|
122
|
+
let blockEnd = -1;
|
|
123
|
+
// Find the "Reminders" or "Guidelines" or "Important" section marker
|
|
124
|
+
for (let i = 0; i < lines.length; i++) {
|
|
125
|
+
const line = lines[i].trim();
|
|
126
|
+
if (/^#{1,3}\s+(Reminder|Guideline|Important|Behavior|Rule)/i.test(line) ||
|
|
127
|
+
line === '---' && i > lines.length / 2) {
|
|
128
|
+
if (blockStart === -1)
|
|
129
|
+
blockStart = i;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (blockStart === -1) {
|
|
133
|
+
// No marker found — treat the last 25% of lines as the variable section
|
|
134
|
+
blockStart = Math.floor(lines.length * 0.75);
|
|
135
|
+
}
|
|
136
|
+
blockEnd = lines.length;
|
|
137
|
+
const prefix = lines.slice(0, blockStart).join('\n');
|
|
138
|
+
const rawBlocks = lines.slice(blockStart, blockEnd);
|
|
139
|
+
const suffix = '';
|
|
140
|
+
// Split rawBlocks into individual bullet points
|
|
141
|
+
const blocks = [];
|
|
142
|
+
let current = '';
|
|
143
|
+
for (const line of rawBlocks) {
|
|
144
|
+
if ((line.startsWith('- ') || line.startsWith('* ') || line.match(/^\d+\./)) && current) {
|
|
145
|
+
blocks.push(current.trim());
|
|
146
|
+
current = line;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
current += (current ? '\n' : '') + line;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
if (current.trim())
|
|
153
|
+
blocks.push(current.trim());
|
|
154
|
+
return { prefix, blocks, suffix };
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Apply variation to a full system prompt string.
|
|
158
|
+
* Only the reminder/footer section is varied; the preamble is left untouched.
|
|
159
|
+
*/
|
|
160
|
+
export function varySystemPrompt(prompt, options = {}) {
|
|
161
|
+
if (!prompt)
|
|
162
|
+
return prompt;
|
|
163
|
+
const { prefix, blocks, suffix } = extractBlocks(prompt);
|
|
164
|
+
if (blocks.length < 3) {
|
|
165
|
+
// Too few blocks to meaningfully vary — return as-is
|
|
166
|
+
return prompt;
|
|
167
|
+
}
|
|
168
|
+
const variedBlocks = applyVariation(blocks, options);
|
|
169
|
+
return [prefix, ...variedBlocks, suffix].join('\n').replace(/\n{3,}/g, '\n\n');
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=variation-injector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variation-injector.js","sourceRoot":"","sources":["../../src/prompts/variation-injector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Orchestration Rules
|
|
3
|
+
*
|
|
4
|
+
* Concrete, measurable workflow rules injected into the system prompt once
|
|
5
|
+
* per session. These improve on vague "non-trivial" guidance by specifying
|
|
6
|
+
* exact triggers for planning, auto-correction, verification, and subagent use.
|
|
7
|
+
*
|
|
8
|
+
* Injected by PromptBuilder.buildSystemPrompt() after bootstrap context.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getWorkflowRulesBlock(): string;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Orchestration Rules
|
|
3
|
+
*
|
|
4
|
+
* Concrete, measurable workflow rules injected into the system prompt once
|
|
5
|
+
* per session. These improve on vague "non-trivial" guidance by specifying
|
|
6
|
+
* exact triggers for planning, auto-correction, verification, and subagent use.
|
|
7
|
+
*
|
|
8
|
+
* Injected by PromptBuilder.buildSystemPrompt() after bootstrap context.
|
|
9
|
+
*/
|
|
10
|
+
export function getWorkflowRulesBlock() {
|
|
11
|
+
return `## Workflow Orchestration
|
|
12
|
+
|
|
13
|
+
### When to Plan (concrete triggers — skip vague "non-trivial")
|
|
14
|
+
|
|
15
|
+
PLAN BEFORE ACTING when ANY of the following is true:
|
|
16
|
+
- Creating a new file or module
|
|
17
|
+
- Touching 3 or more existing files
|
|
18
|
+
- Changing a public API, type signature, or database schema
|
|
19
|
+
- The request contains 3+ distinct action verbs (create, fix, update, test, deploy, refactor, implement, migrate, add, remove…)
|
|
20
|
+
- An architectural decision with no single obvious solution
|
|
21
|
+
|
|
22
|
+
SKIP PLANNING for: single-file bugfixes, typo/comment fixes, adding one function with a clear spec, renaming an identifier.
|
|
23
|
+
|
|
24
|
+
When in doubt: plan. A short plan costs seconds; a wrong assumption costs hours.
|
|
25
|
+
|
|
26
|
+
### Auto-Correction Protocol
|
|
27
|
+
|
|
28
|
+
If 2+ consecutive tool calls fail or return unexpected results:
|
|
29
|
+
1. STOP — do not retry the same approach a third time.
|
|
30
|
+
2. Re-read the relevant source code to understand the actual state.
|
|
31
|
+
3. Diagnose the root cause (not the symptom).
|
|
32
|
+
4. Re-plan the approach from scratch before acting again.
|
|
33
|
+
|
|
34
|
+
After any user correction, call \`lessons_add\` with category=PATTERN.
|
|
35
|
+
Format: "[what went wrong] → [correct behaviour]"
|
|
36
|
+
|
|
37
|
+
### Verification Contract (mandatory before marking a task done)
|
|
38
|
+
|
|
39
|
+
Before claiming completion, verify:
|
|
40
|
+
1. **TypeScript**: \`npx tsc --noEmit\` must pass (or call \`task_verify\` with check=typescript)
|
|
41
|
+
2. **Tests**: the relevant test suite must pass (or call \`task_verify\` with check=tests)
|
|
42
|
+
3. **Diff**: confirm no unintended files changed beyond the task scope
|
|
43
|
+
4. **Behaviour**: demonstrate correctness via test output, log line, or explicit assertion
|
|
44
|
+
|
|
45
|
+
Use the \`task_verify\` tool to automate steps 1–2.
|
|
46
|
+
|
|
47
|
+
### Uncertainty Protocol
|
|
48
|
+
|
|
49
|
+
When requirements are ambiguous:
|
|
50
|
+
- Make a reasonable decision, document it inline as "Assumption: <X>"
|
|
51
|
+
- Proceed with implementation based on that assumption
|
|
52
|
+
- State all assumptions explicitly in your completion summary
|
|
53
|
+
|
|
54
|
+
Do NOT block on clarification questions for implementation details.
|
|
55
|
+
Do NOT ask "should I use X or Y?" — choose, document, implement.
|
|
56
|
+
|
|
57
|
+
### Elegance Gate
|
|
58
|
+
|
|
59
|
+
For changes >50 LOC or touching 3+ files: pause and ask yourself "Is there a simpler approach?"
|
|
60
|
+
For changes ≤10 LOC or obvious bugfixes: skip the gate — avoid over-engineering.
|
|
61
|
+
|
|
62
|
+
One correct, simple solution beats three clever ones.
|
|
63
|
+
|
|
64
|
+
### Subagent Delegation Triggers
|
|
65
|
+
|
|
66
|
+
Use a subagent when:
|
|
67
|
+
- Exploration requires reading 5+ unknown files whose content you cannot predict
|
|
68
|
+
- The task has parallel independent research components (e.g. two unrelated APIs)
|
|
69
|
+
- Exploration would consume >20% of the remaining context budget
|
|
70
|
+
|
|
71
|
+
Assign one focused task per subagent. Do not duplicate work across subagents.
|
|
72
|
+
|
|
73
|
+
### Lessons Integration
|
|
74
|
+
|
|
75
|
+
Before starting a task similar to a previous one, call \`lessons_search\` to find relevant lessons.
|
|
76
|
+
After any user correction: call \`lessons_add\` (category=PATTERN) immediately.
|
|
77
|
+
Review active lessons (injected as <lessons_context>) at the start of each turn.`;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=workflow-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-rules.js","sourceRoot":"","sources":["../../src/prompts/workflow-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iFAkEwE,CAAC;AAClF,CAAC"}
|
|
@@ -7,6 +7,27 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { EventEmitter } from 'events';
|
|
9
9
|
export type PolicyAction = 'allow' | 'deny' | 'ask' | 'sandbox';
|
|
10
|
+
/**
|
|
11
|
+
* Prefix rule — Codex-inspired token-array prefix matching.
|
|
12
|
+
*
|
|
13
|
+
* Unlike glob/regex `PolicyRule` which matches a command string, a PrefixRule
|
|
14
|
+
* matches the exact token array prefix of the parsed command. This is safer
|
|
15
|
+
* than regex because it avoids bypass via quoting/encoding tricks.
|
|
16
|
+
*
|
|
17
|
+
* Example: `prefix: ['git', 'push']` will match `git push origin main` but
|
|
18
|
+
* NOT `echo git push` because the first token is `echo`.
|
|
19
|
+
*
|
|
20
|
+
* When multiple prefix rules match, the longest prefix wins (most specific).
|
|
21
|
+
*/
|
|
22
|
+
export interface PrefixRule {
|
|
23
|
+
id: string;
|
|
24
|
+
/** Exact token-array prefix that must match argv[0..prefix.length-1] */
|
|
25
|
+
prefix: string[];
|
|
26
|
+
action: PolicyAction;
|
|
27
|
+
description?: string;
|
|
28
|
+
enabled: boolean;
|
|
29
|
+
createdAt: number;
|
|
30
|
+
}
|
|
10
31
|
export interface PolicyRule {
|
|
11
32
|
/** Unique rule ID */
|
|
12
33
|
id: string;
|
|
@@ -71,6 +92,7 @@ export interface ExecPolicyConfig {
|
|
|
71
92
|
export declare class ExecPolicy extends EventEmitter {
|
|
72
93
|
private config;
|
|
73
94
|
private rules;
|
|
95
|
+
private prefixRules;
|
|
74
96
|
private auditLog;
|
|
75
97
|
private initialized;
|
|
76
98
|
constructor(config?: Partial<ExecPolicyConfig>);
|
|
@@ -86,6 +108,29 @@ export declare class ExecPolicy extends EventEmitter {
|
|
|
86
108
|
* Quick check if command is allowed
|
|
87
109
|
*/
|
|
88
110
|
isAllowed(command: string, args?: string[], workDir?: string): boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Check argv against prefix rules (token-array matching).
|
|
113
|
+
* Returns the matching rule with the longest matching prefix, or null.
|
|
114
|
+
*
|
|
115
|
+
* This is evaluated BEFORE regex/glob rules to give prefix rules higher
|
|
116
|
+
* specificity. Call this from evaluate() or use checkPrefix() standalone.
|
|
117
|
+
*/
|
|
118
|
+
checkPrefix(argv: string[]): PrefixRule | null;
|
|
119
|
+
/**
|
|
120
|
+
* Add a prefix rule (token-array exact prefix matching).
|
|
121
|
+
* The new rule is inserted at the front and sorted by prefix length desc
|
|
122
|
+
* so that more-specific rules are evaluated first.
|
|
123
|
+
*/
|
|
124
|
+
addPrefixRule(rule: Omit<PrefixRule, 'id' | 'createdAt'>): PrefixRule;
|
|
125
|
+
/** Remove a prefix rule by ID. */
|
|
126
|
+
removePrefixRule(id: string): boolean;
|
|
127
|
+
/** List all prefix rules. */
|
|
128
|
+
getPrefixRules(): PrefixRule[];
|
|
129
|
+
/**
|
|
130
|
+
* Evaluate argv token array — combines prefix rules + regex/glob rules.
|
|
131
|
+
* Prefix rules are checked first (longest-match wins).
|
|
132
|
+
*/
|
|
133
|
+
evaluateArgv(argv: string[], workDir?: string): PolicyEvaluation;
|
|
89
134
|
/**
|
|
90
135
|
* Add custom rule
|
|
91
136
|
*/
|
|
@@ -222,6 +222,7 @@ const DANGEROUS_PATTERNS = [
|
|
|
222
222
|
export class ExecPolicy extends EventEmitter {
|
|
223
223
|
config;
|
|
224
224
|
rules = [];
|
|
225
|
+
prefixRules = [];
|
|
225
226
|
auditLog = [];
|
|
226
227
|
initialized = false;
|
|
227
228
|
constructor(config = {}) {
|
|
@@ -316,6 +317,85 @@ export class ExecPolicy extends EventEmitter {
|
|
|
316
317
|
const evaluation = this.evaluate(command, args, workDir);
|
|
317
318
|
return evaluation.action === 'allow';
|
|
318
319
|
}
|
|
320
|
+
/**
|
|
321
|
+
* Check argv against prefix rules (token-array matching).
|
|
322
|
+
* Returns the matching rule with the longest matching prefix, or null.
|
|
323
|
+
*
|
|
324
|
+
* This is evaluated BEFORE regex/glob rules to give prefix rules higher
|
|
325
|
+
* specificity. Call this from evaluate() or use checkPrefix() standalone.
|
|
326
|
+
*/
|
|
327
|
+
checkPrefix(argv) {
|
|
328
|
+
let best = null;
|
|
329
|
+
for (const rule of this.prefixRules) {
|
|
330
|
+
if (!rule.enabled)
|
|
331
|
+
continue;
|
|
332
|
+
if (argv.length < rule.prefix.length)
|
|
333
|
+
continue;
|
|
334
|
+
const matches = rule.prefix.every((tok, i) => tok === argv[i]);
|
|
335
|
+
if (matches) {
|
|
336
|
+
if (!best || rule.prefix.length > best.prefix.length) {
|
|
337
|
+
best = rule;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
return best;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Add a prefix rule (token-array exact prefix matching).
|
|
345
|
+
* The new rule is inserted at the front and sorted by prefix length desc
|
|
346
|
+
* so that more-specific rules are evaluated first.
|
|
347
|
+
*/
|
|
348
|
+
addPrefixRule(rule) {
|
|
349
|
+
const newRule = {
|
|
350
|
+
...rule,
|
|
351
|
+
id: `prefix-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
|
|
352
|
+
createdAt: Date.now(),
|
|
353
|
+
};
|
|
354
|
+
this.prefixRules.push(newRule);
|
|
355
|
+
// Longest prefix first (most specific)
|
|
356
|
+
this.prefixRules.sort((a, b) => b.prefix.length - a.prefix.length);
|
|
357
|
+
this.emit('prefixRule:added', newRule);
|
|
358
|
+
return newRule;
|
|
359
|
+
}
|
|
360
|
+
/** Remove a prefix rule by ID. */
|
|
361
|
+
removePrefixRule(id) {
|
|
362
|
+
const idx = this.prefixRules.findIndex(r => r.id === id);
|
|
363
|
+
if (idx === -1)
|
|
364
|
+
return false;
|
|
365
|
+
const removed = this.prefixRules.splice(idx, 1)[0];
|
|
366
|
+
this.emit('prefixRule:removed', removed);
|
|
367
|
+
return true;
|
|
368
|
+
}
|
|
369
|
+
/** List all prefix rules. */
|
|
370
|
+
getPrefixRules() {
|
|
371
|
+
return [...this.prefixRules];
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Evaluate argv token array — combines prefix rules + regex/glob rules.
|
|
375
|
+
* Prefix rules are checked first (longest-match wins).
|
|
376
|
+
*/
|
|
377
|
+
evaluateArgv(argv, workDir = process.cwd()) {
|
|
378
|
+
const command = argv[0] ?? '';
|
|
379
|
+
const args = argv.slice(1);
|
|
380
|
+
// 1. Prefix rules (token-array, most specific)
|
|
381
|
+
const prefixMatch = this.checkPrefix(argv);
|
|
382
|
+
if (prefixMatch) {
|
|
383
|
+
const evaluation = {
|
|
384
|
+
command,
|
|
385
|
+
args,
|
|
386
|
+
workDir,
|
|
387
|
+
matchedRule: null,
|
|
388
|
+
action: prefixMatch.action,
|
|
389
|
+
reason: `Matched prefix rule: ${prefixMatch.prefix.join(' ')}${prefixMatch.description ? ' — ' + prefixMatch.description : ''}`,
|
|
390
|
+
constraints: {},
|
|
391
|
+
timestamp: Date.now(),
|
|
392
|
+
};
|
|
393
|
+
this.recordAudit(evaluation);
|
|
394
|
+
return evaluation;
|
|
395
|
+
}
|
|
396
|
+
// 2. Fall through to pattern-based evaluation
|
|
397
|
+
return this.evaluate(command, args, workDir);
|
|
398
|
+
}
|
|
319
399
|
/**
|
|
320
400
|
* Add custom rule
|
|
321
401
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execpolicy.js","sourceRoot":"","sources":["../../src/sandbox/execpolicy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"execpolicy.js","sourceRoot":"","sources":["../../src/sandbox/execpolicy.ts"],"names":[],"mappings":"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"}
|
|
@@ -144,6 +144,31 @@ export declare class OSSandbox extends EventEmitter {
|
|
|
144
144
|
*/
|
|
145
145
|
execShellTracked(shellCommand: string): Promise<OSSandboxResult>;
|
|
146
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Three sandbox tiers (mirrors Codex CLI sandboxing levels):
|
|
149
|
+
* - 'read-only' → all writes blocked; default for untrusted commands
|
|
150
|
+
* - 'workspace-write' → writes limited to git workspace root; .git/.codebuddy always read-only
|
|
151
|
+
* - 'danger-full-access'→ no write restrictions (still uses network/syscall sandbox)
|
|
152
|
+
*/
|
|
153
|
+
export type SandboxMode = 'read-only' | 'workspace-write' | 'danger-full-access';
|
|
154
|
+
/**
|
|
155
|
+
* Detect the git workspace root by running `git rev-parse --show-toplevel`.
|
|
156
|
+
* Falls back to `cwd` if not inside a git repository.
|
|
157
|
+
*/
|
|
158
|
+
export declare function getWorkspaceRoot(cwd?: string): Promise<string>;
|
|
159
|
+
/**
|
|
160
|
+
* Build an `OSSandboxConfig` appropriate for the given `SandboxMode`.
|
|
161
|
+
*
|
|
162
|
+
* @param mode - Desired sandbox tier
|
|
163
|
+
* @param cwd - Working directory (used to locate workspace root)
|
|
164
|
+
* @param extraReadOnly - Additional paths to mount read-only
|
|
165
|
+
* @param extraReadWrite - Additional paths to mount read-write (ignored in read-only mode)
|
|
166
|
+
*/
|
|
167
|
+
export declare function createSandboxConfigForMode(mode: SandboxMode, cwd?: string, extraReadOnly?: string[], extraReadWrite?: string[]): Promise<Partial<OSSandboxConfig>>;
|
|
168
|
+
/**
|
|
169
|
+
* Convenience: create and initialize an OSSandbox pre-configured for the given mode.
|
|
170
|
+
*/
|
|
171
|
+
export declare function createSandboxForMode(mode: SandboxMode, cwd?: string, extraReadOnly?: string[], extraReadWrite?: string[]): Promise<OSSandbox>;
|
|
147
172
|
export declare function getOSSandbox(config?: Partial<OSSandboxConfig>): OSSandbox;
|
|
148
173
|
export declare function resetOSSandbox(): void;
|
|
149
174
|
export { OSSandboxConfig as OSConfig };
|