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,108 @@
1
+ /**
2
+ * Intent Classifier — Classifica a intenção do usuário a partir do input.
3
+ *
4
+ * Combina similaridade semântica (embeddings) com keywords para classificar
5
+ * a intenção em uma das categorias: mutation, query, workflow, analysis, etc.
6
+ *
7
+ * Consumido por: hooks.ts (experimental.chat.system.transform)
8
+ * Dependências: embeddings.ts, categories.ts
9
+ */
10
+ import { rankSimilarity } from "./embeddings.js";
11
+ import { CATEGORY_KEYWORDS, getToolsByCategory, } from "./categories.js";
12
+ /**
13
+ * Embeddings pré-computados para descrições de categorias.
14
+ * Cada categoria tem uma descrição representativa.
15
+ */
16
+ const CATEGORY_DESCRIPTIONS = {
17
+ mutation: "Create, add, update, or remove nodes and relationships in the knowledge graph",
18
+ query: "Search, query, list, inspect, or retrieve information from the knowledge graph",
19
+ workflow: "Manage changes, approvals, enforcement, lifecycle of specifications",
20
+ analysis: "Analyze impact, validate, detect drift, check integrity of the specification",
21
+ quality: "Code quality metrics, complexity, smells, dependencies, dead code detection",
22
+ enterprise: "Enterprise workflows: migrations, experiments, feature flags, security, compliance",
23
+ admin: "Administration: permissions, roles, sync, snapshots, cache, configuration",
24
+ discovery: "Discover requirements, analyze briefings, ask questions, elicit specifications",
25
+ implementation: "Generate code, plan implementation, create files from specification",
26
+ info: "Get status, history, help, general information about the project",
27
+ };
28
+ /**
29
+ * Calcula score de keywords para cada categoria.
30
+ */
31
+ function keywordScore(text) {
32
+ const normalized = text.toLowerCase();
33
+ const scores = {};
34
+ for (const [category, keywords] of Object.entries(CATEGORY_KEYWORDS)) {
35
+ let score = 0;
36
+ for (const keyword of keywords) {
37
+ if (normalized.includes(keyword.toLowerCase())) {
38
+ score += 1;
39
+ }
40
+ }
41
+ scores[category] = score;
42
+ }
43
+ return scores;
44
+ }
45
+ /**
46
+ * Calcula score de embeddings para cada categoria.
47
+ */
48
+ function embeddingScore(text) {
49
+ const options = Object.entries(CATEGORY_DESCRIPTIONS).map(([category, description]) => ({
50
+ label: category,
51
+ text: description,
52
+ }));
53
+ const ranked = rankSimilarity(text, options);
54
+ const scores = {};
55
+ for (const r of ranked) {
56
+ scores[r.label] = r.score;
57
+ }
58
+ return scores;
59
+ }
60
+ /**
61
+ * Combina keyword score e embedding score com pesos.
62
+ * Keywords: 0.4, Embeddings: 0.6
63
+ */
64
+ function combinedScore(text) {
65
+ const kw = keywordScore(text);
66
+ const emb = embeddingScore(text);
67
+ const combined = {};
68
+ for (const category of Object.keys(kw)) {
69
+ combined[category] = (kw[category] * 0.4) + ((emb[category] || 0) * 0.6);
70
+ }
71
+ return combined;
72
+ }
73
+ /**
74
+ * Classifica a intenção do usuário.
75
+ *
76
+ * @param text - Input do usuário
77
+ * @returns IntentResult com categoria, confidence e top-3
78
+ */
79
+ export function classifyIntent(text) {
80
+ const scores = combinedScore(text);
81
+ // Ordenar por score decrescente
82
+ const sorted = Object.entries(scores)
83
+ .map(([category, score]) => ({ category: category, score }))
84
+ .sort((a, b) => b.score - a.score);
85
+ const top = sorted[0];
86
+ const totalScore = sorted.reduce((sum, s) => sum + Math.max(0, s.score), 0);
87
+ const confidence = totalScore > 0 ? top.score / totalScore : 0;
88
+ return {
89
+ category: top.category,
90
+ confidence: Math.min(1, Math.max(0, confidence)),
91
+ topCategories: sorted.slice(0, 3),
92
+ };
93
+ }
94
+ /**
95
+ * Obtém as tools relevantes para uma intenção, combinando com o state gate.
96
+ *
97
+ * @param intent - Resultado da classificação
98
+ * @param stateTools - Tools visíveis pelo state gate (null = todas)
99
+ * @returns Lista de tools relevantes
100
+ */
101
+ export function getToolsForIntent(intent, stateTools) {
102
+ const categoryTools = getToolsByCategory(intent.category);
103
+ if (!stateTools)
104
+ return categoryTools;
105
+ // Interseção: tools da categoria ∩ tools visíveis pelo estado
106
+ return categoryTools.filter(t => stateTools.has(t));
107
+ }
108
+ //# sourceMappingURL=intent-classifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-classifier.js","sourceRoot":"","sources":["../../../src/opencode/router/intent-classifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Semantic Nudge — Sugestões locais por relevância lexical determinística.
3
+ *
4
+ * Calcula relevância BM25 entre o input do usuário e as tool descriptions.
5
+ * Injeta hints no input do LLM com as tools mais relevantes.
6
+ *
7
+ * Consumido por: hooks.ts (chat.message hook)
8
+ * Dependências: embeddings.ts, tool-embeddings.ts, categories.ts
9
+ */
10
+ export interface NudgeResult {
11
+ /** Hints formatados para injetar no input */
12
+ hints: string[];
13
+ /** Tools sugeridas com confidence */
14
+ suggestions: Array<{
15
+ tool: string;
16
+ confidence: number;
17
+ }>;
18
+ }
19
+ /**
20
+ * Calcula nudges semânticos para o input do usuário.
21
+ *
22
+ * @param userInput - Texto do input do usuário
23
+ * @returns NudgeResult com hints e sugestões
24
+ */
25
+ export declare function calculateSemanticNudge(userInput: string): NudgeResult;
26
+ /**
27
+ * Gera a string de nudge para injetar no input do LLM.
28
+ * Retorna string vazia se não houver nudges relevantes.
29
+ */
30
+ export declare function formatNudgeInput(userInput: string): string;
31
+ /**
32
+ * Verifica se uma tool específica é sugerida pelo nudge.
33
+ */
34
+ export declare function isToolSuggested(userInput: string, toolName: string): boolean;
35
+ /**
36
+ * Obtém a tool mais sugerida para o input.
37
+ */
38
+ export declare function getTopSuggestion(userInput: string): {
39
+ tool: string;
40
+ confidence: number;
41
+ } | null;
42
+ //# sourceMappingURL=semantic-nudge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-nudge.d.ts","sourceRoot":"","sources":["../../../src/opencode/router/semantic-nudge.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,qCAAqC;IACrC,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACzD;AAQD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CA8BrE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAG5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAG/F"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Semantic Nudge — Sugestões locais por relevância lexical determinística.
3
+ *
4
+ * Calcula relevância BM25 entre o input do usuário e as tool descriptions.
5
+ * Injeta hints no input do LLM com as tools mais relevantes.
6
+ *
7
+ * Consumido por: hooks.ts (chat.message hook)
8
+ * Dependências: embeddings.ts, tool-embeddings.ts, categories.ts
9
+ */
10
+ import { rankSimilarity } from "./embeddings.js";
11
+ import { getCachedToolEmbeddings } from "./tool-embeddings.js";
12
+ /** Minimum lexical relevance for a suggestion. BM25 scores are unbounded. */
13
+ const CONFIDENCE_THRESHOLD = 0.35;
14
+ /** Máximo de sugestões */
15
+ const MAX_SUGGESTIONS = 3;
16
+ /**
17
+ * Calcula nudges semânticos para o input do usuário.
18
+ *
19
+ * @param userInput - Texto do input do usuário
20
+ * @returns NudgeResult com hints e sugestões
21
+ */
22
+ export function calculateSemanticNudge(userInput) {
23
+ const toolEmbeddings = getCachedToolEmbeddings();
24
+ const topLevelTools = toolEmbeddings.filter((tool) => !tool.name.includes(":"));
25
+ const ranked = rankSimilarity(userInput, topLevelTools.map((tool) => ({
26
+ label: tool.name,
27
+ text: `${tool.name} ${tool.description}`,
28
+ })));
29
+ const byName = new Map(topLevelTools.map((tool) => [tool.name, tool]));
30
+ const scores = ranked
31
+ .filter((item) => item.score >= CONFIDENCE_THRESHOLD)
32
+ .map((item) => ({ tool: byName.get(item.label), score: item.score }));
33
+ // Ordenar por score e pegar top-N
34
+ scores.sort((a, b) => b.score - a.score);
35
+ const topScores = scores.slice(0, MAX_SUGGESTIONS);
36
+ // Gerar hints
37
+ const hints = [];
38
+ const suggestions = [];
39
+ if (topScores.length > 0) {
40
+ hints.push("[SDD Tools Sugeridas]");
41
+ for (const { tool, score } of topScores) {
42
+ const confidencePct = Math.round(score * 100);
43
+ hints.push(`- ${tool.name} (${confidencePct}%): ${tool.description}`);
44
+ suggestions.push({ tool: tool.name, confidence: score });
45
+ }
46
+ }
47
+ return { hints, suggestions };
48
+ }
49
+ /**
50
+ * Gera a string de nudge para injetar no input do LLM.
51
+ * Retorna string vazia se não houver nudges relevantes.
52
+ */
53
+ export function formatNudgeInput(userInput) {
54
+ const result = calculateSemanticNudge(userInput);
55
+ if (result.hints.length === 0)
56
+ return "";
57
+ return result.hints.join("\n");
58
+ }
59
+ /**
60
+ * Verifica se uma tool específica é sugerida pelo nudge.
61
+ */
62
+ export function isToolSuggested(userInput, toolName) {
63
+ const result = calculateSemanticNudge(userInput);
64
+ return result.suggestions.some(s => s.tool === toolName);
65
+ }
66
+ /**
67
+ * Obtém a tool mais sugerida para o input.
68
+ */
69
+ export function getTopSuggestion(userInput) {
70
+ const result = calculateSemanticNudge(userInput);
71
+ return result.suggestions[0] || null;
72
+ }
73
+ //# sourceMappingURL=semantic-nudge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-nudge.js","sourceRoot":"","sources":["../../../src/opencode/router/semantic-nudge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * State Gate — Determina quais tools são visíveis para cada estado do grafo.
3
+ *
4
+ * Reduz o espaço de escolha do LLM mostrando apenas tools relevantes.
5
+ * Fallback: se o resultado for vazio, mostra todas as tools.
6
+ *
7
+ * Consumido por: hooks.ts (experimental.chat.system.transform)
8
+ * Dependências: graph-state-snapshot.ts, tool-taxonomy.ts
9
+ */
10
+ /**
11
+ * Obtém as tools visíveis para o estado atual do grafo.
12
+ *
13
+ * @param directory - Diretório do projeto
14
+ * @returns Set de nomes de tools visíveis. Se vazio (fallback), retorna null para indicar "todas".
15
+ */
16
+ export declare function getVisibleTools(directory: string): Set<string> | null;
17
+ /**
18
+ * Formata a lista de tools visíveis para injeção no system prompt.
19
+ */
20
+ export declare function formatVisibleTools(visibleTools: Set<string> | null): string;
21
+ /**
22
+ * Escape hatch: instrução para o LLM mostrar todas as tools se necessário.
23
+ */
24
+ export declare const ESCAPE_HATCH_INSTRUCTION: string;
25
+ //# sourceMappingURL=state-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-gate.d.ts","sourceRoot":"","sources":["../../../src/opencode/router/state-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgGH;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CA4BrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,MAAM,CAsC3E;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,QAK7B,CAAA"}
@@ -0,0 +1,178 @@
1
+ /**
2
+ * State Gate — Determina quais tools são visíveis para cada estado do grafo.
3
+ *
4
+ * Reduz o espaço de escolha do LLM mostrando apenas tools relevantes.
5
+ * Fallback: se o resultado for vazio, mostra todas as tools.
6
+ *
7
+ * Consumido por: hooks.ts (experimental.chat.system.transform)
8
+ * Dependências: graph-state-snapshot.ts, tool-taxonomy.ts
9
+ */
10
+ import { getGraphSnapshot } from "./graph-state-snapshot.js";
11
+ import { TOOL_TAXONOMY } from "./tool-taxonomy.js";
12
+ /** Tools que são sempre visíveis (essenciais) */
13
+ const ALWAYS_VISIBLE = new Set([
14
+ "sdd.inspect",
15
+ "sdd.query_graph",
16
+ "sdd.validate",
17
+ "sdd.detect_drift",
18
+ "sdd.get_context",
19
+ ]);
20
+ /** Tools de composits que são sempre visíveis */
21
+ const ALWAYS_VISIBLE_COMPOSITES = new Set([
22
+ "sdd.graph_query",
23
+ "sdd.graph_mutation",
24
+ "sdd.traverse",
25
+ ]);
26
+ /**
27
+ * Mapeamento de estado → tools composits visíveis.
28
+ * Keys são subconjuntos de GraphState.
29
+ */
30
+ const STATE_TOOLS = {
31
+ uninitialized: {
32
+ composite: [],
33
+ standalone: ["sdd.initialize", "sdd.build_graph", "sdd.discover"],
34
+ },
35
+ empty: {
36
+ composite: ["sdd.graph_mutation"],
37
+ standalone: ["sdd.build_graph", "sdd.discover", "sdd.inspect"],
38
+ },
39
+ partial: {
40
+ composite: ["sdd.graph_mutation", "sdd.graph_query"],
41
+ standalone: [
42
+ "sdd.discover", "sdd.update_from_answers", "sdd.inspect",
43
+ "sdd.build_graph", "sdd.enforce",
44
+ ],
45
+ },
46
+ ready: {
47
+ composite: [
48
+ "sdd.graph_mutation", "sdd.graph_query", "sdd.traverse",
49
+ "sdd.code_quality", "sdd.graph_admin",
50
+ ],
51
+ standalone: [
52
+ "sdd.enforce", "sdd.build_graph", "sdd.discover",
53
+ "sdd.pending_changes", "sdd.change_history",
54
+ ],
55
+ },
56
+ has_change: {
57
+ composite: [
58
+ "sdd.graph_mutation", "sdd.graph_query", "sdd.traverse",
59
+ "sdd.code_quality", "sdd.graph_admin", "sdd.permissions",
60
+ ],
61
+ standalone: [
62
+ "sdd.enforce", "sdd.approve_change", "sdd.update_from_answers",
63
+ "sdd.pending_changes", "sdd.change_history", "sdd.impact_report",
64
+ ],
65
+ },
66
+ has_approved_change: {
67
+ composite: [
68
+ "sdd.graph_mutation", "sdd.graph_query", "sdd.traverse",
69
+ "sdd.code_quality", "sdd.graph_admin", "sdd.permissions",
70
+ "sdd.snapshot", "sdd.sync",
71
+ ],
72
+ standalone: [
73
+ "sdd.generate_code", "sdd.complete_change", "sdd.fail_change",
74
+ "sdd.validate", "sdd.detect_drift",
75
+ ],
76
+ },
77
+ emergency: {
78
+ composite: [
79
+ "sdd.graph_mutation", "sdd.graph_query", "sdd.traverse",
80
+ "sdd.snapshot",
81
+ ],
82
+ standalone: [
83
+ "sdd.hotfix", "sdd.validate", "sdd.complete_change",
84
+ ],
85
+ },
86
+ };
87
+ /**
88
+ * Categorias de tools que ficam ocultas em certos estados.
89
+ */
90
+ const CATEGORY_HIDDEN = {
91
+ uninitialized: ["quality", "sync", "enterprise", "admin"],
92
+ empty: ["quality", "sync", "enterprise"],
93
+ partial: ["sync", "enterprise"],
94
+ ready: ["sync"],
95
+ has_change: [],
96
+ has_approved_change: [],
97
+ emergency: ["quality", "sync", "enterprise"],
98
+ };
99
+ /**
100
+ * Obtém as tools visíveis para o estado atual do grafo.
101
+ *
102
+ * @param directory - Diretório do projeto
103
+ * @returns Set de nomes de tools visíveis. Se vazio (fallback), retorna null para indicar "todas".
104
+ */
105
+ export function getVisibleTools(directory) {
106
+ const snapshot = getGraphSnapshot(directory);
107
+ const stateConfig = STATE_TOOLS[snapshot.state];
108
+ const hiddenCategories = CATEGORY_HIDDEN[snapshot.state] || [];
109
+ const visible = new Set();
110
+ // Adicionar sempre-visíveis
111
+ for (const t of ALWAYS_VISIBLE)
112
+ visible.add(t);
113
+ for (const t of ALWAYS_VISIBLE_COMPOSITES)
114
+ visible.add(t);
115
+ // Adicionar tools do estado
116
+ for (const t of stateConfig.standalone)
117
+ visible.add(t);
118
+ for (const t of stateConfig.composite)
119
+ visible.add(t);
120
+ // Adicionar composits de categories não-ocultas
121
+ for (const tool of TOOL_TAXONOMY) {
122
+ if (!hiddenCategories.includes(tool.category)) {
123
+ visible.add(tool.name);
124
+ }
125
+ }
126
+ // Se o resultado é muito pequeno (< 5 tools), retornar null (fallback: todas)
127
+ if (visible.size < 5) {
128
+ return null;
129
+ }
130
+ return visible;
131
+ }
132
+ /**
133
+ * Formata a lista de tools visíveis para injeção no system prompt.
134
+ */
135
+ export function formatVisibleTools(visibleTools) {
136
+ if (!visibleTools) {
137
+ return "[Todas as tools SDD disponíveis]";
138
+ }
139
+ const lines = ["## Tools SDD Disponíveis para Este Estado\n"];
140
+ // Agrupar por tipo
141
+ const standalone = [];
142
+ const composite = [];
143
+ for (const name of visibleTools) {
144
+ if (TOOL_TAXONOMY.find(t => t.name === name)) {
145
+ composite.push(name);
146
+ }
147
+ else {
148
+ standalone.push(name);
149
+ }
150
+ }
151
+ if (standalone.length > 0) {
152
+ lines.push("### Tools Individuais");
153
+ for (const t of standalone.sort()) {
154
+ lines.push(`- \`${t}\``);
155
+ }
156
+ }
157
+ if (composite.length > 0) {
158
+ lines.push("\n### Tools Compositas (use action= para sub-comando)");
159
+ for (const t of composite.sort()) {
160
+ const tool = TOOL_TAXONOMY.find(tc => tc.name === t);
161
+ if (tool) {
162
+ const actions = tool.actions.map(a => a.name).join(", ");
163
+ lines.push(`- \`${t}\` → [${actions}]`);
164
+ }
165
+ }
166
+ }
167
+ return lines.join("\n");
168
+ }
169
+ /**
170
+ * Escape hatch: instrução para o LLM mostrar todas as tools se necessário.
171
+ */
172
+ export const ESCAPE_HATCH_INSTRUCTION = `
173
+ ### Tools SDD Não Listadas?
174
+ Se precisar de uma tool que não está na lista acima, você pode:
175
+ 1. Usar a tool original diretamente (todas ainda existem)
176
+ 2. Pedir ao usuário para usar \`/sdd status\` para ver todas as tools disponíveis
177
+ `.trim();
178
+ //# sourceMappingURL=state-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-gate.js","sourceRoot":"","sources":["../../../src/opencode/router/state-gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Tool catalog — Descriptions cacheadas para todas as tools SDD.
3
+ *
4
+ * Mantém o catálogo usado pelo roteamento lexical. O campo embedding é
5
+ * preservado por compatibilidade com consumidores antigos.
6
+ *
7
+ * Consumido por: semantic-nudge.ts
8
+ * Dependências: embeddings.ts, tool-taxonomy.ts
9
+ */
10
+ export interface ToolEmbedding {
11
+ name: string;
12
+ description: string;
13
+ embedding: number[];
14
+ category: string;
15
+ }
16
+ /**
17
+ * Gera embeddings para todas as tools (standalone + composite).
18
+ */
19
+ export declare function generateAllToolEmbeddings(): ToolEmbedding[];
20
+ /**
21
+ * Obtém embeddings com cache.
22
+ */
23
+ export declare function getCachedToolEmbeddings(): ToolEmbedding[];
24
+ /**
25
+ * Força regeneração do cache.
26
+ */
27
+ export declare function refreshToolEmbeddings(): ToolEmbedding[];
28
+ /**
29
+ * Serializa embeddings para JSON (para persistência).
30
+ */
31
+ export declare function serializeEmbeddings(embeddings: ToolEmbedding[]): string;
32
+ /**
33
+ * Desserializa embeddings de JSON.
34
+ */
35
+ export declare function deserializeEmbeddings(json: string): ToolEmbedding[];
36
+ //# sourceMappingURL=tool-embeddings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-embeddings.d.ts","sourceRoot":"","sources":["../../../src/opencode/router/tool-embeddings.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAqDD;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,aAAa,EAAE,CAmC3D;AAOD;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,aAAa,EAAE,CAKzD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,aAAa,EAAE,CAGvD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM,CAWvE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CAQnE"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Tool catalog — Descriptions cacheadas para todas as tools SDD.
3
+ *
4
+ * Mantém o catálogo usado pelo roteamento lexical. O campo embedding é
5
+ * preservado por compatibilidade com consumidores antigos.
6
+ *
7
+ * Consumido por: semantic-nudge.ts
8
+ * Dependências: embeddings.ts, tool-taxonomy.ts
9
+ */
10
+ import { getEmbedding } from "./embeddings.js";
11
+ import { TOOL_TAXONOMY, STANDALONE_TOOLS } from "./tool-taxonomy.js";
12
+ /**
13
+ * Descriptions das tools standalone (nomes → descriptions representativas).
14
+ * Em produção, extrair das ToolDefinitions reais.
15
+ */
16
+ const STANDALONE_DESCRIPTIONS = {
17
+ "sdd.initialize": "Initialize the SDD Knowledge Graph for a project",
18
+ "sdd.inspect": "Inspect the current state of the SDD Knowledge Graph stats",
19
+ "sdd.query_graph": "Query the SDD Knowledge Graph search for nodes",
20
+ "sdd.analyze_impact": "Perform impact analysis for a change request traverse graph",
21
+ "sdd.create_change": "Create a Change node in the SDD Knowledge Graph",
22
+ "sdd.discover": "Analyze a user briefing and return discovery questions",
23
+ "sdd.update_from_answers": "Update the Knowledge Graph based on user answers",
24
+ "sdd.validate": "Validate the SDD Knowledge Graph for structural integrity",
25
+ "sdd.detect_drift": "Detect SDD drift discrepancies between specification and codebase",
26
+ "sdd.get_context": "Build a context pack for a specific node",
27
+ "sdd.approve_change": "Approve a pending change in the SDD graph",
28
+ "sdd.complete_change": "Mark a change as completed check pending promises",
29
+ "sdd.fail_change": "Mark a change as FAILED with a reason",
30
+ "sdd.change_history": "View the full history of all changes in the SDD graph",
31
+ "sdd.impact_report": "Generate a detailed impact report for a specific change",
32
+ "sdd.pending_changes": "List all pending changes in the SDD graph",
33
+ "sdd.generate_code": "Generate project code from the SDD Knowledge Graph",
34
+ "sdd.enforce": "Classify a change request and create a Change node",
35
+ "sdd.enforce_rules": "Show the current SDD enforcement rules",
36
+ "sdd.full_cycle": "Run the complete SDD workflow cycle from enforcement to completion",
37
+ "sdd.toggle": "Toggle SDD enforcement on or off",
38
+ "sdd.constitution": "Manage the project constitution principles",
39
+ "sdd.promises": "Manage promises and commitments in the SDD graph",
40
+ "sdd.quality": "Calculate quality score for the SDD graph",
41
+ "sdd.session_handoff": "Generate a session handoff pack for context continuity",
42
+ "sdd.anti_patterns": "Detect anti-patterns in the SDD graph",
43
+ "sdd.clone_detection": "Detect near-duplicate nodes and AST clones",
44
+ "sdd.contradictions": "Detect contradictions in the SDD graph",
45
+ "sdd.coverage": "Calculate test coverage for requirements",
46
+ "sdd.install_hooks": "Install git hooks for SDD enforcement",
47
+ "sdd.brownfield_scan": "Scan existing project and create SDD nodes for brownfield",
48
+ "sdd.generate_cicd": "Generate CI/CD pipeline configuration from SDD graph",
49
+ "sdd.bug_fix": "Automated bug fix workflow through SDD",
50
+ "sdd.hotfix": "Emergency hotfix workflow bypassing normal enforcement",
51
+ "sdd.refactoring": "Safe refactoring workflow with test validation",
52
+ "sdd.deprecate": "Deprecation workflow with migration guide",
53
+ "sdd.toggle_status": "Show current SDD toggle status",
54
+ "sdd.drift_signals": "Detect advanced drift signals mutant duplicates architecture violations",
55
+ "sdd.build_graph": "Build the entire Knowledge Graph from a project briefing",
56
+ "sdd.auto_link_tests": "Automatically link orphan tests to requirements",
57
+ "sdd.migrate_storage": "Migrate SDD storage between YAML and SQLite backends",
58
+ "sdd.start_dashboard": "Start the SDD dashboard server",
59
+ "sdd.mcp_server_info": "Show MCP server information and capabilities",
60
+ "sdd.handle_mcp_tool": "Handle an MCP tool call from an external client",
61
+ };
62
+ /**
63
+ * Gera embeddings para todas as tools (standalone + composite).
64
+ */
65
+ export function generateAllToolEmbeddings() {
66
+ const embeddings = [];
67
+ // Standalone tools
68
+ for (const name of STANDALONE_TOOLS) {
69
+ const description = STANDALONE_DESCRIPTIONS[name] || `SDD tool: ${name}`;
70
+ embeddings.push({
71
+ name,
72
+ description,
73
+ embedding: getEmbedding(description),
74
+ category: "standalone",
75
+ });
76
+ }
77
+ // Composite tools
78
+ for (const tool of TOOL_TAXONOMY) {
79
+ embeddings.push({
80
+ name: tool.name,
81
+ description: tool.description,
82
+ embedding: getEmbedding(tool.description),
83
+ category: tool.category,
84
+ });
85
+ // Sub-actions também ganham embeddings
86
+ for (const action of tool.actions) {
87
+ embeddings.push({
88
+ name: `${tool.name}:${action.name}`,
89
+ description: `${action.description} (${tool.label})`,
90
+ embedding: getEmbedding(action.description),
91
+ category: tool.category,
92
+ });
93
+ }
94
+ }
95
+ return embeddings;
96
+ }
97
+ /**
98
+ * Cache global de embeddings.
99
+ */
100
+ let cachedEmbeddings = null;
101
+ /**
102
+ * Obtém embeddings com cache.
103
+ */
104
+ export function getCachedToolEmbeddings() {
105
+ if (!cachedEmbeddings) {
106
+ cachedEmbeddings = generateAllToolEmbeddings();
107
+ }
108
+ return cachedEmbeddings;
109
+ }
110
+ /**
111
+ * Força regeneração do cache.
112
+ */
113
+ export function refreshToolEmbeddings() {
114
+ cachedEmbeddings = generateAllToolEmbeddings();
115
+ return cachedEmbeddings;
116
+ }
117
+ /**
118
+ * Serializa embeddings para JSON (para persistência).
119
+ */
120
+ export function serializeEmbeddings(embeddings) {
121
+ return JSON.stringify(embeddings.map(e => ({
122
+ n: e.name,
123
+ d: e.description,
124
+ e: e.embedding,
125
+ c: e.category,
126
+ })), null, 2);
127
+ }
128
+ /**
129
+ * Desserializa embeddings de JSON.
130
+ */
131
+ export function deserializeEmbeddings(json) {
132
+ const data = JSON.parse(json);
133
+ return data.map((e) => ({
134
+ name: e.n,
135
+ description: e.d,
136
+ embedding: e.e,
137
+ category: e.c,
138
+ }));
139
+ }
140
+ //# sourceMappingURL=tool-embeddings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-embeddings.js","sourceRoot":"","sources":["../../../src/opencode/router/tool-embeddings.ts"],"names":[],"mappings":"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"}