codeguardian-mcp 1.0.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 (335) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +348 -0
  3. package/dist/agent/agentTools.d.ts +26 -0
  4. package/dist/agent/agentTools.d.ts.map +1 -0
  5. package/dist/agent/agentTools.js +699 -0
  6. package/dist/agent/agentTools.js.map +1 -0
  7. package/dist/agent/autoValidator.d.ts +110 -0
  8. package/dist/agent/autoValidator.d.ts.map +1 -0
  9. package/dist/agent/autoValidator.js +964 -0
  10. package/dist/agent/autoValidator.js.map +1 -0
  11. package/dist/agent/fileWatcher.d.ts +28 -0
  12. package/dist/agent/fileWatcher.d.ts.map +1 -0
  13. package/dist/agent/fileWatcher.js +88 -0
  14. package/dist/agent/fileWatcher.js.map +1 -0
  15. package/dist/agent/guardianPersistence.d.ts +98 -0
  16. package/dist/agent/guardianPersistence.d.ts.map +1 -0
  17. package/dist/agent/guardianPersistence.js +296 -0
  18. package/dist/agent/guardianPersistence.js.map +1 -0
  19. package/dist/agent/mcpNotifications.d.ts +38 -0
  20. package/dist/agent/mcpNotifications.d.ts.map +1 -0
  21. package/dist/agent/mcpNotifications.js +81 -0
  22. package/dist/agent/mcpNotifications.js.map +1 -0
  23. package/dist/analyzers/aiPatterns.d.ts +16 -0
  24. package/dist/analyzers/aiPatterns.d.ts.map +1 -0
  25. package/dist/analyzers/aiPatterns.js +103 -0
  26. package/dist/analyzers/aiPatterns.js.map +1 -0
  27. package/dist/analyzers/antiPatterns.d.ts +60 -0
  28. package/dist/analyzers/antiPatterns.d.ts.map +1 -0
  29. package/dist/analyzers/antiPatterns.js +198 -0
  30. package/dist/analyzers/antiPatterns.js.map +1 -0
  31. package/dist/analyzers/builtinTypes.d.ts +18 -0
  32. package/dist/analyzers/builtinTypes.d.ts.map +1 -0
  33. package/dist/analyzers/builtinTypes.js +1275 -0
  34. package/dist/analyzers/builtinTypes.js.map +1 -0
  35. package/dist/analyzers/complexity.d.ts +14 -0
  36. package/dist/analyzers/complexity.d.ts.map +1 -0
  37. package/dist/analyzers/complexity.js +610 -0
  38. package/dist/analyzers/complexity.js.map +1 -0
  39. package/dist/analyzers/findingVerifier.d.ts +59 -0
  40. package/dist/analyzers/findingVerifier.d.ts.map +1 -0
  41. package/dist/analyzers/findingVerifier.js +1169 -0
  42. package/dist/analyzers/findingVerifier.js.map +1 -0
  43. package/dist/analyzers/impactAnalyzer.d.ts +53 -0
  44. package/dist/analyzers/impactAnalyzer.d.ts.map +1 -0
  45. package/dist/analyzers/impactAnalyzer.js +152 -0
  46. package/dist/analyzers/impactAnalyzer.js.map +1 -0
  47. package/dist/analyzers/languageDetector.d.ts +48 -0
  48. package/dist/analyzers/languageDetector.d.ts.map +1 -0
  49. package/dist/analyzers/languageDetector.js +404 -0
  50. package/dist/analyzers/languageDetector.js.map +1 -0
  51. package/dist/analyzers/parsers/incrementalParser.d.ts +53 -0
  52. package/dist/analyzers/parsers/incrementalParser.d.ts.map +1 -0
  53. package/dist/analyzers/parsers/incrementalParser.js +193 -0
  54. package/dist/analyzers/parsers/incrementalParser.js.map +1 -0
  55. package/dist/analyzers/parsers/scopeResolver.d.ts +92 -0
  56. package/dist/analyzers/parsers/scopeResolver.d.ts.map +1 -0
  57. package/dist/analyzers/parsers/scopeResolver.js +324 -0
  58. package/dist/analyzers/parsers/scopeResolver.js.map +1 -0
  59. package/dist/analyzers/parsers/semanticIndex.d.ts +127 -0
  60. package/dist/analyzers/parsers/semanticIndex.d.ts.map +1 -0
  61. package/dist/analyzers/parsers/semanticIndex.js +429 -0
  62. package/dist/analyzers/parsers/semanticIndex.js.map +1 -0
  63. package/dist/analyzers/parsers/sessionDiffAnalyzer.d.ts +42 -0
  64. package/dist/analyzers/parsers/sessionDiffAnalyzer.d.ts.map +1 -0
  65. package/dist/analyzers/parsers/sessionDiffAnalyzer.js +233 -0
  66. package/dist/analyzers/parsers/sessionDiffAnalyzer.js.map +1 -0
  67. package/dist/analyzers/parsers/treeSitterParser.d.ts +76 -0
  68. package/dist/analyzers/parsers/treeSitterParser.d.ts.map +1 -0
  69. package/dist/analyzers/parsers/treeSitterParser.js +709 -0
  70. package/dist/analyzers/parsers/treeSitterParser.js.map +1 -0
  71. package/dist/analyzers/relevanceScorer.d.ts +43 -0
  72. package/dist/analyzers/relevanceScorer.d.ts.map +1 -0
  73. package/dist/analyzers/relevanceScorer.js +200 -0
  74. package/dist/analyzers/relevanceScorer.js.map +1 -0
  75. package/dist/analyzers/standardLibrary.d.ts +22 -0
  76. package/dist/analyzers/standardLibrary.d.ts.map +1 -0
  77. package/dist/analyzers/standardLibrary.js +211 -0
  78. package/dist/analyzers/standardLibrary.js.map +1 -0
  79. package/dist/analyzers/symbolGraph.d.ts +30 -0
  80. package/dist/analyzers/symbolGraph.d.ts.map +1 -0
  81. package/dist/analyzers/symbolGraph.js +380 -0
  82. package/dist/analyzers/symbolGraph.js.map +1 -0
  83. package/dist/analyzers/symbolTable.d.ts +18 -0
  84. package/dist/analyzers/symbolTable.d.ts.map +1 -0
  85. package/dist/analyzers/symbolTable.js +176 -0
  86. package/dist/analyzers/symbolTable.js.map +1 -0
  87. package/dist/analyzers/typeChecker.d.ts +13 -0
  88. package/dist/analyzers/typeChecker.d.ts.map +1 -0
  89. package/dist/analyzers/typeChecker.js +580 -0
  90. package/dist/analyzers/typeChecker.js.map +1 -0
  91. package/dist/analyzers/usagePatterns.d.ts +42 -0
  92. package/dist/analyzers/usagePatterns.d.ts.map +1 -0
  93. package/dist/analyzers/usagePatterns.js +75 -0
  94. package/dist/analyzers/usagePatterns.js.map +1 -0
  95. package/dist/api-contract/context/backend.d.ts +19 -0
  96. package/dist/api-contract/context/backend.d.ts.map +1 -0
  97. package/dist/api-contract/context/backend.js +64 -0
  98. package/dist/api-contract/context/backend.js.map +1 -0
  99. package/dist/api-contract/context/contract.d.ts +34 -0
  100. package/dist/api-contract/context/contract.d.ts.map +1 -0
  101. package/dist/api-contract/context/contract.js +306 -0
  102. package/dist/api-contract/context/contract.js.map +1 -0
  103. package/dist/api-contract/context/frontend.d.ts +19 -0
  104. package/dist/api-contract/context/frontend.d.ts.map +1 -0
  105. package/dist/api-contract/context/frontend.js +64 -0
  106. package/dist/api-contract/context/frontend.js.map +1 -0
  107. package/dist/api-contract/detector.d.ts +28 -0
  108. package/dist/api-contract/detector.d.ts.map +1 -0
  109. package/dist/api-contract/detector.js +393 -0
  110. package/dist/api-contract/detector.js.map +1 -0
  111. package/dist/api-contract/extractors/python.d.ts +32 -0
  112. package/dist/api-contract/extractors/python.d.ts.map +1 -0
  113. package/dist/api-contract/extractors/python.js +521 -0
  114. package/dist/api-contract/extractors/python.js.map +1 -0
  115. package/dist/api-contract/extractors/pythonAstUtils.d.ts +44 -0
  116. package/dist/api-contract/extractors/pythonAstUtils.d.ts.map +1 -0
  117. package/dist/api-contract/extractors/pythonAstUtils.js +489 -0
  118. package/dist/api-contract/extractors/pythonAstUtils.js.map +1 -0
  119. package/dist/api-contract/extractors/tsAstUtils.d.ts +47 -0
  120. package/dist/api-contract/extractors/tsAstUtils.d.ts.map +1 -0
  121. package/dist/api-contract/extractors/tsAstUtils.js +173 -0
  122. package/dist/api-contract/extractors/tsAstUtils.js.map +1 -0
  123. package/dist/api-contract/extractors/typescript.d.ts +32 -0
  124. package/dist/api-contract/extractors/typescript.d.ts.map +1 -0
  125. package/dist/api-contract/extractors/typescript.js +666 -0
  126. package/dist/api-contract/extractors/typescript.js.map +1 -0
  127. package/dist/api-contract/index.d.ts +104 -0
  128. package/dist/api-contract/index.d.ts.map +1 -0
  129. package/dist/api-contract/index.js +232 -0
  130. package/dist/api-contract/index.js.map +1 -0
  131. package/dist/api-contract/types.d.ts +151 -0
  132. package/dist/api-contract/types.d.ts.map +1 -0
  133. package/dist/api-contract/types.js +19 -0
  134. package/dist/api-contract/types.js.map +1 -0
  135. package/dist/api-contract/validators/endpoint.d.ts +21 -0
  136. package/dist/api-contract/validators/endpoint.d.ts.map +1 -0
  137. package/dist/api-contract/validators/endpoint.js +224 -0
  138. package/dist/api-contract/validators/endpoint.js.map +1 -0
  139. package/dist/api-contract/validators/index.d.ts +40 -0
  140. package/dist/api-contract/validators/index.d.ts.map +1 -0
  141. package/dist/api-contract/validators/index.js +875 -0
  142. package/dist/api-contract/validators/index.js.map +1 -0
  143. package/dist/api-contract/validators/parameter.d.ts +17 -0
  144. package/dist/api-contract/validators/parameter.d.ts.map +1 -0
  145. package/dist/api-contract/validators/parameter.js +250 -0
  146. package/dist/api-contract/validators/parameter.js.map +1 -0
  147. package/dist/api-contract/validators/type.d.ts +38 -0
  148. package/dist/api-contract/validators/type.d.ts.map +1 -0
  149. package/dist/api-contract/validators/type.js +244 -0
  150. package/dist/api-contract/validators/type.js.map +1 -0
  151. package/dist/context/apiContract/complexTypeSupport.d.ts +83 -0
  152. package/dist/context/apiContract/complexTypeSupport.d.ts.map +1 -0
  153. package/dist/context/apiContract/complexTypeSupport.js +665 -0
  154. package/dist/context/apiContract/complexTypeSupport.js.map +1 -0
  155. package/dist/context/apiContract/graphqlSupport.d.ts +105 -0
  156. package/dist/context/apiContract/graphqlSupport.d.ts.map +1 -0
  157. package/dist/context/apiContract/graphqlSupport.js +671 -0
  158. package/dist/context/apiContract/graphqlSupport.js.map +1 -0
  159. package/dist/context/apiContract/index.d.ts +14 -0
  160. package/dist/context/apiContract/index.d.ts.map +1 -0
  161. package/dist/context/apiContract/index.js +17 -0
  162. package/dist/context/apiContract/index.js.map +1 -0
  163. package/dist/context/apiContract/webSocketSupport.d.ts +104 -0
  164. package/dist/context/apiContract/webSocketSupport.d.ts.map +1 -0
  165. package/dist/context/apiContract/webSocketSupport.js +465 -0
  166. package/dist/context/apiContract/webSocketSupport.js.map +1 -0
  167. package/dist/context/apiContractContext.d.ts +15 -0
  168. package/dist/context/apiContractContext.d.ts.map +1 -0
  169. package/dist/context/apiContractContext.js +979 -0
  170. package/dist/context/apiContractContext.js.map +1 -0
  171. package/dist/context/apiContractExtraction.d.ts +52 -0
  172. package/dist/context/apiContractExtraction.d.ts.map +1 -0
  173. package/dist/context/apiContractExtraction.js +438 -0
  174. package/dist/context/apiContractExtraction.js.map +1 -0
  175. package/dist/context/contextLineage.d.ts +79 -0
  176. package/dist/context/contextLineage.d.ts.map +1 -0
  177. package/dist/context/contextLineage.js +259 -0
  178. package/dist/context/contextLineage.js.map +1 -0
  179. package/dist/context/contextOrchestrator.d.ts +57 -0
  180. package/dist/context/contextOrchestrator.d.ts.map +1 -0
  181. package/dist/context/contextOrchestrator.js +162 -0
  182. package/dist/context/contextOrchestrator.js.map +1 -0
  183. package/dist/context/intentTracker.d.ts +73 -0
  184. package/dist/context/intentTracker.d.ts.map +1 -0
  185. package/dist/context/intentTracker.js +168 -0
  186. package/dist/context/intentTracker.js.map +1 -0
  187. package/dist/context/projectContext.d.ts +219 -0
  188. package/dist/context/projectContext.d.ts.map +1 -0
  189. package/dist/context/projectContext.js +1984 -0
  190. package/dist/context/projectContext.js.map +1 -0
  191. package/dist/prompts/index.d.ts +17 -0
  192. package/dist/prompts/index.d.ts.map +1 -0
  193. package/dist/prompts/index.js +260 -0
  194. package/dist/prompts/index.js.map +1 -0
  195. package/dist/prompts/library.d.ts +51 -0
  196. package/dist/prompts/library.d.ts.map +1 -0
  197. package/dist/prompts/library.js +65 -0
  198. package/dist/prompts/library.js.map +1 -0
  199. package/dist/prompts/templates.d.ts +44 -0
  200. package/dist/prompts/templates.d.ts.map +1 -0
  201. package/dist/prompts/templates.js +97 -0
  202. package/dist/prompts/templates.js.map +1 -0
  203. package/dist/queue/jobPersistence.d.ts +46 -0
  204. package/dist/queue/jobPersistence.d.ts.map +1 -0
  205. package/dist/queue/jobPersistence.js +158 -0
  206. package/dist/queue/jobPersistence.js.map +1 -0
  207. package/dist/queue/jobQueue.d.ts +116 -0
  208. package/dist/queue/jobQueue.d.ts.map +1 -0
  209. package/dist/queue/jobQueue.js +275 -0
  210. package/dist/queue/jobQueue.js.map +1 -0
  211. package/dist/queue/validationJob.d.ts +69 -0
  212. package/dist/queue/validationJob.d.ts.map +1 -0
  213. package/dist/queue/validationJob.js +435 -0
  214. package/dist/queue/validationJob.js.map +1 -0
  215. package/dist/resources/index.d.ts +15 -0
  216. package/dist/resources/index.d.ts.map +1 -0
  217. package/dist/resources/index.js +328 -0
  218. package/dist/resources/index.js.map +1 -0
  219. package/dist/resources/validationReportStore.d.ts +170 -0
  220. package/dist/resources/validationReportStore.d.ts.map +1 -0
  221. package/dist/resources/validationReportStore.js +515 -0
  222. package/dist/resources/validationReportStore.js.map +1 -0
  223. package/dist/server.d.ts +12 -0
  224. package/dist/server.d.ts.map +1 -0
  225. package/dist/server.js +102 -0
  226. package/dist/server.js.map +1 -0
  227. package/dist/tools/asyncValidation.d.ts +19 -0
  228. package/dist/tools/asyncValidation.d.ts.map +1 -0
  229. package/dist/tools/asyncValidation.js +346 -0
  230. package/dist/tools/asyncValidation.js.map +1 -0
  231. package/dist/tools/buildContext.d.ts +17 -0
  232. package/dist/tools/buildContext.d.ts.map +1 -0
  233. package/dist/tools/buildContext.js +188 -0
  234. package/dist/tools/buildContext.js.map +1 -0
  235. package/dist/tools/getDependencyGraph.d.ts +16 -0
  236. package/dist/tools/getDependencyGraph.d.ts.map +1 -0
  237. package/dist/tools/getDependencyGraph.js +436 -0
  238. package/dist/tools/getDependencyGraph.js.map +1 -0
  239. package/dist/tools/incrementalValidation.d.ts +71 -0
  240. package/dist/tools/incrementalValidation.d.ts.map +1 -0
  241. package/dist/tools/incrementalValidation.js +203 -0
  242. package/dist/tools/incrementalValidation.js.map +1 -0
  243. package/dist/tools/index.d.ts +24 -0
  244. package/dist/tools/index.d.ts.map +1 -0
  245. package/dist/tools/index.js +106 -0
  246. package/dist/tools/index.js.map +1 -0
  247. package/dist/tools/validateCode.d.ts +17 -0
  248. package/dist/tools/validateCode.d.ts.map +1 -0
  249. package/dist/tools/validateCode.js +368 -0
  250. package/dist/tools/validateCode.js.map +1 -0
  251. package/dist/tools/validateCodeLite.d.ts +2 -0
  252. package/dist/tools/validateCodeLite.d.ts.map +1 -0
  253. package/dist/tools/validateCodeLite.js +2 -0
  254. package/dist/tools/validateCodeLite.js.map +1 -0
  255. package/dist/tools/validation/builtins.d.ts +92 -0
  256. package/dist/tools/validation/builtins.d.ts.map +1 -0
  257. package/dist/tools/validation/builtins.js +2184 -0
  258. package/dist/tools/validation/builtins.js.map +1 -0
  259. package/dist/tools/validation/contextualNaming.d.ts +99 -0
  260. package/dist/tools/validation/contextualNaming.d.ts.map +1 -0
  261. package/dist/tools/validation/contextualNaming.js +959 -0
  262. package/dist/tools/validation/contextualNaming.js.map +1 -0
  263. package/dist/tools/validation/deadCode.d.ts +115 -0
  264. package/dist/tools/validation/deadCode.d.ts.map +1 -0
  265. package/dist/tools/validation/deadCode.js +861 -0
  266. package/dist/tools/validation/deadCode.js.map +1 -0
  267. package/dist/tools/validation/extractors/index.d.ts +131 -0
  268. package/dist/tools/validation/extractors/index.d.ts.map +1 -0
  269. package/dist/tools/validation/extractors/index.js +233 -0
  270. package/dist/tools/validation/extractors/index.js.map +1 -0
  271. package/dist/tools/validation/extractors/javascript.d.ts +73 -0
  272. package/dist/tools/validation/extractors/javascript.d.ts.map +1 -0
  273. package/dist/tools/validation/extractors/javascript.js +1841 -0
  274. package/dist/tools/validation/extractors/javascript.js.map +1 -0
  275. package/dist/tools/validation/extractors/python.d.ts +93 -0
  276. package/dist/tools/validation/extractors/python.d.ts.map +1 -0
  277. package/dist/tools/validation/extractors/python.js +799 -0
  278. package/dist/tools/validation/extractors/python.js.map +1 -0
  279. package/dist/tools/validation/manifest.d.ts +45 -0
  280. package/dist/tools/validation/manifest.d.ts.map +1 -0
  281. package/dist/tools/validation/manifest.js +719 -0
  282. package/dist/tools/validation/manifest.js.map +1 -0
  283. package/dist/tools/validation/parser.d.ts +58 -0
  284. package/dist/tools/validation/parser.d.ts.map +1 -0
  285. package/dist/tools/validation/parser.js +232 -0
  286. package/dist/tools/validation/parser.js.map +1 -0
  287. package/dist/tools/validation/registry.d.ts +15 -0
  288. package/dist/tools/validation/registry.d.ts.map +1 -0
  289. package/dist/tools/validation/registry.js +169 -0
  290. package/dist/tools/validation/registry.js.map +1 -0
  291. package/dist/tools/validation/scoring.d.ts +54 -0
  292. package/dist/tools/validation/scoring.d.ts.map +1 -0
  293. package/dist/tools/validation/scoring.js +242 -0
  294. package/dist/tools/validation/scoring.js.map +1 -0
  295. package/dist/tools/validation/types.d.ts +120 -0
  296. package/dist/tools/validation/types.d.ts.map +1 -0
  297. package/dist/tools/validation/types.js +11 -0
  298. package/dist/tools/validation/types.js.map +1 -0
  299. package/dist/tools/validation/unusedLocals.d.ts +36 -0
  300. package/dist/tools/validation/unusedLocals.d.ts.map +1 -0
  301. package/dist/tools/validation/unusedLocals.js +333 -0
  302. package/dist/tools/validation/unusedLocals.js.map +1 -0
  303. package/dist/tools/validation/validation.d.ts +98 -0
  304. package/dist/tools/validation/validation.d.ts.map +1 -0
  305. package/dist/tools/validation/validation.js +1837 -0
  306. package/dist/tools/validation/validation.js.map +1 -0
  307. package/dist/types/codeGraph.d.ts +163 -0
  308. package/dist/types/codeGraph.d.ts.map +1 -0
  309. package/dist/types/codeGraph.js +9 -0
  310. package/dist/types/codeGraph.js.map +1 -0
  311. package/dist/types/symbolGraph.d.ts +68 -0
  312. package/dist/types/symbolGraph.d.ts.map +1 -0
  313. package/dist/types/symbolGraph.js +10 -0
  314. package/dist/types/symbolGraph.js.map +1 -0
  315. package/dist/types/tools.d.ts +43 -0
  316. package/dist/types/tools.d.ts.map +1 -0
  317. package/dist/types/tools.js +7 -0
  318. package/dist/types/tools.js.map +1 -0
  319. package/dist/utils/fileFilter.d.ts +37 -0
  320. package/dist/utils/fileFilter.d.ts.map +1 -0
  321. package/dist/utils/fileFilter.js +91 -0
  322. package/dist/utils/fileFilter.js.map +1 -0
  323. package/dist/utils/gitUtils.d.ts +28 -0
  324. package/dist/utils/gitUtils.d.ts.map +1 -0
  325. package/dist/utils/gitUtils.js +81 -0
  326. package/dist/utils/gitUtils.js.map +1 -0
  327. package/dist/utils/logger.d.ts +15 -0
  328. package/dist/utils/logger.d.ts.map +1 -0
  329. package/dist/utils/logger.js +38 -0
  330. package/dist/utils/logger.js.map +1 -0
  331. package/dist/utils/serialization.d.ts +25 -0
  332. package/dist/utils/serialization.d.ts.map +1 -0
  333. package/dist/utils/serialization.js +53 -0
  334. package/dist/utils/serialization.js.map +1 -0
  335. package/package.json +90 -0
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Validation Prompt Templates
3
+ *
4
+ * Based on prompt engineering best practices:
5
+ * - Zero-shot: Direct validation
6
+ * - Few-shot: Learning from examples
7
+ * - Chain-of-Thought: Step-by-step reasoning
8
+ * - Self-consistency: Multiple perspectives
9
+ *
10
+ * @format
11
+ */
12
+ import { PROMPT_PATTERNS, VALIDATION_CONSTRAINTS } from "./library.js";
13
+ export const VALIDATION_TEMPLATES = {
14
+ /**
15
+ * Zero-shot: Direct validation without examples
16
+ * Best for: Simple, straightforward validation tasks
17
+ */
18
+ zeroShot: (code) => `Use validate_code to check this code for hallucinations (non-existent functions, wrong methods, etc.):\n\n${code}`,
19
+ /**
20
+ * Few-shot: Validation with examples of common mistakes
21
+ * Best for: Teaching the model what to look for
22
+ */
23
+ fewShot: (code) => {
24
+ const task = "Check this code for hallucinations, missing dependencies, and wrong methods.";
25
+ const examples = [
26
+ {
27
+ input: "const user = getUserById(id);",
28
+ output: "❌ BAD: function doesn't exist",
29
+ explanation: "The project uses findUserById instead."
30
+ },
31
+ {
32
+ input: "import { Button } from 'react-ui';",
33
+ output: "❌ BAD: package not installed",
34
+ explanation: "Package 'react-ui' is missing from package.json."
35
+ }
36
+ ];
37
+ return PROMPT_PATTERNS.withExamples(task, examples) + `\n\nCode to validate:\n\`\`\`\n${code}\n\`\`\``;
38
+ },
39
+ /**
40
+ * Chain-of-Thought: Step-by-step reasoning
41
+ * Best for: Complex validation requiring detailed analysis
42
+ */
43
+ chainOfThought: (code) => {
44
+ const task = `Analyze this code systematically using validate_code:\n\n\`\`\`\n${code}\n\`\`\``;
45
+ const steps = [
46
+ "Extract all function calls and class instantiations",
47
+ "Check each symbol against the project's symbol table",
48
+ "Verify all imports exist in package.json/requirements.txt",
49
+ "Check for dead code (unused exports)",
50
+ "Provide specific fixes with reasoning"
51
+ ];
52
+ return PROMPT_PATTERNS.stepByStep(task, steps);
53
+ },
54
+ /**
55
+ * Self-consistency: Multiple validation perspectives
56
+ * Best for: High-stakes code requiring thorough review
57
+ */
58
+ selfConsistency: (code) => {
59
+ const task = `Validate this code from multiple perspectives using validate_code:\n\n\`\`\`\n${code}\n\`\`\``;
60
+ const perspectives = [
61
+ "Symbol Validation: Are all functions, classes, and methods defined?",
62
+ "Dependency Validation: Are all packages in the manifest?",
63
+ "Logic Validation: Does the code make logical sense?"
64
+ ];
65
+ return PROMPT_PATTERNS.multiPerspective(task, perspectives);
66
+ },
67
+ /**
68
+ * Structured output: Validation with explicit format requirements
69
+ * Best for: Integration with automated systems
70
+ */
71
+ structuredOutput: (code) => {
72
+ const task = `Use validate_code to analyze this code:\n\n\`\`\`\n${code}\n\`\`\``;
73
+ const format = `
74
+ VALIDATION SUMMARY:
75
+ - Status: [PASS/FAIL]
76
+ - Score: [0-100]
77
+ - Hallucinations Found: [count]
78
+
79
+ CRITICAL ISSUES (if any):
80
+ 1. [Issue description]
81
+ - Severity: [critical/high/medium/low]
82
+ - Suggestion: [specific fix]
83
+ - Confidence: [0-100%]
84
+ `;
85
+ return PROMPT_PATTERNS.structuredOutput(task, format);
86
+ },
87
+ /**
88
+ * Role-based: Validation from expert perspective
89
+ * Best for: Domain-specific validation
90
+ */
91
+ roleBased: (code, role = "senior code reviewer") => {
92
+ const task = `Thoroughly review this code for hallucinations and missing dependencies:\n\n\`\`\`\n${code}\n\`\`\``;
93
+ const rolePrompt = PROMPT_PATTERNS.role(role, task);
94
+ return PROMPT_PATTERNS.withConstraints(rolePrompt, VALIDATION_CONSTRAINTS);
95
+ },
96
+ };
97
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/prompts/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEvE,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC;;;OAGG;IACH,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE,CACzB,6GAA6G,IAAI,EAAE;IAErH;;;OAGG;IACH,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE;QACxB,MAAM,IAAI,GAAG,8EAA8E,CAAC;QAC5F,MAAM,QAAQ,GAAG;YACf;gBACE,KAAK,EAAE,+BAA+B;gBACtC,MAAM,EAAE,+BAA+B;gBACvC,WAAW,EAAE,wCAAwC;aACtD;YACD;gBACE,KAAK,EAAE,oCAAoC;gBAC3C,MAAM,EAAE,8BAA8B;gBACtC,WAAW,EAAE,kDAAkD;aAChE;SACF,CAAC;QAEF,OAAO,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,kCAAkC,IAAI,UAAU,CAAC;IACzG,CAAC;IAED;;;OAGG;IACH,cAAc,EAAE,CAAC,IAAY,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,oEAAoE,IAAI,UAAU,CAAC;QAChG,MAAM,KAAK,GAAG;YACZ,qDAAqD;YACrD,sDAAsD;YACtD,2DAA2D;YAC3D,sCAAsC;YACtC,uCAAuC;SACxC,CAAC;QAEF,OAAO,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,eAAe,EAAE,CAAC,IAAY,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,iFAAiF,IAAI,UAAU,CAAC;QAC7G,MAAM,YAAY,GAAG;YACnB,qEAAqE;YACrE,0DAA0D;YAC1D,qDAAqD;SACtD,CAAC;QAEF,OAAO,eAAe,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,gBAAgB,EAAE,CAAC,IAAY,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,sDAAsD,IAAI,UAAU,CAAC;QAClF,MAAM,MAAM,GAAG;;;;;;;;;;;KAWd,CAAC;QAEF,OAAO,eAAe,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;;OAGG;IACH,SAAS,EAAE,CAAC,IAAY,EAAE,OAAe,sBAAsB,EAAE,EAAE;QACjE,MAAM,IAAI,GAAG,uFAAuF,IAAI,UAAU,CAAC;QACnH,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,eAAe,CAAC,eAAe,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;IAC7E,CAAC;CACF,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Job Persistence Layer
3
+ *
4
+ * Saves job state to disk so jobs survive server restarts.
5
+ *
6
+ * @format
7
+ */
8
+ import type { Job } from "./jobQueue.js";
9
+ export declare class JobPersistence {
10
+ private jobsDir;
11
+ constructor(baseDir?: string);
12
+ /**
13
+ * Initialize persistence (create directories)
14
+ */
15
+ initialize(): Promise<void>;
16
+ /**
17
+ * Save job to disk
18
+ */
19
+ saveJob(job: Job): Promise<void>;
20
+ /**
21
+ * Load job from disk
22
+ */
23
+ loadJob(jobId: string): Promise<Job | null>;
24
+ /**
25
+ * Delete job from disk
26
+ */
27
+ deleteJob(jobId: string): Promise<void>;
28
+ /**
29
+ * Load all jobs from disk
30
+ */
31
+ loadAllJobs(): Promise<Job[]>;
32
+ /**
33
+ * Clean up old jobs
34
+ */
35
+ cleanupExpiredJobs(expirationTime: number): Promise<number>;
36
+ /**
37
+ * Get job file path
38
+ */
39
+ private getJobPath;
40
+ /**
41
+ * Check if persistence is available
42
+ */
43
+ isAvailable(): Promise<boolean>;
44
+ }
45
+ export declare const jobPersistence: JobPersistence;
46
+ //# sourceMappingURL=jobPersistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobPersistence.d.ts","sourceRoot":"","sources":["../../src/queue/jobPersistence.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAYzC,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE,MAAiB;IAItC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtC;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAejD;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IA2BnC;;OAEG;IACG,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBjE;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAQtC;AAMD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Job Persistence Layer
3
+ *
4
+ * Saves job state to disk so jobs survive server restarts.
5
+ *
6
+ * @format
7
+ */
8
+ import * as fs from "fs/promises";
9
+ import * as path from "path";
10
+ import { logger } from "../utils/logger.js";
11
+ // ============================================================================
12
+ // Configuration
13
+ // ============================================================================
14
+ const JOBS_DIR = ".codeguardian/jobs";
15
+ // ============================================================================
16
+ // Persistence API
17
+ // ============================================================================
18
+ export class JobPersistence {
19
+ jobsDir;
20
+ constructor(baseDir = JOBS_DIR) {
21
+ this.jobsDir = baseDir;
22
+ }
23
+ /**
24
+ * Initialize persistence (create directories)
25
+ */
26
+ async initialize() {
27
+ try {
28
+ await fs.mkdir(this.jobsDir, { recursive: true });
29
+ logger.info(`Job persistence initialized: ${this.jobsDir}`);
30
+ }
31
+ catch (error) {
32
+ logger.error("Failed to initialize job persistence:", error);
33
+ throw error;
34
+ }
35
+ }
36
+ /**
37
+ * Save job to disk
38
+ */
39
+ async saveJob(job) {
40
+ try {
41
+ const filePath = this.getJobPath(job.id);
42
+ await fs.writeFile(filePath, JSON.stringify(job, null, 2), "utf-8");
43
+ logger.debug(`Job saved: ${job.id}`);
44
+ }
45
+ catch (error) {
46
+ logger.error(`Failed to save job ${job.id}:`, error);
47
+ // Don't throw - persistence failure shouldn't break job execution
48
+ }
49
+ }
50
+ /**
51
+ * Load job from disk
52
+ */
53
+ async loadJob(jobId) {
54
+ try {
55
+ const filePath = this.getJobPath(jobId);
56
+ const content = await fs.readFile(filePath, "utf-8");
57
+ const job = JSON.parse(content);
58
+ logger.debug(`Job loaded: ${jobId}`);
59
+ return job;
60
+ }
61
+ catch (error) {
62
+ if (error.code !== "ENOENT") {
63
+ logger.error(`Failed to load job ${jobId}:`, error);
64
+ }
65
+ return null;
66
+ }
67
+ }
68
+ /**
69
+ * Delete job from disk
70
+ */
71
+ async deleteJob(jobId) {
72
+ try {
73
+ const filePath = this.getJobPath(jobId);
74
+ await fs.unlink(filePath);
75
+ logger.debug(`Job deleted: ${jobId}`);
76
+ }
77
+ catch (error) {
78
+ if (error.code !== "ENOENT") {
79
+ logger.error(`Failed to delete job ${jobId}:`, error);
80
+ }
81
+ }
82
+ }
83
+ /**
84
+ * Load all jobs from disk
85
+ */
86
+ async loadAllJobs() {
87
+ try {
88
+ const files = await fs.readdir(this.jobsDir);
89
+ const jobs = [];
90
+ for (const file of files) {
91
+ if (file.endsWith(".json")) {
92
+ const jobId = file.replace(".json", "");
93
+ const job = await this.loadJob(jobId);
94
+ if (job) {
95
+ jobs.push(job);
96
+ }
97
+ }
98
+ }
99
+ logger.info(`Loaded ${jobs.length} jobs from disk`);
100
+ return jobs;
101
+ }
102
+ catch (error) {
103
+ if (error.code === "ENOENT") {
104
+ // Directory doesn't exist yet
105
+ return [];
106
+ }
107
+ logger.error("Failed to load jobs:", error);
108
+ return [];
109
+ }
110
+ }
111
+ /**
112
+ * Clean up old jobs
113
+ */
114
+ async cleanupExpiredJobs(expirationTime) {
115
+ try {
116
+ const jobs = await this.loadAllJobs();
117
+ const now = Date.now();
118
+ let cleaned = 0;
119
+ for (const job of jobs) {
120
+ if (job.expiresAt < now) {
121
+ await this.deleteJob(job.id);
122
+ cleaned++;
123
+ }
124
+ }
125
+ if (cleaned > 0) {
126
+ logger.info(`Cleaned up ${cleaned} expired jobs from disk`);
127
+ }
128
+ return cleaned;
129
+ }
130
+ catch (error) {
131
+ logger.error("Failed to cleanup expired jobs:", error);
132
+ return 0;
133
+ }
134
+ }
135
+ /**
136
+ * Get job file path
137
+ */
138
+ getJobPath(jobId) {
139
+ return path.join(this.jobsDir, `${jobId}.json`);
140
+ }
141
+ /**
142
+ * Check if persistence is available
143
+ */
144
+ async isAvailable() {
145
+ try {
146
+ await fs.access(this.jobsDir);
147
+ return true;
148
+ }
149
+ catch {
150
+ return false;
151
+ }
152
+ }
153
+ }
154
+ // ============================================================================
155
+ // Singleton Instance
156
+ // ============================================================================
157
+ export const jobPersistence = new JobPersistence();
158
+ //# sourceMappingURL=jobPersistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobPersistence.js","sourceRoot":"","sources":["../../src/queue/jobPersistence.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,MAAM,QAAQ,GAAG,oBAAoB,CAAC;AAEtC,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,MAAM,OAAO,cAAc;IACjB,OAAO,CAAS;IAExB,YAAY,UAAkB,QAAQ;QACpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;YAC7D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,GAAQ;QACpB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzC,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACpE,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACrD,kEAAkE;QACpE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,KAAa;QACzB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAQ,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC;YACrC,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,MAAM,CAAC,KAAK,CAAC,sBAAsB,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,MAAM,CAAC,KAAK,CAAC,wBAAwB,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAU,EAAE,CAAC;YAEvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBACxC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,GAAG,EAAE,CAAC;wBACR,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,iBAAiB,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,8BAA8B;gBAC9B,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,cAAsB;QAC7C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,OAAO,GAAG,CAAC,CAAC;YAEhB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,GAAG,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;oBACxB,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC7B,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;YAED,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,cAAc,OAAO,yBAAyB,CAAC,CAAC;YAC9D,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACvD,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,KAAa;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF;AAED,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Job Queue Manager - Noise Reduction Applied
3
+ *
4
+ * Handles long-running validation jobs that exceed MCP timeout limits.
5
+ * Jobs run in background and results are retrieved separately.
6
+ *
7
+ * @format
8
+ */
9
+ import { EventEmitter } from "node:events";
10
+ export type JobStatus = "queued" | "processing" | "complete" | "failed" | "cancelled";
11
+ export interface Job<TInput = any, TResult = any> {
12
+ id: string;
13
+ type: string;
14
+ input: TInput;
15
+ status: JobStatus;
16
+ progress?: JobProgress;
17
+ result?: TResult;
18
+ error?: string;
19
+ createdAt: number;
20
+ startedAt?: number;
21
+ completedAt?: number;
22
+ expiresAt: number;
23
+ }
24
+ export interface JobProgress {
25
+ phase: string;
26
+ percent: number;
27
+ message?: string;
28
+ details?: Record<string, any>;
29
+ }
30
+ export type JobHandler<TInput = any, TResult = any> = (input: TInput, updateProgress: (progress: JobProgress) => void) => Promise<TResult>;
31
+ export declare class JobQueue extends EventEmitter {
32
+ private jobs;
33
+ private handlers;
34
+ private processing;
35
+ private maxConcurrent;
36
+ private jobTTL;
37
+ private cleanupInterval?;
38
+ constructor(options?: {
39
+ maxConcurrent?: number;
40
+ jobTTL?: number;
41
+ });
42
+ /**
43
+ * Initialize persistence and load existing jobs
44
+ */
45
+ private initializePersistence;
46
+ /**
47
+ * Register a job handler
48
+ */
49
+ registerHandler<TInput, TResult>(type: string, handler: JobHandler<TInput, TResult>): void;
50
+ /**
51
+ * Submit a new job
52
+ */
53
+ submitJob<TInput, TResult>(type: string, input: TInput): Promise<string>;
54
+ /**
55
+ * Get job status
56
+ */
57
+ getJob(jobId: string): Job | undefined;
58
+ /**
59
+ * Get job status (public API)
60
+ */
61
+ getJobStatus(jobId: string): {
62
+ exists: boolean;
63
+ status?: JobStatus;
64
+ progress?: JobProgress;
65
+ error?: string;
66
+ };
67
+ /**
68
+ * Get job results
69
+ */
70
+ getJobResults<TResult>(jobId: string): {
71
+ exists: boolean;
72
+ status?: JobStatus;
73
+ result?: TResult;
74
+ error?: string;
75
+ };
76
+ /**
77
+ * Cancel a job
78
+ */
79
+ cancelJob(jobId: string): boolean;
80
+ /**
81
+ * List all jobs (for debugging)
82
+ */
83
+ listJobs(filter?: {
84
+ status?: JobStatus;
85
+ type?: string;
86
+ }): Job[];
87
+ /**
88
+ * Process next job in queue
89
+ */
90
+ private processNext;
91
+ /**
92
+ * Cleanup expired jobs
93
+ */
94
+ private cleanupExpiredJobs;
95
+ /**
96
+ * Generate unique job ID
97
+ */
98
+ private generateJobId;
99
+ /**
100
+ * Get queue statistics
101
+ */
102
+ getStats(): {
103
+ total: number;
104
+ queued: number;
105
+ processing: number;
106
+ complete: number;
107
+ failed: number;
108
+ cancelled: number;
109
+ };
110
+ /**
111
+ * Shutdown the job queue and cleanup resources
112
+ */
113
+ shutdown(): void;
114
+ }
115
+ export declare const jobQueue: JobQueue;
116
+ //# sourceMappingURL=jobQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobQueue.d.ts","sourceRoot":"","sources":["../../src/queue/jobQueue.ts"],"names":[],"mappings":"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"}