mcp-adr-analysis-server 2.1.9 → 2.1.19

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 (408) hide show
  1. package/README.md +55 -8
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/src/index.d.ts +78 -2
  4. package/dist/src/index.d.ts.map +1 -1
  5. package/dist/src/index.js +1793 -577
  6. package/dist/src/index.js.map +1 -1
  7. package/dist/src/prompts/index.d.ts.map +1 -1
  8. package/dist/src/prompts/index.js +23 -6
  9. package/dist/src/prompts/index.js.map +1 -1
  10. package/dist/src/prompts/validated-pattern-prompts.d.ts +33 -0
  11. package/dist/src/prompts/validated-pattern-prompts.d.ts.map +1 -0
  12. package/dist/src/prompts/validated-pattern-prompts.js +337 -0
  13. package/dist/src/prompts/validated-pattern-prompts.js.map +1 -0
  14. package/dist/src/resources/adr-by-id-resource.d.ts +116 -0
  15. package/dist/src/resources/adr-by-id-resource.d.ts.map +1 -0
  16. package/dist/src/resources/adr-by-id-resource.js +213 -0
  17. package/dist/src/resources/adr-by-id-resource.js.map +1 -0
  18. package/dist/src/resources/code-quality-resource.d.ts +105 -0
  19. package/dist/src/resources/code-quality-resource.d.ts.map +1 -0
  20. package/dist/src/resources/code-quality-resource.js +282 -0
  21. package/dist/src/resources/code-quality-resource.js.map +1 -0
  22. package/dist/src/resources/deployment-history-resource.d.ts +214 -0
  23. package/dist/src/resources/deployment-history-resource.d.ts.map +1 -0
  24. package/dist/src/resources/deployment-history-resource.js +308 -0
  25. package/dist/src/resources/deployment-history-resource.js.map +1 -0
  26. package/dist/src/resources/deployment-status-resource.d.ts +256 -0
  27. package/dist/src/resources/deployment-status-resource.d.ts.map +1 -0
  28. package/dist/src/resources/deployment-status-resource.js +665 -0
  29. package/dist/src/resources/deployment-status-resource.js.map +1 -0
  30. package/dist/src/resources/environment-analysis-resource.d.ts +237 -0
  31. package/dist/src/resources/environment-analysis-resource.d.ts.map +1 -0
  32. package/dist/src/resources/environment-analysis-resource.js +646 -0
  33. package/dist/src/resources/environment-analysis-resource.js.map +1 -0
  34. package/dist/src/resources/index.d.ts +6 -2
  35. package/dist/src/resources/index.d.ts.map +1 -1
  36. package/dist/src/resources/index.js +247 -492
  37. package/dist/src/resources/index.js.map +1 -1
  38. package/dist/src/resources/memory-snapshots-resource.d.ts +180 -0
  39. package/dist/src/resources/memory-snapshots-resource.d.ts.map +1 -0
  40. package/dist/src/resources/memory-snapshots-resource.js +847 -0
  41. package/dist/src/resources/memory-snapshots-resource.js.map +1 -0
  42. package/dist/src/resources/pattern-base-code-by-platform-resource.d.ts +35 -0
  43. package/dist/src/resources/pattern-base-code-by-platform-resource.d.ts.map +1 -0
  44. package/dist/src/resources/pattern-base-code-by-platform-resource.js +72 -0
  45. package/dist/src/resources/pattern-base-code-by-platform-resource.js.map +1 -0
  46. package/dist/src/resources/pattern-by-name-resource.d.ts +53 -0
  47. package/dist/src/resources/pattern-by-name-resource.d.ts.map +1 -0
  48. package/dist/src/resources/pattern-by-name-resource.js +200 -0
  49. package/dist/src/resources/pattern-by-name-resource.js.map +1 -0
  50. package/dist/src/resources/pattern-sources-by-platform-resource.d.ts +26 -0
  51. package/dist/src/resources/pattern-sources-by-platform-resource.d.ts.map +1 -0
  52. package/dist/src/resources/pattern-sources-by-platform-resource.js +59 -0
  53. package/dist/src/resources/pattern-sources-by-platform-resource.js.map +1 -0
  54. package/dist/src/resources/project-metrics-resource.d.ts +180 -0
  55. package/dist/src/resources/project-metrics-resource.d.ts.map +1 -0
  56. package/dist/src/resources/project-metrics-resource.js +487 -0
  57. package/dist/src/resources/project-metrics-resource.js.map +1 -0
  58. package/dist/src/resources/project-status-resource.d.ts +75 -0
  59. package/dist/src/resources/project-status-resource.d.ts.map +1 -0
  60. package/dist/src/resources/project-status-resource.js +189 -0
  61. package/dist/src/resources/project-status-resource.js.map +1 -0
  62. package/dist/src/resources/research-by-topic-resource.d.ts +21 -0
  63. package/dist/src/resources/research-by-topic-resource.d.ts.map +1 -0
  64. package/dist/src/resources/research-by-topic-resource.js +125 -0
  65. package/dist/src/resources/research-by-topic-resource.js.map +1 -0
  66. package/dist/src/resources/research-index-resource.d.ts +100 -0
  67. package/dist/src/resources/research-index-resource.d.ts.map +1 -0
  68. package/dist/src/resources/research-index-resource.js +200 -0
  69. package/dist/src/resources/research-index-resource.js.map +1 -0
  70. package/dist/src/resources/resource-cache.d.ts +144 -0
  71. package/dist/src/resources/resource-cache.d.ts.map +1 -0
  72. package/dist/src/resources/resource-cache.js +316 -0
  73. package/dist/src/resources/resource-cache.js.map +1 -0
  74. package/dist/src/resources/resource-router.d.ts +45 -0
  75. package/dist/src/resources/resource-router.d.ts.map +1 -0
  76. package/dist/src/resources/resource-router.js +96 -0
  77. package/dist/src/resources/resource-router.js.map +1 -0
  78. package/dist/src/resources/rule-by-id-resource.d.ts +38 -0
  79. package/dist/src/resources/rule-by-id-resource.d.ts.map +1 -0
  80. package/dist/src/resources/rule-by-id-resource.js +104 -0
  81. package/dist/src/resources/rule-by-id-resource.js.map +1 -0
  82. package/dist/src/resources/rule-catalog-resource.d.ts +126 -0
  83. package/dist/src/resources/rule-catalog-resource.d.ts.map +1 -0
  84. package/dist/src/resources/rule-catalog-resource.js +224 -0
  85. package/dist/src/resources/rule-catalog-resource.js.map +1 -0
  86. package/dist/src/resources/rule-generation-resource.d.ts +80 -0
  87. package/dist/src/resources/rule-generation-resource.d.ts.map +1 -0
  88. package/dist/src/resources/rule-generation-resource.js +282 -0
  89. package/dist/src/resources/rule-generation-resource.js.map +1 -0
  90. package/dist/src/resources/technology-by-name-resource.d.ts +43 -0
  91. package/dist/src/resources/technology-by-name-resource.d.ts.map +1 -0
  92. package/dist/src/resources/technology-by-name-resource.js +176 -0
  93. package/dist/src/resources/technology-by-name-resource.js.map +1 -0
  94. package/dist/src/resources/todo-by-id-resource.d.ts +46 -0
  95. package/dist/src/resources/todo-by-id-resource.d.ts.map +1 -0
  96. package/dist/src/resources/todo-by-id-resource.js +192 -0
  97. package/dist/src/resources/todo-by-id-resource.js.map +1 -0
  98. package/dist/src/resources/todo-list-resource.d.ts +96 -0
  99. package/dist/src/resources/todo-list-resource.d.ts.map +1 -0
  100. package/dist/src/resources/todo-list-resource.js +209 -0
  101. package/dist/src/resources/todo-list-resource.js.map +1 -0
  102. package/dist/src/resources/validated-pattern-by-platform-resource.d.ts +14 -0
  103. package/dist/src/resources/validated-pattern-by-platform-resource.d.ts.map +1 -0
  104. package/dist/src/resources/validated-pattern-by-platform-resource.js +45 -0
  105. package/dist/src/resources/validated-pattern-by-platform-resource.js.map +1 -0
  106. package/dist/src/resources/validated-patterns-catalog-resource.d.ts +36 -0
  107. package/dist/src/resources/validated-patterns-catalog-resource.d.ts.map +1 -0
  108. package/dist/src/resources/validated-patterns-catalog-resource.js +57 -0
  109. package/dist/src/resources/validated-patterns-catalog-resource.js.map +1 -0
  110. package/dist/src/templates/domain-knowledge-templates.d.ts.map +1 -1
  111. package/dist/src/templates/domain-knowledge-templates.js +49 -49
  112. package/dist/src/templates/domain-knowledge-templates.js.map +1 -1
  113. package/dist/src/tools/adr-bootstrap-validation-tool.d.ts.map +1 -1
  114. package/dist/src/tools/adr-bootstrap-validation-tool.js +214 -4
  115. package/dist/src/tools/adr-bootstrap-validation-tool.js.map +1 -1
  116. package/dist/src/tools/adr-suggestion-tool.d.ts +2 -2
  117. package/dist/src/tools/adr-suggestion-tool.d.ts.map +1 -1
  118. package/dist/src/tools/adr-suggestion-tool.js +129 -12
  119. package/dist/src/tools/adr-suggestion-tool.js.map +1 -1
  120. package/dist/src/tools/adr-validation-tool.d.ts +98 -0
  121. package/dist/src/tools/adr-validation-tool.d.ts.map +1 -0
  122. package/dist/src/tools/adr-validation-tool.js +372 -0
  123. package/dist/src/tools/adr-validation-tool.js.map +1 -0
  124. package/dist/src/tools/bootstrap-validation-loop-tool.d.ts +262 -0
  125. package/dist/src/tools/bootstrap-validation-loop-tool.d.ts.map +1 -0
  126. package/dist/src/tools/bootstrap-validation-loop-tool.js +1934 -0
  127. package/dist/src/tools/bootstrap-validation-loop-tool.js.map +1 -0
  128. package/dist/src/tools/conversation-memory-tool.d.ts +48 -0
  129. package/dist/src/tools/conversation-memory-tool.d.ts.map +1 -0
  130. package/dist/src/tools/conversation-memory-tool.js +254 -0
  131. package/dist/src/tools/conversation-memory-tool.js.map +1 -0
  132. package/dist/src/tools/deployment-analysis-tool.d.ts.map +1 -1
  133. package/dist/src/tools/deployment-analysis-tool.js +82 -6
  134. package/dist/src/tools/deployment-analysis-tool.js.map +1 -1
  135. package/dist/src/tools/deployment-guidance-tool.d.ts.map +1 -1
  136. package/dist/src/tools/deployment-guidance-tool.js +126 -25
  137. package/dist/src/tools/deployment-guidance-tool.js.map +1 -1
  138. package/dist/src/tools/deployment-readiness-tool.d.ts.map +1 -1
  139. package/dist/src/tools/deployment-readiness-tool.js +166 -5
  140. package/dist/src/tools/deployment-readiness-tool.js.map +1 -1
  141. package/dist/src/tools/environment-analysis-tool.d.ts.map +1 -1
  142. package/dist/src/tools/environment-analysis-tool.js +36 -1
  143. package/dist/src/tools/environment-analysis-tool.js.map +1 -1
  144. package/dist/src/tools/expand-analysis-tool.d.ts +23 -0
  145. package/dist/src/tools/expand-analysis-tool.d.ts.map +1 -0
  146. package/dist/src/tools/expand-analysis-tool.js +107 -0
  147. package/dist/src/tools/expand-analysis-tool.js.map +1 -0
  148. package/dist/src/tools/get-server-context-tool.d.ts +67 -0
  149. package/dist/src/tools/get-server-context-tool.d.ts.map +1 -0
  150. package/dist/src/tools/get-server-context-tool.js +75 -0
  151. package/dist/src/tools/get-server-context-tool.js.map +1 -0
  152. package/dist/src/tools/interactive-adr-planning-tool.d.ts.map +1 -1
  153. package/dist/src/tools/interactive-adr-planning-tool.js +82 -9
  154. package/dist/src/tools/interactive-adr-planning-tool.js.map +1 -1
  155. package/dist/src/tools/llm-cloud-management-tool.d.ts +62 -0
  156. package/dist/src/tools/llm-cloud-management-tool.d.ts.map +1 -0
  157. package/dist/src/tools/llm-cloud-management-tool.js +202 -0
  158. package/dist/src/tools/llm-cloud-management-tool.js.map +1 -0
  159. package/dist/src/tools/llm-database-management-tool.d.ts +62 -0
  160. package/dist/src/tools/llm-database-management-tool.d.ts.map +1 -0
  161. package/dist/src/tools/llm-database-management-tool.js +203 -0
  162. package/dist/src/tools/llm-database-management-tool.js.map +1 -0
  163. package/dist/src/tools/llm-web-search-tool.d.ts +59 -0
  164. package/dist/src/tools/llm-web-search-tool.d.ts.map +1 -0
  165. package/dist/src/tools/llm-web-search-tool.js +165 -0
  166. package/dist/src/tools/llm-web-search-tool.js.map +1 -0
  167. package/dist/src/tools/mcp-planning-tool.d.ts.map +1 -1
  168. package/dist/src/tools/mcp-planning-tool.js +10 -3
  169. package/dist/src/tools/mcp-planning-tool.js.map +1 -1
  170. package/dist/src/tools/memory-loading-tool.d.ts.map +1 -1
  171. package/dist/src/tools/memory-loading-tool.js +4 -2
  172. package/dist/src/tools/memory-loading-tool.js.map +1 -1
  173. package/dist/src/tools/perform-research-tool.d.ts +61 -0
  174. package/dist/src/tools/perform-research-tool.d.ts.map +1 -0
  175. package/dist/src/tools/perform-research-tool.js +324 -0
  176. package/dist/src/tools/perform-research-tool.js.map +1 -0
  177. package/dist/src/tools/research-question-tool.d.ts.map +1 -1
  178. package/dist/src/tools/research-question-tool.js +11 -9
  179. package/dist/src/tools/research-question-tool.js.map +1 -1
  180. package/dist/src/tools/review-existing-adrs-tool.d.ts.map +1 -1
  181. package/dist/src/tools/review-existing-adrs-tool.js +42 -3
  182. package/dist/src/tools/review-existing-adrs-tool.js.map +1 -1
  183. package/dist/src/tools/tool-chain-orchestrator.d.ts +15 -94
  184. package/dist/src/tools/tool-chain-orchestrator.d.ts.map +1 -1
  185. package/dist/src/tools/tool-chain-orchestrator.js +2 -2
  186. package/dist/src/tools/tool-chain-orchestrator.js.map +1 -1
  187. package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts +25 -120
  188. package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts.map +1 -1
  189. package/dist/src/tools/troubleshoot-guided-workflow-tool.js +91 -2
  190. package/dist/src/tools/troubleshoot-guided-workflow-tool.js.map +1 -1
  191. package/dist/src/types/ape-framework.d.ts +50 -283
  192. package/dist/src/types/ape-framework.d.ts.map +1 -1
  193. package/dist/src/types/conversation-context.d.ts.map +1 -1
  194. package/dist/src/types/conversation-context.js +12 -12
  195. package/dist/src/types/conversation-context.js.map +1 -1
  196. package/dist/src/types/conversation-memory.d.ts +184 -0
  197. package/dist/src/types/conversation-memory.d.ts.map +1 -0
  198. package/dist/src/types/conversation-memory.js +8 -0
  199. package/dist/src/types/conversation-memory.js.map +1 -0
  200. package/dist/src/types/index.d.ts +112 -339
  201. package/dist/src/types/index.d.ts.map +1 -1
  202. package/dist/src/types/knowledge-generation.d.ts +96 -401
  203. package/dist/src/types/knowledge-generation.d.ts.map +1 -1
  204. package/dist/src/types/knowledge-graph-schemas.d.ts +77 -715
  205. package/dist/src/types/knowledge-graph-schemas.d.ts.map +1 -1
  206. package/dist/src/types/knowledge-graph-schemas.js +8 -8
  207. package/dist/src/types/knowledge-graph-schemas.js.map +1 -1
  208. package/dist/src/types/memory-entities.d.ts +1230 -6164
  209. package/dist/src/types/memory-entities.d.ts.map +1 -1
  210. package/dist/src/types/memory-entities.js +8 -8
  211. package/dist/src/types/memory-entities.js.map +1 -1
  212. package/dist/src/types/reflexion-framework.d.ts +35 -264
  213. package/dist/src/types/reflexion-framework.d.ts.map +1 -1
  214. package/dist/src/types/reflexion-framework.js +1 -1
  215. package/dist/src/types/reflexion-framework.js.map +1 -1
  216. package/dist/src/types/state-reinforcement.d.ts +87 -0
  217. package/dist/src/types/state-reinforcement.d.ts.map +1 -0
  218. package/dist/src/types/state-reinforcement.js +5 -0
  219. package/dist/src/types/state-reinforcement.js.map +1 -0
  220. package/dist/src/types/tiered-response.d.ts +61 -0
  221. package/dist/src/types/tiered-response.d.ts.map +1 -0
  222. package/dist/src/types/tiered-response.js +8 -0
  223. package/dist/src/types/tiered-response.js.map +1 -0
  224. package/dist/src/types/tool-context.d.ts +50 -0
  225. package/dist/src/types/tool-context.d.ts.map +1 -0
  226. package/dist/src/types/tool-context.js +20 -0
  227. package/dist/src/types/tool-context.js.map +1 -0
  228. package/dist/src/utils/adr-action-analyzer.d.ts +23 -0
  229. package/dist/src/utils/adr-action-analyzer.d.ts.map +1 -0
  230. package/dist/src/utils/adr-action-analyzer.js +323 -0
  231. package/dist/src/utils/adr-action-analyzer.js.map +1 -0
  232. package/dist/src/utils/adr-context-detector.d.ts +33 -0
  233. package/dist/src/utils/adr-context-detector.d.ts.map +1 -0
  234. package/dist/src/utils/adr-context-detector.js +279 -0
  235. package/dist/src/utils/adr-context-detector.js.map +1 -0
  236. package/dist/src/utils/adr-discovery.d.ts +28 -2
  237. package/dist/src/utils/adr-discovery.d.ts.map +1 -1
  238. package/dist/src/utils/adr-discovery.js +91 -7
  239. package/dist/src/utils/adr-discovery.js.map +1 -1
  240. package/dist/src/utils/adr-knowledge-initializer.d.ts +54 -0
  241. package/dist/src/utils/adr-knowledge-initializer.d.ts.map +1 -0
  242. package/dist/src/utils/adr-knowledge-initializer.js +240 -0
  243. package/dist/src/utils/adr-knowledge-initializer.js.map +1 -0
  244. package/dist/src/utils/adr-timeline-extractor.d.ts +21 -0
  245. package/dist/src/utils/adr-timeline-extractor.d.ts.map +1 -0
  246. package/dist/src/utils/adr-timeline-extractor.js +294 -0
  247. package/dist/src/utils/adr-timeline-extractor.js.map +1 -0
  248. package/dist/src/utils/adr-timeline-types.d.ts +234 -0
  249. package/dist/src/utils/adr-timeline-types.d.ts.map +1 -0
  250. package/dist/src/utils/adr-timeline-types.js +7 -0
  251. package/dist/src/utils/adr-timeline-types.js.map +1 -0
  252. package/dist/src/utils/ai-executor.d.ts +36 -0
  253. package/dist/src/utils/ai-executor.d.ts.map +1 -1
  254. package/dist/src/utils/ai-executor.js +39 -3
  255. package/dist/src/utils/ai-executor.js.map +1 -1
  256. package/dist/src/utils/apply-cot-enhancement.d.ts.map +1 -1
  257. package/dist/src/utils/apply-cot-enhancement.js +15 -15
  258. package/dist/src/utils/apply-cot-enhancement.js.map +1 -1
  259. package/dist/src/utils/automatic-prompt-engineering.d.ts.map +1 -1
  260. package/dist/src/utils/automatic-prompt-engineering.js +68 -58
  261. package/dist/src/utils/automatic-prompt-engineering.js.map +1 -1
  262. package/dist/src/utils/conditional-request.d.ts +105 -0
  263. package/dist/src/utils/conditional-request.d.ts.map +1 -0
  264. package/dist/src/utils/conditional-request.js +186 -0
  265. package/dist/src/utils/conditional-request.js.map +1 -0
  266. package/dist/src/utils/config.d.ts +72 -18
  267. package/dist/src/utils/config.d.ts.map +1 -1
  268. package/dist/src/utils/config.js +75 -0
  269. package/dist/src/utils/config.js.map +1 -1
  270. package/dist/src/utils/context-document-manager.d.ts +112 -0
  271. package/dist/src/utils/context-document-manager.d.ts.map +1 -0
  272. package/dist/src/utils/context-document-manager.js +351 -0
  273. package/dist/src/utils/context-document-manager.js.map +1 -0
  274. package/dist/src/utils/conversation-memory-manager.d.ts +86 -0
  275. package/dist/src/utils/conversation-memory-manager.d.ts.map +1 -0
  276. package/dist/src/utils/conversation-memory-manager.js +443 -0
  277. package/dist/src/utils/conversation-memory-manager.js.map +1 -0
  278. package/dist/src/utils/dag-executor.d.ts +106 -0
  279. package/dist/src/utils/dag-executor.d.ts.map +1 -0
  280. package/dist/src/utils/dag-executor.js +420 -0
  281. package/dist/src/utils/dag-executor.js.map +1 -0
  282. package/dist/src/utils/deployment-analysis.d.ts.map +1 -1
  283. package/dist/src/utils/deployment-analysis.js +17 -9
  284. package/dist/src/utils/deployment-analysis.js.map +1 -1
  285. package/dist/src/utils/deployment-type-registry.d.ts +52 -0
  286. package/dist/src/utils/deployment-type-registry.d.ts.map +1 -0
  287. package/dist/src/utils/deployment-type-registry.js +543 -0
  288. package/dist/src/utils/deployment-type-registry.js.map +1 -0
  289. package/dist/src/utils/dynamic-deployment-intelligence.d.ts +117 -0
  290. package/dist/src/utils/dynamic-deployment-intelligence.d.ts.map +1 -0
  291. package/dist/src/utils/dynamic-deployment-intelligence.js +445 -0
  292. package/dist/src/utils/dynamic-deployment-intelligence.js.map +1 -0
  293. package/dist/src/utils/environment-analysis.d.ts.map +1 -1
  294. package/dist/src/utils/environment-analysis.js +63 -44
  295. package/dist/src/utils/environment-analysis.js.map +1 -1
  296. package/dist/src/utils/environment-capability-registry.d.ts +101 -0
  297. package/dist/src/utils/environment-capability-registry.d.ts.map +1 -0
  298. package/dist/src/utils/environment-capability-registry.js +489 -0
  299. package/dist/src/utils/environment-capability-registry.js.map +1 -0
  300. package/dist/src/utils/index.d.ts +3 -3
  301. package/dist/src/utils/index.d.ts.map +1 -1
  302. package/dist/src/utils/index.js +3 -3
  303. package/dist/src/utils/index.js.map +1 -1
  304. package/dist/src/utils/knowledge-generation.d.ts.map +1 -1
  305. package/dist/src/utils/knowledge-generation.js +61 -35
  306. package/dist/src/utils/knowledge-generation.js.map +1 -1
  307. package/dist/src/utils/knowledge-graph-manager.d.ts +19 -0
  308. package/dist/src/utils/knowledge-graph-manager.d.ts.map +1 -1
  309. package/dist/src/utils/knowledge-graph-manager.js +165 -1
  310. package/dist/src/utils/knowledge-graph-manager.js.map +1 -1
  311. package/dist/src/utils/llm-artifact-detector.d.ts.map +1 -1
  312. package/dist/src/utils/llm-artifact-detector.js +28 -24
  313. package/dist/src/utils/llm-artifact-detector.js.map +1 -1
  314. package/dist/src/utils/mermaid-diagrams.d.ts +101 -0
  315. package/dist/src/utils/mermaid-diagrams.d.ts.map +1 -0
  316. package/dist/src/utils/mermaid-diagrams.js +445 -0
  317. package/dist/src/utils/mermaid-diagrams.js.map +1 -0
  318. package/dist/src/utils/monitoring.d.ts +249 -0
  319. package/dist/src/utils/monitoring.d.ts.map +1 -0
  320. package/dist/src/utils/monitoring.js +513 -0
  321. package/dist/src/utils/monitoring.js.map +1 -0
  322. package/dist/src/utils/pattern-contribution-helper.d.ts +60 -0
  323. package/dist/src/utils/pattern-contribution-helper.d.ts.map +1 -0
  324. package/dist/src/utils/pattern-contribution-helper.js +308 -0
  325. package/dist/src/utils/pattern-contribution-helper.js.map +1 -0
  326. package/dist/src/utils/pattern-loader.d.ts +183 -0
  327. package/dist/src/utils/pattern-loader.d.ts.map +1 -0
  328. package/dist/src/utils/pattern-loader.js +200 -0
  329. package/dist/src/utils/pattern-loader.js.map +1 -0
  330. package/dist/src/utils/pattern-research-utility.d.ts +107 -0
  331. package/dist/src/utils/pattern-research-utility.d.ts.map +1 -0
  332. package/dist/src/utils/pattern-research-utility.js +360 -0
  333. package/dist/src/utils/pattern-research-utility.js.map +1 -0
  334. package/dist/src/utils/pattern-to-dag-converter.d.ts +62 -0
  335. package/dist/src/utils/pattern-to-dag-converter.d.ts.map +1 -0
  336. package/dist/src/utils/pattern-to-dag-converter.js +265 -0
  337. package/dist/src/utils/pattern-to-dag-converter.js.map +1 -0
  338. package/dist/src/utils/platform-detector.d.ts +86 -0
  339. package/dist/src/utils/platform-detector.d.ts.map +1 -0
  340. package/dist/src/utils/platform-detector.js +509 -0
  341. package/dist/src/utils/platform-detector.js.map +1 -0
  342. package/dist/src/utils/prompt-composition.d.ts.map +1 -1
  343. package/dist/src/utils/prompt-composition.js +1 -4
  344. package/dist/src/utils/prompt-composition.js.map +1 -1
  345. package/dist/src/utils/reflexion.d.ts.map +1 -1
  346. package/dist/src/utils/reflexion.js +51 -42
  347. package/dist/src/utils/reflexion.js.map +1 -1
  348. package/dist/src/utils/research-integration.d.ts.map +1 -1
  349. package/dist/src/utils/research-integration.js +8 -2
  350. package/dist/src/utils/research-integration.js.map +1 -1
  351. package/dist/src/utils/research-orchestrator.d.ts +209 -0
  352. package/dist/src/utils/research-orchestrator.d.ts.map +1 -0
  353. package/dist/src/utils/research-orchestrator.js +863 -0
  354. package/dist/src/utils/research-orchestrator.js.map +1 -0
  355. package/dist/src/utils/research-questions.d.ts.map +1 -1
  356. package/dist/src/utils/research-questions.js +4 -1
  357. package/dist/src/utils/research-questions.js.map +1 -1
  358. package/dist/src/utils/resource-extractor.d.ts +57 -0
  359. package/dist/src/utils/resource-extractor.d.ts.map +1 -0
  360. package/dist/src/utils/resource-extractor.js +323 -0
  361. package/dist/src/utils/resource-extractor.js.map +1 -0
  362. package/dist/src/utils/resource-versioning.d.ts +124 -0
  363. package/dist/src/utils/resource-versioning.d.ts.map +1 -0
  364. package/dist/src/utils/resource-versioning.js +272 -0
  365. package/dist/src/utils/resource-versioning.js.map +1 -0
  366. package/dist/src/utils/root-manager.d.ts +118 -0
  367. package/dist/src/utils/root-manager.d.ts.map +1 -0
  368. package/dist/src/utils/root-manager.js +154 -0
  369. package/dist/src/utils/root-manager.js.map +1 -0
  370. package/dist/src/utils/rule-generation.d.ts.map +1 -1
  371. package/dist/src/utils/rule-generation.js +4 -1
  372. package/dist/src/utils/rule-generation.js.map +1 -1
  373. package/dist/src/utils/server-context-generator.d.ts +47 -0
  374. package/dist/src/utils/server-context-generator.d.ts.map +1 -0
  375. package/dist/src/utils/server-context-generator.js +666 -0
  376. package/dist/src/utils/server-context-generator.js.map +1 -0
  377. package/dist/src/utils/state-reinforcement-manager.d.ts +60 -0
  378. package/dist/src/utils/state-reinforcement-manager.d.ts.map +1 -0
  379. package/dist/src/utils/state-reinforcement-manager.js +200 -0
  380. package/dist/src/utils/state-reinforcement-manager.js.map +1 -0
  381. package/dist/src/utils/system-card-manager.d.ts +194 -0
  382. package/dist/src/utils/system-card-manager.d.ts.map +1 -0
  383. package/dist/src/utils/system-card-manager.js +336 -0
  384. package/dist/src/utils/system-card-manager.js.map +1 -0
  385. package/dist/src/utils/tiered-response-manager.d.ts +40 -0
  386. package/dist/src/utils/tiered-response-manager.d.ts.map +1 -0
  387. package/dist/src/utils/tiered-response-manager.js +243 -0
  388. package/dist/src/utils/tiered-response-manager.js.map +1 -0
  389. package/dist/src/utils/tree-sitter-analyzer.d.ts.map +1 -1
  390. package/dist/src/utils/tree-sitter-analyzer.js +83 -11
  391. package/dist/src/utils/tree-sitter-analyzer.js.map +1 -1
  392. package/dist/src/utils/validated-pattern-definitions.d.ts +219 -0
  393. package/dist/src/utils/validated-pattern-definitions.d.ts.map +1 -0
  394. package/dist/src/utils/validated-pattern-definitions.js +1511 -0
  395. package/dist/src/utils/validated-pattern-definitions.js.map +1 -0
  396. package/package.json +21 -12
  397. package/dist/src/prompts/todo-prompts.d.ts +0 -49
  398. package/dist/src/prompts/todo-prompts.d.ts.map +0 -1
  399. package/dist/src/prompts/todo-prompts.js +0 -824
  400. package/dist/src/prompts/todo-prompts.js.map +0 -1
  401. package/dist/src/types/todo-json-schemas.d.ts +0 -17
  402. package/dist/src/types/todo-json-schemas.d.ts.map +0 -1
  403. package/dist/src/types/todo-json-schemas.js +0 -9
  404. package/dist/src/types/todo-json-schemas.js.map +0 -1
  405. package/dist/src/utils/todo-file-watcher.d.ts +0 -14
  406. package/dist/src/utils/todo-file-watcher.d.ts.map +0 -1
  407. package/dist/src/utils/todo-file-watcher.js +0 -25
  408. package/dist/src/utils/todo-file-watcher.js.map +0 -1
@@ -16,7 +16,7 @@ const DEFAULT_APE_CONFIG = {
16
16
  performanceTracking: true,
17
17
  maxOptimizationTime: 180000, // 3 minutes
18
18
  qualityThreshold: 0.7,
19
- diversityWeight: 0.3
19
+ diversityWeight: 0.3,
20
20
  };
21
21
  const APE_VERSION = '1.0.0';
22
22
  // ============================================================================
@@ -37,8 +37,12 @@ export async function optimizePromptWithAPE(originalPrompt, config = {}) {
37
37
  const mergedConfig = { ...DEFAULT_APE_CONFIG, ...config };
38
38
  console.error(`[DEBUG] Generating APE optimization prompt for prompt optimization`);
39
39
  // Generate cache key for this optimization request
40
- const contextHash = Buffer.from(JSON.stringify(originalPrompt)).toString('base64').substring(0, 16);
41
- const configHash = Buffer.from(JSON.stringify(mergedConfig)).toString('base64').substring(0, 16);
40
+ const contextHash = Buffer.from(JSON.stringify(originalPrompt))
41
+ .toString('base64')
42
+ .substring(0, 16);
43
+ const configHash = Buffer.from(JSON.stringify(mergedConfig))
44
+ .toString('base64')
45
+ .substring(0, 16);
42
46
  const cacheKey = `ape:optimization:${contextHash}-${configHash}`;
43
47
  // Create comprehensive APE optimization prompt
44
48
  const prompt = `
@@ -101,17 +105,19 @@ Create ${mergedConfig.candidateCount} prompt variations using these strategies:
101
105
  ### Step 2: Evaluate Prompt Candidates
102
106
  Evaluate each candidate on these criteria (0-1 scale):
103
107
 
104
- ${mergedConfig.evaluationCriteria.map(criterion => {
108
+ ${mergedConfig.evaluationCriteria
109
+ .map(criterion => {
105
110
  const descriptions = {
106
111
  'task-completion': 'How well the prompt achieves the intended task outcome',
107
- 'clarity': 'How clear, unambiguous, and easy to understand the prompt is',
108
- 'specificity': 'How specific, actionable, and detailed the prompt is',
109
- 'robustness': 'How well the prompt handles edge cases and variations',
110
- 'efficiency': 'How concise yet comprehensive the prompt is',
111
- 'context-awareness': 'How well the prompt fits the specific context and domain'
112
+ clarity: 'How clear, unambiguous, and easy to understand the prompt is',
113
+ specificity: 'How specific, actionable, and detailed the prompt is',
114
+ robustness: 'How well the prompt handles edge cases and variations',
115
+ efficiency: 'How concise yet comprehensive the prompt is',
116
+ 'context-awareness': 'How well the prompt fits the specific context and domain',
112
117
  };
113
118
  return `- **${criterion}**: ${descriptions[criterion] || 'Evaluate based on this criterion'}`;
114
- }).join('\n')}
119
+ })
120
+ .join('\n')}
115
121
 
116
122
  ### Step 3: Apply Selection Strategy (${mergedConfig.selectionStrategy})
117
123
  ${getSelectionStrategyDescription(mergedConfig.selectionStrategy)}
@@ -230,8 +236,8 @@ You must:
230
236
  version: APE_VERSION,
231
237
  timestamp: Date.now(),
232
238
  securityLevel: 'high',
233
- expectedFormat: 'json'
234
- }
239
+ expectedFormat: 'json',
240
+ },
235
241
  };
236
242
  }
237
243
  catch (error) {
@@ -350,8 +356,8 @@ You must:
350
356
  version: APE_VERSION,
351
357
  timestamp: Date.now(),
352
358
  securityLevel: 'medium',
353
- expectedFormat: 'json'
354
- }
359
+ expectedFormat: 'json',
360
+ },
355
361
  };
356
362
  }
357
363
  catch (error) {
@@ -371,7 +377,8 @@ export async function evaluatePromptPerformance(candidates, evaluationCriteria,
371
377
  Please evaluate the following ${candidates.length} candidates using the specified criteria.
372
378
 
373
379
  ## Candidates to Evaluate
374
- ${candidates.map((candidate, index) => `
380
+ ${candidates
381
+ .map((candidate, index) => `
375
382
  ### Candidate ${index + 1}: ${candidate.id}
376
383
  **Strategy**: ${candidate.generationStrategy}
377
384
  **Prompt**:
@@ -383,7 +390,8 @@ ${candidate.prompt}
383
390
  ${candidate.instructions}
384
391
  \`\`\`
385
392
  **Metadata**: ${JSON.stringify(candidate.metadata, null, 2)}
386
- `).join('\n')}
393
+ `)
394
+ .join('\n')}
387
395
 
388
396
  ## Evaluation Criteria
389
397
  ${evaluationCriteria.map((criterion, index) => `${index + 1}. **${criterion}**: ${getCriterionDescription(criterion)}`).join('\n')}
@@ -490,13 +498,13 @@ You must:
490
498
  candidates: candidates.map(c => c.id),
491
499
  evaluationCriteria,
492
500
  evaluationContext: context,
493
- improvementScore: 0.80, // Default improvement score for evaluation
501
+ improvementScore: 0.8, // Default improvement score for evaluation
494
502
  candidateCount: candidates.length,
495
503
  version: APE_VERSION,
496
504
  timestamp: Date.now(),
497
505
  securityLevel: 'medium',
498
- expectedFormat: 'json'
499
- }
506
+ expectedFormat: 'json',
507
+ },
500
508
  };
501
509
  }
502
510
  catch (error) {
@@ -623,12 +631,15 @@ You must:
623
631
  improvementScore: 0.85, // Default improvement score for tool optimization
624
632
  toolOptimized: true,
625
633
  candidateCount: toolConfig.apeConfig?.candidateCount || 5,
626
- evaluationCriteria: toolConfig.apeConfig?.evaluationCriteria || ['task-completion', 'clarity'],
634
+ evaluationCriteria: toolConfig.apeConfig?.evaluationCriteria || [
635
+ 'task-completion',
636
+ 'clarity',
637
+ ],
627
638
  version: APE_VERSION,
628
639
  timestamp: Date.now(),
629
640
  securityLevel: 'high',
630
- expectedFormat: 'json'
631
- }
641
+ expectedFormat: 'json',
642
+ },
632
643
  };
633
644
  }
634
645
  catch (error) {
@@ -648,7 +659,7 @@ function getStrategyDescription(strategy) {
648
659
  'style-variation': 'Adjust tone, formality, and communication style',
649
660
  'length-variation': 'Create concise, detailed, and balanced versions',
650
661
  'structure-variation': 'Reorganize content with different patterns',
651
- 'hybrid-approach': 'Combine multiple strategies for optimal results'
662
+ 'hybrid-approach': 'Combine multiple strategies for optimal results',
652
663
  };
653
664
  return descriptions[strategy] || 'Apply the specified generation strategy';
654
665
  }
@@ -658,11 +669,11 @@ function getStrategyDescription(strategy) {
658
669
  function getCriterionDescription(criterion) {
659
670
  const descriptions = {
660
671
  'task-completion': 'How well the prompt achieves the intended task outcome',
661
- 'clarity': 'How clear, unambiguous, and easy to understand the prompt is',
662
- 'specificity': 'How specific, actionable, and detailed the prompt is',
663
- 'robustness': 'How well the prompt handles edge cases and variations',
664
- 'efficiency': 'How concise yet comprehensive the prompt is',
665
- 'context-awareness': 'How well the prompt fits the specific context and domain'
672
+ clarity: 'How clear, unambiguous, and easy to understand the prompt is',
673
+ specificity: 'How specific, actionable, and detailed the prompt is',
674
+ robustness: 'How well the prompt handles edge cases and variations',
675
+ efficiency: 'How concise yet comprehensive the prompt is',
676
+ 'context-awareness': 'How well the prompt fits the specific context and domain',
666
677
  };
667
678
  return descriptions[criterion] || 'Evaluate based on this criterion';
668
679
  }
@@ -673,9 +684,9 @@ function getSelectionStrategyDescription(strategy) {
673
684
  const descriptions = {
674
685
  'highest-score': 'Select the candidate with the highest overall evaluation score',
675
686
  'multi-criteria': 'Balance multiple evaluation criteria with appropriate weights',
676
- 'ensemble': 'Combine strengths of multiple high-performing candidates',
687
+ ensemble: 'Combine strengths of multiple high-performing candidates',
677
688
  'context-aware': 'Choose based on context-specific suitability and requirements',
678
- 'balanced': 'Balance quality, diversity, and context appropriateness'
689
+ balanced: 'Balance quality, diversity, and context appropriateness',
679
690
  };
680
691
  return descriptions[strategy] || 'Apply the specified selection strategy';
681
692
  }
@@ -684,37 +695,38 @@ function getSelectionStrategyDescription(strategy) {
684
695
  */
685
696
  function getToolOptimizationPriorities(toolName) {
686
697
  const priorities = {
687
- 'generate_adrs_from_prd': `
698
+ generate_adrs_from_prd: `
688
699
  - **Context Analysis**: Better understanding of PRD requirements and constraints
689
700
  - **Decision Quality**: Clearer architectural decision rationale and justification
690
701
  - **Stakeholder Alignment**: Improved ADR clarity and relevance for stakeholders
691
702
  - **Technical Depth**: Appropriate level of technical detail for the context`,
692
- 'suggest_adrs': `
703
+ suggest_adrs: `
693
704
  - **Relevance**: Highly relevant ADR suggestions based on project context
694
705
  - **Prioritization**: Clear prioritization of suggested ADRs by importance
695
706
  - **Feasibility**: Realistic and implementable architectural decisions
696
707
  - **Impact Assessment**: Clear understanding of decision impacts and trade-offs`,
697
- 'analyze_project_ecosystem': `
708
+ analyze_project_ecosystem: `
698
709
  - **Technology Detection**: Accurate identification of technologies and frameworks
699
710
  - **Pattern Recognition**: Better identification of architectural patterns
700
711
  - **Context Understanding**: Comprehensive project context analysis
701
712
  - **Insight Generation**: Valuable and actionable architectural insights`,
702
- 'generate_research_questions': `
713
+ generate_research_questions: `
703
714
  - **Question Quality**: High-quality, targeted research questions
704
715
  - **Relevance**: Questions directly relevant to project needs
705
716
  - **Depth**: Appropriate depth and scope for research objectives
706
717
  - **Actionability**: Questions that lead to actionable insights`,
707
- 'incorporate_research': `
718
+ incorporate_research: `
708
719
  - **Integration Quality**: Effective integration of research findings
709
720
  - **Synthesis**: Good synthesis of multiple research sources
710
721
  - **Relevance**: Focus on most relevant research findings
711
- - **Actionability**: Clear actionable recommendations from research`
722
+ - **Actionability**: Clear actionable recommendations from research`,
712
723
  };
713
- return priorities[toolName] || `
724
+ return (priorities[toolName] ||
725
+ `
714
726
  - **Task Effectiveness**: Optimize for the tool's primary task objectives
715
727
  - **Context Awareness**: Improve understanding of tool-specific context
716
728
  - **Output Quality**: Enhance the quality and relevance of tool outputs
717
- - **User Experience**: Improve clarity and usability of tool interactions`;
729
+ - **User Experience**: Improve clarity and usability of tool interactions`);
718
730
  }
719
731
  /**
720
732
  * Generate cache key for APE optimization requests
@@ -733,19 +745,23 @@ export function getDefaultAPEConfig() {
733
745
  * Validate APE configuration
734
746
  */
735
747
  export function validateAPEConfig(config) {
736
- if (config.candidateCount !== undefined && (config.candidateCount < 1 || config.candidateCount > 10)) {
748
+ if (config.candidateCount !== undefined &&
749
+ (config.candidateCount < 1 || config.candidateCount > 10)) {
737
750
  throw new McpAdrError('Candidate count must be between 1 and 10', 'INVALID_CONFIG');
738
751
  }
739
- if (config.optimizationRounds !== undefined && (config.optimizationRounds < 1 || config.optimizationRounds > 5)) {
752
+ if (config.optimizationRounds !== undefined &&
753
+ (config.optimizationRounds < 1 || config.optimizationRounds > 5)) {
740
754
  throw new McpAdrError('Optimization rounds must be between 1 and 5', 'INVALID_CONFIG');
741
755
  }
742
- if (config.qualityThreshold !== undefined && (config.qualityThreshold < 0 || config.qualityThreshold > 1)) {
756
+ if (config.qualityThreshold !== undefined &&
757
+ (config.qualityThreshold < 0 || config.qualityThreshold > 1)) {
743
758
  throw new McpAdrError('Quality threshold must be between 0 and 1', 'INVALID_CONFIG');
744
759
  }
745
760
  if (config.maxOptimizationTime !== undefined && config.maxOptimizationTime <= 0) {
746
761
  throw new McpAdrError('Max optimization time must be positive', 'INVALID_CONFIG');
747
762
  }
748
- if (config.diversityWeight !== undefined && (config.diversityWeight < 0 || config.diversityWeight > 1)) {
763
+ if (config.diversityWeight !== undefined &&
764
+ (config.diversityWeight < 0 || config.diversityWeight > 1)) {
749
765
  throw new McpAdrError('Diversity weight must be between 0 and 1', 'INVALID_CONFIG');
750
766
  }
751
767
  }
@@ -759,7 +775,7 @@ export function getSupportedGenerationStrategies() {
759
775
  'style-variation',
760
776
  'length-variation',
761
777
  'structure-variation',
762
- 'hybrid-approach'
778
+ 'hybrid-approach',
763
779
  ];
764
780
  }
765
781
  /**
@@ -772,47 +788,41 @@ export function getSupportedEvaluationCriteria() {
772
788
  'specificity',
773
789
  'robustness',
774
790
  'efficiency',
775
- 'context-awareness'
791
+ 'context-awareness',
776
792
  ];
777
793
  }
778
794
  /**
779
795
  * Get supported selection strategies
780
796
  */
781
797
  export function getSupportedSelectionStrategies() {
782
- return [
783
- 'highest-score',
784
- 'multi-criteria',
785
- 'ensemble',
786
- 'context-aware',
787
- 'balanced'
788
- ];
798
+ return ['highest-score', 'multi-criteria', 'ensemble', 'context-aware', 'balanced'];
789
799
  }
790
800
  /**
791
801
  * Create tool-specific APE configuration
792
802
  */
793
803
  export function createToolAPEConfig(toolName, customConfig = {}) {
794
804
  const toolConfigs = {
795
- 'generate_adrs_from_prd': {
805
+ generate_adrs_from_prd: {
796
806
  candidateCount: 7,
797
807
  evaluationCriteria: ['task-completion', 'specificity', 'clarity', 'robustness'],
798
808
  optimizationRounds: 3,
799
809
  selectionStrategy: 'multi-criteria',
800
- qualityThreshold: 0.75
810
+ qualityThreshold: 0.75,
801
811
  },
802
- 'suggest_adrs': {
812
+ suggest_adrs: {
803
813
  candidateCount: 6,
804
814
  evaluationCriteria: ['task-completion', 'context-awareness', 'clarity'],
805
815
  optimizationRounds: 2,
806
816
  selectionStrategy: 'context-aware',
807
- qualityThreshold: 0.7
817
+ qualityThreshold: 0.7,
808
818
  },
809
- 'analyze_project_ecosystem': {
819
+ analyze_project_ecosystem: {
810
820
  candidateCount: 5,
811
821
  evaluationCriteria: ['task-completion', 'specificity', 'efficiency'],
812
822
  optimizationRounds: 2,
813
823
  selectionStrategy: 'balanced',
814
- qualityThreshold: 0.65
815
- }
824
+ qualityThreshold: 0.65,
825
+ },
816
826
  };
817
827
  const toolSpecificConfig = toolConfigs[toolName] || {};
818
828
  return { ...DEFAULT_APE_CONFIG, ...toolSpecificConfig, ...customConfig };
@@ -1 +1 @@
1
- {"version":3,"file":"automatic-prompt-engineering.js","sourceRoot":"","sources":["../../../src/utils/automatic-prompt-engineering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"automatic-prompt-engineering.js","sourceRoot":"","sources":["../../../src/utils/automatic-prompt-engineering.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Conditional Request Support
3
+ *
4
+ * Implements HTTP conditional request headers (ETag, If-Modified-Since)
5
+ * for efficient resource caching and bandwidth reduction.
6
+ *
7
+ * Features:
8
+ * - ETag generation (strong and weak)
9
+ * - If-None-Match validation
10
+ * - If-Modified-Since validation
11
+ * - 304 Not Modified support
12
+ */
13
+ /**
14
+ * Generate strong ETag from content
15
+ * Format: "hash"
16
+ */
17
+ export declare function generateStrongETag(content: string | object): string;
18
+ /**
19
+ * Generate weak ETag from metadata
20
+ * Format: W/"timestamp-hash"
21
+ * Useful when content hasn't changed but metadata has
22
+ */
23
+ export declare function generateWeakETag(timestamp: string, identifier: string): string;
24
+ /**
25
+ * Parse ETag from header
26
+ * Handles both strong and weak ETags
27
+ */
28
+ export declare function parseETag(etag: string): {
29
+ value: string;
30
+ isWeak: boolean;
31
+ };
32
+ /**
33
+ * Compare two ETags for equality
34
+ * Supports both strong and weak comparison
35
+ */
36
+ export declare function compareETags(etag1: string, etag2: string, weakComparison?: boolean): boolean;
37
+ /**
38
+ * Parse If-None-Match header
39
+ * Returns array of ETags to check
40
+ */
41
+ export declare function parseIfNoneMatch(header: string): string[];
42
+ /**
43
+ * Check if resource matches If-None-Match condition
44
+ * Returns true if resource has NOT been modified
45
+ */
46
+ export declare function checkIfNoneMatch(currentETag: string, ifNoneMatchHeader: string): boolean;
47
+ /**
48
+ * Parse If-Modified-Since header to Date
49
+ */
50
+ export declare function parseIfModifiedSince(header: string): Date | null;
51
+ /**
52
+ * Check if resource has been modified since given date
53
+ * Returns true if resource has been modified
54
+ */
55
+ export declare function checkIfModifiedSince(lastModified: string, ifModifiedSinceHeader: string): boolean;
56
+ /**
57
+ * Evaluate conditional request
58
+ * Returns { notModified: boolean, reason?: string }
59
+ */
60
+ export interface ConditionalRequestResult {
61
+ notModified: boolean;
62
+ reason?: string;
63
+ }
64
+ export declare function evaluateConditionalRequest(params: {
65
+ currentETag: string;
66
+ lastModified: string;
67
+ ifNoneMatch?: string;
68
+ ifModifiedSince?: string;
69
+ }): ConditionalRequestResult;
70
+ /**
71
+ * Generate HTTP cache headers for response
72
+ */
73
+ export interface CacheHeaders {
74
+ 'ETag': string;
75
+ 'Last-Modified': string;
76
+ 'Cache-Control': string;
77
+ 'Vary'?: string;
78
+ }
79
+ export declare function generateCacheHeaders(params: {
80
+ etag: string;
81
+ lastModified: string;
82
+ maxAge?: number;
83
+ mustRevalidate?: boolean;
84
+ vary?: string[];
85
+ }): CacheHeaders;
86
+ /**
87
+ * Create 304 Not Modified response metadata
88
+ */
89
+ export interface NotModifiedResponse {
90
+ status: 304;
91
+ statusText: 'Not Modified';
92
+ headers: CacheHeaders;
93
+ body?: never;
94
+ }
95
+ export declare function createNotModifiedResponse(params: {
96
+ etag: string;
97
+ lastModified: string;
98
+ maxAge?: number;
99
+ }): NotModifiedResponse;
100
+ /**
101
+ * Calculate cache freshness
102
+ * Returns true if cache is still fresh
103
+ */
104
+ export declare function isCacheFresh(lastModified: string, maxAge: number): boolean;
105
+ //# sourceMappingURL=conditional-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditional-request.d.ts","sourceRoot":"","sources":["../../../src/utils/conditional-request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAInE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAG9E;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAI1E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,UAAQ,GAAG,OAAO,CAc1F;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAYzD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAcxF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAWhE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAajG;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,wBAAwB,CAwB3B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,GAAG,YAAY,CAsBf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,GAAG,CAAC;IACZ,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,KAAK,CAAC;CACd;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,mBAAmB,CAmBtB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAQ1E"}
@@ -0,0 +1,186 @@
1
+ /**
2
+ * Conditional Request Support
3
+ *
4
+ * Implements HTTP conditional request headers (ETag, If-Modified-Since)
5
+ * for efficient resource caching and bandwidth reduction.
6
+ *
7
+ * Features:
8
+ * - ETag generation (strong and weak)
9
+ * - If-None-Match validation
10
+ * - If-Modified-Since validation
11
+ * - 304 Not Modified support
12
+ */
13
+ import crypto from 'crypto';
14
+ /**
15
+ * Generate strong ETag from content
16
+ * Format: "hash"
17
+ */
18
+ export function generateStrongETag(content) {
19
+ const data = typeof content === 'string' ? content : JSON.stringify(content);
20
+ const hash = crypto.createHash('sha256').update(data).digest('hex').substring(0, 16);
21
+ return `"${hash}"`;
22
+ }
23
+ /**
24
+ * Generate weak ETag from metadata
25
+ * Format: W/"timestamp-hash"
26
+ * Useful when content hasn't changed but metadata has
27
+ */
28
+ export function generateWeakETag(timestamp, identifier) {
29
+ const hash = crypto.createHash('md5').update(`${timestamp}:${identifier}`).digest('hex').substring(0, 8);
30
+ return `W/"${timestamp.substring(0, 10)}-${hash}"`;
31
+ }
32
+ /**
33
+ * Parse ETag from header
34
+ * Handles both strong and weak ETags
35
+ */
36
+ export function parseETag(etag) {
37
+ const isWeak = etag.startsWith('W/');
38
+ const value = isWeak ? etag.substring(3) : etag;
39
+ return { value: value.replace(/"/g, ''), isWeak };
40
+ }
41
+ /**
42
+ * Compare two ETags for equality
43
+ * Supports both strong and weak comparison
44
+ */
45
+ export function compareETags(etag1, etag2, weakComparison = false) {
46
+ const parsed1 = parseETag(etag1);
47
+ const parsed2 = parseETag(etag2);
48
+ // Strong comparison: both must be strong and equal
49
+ if (!weakComparison) {
50
+ if (parsed1.isWeak || parsed2.isWeak) {
51
+ return false;
52
+ }
53
+ return parsed1.value === parsed2.value;
54
+ }
55
+ // Weak comparison: values must match (ignoring weak flag)
56
+ return parsed1.value === parsed2.value;
57
+ }
58
+ /**
59
+ * Parse If-None-Match header
60
+ * Returns array of ETags to check
61
+ */
62
+ export function parseIfNoneMatch(header) {
63
+ if (!header) {
64
+ return [];
65
+ }
66
+ // Handle wildcard
67
+ if (header.trim() === '*') {
68
+ return ['*'];
69
+ }
70
+ // Split by comma and trim
71
+ return header.split(',').map((etag) => etag.trim());
72
+ }
73
+ /**
74
+ * Check if resource matches If-None-Match condition
75
+ * Returns true if resource has NOT been modified
76
+ */
77
+ export function checkIfNoneMatch(currentETag, ifNoneMatchHeader) {
78
+ if (!ifNoneMatchHeader) {
79
+ return false;
80
+ }
81
+ const etags = parseIfNoneMatch(ifNoneMatchHeader);
82
+ // Wildcard matches any resource
83
+ if (etags.includes('*')) {
84
+ return true;
85
+ }
86
+ // Check if current ETag matches any in the list
87
+ return etags.some((etag) => compareETags(currentETag, etag, true));
88
+ }
89
+ /**
90
+ * Parse If-Modified-Since header to Date
91
+ */
92
+ export function parseIfModifiedSince(header) {
93
+ if (!header) {
94
+ return null;
95
+ }
96
+ try {
97
+ const date = new Date(header);
98
+ return isNaN(date.getTime()) ? null : date;
99
+ }
100
+ catch {
101
+ return null;
102
+ }
103
+ }
104
+ /**
105
+ * Check if resource has been modified since given date
106
+ * Returns true if resource has been modified
107
+ */
108
+ export function checkIfModifiedSince(lastModified, ifModifiedSinceHeader) {
109
+ const ifModifiedSince = parseIfModifiedSince(ifModifiedSinceHeader);
110
+ if (!ifModifiedSince) {
111
+ return true; // No header, treat as modified
112
+ }
113
+ const lastModifiedDate = new Date(lastModified);
114
+ if (isNaN(lastModifiedDate.getTime())) {
115
+ return true; // Invalid date, treat as modified
116
+ }
117
+ // Resource is modified if lastModified > ifModifiedSince
118
+ return lastModifiedDate > ifModifiedSince;
119
+ }
120
+ export function evaluateConditionalRequest(params) {
121
+ const { currentETag, lastModified, ifNoneMatch, ifModifiedSince } = params;
122
+ // If-None-Match has priority over If-Modified-Since
123
+ if (ifNoneMatch) {
124
+ const matches = checkIfNoneMatch(currentETag, ifNoneMatch);
125
+ if (matches) {
126
+ return { notModified: true, reason: 'ETag match' };
127
+ }
128
+ // If-None-Match present but doesn't match, resource is modified
129
+ return { notModified: false, reason: 'ETag mismatch' };
130
+ }
131
+ // Check If-Modified-Since
132
+ if (ifModifiedSince) {
133
+ const modified = checkIfModifiedSince(lastModified, ifModifiedSince);
134
+ if (!modified) {
135
+ return { notModified: true, reason: 'Not modified since' };
136
+ }
137
+ return { notModified: false, reason: 'Modified since' };
138
+ }
139
+ // No conditional headers present
140
+ return { notModified: false, reason: 'No conditional headers' };
141
+ }
142
+ export function generateCacheHeaders(params) {
143
+ const { etag, lastModified, maxAge = 300, mustRevalidate = true, vary } = params;
144
+ const cacheControl = [
145
+ `max-age=${maxAge}`,
146
+ mustRevalidate ? 'must-revalidate' : '',
147
+ 'private', // Resources are user-specific
148
+ ]
149
+ .filter(Boolean)
150
+ .join(', ');
151
+ const headers = {
152
+ ETag: etag,
153
+ 'Last-Modified': lastModified,
154
+ 'Cache-Control': cacheControl,
155
+ };
156
+ if (vary && vary.length > 0) {
157
+ headers.Vary = vary.join(', ');
158
+ }
159
+ return headers;
160
+ }
161
+ export function createNotModifiedResponse(params) {
162
+ const { etag, lastModified, maxAge } = params;
163
+ // Build headers params without undefined values
164
+ const headersParams = { etag, lastModified };
165
+ if (maxAge !== undefined) {
166
+ headersParams.maxAge = maxAge;
167
+ }
168
+ return {
169
+ status: 304,
170
+ statusText: 'Not Modified',
171
+ headers: generateCacheHeaders(headersParams),
172
+ };
173
+ }
174
+ /**
175
+ * Calculate cache freshness
176
+ * Returns true if cache is still fresh
177
+ */
178
+ export function isCacheFresh(lastModified, maxAge) {
179
+ const lastModifiedDate = new Date(lastModified);
180
+ if (isNaN(lastModifiedDate.getTime())) {
181
+ return false;
182
+ }
183
+ const ageSeconds = (Date.now() - lastModifiedDate.getTime()) / 1000;
184
+ return ageSeconds < maxAge;
185
+ }
186
+ //# sourceMappingURL=conditional-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditional-request.js","sourceRoot":"","sources":["../../../src/utils/conditional-request.ts"],"names":[],"mappings":"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"}