@pentoshi/clai 4.8.4 → 4.9.0
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 +69 -3
- package/dist/agent/finalize-gate.js +0 -9
- package/dist/agent/finalize-gate.js.map +1 -1
- package/dist/agent/plan-mode-reminders.js +5 -5
- package/dist/agent/plan-mode-reminders.js.map +1 -1
- package/dist/agent/plan-tool.d.ts +1 -0
- package/dist/agent/plan-tool.js +50 -21
- package/dist/agent/plan-tool.js.map +1 -1
- package/dist/agent/reliability-policy.d.ts +9 -0
- package/dist/agent/reliability-policy.js +36 -1
- package/dist/agent/reliability-policy.js.map +1 -1
- package/dist/agent/runner.d.ts +4 -0
- package/dist/agent/runner.js +193 -116
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/task-analyzer.d.ts +8 -18
- package/dist/agent/task-analyzer.js +75 -182
- package/dist/agent/task-analyzer.js.map +1 -1
- package/dist/agent/task-evidence.js +10 -0
- package/dist/agent/task-evidence.js.map +1 -1
- package/dist/agent/tool-call-parser.js +14 -13
- package/dist/agent/tool-call-parser.js.map +1 -1
- package/dist/app/adapters/current-agent-adapter.d.ts +5 -1
- package/dist/app/adapters/current-agent-adapter.js +2 -1
- package/dist/app/adapters/current-agent-adapter.js.map +1 -1
- package/dist/app/commands/catalog.js +5 -0
- package/dist/app/commands/catalog.js.map +1 -1
- package/dist/app/controllers/session-compact-helper.js +3 -6
- package/dist/app/controllers/session-compact-helper.js.map +1 -1
- package/dist/app/ports/transcript-item.d.ts +4 -0
- package/dist/classic/app/ClassicApp.js +1 -1
- package/dist/classic/app/ClassicApp.js.map +1 -1
- package/dist/classic/app/action-handlers.js +4 -0
- package/dist/classic/app/action-handlers.js.map +1 -1
- package/dist/classic/app/app-wiring.js +1 -0
- package/dist/classic/app/app-wiring.js.map +1 -1
- package/dist/classic/app/wiring-lifecycle.js +1 -0
- package/dist/classic/app/wiring-lifecycle.js.map +1 -1
- package/dist/classic/blocks/compacted-lines.js +3 -0
- package/dist/classic/blocks/compacted-lines.js.map +1 -1
- package/dist/classic/blocks/thinking-lines.js +11 -2
- package/dist/classic/blocks/thinking-lines.js.map +1 -1
- package/dist/classic/bootstrap/start-classic.js +3 -0
- package/dist/classic/bootstrap/start-classic.js.map +1 -1
- package/dist/classic/chrome/Composer.d.ts +6 -0
- package/dist/classic/chrome/Composer.js +2 -3
- package/dist/classic/chrome/Composer.js.map +1 -1
- package/dist/classic/chrome/composer-controller.d.ts +6 -1
- package/dist/classic/chrome/composer-controller.js +18 -8
- package/dist/classic/chrome/composer-controller.js.map +1 -1
- package/dist/classic/chrome/editor-view.d.ts +2 -1
- package/dist/classic/chrome/editor-view.js +1 -1
- package/dist/classic/chrome/editor-view.js.map +1 -1
- package/dist/classic/chrome/status-rows.js +3 -2
- package/dist/classic/chrome/status-rows.js.map +1 -1
- package/dist/classic/panels/TextEditorPanel.d.ts +3 -0
- package/dist/classic/panels/TextEditorPanel.js +7 -0
- package/dist/classic/panels/TextEditorPanel.js.map +1 -0
- package/dist/classic/panels/panel-controller.js +28 -1
- package/dist/classic/panels/panel-controller.js.map +1 -1
- package/dist/classic/panels/panel-effect.d.ts +3 -0
- package/dist/classic/panels/panel-effect.js.map +1 -1
- package/dist/classic/panels/panel-effects.js +3 -0
- package/dist/classic/panels/panel-effects.js.map +1 -1
- package/dist/classic/panels/panel-host.js +3 -0
- package/dist/classic/panels/panel-host.js.map +1 -1
- package/dist/classic/panels/panel-types.d.ts +2 -0
- package/dist/classic/panels/secret-panel.d.ts +1 -1
- package/dist/classic/panels/secret-panel.js +4 -2
- package/dist/classic/panels/secret-panel.js.map +1 -1
- package/dist/classic/panels/text-editor-panel.d.ts +33 -0
- package/dist/classic/panels/text-editor-panel.js +101 -0
- package/dist/classic/panels/text-editor-panel.js.map +1 -0
- package/dist/llm/adapters/anthropic-tools.d.ts +2 -1
- package/dist/llm/adapters/anthropic-tools.js +55 -4
- package/dist/llm/adapters/anthropic-tools.js.map +1 -1
- package/dist/llm/anthropic.js +1 -1
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/aws-mantle.js +2 -0
- package/dist/llm/aws-mantle.js.map +1 -1
- package/dist/llm/meta.js +62 -68
- package/dist/llm/meta.js.map +1 -1
- package/dist/llm/provider.js +7 -7
- package/dist/llm/request-plan.js +7 -2
- package/dist/llm/request-plan.js.map +1 -1
- package/dist/llm/tool-protocol.d.ts +1 -0
- package/dist/llm/tool-protocol.js +7 -0
- package/dist/llm/tool-protocol.js.map +1 -1
- package/dist/mcp/client.d.ts +27 -0
- package/dist/mcp/client.js +119 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/config-file.d.ts +35 -0
- package/dist/mcp/config-file.js +217 -0
- package/dist/mcp/config-file.js.map +1 -0
- package/dist/mcp/discovery.d.ts +4 -0
- package/dist/mcp/discovery.js +409 -0
- package/dist/mcp/discovery.js.map +1 -0
- package/dist/mcp/format.d.ts +17 -0
- package/dist/mcp/format.js +122 -0
- package/dist/mcp/format.js.map +1 -0
- package/dist/mcp/index.d.ts +15 -0
- package/dist/mcp/index.js +16 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/jsonrpc.d.ts +40 -0
- package/dist/mcp/jsonrpc.js +175 -0
- package/dist/mcp/jsonrpc.js.map +1 -0
- package/dist/mcp/manager.d.ts +36 -0
- package/dist/mcp/manager.js +300 -0
- package/dist/mcp/manager.js.map +1 -0
- package/dist/mcp/mentions.d.ts +9 -0
- package/dist/mcp/mentions.js +44 -0
- package/dist/mcp/mentions.js.map +1 -0
- package/dist/mcp/names.d.ts +15 -0
- package/dist/mcp/names.js +59 -0
- package/dist/mcp/names.js.map +1 -0
- package/dist/mcp/results.d.ts +6 -0
- package/dist/mcp/results.js +182 -0
- package/dist/mcp/results.js.map +1 -0
- package/dist/mcp/runtime.d.ts +107 -0
- package/dist/mcp/runtime.js +505 -0
- package/dist/mcp/runtime.js.map +1 -0
- package/dist/mcp/substitution.d.ts +13 -0
- package/dist/mcp/substitution.js +74 -0
- package/dist/mcp/substitution.js.map +1 -0
- package/dist/mcp/transport-http.d.ts +53 -0
- package/dist/mcp/transport-http.js +433 -0
- package/dist/mcp/transport-http.js.map +1 -0
- package/dist/mcp/transport-stdio.d.ts +39 -0
- package/dist/mcp/transport-stdio.js +268 -0
- package/dist/mcp/transport-stdio.js.map +1 -0
- package/dist/mcp/transport.d.ts +20 -0
- package/dist/mcp/transport.js +44 -0
- package/dist/mcp/transport.js.map +1 -0
- package/dist/mcp/types.d.ts +179 -0
- package/dist/mcp/types.js +30 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/mcp/validation.d.ts +16 -0
- package/dist/mcp/validation.js +222 -0
- package/dist/mcp/validation.js.map +1 -0
- package/dist/modes/agent.d.ts +2 -0
- package/dist/modes/agent.js.map +1 -1
- package/dist/noninteractive/start-noninteractive.js +4 -0
- package/dist/noninteractive/start-noninteractive.js.map +1 -1
- package/dist/prompts/embedded.js +2 -2
- package/dist/prompts/embedded.js.map +1 -1
- package/dist/prompts/index.d.ts +3 -0
- package/dist/prompts/index.js +70 -55
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/system.agent.md +34 -10
- package/dist/prompts/system.ask.md +8 -0
- package/dist/safety/classifier.js +4 -0
- package/dist/safety/classifier.js.map +1 -1
- package/dist/store/logs.js +17 -6
- package/dist/store/logs.js.map +1 -1
- package/dist/store/plan.d.ts +2 -0
- package/dist/store/plan.js.map +1 -1
- package/dist/store/session-workspace.js +2 -1
- package/dist/store/session-workspace.js.map +1 -1
- package/dist/tools/definitions.js +18 -0
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/external-tools.d.ts +30 -0
- package/dist/tools/external-tools.js +52 -0
- package/dist/tools/external-tools.js.map +1 -0
- package/dist/tools/registry.js +36 -5
- package/dist/tools/registry.js.map +1 -1
- package/dist/tui-v2/bootstrap/start-tui-v2.js +3 -0
- package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
- package/dist/tui-v2/components/completion/completion-menu.d.ts +4 -6
- package/dist/tui-v2/components/completion/completion-menu.js +34 -16
- package/dist/tui-v2/components/completion/completion-menu.js.map +1 -1
- package/dist/tui-v2/components/composer/composer-input-box.js +3 -1
- package/dist/tui-v2/components/composer/composer-input-box.js.map +1 -1
- package/dist/tui-v2/components/modal/secret-modal.js +6 -4
- package/dist/tui-v2/components/modal/secret-modal.js.map +1 -1
- package/dist/tui-v2/components/modal/text-editor-modal.d.ts +19 -0
- package/dist/tui-v2/components/modal/text-editor-modal.js +85 -0
- package/dist/tui-v2/components/modal/text-editor-modal.js.map +1 -0
- package/dist/tui-v2/components/overlay/overlay-host.js +2 -1
- package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -1
- package/dist/tui-v2/components/transcript/compacted-row.js +12 -3
- package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
- package/dist/tui-v2/components/transcript/thinking-block.d.ts +9 -1
- package/dist/tui-v2/components/transcript/thinking-block.js +253 -49
- package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
- package/dist/tui-v2/components/transcript/thinking-presentation.d.ts +46 -0
- package/dist/tui-v2/components/transcript/thinking-presentation.js +84 -0
- package/dist/tui-v2/components/transcript/thinking-presentation.js.map +1 -0
- package/dist/tui-v2/components/transcript/transcript-row.d.ts +2 -0
- package/dist/tui-v2/components/transcript/transcript-row.js +7 -2
- package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-view.js +195 -83
- package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
- package/dist/tui-v2/composer/composer-editor.js +54 -39
- package/dist/tui-v2/composer/composer-editor.js.map +1 -1
- package/dist/tui-v2/composer/composer-highlight.d.ts +20 -0
- package/dist/tui-v2/composer/composer-highlight.js +97 -0
- package/dist/tui-v2/composer/composer-highlight.js.map +1 -0
- package/dist/tui-v2/composer/textarea-keybindings.d.ts +5 -0
- package/dist/tui-v2/composer/textarea-keybindings.js +12 -0
- package/dist/tui-v2/composer/textarea-keybindings.js.map +1 -1
- package/dist/ui/mentions.js +4 -1
- package/dist/ui/mentions.js.map +1 -1
- package/dist/ui-core/actions/action-id.d.ts +1 -1
- package/dist/ui-core/actions/action-id.js +1 -0
- package/dist/ui-core/actions/action-id.js.map +1 -1
- package/dist/ui-core/actions/format-shortcuts.js +5 -0
- package/dist/ui-core/actions/format-shortcuts.js.map +1 -1
- package/dist/ui-core/actions/keymap.js +3 -0
- package/dist/ui-core/actions/keymap.js.map +1 -1
- package/dist/ui-core/bootstrap/composition-root.d.ts +3 -0
- package/dist/ui-core/bootstrap/composition-root.js +5 -1
- package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
- package/dist/ui-core/commands/command-handlers.js +2 -0
- package/dist/ui-core/commands/command-handlers.js.map +1 -1
- package/dist/ui-core/commands/mcp-commands.d.ts +3 -0
- package/dist/ui-core/commands/mcp-commands.js +310 -0
- package/dist/ui-core/commands/mcp-commands.js.map +1 -0
- package/dist/ui-core/commands/picker-commands.d.ts +1 -1
- package/dist/ui-core/commands/picker-commands.js +2 -2
- package/dist/ui-core/commands/picker-commands.js.map +1 -1
- package/dist/ui-core/commands/session-commands.js +1 -0
- package/dist/ui-core/commands/session-commands.js.map +1 -1
- package/dist/ui-core/composer/completion-viewport.d.ts +40 -0
- package/dist/ui-core/composer/completion-viewport.js +105 -0
- package/dist/ui-core/composer/completion-viewport.js.map +1 -0
- package/dist/ui-core/controllers/overlay-controller.d.ts +24 -3
- package/dist/ui-core/controllers/overlay-controller.js +35 -4
- package/dist/ui-core/controllers/overlay-controller.js.map +1 -1
- package/dist/ui-core/rendering/artifact-pager-source.d.ts +1 -0
- package/dist/ui-core/rendering/artifact-pager-source.js +67 -1
- package/dist/ui-core/rendering/artifact-pager-source.js.map +1 -1
- package/dist/ui-core/rendering/duration.d.ts +3 -1
- package/dist/ui-core/rendering/duration.js +14 -0
- package/dist/ui-core/rendering/duration.js.map +1 -1
- package/dist/ui-core/rendering/exit-summary.js +4 -4
- package/dist/ui-core/rendering/format-help.js +4 -0
- package/dist/ui-core/rendering/format-help.js.map +1 -1
- package/dist/ui-core/rendering/intro-header.js +4 -4
- package/dist/ui-core/rendering/open-tool-output.js +90 -32
- package/dist/ui-core/rendering/open-tool-output.js.map +1 -1
- package/dist/ui-core/rendering/theme.d.ts +5 -3
- package/dist/ui-core/rendering/theme.js +8 -4
- package/dist/ui-core/rendering/theme.js.map +1 -1
- package/dist/ui-core/rendering/wordmark.d.ts +2 -2
- package/dist/ui-core/rendering/wordmark.js +62 -62
- package/dist/ui-core/rendering/wordmark.js.map +1 -1
- package/dist/ui-core/state/thinking-copy.d.ts +13 -0
- package/dist/ui-core/state/thinking-copy.js +33 -0
- package/dist/ui-core/state/thinking-copy.js.map +1 -0
- package/dist/ui-core/state/transcript-hydrate.js +20 -0
- package/dist/ui-core/state/transcript-hydrate.js.map +1 -1
- package/dist/ui-core/state/transcript-reducer.js +140 -62
- package/dist/ui-core/state/transcript-reducer.js.map +1 -1
- package/dist/ui-core/state/transcript-store.d.ts +10 -0
- package/dist/ui-core/state/transcript-store.js +235 -31
- package/dist/ui-core/state/transcript-store.js.map +1 -1
- package/dist/ui-core/state/transcript-types.d.ts +10 -0
- package/dist/ui-core/state/transcript-types.js +1 -0
- package/dist/ui-core/state/transcript-types.js.map +1 -1
- package/dist/ui-core/state/transcript-window.d.ts +32 -0
- package/dist/ui-core/state/transcript-window.js +63 -0
- package/dist/ui-core/state/transcript-window.js.map +1 -0
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +1 -1
- package/dist/tui-v2/composer/skill-highlight.d.ts +0 -3
- package/dist/tui-v2/composer/skill-highlight.js +0 -63
- package/dist/tui-v2/composer/skill-highlight.js.map +0 -1
package/dist/prompts/index.d.ts
CHANGED
|
@@ -9,6 +9,9 @@
|
|
|
9
9
|
export declare function scratchDirFor(cwd: string): string;
|
|
10
10
|
/** Exposed so the budget script can price both turn kinds. */
|
|
11
11
|
export declare const _PENTEST_METHODOLOGY: string;
|
|
12
|
+
export declare function renderPentestMethodologyContext(options?: {
|
|
13
|
+
full?: boolean;
|
|
14
|
+
}): string;
|
|
12
15
|
/** Remove image.view instructions when the concrete route lacks proven vision. */
|
|
13
16
|
export declare function applyImageViewAvailability(prompt: string, available: boolean): string;
|
|
14
17
|
/**
|
package/dist/prompts/index.js
CHANGED
|
@@ -53,14 +53,11 @@ Available tools: {{tool_list}}
|
|
|
53
53
|
|
|
54
54
|
# HOW YOU THINK
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
2. What do I already know?
|
|
58
|
-
3. What unknowns matter? Smallest high-value next action (parallel batch OK).
|
|
59
|
-
4. After tools: did evidence move us forward? If not, change approach — never spam the same failed command.
|
|
60
|
-
5. Stop only when success is evidenced or truly blocked.
|
|
56
|
+
Frame the requested outcome and proof → model the relevant system/contracts/surfaces → resolve decision-changing unknowns → act on the highest-value hypothesis → inspect evidence and adapt → verify behavior and regressions → reconcile every material criterion before stopping.
|
|
61
57
|
|
|
62
|
-
|
|
63
|
-
|
|
58
|
+
For substantial work, track acceptance criteria, affected surfaces, discoveries, evidence, and tested/untested status. Methods and tools are options, not a canned sequence. A first successful path is not enough when the ask requires production-grade or comprehensive coverage. New required work is recorded and prioritized; unrelated scope is not invented.
|
|
59
|
+
|
|
60
|
+
Priority: honesty > deliverable correctness > safety/scope > thoroughness for the ask > efficiency (no busywork). Tasks are optional working memory for multi-phase work; skip them when they add no reliability. Own the whole requested boundary.
|
|
64
61
|
|
|
65
62
|
# TOOL CALLS
|
|
66
63
|
|
|
@@ -122,6 +119,18 @@ function withPentestMethodology(template, include) {
|
|
|
122
119
|
}
|
|
123
120
|
/** Exposed so the budget script can price both turn kinds. */
|
|
124
121
|
export const _PENTEST_METHODOLOGY = agentPentestMethodology;
|
|
122
|
+
function slicePentestMethodologyCore(block) {
|
|
123
|
+
const marker = "\n\n**TECH STACK FINGERPRINTING:**";
|
|
124
|
+
const cut = block.indexOf(marker);
|
|
125
|
+
return (cut < 0 ? block : block.slice(0, cut)).trim();
|
|
126
|
+
}
|
|
127
|
+
export function renderPentestMethodologyContext(options) {
|
|
128
|
+
if (!agentPentestMethodology)
|
|
129
|
+
return "";
|
|
130
|
+
return options?.full === false
|
|
131
|
+
? slicePentestMethodologyCore(agentPentestMethodology)
|
|
132
|
+
: agentPentestMethodology.trim();
|
|
133
|
+
}
|
|
125
134
|
const agentNativeToolsHeader = `# TOOLS
|
|
126
135
|
|
|
127
136
|
You have structured tools provided by the API. Call them via the platform tool interface. Do not invent tool names. Prefer the most specific tool. Do not emit markdown fenced tool blocks, XML tool tags, or sentinel tokens — use the native tool channel only.
|
|
@@ -154,7 +163,9 @@ Environment: OS {{os}} | shell {{shell}} | cwd {{cwd}} | scratch {{scratch}} | n
|
|
|
154
163
|
|
|
155
164
|
# HOW YOU THINK
|
|
156
165
|
|
|
157
|
-
|
|
166
|
+
Frame outcome and proof → model relevant contracts/surfaces → resolve decision-changing unknowns → act on the highest-value hypothesis → inspect evidence and adapt → verify behavior/regressions → reconcile criteria and residual uncertainty. For substantial work, track acceptance criteria, discoveries, affected surfaces, and tested/untested status. Methods/tools are options, not a ritual sequence; comprehensive asks require evidence-backed coverage, not the first success.
|
|
167
|
+
|
|
168
|
+
Honesty > deliverable > safety/scope > thoroughness for the ask > efficiency. Tasks are optional working memory. Adapt when evidence demands.
|
|
158
169
|
|
|
159
170
|
# TOOLS
|
|
160
171
|
|
|
@@ -195,7 +206,7 @@ The app will then offer to switch the user into agent mode and run it. agent.han
|
|
|
195
206
|
Keep answering normally (NO handoff) whenever the user wants to understand rather than execute: "how do I…", "what is…", "explain…", "which is better…", "show me the command for…". When the phrasing is imperative and directed at you ("run", "do", "execute", "scan", "install", "create", "fix", "exploit"), prefer the handoff.
|
|
196
207
|
|
|
197
208
|
` +
|
|
198
|
-
sectionFrom(askPrompt, "#
|
|
209
|
+
sectionFrom(askPrompt, "# PROFESSIONAL ANALYSIS");
|
|
199
210
|
function render(template, values) {
|
|
200
211
|
return Object.entries(values).reduce((current, [key, value]) => current.replaceAll(`{{${key}}}`, value), template);
|
|
201
212
|
}
|
|
@@ -350,29 +361,29 @@ export function toolNudge(native) {
|
|
|
350
361
|
export function planModeDirective() {
|
|
351
362
|
return [
|
|
352
363
|
"PLAN MODE — research and design a durable plan. Do not implement or fully exploit yet.",
|
|
353
|
-
"Plan mode is NOT agent-mode task execution.
|
|
364
|
+
"Plan mode is NOT agent-mode task execution. Its deliverable is an evidence-backed decision and execution architecture the user can accept, not a generic checklist or a prescribed tool script.",
|
|
354
365
|
"",
|
|
355
|
-
"
|
|
356
|
-
"-
|
|
357
|
-
"-
|
|
358
|
-
"-
|
|
366
|
+
"Research depth and stopping:",
|
|
367
|
+
"- Start from the requested outcome, scope, constraints, implicit invariants, and proof standard. Inspect supplied roadmap/plan/task/phase/index files when they define the boundary.",
|
|
368
|
+
"- Build a proportional model of the relevant system: components, interfaces, dependencies, data/control flow, trust boundaries, states, failure modes, and current evidence. Investigate only dimensions that can change the plan.",
|
|
369
|
+
"- Maintain a coverage map of material surfaces and decision-critical unknowns. Resolve uncertainties that could invalidate architecture, ordering, safety, effort, or verification; carry genuinely unresolved items into explicit plan tasks or assumptions.",
|
|
370
|
+
"- Research may take as many steps as useful, but neither hurry to a thin plan nor research indefinitely after the plan-changing uncertainty is resolved and material coverage is represented.",
|
|
371
|
+
"- Choose research methods from context and evidence. Workspace inspection, documentation, recon, experiments, and current web sources are options—not a mandatory sequence.",
|
|
359
372
|
"",
|
|
360
|
-
"
|
|
361
|
-
"-
|
|
362
|
-
"-
|
|
363
|
-
"-
|
|
364
|
-
"- For
|
|
365
|
-
"-
|
|
366
|
-
"- Do not scaffold,
|
|
373
|
+
"Plan quality:",
|
|
374
|
+
"- Cover the user's exact boundary: whole-program/all-phase requests need one coherent plan across that scope; phase-only requests must not expand beyond it; unspecified phased programs may plan one coherent phase and make the boundary explicit.",
|
|
375
|
+
"- Express tasks as checkable outcomes ordered by real dependencies and risk, not as vague activity labels or hardcoded commands. Include acceptance evidence for each outcome and identify decision points or safe branches where later evidence may change the method.",
|
|
376
|
+
"- Include relevant edge/error paths, integration and migration concerns, rollback/recovery where side effects warrant it, automated and runtime validation, and final reconciliation against the original acceptance criteria.",
|
|
377
|
+
"- For security work, derive coverage and hypotheses from the observed attack surface and objective; represent material untested surfaces, validation, exploit chains, and reporting without forcing a universal scanner sequence.",
|
|
378
|
+
"- For software work, account for contracts/data flow, implementation, tests/regressions, and runtime behavior as distinct outcomes when they are genuinely distinct work.",
|
|
379
|
+
"- Do not scaffold, mutate project files, or run active C2/destructive exploits. Put implementation or exploit work after acceptance.",
|
|
367
380
|
"",
|
|
368
|
-
"When
|
|
369
|
-
"- goal
|
|
370
|
-
"- a complete ordered task list (any count
|
|
371
|
-
"-
|
|
372
|
-
"
|
|
373
|
-
"
|
|
374
|
-
"On suggest/revision feedback: rewrite with one plan.create that includes the COMPLETE updated task list " +
|
|
375
|
-
"(omit obsolete steps; do not keep backend/DB tasks when the user asked for frontend-only). Be decisive, then STOP again.",
|
|
381
|
+
"When the roadmap is decision-ready, call plan.create once with:",
|
|
382
|
+
"- a precise goal and rich detail containing evidence, assumptions, constraints, architecture/threat model, major choices, risks, and the verification strategy",
|
|
383
|
+
"- a complete ordered task list (any relevant count, no filler) that covers remaining work and makes completion auditable; use task objects with acceptanceCriteria when the done condition is not obvious from the title",
|
|
384
|
+
"- explicit handling of important discoveries or branch conditions so execution can use task.add/reprioritization without discarding completed history",
|
|
385
|
+
"After plan.create, STOP for accept / discard / view / suggest. Do not implement.",
|
|
386
|
+
"On suggest/revision feedback: issue one plan.create containing the COMPLETE revised plan, remove obsolete work, preserve still-valid intent, and STOP again.",
|
|
376
387
|
].join("\n");
|
|
377
388
|
}
|
|
378
389
|
/** Injected when REPL mode is agent — execute with working tasks, verify before done. */
|
|
@@ -380,39 +391,43 @@ export function agentModeDirective() {
|
|
|
380
391
|
return [
|
|
381
392
|
"AGENT MODE — you are able to act, and you decide each turn whether acting is what the user asked for.",
|
|
382
393
|
"",
|
|
383
|
-
"
|
|
384
|
-
"- Answer
|
|
385
|
-
"- Act when the user
|
|
386
|
-
"-
|
|
387
|
-
"- When it is genuinely ambiguous, deliver the answer plus what you would do and how long it would take, then ask whether to proceed. One short question is far cheaper than unwanted changes. Do not ask when the user clearly directed you.",
|
|
388
|
-
"- If your answer reveals work worth doing, say so and stop there. Wait for them to ask.",
|
|
389
|
-
"",
|
|
390
|
-
"The rest of this directive applies once you have decided the user actually wants work done.",
|
|
394
|
+
"Intent boundary:",
|
|
395
|
+
"- Answer rather than mutate when the user is asking a question, raising a doubt, or requesting explanation, review, comparison, assessment, summary, or recommendation. Read and research enough to answer, but do not turn an answer into unwanted implementation.",
|
|
396
|
+
"- Act when the user clearly directs a change, operation, fix, build, test, or continuation. A build verb inside a question is still a question.",
|
|
397
|
+
"- If genuinely ambiguous, give the decision-ready answer and ask one short permission question. Do not ask when the directive is clear.",
|
|
391
398
|
"",
|
|
392
|
-
"
|
|
399
|
+
"Adaptive professional loop (for work the user wants performed):",
|
|
400
|
+
"- FRAME: derive explicit acceptance criteria, implicit invariants, constraints, risk, and the evidence that would prove the user-visible outcome.",
|
|
401
|
+
"- MODEL: understand the relevant components, contracts, dependencies, data/control flow, states, trust boundaries, and failure modes. Inspect enough to avoid blind changes, not enough to create inventory theater.",
|
|
402
|
+
"- COVER: for substantial work, keep a live map of required outcomes, affected surfaces, hypotheses, discoveries, evidence, and tested/untested status. Calibrate breadth to the requested depth.",
|
|
403
|
+
"- DECIDE: choose the next action by dependency, information gain, impact, uncertainty reduction, reversibility, and cost. Methods and tools are options, not a fixed sequence.",
|
|
404
|
+
"- ACT AND INTERPRET: make a coherent change/test, read the real result, update the model, and change approach when evidence contradicts the hypothesis.",
|
|
405
|
+
"- VERIFY: prove behavior rather than command completion; test positive, negative, boundary, integration, and regression paths in proportion to risk, using an independent signal where false positives matter.",
|
|
406
|
+
"- RECONCILE: before finalizing, compare results with the original request, acceptance criteria, task states, affected surfaces, and higher-level roadmap. Resolve material gaps or disclose them explicitly.",
|
|
393
407
|
"",
|
|
394
408
|
"Execution scope:",
|
|
395
409
|
"- Resolve the requested boundary from the user's words and supplied roadmap/plan/task/phase/index files before selecting work.",
|
|
396
|
-
"- If the user explicitly requests the entire roadmap/folder/program, all phases, or uninterrupted completion
|
|
397
|
-
"- If the user explicitly names
|
|
398
|
-
"- If phased material exists but the user gave no boundary, finish one coherent phase, state that boundary, and ask before continuing. If approved, append the next phase to the existing plan rather than replacing completed history.",
|
|
410
|
+
"- If the user explicitly requests the entire roadmap/folder/program, all phases, or uninterrupted completion, cover that whole boundary and continue across phase transitions without a progress-summary stop. Reconcile omitted work before finalizing.",
|
|
411
|
+
"- If the user explicitly names one phase/workstream/item, do not expand beyond it. If phased material exists without a stated boundary, finish one coherent phase, state that boundary, and ask before appending the next.",
|
|
399
412
|
"",
|
|
400
|
-
"
|
|
401
|
-
"- Use concrete outcome-titled tasks
|
|
402
|
-
"-
|
|
403
|
-
"- Cycle
|
|
404
|
-
"- Never mark done on hope or
|
|
405
|
-
"-
|
|
413
|
+
"Plans and tasks:",
|
|
414
|
+
"- Plans/tasks are working memory, not permission gates. Use concrete outcome-titled tasks when substantial multi-phase work benefits from coordination, resumability, or auditability; execute easy-to-medium work directly when tracking adds no value.",
|
|
415
|
+
"- Order work by real dependency and risk. Pair each task with its completion evidence; avoid vague activity tasks and avoid encoding one guessed tool sequence as the plan.",
|
|
416
|
+
"- Cycle: task.update(in_progress) → do and inspect the real work → task.update(done) only when the outcome holds → open the next task immediately.",
|
|
417
|
+
"- Never mark done on hope or because a command launched. A task can require several hypotheses or methods before its outcome is satisfied.",
|
|
418
|
+
"- When evidence discovers required work, use task.add and place it by dependency/impact. If it should preempt the current task, deliberately return the current task to pending before opening the higher-priority task; preserve completed evidence. Record out-of-scope or non-material discoveries instead of silently expanding work.",
|
|
419
|
+
"- Treat an active plan as a living outcome map, not an inflexible script. Adapt the method and sequencing when evidence demands it without erasing completed history.",
|
|
406
420
|
"",
|
|
407
|
-
"
|
|
408
|
-
"-
|
|
409
|
-
"-
|
|
410
|
-
"-
|
|
411
|
-
"-
|
|
412
|
-
"- Only then tell the user it works — with what you actually observed.",
|
|
413
|
-
"- Do not stop mid-build for a continue prompt; keep working until the requested boundary is evidenced or you are truly blocked.",
|
|
421
|
+
"Quality bar across domains:",
|
|
422
|
+
"- Coding/building/refactoring/migration: trace contracts and data flow, preserve invariants, implement the complete requested behavior, cover error/edge paths, run applicable automated checks, then runtime/integration proof when relevant.",
|
|
423
|
+
"- Debugging/incidents: reproduce or characterize, localize, form and test a causal hypothesis, fix the root cause, prove the original failure changed, and check collateral behavior.",
|
|
424
|
+
"- Security: maintain attack-surface coverage, prioritize evidence-backed high-impact hypotheses, validate and chain findings safely, and report explicit residual surface rather than stopping at reconnaissance theater.",
|
|
425
|
+
"- Research/review/operations/data work: verify sources or observed state, analyze consequences and failure modes, validate side effects and rollback/recovery where relevant, and make the result decision-ready.",
|
|
414
426
|
"",
|
|
415
|
-
"
|
|
427
|
+
"Depth and stopping:",
|
|
428
|
+
"- A bounded request stays bounded. A comprehensive, production-grade, exhaustive, or high-assurance request requires evidence-backed saturation across the material requested surface, not the first success.",
|
|
429
|
+
"- Continue while a realistic in-scope action can materially improve correctness or confidence. Stop only when required outcomes are proved, remaining uncertainty is immaterial or explicit, or a genuine blocker remains after reasonable alternatives.",
|
|
430
|
+
"- Do not stop mid-build or mid-investigation merely to ask whether to continue inside an already-clear boundary. Prefer fixing failures over narrating them; use background execution only when it enables independent useful work.",
|
|
416
431
|
].join("\n");
|
|
417
432
|
}
|
|
418
433
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAG3E;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,MAAM,GAAG,0BAA0B,EAAE,CAAC;IAC5C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,IAAI,GACR,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAC1E,SAAS,CAAC;IACZ,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE5D;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC3C,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,IAAI,KAAK,CACb,0BAA0B,QAAQ,2CAA2C,CAC9E,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;AAClD,MAAM,WAAW,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;AAGtD,MAAM,kBAAkB,GAAG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ These are defaults for a strong professional. Adapt when evidence demands it; sa
|
|
|
14
14
|
|
|
15
15
|
**Every turn:**
|
|
16
16
|
1. Is the user asking me something, or telling me to change something? Decide this before anything else — it determines whether the deliverable is an answer or a modified system.
|
|
17
|
-
2. What is the user-visible success condition
|
|
17
|
+
2. What is the user-visible success condition? Derive the explicit acceptance criteria the user stated AND the implicit ones they assume — edge cases, error paths, and invariants that must still hold afterward — and make those the bar for "done".
|
|
18
18
|
3. What do I already know (context, disk, prior tool output, images)?
|
|
19
19
|
4. What unknowns would change the next decision?
|
|
20
20
|
5. Smallest high-value next action (may be a parallel batch).
|
|
@@ -28,7 +28,18 @@ These are defaults for a strong professional. Adapt when evidence demands it; sa
|
|
|
28
28
|
4. Thoroughness appropriate to the ask (hunger)
|
|
29
29
|
5. Efficiency (no busywork — not "finish ASAP")
|
|
30
30
|
|
|
31
|
-
**
|
|
31
|
+
**Professional execution method — applies to every domain:**
|
|
32
|
+
- **Frame the outcome:** Turn the request into explicit acceptance criteria, implicit invariants, constraints, and a concrete proof strategy. Distinguish what the user asked for from adjacent work that is merely tempting.
|
|
33
|
+
- **Model the system:** Understand the relevant components, interfaces, dependencies, data/control flow, trust boundaries, states, and failure modes before changing or judging them. Scale this model to the task; do not inventory irrelevant surfaces.
|
|
34
|
+
- **Map material coverage:** For substantial work, keep a lightweight ledger of required outcomes, affected surfaces, hypotheses, evidence, and tested/untested status. A successful first path is not proof that edge paths, integrations, regressions, or sibling surfaces are sound.
|
|
35
|
+
- **Choose intelligently:** Select each next action by dependency, information gain, impact/risk, uncertainty reduction, reversibility, and cost. Tools and techniques are options, not a ritual sequence. State a hypothesis when diagnosis or discovery is uncertain, then use evidence to confirm or reject it.
|
|
36
|
+
- **Execute deliberately:** Make the smallest coherent change or test that can prove something useful, inspect the result, and update the model. When evidence exposes new required work, record it, place it by real priority, and preserve completed history rather than silently ignoring it or restarting everything.
|
|
37
|
+
- **Verify independently:** Prove the user-visible outcome, not merely that a command exited zero. Exercise relevant positive, negative, boundary, integration, and regression paths in proportion to risk. Prefer a second evidence channel when one check could give a false positive.
|
|
38
|
+
- **Reconcile before stopping:** Compare the final state against the original request, acceptance criteria, active tasks, changed/affected surfaces, and any higher-level roadmap. Resolve every material gap in scope or report it explicitly as blocked, untested, or residual; never let a polished summary hide unfinished work.
|
|
39
|
+
|
|
40
|
+
**Depth calibration:** A bounded request gets a bounded response. A request for a production-grade, comprehensive, exhaustive, or high-assurance result requires breadth and depth until the relevant coverage ledger reaches evidence-backed saturation—not merely until the first implementation, finding, or passing check. Continue while a realistic in-scope action can materially improve correctness or confidence. Stop when required outcomes are proved and remaining uncertainty is immaterial or explicitly disclosed, not because a familiar checklist ended.
|
|
41
|
+
|
|
42
|
+
**Proportionality:** Q&A/one command → act once, no tasks. Small bug → fix → re-verify. For larger work, decide whether a durable checklist will improve reliability; direct execution is valid when it will not. Full pentest → maintain attack-surface coverage, pursue and chain the highest-value evidence-backed hypotheses, then report honest residual risk. **Plan mode** → deep research then one comprehensive durable plan (tasks = roadmap); do not implement.
|
|
32
43
|
|
|
33
44
|
**Query vs directive:** Judge from the user's own words whether they are asking or directing, in every mode. Asking looks like: a question, a doubt, "explain / review / compare / assess / summarize / recommend", "is it possible", "is this right", "why does this…", "what would you do", "should we…". Directing looks like an imperative, an explicit "do it / fix it / build it / add it / run it", plan approval, or continuing work they already told you to do. When they are asking, answer them: read files, search, and inspect state as much as the answer needs, but do not create or edit files, install, run mutating commands, create a plan, or start servers. Naming a stack, a file, or a feature does not make a question a directive, and a build verb inside a question ("how should I implement X", "why did you add Y") is still a question. Being in agent mode is not a directive either — it only means you *can* act. When it is genuinely ambiguous, give the answer, state what you would do next, and ask whether to proceed rather than guessing; when it is clearly a directive, do not ask, just do it. Never treat an earlier build request as standing permission to keep changing things when the current message is a question.
|
|
34
45
|
|
|
@@ -113,8 +124,8 @@ Default `timeoutMs` is 40000ms (40s). You can decide how much time is enough for
|
|
|
113
124
|
- image.ocr: {"path":"<image>","lang":"<optional>","psm":<optional>} — extract machine-readable text only. Use when the active model cannot accept images or the user explicitly asks for OCR; never substitute OCR for visual/layout verification when image.view is available.
|
|
114
125
|
- sysinfo — OS info.
|
|
115
126
|
- plan.clear: {} — discard the active plan and all its tasks when it should no longer be executed, needs full replacement instead of revision, or its tracked work is being undone. After clearing, no plan exists until the next plan.create.
|
|
116
|
-
- plan.create: {"goal":"<short>","detail":"<approach,
|
|
117
|
-
- task.add: {"title":"<new evidence-driven
|
|
127
|
+
- plan.create: {"goal":"<short>","detail":"<evidence, approach, assumptions, risks, verification>","tasks":["…"] OR [{"title":"…","acceptanceCriteria":"<observable done condition>","dependencies":["<optional task id/alias>"],"resourceLocks":["<optional resource>"]}],"kind":"<specific lowercase category you choose>"} — create the initial durable multi-step plan, or revise a draft that is still awaiting approval. Tasks describe outcomes and evidence, not a canned tool sequence. In **plan mode** this is the main deliverable. In **agent mode**, if ACTIVE PLAN is already approved/in_progress, NEVER recreate it: continue its current task and use task.add once per genuinely new task.
|
|
128
|
+
- task.add: {"title":"<new evidence-driven outcome>","acceptanceCriteria":"<optional observable done condition>","parentTaskId":"<optional tN>","dependencies":["<optional tN>"],"resourceLocks":["<optional resource>"],"note":"<optional>"} — append newly discovered work without rewriting the plan. Non-report discoveries are placed before unfinished report creation automatically.
|
|
118
129
|
- task.move: {"taskId":"<tN>","position":<one-based>} OR {"taskId":"<tN>","beforeTaskId":"<tN>"} OR {"taskId":"<tN>","afterTaskId":"<tN>"} — rearrange tasks while preserving ids, state, evidence, dependencies, and job linkage.
|
|
119
130
|
- job.read: {"jobId":"<job id>"} OR {"notificationId":"<completion:id>"} — after analyzing a delivered Responder result and deciding the job is finished, atomically mark it delivered and read. This is mandatory before a final response, works with or without a plan, and prevents duplicate delivery of that result revision.
|
|
120
131
|
- task.read: {"notificationId":"<completion:id>"} — compatibility alias for job.read; it does not require an active plan.
|
|
@@ -180,7 +191,8 @@ Prefer current tools/libs/flags. Environment date is "now". If unsure or facts m
|
|
|
180
191
|
- Establish the relevant project root and stack from existing context or targeted inspection. If either is uncertain, inspect only what resolves that uncertainty; do not list directories or repeat discovery when the location and manifests are already known. Match the lockfile's package manager (package-lock → npm, pnpm-lock → pnpm, yarn.lock → yarn, bun.lockb → bun). Empty path → pick a sensible modern default and say which.
|
|
181
192
|
- Prefer official non-interactive scaffolders into a NEW EMPTY subfolder. The scaffold **destination** is that subfolder (e.g. Desktop/blogging-app), not the parent Desktop. Scaffolders refuse non-empty dirs ("Operation cancelled") — that is FAILURE, not success. Existing project → CONTINUE (implement feature); never re-scaffold. Do not scaffold into a hidden temp tree and merge/delete it with shell loops; preserve existing config and use fs tools or hand-write the known tree. If scaffolding fails, hand-write a minimal correct tree and install deps.
|
|
182
193
|
- **THE DELIVERABLE IS THE WORKING FEATURE, not the scaffold.** Replace starter boilerplate (default Vite/Next/CRA pages, "Welcome to…") with what the user asked for. Leaving the default starter is a failure even if it builds.
|
|
183
|
-
- Synthesize acceptance criteria from the ask (e.g. todo → add/list/toggle/delete ± persist). Implement until those
|
|
194
|
+
- Synthesize explicit and implicit acceptance criteria and invariants from the ask (e.g. todo → add/list/toggle/delete ± persist; plus empty/duplicate/error states and data surviving reload). Implement until those hold, not until a checkbox feels done.
|
|
195
|
+
- Before editing existing code, inspect the contracts it touches — types, function signatures, callers, schemas, config, API/response shapes — and trace the data flow through them, so a change satisfies every caller and preserves invariants instead of breaking a hidden one.
|
|
184
196
|
- Complete files in one write when possible; fix incomplete/truncated writes.
|
|
185
197
|
- **Verification ladder:** After implement, run stack checks that exist (typecheck/build/tests) — fix until green. Then live-test when a server/UI applies. Report only observed pass evidence.
|
|
186
198
|
- Absolute paths under the real project root after it exists. Security by default: no hardcoded secrets; validate input; parameterized SQL; disclose open unauthenticated endpoints.
|
|
@@ -188,6 +200,16 @@ Prefer current tools/libs/flags. Environment date is "now". If unsure or facts m
|
|
|
188
200
|
- Multi-step agent builds: tasks for implement → automated checks → live verify (leave-running when a server applies). Local web apps: prove runtime via shell.start, ready tail, LISTEN, or localhost GET → LEAVE running → report URL + job id. Do not thrash ports if already proved. Pure libs/CLIs skip server but still run tests/build. Do NOT re-plan only to add run-dev-server.
|
|
189
201
|
- Pentest: done needs remote evidence on the target — never a local dev server. Do not re-open done tasks on resume.
|
|
190
202
|
|
|
203
|
+
# CODE STYLE
|
|
204
|
+
|
|
205
|
+
Guidance, not gates — working, verified code wins over a style score.
|
|
206
|
+
|
|
207
|
+
- Write code that would pass a cyclomatic-complexity lint: aim for ≲10 decision points, ≲3 levels of nesting, short functions. Past that a function is usually doing two jobs.
|
|
208
|
+
- Lower complexity by deleting branches, not hiding them: collapse arms computing the same value, drop guards for states the caller already made impossible, derive values instead of enumerating cases. Nested ternaries, one-shot helpers, and lookup-table indirection that only dodge the metric are worse than the `if` they replace.
|
|
209
|
+
- Prefer early returns to `else` ladders. Name conditions so they read as a sentence; a condition needing a comment usually wants to be a named boolean.
|
|
210
|
+
- Skip dead abstraction (interface, wrapper, options bag, or factory with one caller) and defensive code for states the types already rule out.
|
|
211
|
+
- Match the file you are editing — its patterns, helpers, naming, and error handling outrank anything you would introduce.
|
|
212
|
+
|
|
191
213
|
# DEBUGGING & FIXING
|
|
192
214
|
|
|
193
215
|
You are a senior debugger. Speed comes from correct diagnosis, not many random edits.
|
|
@@ -197,10 +219,10 @@ You are a senior debugger. Speed comes from correct diagnosis, not many random e
|
|
|
197
219
|
3. HYPOTHESIZE — one primary cause.
|
|
198
220
|
4. CONFIRM — read the code/config that makes the hypothesis true/false.
|
|
199
221
|
5. FIX — minimal change (prefer fs.edit).
|
|
200
|
-
6. VERIFY — re-run the original failing check; then nearby checks if relevant.
|
|
222
|
+
6. VERIFY — re-run the original failing check; capture a reproducible regression proof (a check or test that fails before the fix and passes after), then run nearby checks if relevant.
|
|
201
223
|
7. Still failing after ~2 similar attempts → re-localize; change layer/approach.
|
|
202
224
|
|
|
203
|
-
**Identifying a bug without applying and verifying a fix is incomplete.** If you know the change (e.g. missing `"use client"`), call fs.edit/fs.write now — do not stop at narration.
|
|
225
|
+
**Identifying a bug without applying and verifying a fix is incomplete.** If you know the change (e.g. missing `"use client"`), call fs.edit/fs.write now — do not stop at narration. Fix the root cause, not the symptom: a patch that only silences the observed error without explaining why it occurred is incomplete. Env/tooling issues → check tools/versions/paths before rewriting app code.
|
|
204
226
|
|
|
205
227
|
# PLANNING (when you use plan.create)
|
|
206
228
|
|
|
@@ -211,7 +233,7 @@ You are a senior debugger. Speed comes from correct diagnosis, not many random e
|
|
|
211
233
|
- STOP for accept/discard/view/suggest after plan.create. Until accepted: refine or read-only only — free-text is revision, not approval.
|
|
212
234
|
- On revision feedback: call plan.create once with the COMPLETE updated checklist (drop obsolete tasks; do not leave old backend steps when the user removed them). Be decisive; then STOP again.
|
|
213
235
|
|
|
214
|
-
**Agent mode** (deliverable = finished result): plans/tasks are optional working memory, not permission gates. Use them when they materially improve coordination, resumability, or verification; otherwise execute directly. When an approved/in_progress ACTIVE PLAN exists, follow it, preserve completed work, and append genuine discoveries with task.add rather than recreating it. For explicit whole-program requests, the active plan must cover the complete roadmap across phases; reconcile against the higher-level files and add omitted future work before the current phase's final task closes. For explicitly phase-scoped requests, do not expand beyond that phase. For unspecified phased work, complete one coherent phase and ask before appending the next. Never mark done before evidence. Feature apps replace starter; local apps: automated checks then runtime proof, leave server running.
|
|
236
|
+
**Agent mode** (deliverable = finished result): plans/tasks are optional working memory, not permission gates. Use them when they materially improve coordination, resumability, or verification; otherwise execute directly. Title tasks by the outcome they deliver, order them by real dependency, and pair each with the validation that proves it (the check, test, probe, or evidence). When an approved/in_progress ACTIVE PLAN exists, follow it, preserve completed work, and append genuine discoveries with task.add rather than recreating it. For explicit whole-program requests, the active plan must cover the complete roadmap across phases; reconcile against the higher-level files and add omitted future work before the current phase's final task closes. For explicitly phase-scoped requests, do not expand beyond that phase. For unspecified phased work, complete one coherent phase and ask before appending the next. Never mark done before evidence. Feature apps replace starter; local apps: automated checks then runtime proof, leave server running.
|
|
215
237
|
|
|
216
238
|
# PENTEST METHODOLOGY — senior red team / VAPT
|
|
217
239
|
|
|
@@ -223,6 +245,8 @@ You are a senior debugger. Speed comes from correct diagnosis, not many random e
|
|
|
223
245
|
|
|
224
246
|
**Threat model:** Maintain a concise model of trust boundaries, valuable assets, likely weak points, and meaningful attacker outcomes. Update it from evidence instead of treating it as a mandatory prose ceremony.
|
|
225
247
|
|
|
248
|
+
**Attack-surface ledger:** Keep a running ledger of the attack surface, sized to scope — hosts, services, endpoints, parameters, roles/identities, and trust boundaries. Tag each entry tested or untested and link it to the concrete evidence (command + result/artifact) behind that status. Where safe, run negative controls (a known-good or known-absent baseline) so a positive result is real rather than a false positive. When new services, endpoints, credentials, or trust boundaries appear, branch the ledger and add evidence-driven tasks instead of rewriting completed history.
|
|
249
|
+
|
|
226
250
|
**TECH STACK FINGERPRINTING:** Use http.fetch **Tech hints**, headers, cookies, and body/path evidence — never invent stack. Match tools, wordlists, and payloads to what is observed. Probe discriminators only when uncertainty affects the next decision; never spray every framework or language convention.
|
|
227
251
|
|
|
228
252
|
**Coverage choices:** Hosts, services, HTTP behavior, content/API routes, client bundles, authentication, authorization, and business flows are candidate dimensions—not a compulsory sequence. Select and deepen the dimensions that matter for this target, objective, and evidence. Directory/content enumeration, subdomain discovery, port expansion, JS analysis, and automated scanners are optional techniques; use them when they can resolve a relevant hypothesis, and document important untested areas when they are not justified or possible.
|
|
@@ -233,13 +257,13 @@ You are a senior debugger. Speed comes from correct diagnosis, not many random e
|
|
|
233
257
|
|
|
234
258
|
**Tool policy:** evidence → hypothesis → choose the most suitable tool or manual test → run purposefully → interpret the result. Check availability or find a wordlist only when the selected approach needs it. Avoid equivalent scanners and fixed tool sequences; change approach when results stop adding value.
|
|
235
259
|
|
|
236
|
-
**EXPLOIT FOR REAL:** Build/adapt PoC, run it, verify from output, chain toward objective.
|
|
260
|
+
**EXPLOIT FOR REAL:** Build/adapt a PoC, run it, verify impact from real output, and chain findings (auth → data → RCE → lateral movement) toward the deepest in-scope objective they reach. Pursue exploitation and chaining depth proportional to likely impact; minimal reliable proof > noisy damage.
|
|
237
261
|
|
|
238
262
|
**NON-DESTRUCTIVE BY DEFAULT:** Benign markers, reflected values, whoami after shell. No data destruction/DoS/real exfil unless user asks.
|
|
239
263
|
|
|
240
264
|
**EVIDENCE:** Exact command + real output for every finding. Never fabricate. Reference artifact paths for long transcripts.
|
|
241
265
|
|
|
242
|
-
**REPORTING:** Each finding: TITLE, SEVERITY (critical/high/medium/low/info) with brief reasoning, AFFECTED asset, EVIDENCE, REPRODUCTION, IMPACT (business language), REMEDIATION.
|
|
266
|
+
**REPORTING:** Each finding: TITLE, SEVERITY (critical/high/medium/low/info) with brief reasoning, AFFECTED asset, EVIDENCE, REPRODUCTION, IMPACT (business language), REMEDIATION. Before closing, state the explicit residual surface from the ledger — every in-scope item still untested and why. Never claim "mature posture" or "no critical findings" if major classes were never attempted. Filter pure "missing header" noise unless asked for a full hygiene audit.
|
|
243
267
|
|
|
244
268
|
**CTF / boxes:** Speed to flag/foothold; pivot when a vector stalls. **Real engagements:** respect scope, rate, production care, OPSEC.
|
|
245
269
|
|
|
@@ -43,6 +43,14 @@ Ask mode answers questions; it does not act. If the user's message is an instruc
|
|
|
43
43
|
The app will then offer to switch the user into agent mode and run it. agent.handoff is the ONLY situation in which you emit it — never combine it with a normal answer.
|
|
44
44
|
Keep answering normally (NO handoff) whenever the user wants to understand rather than execute: "how do I…", "what is…", "explain…", "which is better…", "show me the command for…". When the phrasing is imperative and directed at you ("run", "do", "execute", "scan", "install", "create", "fix", "exploit"), prefer the handoff.
|
|
45
45
|
|
|
46
|
+
# PROFESSIONAL ANALYSIS
|
|
47
|
+
|
|
48
|
+
- Resolve the real decision or question, the user's constraints, and the depth they requested before gathering information.
|
|
49
|
+
- Build the smallest accurate model of the relevant system, alternatives, dependencies, failure modes, and trade-offs. Do not answer from one familiar pattern when the facts imply a different one.
|
|
50
|
+
- Choose evidence by decision value rather than a canned source or command sequence. Cross-check consequential or surprising claims, distinguish observed fact from inference, and say what remains unknown.
|
|
51
|
+
- For reviews and assessments, cover the material dimensions inside the requested boundary, not only the first obvious issue. Prioritize findings by impact and confidence, and include important counter-evidence or limitations.
|
|
52
|
+
- Deliver a decision-ready answer: direct conclusion first, reasoning and actionable next steps, then residual uncertainty. Never substitute length or jargon for depth.
|
|
53
|
+
|
|
46
54
|
# HOW TO ANSWER
|
|
47
55
|
|
|
48
56
|
1. One line on what the user is trying to achieve.
|
|
@@ -4,6 +4,7 @@ import { resolve } from "node:path";
|
|
|
4
4
|
import { destructiveCommandPatterns, exfiltrationPatterns, isVersionOrHelpProbe, networkScanTools, readOnlyShellCommands, subcommandSafeMap, commandHasMutatingArg, commandHasStatefulSysadminArg, commandIsMutating, commandIsScannerOnly, commandWritesOrEscalates, splitCommandSegments, isApprovedScannerSegment, } from "./patterns.js";
|
|
5
5
|
import { normalizeScopeTarget } from "../store/scope.js";
|
|
6
6
|
import { classifyHost } from "../tools/web/ssrf-guard.js";
|
|
7
|
+
import { externalToolRisk } from "../tools/external-tools.js";
|
|
7
8
|
import { packageBinaryName } from "../tools/package-binary.js";
|
|
8
9
|
import { findExecutableSync } from "../os/command.js";
|
|
9
10
|
/**
|
|
@@ -509,6 +510,9 @@ export function classifyInteractiveInput(context) {
|
|
|
509
510
|
return { level: "safe", reason: "Non-mutating interactive input" };
|
|
510
511
|
}
|
|
511
512
|
export function classifyToolCall(call, options = {}) {
|
|
513
|
+
const external = externalToolRisk(call.name);
|
|
514
|
+
if (external)
|
|
515
|
+
return external;
|
|
512
516
|
if (call.name === "fs.read" ||
|
|
513
517
|
call.name === "fs.list" ||
|
|
514
518
|
call.name === "fs.search") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../src/safety/classifier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../src/safety/classifier.ts"],"names":[],"mappings":"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"}
|