opencode-telos 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 (568) hide show
  1. package/README.md +927 -0
  2. package/dist/code-intelligence/analyzer.d.ts +9 -0
  3. package/dist/code-intelligence/analyzer.d.ts.map +1 -0
  4. package/dist/code-intelligence/analyzer.js +321 -0
  5. package/dist/code-intelligence/analyzer.js.map +1 -0
  6. package/dist/code-intelligence/ast/cache.d.ts +16 -0
  7. package/dist/code-intelligence/ast/cache.d.ts.map +1 -0
  8. package/dist/code-intelligence/ast/cache.js +44 -0
  9. package/dist/code-intelligence/ast/cache.js.map +1 -0
  10. package/dist/code-intelligence/ast/common.d.ts +8 -0
  11. package/dist/code-intelligence/ast/common.d.ts.map +1 -0
  12. package/dist/code-intelligence/ast/common.js +42 -0
  13. package/dist/code-intelligence/ast/common.js.map +1 -0
  14. package/dist/code-intelligence/ast/component.d.ts +10 -0
  15. package/dist/code-intelligence/ast/component.d.ts.map +1 -0
  16. package/dist/code-intelligence/ast/component.js +38 -0
  17. package/dist/code-intelligence/ast/component.js.map +1 -0
  18. package/dist/code-intelligence/ast/fallback.d.ts +9 -0
  19. package/dist/code-intelligence/ast/fallback.d.ts.map +1 -0
  20. package/dist/code-intelligence/ast/fallback.js +38 -0
  21. package/dist/code-intelligence/ast/fallback.js.map +1 -0
  22. package/dist/code-intelligence/ast/index.d.ts +5 -0
  23. package/dist/code-intelligence/ast/index.d.ts.map +1 -0
  24. package/dist/code-intelligence/ast/index.js +5 -0
  25. package/dist/code-intelligence/ast/index.js.map +1 -0
  26. package/dist/code-intelligence/ast/ir.d.ts +72 -0
  27. package/dist/code-intelligence/ast/ir.d.ts.map +1 -0
  28. package/dist/code-intelligence/ast/ir.js +2 -0
  29. package/dist/code-intelligence/ast/ir.js.map +1 -0
  30. package/dist/code-intelligence/ast/metrics.d.ts +25 -0
  31. package/dist/code-intelligence/ast/metrics.d.ts.map +1 -0
  32. package/dist/code-intelligence/ast/metrics.js +38 -0
  33. package/dist/code-intelligence/ast/metrics.js.map +1 -0
  34. package/dist/code-intelligence/ast/registry.d.ts +5 -0
  35. package/dist/code-intelligence/ast/registry.d.ts.map +1 -0
  36. package/dist/code-intelligence/ast/registry.js +22 -0
  37. package/dist/code-intelligence/ast/registry.js.map +1 -0
  38. package/dist/code-intelligence/ast/tree-sitter.d.ts +8 -0
  39. package/dist/code-intelligence/ast/tree-sitter.d.ts.map +1 -0
  40. package/dist/code-intelligence/ast/tree-sitter.js +247 -0
  41. package/dist/code-intelligence/ast/tree-sitter.js.map +1 -0
  42. package/dist/code-intelligence/ast/typescript.d.ts +8 -0
  43. package/dist/code-intelligence/ast/typescript.d.ts.map +1 -0
  44. package/dist/code-intelligence/ast/typescript.js +147 -0
  45. package/dist/code-intelligence/ast/typescript.js.map +1 -0
  46. package/dist/index.d.ts +10 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +18 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/mcp/server.d.ts +27 -0
  51. package/dist/mcp/server.d.ts.map +1 -0
  52. package/dist/mcp/server.js +67 -0
  53. package/dist/mcp/server.js.map +1 -0
  54. package/dist/opencode/hooks.d.ts +9 -0
  55. package/dist/opencode/hooks.d.ts.map +1 -0
  56. package/dist/opencode/hooks.js +583 -0
  57. package/dist/opencode/hooks.js.map +1 -0
  58. package/dist/opencode/router/categories.d.ts +31 -0
  59. package/dist/opencode/router/categories.d.ts.map +1 -0
  60. package/dist/opencode/router/categories.js +165 -0
  61. package/dist/opencode/router/categories.js.map +1 -0
  62. package/dist/opencode/router/embeddings.d.ts +41 -0
  63. package/dist/opencode/router/embeddings.d.ts.map +1 -0
  64. package/dist/opencode/router/embeddings.js +136 -0
  65. package/dist/opencode/router/embeddings.js.map +1 -0
  66. package/dist/opencode/router/graph-state-snapshot.d.ts +35 -0
  67. package/dist/opencode/router/graph-state-snapshot.d.ts.map +1 -0
  68. package/dist/opencode/router/graph-state-snapshot.js +129 -0
  69. package/dist/opencode/router/graph-state-snapshot.js.map +1 -0
  70. package/dist/opencode/router/index.d.ts +21 -0
  71. package/dist/opencode/router/index.d.ts.map +1 -0
  72. package/dist/opencode/router/index.js +23 -0
  73. package/dist/opencode/router/index.js.map +1 -0
  74. package/dist/opencode/router/intent-classifier.d.ts +35 -0
  75. package/dist/opencode/router/intent-classifier.d.ts.map +1 -0
  76. package/dist/opencode/router/intent-classifier.js +108 -0
  77. package/dist/opencode/router/intent-classifier.js.map +1 -0
  78. package/dist/opencode/router/semantic-nudge.d.ts +42 -0
  79. package/dist/opencode/router/semantic-nudge.d.ts.map +1 -0
  80. package/dist/opencode/router/semantic-nudge.js +73 -0
  81. package/dist/opencode/router/semantic-nudge.js.map +1 -0
  82. package/dist/opencode/router/state-gate.d.ts +25 -0
  83. package/dist/opencode/router/state-gate.d.ts.map +1 -0
  84. package/dist/opencode/router/state-gate.js +178 -0
  85. package/dist/opencode/router/state-gate.js.map +1 -0
  86. package/dist/opencode/router/tool-embeddings.d.ts +36 -0
  87. package/dist/opencode/router/tool-embeddings.d.ts.map +1 -0
  88. package/dist/opencode/router/tool-embeddings.js +140 -0
  89. package/dist/opencode/router/tool-embeddings.js.map +1 -0
  90. package/dist/opencode/router/tool-registry.d.ts +45 -0
  91. package/dist/opencode/router/tool-registry.d.ts.map +1 -0
  92. package/dist/opencode/router/tool-registry.js +103 -0
  93. package/dist/opencode/router/tool-registry.js.map +1 -0
  94. package/dist/opencode/router/tool-taxonomy.d.ts +51 -0
  95. package/dist/opencode/router/tool-taxonomy.d.ts.map +1 -0
  96. package/dist/opencode/router/tool-taxonomy.js +250 -0
  97. package/dist/opencode/router/tool-taxonomy.js.map +1 -0
  98. package/dist/opencode/router/tools-composite.d.ts +21 -0
  99. package/dist/opencode/router/tools-composite.d.ts.map +1 -0
  100. package/dist/opencode/router/tools-composite.js +684 -0
  101. package/dist/opencode/router/tools-composite.js.map +1 -0
  102. package/dist/opencode/shell-hooks.d.ts +7 -0
  103. package/dist/opencode/shell-hooks.d.ts.map +1 -0
  104. package/dist/opencode/shell-hooks.js +96 -0
  105. package/dist/opencode/shell-hooks.js.map +1 -0
  106. package/dist/opencode/system-prompt.d.ts +10 -0
  107. package/dist/opencode/system-prompt.d.ts.map +1 -0
  108. package/dist/opencode/system-prompt.js +600 -0
  109. package/dist/opencode/system-prompt.js.map +1 -0
  110. package/dist/opencode/tools.d.ts +8 -0
  111. package/dist/opencode/tools.d.ts.map +1 -0
  112. package/dist/opencode/tools.js +3731 -0
  113. package/dist/opencode/tools.js.map +1 -0
  114. package/dist/opencode/workflows/chains.d.ts +52 -0
  115. package/dist/opencode/workflows/chains.d.ts.map +1 -0
  116. package/dist/opencode/workflows/chains.js +170 -0
  117. package/dist/opencode/workflows/chains.js.map +1 -0
  118. package/dist/opencode/workflows/executor.d.ts +52 -0
  119. package/dist/opencode/workflows/executor.d.ts.map +1 -0
  120. package/dist/opencode/workflows/executor.js +130 -0
  121. package/dist/opencode/workflows/executor.js.map +1 -0
  122. package/dist/opencode/workflows/index.d.ts +14 -0
  123. package/dist/opencode/workflows/index.d.ts.map +1 -0
  124. package/dist/opencode/workflows/index.js +15 -0
  125. package/dist/opencode/workflows/index.js.map +1 -0
  126. package/dist/opencode/workflows/tools-workflow.d.ts +24 -0
  127. package/dist/opencode/workflows/tools-workflow.d.ts.map +1 -0
  128. package/dist/opencode/workflows/tools-workflow.js +85 -0
  129. package/dist/opencode/workflows/tools-workflow.js.map +1 -0
  130. package/dist/opencode/workflows/types.d.ts +32 -0
  131. package/dist/opencode/workflows/types.d.ts.map +1 -0
  132. package/dist/opencode/workflows/types.js +13 -0
  133. package/dist/opencode/workflows/types.js.map +1 -0
  134. package/dist/sdd/analysis/compliance.d.ts +30 -0
  135. package/dist/sdd/analysis/compliance.d.ts.map +1 -0
  136. package/dist/sdd/analysis/compliance.js +251 -0
  137. package/dist/sdd/analysis/compliance.js.map +1 -0
  138. package/dist/sdd/analysis/scalability.d.ts +15 -0
  139. package/dist/sdd/analysis/scalability.d.ts.map +1 -0
  140. package/dist/sdd/analysis/scalability.js +72 -0
  141. package/dist/sdd/analysis/scalability.js.map +1 -0
  142. package/dist/sdd/analysis/security.d.ts +25 -0
  143. package/dist/sdd/analysis/security.d.ts.map +1 -0
  144. package/dist/sdd/analysis/security.js +94 -0
  145. package/dist/sdd/analysis/security.js.map +1 -0
  146. package/dist/sdd/brownfield/scanner.d.ts +31 -0
  147. package/dist/sdd/brownfield/scanner.d.ts.map +1 -0
  148. package/dist/sdd/brownfield/scanner.js +228 -0
  149. package/dist/sdd/brownfield/scanner.js.map +1 -0
  150. package/dist/sdd/cache/manager.d.ts +237 -0
  151. package/dist/sdd/cache/manager.d.ts.map +1 -0
  152. package/dist/sdd/cache/manager.js +770 -0
  153. package/dist/sdd/cache/manager.js.map +1 -0
  154. package/dist/sdd/cache/snapshot-store.d.ts +39 -0
  155. package/dist/sdd/cache/snapshot-store.d.ts.map +1 -0
  156. package/dist/sdd/cache/snapshot-store.js +156 -0
  157. package/dist/sdd/cache/snapshot-store.js.map +1 -0
  158. package/dist/sdd/changes/manager.d.ts +58 -0
  159. package/dist/sdd/changes/manager.d.ts.map +1 -0
  160. package/dist/sdd/changes/manager.js +235 -0
  161. package/dist/sdd/changes/manager.js.map +1 -0
  162. package/dist/sdd/cicd/generators.d.ts +16 -0
  163. package/dist/sdd/cicd/generators.d.ts.map +1 -0
  164. package/dist/sdd/cicd/generators.js +1042 -0
  165. package/dist/sdd/cicd/generators.js.map +1 -0
  166. package/dist/sdd/code-quality/complexity.d.ts +38 -0
  167. package/dist/sdd/code-quality/complexity.d.ts.map +1 -0
  168. package/dist/sdd/code-quality/complexity.js +161 -0
  169. package/dist/sdd/code-quality/complexity.js.map +1 -0
  170. package/dist/sdd/code-quality/conventions.d.ts +33 -0
  171. package/dist/sdd/code-quality/conventions.d.ts.map +1 -0
  172. package/dist/sdd/code-quality/conventions.js +193 -0
  173. package/dist/sdd/code-quality/conventions.js.map +1 -0
  174. package/dist/sdd/code-quality/dependencies.d.ts +27 -0
  175. package/dist/sdd/code-quality/dependencies.d.ts.map +1 -0
  176. package/dist/sdd/code-quality/dependencies.js +142 -0
  177. package/dist/sdd/code-quality/dependencies.js.map +1 -0
  178. package/dist/sdd/code-quality/import-analyzer.d.ts +49 -0
  179. package/dist/sdd/code-quality/import-analyzer.d.ts.map +1 -0
  180. package/dist/sdd/code-quality/import-analyzer.js +213 -0
  181. package/dist/sdd/code-quality/import-analyzer.js.map +1 -0
  182. package/dist/sdd/code-quality/metrics.d.ts +35 -0
  183. package/dist/sdd/code-quality/metrics.d.ts.map +1 -0
  184. package/dist/sdd/code-quality/metrics.js +172 -0
  185. package/dist/sdd/code-quality/metrics.js.map +1 -0
  186. package/dist/sdd/code-quality/smells.d.ts +38 -0
  187. package/dist/sdd/code-quality/smells.d.ts.map +1 -0
  188. package/dist/sdd/code-quality/smells.js +319 -0
  189. package/dist/sdd/code-quality/smells.js.map +1 -0
  190. package/dist/sdd/code-quality/symbol-parser.d.ts +28 -0
  191. package/dist/sdd/code-quality/symbol-parser.d.ts.map +1 -0
  192. package/dist/sdd/code-quality/symbol-parser.js +230 -0
  193. package/dist/sdd/code-quality/symbol-parser.js.map +1 -0
  194. package/dist/sdd/code-quality/usage-tracker.d.ts +59 -0
  195. package/dist/sdd/code-quality/usage-tracker.d.ts.map +1 -0
  196. package/dist/sdd/code-quality/usage-tracker.js +402 -0
  197. package/dist/sdd/code-quality/usage-tracker.js.map +1 -0
  198. package/dist/sdd/code-quality/utils.d.ts +6 -0
  199. package/dist/sdd/code-quality/utils.d.ts.map +1 -0
  200. package/dist/sdd/code-quality/utils.js +14 -0
  201. package/dist/sdd/code-quality/utils.js.map +1 -0
  202. package/dist/sdd/codegen/generator.d.ts +42 -0
  203. package/dist/sdd/codegen/generator.d.ts.map +1 -0
  204. package/dist/sdd/codegen/generator.js +1023 -0
  205. package/dist/sdd/codegen/generator.js.map +1 -0
  206. package/dist/sdd/constitution/validator.d.ts +37 -0
  207. package/dist/sdd/constitution/validator.d.ts.map +1 -0
  208. package/dist/sdd/constitution/validator.js +192 -0
  209. package/dist/sdd/constitution/validator.js.map +1 -0
  210. package/dist/sdd/cost/estimator.d.ts +31 -0
  211. package/dist/sdd/cost/estimator.d.ts.map +1 -0
  212. package/dist/sdd/cost/estimator.js +92 -0
  213. package/dist/sdd/cost/estimator.js.map +1 -0
  214. package/dist/sdd/coverage/tracker.d.ts +47 -0
  215. package/dist/sdd/coverage/tracker.d.ts.map +1 -0
  216. package/dist/sdd/coverage/tracker.js +251 -0
  217. package/dist/sdd/coverage/tracker.js.map +1 -0
  218. package/dist/sdd/disaster/recovery.d.ts +11 -0
  219. package/dist/sdd/disaster/recovery.d.ts.map +1 -0
  220. package/dist/sdd/disaster/recovery.js +55 -0
  221. package/dist/sdd/disaster/recovery.js.map +1 -0
  222. package/dist/sdd/discovery/adaptive.d.ts +14 -0
  223. package/dist/sdd/discovery/adaptive.d.ts.map +1 -0
  224. package/dist/sdd/discovery/adaptive.js +145 -0
  225. package/dist/sdd/discovery/adaptive.js.map +1 -0
  226. package/dist/sdd/discovery/briefing-analyzer.d.ts +66 -0
  227. package/dist/sdd/discovery/briefing-analyzer.d.ts.map +1 -0
  228. package/dist/sdd/discovery/briefing-analyzer.js +672 -0
  229. package/dist/sdd/discovery/briefing-analyzer.js.map +1 -0
  230. package/dist/sdd/discovery/briefing.d.ts +109 -0
  231. package/dist/sdd/discovery/briefing.d.ts.map +1 -0
  232. package/dist/sdd/discovery/briefing.js +617 -0
  233. package/dist/sdd/discovery/briefing.js.map +1 -0
  234. package/dist/sdd/discovery/graph-builder.d.ts +10 -0
  235. package/dist/sdd/discovery/graph-builder.d.ts.map +1 -0
  236. package/dist/sdd/discovery/graph-builder.js +510 -0
  237. package/dist/sdd/discovery/graph-builder.js.map +1 -0
  238. package/dist/sdd/documentation/generator.d.ts +7 -0
  239. package/dist/sdd/documentation/generator.d.ts.map +1 -0
  240. package/dist/sdd/documentation/generator.js +119 -0
  241. package/dist/sdd/documentation/generator.js.map +1 -0
  242. package/dist/sdd/domain/types.d.ts +460 -0
  243. package/dist/sdd/domain/types.d.ts.map +1 -0
  244. package/dist/sdd/domain/types.js +25 -0
  245. package/dist/sdd/domain/types.js.map +1 -0
  246. package/dist/sdd/drift/detector.d.ts +28 -0
  247. package/dist/sdd/drift/detector.d.ts.map +1 -0
  248. package/dist/sdd/drift/detector.js +379 -0
  249. package/dist/sdd/drift/detector.js.map +1 -0
  250. package/dist/sdd/drift/exclusion.d.ts +54 -0
  251. package/dist/sdd/drift/exclusion.d.ts.map +1 -0
  252. package/dist/sdd/drift/exclusion.js +179 -0
  253. package/dist/sdd/drift/exclusion.js.map +1 -0
  254. package/dist/sdd/drift/signals.d.ts +52 -0
  255. package/dist/sdd/drift/signals.d.ts.map +1 -0
  256. package/dist/sdd/drift/signals.js +470 -0
  257. package/dist/sdd/drift/signals.js.map +1 -0
  258. package/dist/sdd/enforcement/interceptor.d.ts +47 -0
  259. package/dist/sdd/enforcement/interceptor.d.ts.map +1 -0
  260. package/dist/sdd/enforcement/interceptor.js +365 -0
  261. package/dist/sdd/enforcement/interceptor.js.map +1 -0
  262. package/dist/sdd/enforcement/workflow-tracker.d.ts +66 -0
  263. package/dist/sdd/enforcement/workflow-tracker.d.ts.map +1 -0
  264. package/dist/sdd/enforcement/workflow-tracker.js +229 -0
  265. package/dist/sdd/enforcement/workflow-tracker.js.map +1 -0
  266. package/dist/sdd/graph/engine.d.ts +44 -0
  267. package/dist/sdd/graph/engine.d.ts.map +1 -0
  268. package/dist/sdd/graph/engine.js +203 -0
  269. package/dist/sdd/graph/engine.js.map +1 -0
  270. package/dist/sdd/graph/index.d.ts +160 -0
  271. package/dist/sdd/graph/index.d.ts.map +1 -0
  272. package/dist/sdd/graph/index.js +624 -0
  273. package/dist/sdd/graph/index.js.map +1 -0
  274. package/dist/sdd/graph/integrity-guard.d.ts +129 -0
  275. package/dist/sdd/graph/integrity-guard.d.ts.map +1 -0
  276. package/dist/sdd/graph/integrity-guard.js +263 -0
  277. package/dist/sdd/graph/integrity-guard.js.map +1 -0
  278. package/dist/sdd/graph/integrity.d.ts +79 -0
  279. package/dist/sdd/graph/integrity.d.ts.map +1 -0
  280. package/dist/sdd/graph/integrity.js +462 -0
  281. package/dist/sdd/graph/integrity.js.map +1 -0
  282. package/dist/sdd/graph/pruner.d.ts +27 -0
  283. package/dist/sdd/graph/pruner.d.ts.map +1 -0
  284. package/dist/sdd/graph/pruner.js +203 -0
  285. package/dist/sdd/graph/pruner.js.map +1 -0
  286. package/dist/sdd/graph/traverse.d.ts +43 -0
  287. package/dist/sdd/graph/traverse.d.ts.map +1 -0
  288. package/dist/sdd/graph/traverse.js +265 -0
  289. package/dist/sdd/graph/traverse.js.map +1 -0
  290. package/dist/sdd/incidents/manager.d.ts +10 -0
  291. package/dist/sdd/incidents/manager.d.ts.map +1 -0
  292. package/dist/sdd/incidents/manager.js +63 -0
  293. package/dist/sdd/incidents/manager.js.map +1 -0
  294. package/dist/sdd/knowledge/transfer.d.ts +24 -0
  295. package/dist/sdd/knowledge/transfer.d.ts.map +1 -0
  296. package/dist/sdd/knowledge/transfer.js +94 -0
  297. package/dist/sdd/knowledge/transfer.js.map +1 -0
  298. package/dist/sdd/migrations/fixes.d.ts +2 -0
  299. package/dist/sdd/migrations/fixes.d.ts.map +1 -0
  300. package/dist/sdd/migrations/fixes.js +159 -0
  301. package/dist/sdd/migrations/fixes.js.map +1 -0
  302. package/dist/sdd/migrations/index.d.ts +2 -0
  303. package/dist/sdd/migrations/index.d.ts.map +1 -0
  304. package/dist/sdd/migrations/index.js +5 -0
  305. package/dist/sdd/migrations/index.js.map +1 -0
  306. package/dist/sdd/migrations/migration-runner.d.ts +41 -0
  307. package/dist/sdd/migrations/migration-runner.d.ts.map +1 -0
  308. package/dist/sdd/migrations/migration-runner.js +91 -0
  309. package/dist/sdd/migrations/migration-runner.js.map +1 -0
  310. package/dist/sdd/monitoring/setup.d.ts +40 -0
  311. package/dist/sdd/monitoring/setup.d.ts.map +1 -0
  312. package/dist/sdd/monitoring/setup.js +177 -0
  313. package/dist/sdd/monitoring/setup.js.map +1 -0
  314. package/dist/sdd/monitoring/telemetry.d.ts +18 -0
  315. package/dist/sdd/monitoring/telemetry.d.ts.map +1 -0
  316. package/dist/sdd/monitoring/telemetry.js +37 -0
  317. package/dist/sdd/monitoring/telemetry.js.map +1 -0
  318. package/dist/sdd/patterns/anti-patterns.d.ts +21 -0
  319. package/dist/sdd/patterns/anti-patterns.d.ts.map +1 -0
  320. package/dist/sdd/patterns/anti-patterns.js +286 -0
  321. package/dist/sdd/patterns/anti-patterns.js.map +1 -0
  322. package/dist/sdd/patterns/ast-clones.d.ts +23 -0
  323. package/dist/sdd/patterns/ast-clones.d.ts.map +1 -0
  324. package/dist/sdd/patterns/ast-clones.js +171 -0
  325. package/dist/sdd/patterns/ast-clones.js.map +1 -0
  326. package/dist/sdd/patterns/config-drift.d.ts +16 -0
  327. package/dist/sdd/patterns/config-drift.d.ts.map +1 -0
  328. package/dist/sdd/patterns/config-drift.js +322 -0
  329. package/dist/sdd/patterns/config-drift.js.map +1 -0
  330. package/dist/sdd/patterns/contradictions.d.ts +38 -0
  331. package/dist/sdd/patterns/contradictions.d.ts.map +1 -0
  332. package/dist/sdd/patterns/contradictions.js +237 -0
  333. package/dist/sdd/patterns/contradictions.js.map +1 -0
  334. package/dist/sdd/patterns/learner.d.ts +49 -0
  335. package/dist/sdd/patterns/learner.d.ts.map +1 -0
  336. package/dist/sdd/patterns/learner.js +226 -0
  337. package/dist/sdd/patterns/learner.js.map +1 -0
  338. package/dist/sdd/permissions/access.d.ts +69 -0
  339. package/dist/sdd/permissions/access.d.ts.map +1 -0
  340. package/dist/sdd/permissions/access.js +333 -0
  341. package/dist/sdd/permissions/access.js.map +1 -0
  342. package/dist/sdd/persistence/repository.d.ts +60 -0
  343. package/dist/sdd/persistence/repository.d.ts.map +1 -0
  344. package/dist/sdd/persistence/repository.js +96 -0
  345. package/dist/sdd/persistence/repository.js.map +1 -0
  346. package/dist/sdd/persistence/sqlite.d.ts +122 -0
  347. package/dist/sdd/persistence/sqlite.d.ts.map +1 -0
  348. package/dist/sdd/persistence/sqlite.js +602 -0
  349. package/dist/sdd/persistence/sqlite.js.map +1 -0
  350. package/dist/sdd/persistence/yaml.d.ts +41 -0
  351. package/dist/sdd/persistence/yaml.d.ts.map +1 -0
  352. package/dist/sdd/persistence/yaml.js +382 -0
  353. package/dist/sdd/persistence/yaml.js.map +1 -0
  354. package/dist/sdd/promises/classifier.d.ts +48 -0
  355. package/dist/sdd/promises/classifier.d.ts.map +1 -0
  356. package/dist/sdd/promises/classifier.js +215 -0
  357. package/dist/sdd/promises/classifier.js.map +1 -0
  358. package/dist/sdd/promises/tracker.d.ts +20 -0
  359. package/dist/sdd/promises/tracker.d.ts.map +1 -0
  360. package/dist/sdd/promises/tracker.js +204 -0
  361. package/dist/sdd/promises/tracker.js.map +1 -0
  362. package/dist/sdd/quality/scorer.d.ts +44 -0
  363. package/dist/sdd/quality/scorer.d.ts.map +1 -0
  364. package/dist/sdd/quality/scorer.js +216 -0
  365. package/dist/sdd/quality/scorer.js.map +1 -0
  366. package/dist/sdd/rollback/manager.d.ts +45 -0
  367. package/dist/sdd/rollback/manager.d.ts.map +1 -0
  368. package/dist/sdd/rollback/manager.js +266 -0
  369. package/dist/sdd/rollback/manager.js.map +1 -0
  370. package/dist/sdd/session/handoff.d.ts +52 -0
  371. package/dist/sdd/session/handoff.d.ts.map +1 -0
  372. package/dist/sdd/session/handoff.js +264 -0
  373. package/dist/sdd/session/handoff.js.map +1 -0
  374. package/dist/sdd/sla/tracker.d.ts +11 -0
  375. package/dist/sdd/sla/tracker.d.ts.map +1 -0
  376. package/dist/sdd/sla/tracker.js +52 -0
  377. package/dist/sdd/sla/tracker.js.map +1 -0
  378. package/dist/sdd/sync/git-sync.d.ts +61 -0
  379. package/dist/sdd/sync/git-sync.d.ts.map +1 -0
  380. package/dist/sdd/sync/git-sync.js +297 -0
  381. package/dist/sdd/sync/git-sync.js.map +1 -0
  382. package/dist/sdd/toggle/state.d.ts +8 -0
  383. package/dist/sdd/toggle/state.d.ts.map +1 -0
  384. package/dist/sdd/toggle/state.js +32 -0
  385. package/dist/sdd/toggle/state.js.map +1 -0
  386. package/dist/sdd/transactions/manager.d.ts +12 -0
  387. package/dist/sdd/transactions/manager.d.ts.map +1 -0
  388. package/dist/sdd/transactions/manager.js +80 -0
  389. package/dist/sdd/transactions/manager.js.map +1 -0
  390. package/dist/sdd/validation/coverage-index.d.ts +117 -0
  391. package/dist/sdd/validation/coverage-index.d.ts.map +1 -0
  392. package/dist/sdd/validation/coverage-index.js +251 -0
  393. package/dist/sdd/validation/coverage-index.js.map +1 -0
  394. package/dist/sdd/validation/executable.d.ts +26 -0
  395. package/dist/sdd/validation/executable.d.ts.map +1 -0
  396. package/dist/sdd/validation/executable.js +122 -0
  397. package/dist/sdd/validation/executable.js.map +1 -0
  398. package/dist/sdd/validation/smart-validator.d.ts +53 -0
  399. package/dist/sdd/validation/smart-validator.d.ts.map +1 -0
  400. package/dist/sdd/validation/smart-validator.js +347 -0
  401. package/dist/sdd/validation/smart-validator.js.map +1 -0
  402. package/dist/sdd/validation/validator.d.ts +39 -0
  403. package/dist/sdd/validation/validator.d.ts.map +1 -0
  404. package/dist/sdd/validation/validator.js +512 -0
  405. package/dist/sdd/validation/validator.js.map +1 -0
  406. package/dist/sdd/workflow/exporter.d.ts +36 -0
  407. package/dist/sdd/workflow/exporter.d.ts.map +1 -0
  408. package/dist/sdd/workflow/exporter.js +112 -0
  409. package/dist/sdd/workflow/exporter.js.map +1 -0
  410. package/dist/sdd/workflows/ab-testing.d.ts +18 -0
  411. package/dist/sdd/workflows/ab-testing.d.ts.map +1 -0
  412. package/dist/sdd/workflows/ab-testing.js +67 -0
  413. package/dist/sdd/workflows/ab-testing.js.map +1 -0
  414. package/dist/sdd/workflows/bug-fix.d.ts +13 -0
  415. package/dist/sdd/workflows/bug-fix.d.ts.map +1 -0
  416. package/dist/sdd/workflows/bug-fix.js +65 -0
  417. package/dist/sdd/workflows/bug-fix.js.map +1 -0
  418. package/dist/sdd/workflows/data-migration.d.ts +14 -0
  419. package/dist/sdd/workflows/data-migration.d.ts.map +1 -0
  420. package/dist/sdd/workflows/data-migration.js +68 -0
  421. package/dist/sdd/workflows/data-migration.js.map +1 -0
  422. package/dist/sdd/workflows/deprecation.d.ts +15 -0
  423. package/dist/sdd/workflows/deprecation.d.ts.map +1 -0
  424. package/dist/sdd/workflows/deprecation.js +68 -0
  425. package/dist/sdd/workflows/deprecation.js.map +1 -0
  426. package/dist/sdd/workflows/feature-flags.d.ts +14 -0
  427. package/dist/sdd/workflows/feature-flags.d.ts.map +1 -0
  428. package/dist/sdd/workflows/feature-flags.js +73 -0
  429. package/dist/sdd/workflows/feature-flags.js.map +1 -0
  430. package/dist/sdd/workflows/hotfix.d.ts +13 -0
  431. package/dist/sdd/workflows/hotfix.d.ts.map +1 -0
  432. package/dist/sdd/workflows/hotfix.js +67 -0
  433. package/dist/sdd/workflows/hotfix.js.map +1 -0
  434. package/dist/sdd/workflows/multi-tenancy.d.ts +13 -0
  435. package/dist/sdd/workflows/multi-tenancy.d.ts.map +1 -0
  436. package/dist/sdd/workflows/multi-tenancy.js +68 -0
  437. package/dist/sdd/workflows/multi-tenancy.js.map +1 -0
  438. package/dist/sdd/workflows/onboarding.d.ts +7 -0
  439. package/dist/sdd/workflows/onboarding.d.ts.map +1 -0
  440. package/dist/sdd/workflows/onboarding.js +43 -0
  441. package/dist/sdd/workflows/onboarding.js.map +1 -0
  442. package/dist/sdd/workflows/refactoring.d.ts +14 -0
  443. package/dist/sdd/workflows/refactoring.d.ts.map +1 -0
  444. package/dist/sdd/workflows/refactoring.js +73 -0
  445. package/dist/sdd/workflows/refactoring.js.map +1 -0
  446. package/dist/server/events.d.ts +64 -0
  447. package/dist/server/events.d.ts.map +1 -0
  448. package/dist/server/events.js +149 -0
  449. package/dist/server/events.js.map +1 -0
  450. package/dist/server/server.d.ts +33 -0
  451. package/dist/server/server.d.ts.map +1 -0
  452. package/dist/server/server.js +1019 -0
  453. package/dist/server/server.js.map +1 -0
  454. package/marketplace.json +39 -0
  455. package/package.json +65 -0
  456. package/src/code-intelligence/analyzer.ts +350 -0
  457. package/src/code-intelligence/ast/cache.ts +61 -0
  458. package/src/code-intelligence/ast/common.ts +62 -0
  459. package/src/code-intelligence/ast/component.ts +39 -0
  460. package/src/code-intelligence/ast/fallback.ts +44 -0
  461. package/src/code-intelligence/ast/index.ts +4 -0
  462. package/src/code-intelligence/ast/ir.ts +91 -0
  463. package/src/code-intelligence/ast/metrics.ts +65 -0
  464. package/src/code-intelligence/ast/registry.ts +28 -0
  465. package/src/code-intelligence/ast/tree-sitter.ts +226 -0
  466. package/src/code-intelligence/ast/typescript.ts +140 -0
  467. package/src/index.ts +22 -0
  468. package/src/mcp/server.ts +77 -0
  469. package/src/opencode/hooks.ts +728 -0
  470. package/src/opencode/router/categories.ts +192 -0
  471. package/src/opencode/router/embeddings.ts +149 -0
  472. package/src/opencode/router/graph-state-snapshot.ts +163 -0
  473. package/src/opencode/router/index.ts +44 -0
  474. package/src/opencode/router/intent-classifier.ts +140 -0
  475. package/src/opencode/router/semantic-nudge.ts +89 -0
  476. package/src/opencode/router/state-gate.ts +192 -0
  477. package/src/opencode/router/tool-embeddings.ts +162 -0
  478. package/src/opencode/router/tool-registry.ts +135 -0
  479. package/src/opencode/router/tool-taxonomy.ts +284 -0
  480. package/src/opencode/router/tools-composite.ts +685 -0
  481. package/src/opencode/shell-hooks.ts +115 -0
  482. package/src/opencode/system-prompt.ts +617 -0
  483. package/src/opencode/tools.ts +4102 -0
  484. package/src/opencode/workflows/chains.ts +205 -0
  485. package/src/opencode/workflows/executor.ts +172 -0
  486. package/src/opencode/workflows/index.ts +21 -0
  487. package/src/opencode/workflows/tools-workflow.ts +91 -0
  488. package/src/opencode/workflows/types.ts +42 -0
  489. package/src/sdd/analysis/compliance.ts +279 -0
  490. package/src/sdd/analysis/scalability.ts +97 -0
  491. package/src/sdd/analysis/security.ts +135 -0
  492. package/src/sdd/brownfield/scanner.ts +276 -0
  493. package/src/sdd/cache/manager.ts +899 -0
  494. package/src/sdd/cache/snapshot-store.ts +185 -0
  495. package/src/sdd/changes/manager.ts +326 -0
  496. package/src/sdd/cicd/generators.ts +1095 -0
  497. package/src/sdd/code-quality/complexity.ts +235 -0
  498. package/src/sdd/code-quality/conventions.ts +220 -0
  499. package/src/sdd/code-quality/dependencies.ts +203 -0
  500. package/src/sdd/code-quality/import-analyzer.ts +294 -0
  501. package/src/sdd/code-quality/metrics.ts +232 -0
  502. package/src/sdd/code-quality/smells.ts +415 -0
  503. package/src/sdd/code-quality/symbol-parser.ts +335 -0
  504. package/src/sdd/code-quality/usage-tracker.ts +527 -0
  505. package/src/sdd/code-quality/utils.ts +13 -0
  506. package/src/sdd/codegen/generator.ts +1181 -0
  507. package/src/sdd/constitution/validator.ts +253 -0
  508. package/src/sdd/cost/estimator.ts +147 -0
  509. package/src/sdd/coverage/tracker.ts +342 -0
  510. package/src/sdd/disaster/recovery.ts +79 -0
  511. package/src/sdd/discovery/adaptive.ts +167 -0
  512. package/src/sdd/discovery/briefing-analyzer.ts +802 -0
  513. package/src/sdd/discovery/briefing.ts +770 -0
  514. package/src/sdd/discovery/graph-builder.ts +598 -0
  515. package/src/sdd/documentation/generator.ts +158 -0
  516. package/src/sdd/domain/types.ts +658 -0
  517. package/src/sdd/drift/detector.ts +465 -0
  518. package/src/sdd/drift/exclusion.ts +223 -0
  519. package/src/sdd/drift/signals.ts +577 -0
  520. package/src/sdd/enforcement/interceptor.ts +444 -0
  521. package/src/sdd/enforcement/workflow-tracker.ts +263 -0
  522. package/src/sdd/graph/engine.ts +277 -0
  523. package/src/sdd/graph/index.ts +700 -0
  524. package/src/sdd/graph/integrity-guard.ts +348 -0
  525. package/src/sdd/graph/integrity.ts +628 -0
  526. package/src/sdd/graph/pruner.ts +221 -0
  527. package/src/sdd/graph/traverse.ts +331 -0
  528. package/src/sdd/incidents/manager.ts +87 -0
  529. package/src/sdd/knowledge/transfer.ts +140 -0
  530. package/src/sdd/migrations/fixes.ts +154 -0
  531. package/src/sdd/migrations/index.ts +14 -0
  532. package/src/sdd/migrations/migration-runner.ts +118 -0
  533. package/src/sdd/monitoring/setup.ts +237 -0
  534. package/src/sdd/monitoring/telemetry.ts +44 -0
  535. package/src/sdd/patterns/anti-patterns.ts +333 -0
  536. package/src/sdd/patterns/ast-clones.ts +214 -0
  537. package/src/sdd/patterns/config-drift.ts +346 -0
  538. package/src/sdd/patterns/contradictions.ts +323 -0
  539. package/src/sdd/patterns/learner.ts +266 -0
  540. package/src/sdd/permissions/access.ts +478 -0
  541. package/src/sdd/persistence/repository.ts +166 -0
  542. package/src/sdd/persistence/sqlite.ts +703 -0
  543. package/src/sdd/persistence/yaml.ts +409 -0
  544. package/src/sdd/promises/classifier.ts +253 -0
  545. package/src/sdd/promises/tracker.ts +258 -0
  546. package/src/sdd/quality/scorer.ts +263 -0
  547. package/src/sdd/rollback/manager.ts +361 -0
  548. package/src/sdd/session/handoff.ts +354 -0
  549. package/src/sdd/sla/tracker.ts +68 -0
  550. package/src/sdd/sync/git-sync.ts +401 -0
  551. package/src/sdd/toggle/state.ts +38 -0
  552. package/src/sdd/transactions/manager.ts +93 -0
  553. package/src/sdd/validation/coverage-index.ts +339 -0
  554. package/src/sdd/validation/executable.ts +127 -0
  555. package/src/sdd/validation/smart-validator.ts +470 -0
  556. package/src/sdd/validation/validator.ts +641 -0
  557. package/src/sdd/workflow/exporter.ts +169 -0
  558. package/src/sdd/workflows/ab-testing.ts +90 -0
  559. package/src/sdd/workflows/bug-fix.ts +81 -0
  560. package/src/sdd/workflows/data-migration.ts +86 -0
  561. package/src/sdd/workflows/deprecation.ts +87 -0
  562. package/src/sdd/workflows/feature-flags.ts +91 -0
  563. package/src/sdd/workflows/hotfix.ts +83 -0
  564. package/src/sdd/workflows/multi-tenancy.ts +84 -0
  565. package/src/sdd/workflows/onboarding.ts +82 -0
  566. package/src/sdd/workflows/refactoring.ts +90 -0
  567. package/src/server/events.ts +184 -0
  568. package/src/server/server.ts +1088 -0
@@ -0,0 +1,583 @@
1
+ import { createRepository } from "../sdd/persistence/repository.js";
2
+ import { SDD_CORE_SYSTEM_PROMPT, buildSddContextPack } from "./system-prompt.js";
3
+ import { validateGraph } from "../sdd/validation/validator.js";
4
+ import { getPendingChanges } from "../sdd/changes/manager.js";
5
+ import { isSddEnabled, setToggleState, getToggleState } from "../sdd/toggle/state.js";
6
+ import { checkPermission, getUserRoleWithAuth, addAuditEntry } from "../sdd/permissions/access.js";
7
+ import { createSnapshot } from "../sdd/rollback/manager.js";
8
+ import { getCacheManager } from "../sdd/cache/manager.js";
9
+ import { checkToolAccess, resetWorkflowState, getWorkflowState, markSpecUpdated } from "../sdd/enforcement/workflow-tracker.js";
10
+ import { formatNudgeInput } from "./router/semantic-nudge.js";
11
+ import { invalidateSnapshotCache } from "./router/graph-state-snapshot.js";
12
+ import { runMigrations, hasPendingMigrations } from "../sdd/migrations/index.js";
13
+ const SDD_FILE_PATTERNS = [
14
+ /\.ts$/,
15
+ /\.tsx$/,
16
+ /\.js$/,
17
+ /\.jsx$/,
18
+ /\.py$/,
19
+ /\.go$/,
20
+ /\.rs$/,
21
+ /\.java$/,
22
+ /\.rb$/,
23
+ /\.vue$/,
24
+ /\.svelte$/,
25
+ ];
26
+ const SDD_EXCLUDED_PATTERNS = [
27
+ /node_modules/,
28
+ /\.sdd\//,
29
+ /dist\//,
30
+ /build\//,
31
+ /\.git\//,
32
+ /\.opencode\//,
33
+ /package\.json/,
34
+ /tsconfig\.json/,
35
+ /\.env/,
36
+ ];
37
+ /**
38
+ * Patterns that indicate a shell command is writing source files.
39
+ * Used to enforce SDD-first even when agents try to bypass via run_terminal_command.
40
+ */
41
+ const SRC_EXT = /\.(?:ts|tsx|js|jsx|mjs|mts|py|go|rs|java|rb|vue|svelte|c|cpp|h|hpp|cs|swift|kt)$/;
42
+ const SRC_FILE = /([^\s>"]+\.(?:ts|tsx|js|jsx|mjs|mts|py|go|rs|java|rb|vue|svelte|c|cpp|h|hpp|cs|swift|kt))/;
43
+ const SHELL_WRITE_PATTERNS = [
44
+ // open('file','w').write(...) pattern (primary detection for python heredocs and -c)
45
+ {
46
+ pattern: /open\(['"]([^'"]+)['"]/g,
47
+ extractor: (m) => [m[1]],
48
+ },
49
+ // node -e "fs.writeFileSync('file',...)"
50
+ {
51
+ pattern: /node\s+(-e|--eval)\s+['"].*writeFile(?:Sync)?\s*\(\s*['"]([^'"]+)['"]/,
52
+ extractor: (m) => [m[2]],
53
+ },
54
+ // touch file.ts (creates new files)
55
+ {
56
+ pattern: /touch\s+(\S+\.\w+)/,
57
+ extractor: (m) => [m[1]],
58
+ },
59
+ // install [options] source dest.ts (copies/creates files)
60
+ {
61
+ pattern: /install\s+(?:[^\s]+\s+)*?(\S+\.\w+)\s*$/,
62
+ extractor: (m) => [m[1]],
63
+ },
64
+ // dd if=... of=file.ts
65
+ {
66
+ pattern: /dd\s+.*of=([^\s>]+)/,
67
+ extractor: (m) => [m[1]],
68
+ },
69
+ // truncate -s 0 file.ts or truncate --size=0 file.ts
70
+ {
71
+ pattern: /truncate\s+(?:\S+\s+)*?(\S+\.\w+)$/,
72
+ extractor: (m) => [m[1]],
73
+ },
74
+ // Generic shell redirect: any command > file.ts or >> file.ts
75
+ {
76
+ pattern: />\s*(\S+\.\w+)/,
77
+ extractor: (m) => [m[1]],
78
+ },
79
+ // sed -i 's/...' file.ts
80
+ {
81
+ pattern: /sed\s+(-i[^\s]*|--in-place)\s+['"][^"]*['"]\s+([^\s]+)/,
82
+ extractor: (m) => [m[2]],
83
+ },
84
+ // mv/rename to source file
85
+ {
86
+ pattern: /mv\s+\S+\s+(\S+\.\w+)/,
87
+ extractor: (m) => [m[1]],
88
+ },
89
+ // cp source dest (copying to source file)
90
+ {
91
+ pattern: /cp\s+\S+\s+(\S+\.\w+)/,
92
+ extractor: (m) => [m[1]],
93
+ },
94
+ // tee file.ts
95
+ {
96
+ pattern: /tee\s+(?:-a\s+)?(\S+\.\w+)/,
97
+ extractor: (m) => [m[1]],
98
+ },
99
+ ];
100
+ /**
101
+ * Detect if a shell command attempts to write source code files.
102
+ * Returns extracted file paths that match source patterns.
103
+ * Exported for testing.
104
+ */
105
+ export function detectShellFileWrites(command) {
106
+ const files = [];
107
+ for (const { pattern, extractor } of SHELL_WRITE_PATTERNS) {
108
+ // Reset lastIndex for global patterns
109
+ pattern.lastIndex = 0;
110
+ if (pattern.global) {
111
+ let match;
112
+ while ((match = pattern.exec(command)) !== null) {
113
+ const paths = extractor(match);
114
+ for (const p of paths) {
115
+ if (p && SRC_EXT.test(p) &&
116
+ !SDD_EXCLUDED_PATTERNS.some((ep) => ep.test(p))) {
117
+ files.push(p);
118
+ }
119
+ }
120
+ }
121
+ }
122
+ else {
123
+ const match = command.match(pattern);
124
+ if (match) {
125
+ const paths = extractor(match);
126
+ for (const p of paths) {
127
+ if (p && SRC_EXT.test(p) &&
128
+ !SDD_EXCLUDED_PATTERNS.some((ep) => ep.test(p))) {
129
+ files.push(p);
130
+ }
131
+ }
132
+ }
133
+ }
134
+ }
135
+ // Also detect heredoc-style writes (python3 - <<'EOF' ... open('file','w') ... EOF)
136
+ // These are multi-line patterns; the command string may contain newlines
137
+ if (/python[3]?\s+\-/.test(command) || /node\s+(-e|--eval)/.test(command)) {
138
+ // Extract all open('file','w') or writeFileSync calls
139
+ const openPattern = /open\(['"]([^'"]+)['"]/g;
140
+ let match;
141
+ while ((match = openPattern.exec(command)) !== null) {
142
+ const p = match[1];
143
+ if (p && SRC_EXT.test(p) &&
144
+ !SDD_EXCLUDED_PATTERNS.some((ep) => ep.test(p))) {
145
+ if (!files.includes(p))
146
+ files.push(p);
147
+ }
148
+ }
149
+ const writePattern = /writeFile(?:Sync)?\s*\(\s*['"]([^'"]+)['"]/g;
150
+ while ((match = writePattern.exec(command)) !== null) {
151
+ const p = match[1];
152
+ if (p && SRC_EXT.test(p) &&
153
+ !SDD_EXCLUDED_PATTERNS.some((ep) => ep.test(p))) {
154
+ if (!files.includes(p))
155
+ files.push(p);
156
+ }
157
+ }
158
+ }
159
+ return [...new Set(files)];
160
+ }
161
+ export function createSddHooks() {
162
+ let systemInjected = false;
163
+ return {
164
+ "experimental.chat.system.transform": async (_input, output) => {
165
+ if (systemInjected)
166
+ return;
167
+ if (!isSddEnabled(process.cwd()))
168
+ return;
169
+ // Run pending migrations on first load
170
+ if (hasPendingMigrations(process.cwd())) {
171
+ try {
172
+ const migrationResults = runMigrations(process.cwd());
173
+ const successful = migrationResults.filter(r => r.success);
174
+ if (successful.length > 0) {
175
+ output.system.push(`## 🔄 opencode-telos Migrations: ${successful.length} fix(es) applied`);
176
+ }
177
+ }
178
+ catch (err) {
179
+ // Don't block system init on migration errors
180
+ console.error("[opencode-telos] Migration error:", err);
181
+ }
182
+ }
183
+ const repo = createRepository(process.cwd());
184
+ if (repo.isInitialized()) {
185
+ // Restore persistent cache from disk (cross-session)
186
+ const cacheMgr = getCacheManager(process.cwd());
187
+ cacheMgr.restoreFromPersistentCache();
188
+ output.system.push(SDD_CORE_SYSTEM_PROMPT);
189
+ // Tool Registry: injeta tools relevantes para o estado atual do grafo
190
+ try {
191
+ const { getGraphSnapshot } = await import("./router/graph-state-snapshot.js");
192
+ const snapshot = getGraphSnapshot(process.cwd());
193
+ const { formatGraphState } = await import("./router/graph-state-snapshot.js");
194
+ output.system.push(formatGraphState(snapshot));
195
+ }
196
+ catch { }
197
+ try {
198
+ const graph = repo.loadGraph();
199
+ // Inject context pack for focused node info
200
+ const contextPack = buildSddContextPack(graph);
201
+ output.system.push(contextPack);
202
+ // Validation is cheap enough to expose blocking state. Drift, full
203
+ // health, promises, coverage and handoff are available on demand;
204
+ // running all of them at session start is expensive on large repos.
205
+ const validation = validateGraph(graph);
206
+ if (!validation.valid || validation.warnings.length > 0) {
207
+ const valLines = ["## SDD Validation"];
208
+ valLines.push(`**Valid:** ${validation.valid ? "✅" : "❌"}`);
209
+ if (validation.errors.length > 0)
210
+ valLines.push(`**Errors:** ${validation.errors.length}`);
211
+ if (validation.warnings.length > 0)
212
+ valLines.push(`**Warnings:** ${validation.warnings.length}`);
213
+ output.system.push(valLines.join("\n"));
214
+ }
215
+ // Inject pending changes summary
216
+ const pending = getPendingChanges(graph);
217
+ if (pending.length > 0) {
218
+ output.system.push(`## Pending Changes: ${pending.length} change(s) awaiting action`);
219
+ }
220
+ // G: Save graph snapshot to disk for fast cross-session restore
221
+ try {
222
+ const cacheMgrForSnapshot = getCacheManager(process.cwd());
223
+ cacheMgrForSnapshot.saveGraphSnapshot(graph);
224
+ }
225
+ catch { }
226
+ }
227
+ catch {
228
+ // Handoff is optional, don't fail if it can't be generated
229
+ }
230
+ // Persist cache to disk for cross-session reuse
231
+ try {
232
+ const cacheMgr = getCacheManager(process.cwd());
233
+ cacheMgr.persistToDisk();
234
+ }
235
+ catch { }
236
+ systemInjected = true;
237
+ }
238
+ },
239
+ "chat.message": async (_input, output) => {
240
+ if (!output.parts)
241
+ return;
242
+ for (const part of output.parts) {
243
+ if (part.type !== "text")
244
+ continue;
245
+ const text = part.text.trim();
246
+ // Detect /sdd commands
247
+ if (text === "/sdd on") {
248
+ const state = setToggleState(process.cwd(), true);
249
+ systemInjected = false;
250
+ part.text = `✅ SDD enforcement **enabled** at ${state.changed_at}.\n\nSpec-Driven Development is now active. All code changes will go through the SDD workflow.`;
251
+ return;
252
+ }
253
+ if (text === "/sdd off") {
254
+ const state = setToggleState(process.cwd(), false);
255
+ systemInjected = false;
256
+ resetWorkflowState();
257
+ part.text = `⏸️ SDD enforcement **disabled** at ${state.changed_at}.\n\nYou can now make code changes freely without SDD workflow. Use \`/sdd on\` to re-enable.`;
258
+ return;
259
+ }
260
+ if (text === "/sdd status") {
261
+ const state = getToggleState(process.cwd());
262
+ const status = state.enabled ? "🟢 ON" : "🔴 OFF";
263
+ part.text = `SDD Status: ${status}\nLast changed: ${state.changed_at}\n\nCommands: \`/sdd on\`, \`/sdd off\`, \`/sdd status\`, \`/sdd cache reset\``;
264
+ return;
265
+ }
266
+ // H: /sdd cache reset — full cache reset without killing the process
267
+ if (text === "/sdd cache reset") {
268
+ const cacheMgr = getCacheManager(process.cwd());
269
+ const result = cacheMgr.fullReset();
270
+ const lines = ["## 🧹 Cache Reset Complete"];
271
+ lines.push(`- Memory cache: ${result.cleared.memory ? "✅ cleared" : "⏭️ skipped"}`);
272
+ lines.push(`- Persistent cache: ${result.cleared.disk ? "✅ cleared" : "⏭️ no file"}`);
273
+ lines.push(`- Graph snapshot: ${result.cleared.snapshot ? "✅ cleared" : "⏭️ no snapshot"}`);
274
+ lines.push(`- Lock file: ${result.cleared.lock ? "✅ released" : "⏭️ no lock"}`);
275
+ lines.push(`\nInvalidation version: ${cacheMgr.getInvalidationVersion()}`);
276
+ lines.push("\nThe next tool call will recompute fresh results.");
277
+ part.text = lines.join("\n");
278
+ return;
279
+ }
280
+ // Semantic nudge — replaces regex-based pattern detection
281
+ if (isSddEnabled(process.cwd())) {
282
+ const nudge = formatNudgeInput(text);
283
+ if (nudge) {
284
+ part.text += `\n\n${nudge}`;
285
+ }
286
+ }
287
+ }
288
+ },
289
+ "tool.execute.before": async (input, output) => {
290
+ // Skip enforcement if SDD is disabled
291
+ if (!isSddEnabled(process.cwd()))
292
+ return;
293
+ // Enforce workflow context for SDD graph mutation tools
294
+ if (input.tool.startsWith("sdd.")) {
295
+ const access = checkToolAccess(input.tool);
296
+ if (!access.allowed) {
297
+ addAuditEntry(process.cwd(), process.env.USER || "current", input.tool, "graph", "denied", access.reason || "Workflow not active");
298
+ throw new Error(access.reason);
299
+ }
300
+ }
301
+ // Intercept shell commands that write source files (bypass prevention)
302
+ if (input.tool === "run_terminal_command") {
303
+ const command = output.args?.command || output.args?.cmd || "";
304
+ if (typeof command === "string" && command.length > 0) {
305
+ // ENFORCEMENT: Block shell writes to .sdd/ directory
306
+ if (command.includes(".sdd/") && (/[>]|writeFile|open\(['"].*['"],\s*['"]w/.test(command))) {
307
+ addAuditEntry(process.cwd(), process.env.USER || "current", "shell_command", ".sdd/", "denied", "Shell command writes to .sdd/ directory");
308
+ throw new Error([
309
+ `[SDD BLOCKED] Shell command detected that writes to .sdd/ directory.`,
310
+ ` Command: ${command.slice(0, 200)}`,
311
+ "",
312
+ "The Knowledge Graph can ONLY be modified through SDD tools.",
313
+ "Direct shell edits to .sdd/ are not allowed.",
314
+ ].join("\n"));
315
+ }
316
+ const detectedFiles = detectShellFileWrites(command);
317
+ if (detectedFiles.length > 0) {
318
+ const repo = createRepository(process.cwd());
319
+ if (!repo.isInitialized())
320
+ return;
321
+ const graph = repo.loadGraph();
322
+ // Check spec nodes exist
323
+ const specNodeTypes = ["feature", "entity", "requirement", "architecture_component", "module"];
324
+ const hasSpecNodes = graph.nodes.some(n => specNodeTypes.includes(n.type));
325
+ if (!hasSpecNodes && graph.nodes.length > 0) {
326
+ addAuditEntry(process.cwd(), process.env.USER || "current", "shell_command", detectedFiles.join(", "), "denied", "Shell command writes source files without spec nodes");
327
+ throw new Error([
328
+ `[SDD BLOCKED] Shell command detected that writes source files:`,
329
+ ` Files: ${detectedFiles.join(", ")}`,
330
+ "",
331
+ "The Knowledge Graph has no feature, entity, requirement, or component nodes.",
332
+ "You MUST create specification nodes before writing code:",
333
+ "",
334
+ "1. Run sdd.discover to create features and entities",
335
+ "2. Run sdd.update_from_answers to populate the specification",
336
+ "3. THEN retry this write",
337
+ "",
338
+ "Or run sdd.full_cycle for the complete automated cycle.",
339
+ ].join("\n"));
340
+ }
341
+ // Check for approved Change node covering these files
342
+ const approvedChanges = getPendingChanges(graph).filter((c) => {
343
+ if (c.status !== "APPROVED")
344
+ return false;
345
+ const affectedFiles = c.metadata.affected_files || [];
346
+ return detectedFiles.some((f) => affectedFiles.some((af) => f.includes(af) || af.includes(f)));
347
+ });
348
+ if (approvedChanges.length === 0) {
349
+ addAuditEntry(process.cwd(), process.env.USER || "current", "shell_command", detectedFiles.join(", "), "denied", "No approved Change node for shell-written files");
350
+ throw new Error([
351
+ `[SDD BLOCKED] Shell command detected that writes source files without SDD approval:`,
352
+ ` Command: ${command.slice(0, 200)}`,
353
+ ` Files: ${detectedFiles.join(", ")}`,
354
+ "",
355
+ "Using shell commands to bypass SDD enforcement is not allowed.",
356
+ "You MUST follow the SDD workflow before writing code:",
357
+ "",
358
+ "1. Run sdd.enforce to classify and create a Change node",
359
+ "2. Run sdd.update_from_answers to update the specification",
360
+ "3. Run sdd.approve_change to approve the Change",
361
+ "4. THEN retry this write",
362
+ "",
363
+ "Or run sdd.full_cycle for the complete automated cycle.",
364
+ ].join("\n"));
365
+ }
366
+ // ENFORCEMENT: Require spec update before shell write
367
+ const shellWorkflow = getWorkflowState();
368
+ if (shellWorkflow.enforced && !shellWorkflow.specUpdated) {
369
+ addAuditEntry(process.cwd(), process.env.USER || "current", "shell_command", detectedFiles.join(", "), "denied", "SDD spec not updated after enforce");
370
+ throw new Error([
371
+ `[SDD BLOCKED] Cannot write code before updating the specification.`,
372
+ ` Files: ${detectedFiles.join(", ")}`,
373
+ ` Change: ${shellWorkflow.changeId}`,
374
+ "",
375
+ "After sdd.enforce, you MUST update the SDD graph BEFORE writing code:",
376
+ "",
377
+ "1. Run sdd.add_node to create feature/entity/business_rule nodes",
378
+ "2. Run sdd.update_from_answers to populate the specification",
379
+ "3. Run sdd.validate to verify the updated spec",
380
+ "4. THEN retry this write",
381
+ "",
382
+ "The SDD specification is the source of truth. Code must follow the spec, not the other way around.",
383
+ ].join("\n"));
384
+ }
385
+ // Approved — create snapshots
386
+ for (const change of approvedChanges) {
387
+ createSnapshot(graph, change.id, process.cwd());
388
+ }
389
+ addAuditEntry(process.cwd(), process.env.USER || "current", "shell_command", detectedFiles.join(", "), "allowed", `Approved changes: ${approvedChanges.map((c) => c.id).join(", ")}`);
390
+ return;
391
+ }
392
+ }
393
+ }
394
+ // Intercept file write tools (Write, Edit) to enforce SDD-first
395
+ if (input.tool === "Write" || input.tool === "Edit") {
396
+ const filePath = output.args?.filePath || output.args?.path || "";
397
+ // ENFORCEMENT: Block direct writes to .sdd/ directory
398
+ // The SDD graph can ONLY be modified through sdd.* tools
399
+ if (filePath.includes(".sdd/")) {
400
+ addAuditEntry(process.cwd(), process.env.USER || "current", input.tool, filePath, "denied", "Direct .sdd/ modification blocked");
401
+ throw new Error([
402
+ `[SDD BLOCKED] Cannot write directly to .sdd/ directory.`,
403
+ ` File: ${filePath}`,
404
+ "",
405
+ "The Knowledge Graph can ONLY be modified through SDD tools:",
406
+ "- sdd.add_node / sdd.update_node / sdd.remove_node",
407
+ "- sdd.add_relationship / sdd.remove_relationship",
408
+ "- sdd.build_graph (initial setup)",
409
+ "",
410
+ "Direct file edits to .sdd/ are not allowed.",
411
+ ].join("\n"));
412
+ }
413
+ // Check if this is a source code file
414
+ const isSourceFile = SDD_FILE_PATTERNS.some((p) => p.test(filePath)) &&
415
+ !SDD_EXCLUDED_PATTERNS.some((p) => p.test(filePath));
416
+ if (!isSourceFile)
417
+ return;
418
+ // Check if SDD is initialized
419
+ const repo = createRepository(process.cwd());
420
+ if (!repo.isInitialized())
421
+ return;
422
+ const graph = repo.loadGraph();
423
+ // Check if graph has required spec nodes before allowing code creation
424
+ const specNodeTypes = ["feature", "entity", "requirement", "architecture_component", "module"];
425
+ const hasSpecNodes = graph.nodes.some(n => specNodeTypes.includes(n.type));
426
+ if (!hasSpecNodes && graph.nodes.length > 0) {
427
+ addAuditEntry(process.cwd(), process.env.USER || "current", "write_file", filePath, "denied", "No spec nodes in graph");
428
+ throw new Error([
429
+ `[SDD BLOCKED] Cannot create code without specification.`,
430
+ "",
431
+ "The Knowledge Graph has no feature, entity, requirement, or component nodes.",
432
+ "You MUST create specification nodes before writing code:",
433
+ "",
434
+ "1. Run sdd.discover to create features and entities",
435
+ "2. Run sdd.update_from_answers to populate the specification",
436
+ "3. THEN retry this write",
437
+ "",
438
+ "Or run sdd.full_cycle for the complete automated cycle.",
439
+ ].join("\n"));
440
+ }
441
+ // Check permissions before allowing changes
442
+ const userRole = getUserRoleWithAuth(process.cwd(), process.env.USER || "current");
443
+ const hasPermission = checkPermission(userRole, "create_change", process.cwd());
444
+ if (!hasPermission) {
445
+ addAuditEntry(process.cwd(), process.env.USER || "current", "write_file", filePath, "denied", "Insufficient permissions");
446
+ throw new Error([
447
+ `[SDD PERMISSION DENIED] Cannot modify ${filePath}.`,
448
+ "",
449
+ `Your role (${userRole}) does not have permission to create changes.`,
450
+ "Contact an admin to grant you the 'create_change' permission.",
451
+ ].join("\n"));
452
+ }
453
+ // Find an approved Change node that covers this file
454
+ const approvedChanges = getPendingChanges(graph).filter((c) => {
455
+ if (c.status !== "APPROVED")
456
+ return false;
457
+ const files = c.metadata.affected_files || [];
458
+ return files.some((f) => filePath.includes(f) || f.includes(filePath));
459
+ });
460
+ if (approvedChanges.length > 0) {
461
+ // ENFORCEMENT: Require spec update before code write
462
+ const workflow = getWorkflowState();
463
+ if (workflow.enforced && !workflow.specUpdated) {
464
+ addAuditEntry(process.cwd(), process.env.USER || "current", "write_file", filePath, "denied", "SDD spec not updated after enforce");
465
+ throw new Error([
466
+ `[SDD BLOCKED] Cannot write code before updating the specification.`,
467
+ ` File: ${filePath}`,
468
+ ` Change: ${workflow.changeId}`,
469
+ "",
470
+ "After sdd.enforce, you MUST update the SDD graph BEFORE writing code:",
471
+ "",
472
+ "1. Run sdd.add_node to create feature/entity/business_rule nodes",
473
+ "2. Run sdd.update_from_answers to populate the specification",
474
+ "3. Run sdd.validate to verify the updated spec",
475
+ "4. THEN retry this write",
476
+ "",
477
+ "The SDD specification is the source of truth. Code must follow the spec, not the other way around.",
478
+ ].join("\n"));
479
+ }
480
+ // Create snapshot before approving change
481
+ for (const change of approvedChanges) {
482
+ createSnapshot(graph, change.id, process.cwd());
483
+ }
484
+ addAuditEntry(process.cwd(), process.env.USER || "current", "write_file", filePath, "allowed", `Approved changes: ${approvedChanges.map((c) => c.id).join(", ")}`);
485
+ return;
486
+ }
487
+ // File not covered by any approved Change → BLOCK the write
488
+ addAuditEntry(process.cwd(), process.env.USER || "current", "write_file", filePath, "denied", "No approved Change node");
489
+ throw new Error([
490
+ `[SDD BLOCKED] Cannot modify ${filePath}.`,
491
+ "",
492
+ "This file is not covered by an approved SDD Change node.",
493
+ "You MUST follow the SDD workflow before writing code:",
494
+ "",
495
+ "1. Run sdd.enforce to classify and create a Change node",
496
+ "2. Run sdd.update_from_answers to update the specification",
497
+ "3. Run sdd.approve_change to approve the Change",
498
+ "4. THEN retry this write",
499
+ "",
500
+ "Or run sdd.full_cycle for the complete automated cycle.",
501
+ ].join("\n"));
502
+ }
503
+ },
504
+ "tool.execute.after": async (input, output) => {
505
+ if (!input.tool.startsWith("sdd."))
506
+ return;
507
+ const timestamp = new Date().toISOString();
508
+ if (output.metadata) {
509
+ output.metadata.sdd_tool = true;
510
+ output.metadata.sdd_timestamp = timestamp;
511
+ }
512
+ // Invalidate state snapshot cache after mutations
513
+ const mutationTools = [
514
+ "sdd.add_node", "sdd.update_node", "sdd.remove_node",
515
+ "sdd.add_relationship", "sdd.remove_relationship",
516
+ "sdd.build_graph", "sdd.update_from_answers",
517
+ "sdd.enforce", "sdd.approve_change", "sdd.complete_change",
518
+ "sdd.generate_code",
519
+ // Composite tools
520
+ "sdd.graph_mutation", "sdd.graph_admin",
521
+ "sdd.workflow_new_feature", "sdd.workflow_bug_fix",
522
+ "sdd.workflow_hotfix", "sdd.workflow_refactor",
523
+ "sdd.workflow_full_cycle",
524
+ ];
525
+ if (mutationTools.includes(input.tool)) {
526
+ invalidateSnapshotCache();
527
+ }
528
+ // Mark spec as updated when spec-mutating tools are called
529
+ const specMutationTools = new Set([
530
+ "sdd.add_node", "sdd.update_node", "sdd.remove_node",
531
+ "sdd.add_relationship", "sdd.remove_relationship",
532
+ "sdd.update_from_answers",
533
+ "sdd.build_graph",
534
+ "sdd.generate_code",
535
+ // Composite tools that update spec
536
+ "sdd.graph_mutation", "sdd.graph_admin",
537
+ "sdd.workflow_new_feature", "sdd.workflow_bug_fix",
538
+ "sdd.workflow_hotfix", "sdd.workflow_refactor",
539
+ "sdd.workflow_full_cycle",
540
+ ]);
541
+ if (specMutationTools.has(input.tool)) {
542
+ markSpecUpdated();
543
+ }
544
+ },
545
+ "tool.definition": async (input, output) => {
546
+ if (!isSddEnabled(process.cwd()))
547
+ return;
548
+ // Inject SDD enforcement warning into run_terminal_command description
549
+ if (input.toolID === "run_terminal_command") {
550
+ const warning = [
551
+ "",
552
+ "",
553
+ "[SDD ENFORCEMENT] This tool is monitored. Any command that writes",
554
+ "source code files (.ts, .tsx, .js, .jsx, .py, .go, .rs, etc.)",
555
+ "WILL BE BLOCKED unless an approved SDD Change node covers those files.",
556
+ "",
557
+ "Use sdd.enforce BEFORE modifying code. Shell commands cannot",
558
+ "bypass SDD-first workflow.",
559
+ ].join("\n");
560
+ output.description = (output.description || "") + warning;
561
+ }
562
+ },
563
+ "permission.ask": async (input, output) => {
564
+ const pattern = input.pattern;
565
+ if (typeof pattern === "string" && pattern.includes("sdd.")) {
566
+ output.status = "allow";
567
+ }
568
+ else if (Array.isArray(pattern) && pattern.some((p) => p.includes("sdd."))) {
569
+ output.status = "allow";
570
+ }
571
+ },
572
+ dispose: async () => {
573
+ // E: Persist cache and release resources on session end
574
+ try {
575
+ const cacheMgr = getCacheManager(process.cwd());
576
+ cacheMgr.persistToDisk();
577
+ cacheMgr.releaseWriteLock();
578
+ }
579
+ catch { }
580
+ },
581
+ };
582
+ }
583
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/opencode/hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Categories — Mapeamento de tools para categorias de intenção.
3
+ *
4
+ * Cada tool é classificada em uma ou mais categorias.
5
+ * O intent classifier usa isso para filtrar tools por categoria.
6
+ *
7
+ * Consumido por: intent-classifier.ts, tool-registry.ts
8
+ * Dependências: tool-taxonomy.ts
9
+ */
10
+ /**
11
+ * Categorias de intenção do usuário.
12
+ */
13
+ export type IntentCategory = "mutation" | "query" | "workflow" | "analysis" | "quality" | "enterprise" | "admin" | "discovery" | "implementation" | "info";
14
+ /**
15
+ * Obtém as categorias de intenção para uma tool.
16
+ */
17
+ export declare function getToolCategories(toolName: string): IntentCategory[];
18
+ /**
19
+ * Obtém todas as tools de uma categoria de intenção.
20
+ */
21
+ export declare function getToolsByCategory(category: IntentCategory): string[];
22
+ /**
23
+ * Obtém categorias representadas em um conjunto de tools.
24
+ */
25
+ export declare function getCategoriesInToolSet(toolNames: Set<string>): IntentCategory[];
26
+ /**
27
+ * Keywords associadas a cada categoria de intenção.
28
+ * Usado como sinal auxiliar no intent classifier.
29
+ */
30
+ export declare const CATEGORY_KEYWORDS: Record<IntentCategory, string[]>;
31
+ //# sourceMappingURL=categories.d.ts.map