code-auditor-mcp 2.0.3 → 2.2.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.
Files changed (76) hide show
  1. package/README.md +41 -3
  2. package/dist/applyDataDirEnv.d.ts +2 -0
  3. package/dist/applyDataDirEnv.d.ts.map +1 -0
  4. package/dist/applyDataDirEnv.js +21 -0
  5. package/dist/applyDataDirEnv.js.map +1 -0
  6. package/dist/auditRunner.d.ts.map +1 -1
  7. package/dist/auditRunner.js +48 -13
  8. package/dist/auditRunner.js.map +1 -1
  9. package/dist/codeIndexDB-enhanced.d.ts +2 -3
  10. package/dist/codeIndexDB-enhanced.d.ts.map +1 -1
  11. package/dist/codeIndexDB-enhanced.js +41 -15
  12. package/dist/codeIndexDB-enhanced.js.map +1 -1
  13. package/dist/codeIndexDb.d.ts +30 -1
  14. package/dist/codeIndexDb.d.ts.map +1 -1
  15. package/dist/codeIndexDb.js +114 -15
  16. package/dist/codeIndexDb.js.map +1 -1
  17. package/dist/codeIndexService.d.ts +7 -3
  18. package/dist/codeIndexService.d.ts.map +1 -1
  19. package/dist/codeIndexService.js +14 -22
  20. package/dist/codeIndexService.js.map +1 -1
  21. package/dist/constants.d.ts +2 -0
  22. package/dist/constants.d.ts.map +1 -1
  23. package/dist/constants.js +6 -0
  24. package/dist/constants.js.map +1 -1
  25. package/dist/dataPaths.d.ts +10 -0
  26. package/dist/dataPaths.d.ts.map +1 -0
  27. package/dist/dataPaths.js +19 -0
  28. package/dist/dataPaths.js.map +1 -0
  29. package/dist/mcp-index.d.ts +3 -1
  30. package/dist/mcp-index.d.ts.map +1 -1
  31. package/dist/mcp-index.js +30 -8
  32. package/dist/mcp-index.js.map +1 -1
  33. package/dist/mcp-standalone.d.ts +1 -1
  34. package/dist/mcp-standalone.d.ts.map +1 -1
  35. package/dist/mcp-standalone.js +160 -55
  36. package/dist/mcp-standalone.js.map +1 -1
  37. package/dist/mcp-tools/projectTasks.d.ts +69 -0
  38. package/dist/mcp-tools/projectTasks.d.ts.map +1 -0
  39. package/dist/mcp-tools/projectTasks.js +129 -0
  40. package/dist/mcp-tools/projectTasks.js.map +1 -0
  41. package/dist/mcp-tools-shared.d.ts.map +1 -1
  42. package/dist/mcp-tools-shared.js +3 -3
  43. package/dist/mcp-tools-shared.js.map +1 -1
  44. package/dist/mcp-ui-simple.d.ts.map +1 -1
  45. package/dist/mcp-ui-simple.js +3 -2
  46. package/dist/mcp-ui-simple.js.map +1 -1
  47. package/dist/mcp.js +203 -61
  48. package/dist/mcp.js.map +1 -1
  49. package/dist/mcpAutoIndex.d.ts +2 -0
  50. package/dist/mcpAutoIndex.d.ts.map +1 -0
  51. package/dist/mcpAutoIndex.js +71 -0
  52. package/dist/mcpAutoIndex.js.map +1 -0
  53. package/dist/mcpDiagnostics.d.ts +11 -0
  54. package/dist/mcpDiagnostics.d.ts.map +1 -0
  55. package/dist/mcpDiagnostics.js +54 -0
  56. package/dist/mcpDiagnostics.js.map +1 -0
  57. package/dist/mcpToolErrors.d.ts +21 -0
  58. package/dist/mcpToolErrors.d.ts.map +1 -0
  59. package/dist/mcpToolErrors.js +81 -0
  60. package/dist/mcpToolErrors.js.map +1 -0
  61. package/dist/search/QueryParser.d.ts.map +1 -1
  62. package/dist/search/QueryParser.js +11 -12
  63. package/dist/search/QueryParser.js.map +1 -1
  64. package/dist/services/ProjectTaskRepository.d.ts +20 -0
  65. package/dist/services/ProjectTaskRepository.d.ts.map +1 -0
  66. package/dist/services/ProjectTaskRepository.js +96 -0
  67. package/dist/services/ProjectTaskRepository.js.map +1 -0
  68. package/dist/services/projectTaskHelpers.d.ts +23 -0
  69. package/dist/services/projectTaskHelpers.d.ts.map +1 -0
  70. package/dist/services/projectTaskHelpers.js +232 -0
  71. package/dist/services/projectTaskHelpers.js.map +1 -0
  72. package/dist/types/projectTask.d.ts +64 -0
  73. package/dist/types/projectTask.d.ts.map +1 -0
  74. package/dist/types/projectTask.js +6 -0
  75. package/dist/types/projectTask.js.map +1 -0
  76. package/package.json +34 -27
@@ -0,0 +1,71 @@
1
+ /**
2
+ * CLI harness: discover + extract functions + sync to index without MCP stdio.
3
+ * Usage: node dist/mcp-index.js --auto-index /path/to/project
4
+ */
5
+ import path from 'node:path';
6
+ import { createAuditRunner } from './auditRunner.js';
7
+ import { syncFileIndex } from './codeIndexService.js';
8
+ import { CodeIndexDB } from './codeIndexDB.js';
9
+ import { logMcpInfo } from './mcpDiagnostics.js';
10
+ export async function runAutoIndex(projectPath) {
11
+ const root = path.resolve(projectPath);
12
+ logMcpInfo('auto-index', 'start', {
13
+ projectPath: root,
14
+ cwd: process.cwd(),
15
+ dataDir: process.env.CODE_AUDITOR_DATA_DIR ?? '(default: cwd/.code-index)'
16
+ });
17
+ const db = CodeIndexDB.getInstance();
18
+ await db.initialize();
19
+ logMcpInfo('auto-index', 'database ready', {});
20
+ const runner = createAuditRunner({
21
+ projectRoot: root,
22
+ enabledAnalyzers: [],
23
+ indexFunctions: true,
24
+ minSeverity: 'warning',
25
+ verbose: false,
26
+ progressCallback: (p) => {
27
+ if (p.phase === 'function-indexing' &&
28
+ typeof p.current === 'number' &&
29
+ typeof p.total === 'number' &&
30
+ p.total > 0 &&
31
+ p.current % 50 !== 0 &&
32
+ p.current !== p.total) {
33
+ return;
34
+ }
35
+ logMcpInfo('auto-index', 'runner progress', {
36
+ phase: p.phase,
37
+ message: p.message,
38
+ analyzer: p.analyzer,
39
+ current: p.current,
40
+ total: p.total
41
+ });
42
+ }
43
+ });
44
+ const auditResult = await runner.run();
45
+ const map = auditResult.metadata.fileToFunctionsMap;
46
+ if (!map || Object.keys(map).length === 0) {
47
+ logMcpInfo('auto-index', 'no files to sync (empty fileToFunctionsMap)', {
48
+ filesAnalyzed: auditResult.metadata.filesAnalyzed
49
+ });
50
+ return;
51
+ }
52
+ const entries = Object.entries(map);
53
+ logMcpInfo('auto-index', 'syncing files to index', { fileCount: entries.length });
54
+ let synced = 0;
55
+ const syncStats = { added: 0, updated: 0, removed: 0 };
56
+ for (const [filePath, functions] of entries) {
57
+ synced++;
58
+ if (synced % 50 === 0 || synced === entries.length) {
59
+ logMcpInfo('auto-index', 'sync progress', { current: synced, total: entries.length });
60
+ }
61
+ const fileStats = await syncFileIndex(filePath, functions);
62
+ syncStats.added += fileStats.added;
63
+ syncStats.updated += fileStats.updated;
64
+ syncStats.removed += fileStats.removed;
65
+ }
66
+ logMcpInfo('auto-index', 'done', {
67
+ ...syncStats,
68
+ durationMs: auditResult.metadata.auditDuration
69
+ });
70
+ }
71
+ //# sourceMappingURL=mcpAutoIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpAutoIndex.js","sourceRoot":"","sources":["../src/mcpAutoIndex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare function logMcp(level: 'info' | 'warn' | 'debug', phase: string, message: string, detail?: Record<string, unknown>): void;
2
+ /** Always logged (high-signal milestones). */
3
+ export declare function logMcpInfo(phase: string, message: string, detail?: Record<string, unknown>): void;
4
+ export declare function logMcpDebug(phase: string, message: string, detail?: Record<string, unknown>): void;
5
+ export declare function isMcpDebugEnabled(): boolean;
6
+ /**
7
+ * Raw stderr (e.g. chalk-colored traces) — only when CODE_AUDITOR_DEBUG=1|true.
8
+ * Use for per-request JSON dumps and noisy dev traces; keep hot paths quiet by default.
9
+ */
10
+ export declare function mcpDebugStderr(...args: unknown[]): void;
11
+ //# sourceMappingURL=mcpDiagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpDiagnostics.d.ts","sourceRoot":"","sources":["../src/mcpDiagnostics.ts"],"names":[],"mappings":"AAsBA,wBAAgB,MAAM,CACpB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAChC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAYN;AAED,8CAA8C;AAC9C,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEjG;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAElG;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAGvD"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * MCP-safe diagnostics: always stderr (never stdout — stdio transport owns stdout).
3
+ * - CODE_AUDITOR_DEBUG=1|true — verbose traces (logMcpDebug, mcpDebugStderr request/audit noise).
4
+ * - CODE_AUDITOR_LOG_FILE=/path — append structured lines from logMcp/logMcpInfo.
5
+ */
6
+ import fs from 'node:fs';
7
+ const debugEnabled = process.env.CODE_AUDITOR_DEBUG === '1' ||
8
+ process.env.CODE_AUDITOR_DEBUG === 'true';
9
+ const logFilePath = process.env.CODE_AUDITOR_LOG_FILE?.trim();
10
+ function appendFileLine(line) {
11
+ if (!logFilePath)
12
+ return;
13
+ try {
14
+ fs.appendFileSync(logFilePath, line + '\n');
15
+ }
16
+ catch {
17
+ /* ignore */
18
+ }
19
+ }
20
+ export function logMcp(level, phase, message, detail) {
21
+ if (level === 'debug' && !debugEnabled)
22
+ return;
23
+ const ts = new Date().toISOString();
24
+ const pid = process.pid;
25
+ const extra = detail !== undefined && Object.keys(detail).length > 0 ? ` ${JSON.stringify(detail)}` : '';
26
+ const line = `[${ts}] [pid=${pid}] [code-auditor] [${level}] [${phase}] ${message}${extra}`;
27
+ if (level === 'warn') {
28
+ console.warn(line);
29
+ }
30
+ else {
31
+ console.error(line);
32
+ }
33
+ appendFileLine(line);
34
+ }
35
+ /** Always logged (high-signal milestones). */
36
+ export function logMcpInfo(phase, message, detail) {
37
+ logMcp('info', phase, message, detail);
38
+ }
39
+ export function logMcpDebug(phase, message, detail) {
40
+ logMcp('debug', phase, message, detail);
41
+ }
42
+ export function isMcpDebugEnabled() {
43
+ return debugEnabled;
44
+ }
45
+ /**
46
+ * Raw stderr (e.g. chalk-colored traces) — only when CODE_AUDITOR_DEBUG=1|true.
47
+ * Use for per-request JSON dumps and noisy dev traces; keep hot paths quiet by default.
48
+ */
49
+ export function mcpDebugStderr(...args) {
50
+ if (!debugEnabled)
51
+ return;
52
+ console.error(...args);
53
+ }
54
+ //# sourceMappingURL=mcpDiagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpDiagnostics.js","sourceRoot":"","sources":["../src/mcpDiagnostics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,YAAY,GAChB,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,GAAG;IACtC,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,CAAC;AAE5C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC;AAE9D,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,CAAC,WAAW;QAAE,OAAO;IACzB,IAAI,CAAC;QACH,EAAE,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,KAAgC,EAChC,KAAa,EACb,OAAe,EACf,MAAgC;IAEhC,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,YAAY;QAAE,OAAO;IAC/C,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,MAAM,KAAK,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzG,MAAM,IAAI,GAAG,IAAI,EAAE,UAAU,GAAG,qBAAqB,KAAK,MAAM,KAAK,KAAK,OAAO,GAAG,KAAK,EAAE,CAAC;IAC5F,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IACD,cAAc,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,OAAe,EAAE,MAAgC;IACzF,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,OAAe,EAAE,MAAgC;IAC1F,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAG,IAAe;IAC/C,IAAI,CAAC,YAAY;QAAE,OAAO;IAC1B,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AACzB,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Rich errors and MCP tool error payloads so clients can show actionable messages
3
+ * (missing paths, storage permissions, errno hints).
4
+ */
5
+ /** Error with structured `context` for MCP JSON responses */
6
+ export declare class ContextualError extends Error {
7
+ readonly context: Record<string, unknown>;
8
+ constructor(message: string, context: Record<string, unknown>, cause?: Error);
9
+ }
10
+ export declare function getErrnoCode(err: unknown): string | undefined;
11
+ /**
12
+ * Ensure audit `path` exists and is a file or directory; otherwise throw ContextualError.
13
+ */
14
+ export declare function assertAuditPathExists(auditPath: string): Promise<{
15
+ isFile: boolean;
16
+ }>;
17
+ /**
18
+ * Shape returned as JSON in MCP CallTool error content.
19
+ */
20
+ export declare function formatMcpToolErrorPayload(tool: string, error: unknown): Record<string, unknown>;
21
+ //# sourceMappingURL=mcpToolErrors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpToolErrors.d.ts","sourceRoot":"","sources":["../src/mcpToolErrors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,6DAA6D;AAC7D,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBADhD,OAAO,EAAE,MAAM,EACC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChD,KAAK,CAAC,EAAE,KAAK;CAKhB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAM7D;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAoC3F;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkB/F"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Rich errors and MCP tool error payloads so clients can show actionable messages
3
+ * (missing paths, storage permissions, errno hints).
4
+ */
5
+ import { promises as fs } from 'node:fs';
6
+ /** Error with structured `context` for MCP JSON responses */
7
+ export class ContextualError extends Error {
8
+ context;
9
+ constructor(message, context, cause) {
10
+ super(message, cause ? { cause } : undefined);
11
+ this.context = context;
12
+ this.name = 'ContextualError';
13
+ }
14
+ }
15
+ export function getErrnoCode(err) {
16
+ if (err && typeof err === 'object' && 'code' in err) {
17
+ const c = err.code;
18
+ return typeof c === 'string' ? c : undefined;
19
+ }
20
+ return undefined;
21
+ }
22
+ /**
23
+ * Ensure audit `path` exists and is a file or directory; otherwise throw ContextualError.
24
+ */
25
+ export async function assertAuditPathExists(auditPath) {
26
+ try {
27
+ const st = await fs.stat(auditPath);
28
+ if (!st.isFile() && !st.isDirectory()) {
29
+ throw new ContextualError(`Path is not a file or directory: ${auditPath}`, {
30
+ auditPath,
31
+ });
32
+ }
33
+ return { isFile: st.isFile() };
34
+ }
35
+ catch (e) {
36
+ if (e instanceof ContextualError)
37
+ throw e;
38
+ const code = getErrnoCode(e);
39
+ if (code === 'ENOENT') {
40
+ throw new ContextualError(`Audit path does not exist: ${auditPath}`, {
41
+ auditPath,
42
+ resolvedPath: auditPath,
43
+ errnoCode: code,
44
+ hint: 'Use an absolute path, or verify cwd — MCP servers often run with a different working directory than your editor project root.',
45
+ }, e instanceof Error ? e : undefined);
46
+ }
47
+ if (code === 'EACCES' || code === 'EPERM') {
48
+ throw new ContextualError(`Permission denied when accessing audit path: ${auditPath}`, {
49
+ auditPath,
50
+ errnoCode: code,
51
+ }, e instanceof Error ? e : undefined);
52
+ }
53
+ throw new ContextualError(`Cannot access audit path: ${auditPath} (${e instanceof Error ? e.message : String(e)})`, {
54
+ auditPath,
55
+ ...(code && { errnoCode: code }),
56
+ }, e instanceof Error ? e : undefined);
57
+ }
58
+ }
59
+ /**
60
+ * Shape returned as JSON in MCP CallTool error content.
61
+ */
62
+ export function formatMcpToolErrorPayload(tool, error) {
63
+ const base = { tool };
64
+ if (error instanceof ContextualError) {
65
+ return {
66
+ ...base,
67
+ error: error.message,
68
+ context: error.context,
69
+ };
70
+ }
71
+ if (error instanceof Error) {
72
+ const e = error;
73
+ return {
74
+ ...base,
75
+ error: error.message,
76
+ ...(typeof e.code === 'string' && e.code.length > 0 && { code: e.code }),
77
+ };
78
+ }
79
+ return { ...base, error: String(error) };
80
+ }
81
+ //# sourceMappingURL=mcpToolErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpToolErrors.js","sourceRoot":"","sources":["../src/mcpToolErrors.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"QueryParser.d.ts","sourceRoot":"","sources":["../../src/search/QueryParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC;;;;;;;;;;GAUG;AACH,qBAAa,WAAW;IAEtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CA6D9B;IAGF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAmCtB;IAEX;;;;OAIG;IACI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAgFxC;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IA0DtB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAuFxB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAoJ5B;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IA+BhB;;;;OAIG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAqB1C;;;;OAIG;IACI,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAK1C;AAGD,eAAO,MAAM,WAAW,aAAoB,CAAC"}
1
+ {"version":3,"file":"QueryParser.d.ts","sourceRoot":"","sources":["../../src/search/QueryParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC;;;;;;;;;;GAUG;AACH,qBAAa,WAAW;IAEtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CA6D9B;IAGF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAmCtB;IAEX;;;;OAIG;IACI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAgFxC;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IA0DtB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAuFxB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAoJ5B;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IA8BhB;;;;OAIG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAqB1C;;;;OAIG;IACI,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAK1C;AAGD,eAAO,MAAM,WAAW,aAAoB,CAAC"}
@@ -468,29 +468,28 @@ export class QueryParser {
468
468
  * @returns Array of tokens
469
469
  */
470
470
  tokenize(text) {
471
- // Split on whitespace and common delimiters, but preserve hyphenated words
471
+ // Split on whitespace first; do not lowercase before camelCase detection or
472
+ // identifiers like getUserData become opaque to /(?=[A-Z])/ splitting.
472
473
  const tokens = text
473
- .toLowerCase()
474
474
  .split(/\s+/)
475
- .filter(token => token.length > 0);
476
- // Further split camelCase and snake_case
475
+ .filter((token) => token.length > 0);
477
476
  const expandedTokens = [];
478
477
  for (const token of tokens) {
479
- // Split camelCase
480
- const camelCaseTokens = token.split(/(?=[A-Z])/).filter(t => t.length > 0);
478
+ const camelCaseTokens = token
479
+ .split(/(?=[A-Z])/)
480
+ .filter((t) => t.length > 0);
481
481
  if (camelCaseTokens.length > 1) {
482
- expandedTokens.push(token); // Keep original
483
- expandedTokens.push(...camelCaseTokens.map(t => t.toLowerCase()));
482
+ expandedTokens.push(token);
483
+ expandedTokens.push(...camelCaseTokens.map((t) => t.toLowerCase()));
484
484
  }
485
485
  else {
486
- // Split snake_case
487
- const snakeCaseTokens = token.split('_').filter(t => t.length > 0);
486
+ const snakeCaseTokens = token.split('_').filter((t) => t.length > 0);
488
487
  if (snakeCaseTokens.length > 1) {
489
- expandedTokens.push(token); // Keep original
488
+ expandedTokens.push(token.toLowerCase());
490
489
  expandedTokens.push(...snakeCaseTokens);
491
490
  }
492
491
  else {
493
- expandedTokens.push(token);
492
+ expandedTokens.push(token.toLowerCase());
494
493
  }
495
494
  }
496
495
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QueryParser.js","sourceRoot":"","sources":["../../src/search/QueryParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryParser.js","sourceRoot":"","sources":["../../src/search/QueryParser.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,OAAO,WAAW;IACtB,uDAAuD;IAC/C,MAAM,CAAU,QAAQ,GAA6B;QAC3D,2BAA2B;QAC3B,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;QACvE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;QACzE,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC;QACjF,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;QAClE,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;QACxD,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC;QAE7D,kBAAkB;QAClB,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC;QAChD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC;QAChE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC;QAChD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;QACjE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC;QAEzC,kBAAkB;QAClB,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;QAC5D,SAAS,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC;QAC9D,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;QAC/C,QAAQ,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC;QAC1D,MAAM,EAAE,CAAC,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,CAAC;QACxE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAC1D,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;QAC5D,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC;QAEzD,mBAAmB;QACnB,KAAK,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;QAC1D,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;QAC3C,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAEhD,mBAAmB;QACnB,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,CAAC;QACxD,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;QAC5C,OAAO,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;QAEpD,0BAA0B;QAC1B,WAAW,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;QACjE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;QACpE,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC;QAC/C,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,CAAC;QAE5D,iBAAiB;QACjB,OAAO,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC;QAC3D,MAAM,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,YAAY,CAAC;QACjD,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,CAAC;QAEvD,UAAU;QACV,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC;QAChE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;QAEzC,uBAAuB;QACvB,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC;QACpC,OAAO,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC;QACzC,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;QACzC,KAAK,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;QAEpD,8BAA8B;QAC9B,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC;QACpE,KAAK,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,CAAC;QACzC,WAAW,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;KACtD,CAAC;IAEF,gDAAgD;IACxC,MAAM,CAAU,SAAS,GAAG;QAClC,OAAO,EAAE,UAAU;QACnB,OAAO,EAAE,UAAU;QACnB,OAAO,EAAE,UAAU;QACnB,OAAO,EAAE,UAAU;QACnB,WAAW,EAAE,UAAU;QACvB,QAAQ,EAAE,YAAY;QACtB,YAAY,EAAE,YAAY;QAC1B,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,YAAY;QACxB,aAAa,EAAE,YAAY;QAC3B,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,WAAW;QACrB,SAAS,EAAE,WAAW;QACtB,QAAQ,EAAE,WAAW;QACrB,2BAA2B;QAC3B,YAAY,EAAE,eAAe;QAC7B,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,YAAY;QACvB,uBAAuB;QACvB,MAAM,EAAE,gBAAgB;QACxB,aAAa,EAAE,gBAAgB;QAC/B,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,eAAe;QACzB,WAAW,EAAE,kBAAkB;QAC/B,gBAAgB,EAAE,kBAAkB;QACpC,UAAU,EAAE,kBAAkB;QAC9B,aAAa,EAAE,iBAAiB;QAChC,eAAe,EAAE,iBAAiB;QAClC,gBAAgB,EAAE,kBAAkB;QACpC,cAAc,EAAE,kBAAkB;KAC1B,CAAC;IAEX;;;;OAIG;IACI,KAAK,CAAC,KAAa;QACxB,MAAM,MAAM,GAAgB;YAC1B,KAAK,EAAE,EAAE;YACT,aAAa,EAAE,EAAE;YACjB,OAAO,EAAE,EAAE;YACX,aAAa,EAAE,EAAE;YACjB,OAAO,EAAE,EAAE;YACX,YAAY,EAAE,SAAS;YACvB,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,KAAK;SAChB,CAAC;QAEF,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,4DAA4D;QAC5D,+DAA+D;QAC/D,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACjE,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAE7C,gEAAgE;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAE3C,2DAA2D;QAC3D,IAAI,cAAc,GAAG,YAAY,CAAC;QAClC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACvB,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAE7C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,gBAAgB;gBAChB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpB,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAChC,sCAAsC;oBACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACxC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBAC9C,sBAAsB;gBACtB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YACtB,CAAC;iBAAM,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;gBACpD,kBAAkB;gBAClB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;YACzB,CAAC;iBAAM,IAAI,KAAK,KAAK,gBAAgB,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;gBAClE,mCAAmC;gBACnC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAC7B,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;gBAC/B,CAAC;gBACD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,sBAAsB;gBACtB,MAAM,CAAC,aAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzB,4BAA4B;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACzC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,MAAM,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,aAAc,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAE9C,6CAA6C;QAC7C,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,YAAY,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACK,cAAc,CAAC,KAAa;QAClC,MAAM,OAAO,GAA+C,EAAE,CAAC;QAC/D,IAAI,CAAC,GAAG,CAAC,CAAC;QAEV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACxB,wCAAwC;YACxC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3B,MAAM,UAAU,GAAG,CAAC,CAAC;gBACrB,CAAC,EAAE,CAAC,CAAC,0BAA0B;gBAE/B,IAAI,KAAK,GAAG,EAAE,CAAC;gBACf,IAAI,MAAM,GAAG,KAAK,CAAC;gBAEnB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;oBACxB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;wBAC9C,0BAA0B;wBAC1B,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;4BACxD,6BAA6B;4BAC7B,KAAK,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;4BACtB,CAAC,IAAI,CAAC,CAAC;wBACT,CAAC;6BAAM,CAAC;4BACN,8CAA8C;4BAC9C,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;4BAClB,CAAC,EAAE,CAAC;wBACN,CAAC;oBACH,CAAC;yBAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;wBAClC,sBAAsB;wBACtB,MAAM,GAAG,IAAI,CAAC;wBACd,CAAC,EAAE,CAAC,CAAC,0BAA0B;wBAC/B,MAAM;oBACR,CAAC;yBAAM,CAAC;wBACN,oBAAoB;wBACpB,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;wBAClB,CAAC,EAAE,CAAC;oBACN,CAAC;gBACH,CAAC;gBAED,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC;wBACX,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;wBACxC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;qBACpB,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,8CAA8C;oBAC9C,OAAO,CAAC,IAAI,CAAC;wBACX,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC;wBACrC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;qBACpB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,CAAC,EAAE,CAAC;YACN,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACK,gBAAgB,CAAC,KAAa;QAIpC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,CAAC;QAEV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACxB,mCAAmC;YACnC,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAE1D,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC;gBACtD,MAAM,gBAAgB,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAErD,IAAI,QAAQ,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;oBACtC,uCAAuC;oBACvC,IAAI,eAAe,GAAG,gBAAgB,CAAC;oBACvC,IAAI,KAAK,GAAG,EAAE,CAAC;oBACf,IAAI,aAAa,GAAG,eAAe,CAAC;oBAEpC,IAAI,eAAe,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;wBACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC;wBAExC,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;4BACzC,oDAAoD;4BACpD,MAAM,SAAS,GAAG,QAAQ,CAAC;4BAC3B,eAAe,EAAE,CAAC,CAAC,0BAA0B;4BAC7C,IAAI,CAAC,GAAG,eAAe,CAAC;4BAExB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gCACxB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;oCAC9C,0BAA0B;oCAC1B,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;wCACxD,KAAK,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wCACtB,CAAC,IAAI,CAAC,CAAC;oCACT,CAAC;yCAAM,CAAC;wCACN,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;wCAClB,CAAC,EAAE,CAAC;oCACN,CAAC;gCACH,CAAC;qCAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oCAClC,sBAAsB;oCACtB,CAAC,EAAE,CAAC,CAAC,0BAA0B;oCAC/B,aAAa,GAAG,CAAC,CAAC;oCAClB,MAAM;gCACR,CAAC;qCAAM,CAAC;oCACN,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;oCAClB,CAAC,EAAE,CAAC;gCACN,CAAC;4BACH,CAAC;4BAED,IAAI,aAAa,KAAK,eAAe,EAAE,CAAC;gCACtC,sCAAsC;gCACtC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;gCACzC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;4BAC/B,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,0DAA0D;4BAC1D,IAAI,CAAC,GAAG,eAAe,CAAC;4BACxB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gCACvF,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;gCAClB,CAAC,EAAE,CAAC;4BACN,CAAC;4BACD,aAAa,GAAG,CAAC,CAAC;wBACpB,CAAC;oBACH,CAAC;oBAED,IAAI,KAAK,EAAE,CAAC;wBACV,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;wBAC/B,4DAA4D;wBAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;wBACpD,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC/E,CAAC;oBAED,CAAC,GAAG,aAAa,CAAC;gBACpB,CAAC;qBAAM,CAAC;oBACN,CAAC,EAAE,CAAC;gBACN,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,CAAC,EAAE,CAAC;YACN,CAAC;QACH,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAC/E,CAAC;IAED;;;;OAIG;IACK,oBAAoB,CAC1B,SAA8B,EAC9B,WAAwB;QAExB,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACpC,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,QAA8C,CAAC,CAAC;YAExF,QAAQ,SAAS,EAAE,CAAC;gBAClB,KAAK,UAAU;oBACb,WAAW,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACrC,MAAM;gBAER,KAAK,UAAU;oBACb,WAAW,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACrC,MAAM;gBAER,KAAK,UAAU;oBACb,WAAW,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACrC,MAAM;gBAER,KAAK,UAAU;oBACb,WAAW,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,CAAC;oBAC/E,MAAM;gBAER,KAAK,YAAY;oBACf,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACxB,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;wBACrE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC/B,WAAW,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;wBAChD,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBAC5C,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;4BAC5B,WAAW,CAAC,OAAO,CAAC,UAAU,GAAG;gCAC/B,GAAG,EAAE,eAAe;gCACpB,GAAG,EAAE,eAAe;6BACrB,CAAC;wBACJ,CAAC;oBACH,CAAC;oBACD,MAAM;gBAER,KAAK,WAAW;oBACd,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;wBACnC,WAAW,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;oBACrC,CAAC;oBACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;wBAC3B,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;4BACnD,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;wBAC7C,CAAC;6BAAM,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;4BAClC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC;wBAC3C,CAAC;oBACH,CAAC;oBACD,MAAM;gBAER,KAAK,YAAY;oBACf,wCAAwC;oBACxC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;wBAC9B,WAAW,CAAC,YAAY,GAAG,EAAE,CAAC;oBAChC,CAAC;oBACD,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC5C,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC9B,MAAM;gBAER,KAAK,YAAY;oBACf,mCAAmC;oBACnC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;wBAC9B,WAAW,CAAC,YAAY,GAAG,EAAE,CAAC;oBAChC,CAAC;oBACD,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC5C,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC9B,MAAM;gBAER,KAAK,eAAe;oBAClB,iCAAiC;oBACjC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;wBAClC,WAAW,CAAC,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACpC,CAAC;oBACD,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAC;oBACnD,MAAM;gBAER,KAAK,SAAS;oBACZ,6CAA6C;oBAC7C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;wBAClC,WAAW,CAAC,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACpC,CAAC;oBACD,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;oBAC7C,MAAM;gBAER,KAAK,SAAS;oBACZ,4CAA4C;oBAC5C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;wBAClC,WAAW,CAAC,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACpC,CAAC;oBACD,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;oBAC7C,MAAM;gBAER,KAAK,YAAY;oBACf,gDAAgD;oBAChD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;wBAClC,WAAW,CAAC,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACpC,CAAC;oBACD,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC;oBAChD,MAAM;gBAER,KAAK,gBAAgB;oBACnB,sCAAsC;oBACtC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;wBAClC,WAAW,CAAC,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACpC,CAAC;oBACD,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;oBACpD,MAAM;gBAER,KAAK,eAAe;oBAClB,+CAA+C;oBAC/C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;wBAClC,WAAW,CAAC,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACpC,CAAC;oBACD,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAC;oBACnD,MAAM;gBAER,KAAK,kBAAkB;oBACrB,8CAA8C;oBAC9C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;wBAClC,WAAW,CAAC,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACpC,CAAC;oBACD,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,GAAG,KAAK,CAAC;oBACtD,MAAM;gBAER,KAAK,iBAAiB;oBACpB,qCAAqC;oBACrC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;wBAClC,WAAW,CAAC,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACpC,CAAC;oBACD,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,GAAG,KAAK,CAAC;oBACrD,MAAM;gBAER,KAAK,kBAAkB;oBACrB,8CAA8C;oBAC9C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;wBAClC,WAAW,CAAC,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACpC,CAAC;oBACD,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC;oBACrD,MAAM;YACV,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,QAAQ,CAAC,IAAY;QAC3B,4EAA4E;QAC5E,uEAAuE;QACvE,MAAM,MAAM,GAAG,IAAI;aAChB,KAAK,CAAC,KAAK,CAAC;aACZ,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEvC,MAAM,cAAc,GAAa,EAAE,CAAC;QAEpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,eAAe,GAAG,KAAK;iBAC1B,KAAK,CAAC,WAAW,CAAC;iBAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/B,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3B,cAAc,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACtE,CAAC;iBAAM,CAAC;gBACN,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACrE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;oBACzC,cAAc,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACN,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,IAAY;QAC7B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAErC,gCAAgC;QAChC,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,gDAAgD;QAChD,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjE,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,yCAAyC;gBACzC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,KAAa;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;;AAGH,8CAA8C;AAC9C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Loki persistence for project tasks. Keeps CodeIndexDB from owning task CRUD logic.
3
+ */
4
+ import type { Collection } from 'lokijs';
5
+ import type { CreateProjectTaskInput, ProjectTask, ProjectTaskDocument, ProjectTaskSource, ProjectTaskStatus } from '../types/projectTask.js';
6
+ export declare class ProjectTaskRepository {
7
+ private readonly getTasksCollection;
8
+ private readonly persist;
9
+ constructor(getTasksCollection: () => Collection<ProjectTaskDocument>, persist: () => void);
10
+ create(input: CreateProjectTaskInput): ProjectTask;
11
+ getById(taskId: string): ProjectTask | null;
12
+ list(projectPath: string, options?: {
13
+ status?: ProjectTaskStatus;
14
+ source?: ProjectTaskSource;
15
+ limit?: number;
16
+ }): ProjectTask[];
17
+ update(taskId: string, patch: unknown): ProjectTask | null;
18
+ delete(taskId: string): boolean;
19
+ }
20
+ //# sourceMappingURL=ProjectTaskRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectTaskRepository.d.ts","sourceRoot":"","sources":["../../src/services/ProjectTaskRepository.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGzC,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAajC,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,kBAAkB,EAAE,MAAM,UAAU,CAAC,mBAAmB,CAAC,EACzD,OAAO,EAAE,MAAM,IAAI;IAGtC,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,WAAW;IAqClD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAK3C,IAAI,CACF,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,iBAAiB,CAAC;QAC3B,MAAM,CAAC,EAAE,iBAAiB,CAAC;QAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,WAAW,EAAE;IAyBhB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI;IAa1D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CAShC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Loki persistence for project tasks. Keeps CodeIndexDB from owning task CRUD logic.
3
+ */
4
+ import path from 'path';
5
+ import { randomUUID } from 'crypto';
6
+ import { applyProjectTaskPatch, coerceSortOrder, normalizeStringList, normalizeTaskPriority, normalizeTaskSource, normalizeTaskStatus, sanitizeUpdatePatch, serializeProjectTask, storedSortOrder } from './projectTaskHelpers.js';
7
+ export class ProjectTaskRepository {
8
+ getTasksCollection;
9
+ persist;
10
+ constructor(getTasksCollection, persist) {
11
+ this.getTasksCollection = getTasksCollection;
12
+ this.persist = persist;
13
+ }
14
+ create(input) {
15
+ const projectPath = path.resolve(input.projectPath);
16
+ const now = new Date().toISOString();
17
+ const status = normalizeTaskStatus(input.status, 'pending');
18
+ const source = normalizeTaskSource(input.source, 'manual');
19
+ const sortOrder = coerceSortOrder(input.sortOrder);
20
+ const blockedBy = normalizeStringList(input.blockedBy);
21
+ const relatedFiles = normalizeStringList(input.relatedFiles);
22
+ const relatedSymbols = normalizeStringList(input.relatedSymbols);
23
+ const priority = normalizeTaskPriority(input.priority);
24
+ const doc = {
25
+ taskId: randomUUID(),
26
+ projectPath,
27
+ title: input.title.trim(),
28
+ ...(input.description !== undefined && { description: input.description }),
29
+ status,
30
+ source,
31
+ sortOrder,
32
+ blockedBy,
33
+ ...(input.dueAt !== undefined && {
34
+ dueAt: input.dueAt === null ? undefined : input.dueAt
35
+ }),
36
+ relatedFiles,
37
+ relatedSymbols,
38
+ ...(priority !== undefined && { priority }),
39
+ ...(input.labels !== undefined && { labels: input.labels }),
40
+ ...(input.metadata !== undefined && { metadata: input.metadata }),
41
+ ...(input.parentTaskId !== undefined && { parentTaskId: input.parentTaskId }),
42
+ createdAt: now,
43
+ updatedAt: now,
44
+ ...(status === 'done' && { completedAt: now })
45
+ };
46
+ this.getTasksCollection().insert(doc);
47
+ this.persist();
48
+ return serializeProjectTask(doc);
49
+ }
50
+ getById(taskId) {
51
+ const found = this.getTasksCollection().findOne({ taskId });
52
+ return found ? serializeProjectTask(found) : null;
53
+ }
54
+ list(projectPath, options) {
55
+ const resolved = path.resolve(projectPath);
56
+ let rows = this.getTasksCollection().find({ projectPath: resolved });
57
+ if (options?.status) {
58
+ rows = rows.filter((r) => r.status === options.status);
59
+ }
60
+ if (options?.source) {
61
+ rows = rows.filter((r) => normalizeTaskSource(r.source, 'manual') === options.source);
62
+ }
63
+ rows.sort((a, b) => {
64
+ const ao = storedSortOrder(a);
65
+ const bo = storedSortOrder(b);
66
+ if (ao !== bo) {
67
+ return ao - bo;
68
+ }
69
+ return (new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime());
70
+ });
71
+ const cap = Math.min(Math.max(options?.limit ?? 500, 1), 1000);
72
+ return rows.slice(0, cap).map((r) => serializeProjectTask(r));
73
+ }
74
+ update(taskId, patch) {
75
+ const doc = this.getTasksCollection().findOne({ taskId });
76
+ if (!doc) {
77
+ return null;
78
+ }
79
+ const now = new Date().toISOString();
80
+ const safe = sanitizeUpdatePatch(patch);
81
+ applyProjectTaskPatch(doc, safe, now);
82
+ this.getTasksCollection().update(doc);
83
+ this.persist();
84
+ return serializeProjectTask(doc);
85
+ }
86
+ delete(taskId) {
87
+ const doc = this.getTasksCollection().findOne({ taskId });
88
+ if (!doc) {
89
+ return false;
90
+ }
91
+ this.getTasksCollection().remove(doc);
92
+ this.persist();
93
+ return true;
94
+ }
95
+ }
96
+ //# sourceMappingURL=ProjectTaskRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectTaskRepository.js","sourceRoot":"","sources":["../../src/services/ProjectTaskRepository.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAQpC,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EAChB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,OAAO,qBAAqB;IAEb;IACA;IAFnB,YACmB,kBAAyD,EACzD,OAAmB;QADnB,uBAAkB,GAAlB,kBAAkB,CAAuC;QACzD,YAAO,GAAP,OAAO,CAAY;IACnC,CAAC;IAEJ,MAAM,CAAC,KAA6B;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC7D,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,GAAG,GAAwB;YAC/B,MAAM,EAAE,UAAU,EAAE;YACpB,WAAW;YACX,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;YACzB,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;YAC1E,MAAM;YACN,MAAM;YACN,SAAS;YACT,SAAS;YACT,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI;gBAC/B,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;aACtD,CAAC;YACF,YAAY;YACZ,cAAc;YACd,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3C,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3D,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjE,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;YAC7E,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;SAC/C,CAAC;QACF,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,MAAc;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5D,OAAO,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpD,CAAC;IAED,IAAI,CACF,WAAmB,EACnB,OAIC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrE,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,IAAI,GAAG,IAAI,CAAC,MAAM,CAChB,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,OAAO,CAAC,MAAM,CAClE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACjB,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACd,OAAO,EAAE,GAAG,EAAE,CAAC;YACjB,CAAC;YACD,OAAO,CACL,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAClE,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,KAAc;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Pure helpers for project tasks — normalization, serialization, patch application.
3
+ * Keeps CodeIndexDB and MCP handlers thin (Single Responsibility).
4
+ */
5
+ import type { ProjectTask, ProjectTaskDocument, ProjectTaskPriority, ProjectTaskSource, ProjectTaskStatus, UpdateProjectTaskPatch } from '../types/projectTask.js';
6
+ export declare const PROJECT_TASK_STATUSES: readonly ProjectTaskStatus[];
7
+ export declare const PROJECT_TASK_SOURCES: readonly ProjectTaskSource[];
8
+ export declare function normalizeTaskStatus(value: unknown, fallback: ProjectTaskStatus): ProjectTaskStatus;
9
+ export declare function normalizeTaskSource(value: unknown, fallback: ProjectTaskSource): ProjectTaskSource;
10
+ export declare function normalizeTaskPriority(value: unknown): ProjectTaskPriority | undefined;
11
+ export declare function normalizeStringList(value: unknown): string[];
12
+ export declare function coerceSortOrder(value: unknown): number;
13
+ export declare function storedSortOrder(doc: ProjectTaskDocument): number;
14
+ /**
15
+ * API shape for stored rows (legacy docs may omit structured fields).
16
+ */
17
+ export declare function serializeProjectTask(doc: ProjectTaskDocument): ProjectTask;
18
+ /**
19
+ * Builds a typed patch from MCP/JSON input — ignores unknown keys (no arbitrary spread onto DB).
20
+ */
21
+ export declare function sanitizeUpdatePatch(raw: unknown): UpdateProjectTaskPatch;
22
+ export declare function applyProjectTaskPatch(doc: ProjectTaskDocument, patch: UpdateProjectTaskPatch, nowIso: string): void;
23
+ //# sourceMappingURL=projectTaskHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectTaskHelpers.d.ts","sourceRoot":"","sources":["../../src/services/projectTaskHelpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,qBAAqB,EAAE,SAAS,iBAAiB,EAMpD,CAAC;AAEX,eAAO,MAAM,oBAAoB,EAAE,SAAS,iBAAiB,EAInD,CAAC;AAIX,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,iBAAiB,GAC1B,iBAAiB,CAQnB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,iBAAiB,GAC1B,iBAAiB,CAQnB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,GACb,mBAAmB,GAAG,SAAS,CAQjC;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAK5D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKtD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,mBAAmB,GAAG,WAAW,CAU1E;AAkBD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB,CAkGxE;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,mBAAmB,EACxB,KAAK,EAAE,sBAAsB,EAC7B,MAAM,EAAE,MAAM,GACb,IAAI,CAiDN"}