@prestyj/cli 4.3.239 → 4.5.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 +4 -2
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +17 -2
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/shared.d.ts.map +1 -1
- package/dist/cli/shared.js +27 -5
- package/dist/cli/shared.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +14 -5
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -2
- package/dist/config.js.map +1 -1
- package/dist/config.test.js +10 -0
- package/dist/config.test.js.map +1 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +34 -15
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +18 -0
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +62 -8
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/auto-update.js +2 -2
- package/dist/core/auto-update.js.map +1 -1
- package/dist/core/compaction/compactor.d.ts.map +1 -1
- package/dist/core/compaction/compactor.js +4 -0
- package/dist/core/compaction/compactor.js.map +1 -1
- package/dist/core/goal-worker.js +1 -1
- package/dist/core/goal-worker.js.map +1 -1
- package/dist/core/goal-worker.test.js +1 -1
- package/dist/core/goal-worker.test.js.map +1 -1
- package/dist/core/mcp/defaults.d.ts.map +1 -1
- package/dist/core/mcp/defaults.js +39 -3
- package/dist/core/mcp/defaults.js.map +1 -1
- package/dist/core/model-registry.d.ts +21 -0
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +47 -16
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-registry.test.js +13 -0
- package/dist/core/model-registry.test.js.map +1 -1
- package/dist/core/oauth/gemini.d.ts.map +1 -1
- package/dist/core/oauth/gemini.js +14 -5
- package/dist/core/oauth/gemini.js.map +1 -1
- package/dist/core/oauth/kimi.d.ts +46 -0
- package/dist/core/oauth/kimi.d.ts.map +1 -0
- package/dist/core/oauth/kimi.js +278 -0
- package/dist/core/oauth/kimi.js.map +1 -0
- package/dist/core/prompt-commands.d.ts.map +1 -1
- package/dist/core/prompt-commands.js +3 -1
- package/dist/core/prompt-commands.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +2 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/interactive.d.ts.map +1 -1
- package/dist/interactive.js +22 -2
- package/dist/interactive.js.map +1 -1
- package/dist/system-prompt.d.ts.map +1 -1
- package/dist/system-prompt.js +54 -23
- package/dist/system-prompt.js.map +1 -1
- package/dist/system-prompt.test.js +32 -1
- package/dist/system-prompt.test.js.map +1 -1
- package/dist/tools/enter-plan.d.ts +1 -1
- package/dist/tools/enter-plan.d.ts.map +1 -1
- package/dist/tools/enter-plan.js +8 -1
- package/dist/tools/enter-plan.js.map +1 -1
- package/dist/tools/goals.d.ts +1 -1
- package/dist/tools/index.d.ts +16 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +9 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/prompt-hints.d.ts +23 -4
- package/dist/tools/prompt-hints.d.ts.map +1 -1
- package/dist/tools/prompt-hints.js +35 -10
- package/dist/tools/prompt-hints.js.map +1 -1
- package/dist/tools/read.d.ts +6 -1
- package/dist/tools/read.d.ts.map +1 -1
- package/dist/tools/read.js +70 -4
- package/dist/tools/read.js.map +1 -1
- package/dist/ui/App.d.ts +7 -1
- package/dist/ui/App.d.ts.map +1 -1
- package/dist/ui/App.js +304 -28
- package/dist/ui/App.js.map +1 -1
- package/dist/ui/app-items.d.ts +4 -2
- package/dist/ui/app-items.d.ts.map +1 -1
- package/dist/ui/app-items.js +13 -4
- package/dist/ui/app-items.js.map +1 -1
- package/dist/ui/chat-layout-pinning.test.js +1 -1
- package/dist/ui/chat-layout-pinning.test.js.map +1 -1
- package/dist/ui/components/ActivityIndicator.d.ts +7 -0
- package/dist/ui/components/ActivityIndicator.d.ts.map +1 -1
- package/dist/ui/components/ActivityIndicator.js +38 -12
- package/dist/ui/components/ActivityIndicator.js.map +1 -1
- package/dist/ui/components/AssistantMessage.test.js +1 -1
- package/dist/ui/components/AssistantMessage.test.js.map +1 -1
- package/dist/ui/components/ChatInputStack.d.ts +2 -0
- package/dist/ui/components/ChatInputStack.d.ts.map +1 -1
- package/dist/ui/components/ChatInputStack.js.map +1 -1
- package/dist/ui/components/ChatScreen.d.ts +1 -0
- package/dist/ui/components/ChatScreen.d.ts.map +1 -1
- package/dist/ui/components/ChatScreen.js +1 -1
- package/dist/ui/components/ChatScreen.js.map +1 -1
- package/dist/ui/components/ChatStatusRow.d.ts +2 -0
- package/dist/ui/components/ChatStatusRow.d.ts.map +1 -1
- package/dist/ui/components/ChatStatusRow.js +40 -1
- package/dist/ui/components/ChatStatusRow.js.map +1 -1
- package/dist/ui/components/InputArea.d.ts +2 -1
- package/dist/ui/components/InputArea.d.ts.map +1 -1
- package/dist/ui/components/InputArea.js +24 -8
- package/dist/ui/components/InputArea.js.map +1 -1
- package/dist/ui/components/MessageResponse.d.ts +7 -1
- package/dist/ui/components/MessageResponse.d.ts.map +1 -1
- package/dist/ui/components/MessageResponse.js +2 -2
- package/dist/ui/components/MessageResponse.js.map +1 -1
- package/dist/ui/components/ToolExecution.d.ts.map +1 -1
- package/dist/ui/components/ToolExecution.js +72 -15
- package/dist/ui/components/ToolExecution.js.map +1 -1
- package/dist/ui/components/UserMessage.d.ts +2 -1
- package/dist/ui/components/UserMessage.d.ts.map +1 -1
- package/dist/ui/components/UserMessage.js +6 -2
- package/dist/ui/components/UserMessage.js.map +1 -1
- package/dist/ui/hooks/useAgentLoop.d.ts +16 -4
- package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -1
- package/dist/ui/hooks/useAgentLoop.js +46 -2
- package/dist/ui/hooks/useAgentLoop.js.map +1 -1
- package/dist/ui/layout-decisions.d.ts +4 -0
- package/dist/ui/layout-decisions.d.ts.map +1 -1
- package/dist/ui/layout-decisions.js.map +1 -1
- package/dist/ui/login.js +2 -2
- package/dist/ui/login.js.map +1 -1
- package/dist/ui/prompt-routing.d.ts +2 -2
- package/dist/ui/prompt-routing.d.ts.map +1 -1
- package/dist/ui/prompt-routing.js +50 -1
- package/dist/ui/prompt-routing.js.map +1 -1
- package/dist/ui/queued-message.test.js +5 -1
- package/dist/ui/queued-message.test.js.map +1 -1
- package/dist/ui/render.d.ts +10 -1
- package/dist/ui/render.d.ts.map +1 -1
- package/dist/ui/render.js +35 -0
- package/dist/ui/render.js.map +1 -1
- package/dist/ui/slash-command-images.test.js +55 -3
- package/dist/ui/slash-command-images.test.js.map +1 -1
- package/dist/ui/submit-prompt-command.d.ts.map +1 -1
- package/dist/ui/submit-prompt-command.js +6 -3
- package/dist/ui/submit-prompt-command.js.map +1 -1
- package/dist/ui/terminal-history-status-renderers.d.ts +1 -1
- package/dist/ui/terminal-history-status-renderers.d.ts.map +1 -1
- package/dist/ui/terminal-history-status-renderers.js +1 -0
- package/dist/ui/terminal-history-status-renderers.js.map +1 -1
- package/dist/ui/terminal-history.js +36 -10
- package/dist/ui/terminal-history.js.map +1 -1
- package/dist/ui/terminal-history.test.js +3 -3
- package/dist/ui/terminal-history.test.js.map +1 -1
- package/dist/ui/transcript/TranscriptRenderer.d.ts.map +1 -1
- package/dist/ui/transcript/TranscriptRenderer.js +12 -10
- package/dist/ui/transcript/TranscriptRenderer.js.map +1 -1
- package/dist/ui/transcript/presentation.d.ts.map +1 -1
- package/dist/ui/transcript/presentation.js +17 -2
- package/dist/ui/transcript/presentation.js.map +1 -1
- package/dist/ui/tui-history-parity.test.js +7 -3
- package/dist/ui/tui-history-parity.test.js.map +1 -1
- package/dist/ui/utils/assistant-stream-split.d.ts +10 -0
- package/dist/ui/utils/assistant-stream-split.d.ts.map +1 -1
- package/dist/ui/utils/assistant-stream-split.js +19 -0
- package/dist/ui/utils/assistant-stream-split.js.map +1 -1
- package/dist/ui/utils/assistant-stream-split.test.js +21 -1
- package/dist/ui/utils/assistant-stream-split.test.js.map +1 -1
- package/dist/utils/image.d.ts +37 -1
- package/dist/utils/image.d.ts.map +1 -1
- package/dist/utils/image.js +156 -1
- package/dist/utils/image.js.map +1 -1
- package/dist/utils/plan-steps.d.ts +29 -2
- package/dist/utils/plan-steps.d.ts.map +1 -1
- package/dist/utils/plan-steps.js +88 -16
- package/dist/utils/plan-steps.js.map +1 -1
- package/dist/utils/plan-steps.test.js +144 -1
- package/dist/utils/plan-steps.test.js.map +1 -1
- package/package.json +4 -3
package/dist/system-prompt.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { formatSkillsForPrompt } from "./core/skills.js";
|
|
4
|
-
import { TOOL_PROMPT_HINTS, DEFAULT_TOOL_NAMES } from "./tools/prompt-hints.js";
|
|
4
|
+
import { TOOL_PROMPT_HINTS, buildToolSteering, DEFAULT_TOOL_NAMES } from "./tools/prompt-hints.js";
|
|
5
5
|
import { renderStylePacksSection } from "./core/style-packs/index.js";
|
|
6
6
|
import { detectVerifyCommands, renderVerifySection } from "./core/verify-commands.js";
|
|
7
|
+
import { extractPlanSteps } from "./utils/plan-steps.js";
|
|
7
8
|
const CONTEXT_FILES = ["AGENTS.md", "CLAUDE.md", ".cursorrules", "CONVENTIONS.md"];
|
|
8
9
|
const UNCACHED_MARKER = "<!-- uncached -->";
|
|
9
10
|
/**
|
|
@@ -35,20 +36,20 @@ function renderIdentitySection(provider, goalMode) {
|
|
|
35
36
|
}
|
|
36
37
|
function renderTalkSection() {
|
|
37
38
|
return (`## How to Talk\n\n` +
|
|
38
|
-
`Don't narrate
|
|
39
|
-
`Final replies: 1–3 sentences, hard cap 5; no preamble/recap
|
|
40
|
-
`Occasionally and naturally, add playful variations of “Woops I just farted!” with emojis
|
|
41
|
-
`
|
|
39
|
+
`Don't narrate tool calls. Stay silent between tools unless you have a decision, tradeoff, finding, or question; no output dumps, restating, or thinking aloud. ` +
|
|
40
|
+
`Final replies: 1–3 sentences, hard cap 5; no preamble/recap; bullets only for real lists. ` +
|
|
41
|
+
`Occasionally and naturally, add playful variations of “Woops I just farted!” with emojis; don't force it, overuse it, or repeat one hardcoded line. ` +
|
|
42
|
+
`Surface tradeoffs and unverified claims.`);
|
|
42
43
|
}
|
|
43
44
|
function renderWorkSection() {
|
|
44
45
|
return (`## How to Work\n\n` +
|
|
45
|
-
`- Read before \`edit\`/\`write\`; re-read after formatters, \`lint --fix\`, codemods, codegen, checkout, or any disk mutator
|
|
46
|
-
`- Compute in bash; write with \`edit\`/\`write\` so read-tracking, partial apply, and diagnostics
|
|
47
|
-
`- Match neighbors
|
|
48
|
-
`- Do routine follow-up yourself (build, migrate,
|
|
49
|
-
`- Preserve user work: investigate unexpected files, branches,
|
|
50
|
-
`- Rule precedence: project context files →
|
|
51
|
-
`- Choose targeted verification appropriate to the change
|
|
46
|
+
`- Read before \`edit\`/\`write\`; re-read after formatters, \`lint --fix\`, codemods, codegen, checkout, or any disk mutator.\n` +
|
|
47
|
+
`- Compute in bash; write with \`edit\`/\`write\` so read-tracking, partial apply, and diagnostics stay intact.\n` +
|
|
48
|
+
`- Match neighbors (components/tokens/tone); if none, ask. Keep edits small; plan multi-file work first.\n` +
|
|
49
|
+
`- Do routine follow-up yourself (build, migrate, re-run). Ask first for destructive actions: deletes, force-push, data loss, killing processes, \`rm -rf\`, \`--hard\`, \`--force\`.\n` +
|
|
50
|
+
`- Preserve user work: investigate unexpected files, branches, or locks before touching them. \`.gitignore\` generated artifacts, secrets, logs, scratch, and \`.env\`.\n` +
|
|
51
|
+
`- Rule precedence: project context files → file/module patterns → Language Style Packs → this prompt.\n` +
|
|
52
|
+
`- Choose targeted verification appropriate to the change; read/fix failures. Never claim unrun or failing checks passed.`);
|
|
52
53
|
}
|
|
53
54
|
function renderPlanModeSection() {
|
|
54
55
|
return (`## Plan Mode (ACTIVE)\n\n` +
|
|
@@ -58,11 +59,13 @@ function renderPlanModeSection() {
|
|
|
58
59
|
`### Rules\n` +
|
|
59
60
|
`- Do not implement yet: no code edits outside \`.ezcoder/plans/\`, no mutating bash (read-only shell for exploration is allowed), no subagent, no task orchestration.\n` +
|
|
60
61
|
`- Be specific: list exact file paths, functions, dependencies, risks, and verification criteria.\n` +
|
|
62
|
+
`- ALWAYS end the plan with a heading written exactly as \`## Steps\` (this literal heading is required — not \`## Plan\`, \`## Implementation\`, or any other variant), followed by a flat, ordered, numbered list (\`1.\`, \`2.\`, …) of concrete implementation steps to execute after approval. Each step is one actionable unit of work — not a design note, question, or rejected alternative. This section is the single source of truth for post-approval progress tracking, so only put real, doable steps here.\n` +
|
|
61
63
|
`- Keep investigating until the plan is actionable, then stop after \`exit_plan\`.`);
|
|
62
64
|
}
|
|
63
|
-
function renderGoalPlannerSection() {
|
|
65
|
+
function renderGoalPlannerSection(hasKencode) {
|
|
66
|
+
const kencodeProbe = hasKencode ? "kencode reference/discover/searchCode, or " : "";
|
|
64
67
|
return (`## Goal Planner Mode (ACTIVE)\n\n` +
|
|
65
|
-
`Protocol: classify uncertainty; if low, do no research; otherwise use only the smallest needed probes: read/grep/find/ls, \`source_path\`, \`web_search\`/\`web_fetch\`,
|
|
68
|
+
`Protocol: classify uncertainty; if low, do no research; otherwise use only the smallest needed probes: read/grep/find/ls, \`source_path\`, \`web_search\`/\`web_fetch\`, ${kencodeProbe}cheap foreground non-mutating bash checks. Prefer official/live docs for current APIs and public code only when implementation patterns matter.\n\n` +
|
|
66
69
|
`Output exactly one \`GOAL_PLAN\` block and stop. Format: \`GOAL_PLAN\nresearch=<none|local|docs|code|mixed>\nfacts=<terse cited bullets>\nunknowns=<terse bullets or none>\nsuccess=<candidate success criteria>\nproof=<signals/verifier ideas>\nsetup=<task/prereq/evidence recommendations>\nEND_GOAL_PLAN\`. Keep it under 1800 chars, no narrative recap.\n\n` +
|
|
67
70
|
`Forbidden: \`edit\`, \`write\`, \`subagent\`, \`goals\`, background processes, verifier execution, and implementation/refactor/file generation.`);
|
|
68
71
|
}
|
|
@@ -86,22 +89,41 @@ async function renderApprovedPlanSection(approvedPlanPath, goalMode) {
|
|
|
86
89
|
return null;
|
|
87
90
|
if (!planContent.trim())
|
|
88
91
|
return null;
|
|
92
|
+
// The `[DONE:n]` progress contract only applies when `extractPlanSteps`
|
|
93
|
+
// actually finds a step section (a `## Steps` heading or a close synonym).
|
|
94
|
+
// Without it there are no tracked steps, so instructing the model to march
|
|
95
|
+
// through the steps and emit `[DONE:n]` would push it to fabricate progress
|
|
96
|
+
// against content that isn't a task list.
|
|
97
|
+
const hasSteps = extractPlanSteps(planContent).length > 0;
|
|
98
|
+
const stepInstruction = hasSteps
|
|
99
|
+
? `\n- After each step from \`## Steps\`, output \`[DONE:n]\` (e.g. \`[DONE:1]\`) to update the progress widget, then continue with step n+1 in the same turn.`
|
|
100
|
+
: "";
|
|
89
101
|
return (`## Approved Plan\n\n` +
|
|
90
102
|
`Follow this plan strictly. File: ${approvedPlanPath}\n\n` +
|
|
91
103
|
`<approved_plan>\n${planContent.trim()}\n</approved_plan>\n\n` +
|
|
92
|
-
`- Follow step order. Don't deviate without user confirmation
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
function renderResearchSection() {
|
|
104
|
+
`- Follow step order. Don't deviate without user confirmation.` +
|
|
105
|
+
stepInstruction);
|
|
106
|
+
}
|
|
107
|
+
function renderResearchSection(hasKencode) {
|
|
108
|
+
// Only advertise the kencode public-code search tools when they actually
|
|
109
|
+
// connected. Otherwise the model is told to call tools that aren't in its
|
|
110
|
+
// toolMap and every attempt fails with "Unknown tool: mcp__kencode-search__*".
|
|
111
|
+
const publicCodeSentence = hasKencode
|
|
112
|
+
? `For public code, use ReferenceSources for curated repos or DiscoverRepos for current/top repos, then verify exact snippets with SearchCode literal text/RE2 (not semantic); \`path\` is a literal path substring and \`repo\` only after broad/peek proof. `
|
|
113
|
+
: `For public code patterns, prefer official/live docs via \`web_search\`/\`web_fetch\`. `;
|
|
96
114
|
return (`## Research & Verification\n\n` +
|
|
97
115
|
`Do not assume APIs, CLI flags, config schema, internals, or error wording. Use \`source_path\` for installed deps and inspect with read/grep/find/ls; use \`web_search\` then \`web_fetch\` for authoritative docs. ` +
|
|
98
|
-
|
|
116
|
+
publicCodeSentence +
|
|
99
117
|
`When driving a programmatic Goal run, model the intended experience, choose proportional local/free proof, and block only with exact user instructions for true external prerequisites. ` +
|
|
100
118
|
`Run targeted checks when they are relevant to the change; read/fix failures; never report unrun or failing checks as passing.`);
|
|
101
119
|
}
|
|
120
|
+
/** Whether any kencode-search MCP tool is in the active tool set. */
|
|
121
|
+
function hasKencodeSearch(toolNames) {
|
|
122
|
+
return toolNames.some((name) => name.startsWith("mcp__kencode-search__"));
|
|
123
|
+
}
|
|
102
124
|
function renderCodeQualitySection() {
|
|
103
125
|
return (`## Code Quality\n\n` +
|
|
104
|
-
`
|
|
126
|
+
`Intent-revealing names; reuse existing deps. Types first; handle I/O, input, and external API errors. No dead/commented code, placeholders, or unasked refactors.`);
|
|
105
127
|
}
|
|
106
128
|
function renderToolsSection(toolNames) {
|
|
107
129
|
const activeTools = toolNames ?? DEFAULT_TOOL_NAMES;
|
|
@@ -111,7 +133,15 @@ function renderToolsSection(toolNames) {
|
|
|
111
133
|
if (hint)
|
|
112
134
|
toolLines.push(`- **${name}**: ${hint}`);
|
|
113
135
|
}
|
|
114
|
-
|
|
136
|
+
// Cross-tool steering: each clause renders only when its tools are active.
|
|
137
|
+
// Per-tool hints only exist for tools with non-obvious usage (see prompt-hints).
|
|
138
|
+
const steering = buildToolSteering(activeTools);
|
|
139
|
+
const parts = [];
|
|
140
|
+
if (steering)
|
|
141
|
+
parts.push(steering);
|
|
142
|
+
if (toolLines.length > 0)
|
|
143
|
+
parts.push(toolLines.join("\n"));
|
|
144
|
+
return parts.length > 0 ? `## Tools\n\n${parts.join("\n\n")}` : null;
|
|
115
145
|
}
|
|
116
146
|
async function collectProjectContext(cwd) {
|
|
117
147
|
const contextParts = [];
|
|
@@ -162,6 +192,7 @@ function renderUncachedDateSuffix() {
|
|
|
162
192
|
* (`anthropic` → "Claude Code", everything else → "EZ Coder").
|
|
163
193
|
*/
|
|
164
194
|
export async function buildSystemPrompt(cwd, skills, planMode, approvedPlanPath, toolNames, activeLanguages, provider, goalMode = "off") {
|
|
195
|
+
const hasKencode = hasKencodeSearch(toolNames ?? DEFAULT_TOOL_NAMES);
|
|
165
196
|
const sections = [
|
|
166
197
|
renderIdentitySection(provider, goalMode),
|
|
167
198
|
renderTalkSection(),
|
|
@@ -170,7 +201,7 @@ export async function buildSystemPrompt(cwd, skills, planMode, approvedPlanPath,
|
|
|
170
201
|
if (planMode && goalMode === "off")
|
|
171
202
|
sections.push(renderPlanModeSection());
|
|
172
203
|
if (goalMode === "planner")
|
|
173
|
-
sections.push(renderGoalPlannerSection());
|
|
204
|
+
sections.push(renderGoalPlannerSection(hasKencode));
|
|
174
205
|
if (goalMode === "setup")
|
|
175
206
|
sections.push(renderGoalSetupSection());
|
|
176
207
|
if (goalMode === "coordinator")
|
|
@@ -178,7 +209,7 @@ export async function buildSystemPrompt(cwd, skills, planMode, approvedPlanPath,
|
|
|
178
209
|
const approvedPlanSection = await renderApprovedPlanSection(approvedPlanPath, goalMode);
|
|
179
210
|
if (approvedPlanSection)
|
|
180
211
|
sections.push(approvedPlanSection);
|
|
181
|
-
sections.push(renderResearchSection(), renderCodeQualitySection());
|
|
212
|
+
sections.push(renderResearchSection(hasKencode), renderCodeQualitySection());
|
|
182
213
|
const toolsSection = renderToolsSection(toolNames);
|
|
183
214
|
if (toolsSection)
|
|
184
215
|
sections.push(toolsSection);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAc,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,13 +92,20 @@ describe("buildSystemPrompt", () => {
|
|
|
92
92
|
const cwd = await makeProject();
|
|
93
93
|
const prompt = await buildSystemPrompt(cwd, undefined, false, undefined, [
|
|
94
94
|
"read",
|
|
95
|
+
"write",
|
|
96
|
+
"edit",
|
|
95
97
|
"web_search",
|
|
96
98
|
"not_a_tool",
|
|
97
99
|
]);
|
|
98
100
|
const renderedTools = toolsSection(prompt);
|
|
99
|
-
|
|
101
|
+
// Core file tools (read/write/edit) no longer carry a per-tool hint — they
|
|
102
|
+
// rely on their schema description plus the cross-tool steering line (which
|
|
103
|
+
// renders here because edit + write are both active). Tools with non-obvious
|
|
104
|
+
// usage (web_search) still render a hint. Unknown tools never do.
|
|
105
|
+
expect(renderedTools).toContain("Prefer `edit` over `write`");
|
|
100
106
|
expect(renderedTools).toContain("**web_search**");
|
|
101
107
|
expect(renderedTools).not.toContain("not_a_tool");
|
|
108
|
+
expect(renderedTools).not.toContain("**read**");
|
|
102
109
|
expect(renderedTools).not.toContain("**edit**");
|
|
103
110
|
});
|
|
104
111
|
it("states rule precedence exactly once and keeps project context before style packs", async () => {
|
|
@@ -182,6 +189,30 @@ describe("buildSystemPrompt", () => {
|
|
|
182
189
|
expect(tools).not.toContain("zero hits, every time");
|
|
183
190
|
expect(tools.length).toBeLessThan(950);
|
|
184
191
|
});
|
|
192
|
+
it("omits kencode research guidance when the kencode tools are not connected", async () => {
|
|
193
|
+
const cwd = await makeProject();
|
|
194
|
+
const prompt = await buildSystemPrompt(cwd, undefined, false, undefined, [
|
|
195
|
+
"read",
|
|
196
|
+
"web_search",
|
|
197
|
+
"web_fetch",
|
|
198
|
+
"source_path",
|
|
199
|
+
]);
|
|
200
|
+
// No kencode tool in the set → don't tell the model to call ReferenceSources/
|
|
201
|
+
// DiscoverRepos/SearchCode (they aren't in its toolMap → "Unknown tool").
|
|
202
|
+
expect(prompt).not.toContain("ReferenceSources");
|
|
203
|
+
expect(prompt).not.toContain("DiscoverRepos");
|
|
204
|
+
expect(prompt).not.toContain("SearchCode literal text/RE2");
|
|
205
|
+
// The research section still exists, with a docs-first fallback.
|
|
206
|
+
expect(prompt).toContain("Do not assume APIs");
|
|
207
|
+
expect(prompt).toContain("For public code patterns, prefer official/live docs");
|
|
208
|
+
});
|
|
209
|
+
it("drops the kencode probe from the goal planner section when the tools are absent", async () => {
|
|
210
|
+
const cwd = await makeProject();
|
|
211
|
+
const withKencode = await buildSystemPrompt(cwd, undefined, false, undefined, ["read", "mcp__kencode-search__searchCode"], undefined, undefined, "planner");
|
|
212
|
+
const withoutKencode = await buildSystemPrompt(cwd, undefined, false, undefined, ["read"], undefined, undefined, "planner");
|
|
213
|
+
expect(withKencode).toContain("kencode reference/discover/searchCode");
|
|
214
|
+
expect(withoutKencode).not.toContain("kencode reference/discover/searchCode");
|
|
215
|
+
});
|
|
185
216
|
it("measures representative system prompt sizes", async () => {
|
|
186
217
|
const normalCwd = await makeProject();
|
|
187
218
|
const normalToolNames = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.test.js","sourceRoot":"","sources":["../src/system-prompt.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"system-prompt.test.js","sourceRoot":"","sources":["../src/system-prompt.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,MAAM,QAAQ,GAAa,EAAE,CAAC;AAE9B,KAAK,UAAU,WAAW,CAAC,QAAgC,EAAE;IAC3D,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAC/E,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC9C,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,YAAY,CAAC,MAAc,EAAE,OAAe;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,EAAE,GAAG,OAAO,eAAe,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,MAAc;IAClC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACxD,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,UAAU,CAAC,MAAc;IAChC,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;QAChC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,uBAAuB,GAAG;QAC9B,8EAA8E;QAC9E,6CAA6C;QAC7C,sFAAsF;QACtF,sEAAsE;QACtE,iCAAiC;KAClC,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,uBAAuB,EAAE,CAAC;QAC7C,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,oCAAoC,MAAM,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpD,KAAK,MAAM,QAAQ,IAAI,MAAM;SAC1B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,KAAK,CAAC,eAAe,CAAC;SACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QACvC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,iBAAiB,EAAE,CAAC;QAClD,IAAI,KAAK,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,KAAK,KAAK,QAAQ,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACnG,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,uFAAuF,EAAE,KAAK,IAAI,EAAE;QACrG,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC;YAC5B,WAAW,EAAE,oBAAoB;YACjC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC;YACtE,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC,GAAG,EACH,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EACnF,KAAK,EACL,SAAS,EACT,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EACvC,IAAI,GAAG,CAAa,CAAC,YAAY,CAAC,CAAC,CACpC,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,iCAAiC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,YAAY,CACzD,YAAY,CAAC,MAAM,EAAE,gBAAgB,CAAC,CACvC,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,YAAY,CACzD,YAAY,CAAC,MAAM,EAAE,4BAA4B,CAAC,CACnD,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC,CAAC,YAAY,CACrE,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC,CACxC,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,0DAA0D,CAAC,CAAC;QACrF,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAC1B,mFAAmF,CACpF,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QAC/F,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CACnD,YAAY,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAC3C,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,YAAY,CAC7D,YAAY,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAChD,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC,CAAC,YAAY,CAClE,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC,CACxC,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAChG,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAE/F,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAChF,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,GAAG,GAAG,MAAM,WAAW,EAAE,CAAC;QAEhC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;YACvE,MAAM;YACN,OAAO;YACP,MAAM;YACN,YAAY;YACZ,YAAY;SACb,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3C,2EAA2E;QAC3E,4EAA4E;QAC5E,6EAA6E;QAC7E,kEAAkE;QAClE,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;QAC9D,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAClD,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC;YAC5B,WAAW,EAAE,4BAA4B;YACzC,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC,GAAG,EACH,SAAS,EACT,KAAK,EACL,SAAS,EACT,CAAC,MAAM,CAAC,EACR,IAAI,GAAG,CAAa,CAAC,YAAY,CAAC,CAAC,CACpC,CAAC;QAEF,yFAAyF;QACzF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wCAAwC,CAAC,CAAC;QACnE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACxD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,YAAY,CAC7D,YAAY,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAChD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,GAAG,GAAG,MAAM,WAAW,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;YACvE,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM;YACN,UAAU;SACX,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACtE,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM;YACN,YAAY;YACZ,WAAW;YACX,aAAa;YACb,uCAAuC;YACvC,oCAAoC;YACpC,iCAAiC;SAClC,CAAC,CAAC;QAEH,KAAK,MAAM,QAAQ,IAAI;YACrB,uCAAuC;YACvC,6BAA6B;YAC7B,0CAA0C;YAC1C,4BAA4B;YAC5B,0BAA0B;YAC1B,4CAA4C;YAC5C,iBAAiB;YACjB,kBAAkB;YAClB,+BAA+B;YAC/B,mCAAmC;YACnC,oBAAoB;YACpB,wCAAwC;YACxC,oBAAoB;YACpB,mBAAmB;YACnB,6BAA6B;YAC7B,kBAAkB;YAClB,eAAe;YACf,4CAA4C;YAC5C,wDAAwD;SACzD,EAAE,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,GAAG,GAAG,MAAM,WAAW,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;YACvE,uCAAuC;YACvC,oCAAoC;YACpC,iCAAiC;SAClC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAEnC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAChE,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,wCAAwC,CAAC,CAAC;QAClE,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,GAAG,GAAG,MAAM,WAAW,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;YACvE,MAAM;YACN,YAAY;YACZ,WAAW;YACX,aAAa;SACd,CAAC,CAAC;QAEH,8EAA8E;QAC9E,0EAA0E;QAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QAC5D,iEAAiE;QACjE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qDAAqD,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QAC/F,MAAM,GAAG,GAAG,MAAM,WAAW,EAAE,CAAC;QAChC,MAAM,WAAW,GAAG,MAAM,iBAAiB,CACzC,GAAG,EACH,SAAS,EACT,KAAK,EACL,SAAS,EACT,CAAC,MAAM,EAAE,iCAAiC,CAAC,EAC3C,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAC5C,GAAG,EACH,SAAS,EACT,KAAK,EACL,SAAS,EACT,CAAC,MAAM,CAAC,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;QAEF,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC;QACvE,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,SAAS,GAAG,MAAM,WAAW,EAAE,CAAC;QACtC,MAAM,eAAe,GAAG;YACtB,MAAM;YACN,MAAM;YACN,MAAM;YACN,IAAI;YACJ,YAAY;YACZ,WAAW;YACX,aAAa;YACb,uCAAuC;YACvC,oCAAoC;YACpC,iCAAiC;SAClC,CAAC;QACF,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAC1C,SAAS,EACT,SAAS,EACT,KAAK,EACL,SAAS,EACT,eAAe,CAChB,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAC5C,SAAS,EACT,SAAS,EACT,IAAI,EACJ,SAAS,EACT,eAAe,CAChB,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC;YACtC,WAAW,EAAE,6EAA6E;YAC1F,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC;gBAC7B,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,SAAS,EAAE,cAAc;iBAC1B;gBACD,eAAe,EAAE;oBACf,UAAU,EAAE,QAAQ;oBACpB,MAAM,EAAE,QAAQ;iBACjB;aACF,CAAC;YACF,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;SACvE,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,CAC9C,aAAa,EACb;YACE;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,wDAAwD;gBACrE,OAAO,EAAE,gEAAgE;gBACzE,MAAM,EAAE,cAAc;aACvB;SACF,EACD,KAAK,EACL,SAAS,EACT;YACE,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,IAAI;YACJ,YAAY;YACZ,WAAW;YACX,aAAa;YACb,OAAO;YACP,uCAAuC;YACvC,oCAAoC;YACpC,iCAAiC;SAClC,EACD,IAAI,GAAG,CAAa,CAAC,YAAY,CAAC,CAAC,CACpC,CAAC;QAEF,MAAM,YAAY,GAAG;YACnB,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC;YAChC,QAAQ,EAAE,UAAU,CAAC,cAAc,CAAC;YACpC,mCAAmC,EAAE,UAAU,CAAC,gBAAgB,CAAC;SAClE,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,oCAAoC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAEjF,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7D,MAAM,CAAC,YAAY,CAAC,mCAAmC,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACxF,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACzF,MAAM,CAAC,YAAY,CAAC,mCAAmC,CAAC,UAAU,CAAC,CAAC,eAAe,CACjF,YAAY,CAAC,MAAM,CAAC,UAAU,CAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC;YAC5B,WAAW,EAAE,gCAAgC;YAC7C,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;YAC/D,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC,GAAG,EACH,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EACnF,KAAK,EACL,SAAS,EACT;YACE,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM;YACN,YAAY;YACZ,WAAW;YACX,aAAa;YACb,OAAO;YACP,uCAAuC;YACvC,oCAAoC;YACpC,iCAAiC;SAClC,EACD,IAAI,GAAG,CAAa,CAAC,YAAY,CAAC,CAAC,CACpC,CAAC;QAEF,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE9D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,GAAG,GAAG,MAAM,WAAW,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,MAAM,iBAAiB,CACvC,GAAG,EACH,SAAS,EACT,KAAK,EACL,SAAS,EACT,CAAC,MAAM,CAAC,EACR,SAAS,EACT,WAAW,CACZ,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC,GAAG,EACH,SAAS,EACT,KAAK,EACL,SAAS,EACT,CAAC,MAAM,CAAC,EACR,SAAS,EACT,QAAQ,CACT,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,iCAAiC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -3,6 +3,6 @@ import type { AgentTool } from "@prestyj/agent";
|
|
|
3
3
|
declare const EnterPlanParams: z.ZodObject<{
|
|
4
4
|
reason: z.ZodOptional<z.ZodString>;
|
|
5
5
|
}, z.core.$strip>;
|
|
6
|
-
export declare function createEnterPlanTool(onEnterPlan: (reason?: string) => void | Promise<void>): AgentTool<typeof EnterPlanParams>;
|
|
6
|
+
export declare function createEnterPlanTool(onEnterPlan: (reason?: string) => boolean | void | Promise<boolean | void>): AgentTool<typeof EnterPlanParams>;
|
|
7
7
|
export {};
|
|
8
8
|
//# sourceMappingURL=enter-plan.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enter-plan.d.ts","sourceRoot":"","sources":["../../src/tools/enter-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,QAAA,MAAM,eAAe;;iBAKnB,CAAC;AAEH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"enter-plan.d.ts","sourceRoot":"","sources":["../../src/tools/enter-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,QAAA,MAAM,eAAe;;iBAKnB,CAAC;AAEH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GACzE,SAAS,CAAC,OAAO,eAAe,CAAC,CA8BnC"}
|
package/dist/tools/enter-plan.js
CHANGED
|
@@ -14,7 +14,14 @@ export function createEnterPlanTool(onEnterPlan) {
|
|
|
14
14
|
parameters: EnterPlanParams,
|
|
15
15
|
executionMode: "sequential",
|
|
16
16
|
async execute({ reason }) {
|
|
17
|
-
await onEnterPlan(reason);
|
|
17
|
+
const entered = await onEnterPlan(reason);
|
|
18
|
+
// The host can decline plan mode (e.g. during an unattended task run where
|
|
19
|
+
// an approval pane would stall the loop). When declined, tell the agent to
|
|
20
|
+
// skip planning and implement the task directly.
|
|
21
|
+
if (entered === false) {
|
|
22
|
+
return ("Plan mode is unavailable during a task run. Skip planning and implement " +
|
|
23
|
+
"the task directly: make the code changes, verify them, and mark the task done.");
|
|
24
|
+
}
|
|
18
25
|
return ("Plan mode activated. You are now in read-only research mode.\n\n" +
|
|
19
26
|
"Allowed actions:\n" +
|
|
20
27
|
"- Use read, grep, find, ls, source_path, web_fetch/web_search, and code search tools to investigate\n" +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enter-plan.js","sourceRoot":"","sources":["../../src/tools/enter-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gEAAgE,CAAC;CAC9E,CAAC,CAAC;AAEH,MAAM,UAAU,mBAAmB,CACjC,
|
|
1
|
+
{"version":3,"file":"enter-plan.js","sourceRoot":"","sources":["../../src/tools/enter-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gEAAgE,CAAC;CAC9E,CAAC,CAAC;AAEH,MAAM,UAAU,mBAAmB,CACjC,WAA0E;IAE1E,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,yEAAyE;YACzE,qFAAqF;YACrF,oHAAoH;QACtH,UAAU,EAAE,eAAe;QAC3B,aAAa,EAAE,YAAY;QAC3B,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE;YACtB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;YAC1C,2EAA2E;YAC3E,2EAA2E;YAC3E,iDAAiD;YACjD,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;gBACtB,OAAO,CACL,0EAA0E;oBAC1E,gFAAgF,CACjF,CAAC;YACJ,CAAC;YACD,OAAO,CACL,kEAAkE;gBAClE,oBAAoB;gBACpB,uGAAuG;gBACvG,iEAAiE;gBACjE,yFAAyF;gBACzF,iEAAiE,CAClE,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/goals.d.ts
CHANGED
|
@@ -87,8 +87,8 @@ declare const GoalsParams: z.ZodObject<{
|
|
|
87
87
|
task_prompt: z.ZodOptional<z.ZodString>;
|
|
88
88
|
task_status: z.ZodOptional<z.ZodEnum<{
|
|
89
89
|
failed: "failed";
|
|
90
|
-
running: "running";
|
|
91
90
|
pending: "pending";
|
|
91
|
+
running: "running";
|
|
92
92
|
done: "done";
|
|
93
93
|
blocked: "blocked";
|
|
94
94
|
verifying: "verifying";
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -19,8 +19,12 @@ export interface CreateToolsOptions {
|
|
|
19
19
|
goalModeRef?: {
|
|
20
20
|
current: GoalMode;
|
|
21
21
|
};
|
|
22
|
-
/**
|
|
23
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Callback when the LLM enters plan mode. Returns false when the host declines
|
|
24
|
+
* plan mode (e.g. during an unattended task run), so the tool can tell the
|
|
25
|
+
* agent to implement directly instead of waiting for plan approval.
|
|
26
|
+
*/
|
|
27
|
+
onEnterPlan?: (reason?: string) => boolean | void | Promise<boolean | void>;
|
|
24
28
|
/** Callback when the LLM submits a plan for review. */
|
|
25
29
|
onExitPlan?: (planPath: string) => Promise<string>;
|
|
26
30
|
/** Callback after read tool successfully reads a text file. */
|
|
@@ -46,6 +50,16 @@ export interface CreateToolsOptions {
|
|
|
46
50
|
export interface CreateToolsResult {
|
|
47
51
|
tools: AgentTool[];
|
|
48
52
|
processManager: ProcessManager;
|
|
53
|
+
/**
|
|
54
|
+
* Rebuild the `read` tool for a different model, reusing the SAME read
|
|
55
|
+
* tracker so read-before-edit history survives. The read tool's video
|
|
56
|
+
* capability (description + native-video execute path) is baked in at
|
|
57
|
+
* creation from the model's `maxVideoBytes`, so switching to/from a
|
|
58
|
+
* video-capable model mid-session requires a fresh tool object. Returns the
|
|
59
|
+
* new tool; the caller swaps it into the live tool set and rebuilds the
|
|
60
|
+
* system prompt.
|
|
61
|
+
*/
|
|
62
|
+
rebuildReadTool: (model: string) => AgentTool;
|
|
49
63
|
}
|
|
50
64
|
export declare function createTools(cwd: string, opts?: CreateToolsOptions): CreateToolsResult;
|
|
51
65
|
export { createReadTool } from "./read.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ProcessManager } from "../core/process-manager.js";
|
|
2
2
|
import { createReadTool } from "./read.js";
|
|
3
|
+
import { getVideoByteLimit } from "../core/model-registry.js";
|
|
3
4
|
import { createWriteTool } from "./write.js";
|
|
4
5
|
import { createEditTool } from "./edit.js";
|
|
5
6
|
import { createBashTool } from "./bash.js";
|
|
@@ -25,8 +26,13 @@ export function createTools(cwd, opts) {
|
|
|
25
26
|
const ops = opts?.operations ?? localOperations;
|
|
26
27
|
const planModeRef = opts?.planModeRef;
|
|
27
28
|
const goalModeRef = opts?.goalModeRef;
|
|
29
|
+
// Enable native video returns from the read tool for any video-capable model
|
|
30
|
+
// (Kimi/Moonshot, Gemini, MiniMax), each with its own per-model byte cap that
|
|
31
|
+
// drives auto-compression. Non-video models get `undefined` — video falls back
|
|
32
|
+
// to the plain binary-file notice, never offered to models that can't watch it.
|
|
33
|
+
const videoByteLimit = opts?.model ? getVideoByteLimit(opts.model) : undefined;
|
|
28
34
|
const tools = [
|
|
29
|
-
createReadTool(cwd, readFiles, ops, opts?.onFileRead),
|
|
35
|
+
createReadTool(cwd, readFiles, ops, opts?.onFileRead, videoByteLimit),
|
|
30
36
|
createWriteTool(cwd, readFiles, ops, planModeRef, opts?.onFileMutated, opts?.onPreFileMutation, goalModeRef),
|
|
31
37
|
createEditTool(cwd, readFiles, ops, planModeRef, opts?.onFileMutated, opts?.onPreFileMutation, goalModeRef),
|
|
32
38
|
createBashTool(cwd, processManager, ops, planModeRef, goalModeRef),
|
|
@@ -57,7 +63,8 @@ export function createTools(cwd, opts) {
|
|
|
57
63
|
if (opts?.onExitPlan) {
|
|
58
64
|
tools.push(createExitPlanTool(cwd, opts.onExitPlan));
|
|
59
65
|
}
|
|
60
|
-
|
|
66
|
+
const rebuildReadTool = (model) => createReadTool(cwd, readFiles, ops, opts?.onFileRead, getVideoByteLimit(model));
|
|
67
|
+
return { tools, processManager, rebuildReadTool };
|
|
61
68
|
}
|
|
62
69
|
export { createReadTool } from "./read.js";
|
|
63
70
|
export { createWriteTool } from "./write.js";
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAuB,MAAM,iBAAiB,CAAC;AAKvE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* One-line prompt hints for each tool
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* One-line prompt hints for each tool, shown in the system prompt's Tools
|
|
3
|
+
* section. Full parameter docs live on each tool's JSON schema description
|
|
4
|
+
* (sent separately via the tool definition), so these hints stay short.
|
|
5
|
+
*
|
|
6
|
+
* Hints exist ONLY for tools whose correct usage is NOT obvious from their
|
|
7
|
+
* schema description alone. The core file/nav/exec tools (read/write/edit/
|
|
8
|
+
* bash/find/grep/ls) deliberately have NO hint: an ablation (experiments/
|
|
9
|
+
* prompt-bench, Opus n=12) showed dropping their hints did not change tool
|
|
10
|
+
* selection — the schema description already carries when/how to use them.
|
|
11
|
+
* Cross-tool preferences for those tools live in TOOL_STEERING instead.
|
|
6
12
|
*/
|
|
7
13
|
export declare const TOOL_PROMPT_HINTS: Record<string, string>;
|
|
14
|
+
/**
|
|
15
|
+
* Cross-tool selection guidance that no single tool's own schema description
|
|
16
|
+
* can state (it's relational). Each clause only renders when its tools are
|
|
17
|
+
* actually active, so the line never references an unavailable tool. Proven
|
|
18
|
+
* equivalent to the full per-tool hint list in the prompt-bench ablation
|
|
19
|
+
* while costing ~95% fewer words.
|
|
20
|
+
*/
|
|
21
|
+
export declare const TOOL_STEERING_CLAUSES: ReadonlyArray<{
|
|
22
|
+
needs: readonly string[];
|
|
23
|
+
text: string;
|
|
24
|
+
}>;
|
|
25
|
+
/** Build the steering line from whichever clauses apply to the active tools. */
|
|
26
|
+
export declare function buildToolSteering(activeTools: readonly string[]): string;
|
|
8
27
|
/** Tools always rendered when no explicit tool list is provided. */
|
|
9
28
|
export declare const DEFAULT_TOOL_NAMES: readonly string[];
|
|
10
29
|
//# sourceMappingURL=prompt-hints.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-hints.d.ts","sourceRoot":"","sources":["../../src/tools/prompt-hints.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"prompt-hints.d.ts","sourceRoot":"","sources":["../../src/tools/prompt-hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAsBpD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC;IAAE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAS3F,CAAC;AAEF,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAKxE;AAED,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAmB/C,CAAC"}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* One-line prompt hints for each tool
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* One-line prompt hints for each tool, shown in the system prompt's Tools
|
|
3
|
+
* section. Full parameter docs live on each tool's JSON schema description
|
|
4
|
+
* (sent separately via the tool definition), so these hints stay short.
|
|
5
|
+
*
|
|
6
|
+
* Hints exist ONLY for tools whose correct usage is NOT obvious from their
|
|
7
|
+
* schema description alone. The core file/nav/exec tools (read/write/edit/
|
|
8
|
+
* bash/find/grep/ls) deliberately have NO hint: an ablation (experiments/
|
|
9
|
+
* prompt-bench, Opus n=12) showed dropping their hints did not change tool
|
|
10
|
+
* selection — the schema description already carries when/how to use them.
|
|
11
|
+
* Cross-tool preferences for those tools live in TOOL_STEERING instead.
|
|
6
12
|
*/
|
|
7
13
|
export const TOOL_PROMPT_HINTS = {
|
|
8
|
-
read: "Read file contents. Use offset/limit for large files.",
|
|
9
|
-
write: "Create or overwrite files; read existing files first. Prefer edit for changes.",
|
|
10
|
-
edit: "Apply surgical { old_text, new_text } edits from a prior read. Use exact text; retry only failed edits; replace_all for renames.",
|
|
11
|
-
bash: "Run shell commands from project root; use for computation and long/background processes, not direct file rewrites.",
|
|
12
|
-
find: "Find files/dirs by name pattern. Faster than bash find, respects .gitignore.",
|
|
13
|
-
grep: "Regex search across files. Use for usages, definitions, imports.",
|
|
14
14
|
source_path: "Resolve installed package/repo source via opensrc. Use before assuming dependency APIs; inspect returned absolute path with read/grep/find/ls.",
|
|
15
15
|
web_search: "Search the web. Use before web_fetch to find pages; supports include/exclude_domains and a time_range recency filter.",
|
|
16
16
|
web_fetch: "Fetch page content as Markdown (or text/html). Pass `urls` to fetch many at once; reads PDFs, follows safe redirects, and prefers a site's /llms.txt for docs.",
|
|
17
17
|
task_output: "Read new output from a background process by id.",
|
|
18
18
|
task_stop: "Stop a background process by id.",
|
|
19
|
+
tasks: "Manage the project task list. Do not use this tool proactively — only manage the task list when the user explicitly requests it.",
|
|
19
20
|
enter_plan: "Enter read-only plan mode for complex/risky tasks before implementation; draft a plan under .ezcoder/plans/.",
|
|
20
21
|
exit_plan: "Submit a .ezcoder/plans/ markdown plan for user approval and leave plan mode.",
|
|
21
22
|
subagent: "Delegate focused, isolated subtasks (research, parallel exploration).",
|
|
@@ -24,6 +25,30 @@ export const TOOL_PROMPT_HINTS = {
|
|
|
24
25
|
"mcp__kencode-search__discoverRepos": "Search GitHub repos live by keyword/language/topic/stars/recency. Use for current/top repos or long-tail discovery; returns metadata, not snippets. Follow with docs/source and searchCode.",
|
|
25
26
|
"mcp__kencode-search__searchCode": "Verify public GitHub code by literal text or RE2 regex; NOT semantic. Put code/import/API tokens in `query`; `path` is a literal file-path substring, not a concept. Start broad/peek, then narrow by repo/path. RE2 multi-line needs `(?s)`.",
|
|
26
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* Cross-tool selection guidance that no single tool's own schema description
|
|
30
|
+
* can state (it's relational). Each clause only renders when its tools are
|
|
31
|
+
* actually active, so the line never references an unavailable tool. Proven
|
|
32
|
+
* equivalent to the full per-tool hint list in the prompt-bench ablation
|
|
33
|
+
* while costing ~95% fewer words.
|
|
34
|
+
*/
|
|
35
|
+
export const TOOL_STEERING_CLAUSES = [
|
|
36
|
+
{
|
|
37
|
+
needs: ["edit", "write"],
|
|
38
|
+
text: "Prefer `edit` over `write` for changes to existing files.",
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
needs: ["bash", "find", "grep"],
|
|
42
|
+
text: "Use `find`/`grep` rather than `bash` to locate files and search content.",
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
/** Build the steering line from whichever clauses apply to the active tools. */
|
|
46
|
+
export function buildToolSteering(activeTools) {
|
|
47
|
+
const active = new Set(activeTools);
|
|
48
|
+
return TOOL_STEERING_CLAUSES.filter((c) => c.needs.every((n) => active.has(n)))
|
|
49
|
+
.map((c) => c.text)
|
|
50
|
+
.join(" ");
|
|
51
|
+
}
|
|
27
52
|
/** Tools always rendered when no explicit tool list is provided. */
|
|
28
53
|
export const DEFAULT_TOOL_NAMES = [
|
|
29
54
|
"read",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-hints.js","sourceRoot":"","sources":["../../src/tools/prompt-hints.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"prompt-hints.js","sourceRoot":"","sources":["../../src/tools/prompt-hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,WAAW,EACT,gJAAgJ;IAClJ,UAAU,EACR,uHAAuH;IACzH,SAAS,EACP,gKAAgK;IAClK,WAAW,EAAE,kDAAkD;IAC/D,SAAS,EAAE,kCAAkC;IAC7C,KAAK,EACH,kIAAkI;IACpI,UAAU,EACR,8GAA8G;IAChH,SAAS,EAAE,+EAA+E;IAC1F,QAAQ,EAAE,uEAAuE;IACjF,KAAK,EAAE,oDAAoD;IAC3D,uCAAuC,EACrC,qNAAqN;IACvN,oCAAoC,EAClC,6LAA6L;IAC/L,iCAAiC,EAC/B,+OAA+O;CAClP,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA8D;IAC9F;QACE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QACxB,IAAI,EAAE,2DAA2D;KAClE;IACD;QACE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,IAAI,EAAE,0EAA0E;KACjF;CACF,CAAC;AAEF,gFAAgF;AAChF,MAAM,UAAU,iBAAiB,CAAC,WAA8B;IAC9D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACpC,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,IAAI;IACJ,aAAa;IACb,WAAW;IACX,aAAa;IACb,WAAW;IACX,YAAY;IACZ,WAAW;IACX,UAAU;IACV,OAAO;IACP,uCAAuC;IACvC,oCAAoC;IACpC,iCAAiC;CAClC,CAAC"}
|
package/dist/tools/read.d.ts
CHANGED
|
@@ -8,6 +8,11 @@ declare const ReadParams: z.ZodObject<{
|
|
|
8
8
|
offset: z.ZodOptional<z.ZodNumber>;
|
|
9
9
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
10
10
|
}, z.core.$strip>;
|
|
11
|
-
export declare function createReadTool(cwd: string, readFiles?: ReadTracker, ops?: ToolOperations, onFileRead?: (filePath: string) => void | Promise<void
|
|
11
|
+
export declare function createReadTool(cwd: string, readFiles?: ReadTracker, ops?: ToolOperations, onFileRead?: (filePath: string) => void | Promise<void>,
|
|
12
|
+
/** Max video payload (bytes) the active model accepts, or `undefined` for
|
|
13
|
+
* models without video support. When set, video files are returned as a
|
|
14
|
+
* native `video` content part (compressed to fit this cap); when undefined
|
|
15
|
+
* they fall through to the generic binary-file notice. */
|
|
16
|
+
videoByteLimit?: number): AgentTool<typeof ReadParams>;
|
|
12
17
|
export {};
|
|
13
18
|
//# sourceMappingURL=read.d.ts.map
|
package/dist/tools/read.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAWjE,eAAO,MAAM,iBAAiB,aA+C5B,CAAC;AAEH,QAAA,MAAM,UAAU;;;;iBASd,CAAC;AAEH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,WAAW,EACvB,GAAG,GAAE,cAAgC,EACrC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACvD;;;2DAG2D;AAC3D,cAAc,CAAC,EAAE,MAAM,GACtB,SAAS,CAAC,OAAO,UAAU,CAAC,CAsK9B"}
|