codesift-mcp 0.5.21 → 0.5.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/README.md +9 -9
  2. package/dist/cli/commands.d.ts.map +1 -1
  3. package/dist/cli/commands.js +28 -0
  4. package/dist/cli/commands.js.map +1 -1
  5. package/dist/cli/help.js +1 -1
  6. package/dist/cli/help.js.map +1 -1
  7. package/dist/cli/hooks.d.ts +4 -0
  8. package/dist/cli/hooks.d.ts.map +1 -1
  9. package/dist/cli/hooks.js +15 -4
  10. package/dist/cli/hooks.js.map +1 -1
  11. package/dist/cli/journal-commands.d.ts +9 -0
  12. package/dist/cli/journal-commands.d.ts.map +1 -0
  13. package/dist/cli/journal-commands.js +160 -0
  14. package/dist/cli/journal-commands.js.map +1 -0
  15. package/dist/cli/wiki-commands.d.ts.map +1 -1
  16. package/dist/cli/wiki-commands.js +5 -0
  17. package/dist/cli/wiki-commands.js.map +1 -1
  18. package/dist/instructions.d.ts +1 -1
  19. package/dist/instructions.d.ts.map +1 -1
  20. package/dist/instructions.js +41 -47
  21. package/dist/instructions.js.map +1 -1
  22. package/dist/parser/extractors/_shared.d.ts +2 -0
  23. package/dist/parser/extractors/_shared.d.ts.map +1 -1
  24. package/dist/parser/extractors/_shared.js +4 -0
  25. package/dist/parser/extractors/_shared.js.map +1 -1
  26. package/dist/parser/extractors/typescript.d.ts.map +1 -1
  27. package/dist/parser/extractors/typescript.js +606 -31
  28. package/dist/parser/extractors/typescript.js.map +1 -1
  29. package/dist/parser/parse-worker.d.ts +2 -0
  30. package/dist/parser/parse-worker.d.ts.map +1 -0
  31. package/dist/parser/parse-worker.js +47 -0
  32. package/dist/parser/parse-worker.js.map +1 -0
  33. package/dist/parser/parser-manager.d.ts +10 -1
  34. package/dist/parser/parser-manager.d.ts.map +1 -1
  35. package/dist/parser/parser-manager.js +40 -2
  36. package/dist/parser/parser-manager.js.map +1 -1
  37. package/dist/parser/parser-pool.d.ts +31 -0
  38. package/dist/parser/parser-pool.d.ts.map +1 -0
  39. package/dist/parser/parser-pool.js +211 -0
  40. package/dist/parser/parser-pool.js.map +1 -0
  41. package/dist/register-tools.d.ts.map +1 -1
  42. package/dist/register-tools.js +394 -35
  43. package/dist/register-tools.js.map +1 -1
  44. package/dist/retrieval/codebase-retrieval.d.ts.map +1 -1
  45. package/dist/retrieval/codebase-retrieval.js +9 -1
  46. package/dist/retrieval/codebase-retrieval.js.map +1 -1
  47. package/dist/search/chunker.d.ts +1 -0
  48. package/dist/search/chunker.d.ts.map +1 -1
  49. package/dist/search/chunker.js +8 -1
  50. package/dist/search/chunker.js.map +1 -1
  51. package/dist/server-helpers.d.ts +27 -0
  52. package/dist/server-helpers.d.ts.map +1 -1
  53. package/dist/server-helpers.js +90 -9
  54. package/dist/server-helpers.js.map +1 -1
  55. package/dist/server.js +31 -0
  56. package/dist/server.js.map +1 -1
  57. package/dist/storage/index-store.d.ts +41 -4
  58. package/dist/storage/index-store.d.ts.map +1 -1
  59. package/dist/storage/index-store.js +89 -6
  60. package/dist/storage/index-store.js.map +1 -1
  61. package/dist/storage/watcher.d.ts +33 -6
  62. package/dist/storage/watcher.d.ts.map +1 -1
  63. package/dist/storage/watcher.js +73 -34
  64. package/dist/storage/watcher.js.map +1 -1
  65. package/dist/storage/workspace-resolver.d.ts +15 -0
  66. package/dist/storage/workspace-resolver.d.ts.map +1 -0
  67. package/dist/storage/workspace-resolver.js +130 -0
  68. package/dist/storage/workspace-resolver.js.map +1 -0
  69. package/dist/tools/_helpers.d.ts +37 -0
  70. package/dist/tools/_helpers.d.ts.map +1 -0
  71. package/dist/tools/_helpers.js +31 -0
  72. package/dist/tools/_helpers.js.map +1 -0
  73. package/dist/tools/constant-resolution-tools.d.ts +8 -0
  74. package/dist/tools/constant-resolution-tools.d.ts.map +1 -0
  75. package/dist/tools/constant-resolution-tools.js +68 -0
  76. package/dist/tools/constant-resolution-tools.js.map +1 -0
  77. package/dist/tools/graph-tools.d.ts +27 -5
  78. package/dist/tools/graph-tools.d.ts.map +1 -1
  79. package/dist/tools/graph-tools.js +141 -18
  80. package/dist/tools/graph-tools.js.map +1 -1
  81. package/dist/tools/hotspot-tools.d.ts +6 -0
  82. package/dist/tools/hotspot-tools.d.ts.map +1 -1
  83. package/dist/tools/hotspot-tools.js +48 -8
  84. package/dist/tools/hotspot-tools.js.map +1 -1
  85. package/dist/tools/impact-tools.d.ts.map +1 -1
  86. package/dist/tools/impact-tools.js +9 -2
  87. package/dist/tools/impact-tools.js.map +1 -1
  88. package/dist/tools/index-tools.d.ts +15 -1
  89. package/dist/tools/index-tools.d.ts.map +1 -1
  90. package/dist/tools/index-tools.js +161 -16
  91. package/dist/tools/index-tools.js.map +1 -1
  92. package/dist/tools/journal-generator-helpers.d.ts +55 -0
  93. package/dist/tools/journal-generator-helpers.d.ts.map +1 -0
  94. package/dist/tools/journal-generator-helpers.js +250 -0
  95. package/dist/tools/journal-generator-helpers.js.map +1 -0
  96. package/dist/tools/journal-generator.d.ts +48 -0
  97. package/dist/tools/journal-generator.d.ts.map +1 -0
  98. package/dist/tools/journal-generator.js +204 -0
  99. package/dist/tools/journal-generator.js.map +1 -0
  100. package/dist/tools/journal-git-client.d.ts +20 -0
  101. package/dist/tools/journal-git-client.d.ts.map +1 -0
  102. package/dist/tools/journal-git-client.js +57 -0
  103. package/dist/tools/journal-git-client.js.map +1 -0
  104. package/dist/tools/journal-llm-client.d.ts +57 -0
  105. package/dist/tools/journal-llm-client.d.ts.map +1 -0
  106. package/dist/tools/journal-llm-client.js +175 -0
  107. package/dist/tools/journal-llm-client.js.map +1 -0
  108. package/dist/tools/journal-migrator.d.ts +22 -0
  109. package/dist/tools/journal-migrator.d.ts.map +1 -0
  110. package/dist/tools/journal-migrator.js +183 -0
  111. package/dist/tools/journal-migrator.js.map +1 -0
  112. package/dist/tools/journal-phase-detector.d.ts +26 -0
  113. package/dist/tools/journal-phase-detector.d.ts.map +1 -0
  114. package/dist/tools/journal-phase-detector.js +126 -0
  115. package/dist/tools/journal-phase-detector.js.map +1 -0
  116. package/dist/tools/journal-sentinel.d.ts +15 -0
  117. package/dist/tools/journal-sentinel.d.ts.map +1 -0
  118. package/dist/tools/journal-sentinel.js +110 -0
  119. package/dist/tools/journal-sentinel.js.map +1 -0
  120. package/dist/tools/journal-templates.d.ts +28 -0
  121. package/dist/tools/journal-templates.d.ts.map +1 -0
  122. package/dist/tools/journal-templates.js +93 -0
  123. package/dist/tools/journal-templates.js.map +1 -0
  124. package/dist/tools/pattern-tools.d.ts +2 -0
  125. package/dist/tools/pattern-tools.d.ts.map +1 -1
  126. package/dist/tools/pattern-tools.js +73 -0
  127. package/dist/tools/pattern-tools.js.map +1 -1
  128. package/dist/tools/perf-tools.d.ts.map +1 -1
  129. package/dist/tools/perf-tools.js +6 -0
  130. package/dist/tools/perf-tools.js.map +1 -1
  131. package/dist/tools/plan-turn-tools.d.ts.map +1 -1
  132. package/dist/tools/plan-turn-tools.js +38 -2
  133. package/dist/tools/plan-turn-tools.js.map +1 -1
  134. package/dist/tools/project-tools.d.ts +6 -0
  135. package/dist/tools/project-tools.d.ts.map +1 -1
  136. package/dist/tools/project-tools.js +65 -25
  137. package/dist/tools/project-tools.js.map +1 -1
  138. package/dist/tools/python-constants-tools.d.ts +6 -0
  139. package/dist/tools/python-constants-tools.d.ts.map +1 -1
  140. package/dist/tools/python-constants-tools.js.map +1 -1
  141. package/dist/tools/react-tools.d.ts +44 -1
  142. package/dist/tools/react-tools.d.ts.map +1 -1
  143. package/dist/tools/react-tools.js +142 -9
  144. package/dist/tools/react-tools.js.map +1 -1
  145. package/dist/tools/search-tools.d.ts.map +1 -1
  146. package/dist/tools/search-tools.js +21 -2
  147. package/dist/tools/search-tools.js.map +1 -1
  148. package/dist/tools/status-tools.d.ts +10 -0
  149. package/dist/tools/status-tools.d.ts.map +1 -1
  150. package/dist/tools/status-tools.js +53 -2
  151. package/dist/tools/status-tools.js.map +1 -1
  152. package/dist/tools/symbol-tools.d.ts +13 -0
  153. package/dist/tools/symbol-tools.d.ts.map +1 -1
  154. package/dist/tools/symbol-tools.js +38 -0
  155. package/dist/tools/symbol-tools.js.map +1 -1
  156. package/dist/tools/typescript-constants-tools.d.ts +6 -0
  157. package/dist/tools/typescript-constants-tools.d.ts.map +1 -0
  158. package/dist/tools/typescript-constants-tools.js +687 -0
  159. package/dist/tools/typescript-constants-tools.js.map +1 -0
  160. package/dist/tools/wiki-hub-ranker.d.ts +36 -0
  161. package/dist/tools/wiki-hub-ranker.d.ts.map +1 -0
  162. package/dist/tools/wiki-hub-ranker.js +72 -0
  163. package/dist/tools/wiki-hub-ranker.js.map +1 -0
  164. package/dist/tools/wiki-lint.d.ts +7 -2
  165. package/dist/tools/wiki-lint.d.ts.map +1 -1
  166. package/dist/tools/wiki-lint.js +73 -1
  167. package/dist/tools/wiki-lint.js.map +1 -1
  168. package/dist/tools/wiki-manifest.d.ts +129 -21
  169. package/dist/tools/wiki-manifest.d.ts.map +1 -1
  170. package/dist/tools/wiki-manifest.js +16 -9
  171. package/dist/tools/wiki-manifest.js.map +1 -1
  172. package/dist/tools/wiki-module-builder.d.ts +42 -0
  173. package/dist/tools/wiki-module-builder.d.ts.map +1 -0
  174. package/dist/tools/wiki-module-builder.js +449 -0
  175. package/dist/tools/wiki-module-builder.js.map +1 -0
  176. package/dist/tools/wiki-overview-sources.d.ts +26 -0
  177. package/dist/tools/wiki-overview-sources.d.ts.map +1 -0
  178. package/dist/tools/wiki-overview-sources.js +128 -0
  179. package/dist/tools/wiki-overview-sources.js.map +1 -0
  180. package/dist/tools/wiki-page-generators.d.ts +19 -3
  181. package/dist/tools/wiki-page-generators.d.ts.map +1 -1
  182. package/dist/tools/wiki-page-generators.js +156 -22
  183. package/dist/tools/wiki-page-generators.js.map +1 -1
  184. package/dist/tools/wiki-tools.d.ts +20 -0
  185. package/dist/tools/wiki-tools.d.ts.map +1 -1
  186. package/dist/tools/wiki-tools.js +181 -29
  187. package/dist/tools/wiki-tools.js.map +1 -1
  188. package/dist/tools/workspace-scope-helper.d.ts +21 -0
  189. package/dist/tools/workspace-scope-helper.d.ts.map +1 -0
  190. package/dist/tools/workspace-scope-helper.js +50 -0
  191. package/dist/tools/workspace-scope-helper.js.map +1 -0
  192. package/dist/tools/workspace-tools.d.ts +74 -0
  193. package/dist/tools/workspace-tools.d.ts.map +1 -0
  194. package/dist/tools/workspace-tools.js +366 -0
  195. package/dist/tools/workspace-tools.js.map +1 -0
  196. package/dist/types.d.ts +65 -0
  197. package/dist/types.d.ts.map +1 -1
  198. package/dist/utils/import-graph.d.ts +27 -0
  199. package/dist/utils/import-graph.d.ts.map +1 -1
  200. package/dist/utils/import-graph.js +331 -8
  201. package/dist/utils/import-graph.js.map +1 -1
  202. package/dist/utils/ts-imports.d.ts +30 -0
  203. package/dist/utils/ts-imports.d.ts.map +1 -0
  204. package/dist/utils/ts-imports.js +168 -0
  205. package/dist/utils/ts-imports.js.map +1 -0
  206. package/dist/utils/tsconfig-paths.d.ts +59 -0
  207. package/dist/utils/tsconfig-paths.d.ts.map +1 -0
  208. package/dist/utils/tsconfig-paths.js +176 -0
  209. package/dist/utils/tsconfig-paths.js.map +1 -0
  210. package/dist/utils/walk.d.ts.map +1 -1
  211. package/dist/utils/walk.js +1 -0
  212. package/dist/utils/walk.js.map +1 -1
  213. package/package.json +13 -3
  214. package/rules/codesift.md +19 -2
  215. package/rules/codesift.mdc +2 -2
  216. package/rules/codex.md +13 -2
  217. package/rules/gemini.md +13 -2
@@ -0,0 +1,15 @@
1
+ export interface SentinelBlock {
2
+ prefix: "auto" | "manual";
3
+ kind: string;
4
+ content: string;
5
+ startLine: number;
6
+ endLine: number;
7
+ hash: string;
8
+ }
9
+ export declare class SentinelIntegrityError extends Error {
10
+ readonly line: number;
11
+ constructor(message: string, line: number);
12
+ }
13
+ export declare function computeBlockHash(blockContent: string): string;
14
+ export declare function parseSentinelBlocks(content: string): SentinelBlock[];
15
+ //# sourceMappingURL=journal-sentinel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journal-sentinel.d.ts","sourceRoot":"","sources":["../../src/tools/journal-sentinel.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAK1C;AAoCD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAO7D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CAsFpE"}
@@ -0,0 +1,110 @@
1
+ import { createHash } from "node:crypto";
2
+ export class SentinelIntegrityError extends Error {
3
+ line;
4
+ constructor(message, line) {
5
+ super(`${message} (line ${line})`);
6
+ this.name = "SentinelIntegrityError";
7
+ this.line = line;
8
+ }
9
+ }
10
+ const BEGIN_RE = /^<!--\s+(auto|manual):begin\s+([^\s]+)\s+-->\s*$/;
11
+ const END_RE = /^<!--\s+(auto|manual):end\s+([^\s]+)\s+-->\s*$/;
12
+ const SOURCE_COMMITS_RE = /^<!--\s*source_commits:.*-->\s*$/;
13
+ const ENTRY_DATE_RE = /^entry:(\d{4})-(\d{2})-(\d{2})$/;
14
+ const VALID_AUTO_KINDS = new Set(["meta", "phase-summary"]);
15
+ const VALID_MANUAL_KINDS = new Set(["migrated-overview"]);
16
+ function isValidEntryKind(kind) {
17
+ const m = ENTRY_DATE_RE.exec(kind);
18
+ if (!m)
19
+ return false;
20
+ const year = Number(m[1]);
21
+ const month = Number(m[2]);
22
+ const day = Number(m[3]);
23
+ if (month < 1 || month > 12 || day < 1 || day > 31)
24
+ return false;
25
+ const dt = new Date(Date.UTC(year, month - 1, day));
26
+ return (dt.getUTCFullYear() === year &&
27
+ dt.getUTCMonth() === month - 1 &&
28
+ dt.getUTCDate() === day);
29
+ }
30
+ function isKnownKind(prefix, kind) {
31
+ if (prefix === "manual")
32
+ return VALID_MANUAL_KINDS.has(kind);
33
+ return VALID_AUTO_KINDS.has(kind) || kind.startsWith("entry:");
34
+ }
35
+ export function computeBlockHash(blockContent) {
36
+ const lf = blockContent.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
37
+ const stripped = lf
38
+ .split("\n")
39
+ .map((l) => l.replace(/[ \t]+$/, ""))
40
+ .join("\n");
41
+ return createHash("sha256").update(stripped, "utf8").digest("hex");
42
+ }
43
+ export function parseSentinelBlocks(content) {
44
+ const lines = content.split("\n");
45
+ const blocks = [];
46
+ let open = null;
47
+ for (let i = 0; i < lines.length; i++) {
48
+ const line = lines[i];
49
+ const lineNo = i + 1;
50
+ const beginMatch = BEGIN_RE.exec(line);
51
+ const endMatch = END_RE.exec(line);
52
+ if (beginMatch) {
53
+ const prefix = beginMatch[1];
54
+ const kind = beginMatch[2];
55
+ if (!isKnownKind(prefix, kind)) {
56
+ if (open)
57
+ open.bodyLines.push(line);
58
+ continue;
59
+ }
60
+ if (prefix === "auto" && kind.startsWith("entry:") && !isValidEntryKind(kind)) {
61
+ throw new SentinelIntegrityError(`invalid entry date in auto:begin ${kind}`, lineNo);
62
+ }
63
+ if (open) {
64
+ throw new SentinelIntegrityError(`nested ${prefix}:begin ${kind} inside open ${open.prefix}:begin ${open.kind}`, lineNo);
65
+ }
66
+ open = { prefix, kind, startLine: lineNo, bodyLines: [] };
67
+ continue;
68
+ }
69
+ if (endMatch) {
70
+ const prefix = endMatch[1];
71
+ const kind = endMatch[2];
72
+ if (!isKnownKind(prefix, kind)) {
73
+ if (open)
74
+ open.bodyLines.push(line);
75
+ continue;
76
+ }
77
+ if (!open) {
78
+ throw new SentinelIntegrityError(`stray ${prefix}:end ${kind} with no matching begin`, lineNo);
79
+ }
80
+ if (open.prefix !== prefix || open.kind !== kind) {
81
+ throw new SentinelIntegrityError(`mismatch: ${prefix}:end ${kind} does not match open ${open.prefix}:begin ${open.kind}`, lineNo);
82
+ }
83
+ const bodyContent = open.bodyLines.join("\n");
84
+ if (open.prefix === "auto" && open.kind.startsWith("entry:")) {
85
+ const nonEmpty = open.bodyLines.filter((l) => l.trim().length > 0);
86
+ const last = nonEmpty[nonEmpty.length - 1];
87
+ if (!last || !SOURCE_COMMITS_RE.test(last)) {
88
+ throw new SentinelIntegrityError(`entry ${open.kind} missing required source_commits footer`, open.startLine);
89
+ }
90
+ }
91
+ blocks.push({
92
+ prefix: open.prefix,
93
+ kind: open.kind,
94
+ content: bodyContent,
95
+ startLine: open.startLine,
96
+ endLine: lineNo,
97
+ hash: computeBlockHash(bodyContent),
98
+ });
99
+ open = null;
100
+ continue;
101
+ }
102
+ if (open)
103
+ open.bodyLines.push(line);
104
+ }
105
+ if (open) {
106
+ throw new SentinelIntegrityError(`unclosed ${open.prefix}:begin ${open.kind} reached EOF`, open.startLine);
107
+ }
108
+ return blocks;
109
+ }
110
+ //# sourceMappingURL=journal-sentinel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journal-sentinel.js","sourceRoot":"","sources":["../../src/tools/journal-sentinel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { PhasePlan } from "./journal-phase-detector.js";
2
+ import type { GitCommit } from "./journal-git-client.js";
3
+ export interface ValidationResult {
4
+ ok: boolean;
5
+ reason?: string;
6
+ }
7
+ /**
8
+ * Build a prompt asking an LLM to write a phase-level journal entry.
9
+ * Pure: no I/O, no env reads.
10
+ */
11
+ export declare function renderPhaseSummaryPrompt(phase: PhasePlan): string;
12
+ /**
13
+ * Build a prompt asking an LLM to write a day-level journal entry.
14
+ * Pure: no I/O, no env reads.
15
+ */
16
+ export declare function renderEntryPrompt(date: string, commits: GitCommit[]): string;
17
+ /**
18
+ * Validate that an LLM response contains all 4 H2 anchors in the required order.
19
+ * Returns { ok: true } on success, or { ok: false, reason } on failure.
20
+ */
21
+ export declare function validateLlmResponse(text: string): ValidationResult;
22
+ /**
23
+ * Build a scaffold (placeholder) response for when no LLM provider is configured.
24
+ * Emits the exact 4-beat structure with TODO comments.
25
+ * Pure: no I/O.
26
+ */
27
+ export declare function buildScaffoldResponse(phase: PhasePlan): string;
28
+ //# sourceMappingURL=journal-templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journal-templates.d.ts","sourceRoot":"","sources":["../../src/tools/journal-templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAsBzD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAgBjE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAe5E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CA4BlE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAS9D"}
@@ -0,0 +1,93 @@
1
+ // ── CQ14: 4-beat anchor list — single source of truth ────────────────────────
2
+ const FOUR_BEAT_ANCHORS = ["Intent", "Reality", "Significance", "Lessons"];
3
+ const FOUR_BEAT_INSTRUCTION = `Produce exactly these four H2 sections in order:
4
+ ## Intent
5
+ ## Reality
6
+ ## Significance
7
+ ## Lessons
8
+
9
+ End your response with this footer line (no trailing space):
10
+ <!-- source_commits: <comma-separated list of short 7-char SHAs> -->`;
11
+ // ── CQ25: short-SHA helper — one place ───────────────────────────────────────
12
+ const shortSha = (sha) => sha.slice(0, 7);
13
+ /**
14
+ * Build a prompt asking an LLM to write a phase-level journal entry.
15
+ * Pure: no I/O, no env reads.
16
+ */
17
+ export function renderPhaseSummaryPrompt(phase) {
18
+ const commitLines = phase.commits
19
+ .map((c) => ` - ${shortSha(c.sha)}: ${c.subject}`)
20
+ .join("\n");
21
+ return `You are writing a developer journal entry for a phase of work.
22
+
23
+ Phase: ${phase.title}
24
+ Date range: ${phase.startDate} → ${phase.endDate}
25
+
26
+ Commits in this phase:
27
+ ${commitLines}
28
+
29
+ ${FOUR_BEAT_INSTRUCTION}
30
+
31
+ The source_commits footer must list these short SHAs: ${phase.commits.map((c) => shortSha(c.sha)).join(", ")}`;
32
+ }
33
+ /**
34
+ * Build a prompt asking an LLM to write a day-level journal entry.
35
+ * Pure: no I/O, no env reads.
36
+ */
37
+ export function renderEntryPrompt(date, commits) {
38
+ const commitLines = commits
39
+ .map((c) => ` - ${shortSha(c.sha)}: ${c.subject}`)
40
+ .join("\n");
41
+ return `You are writing a developer journal entry for a single day.
42
+
43
+ Date: ${date}
44
+
45
+ Commits on this day:
46
+ ${commitLines}
47
+
48
+ ${FOUR_BEAT_INSTRUCTION}
49
+
50
+ The source_commits footer must list these short SHAs: ${commits.map((c) => shortSha(c.sha)).join(", ")}`;
51
+ }
52
+ /**
53
+ * Validate that an LLM response contains all 4 H2 anchors in the required order.
54
+ * Returns { ok: true } on success, or { ok: false, reason } on failure.
55
+ */
56
+ export function validateLlmResponse(text) {
57
+ const normalized = text.replace(/\r\n/g, "\n");
58
+ // (d) Check each anchor is present before checking order
59
+ for (const beat of FOUR_BEAT_ANCHORS) {
60
+ const anchorRe = new RegExp(`^## ${beat}\\s*$`, "m");
61
+ if (!anchorRe.test(normalized)) {
62
+ return { ok: false, reason: `Missing anchor: ## ${beat}` };
63
+ }
64
+ }
65
+ // (e) Check anchors appear in the required order
66
+ const positions = FOUR_BEAT_ANCHORS.map((beat) => {
67
+ const idx = normalized.search(new RegExp(`^## ${beat}\\s*$`, "m"));
68
+ return [beat, idx];
69
+ });
70
+ for (let i = 1; i < positions.length; i++) {
71
+ const [prevBeat, prevIdx] = positions[i - 1];
72
+ const [curBeat, curIdx] = positions[i];
73
+ if (curIdx <= prevIdx) {
74
+ return {
75
+ ok: false,
76
+ reason: `Anchors out of order: ## ${prevBeat} must appear before ## ${curBeat}`,
77
+ };
78
+ }
79
+ }
80
+ return { ok: true };
81
+ }
82
+ /**
83
+ * Build a scaffold (placeholder) response for when no LLM provider is configured.
84
+ * Emits the exact 4-beat structure with TODO comments.
85
+ * Pure: no I/O.
86
+ */
87
+ export function buildScaffoldResponse(phase) {
88
+ const placeholder = "<!-- TODO: journal provider not configured -->";
89
+ const sourceCommits = phase.commits.map((c) => shortSha(c.sha)).join(", ");
90
+ const sections = FOUR_BEAT_ANCHORS.map((beat) => `## ${beat}\n${placeholder}`).join("\n\n");
91
+ return `${sections}\n\n<!-- source_commits: ${sourceCommits} -->`;
92
+ }
93
+ //# sourceMappingURL=journal-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journal-templates.js","sourceRoot":"","sources":["../../src/tools/journal-templates.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,8 @@ export declare const BUILTIN_PATTERNS: Record<string, {
18
18
  description: string;
19
19
  fileExcludePattern?: RegExp;
20
20
  fileIncludePattern?: RegExp;
21
+ severity?: "critical" | "warning" | "style";
22
+ postFilter?: (match: string) => boolean;
21
23
  }>;
22
24
  /**
23
25
  * Search for structural code patterns across indexed symbols.
@@ -1 +1 @@
1
- {"version":3,"file":"pattern-tools.d.ts","sourceRoot":"","sources":["../../src/tools/pattern-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB;AAID,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAynBA,CAAC;AAEF;;;GAGG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,GACA,OAAO,CAAC,aAAa,CAAC,CA2GxB;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,KAAK,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC,CAOD"}
1
+ {"version":3,"file":"pattern-tools.d.ts","sourceRoot":"","sources":["../../src/tools/pattern-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB;AAID,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;IAC5C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CACzC,CAuqBA,CAAC;AAEF;;;GAGG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,GACA,OAAO,CAAC,aAAa,CAAC,CAkIxB;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,KAAK,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC,CAOD"}
@@ -182,6 +182,52 @@ export const BUILTIN_PATTERNS = {
182
182
  description: "useMutation without invalidateQueries in onSuccess/onSettled — stale data remains in cache after mutation. Add queryClient.invalidateQueries() on success.",
183
183
  fileIncludePattern: /\.(tsx|jsx|ts)$/,
184
184
  },
185
+ // --- React Tier 5 (May 2026) — derived state, stale closures, context perf, security ---
186
+ "derived-state": {
187
+ regex: /const\s*\[\s*(\w+)\s*,\s*set\1\s*\]\s*=\s*useState\s*\(\s*props\.\1\s*\)[\s\S]{0,2000}?useEffect\s*\([\s\S]{0,500}?set\1\s*\(\s*props\.\1\s*\)/i,
188
+ description: "useState(props.X) + useEffect that syncs setX(props.X) — derived state anti-pattern. Lift state up or compute during render. NOTE: matches when state name follows setX for prop x. Custom-named setters (props.value → setDisplayValue) not detected. The /i flag is intentional — it catches cross-case variants like useState(props.Name) + setName(props.name).",
189
+ severity: "warning",
190
+ fileIncludePattern: /\.(tsx|jsx)$/,
191
+ },
192
+ "stale-closure-setstate": {
193
+ regex: /const\s*\[\s*(\w+)\s*,\s*set([A-Z]\w*)\s*\]\s*=\s*useState[\s\S]{0,3000}?\bset\2\s*\(\s*\1\s*[+\-*/]/,
194
+ description: "setState called with non-functional update referencing current state value (setX(X + n)) — risks stale closure in event handlers, timers, or async callbacks. Use functional form: setX(prev => prev + n). NOTE: requires standard [x, setX] = useState() naming; boolean toggles (setOpen(!open)) and broken functional updaters not detected.",
195
+ severity: "warning",
196
+ fileIncludePattern: /\.(tsx|jsx)$/,
197
+ },
198
+ "context-provider-value-inline": {
199
+ regex: /<\w+\.Provider\s+[^>]*\bvalue\s*=\s*\{\s*[\{\[]/,
200
+ description: "Context.Provider value is an inline object/array literal — new reference every render forces ALL consumers to re-render. Wrap in useMemo: value={useMemo(() => ({...}), [deps])}. NOTE: does not detect intermediate-variable form or destructured Provider.",
201
+ severity: "warning",
202
+ fileIncludePattern: /\.(tsx|jsx)$/,
203
+ },
204
+ "jsx-no-target-blank": {
205
+ regex: /<a\s+(?:(?!>)[\s\S]){0,500}?target\s*=\s*(?:["']_blank["']|\{\s*["']_blank["']\s*\})(?:(?!>)[\s\S]){0,500}?>/,
206
+ description: "<a target=\"_blank\"> without rel=\"noopener noreferrer\" — tabnabbing/window.opener security risk. Add rel=\"noopener noreferrer\". NOTE: matches both string and JSX-brace forms; postFilter requires whitespace before rel= to avoid URL false-positive.",
207
+ severity: "style",
208
+ fileIncludePattern: /\.(tsx|jsx)$/,
209
+ // require leading whitespace before `rel` (real attribute, not `?rel=` in URL)
210
+ // AND require rel value to contain BOTH `noopener` AND `noreferrer` as exact
211
+ // whitespace-separated tokens (so `noopenerx noreferrer` does NOT pass).
212
+ // Accepts string form `rel="..."` and JSX-brace-with-string-literal form
213
+ // `rel={"..."}` / `rel={'...'}`. Dynamic JSX expression form `rel={var}`
214
+ // remains a false-positive (cannot be resolved statically).
215
+ postFilter: (match) => {
216
+ const relMatch = /\srel\s*=\s*\{\s*["']([^"']*)["']\s*\}/.exec(match)
217
+ ?? /\srel\s*=\s*["']([^"']*)["']/.exec(match);
218
+ if (!relMatch)
219
+ return true; // no rel attribute → real positive
220
+ const tokens = new Set(relMatch[1].toLowerCase().split(/\s+/).filter(Boolean));
221
+ // safe only if both exact tokens present
222
+ return !(tokens.has("noopener") && tokens.has("noreferrer"));
223
+ },
224
+ },
225
+ "button-no-type": {
226
+ regex: /<button(?=[\s>])(?![^>]{0,500}\stype\s*=)[^>]{0,500}>/,
227
+ description: "<button> without explicit type attribute — defaults to type=\"submit\" which can unintentionally submit a form. Add type=\"button\" for non-submit buttons. NOTE: word-boundary lookahead `(?=[\\s>])` ensures HTML <button> only — not <button-group> or <ButtonIcon>. Negative lookahead `(?![^>]{0,500}\\stype\\s*=)` requires whitespace before type= (so data-type= correctly does NOT block the match).",
228
+ severity: "style",
229
+ fileIncludePattern: /\.(tsx|jsx)$/,
230
+ },
185
231
  "empty-catch": {
186
232
  regex: /catch\s*\([^)]*\)\s*\{\s*\}/,
187
233
  description: "Empty catch block — swallowed error (CQ8)",
@@ -653,12 +699,14 @@ export async function searchPatterns(repo, pattern, options) {
653
699
  let patternName;
654
700
  let fileExcludePattern;
655
701
  let fileIncludePattern;
702
+ let postFilter;
656
703
  const builtin = BUILTIN_PATTERNS[pattern];
657
704
  if (builtin) {
658
705
  regex = builtin.regex;
659
706
  patternName = `${pattern}: ${builtin.description}`;
660
707
  fileExcludePattern = builtin.fileExcludePattern;
661
708
  fileIncludePattern = builtin.fileIncludePattern;
709
+ postFilter = builtin.postFilter;
662
710
  }
663
711
  else {
664
712
  try {
@@ -688,6 +736,20 @@ export async function searchPatterns(repo, pattern, options) {
688
736
  scanned++;
689
737
  const match = regex.exec(sym.source);
690
738
  if (match) {
739
+ // postFilter (Tier 5): drop match if validator returns false. Errors are
740
+ // logged to stderr (with pattern name) so author bugs are diagnosable
741
+ // rather than silently producing false negatives.
742
+ if (postFilter) {
743
+ try {
744
+ if (!postFilter(match[0]))
745
+ continue;
746
+ }
747
+ catch (err) {
748
+ const msg = err instanceof Error ? err.message : String(err);
749
+ console.warn(`[search_patterns] postFilter for "${pattern}" threw: ${msg} — match dropped`);
750
+ continue;
751
+ }
752
+ }
691
753
  // Extract context: the matching line(s)
692
754
  const matchStart = match.index;
693
755
  const linesBefore = sym.source.slice(0, matchStart).split("\n").length;
@@ -730,6 +792,17 @@ export async function searchPatterns(repo, pattern, options) {
730
792
  scanned++;
731
793
  const match = regex.exec(content);
732
794
  if (match) {
795
+ if (postFilter) {
796
+ try {
797
+ if (!postFilter(match[0]))
798
+ continue;
799
+ }
800
+ catch (err) {
801
+ const msg = err instanceof Error ? err.message : String(err);
802
+ console.warn(`[search_patterns] postFilter for "${pattern}" threw: ${msg} — match dropped`);
803
+ continue;
804
+ }
805
+ }
733
806
  const linesBefore = content.slice(0, match.index).split("\n").length;
734
807
  const matchedText = match[0].split("\n")[0];
735
808
  matches.push({
@@ -1 +1 @@
1
- {"version":3,"file":"pattern-tools.js","sourceRoot":"","sources":["../../src/tools/pattern-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pattern-tools.js","sourceRoot":"","sources":["../../src/tools/pattern-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"perf-tools.d.ts","sourceRoot":"","sources":["../../src/tools/perf-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACxD;AAsJD,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAQ5F;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA,OAAO,CAAC,kBAAkB,CAAC,CAsF7B"}
1
+ {"version":3,"file":"perf-tools.d.ts","sourceRoot":"","sources":["../../src/tools/perf-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACxD;AAsJD,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAQ5F;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA,OAAO,CAAC,kBAAkB,CAAC,CA4F7B"}
@@ -170,7 +170,13 @@ export async function findPerfHotspots(repo, options) {
170
170
  fix_hint: meta.fix_hint,
171
171
  });
172
172
  };
173
+ let yieldCounter = 0;
173
174
  for (const sym of index.symbols) {
175
+ // Yield to event loop every 512 iterations so MCP transport stays responsive
176
+ // during long scans. Without this, 50k+ symbol indexes block the loop for
177
+ // seconds and MCP client closes the connection (-32000).
178
+ if ((++yieldCounter & 511) === 0)
179
+ await new Promise((r) => setImmediate(r));
174
180
  if (findings.length >= maxResults)
175
181
  break;
176
182
  if (!sym.source)
@@ -1 +1 @@
1
- {"version":3,"file":"perf-tools.js","sourceRoot":"","sources":["../../src/tools/perf-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"perf-tools.js","sourceRoot":"","sources":["../../src/tools/perf-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plan-turn-tools.d.ts","sourceRoot":"","sources":["../../src/tools/plan-turn-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB;AA4BD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,WAAW,CAwDrE;AAMD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAwBD,wCAAwC;AACxC,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AA2JD,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GACzD,OAAO,CAAC,cAAc,CAAC,CAuMzB;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAkFnE"}
1
+ {"version":3,"file":"plan-turn-tools.d.ts","sourceRoot":"","sources":["../../src/tools/plan-turn-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB;AA4BD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,WAAW,CAwDrE;AAMD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAwBD,wCAAwC;AACxC,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AA2JD,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GACzD,OAAO,CAAC,cAAc,CAAC,CAoNzB;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAkFnE"}
@@ -250,7 +250,10 @@ export async function planTurn(repo, query, options) {
250
250
  const maxTools = Math.min(MAX_TOOLS, options?.max_results ?? MAX_TOOLS);
251
251
  const skipSession = options?.skip_session === true;
252
252
  // --- 1. Guard: index present? -----------------------------------------
253
- const index = await getCodeIndex(repo);
253
+ // Skip freshness check: plan_turn is the front-door routing tool and must
254
+ // be fast (telemetry showed p99=31s when git HEAD moved + reindex stalled).
255
+ // A slightly stale ranking is acceptable; agents can refresh via index_file.
256
+ const index = await getCodeIndex(repo, { skipFreshness: true });
254
257
  if (!index) {
255
258
  return buildUnindexedResult(query, startedAt);
256
259
  }
@@ -305,11 +308,16 @@ export async function planTurn(repo, query, options) {
305
308
  }
306
309
  // --- 4. Build ranker context (parallel fetch) --------------------------
307
310
  const toolDefs = getToolDefinitions();
308
- const [usageFreq, frameworkTools, embeddings] = await Promise.all([
311
+ const [usageFreq, baseFrameworkTools, embeddings] = await Promise.all([
309
312
  getUsageFrequency(),
310
313
  detectAutoLoadToolsCached(process.cwd()).catch(() => []),
311
314
  getToolEmbeddings(toolDefs).catch(() => null),
312
315
  ]);
316
+ // Monorepo term boost (Task 13). Gated on the active index having
317
+ // `workspaces` populated (gemini fix in plan rev 5) so flat-repo searches
318
+ // for the word "package" don't suddenly rank workspace tools above
319
+ // search/symbol tools.
320
+ const frameworkTools = augmentFrameworkToolsForMonorepo(baseFrameworkTools, parsed.normalized, index);
313
321
  const embeddingAvailable = embeddings !== null && embeddings.size > 0;
314
322
  // --- 5. Run ranker per intent, merge results ---------------------------
315
323
  const intents = parsed.intents.length > 0 ? parsed.intents : [parsed.normalized];
@@ -505,4 +513,32 @@ export function formatPlanTurnResult(result) {
505
513
  }
506
514
  return lines.join("\n");
507
515
  }
516
+ // ---------------------------------------------------------------------------
517
+ // Monorepo term boost (Task 13 of monorepo workspace intelligence plan).
518
+ // ---------------------------------------------------------------------------
519
+ const MONOREPO_QUERY_TERMS = [
520
+ "monorepo",
521
+ "workspace",
522
+ "package",
523
+ "apps/",
524
+ "packages/",
525
+ "affected",
526
+ "turbo",
527
+ ];
528
+ const MONOREPO_TOOL_NAMES = [
529
+ "list_workspaces",
530
+ "workspace_graph",
531
+ "affected_workspaces",
532
+ "workspace_boundaries",
533
+ ];
534
+ function augmentFrameworkToolsForMonorepo(base, query, index) {
535
+ // Gate: only boost when the active index has workspaces populated.
536
+ if (!index.workspaces || index.workspaces.length === 0)
537
+ return base;
538
+ const ql = query.toLowerCase();
539
+ const hasMonorepoTerm = MONOREPO_QUERY_TERMS.some((t) => ql.includes(t));
540
+ if (!hasMonorepoTerm)
541
+ return base;
542
+ return [...base, ...MONOREPO_TOOL_NAMES];
543
+ }
508
544
  //# sourceMappingURL=plan-turn-tools.js.map