@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.
Files changed (258) hide show
  1. package/README.md +1049 -741
  2. package/dist/agent/codebuddy-agent.d.ts +5 -0
  3. package/dist/agent/codebuddy-agent.js +46 -1
  4. package/dist/agent/codebuddy-agent.js.map +1 -1
  5. package/dist/agent/execution/agent-executor.d.ts +12 -0
  6. package/dist/agent/execution/agent-executor.js +147 -6
  7. package/dist/agent/execution/agent-executor.js.map +1 -1
  8. package/dist/agent/lessons-tracker.d.ts +50 -0
  9. package/dist/agent/lessons-tracker.js +234 -0
  10. package/dist/agent/lessons-tracker.js.map +1 -0
  11. package/dist/agent/message-queue.d.ts +39 -2
  12. package/dist/agent/message-queue.js +67 -2
  13. package/dist/agent/message-queue.js.map +1 -1
  14. package/dist/agent/middleware/index.d.ts +1 -0
  15. package/dist/agent/middleware/index.js +1 -0
  16. package/dist/agent/middleware/index.js.map +1 -1
  17. package/dist/agent/middleware/workflow-guard.d.ts +21 -0
  18. package/dist/agent/middleware/workflow-guard.js +94 -0
  19. package/dist/agent/middleware/workflow-guard.js.map +1 -0
  20. package/dist/agent/repo-profiler.d.ts +61 -0
  21. package/dist/agent/repo-profiler.js +295 -0
  22. package/dist/agent/repo-profiler.js.map +1 -0
  23. package/dist/agent/response-constraint.d.ts +61 -0
  24. package/dist/agent/response-constraint.js +91 -0
  25. package/dist/agent/response-constraint.js.map +1 -0
  26. package/dist/agent/todo-tracker.d.ts +67 -0
  27. package/dist/agent/todo-tracker.js +245 -0
  28. package/dist/agent/todo-tracker.js.map +1 -0
  29. package/dist/agent/tool-handler.d.ts +11 -0
  30. package/dist/agent/tool-handler.js +79 -1
  31. package/dist/agent/tool-handler.js.map +1 -1
  32. package/dist/agent/types.d.ts +20 -2
  33. package/dist/agent/wide-research.d.ts +93 -0
  34. package/dist/agent/wide-research.js +232 -0
  35. package/dist/agent/wide-research.js.map +1 -0
  36. package/dist/channels/index.d.ts +2 -0
  37. package/dist/channels/index.js +2 -0
  38. package/dist/channels/index.js.map +1 -1
  39. package/dist/channels/pro/callback-router.d.ts +54 -0
  40. package/dist/channels/pro/callback-router.js +178 -0
  41. package/dist/channels/pro/callback-router.js.map +1 -0
  42. package/dist/channels/pro/ci-watcher.d.ts +86 -0
  43. package/dist/channels/pro/ci-watcher.js +343 -0
  44. package/dist/channels/pro/ci-watcher.js.map +1 -0
  45. package/dist/channels/pro/diff-first.d.ts +63 -0
  46. package/dist/channels/pro/diff-first.js +187 -0
  47. package/dist/channels/pro/diff-first.js.map +1 -0
  48. package/dist/channels/pro/enhanced-commands.d.ts +83 -0
  49. package/dist/channels/pro/enhanced-commands.js +218 -0
  50. package/dist/channels/pro/enhanced-commands.js.map +1 -0
  51. package/dist/channels/pro/index.d.ts +19 -0
  52. package/dist/channels/pro/index.js +21 -0
  53. package/dist/channels/pro/index.js.map +1 -0
  54. package/dist/channels/pro/pro-features.d.ts +79 -0
  55. package/dist/channels/pro/pro-features.js +203 -0
  56. package/dist/channels/pro/pro-features.js.map +1 -0
  57. package/dist/channels/pro/run-commands.d.ts +59 -0
  58. package/dist/channels/pro/run-commands.js +122 -0
  59. package/dist/channels/pro/run-commands.js.map +1 -0
  60. package/dist/channels/pro/run-tracker.d.ts +74 -0
  61. package/dist/channels/pro/run-tracker.js +252 -0
  62. package/dist/channels/pro/run-tracker.js.map +1 -0
  63. package/dist/channels/pro/scoped-auth.d.ts +97 -0
  64. package/dist/channels/pro/scoped-auth.js +340 -0
  65. package/dist/channels/pro/scoped-auth.js.map +1 -0
  66. package/dist/channels/pro/text-formatter.d.ts +27 -0
  67. package/dist/channels/pro/text-formatter.js +269 -0
  68. package/dist/channels/pro/text-formatter.js.map +1 -0
  69. package/dist/channels/pro/types.d.ts +242 -0
  70. package/dist/channels/pro/types.js +14 -0
  71. package/dist/channels/pro/types.js.map +1 -0
  72. package/dist/channels/streaming-policy.d.ts +66 -0
  73. package/dist/channels/streaming-policy.js +266 -0
  74. package/dist/channels/streaming-policy.js.map +1 -0
  75. package/dist/channels/telegram/ci-watcher.d.ts +5 -0
  76. package/dist/channels/telegram/ci-watcher.js +5 -0
  77. package/dist/channels/telegram/ci-watcher.js.map +1 -0
  78. package/dist/channels/telegram/client.d.ts +28 -0
  79. package/dist/channels/telegram/client.js +147 -1
  80. package/dist/channels/telegram/client.js.map +1 -1
  81. package/dist/channels/telegram/diff-first.d.ts +5 -0
  82. package/dist/channels/telegram/diff-first.js +5 -0
  83. package/dist/channels/telegram/diff-first.js.map +1 -0
  84. package/dist/channels/telegram/enhanced-commands.d.ts +6 -0
  85. package/dist/channels/telegram/enhanced-commands.js +6 -0
  86. package/dist/channels/telegram/enhanced-commands.js.map +1 -0
  87. package/dist/channels/telegram/index.d.ts +6 -0
  88. package/dist/channels/telegram/index.js +6 -0
  89. package/dist/channels/telegram/index.js.map +1 -1
  90. package/dist/channels/telegram/pro-formatter.d.ts +30 -0
  91. package/dist/channels/telegram/pro-formatter.js +276 -0
  92. package/dist/channels/telegram/pro-formatter.js.map +1 -0
  93. package/dist/channels/telegram/run-commands.d.ts +5 -0
  94. package/dist/channels/telegram/run-commands.js +6 -0
  95. package/dist/channels/telegram/run-commands.js.map +1 -0
  96. package/dist/channels/telegram/run-tracker.d.ts +5 -0
  97. package/dist/channels/telegram/run-tracker.js +5 -0
  98. package/dist/channels/telegram/run-tracker.js.map +1 -0
  99. package/dist/channels/telegram/scoped-auth.d.ts +6 -0
  100. package/dist/channels/telegram/scoped-auth.js +5 -0
  101. package/dist/channels/telegram/scoped-auth.js.map +1 -0
  102. package/dist/channels/telegram/types.d.ts +34 -0
  103. package/dist/codebuddy/client.js +14 -1
  104. package/dist/codebuddy/client.js.map +1 -1
  105. package/dist/commands/dev/index.d.ts +12 -0
  106. package/dist/commands/dev/index.js +231 -0
  107. package/dist/commands/dev/index.js.map +1 -0
  108. package/dist/commands/dev/workflows.d.ts +31 -0
  109. package/dist/commands/dev/workflows.js +214 -0
  110. package/dist/commands/dev/workflows.js.map +1 -0
  111. package/dist/commands/execpolicy.d.ts +17 -0
  112. package/dist/commands/execpolicy.js +155 -0
  113. package/dist/commands/execpolicy.js.map +1 -0
  114. package/dist/commands/knowledge.d.ts +13 -0
  115. package/dist/commands/knowledge.js +142 -0
  116. package/dist/commands/knowledge.js.map +1 -0
  117. package/dist/commands/lessons.d.ts +11 -0
  118. package/dist/commands/lessons.js +129 -0
  119. package/dist/commands/lessons.js.map +1 -0
  120. package/dist/commands/pairing.d.ts +14 -0
  121. package/dist/commands/pairing.js +132 -0
  122. package/dist/commands/pairing.js.map +1 -0
  123. package/dist/commands/research/index.d.ts +13 -0
  124. package/dist/commands/research/index.js +91 -0
  125. package/dist/commands/research/index.js.map +1 -0
  126. package/dist/commands/run-cli/index.d.ts +11 -0
  127. package/dist/commands/run-cli/index.js +49 -0
  128. package/dist/commands/run-cli/index.js.map +1 -0
  129. package/dist/commands/todos.d.ts +9 -0
  130. package/dist/commands/todos.js +119 -0
  131. package/dist/commands/todos.js.map +1 -0
  132. package/dist/config/toml-config.d.ts +21 -0
  133. package/dist/config/toml-config.js +15 -0
  134. package/dist/config/toml-config.js.map +1 -1
  135. package/dist/context/enhanced-compression.js +12 -1
  136. package/dist/context/enhanced-compression.js.map +1 -1
  137. package/dist/context/observation-variator.d.ts +44 -0
  138. package/dist/context/observation-variator.js +83 -0
  139. package/dist/context/observation-variator.js.map +1 -0
  140. package/dist/context/precompaction-flush.d.ts +40 -0
  141. package/dist/context/precompaction-flush.js +134 -0
  142. package/dist/context/precompaction-flush.js.map +1 -0
  143. package/dist/context/restorable-compression.d.ts +80 -0
  144. package/dist/context/restorable-compression.js +228 -0
  145. package/dist/context/restorable-compression.js.map +1 -0
  146. package/dist/daemon/daily-reset.d.ts +77 -0
  147. package/dist/daemon/daily-reset.js +175 -0
  148. package/dist/daemon/daily-reset.js.map +1 -0
  149. package/dist/daemon/index.d.ts +1 -0
  150. package/dist/daemon/index.js +1 -0
  151. package/dist/daemon/index.js.map +1 -1
  152. package/dist/index.js +53 -0
  153. package/dist/index.js.map +1 -1
  154. package/dist/knowledge/knowledge-manager.d.ts +77 -0
  155. package/dist/knowledge/knowledge-manager.js +244 -0
  156. package/dist/knowledge/knowledge-manager.js.map +1 -0
  157. package/dist/observability/run-store.d.ts +133 -0
  158. package/dist/observability/run-store.js +419 -0
  159. package/dist/observability/run-store.js.map +1 -0
  160. package/dist/observability/run-viewer.d.ts +33 -0
  161. package/dist/observability/run-viewer.js +254 -0
  162. package/dist/observability/run-viewer.js.map +1 -0
  163. package/dist/optimization/cache-breakpoints.d.ts +52 -0
  164. package/dist/optimization/cache-breakpoints.js +97 -0
  165. package/dist/optimization/cache-breakpoints.js.map +1 -0
  166. package/dist/persistence/session-store.d.ts +3 -1
  167. package/dist/persistence/session-store.js +1 -1
  168. package/dist/persistence/session-store.js.map +1 -1
  169. package/dist/prompts/system-base.js +51 -7
  170. package/dist/prompts/system-base.js.map +1 -1
  171. package/dist/prompts/variation-injector.d.ts +55 -0
  172. package/dist/prompts/variation-injector.js +171 -0
  173. package/dist/prompts/variation-injector.js.map +1 -0
  174. package/dist/prompts/workflow-rules.d.ts +10 -0
  175. package/dist/prompts/workflow-rules.js +79 -0
  176. package/dist/prompts/workflow-rules.js.map +1 -0
  177. package/dist/sandbox/execpolicy.d.ts +45 -0
  178. package/dist/sandbox/execpolicy.js +80 -0
  179. package/dist/sandbox/execpolicy.js.map +1 -1
  180. package/dist/sandbox/os-sandbox.d.ts +25 -0
  181. package/dist/sandbox/os-sandbox.js +73 -0
  182. package/dist/sandbox/os-sandbox.js.map +1 -1
  183. package/dist/security/security-audit.d.ts +10 -0
  184. package/dist/security/security-audit.js +116 -0
  185. package/dist/security/security-audit.js.map +1 -1
  186. package/dist/security/shell-env-policy.d.ts +45 -0
  187. package/dist/security/shell-env-policy.js +141 -0
  188. package/dist/security/shell-env-policy.js.map +1 -0
  189. package/dist/security/ssrf-guard.d.ts +61 -0
  190. package/dist/security/ssrf-guard.js +382 -0
  191. package/dist/security/ssrf-guard.js.map +1 -0
  192. package/dist/security/write-policy.d.ts +57 -0
  193. package/dist/security/write-policy.js +117 -0
  194. package/dist/security/write-policy.js.map +1 -0
  195. package/dist/services/prompt-builder.js +37 -0
  196. package/dist/services/prompt-builder.js.map +1 -1
  197. package/dist/themes/theme-schema.d.ts +10 -10
  198. package/dist/tools/ask-human-tool.d.ts +62 -0
  199. package/dist/tools/ask-human-tool.js +112 -0
  200. package/dist/tools/ask-human-tool.js.map +1 -0
  201. package/dist/tools/bash/bash-tool.d.ts +15 -0
  202. package/dist/tools/bash/bash-tool.js +62 -0
  203. package/dist/tools/bash/bash-tool.js.map +1 -1
  204. package/dist/tools/bash/command-validator.d.ts +1 -0
  205. package/dist/tools/bash/command-validator.js +5 -0
  206. package/dist/tools/bash/command-validator.js.map +1 -1
  207. package/dist/tools/create-skill-tool.d.ts +87 -0
  208. package/dist/tools/create-skill-tool.js +142 -0
  209. package/dist/tools/create-skill-tool.js.map +1 -0
  210. package/dist/tools/fetch-tool.js +5 -3
  211. package/dist/tools/fetch-tool.js.map +1 -1
  212. package/dist/tools/hooks/default-hooks.js +24 -23
  213. package/dist/tools/hooks/default-hooks.js.map +1 -1
  214. package/dist/tools/index.d.ts +1 -0
  215. package/dist/tools/index.js +1 -0
  216. package/dist/tools/index.js.map +1 -1
  217. package/dist/tools/plan-tool.d.ts +22 -0
  218. package/dist/tools/plan-tool.js +128 -0
  219. package/dist/tools/plan-tool.js.map +1 -0
  220. package/dist/tools/registry/attention-tools.d.ts +32 -0
  221. package/dist/tools/registry/attention-tools.js +225 -0
  222. package/dist/tools/registry/attention-tools.js.map +1 -0
  223. package/dist/tools/registry/index.d.ts +9 -1
  224. package/dist/tools/registry/index.js +30 -2
  225. package/dist/tools/registry/index.js.map +1 -1
  226. package/dist/tools/registry/knowledge-tools.d.ts +46 -0
  227. package/dist/tools/registry/knowledge-tools.js +293 -0
  228. package/dist/tools/registry/knowledge-tools.js.map +1 -0
  229. package/dist/tools/registry/lessons-tools.d.ts +48 -0
  230. package/dist/tools/registry/lessons-tools.js +359 -0
  231. package/dist/tools/registry/lessons-tools.js.map +1 -0
  232. package/dist/tools/registry/plan-tools.d.ts +2 -0
  233. package/dist/tools/registry/plan-tools.js +7 -0
  234. package/dist/tools/registry/plan-tools.js.map +1 -0
  235. package/dist/tools/registry/script-tools.d.ts +2 -0
  236. package/dist/tools/registry/script-tools.js +7 -0
  237. package/dist/tools/registry/script-tools.js.map +1 -0
  238. package/dist/tools/registry/tool-aliases.d.ts +44 -0
  239. package/dist/tools/registry/tool-aliases.js +130 -0
  240. package/dist/tools/registry/tool-aliases.js.map +1 -0
  241. package/dist/tools/run-script-tool.d.ts +13 -0
  242. package/dist/tools/run-script-tool.js +146 -0
  243. package/dist/tools/run-script-tool.js.map +1 -0
  244. package/dist/tools/web-search.d.ts +25 -0
  245. package/dist/tools/web-search.js +68 -6
  246. package/dist/tools/web-search.js.map +1 -1
  247. package/dist/utils/config-validation/schema.d.ts +2 -2
  248. package/dist/utils/debug-logger.d.ts +1 -1
  249. package/dist/utils/rtk-compressor.d.ts +13 -10
  250. package/dist/utils/rtk-compressor.js +83 -34
  251. package/dist/utils/rtk-compressor.js.map +1 -1
  252. package/dist/utils/stable-json.d.ts +27 -0
  253. package/dist/utils/stable-json.js +50 -0
  254. package/dist/utils/stable-json.js.map +1 -0
  255. package/dist/webhooks/webhook-manager.d.ts +7 -0
  256. package/dist/webhooks/webhook-manager.js +29 -0
  257. package/dist/webhooks/webhook-manager.js.map +1 -1
  258. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"system-base.js","sourceRoot":"","sources":["../../src/prompts/system-base.ts"],"names":[],"mappings":"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"}
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 };