sverklo 0.2.8 → 0.2.9

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.
@@ -0,0 +1,21 @@
1
+ export type IntentLabel = "exploring" | "reviewing-diff" | "tracing-impact" | "debugging" | "onboarding" | "memory-curating" | "unknown";
2
+ export interface ToolCall {
3
+ name: string;
4
+ args: Record<string, unknown>;
5
+ ts: number;
6
+ }
7
+ export declare class HintEngine {
8
+ private history;
9
+ record(name: string, args: Record<string, unknown>): void;
10
+ /**
11
+ * Best-effort intent classification from the recent call sequence.
12
+ * Order of checks matters: more specific patterns win over generic ones.
13
+ */
14
+ classifyIntent(): IntentLabel;
15
+ /**
16
+ * Build a hint block for the tool that just ran. Returns null when there
17
+ * is nothing useful to say — we'd rather be silent than add noise.
18
+ */
19
+ buildHint(currentTool: string, currentArgs: Record<string, unknown>): string | null;
20
+ private suggestNext;
21
+ }
@@ -0,0 +1,175 @@
1
+ // Intent-aware hint engine.
2
+ //
3
+ // Inspired by code-review-graph's hints.py: track the recent tool-call
4
+ // trajectory and append a short "next steps" suggestion to each response so
5
+ // the model is nudged toward better composition without needing prompt
6
+ // changes on the client side.
7
+ //
8
+ // The hint engine is intentionally cheap and stateless across processes —
9
+ // it lives in a per-server ring buffer of the last N tool calls. It does
10
+ // not look at tool *output*, only the call sequence and current call
11
+ // arguments, so it never blocks the response on extra DB work.
12
+ const HISTORY_LIMIT = 10;
13
+ export class HintEngine {
14
+ history = [];
15
+ record(name, args) {
16
+ this.history.push({ name, args, ts: Date.now() });
17
+ if (this.history.length > HISTORY_LIMIT) {
18
+ this.history.shift();
19
+ }
20
+ }
21
+ /**
22
+ * Best-effort intent classification from the recent call sequence.
23
+ * Order of checks matters: more specific patterns win over generic ones.
24
+ */
25
+ classifyIntent() {
26
+ if (this.history.length === 0)
27
+ return "unknown";
28
+ const names = this.history.map((c) => c.name);
29
+ const last = names[names.length - 1];
30
+ const hasAny = (...patterns) => names.some((n) => patterns.includes(n));
31
+ // Diff workflow: any of the diff-aware tools were used recently
32
+ if (hasAny("sverklo_review_diff", "sverklo_test_map", "sverklo_diff_search")) {
33
+ return "reviewing-diff";
34
+ }
35
+ // Impact tracing: chained refs/impact lookups
36
+ if (last === "sverklo_impact" ||
37
+ last === "sverklo_refs" ||
38
+ (names.filter((n) => n === "sverklo_refs" || n === "sverklo_impact").length >= 2)) {
39
+ return "tracing-impact";
40
+ }
41
+ // Memory curation: remember/recall/forget activity
42
+ if (hasAny("sverklo_remember", "sverklo_forget", "sverklo_promote", "sverklo_demote")) {
43
+ return "memory-curating";
44
+ }
45
+ // Onboarding: overview followed by lookups/searches without a target
46
+ if (names.includes("sverklo_overview") &&
47
+ names.length <= 4) {
48
+ return "onboarding";
49
+ }
50
+ // Debugging: search-heavy with error-shaped queries
51
+ const recentSearches = this.history.filter((c) => c.name === "sverklo_search");
52
+ if (recentSearches.length >= 2) {
53
+ const queries = recentSearches
54
+ .map((c) => String(c.args?.query ?? "").toLowerCase())
55
+ .join(" ");
56
+ if (/error|exception|fail|crash|bug|null|undefined|throw/.test(queries)) {
57
+ return "debugging";
58
+ }
59
+ return "exploring";
60
+ }
61
+ if (last === "sverklo_search" || last === "sverklo_lookup") {
62
+ return "exploring";
63
+ }
64
+ return "unknown";
65
+ }
66
+ /**
67
+ * Build a hint block for the tool that just ran. Returns null when there
68
+ * is nothing useful to say — we'd rather be silent than add noise.
69
+ */
70
+ buildHint(currentTool, currentArgs) {
71
+ const intent = this.classifyIntent();
72
+ const suggestions = this.suggestNext(currentTool, currentArgs, intent);
73
+ if (suggestions.length === 0)
74
+ return null;
75
+ const lines = [];
76
+ lines.push("");
77
+ lines.push("---");
78
+ lines.push(`_Hints (intent: ${intent})_`);
79
+ for (const s of suggestions)
80
+ lines.push(`- ${s}`);
81
+ return lines.join("\n");
82
+ }
83
+ suggestNext(tool, args, intent) {
84
+ const out = [];
85
+ switch (tool) {
86
+ case "sverklo_review_diff": {
87
+ const ref = args.ref || "main..HEAD";
88
+ out.push(`Run \`sverklo_test_map ref:"${ref}"\` to see which changes lack tests.`);
89
+ out.push(`For any removed symbol with dangling refs, call \`sverklo_impact symbol:"<name>"\`.`);
90
+ break;
91
+ }
92
+ case "sverklo_test_map": {
93
+ const ref = args.ref || "main..HEAD";
94
+ if (!this.history.some((c) => c.name === "sverklo_review_diff")) {
95
+ out.push(`Pair this with \`sverklo_review_diff ref:"${ref}"\` for blast radius and risk scores.`);
96
+ }
97
+ out.push(`Untested high-risk files are the ones to push back on in review.`);
98
+ break;
99
+ }
100
+ case "sverklo_impact":
101
+ case "sverklo_refs": {
102
+ const sym = args.symbol || args.name || "<name>";
103
+ out.push(`Call \`sverklo_lookup name:"${sym}"\` to see the definition you're tracing.`);
104
+ if (intent === "reviewing-diff") {
105
+ out.push(`Each caller listed needs to be updated in the same diff if you removed the symbol.`);
106
+ }
107
+ break;
108
+ }
109
+ case "sverklo_search": {
110
+ if (intent === "debugging") {
111
+ out.push(`Narrow with \`sverklo_lookup\` if the search surfaced a likely target symbol.`);
112
+ out.push(`Call \`sverklo_recall query:"<error>"\` — there may be a saved memory about this issue.`);
113
+ }
114
+ else if (intent === "exploring") {
115
+ out.push(`If a symbol stands out, \`sverklo_refs symbol:"<name>"\` shows everything that uses it.`);
116
+ }
117
+ break;
118
+ }
119
+ case "sverklo_lookup": {
120
+ const name = args.name || "<name>";
121
+ out.push(`\`sverklo_refs symbol:"${name}"\` enumerates everything that calls this.`);
122
+ out.push(`\`sverklo_deps file:"<file>"\` shows what the containing file imports.`);
123
+ break;
124
+ }
125
+ case "sverklo_overview": {
126
+ out.push(`Try \`sverklo_recall query:"architecture"\` for any saved design decisions.`);
127
+ out.push(`Call \`sverklo_deps file:"<top-pagerank file>"\` on a high-PR file to see its centrality.`);
128
+ break;
129
+ }
130
+ case "sverklo_deps": {
131
+ out.push(`If a dependency looks suspicious, \`sverklo_search query:"<concept>"\` finds related code.`);
132
+ break;
133
+ }
134
+ case "sverklo_recall": {
135
+ if (intent === "memory-curating") {
136
+ out.push(`Use \`sverklo_promote\` to mark a memory as core (always-loaded) context.`);
137
+ }
138
+ else {
139
+ out.push(`If you act on a memory, \`sverklo_remember\` the outcome so the next session starts smarter.`);
140
+ }
141
+ break;
142
+ }
143
+ case "sverklo_remember": {
144
+ out.push(`\`sverklo_promote id:<id>\` to make this a core memory loaded on every session.`);
145
+ break;
146
+ }
147
+ case "sverklo_context": {
148
+ const task = args.task || "";
149
+ const detail = args.detail_level || "normal";
150
+ if (detail !== "full") {
151
+ out.push(`If the bundle isn't enough, re-run with \`detail_level:"full"\` for dependency neighbours.`);
152
+ }
153
+ out.push(`Drill into a specific symbol with \`sverklo_lookup\` or \`sverklo_refs\` from the relevant-code list.`);
154
+ if (/bug|error|fail|broken/i.test(task)) {
155
+ out.push(`Looks like a debug task — \`sverklo_recall query:"${task.slice(0, 60)}"\` may surface a known issue.`);
156
+ }
157
+ break;
158
+ }
159
+ case "sverklo_diff_search": {
160
+ const ref = args.ref || "main..HEAD";
161
+ if (!this.history.some((c) => c.name === "sverklo_review_diff")) {
162
+ out.push(`Run \`sverklo_review_diff ref:"${ref}"\` first for the structural picture.`);
163
+ }
164
+ break;
165
+ }
166
+ }
167
+ // Generic loop-protection hint: model is hammering one tool
168
+ const sameToolCount = this.history.filter((c) => c.name === tool).length;
169
+ if (sameToolCount >= 4) {
170
+ out.push(`You've called \`${tool}\` ${sameToolCount} times — consider switching tools or summarising what you've found so far.`);
171
+ }
172
+ return out;
173
+ }
174
+ }
175
+ //# sourceMappingURL=hints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hints.js","sourceRoot":"","sources":["../../../src/server/hints.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
2
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
- import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
3
+ import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
4
+ import { ALL_PROMPTS, findPrompt } from "./prompts.js";
5
+ import { HintEngine } from "./hints.js";
4
6
  import { Indexer } from "../indexer/indexer.js";
5
7
  import { startWatcher } from "../indexer/watcher.js";
6
8
  import { getProjectConfig } from "../utils/config.js";
@@ -22,6 +24,7 @@ import { wakeupTool, handleWakeup } from "./tools/wakeup.js";
22
24
  import { reviewDiffTool, handleReviewDiff } from "./tools/review-diff.js";
23
25
  import { diffSearchTool, handleDiffSearch } from "./tools/diff-search.js";
24
26
  import { testMapTool, handleTestMap } from "./tools/test-map.js";
27
+ import { contextTool, handleContext } from "./tools/context.js";
25
28
  import { promoteTool, demoteTool, handlePromote, handleDemote, } from "./tools/tier.js";
26
29
  import { startHttpServer } from "./http-server.js";
27
30
  // Zilliz claude-context compatibility tool definitions.
@@ -86,6 +89,7 @@ const getIndexingStatusTool = {
86
89
  export async function startMcpServer(rootPath) {
87
90
  const config = getProjectConfig(rootPath);
88
91
  const indexer = new Indexer(config);
92
+ const hints = new HintEngine();
89
93
  // Start indexing in background. Tracked in a mutable holder so clear_index
90
94
  // can swap in a fresh promise after wiping the database.
91
95
  let indexPromise = indexer.index().catch((err) => {
@@ -121,6 +125,7 @@ export async function startMcpServer(rootPath) {
121
125
  capabilities: {
122
126
  tools: {},
123
127
  resources: {},
128
+ prompts: {},
124
129
  },
125
130
  instructions: "Sverklo: code intelligence for this repo. Use it for exploratory search, " +
126
131
  "refactor blast-radius, dependency graphs, diff-aware review, and persistent " +
@@ -186,6 +191,33 @@ export async function startMcpServer(rootPath) {
186
191
  }
187
192
  return { contents: [] };
188
193
  });
194
+ // Prompts: workflow templates that show up in IDE pickers (Claude Code,
195
+ // Cursor, Antigravity). These encode the *order* of sverklo tool calls
196
+ // for common code-intelligence tasks — review, pre-merge, onboarding,
197
+ // architecture mapping, and debugging.
198
+ server.setRequestHandler(ListPromptsRequestSchema, async () => ({
199
+ prompts: ALL_PROMPTS.map((p) => ({
200
+ name: p.name,
201
+ description: p.description,
202
+ arguments: p.arguments,
203
+ })),
204
+ }));
205
+ server.setRequestHandler(GetPromptRequestSchema, async (request) => {
206
+ const prompt = findPrompt(request.params.name);
207
+ if (!prompt) {
208
+ throw new Error(`Unknown prompt: ${request.params.name}`);
209
+ }
210
+ const args = (request.params.arguments || {});
211
+ return {
212
+ description: prompt.description,
213
+ messages: [
214
+ {
215
+ role: "user",
216
+ content: { type: "text", text: prompt.build(args) },
217
+ },
218
+ ],
219
+ };
220
+ });
189
221
  // List tools. Zilliz claude-context compat aliases are gated behind
190
222
  // SVERKLO_ZILLIZ_COMPAT=1 — they pay ~450 tokens of schema overhead on
191
223
  // every session and most users don't need them. Dispatch cases below are
@@ -193,6 +225,7 @@ export async function startMcpServer(rootPath) {
193
225
  const enableZilliz = process.env.SVERKLO_ZILLIZ_COMPAT === "1";
194
226
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
195
227
  tools: [
228
+ contextTool,
196
229
  searchTool,
197
230
  overviewTool,
198
231
  lookupTool,
@@ -232,6 +265,9 @@ export async function startMcpServer(rootPath) {
232
265
  try {
233
266
  let result;
234
267
  switch (name) {
268
+ case "sverklo_context":
269
+ result = await handleContext(indexer, args || {});
270
+ break;
235
271
  case "sverklo_search":
236
272
  result = await handleSearch(indexer, args || {});
237
273
  break;
@@ -347,6 +383,15 @@ export async function startMcpServer(rootPath) {
347
383
  default:
348
384
  result = `Unknown tool: ${name}`;
349
385
  }
386
+ // Append intent-aware hints unless the caller opts out via env var.
387
+ // Hints are off the critical path of the actual answer — append-only.
388
+ if (process.env.SVERKLO_DISABLE_HINTS !== "1") {
389
+ const argRecord = (args || {});
390
+ hints.record(name, argRecord);
391
+ const hintBlock = hints.buildHint(name, argRecord);
392
+ if (hintBlock)
393
+ result = result + "\n" + hintBlock;
394
+ }
350
395
  return {
351
396
  content: [{ type: "text", text: result }],
352
397
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../../src/server/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../../src/server/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export interface PromptArgument {
2
+ name: string;
3
+ description: string;
4
+ required?: boolean;
5
+ }
6
+ export interface PromptDefinition {
7
+ name: string;
8
+ description: string;
9
+ arguments: PromptArgument[];
10
+ /**
11
+ * Build the prompt body. Receives the raw arguments object from the MCP
12
+ * client; missing optional args are undefined.
13
+ */
14
+ build: (args: Record<string, string | undefined>) => string;
15
+ }
16
+ export declare const ALL_PROMPTS: PromptDefinition[];
17
+ export declare function findPrompt(name: string): PromptDefinition | undefined;
@@ -0,0 +1,148 @@
1
+ // MCP prompt templates exposed via prompts/list and prompts/get.
2
+ //
3
+ // Prompts show up in IDE pickers (Claude Code, Cursor, Antigravity) as
4
+ // reusable workflows. Sverklo's value lives mostly in tool composition, so
5
+ // these templates encode the *order* of tool calls a user should make for
6
+ // common code-intelligence tasks. Each prompt accepts a small number of
7
+ // arguments and returns a single user-role message that the host model can
8
+ // then act on with sverklo's tools available.
9
+ const REVIEW_CHANGES = {
10
+ name: "sverklo/review-changes",
11
+ description: "Diff-aware code review workflow. Walks the model through sverklo's diff tools to surface blast radius, dangling references, missing tests, and risk-scored hotspots.",
12
+ arguments: [
13
+ {
14
+ name: "ref",
15
+ description: "Git ref or range to review (default: main..HEAD)",
16
+ required: false,
17
+ },
18
+ ],
19
+ build: ({ ref }) => {
20
+ const r = ref || "main..HEAD";
21
+ return `You are reviewing the diff \`${r}\`. Use sverklo's diff-aware tools, in order:
22
+
23
+ 1. Call \`sverklo_review_diff\` with \`ref:"${r}"\` to get the changed files, semantic delta (added/removed/modified symbols), dangling references for removed symbols, importer counts, and a per-file risk score. Read the **Highest-risk files** section first.
24
+ 2. Call \`sverklo_test_map\` with \`ref:"${r}"\` to see which tests cover the changes and which changed files have no matching tests. Prioritise the risk-ranked uncovered list.
25
+ 3. For any removed symbol with dangling references, call \`sverklo_impact symbol:"<name>"\` to enumerate every caller — these are likely breakages.
26
+ 4. For any added symbol that looks like it duplicates existing functionality, call \`sverklo_lookup\` to find the existing definition.
27
+ 5. Only after the above, read the actual diff with \`git diff ${r}\` for the highest-risk file(s).
28
+
29
+ Constraint: keep the total number of tool calls under 8. Do not grep for things sverklo can answer structurally. Do not paraphrase the tool output back at the user — synthesise the review. End with a clear verdict (LGTM / request changes / blocking concern) and a bulleted list of must-fix items, each tied to a file:line.`;
30
+ },
31
+ };
32
+ const PRE_MERGE_CHECK = {
33
+ name: "sverklo/pre-merge",
34
+ description: "Final pre-merge sanity check. Stricter than review-changes — looks for unsafe removals, untested security-sensitive changes, and high-fan-in modifications.",
35
+ arguments: [
36
+ {
37
+ name: "ref",
38
+ description: "Git ref or range about to be merged (default: main..HEAD)",
39
+ required: false,
40
+ },
41
+ ],
42
+ build: ({ ref }) => {
43
+ const r = ref || "main..HEAD";
44
+ return `You are the last reviewer before merging \`${r}\`. Be strict.
45
+
46
+ 1. Call \`sverklo_review_diff ref:"${r}"\`. The response includes a per-file risk score. **Block the merge** if any file is risk level "critical" without an explicit reason in the PR description.
47
+ 2. Call \`sverklo_test_map ref:"${r}"\`. **Block the merge** if any uncovered file has risk level "high" or "critical" — require tests or an explicit waiver.
48
+ 3. For every removed symbol with dangling references, call \`sverklo_impact\` and verify each caller has been updated in the same diff. A dangling reference is a hard block.
49
+ 4. Call \`sverklo_recall query:"<area being changed>"\` to surface any prior decisions or invariants that this change might violate.
50
+
51
+ Output a structured verdict:
52
+ - **Status:** APPROVED / BLOCKED / NEEDS CLARIFICATION
53
+ - **Blocking issues:** (file:line + reason)
54
+ - **Non-blocking concerns:** (file:line + reason)
55
+ - **Suggested follow-ups:** (memories to save with sverklo_remember, or tests to add)
56
+
57
+ Do not approve without justification for every "high" or "critical" risk file.`;
58
+ },
59
+ };
60
+ const ONBOARD = {
61
+ name: "sverklo/onboard",
62
+ description: "New-developer onboarding tour. Builds a mental model of the codebase using sverklo_overview, top-PageRank files, and core memories.",
63
+ arguments: [
64
+ {
65
+ name: "focus",
66
+ description: "Optional area to focus on (e.g. 'auth', 'billing', 'data pipeline')",
67
+ required: false,
68
+ },
69
+ ],
70
+ build: ({ focus }) => {
71
+ const focusLine = focus
72
+ ? `The new developer is specifically interested in: **${focus}**. Tailor the tour to that area.`
73
+ : "Give a generalist tour suitable for any new contributor.";
74
+ return `Help a new developer get oriented in this codebase. ${focusLine}
75
+
76
+ 1. Call \`sverklo_overview\` to get the high-level structure: top languages, top-PageRank files, module map.
77
+ 2. Call \`sverklo_recall query:"architecture"\` and \`sverklo_recall query:"conventions"\` to surface any saved invariants and design decisions.
78
+ 3. ${focus ? `Call \`sverklo_search query:"${focus}"\` to find the entry points for the focus area.` : "Pick 2-3 of the highest-PageRank source files and call `sverklo_lookup` on their main exported symbols to show what they do."}
79
+ 4. For the most central file you find, call \`sverklo_deps\` to show its place in the import graph.
80
+
81
+ Then write a concise onboarding doc (under 600 words) with:
82
+ - "Start here" — the 3-5 files to read first, in order, with a one-line reason for each
83
+ - "Key abstractions" — the named concepts a new dev needs to understand
84
+ - "Conventions" — anything from recall that affects how to write code in this repo
85
+ - "Where to look for X" — a short index mapping common tasks to relevant directories
86
+
87
+ Do not invent facts. If sverklo doesn't surface something, say so.`;
88
+ },
89
+ };
90
+ const ARCHITECTURE_MAP = {
91
+ name: "sverklo/architecture-map",
92
+ description: "Generate an architecture map of the codebase using sverklo's overview, dependency graph, and PageRank-ranked centrality.",
93
+ arguments: [],
94
+ build: () => `Produce an architecture map of this codebase using only sverklo tools.
95
+
96
+ 1. Call \`sverklo_overview\` for the structural summary (file/chunk/language counts, top-PageRank files).
97
+ 2. For each of the top 5 PageRank files, call \`sverklo_deps\` to see what depends on it and what it depends on. These are the load-bearing modules.
98
+ 3. Call \`sverklo_recall query:"architecture"\` for any saved design decisions.
99
+ 4. Call \`sverklo_search query:"entry point main bootstrap"\` to find the application entry points.
100
+
101
+ Produce an architecture map with:
102
+ - **Entry points** — where execution starts
103
+ - **Core modules** — the high-PageRank files that everything else hangs off, with a one-line role for each
104
+ - **Layering** — what depends on what (group by module, not file)
105
+ - **Cross-cutting concerns** — anything that shows up in many unrelated places (logging, auth, config)
106
+ - **Risks** — high-fan-in files with no tests, circular dependencies, or anything recall flagged as fragile
107
+
108
+ Use only what sverklo returns. Do not invent module names.`,
109
+ };
110
+ const DEBUG_ISSUE = {
111
+ name: "sverklo/debug-issue",
112
+ description: "Bug-hunt workflow. Uses semantic search, references, and saved memories to localise an issue without grepping the whole repo.",
113
+ arguments: [
114
+ {
115
+ name: "symptom",
116
+ description: "Short description of the bug or symptom (e.g. 'login returns 500 for OAuth users')",
117
+ required: true,
118
+ },
119
+ ],
120
+ build: ({ symptom }) => {
121
+ return `Help debug this issue: **${symptom || "(unspecified — ask the user for the symptom first)"}**
122
+
123
+ 1. Call \`sverklo_recall query:"${symptom}"\` — there may be a prior decision or known-issue memory that explains this.
124
+ 2. Call \`sverklo_search query:"${symptom}"\` to find the most semantically relevant code regions. Read the top 3 results.
125
+ 3. From those results, identify the 1-2 most likely entry points or error sources. Call \`sverklo_refs symbol:"<name>"\` on each to see who calls them — the bug may be in a caller, not the function itself.
126
+ 4. If the symptom mentions a specific error message, call \`sverklo_search query:"<error string>"\` to find where it's thrown.
127
+ 5. Call \`sverklo_deps file:"<suspect file>"\` to see what the suspect code depends on — the bug may be in a dependency.
128
+
129
+ Then produce:
130
+ - **Most likely root cause:** (file:line + one-paragraph explanation)
131
+ - **Other candidates:** (ranked, with reasoning)
132
+ - **What to verify:** specific assertions or test inputs that would confirm/deny each hypothesis
133
+ - **Suggested fix:** only if the root cause is clear
134
+
135
+ Do not propose code changes without identifying a specific file:line. If the search turns up nothing relevant, say so and ask the user for more context (stack trace, repro steps).`;
136
+ },
137
+ };
138
+ export const ALL_PROMPTS = [
139
+ REVIEW_CHANGES,
140
+ PRE_MERGE_CHECK,
141
+ ONBOARD,
142
+ ARCHITECTURE_MAP,
143
+ DEBUG_ISSUE,
144
+ ];
145
+ export function findPrompt(name) {
146
+ return ALL_PROMPTS.find((p) => p.name === name);
147
+ }
148
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/server/prompts.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,uEAAuE;AACvE,2EAA2E;AAC3E,0EAA0E;AAC1E,wEAAwE;AACxE,2EAA2E;AAC3E,8CAA8C;AAmB9C,MAAM,cAAc,GAAqB;IACvC,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EACT,sKAAsK;IACxK,SAAS,EAAE;QACT;YACE,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,kDAAkD;YAC/D,QAAQ,EAAE,KAAK;SAChB;KACF;IACD,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;QACjB,MAAM,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC;QAC9B,OAAO,gCAAgC,CAAC;;8CAEE,CAAC;2CACJ,CAAC;;;gEAGoB,CAAC;;mUAEkQ,CAAC;IAClU,CAAC;CACF,CAAC;AAEF,MAAM,eAAe,GAAqB;IACxC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EACT,6JAA6J;IAC/J,SAAS,EAAE;QACT;YACE,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,2DAA2D;YACxE,QAAQ,EAAE,KAAK;SAChB;KACF;IACD,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;QACjB,MAAM,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC;QAC9B,OAAO,8CAA8C,CAAC;;qCAErB,CAAC;kCACJ,CAAC;;;;;;;;;;+EAU4C,CAAC;IAC9E,CAAC;CACF,CAAC;AAEF,MAAM,OAAO,GAAqB;IAChC,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,qIAAqI;IACvI,SAAS,EAAE;QACT;YACE,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,qEAAqE;YAClF,QAAQ,EAAE,KAAK;SAChB;KACF;IACD,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACnB,MAAM,SAAS,GAAG,KAAK;YACrB,CAAC,CAAC,sDAAsD,KAAK,mCAAmC;YAChG,CAAC,CAAC,0DAA0D,CAAC;QAC/D,OAAO,uDAAuD,SAAS;;;;KAItE,KAAK,CAAC,CAAC,CAAC,gCAAgC,KAAK,kDAAkD,CAAC,CAAC,CAAC,8HAA8H;;;;;;;;;mEASlK,CAAC;IAClE,CAAC;CACF,CAAC;AAEF,MAAM,gBAAgB,GAAqB;IACzC,IAAI,EAAE,0BAA0B;IAChC,WAAW,EACT,0HAA0H;IAC5H,SAAS,EAAE,EAAE;IACb,KAAK,EAAE,GAAG,EAAE,CAAC;;;;;;;;;;;;;;2DAc4C;CAC1D,CAAC;AAEF,MAAM,WAAW,GAAqB;IACpC,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACT,+HAA+H;IACjI,SAAS,EAAE;QACT;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,oFAAoF;YACjG,QAAQ,EAAE,IAAI;SACf;KACF;IACD,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;QACrB,OAAO,4BAA4B,OAAO,IAAI,oDAAoD;;kCAEpE,OAAO;kCACP,OAAO;;;;;;;;;;;oLAW2I,CAAC;IACnL,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAuB;IAC7C,cAAc;IACd,eAAe;IACf,OAAO;IACP,gBAAgB;IAChB,WAAW;CACZ,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { Indexer } from "../../indexer/indexer.js";
2
+ export declare const contextTool: {
3
+ name: string;
4
+ description: string;
5
+ inputSchema: {
6
+ type: "object";
7
+ properties: {
8
+ task: {
9
+ type: string;
10
+ description: string;
11
+ };
12
+ detail_level: {
13
+ type: string;
14
+ enum: string[];
15
+ description: string;
16
+ };
17
+ scope: {
18
+ type: string;
19
+ description: string;
20
+ };
21
+ };
22
+ required: string[];
23
+ };
24
+ };
25
+ export declare function handleContext(indexer: Indexer, args: Record<string, unknown>): Promise<string>;