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,205 @@
1
+ /**
2
+ * Workflow Chains — Definições de workflows de múltiplos steps.
3
+ *
4
+ * Cada chain é uma lista ordenada de steps.
5
+ * O executor (executor.ts) executa cada step sequencialmente.
6
+ *
7
+ * Consumido por: executor.ts, tools-workflow.ts
8
+ * Dependências: nenhuma (módulo puro de definições)
9
+ */
10
+
11
+ export interface WorkflowStep {
12
+ /** Nome da tool SDD a chamar */
13
+ tool: string
14
+ /** Args estáticos ou função que gera args do resultado anterior */
15
+ args: Record<string, unknown> | ((prevResult: string) => Record<string, unknown>)
16
+ /** Se true, falha neste step para a chain inteira */
17
+ required: boolean
18
+ /** Descrição do step para logging */
19
+ description: string
20
+ }
21
+
22
+ export interface WorkflowChain {
23
+ /** Nome da chain (usado como tool name) */
24
+ name: string
25
+ /** Descrição para o LLM */
26
+ description: string
27
+ /** Parâmetros aceitos pela chain */
28
+ params: Array<{ name: string; type: string; description: string; required: boolean }>
29
+ /** Lista de steps */
30
+ steps: WorkflowStep[]
31
+ }
32
+
33
+ // ── Chain: New Feature ────────────────────────────────────────────
34
+
35
+ export const NEW_FEATURE_CHAIN: WorkflowChain = {
36
+ name: "sdd.workflow_new_feature",
37
+ description: "Workflow completo para criar uma nova feature: enforce → build graph → validate → approve → generate code.",
38
+ params: [
39
+ { name: "briefing", type: "string", description: "Descrição da feature ou briefing do projeto", required: true },
40
+ ],
41
+ steps: [
42
+ {
43
+ tool: "sdd.enforce",
44
+ args: (prev) => ({ change_request: prev }),
45
+ required: true,
46
+ description: "Classificar a requisição e criar Change node",
47
+ },
48
+ {
49
+ tool: "sdd.build_graph",
50
+ args: (prev) => ({ briefing: prev }),
51
+ required: true,
52
+ description: "Construir o Knowledge Graph a partir do briefing",
53
+ },
54
+ {
55
+ tool: "sdd.validate",
56
+ args: {},
57
+ required: true,
58
+ description: "Validar integridade do grafo",
59
+ },
60
+ {
61
+ tool: "sdd.inspect",
62
+ args: {},
63
+ required: false,
64
+ description: "Revisar o que foi criado",
65
+ },
66
+ ],
67
+ }
68
+
69
+ // ── Chain: Bug Fix ────────────────────────────────────────────────
70
+
71
+ export const BUG_FIX_CHAIN: WorkflowChain = {
72
+ name: "sdd.workflow_bug_fix",
73
+ description: "Workflow para correção de bug: enforce → validate → approve → complete.",
74
+ params: [
75
+ { name: "bug_description", type: "string", description: "Descrição do bug", required: true },
76
+ ],
77
+ steps: [
78
+ {
79
+ tool: "sdd.enforce",
80
+ args: (prev) => ({ change_request: `Bug fix: ${prev}` }),
81
+ required: true,
82
+ description: "Criar Change node para o bug fix",
83
+ },
84
+ {
85
+ tool: "sdd.validate",
86
+ args: {},
87
+ required: true,
88
+ description: "Validar estado atual do grafo",
89
+ },
90
+ ],
91
+ }
92
+
93
+ // ── Chain: Hotfix ─────────────────────────────────────────────────
94
+
95
+ export const HOTFIX_CHAIN: WorkflowChain = {
96
+ name: "sdd.workflow_hotfix",
97
+ description: "Workflow de emergência: hotfix sem enforcement → documentar retroativamente.",
98
+ params: [
99
+ { name: "emergency_description", type: "string", description: "Descrição da emergência", required: true },
100
+ ],
101
+ steps: [
102
+ {
103
+ tool: "sdd.hotfix",
104
+ args: (prev) => ({ description: prev }),
105
+ required: true,
106
+ description: "Aplicar hotfix e documentar retroativamente",
107
+ },
108
+ {
109
+ tool: "sdd.validate",
110
+ args: {},
111
+ required: false,
112
+ description: "Validar grafo após hotfix",
113
+ },
114
+ ],
115
+ }
116
+
117
+ // ── Chain: Refactoring ────────────────────────────────────────────
118
+
119
+ export const REFACTORING_CHAIN: WorkflowChain = {
120
+ name: "sdd.workflow_refactor",
121
+ description: "Workflow de refactoring: enforce → validate → analyze impact → complete.",
122
+ params: [
123
+ { name: "refactoring_scope", type: "string", description: "Escopo do refactoring", required: true },
124
+ ],
125
+ steps: [
126
+ {
127
+ tool: "sdd.enforce",
128
+ args: (prev) => ({ change_request: `Refactoring: ${prev}` }),
129
+ required: true,
130
+ description: "Classificar refactoring e criar Change node",
131
+ },
132
+ {
133
+ tool: "sdd.validate",
134
+ args: {},
135
+ required: true,
136
+ description: "Validar grafo antes do refactoring",
137
+ },
138
+ {
139
+ tool: "sdd.inspect",
140
+ args: {},
141
+ required: false,
142
+ description: "Revisar estado atual",
143
+ },
144
+ ],
145
+ }
146
+
147
+ // ── Chain: Full Cycle ─────────────────────────────────────────────
148
+
149
+ export const FULL_CYCLE_CHAIN: WorkflowChain = {
150
+ name: "sdd.workflow_full_cycle",
151
+ description: "Ciclo SDD completo: enforce → validate → generate code → detect drift → complete.",
152
+ params: [
153
+ { name: "change_request", type: "string", description: "Descrição da mudança", required: true },
154
+ ],
155
+ steps: [
156
+ {
157
+ tool: "sdd.enforce",
158
+ args: (prev) => ({ change_request: prev }),
159
+ required: true,
160
+ description: "Classificar e criar Change node",
161
+ },
162
+ {
163
+ tool: "sdd.validate",
164
+ args: {},
165
+ required: true,
166
+ description: "Validar grafo",
167
+ },
168
+ {
169
+ tool: "sdd.generate_code",
170
+ args: {},
171
+ required: true,
172
+ description: "Gerar código a partir da spec",
173
+ },
174
+ {
175
+ tool: "sdd.detect_drift",
176
+ args: {},
177
+ required: false,
178
+ description: "Verificar drift specification vs code",
179
+ },
180
+ ],
181
+ }
182
+
183
+ // ── Todas as chains ───────────────────────────────────────────────
184
+
185
+ export const ALL_CHAINS: WorkflowChain[] = [
186
+ NEW_FEATURE_CHAIN,
187
+ BUG_FIX_CHAIN,
188
+ HOTFIX_CHAIN,
189
+ REFACTORING_CHAIN,
190
+ FULL_CYCLE_CHAIN,
191
+ ]
192
+
193
+ /**
194
+ * Obtém uma chain pelo nome.
195
+ */
196
+ export function getChainByName(name: string): WorkflowChain | undefined {
197
+ return ALL_CHAINS.find(c => c.name === name)
198
+ }
199
+
200
+ /**
201
+ * Lista todas as chains disponíveis (nomes + descriptions).
202
+ */
203
+ export function listChainNames(): Array<{ name: string; description: string }> {
204
+ return ALL_CHAINS.map(c => ({ name: c.name, description: c.description }))
205
+ }
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Workflow Executor — Executa workflow chains step by step.
3
+ *
4
+ * Cada step é executado sequencialmente.
5
+ * Se um step required falha, a chain para e faz rollback.
6
+ *
7
+ * Consumido por: tools-workflow.ts
8
+ * Dependências: chains.ts
9
+ */
10
+
11
+ import type { WorkflowChain, WorkflowStep } from "./chains.js"
12
+
13
+ export interface StepResult {
14
+ stepIndex: number
15
+ tool: string
16
+ description: string
17
+ success: boolean
18
+ result: string
19
+ timestamp: string
20
+ }
21
+
22
+ export interface ChainExecutionResult {
23
+ chainName: string
24
+ success: boolean
25
+ steps: StepResult[]
26
+ finalResult: string
27
+ totalTimeMs: number
28
+ /** Steps completados antes da falha (para rollback) */
29
+ completedSteps: number
30
+ }
31
+
32
+ /**
33
+ * Tipo da função que executa uma tool SDD.
34
+ * Recebe (toolName, args) e retorna a string de resultado.
35
+ */
36
+ export type ToolExecutor = (toolName: string, args: Record<string, unknown>) => Promise<string>
37
+
38
+ /**
39
+ * Executa uma workflow chain.
40
+ *
41
+ * @param chain - A chain a executar
42
+ * @param initialParams - Parâmetros iniciais da chain
43
+ * @param executeTool - Função que executa uma tool SDD
44
+ * @returns Resultado da execução
45
+ */
46
+ export async function executeChain(
47
+ chain: WorkflowChain,
48
+ initialParams: Record<string, unknown>,
49
+ executeTool: ToolExecutor,
50
+ ): Promise<ChainExecutionResult> {
51
+ const startTime = Date.now()
52
+ const steps: StepResult[] = []
53
+ let prevResult = JSON.stringify(initialParams)
54
+ let completedSteps = 0
55
+
56
+ for (let i = 0; i < chain.steps.length; i++) {
57
+ const step = chain.steps[i]
58
+ const args = typeof step.args === "function"
59
+ ? step.args(prevResult)
60
+ : step.args
61
+
62
+ try {
63
+ const result = await executeTool(step.tool, args)
64
+ const stepResult: StepResult = {
65
+ stepIndex: i,
66
+ tool: step.tool,
67
+ description: step.description,
68
+ success: true,
69
+ result,
70
+ timestamp: new Date().toISOString(),
71
+ }
72
+ steps.push(stepResult)
73
+ prevResult = result
74
+ completedSteps++
75
+
76
+ // Se o resultado indica falha (contém "BLOCKED" ou "Error")
77
+ if (result.includes("BLOCKED") || result.startsWith("Error:")) {
78
+ if (step.required) {
79
+ return {
80
+ chainName: chain.name,
81
+ success: false,
82
+ steps,
83
+ finalResult: `Step ${i + 1} failed: ${result}`,
84
+ totalTimeMs: Date.now() - startTime,
85
+ completedSteps,
86
+ }
87
+ }
88
+ }
89
+ } catch (error) {
90
+ const stepResult: StepResult = {
91
+ stepIndex: i,
92
+ tool: step.tool,
93
+ description: step.description,
94
+ success: false,
95
+ result: error instanceof Error ? error.message : String(error),
96
+ timestamp: new Date().toISOString(),
97
+ }
98
+ steps.push(stepResult)
99
+
100
+ if (step.required) {
101
+ return {
102
+ chainName: chain.name,
103
+ success: false,
104
+ steps,
105
+ finalResult: `Step ${i + 1} (${step.description}) failed: ${stepResult.result}`,
106
+ totalTimeMs: Date.now() - startTime,
107
+ completedSteps,
108
+ }
109
+ }
110
+ }
111
+ }
112
+
113
+ return {
114
+ chainName: chain.name,
115
+ success: true,
116
+ steps,
117
+ finalResult: prevResult,
118
+ totalTimeMs: Date.now() - startTime,
119
+ completedSteps,
120
+ }
121
+ }
122
+
123
+ /**
124
+ * Formata o resultado de uma execução de chain para exibição.
125
+ */
126
+ export function formatChainResult(result: ChainExecutionResult): string {
127
+ const lines: string[] = []
128
+
129
+ const statusIcon = result.success ? "✅" : "❌"
130
+ lines.push(`## ${statusIcon} Workflow: ${result.chainName}\n`)
131
+ lines.push(`**Tempo:** ${result.totalTimeMs}ms`)
132
+ lines.push(`**Steps:** ${result.completedSteps}/${result.steps.length}\n`)
133
+
134
+ // Steps
135
+ for (const step of result.steps) {
136
+ const icon = step.success ? "✅" : "❌"
137
+ lines.push(`### ${icon} Step ${step.stepIndex + 1}: ${step.description}`)
138
+ lines.push(`Tool: \`${step.tool}\``)
139
+ if (!step.success) {
140
+ lines.push(`Erro: ${step.result}`)
141
+ }
142
+ lines.push("")
143
+ }
144
+
145
+ // Resultado final
146
+ if (result.success) {
147
+ lines.push("### Resultado Final")
148
+ lines.push(result.finalResult)
149
+ } else {
150
+ lines.push("### Falha na Chain")
151
+ lines.push(result.finalResult)
152
+ }
153
+
154
+ return lines.join("\n")
155
+ }
156
+
157
+ /**
158
+ * Rollback: desfaz os steps completados.
159
+ * Nota: Na prática, o rollback é feito via snapshots do SDD.
160
+ * Esta função apenas informa o que precisa ser desfeito.
161
+ */
162
+ export function getRollbackPlan(result: ChainExecutionResult): string[] {
163
+ const plan: string[] = []
164
+
165
+ for (const step of result.steps) {
166
+ if (step.success) {
167
+ plan.push(`Reverter step ${step.stepIndex + 1}: ${step.description} (${step.tool})`)
168
+ }
169
+ }
170
+
171
+ return plan
172
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Workflows Module — Barrel export.
3
+ *
4
+ * Exporta todas as funções públicas do módulo de workflows.
5
+ * Consumido por: tools.ts
6
+ */
7
+
8
+ // Chains
9
+ export { ALL_CHAINS, getChainByName, listChainNames } from "./chains.js"
10
+ export type { WorkflowChain, WorkflowStep } from "./chains.js"
11
+
12
+ // Executor
13
+ export { executeChain, formatChainResult, getRollbackPlan } from "./executor.js"
14
+ export type { ChainExecutionResult, StepResult, ToolExecutor } from "./executor.js"
15
+
16
+ // Types
17
+ export { DEFAULT_EXECUTOR_CONFIG } from "./types.js"
18
+ export type { ChainStatus, ChainExecutionLog, ExecutorConfig } from "./types.js"
19
+
20
+ // Tools
21
+ export { createWorkflowTools, listWorkflowTools } from "./tools-workflow.js"
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Workflow Tools — Tool definitions para workflow chains.
3
+ *
4
+ * Cada tool chain é uma tool SDD que o LLM pode chamar diretamente.
5
+ * Internamente, executa a chain de steps usando o executor.
6
+ *
7
+ * Consumido por: createSddTools() em tools.ts
8
+ * Dependências: chains.ts, executor.ts
9
+ */
10
+
11
+ import { tool, type ToolDefinition } from "@opencode-ai/plugin"
12
+ import { ALL_CHAINS, type WorkflowChain } from "./chains.js"
13
+ import { executeChain, formatChainResult, type ToolExecutor } from "./executor.js"
14
+
15
+ /**
16
+ * Cria uma tool definition para uma workflow chain.
17
+ */
18
+ function createChainTool(chain: WorkflowChain): ToolDefinition {
19
+ // Build args schema from chain params
20
+ const argsSchema: Record<string, any> = {}
21
+ for (const param of chain.params) {
22
+ if (param.type === "string") {
23
+ argsSchema[param.name] = tool.schema.string().describe(param.description)
24
+ } else if (param.type === "number") {
25
+ argsSchema[param.name] = tool.schema.number().describe(param.description)
26
+ } else if (param.type === "boolean") {
27
+ argsSchema[param.name] = tool.schema.boolean().describe(param.description)
28
+ }
29
+ }
30
+
31
+ return tool({
32
+ description: chain.description,
33
+ args: argsSchema,
34
+ async execute(args, ctx) {
35
+ // Construir params iniciais
36
+ const params: Record<string, unknown> = {}
37
+ for (const param of chain.params) {
38
+ if (args[param.name] !== undefined) {
39
+ params[param.name] = args[param.name]
40
+ }
41
+ }
42
+
43
+ // Tool executor: chama as tools SDD diretamente
44
+ const executeTool: ToolExecutor = async (toolName, toolArgs) => {
45
+ // Import dinâmico para evitar circular dependencies
46
+ const { createSddTools } = await import("../tools.js")
47
+ const tools = createSddTools()
48
+ const sddTool = tools[toolName]
49
+
50
+ if (!sddTool) {
51
+ return `Error: Tool ${toolName} not found`
52
+ }
53
+
54
+ const result = await sddTool.execute(toolArgs as any, ctx)
55
+ // ToolResult pode ser string ou objeto com output
56
+ if (typeof result === "string") return result
57
+ if (result && typeof result === "object" && "output" in result) return result.output
58
+ return JSON.stringify(result)
59
+ }
60
+
61
+ // Executar chain
62
+ const result = await executeChain(chain, params, executeTool)
63
+ return formatChainResult(result)
64
+ },
65
+ })
66
+ }
67
+
68
+ /**
69
+ * Cria todas as tools de workflow chains.
70
+ * Retorna um Record compatível com createSddTools().
71
+ */
72
+ export function createWorkflowTools(): Record<string, ToolDefinition> {
73
+ const tools: Record<string, ToolDefinition> = {}
74
+
75
+ for (const chain of ALL_CHAINS) {
76
+ tools[chain.name] = createChainTool(chain)
77
+ }
78
+
79
+ return tools
80
+ }
81
+
82
+ /**
83
+ * Lista todas as workflow tools disponíveis.
84
+ */
85
+ export function listWorkflowTools(): Array<{ name: string; description: string; params: string[] }> {
86
+ return ALL_CHAINS.map(chain => ({
87
+ name: chain.name,
88
+ description: chain.description,
89
+ params: chain.params.map(p => `${p.name}: ${p.type}${p.required ? " (required)" : ""}`),
90
+ }))
91
+ }
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Workflow Types — Tipos compartilhados para o módulo de workflows.
3
+ *
4
+ * Consumido por: chains.ts, executor.ts, tools-workflow.ts
5
+ */
6
+
7
+ import type { WorkflowChain } from "./chains.js"
8
+ import type { ChainExecutionResult } from "./executor.js"
9
+
10
+ /** Status de uma execução de chain */
11
+ export type ChainStatus = "pending" | "running" | "completed" | "failed" | "rolled_back"
12
+
13
+ /** Registro de uma execução de chain (para auditoria) */
14
+ export interface ChainExecutionLog {
15
+ id: string
16
+ chainName: string
17
+ status: ChainStatus
18
+ startedAt: string
19
+ completedAt?: string
20
+ result?: ChainExecutionResult
21
+ params: Record<string, unknown>
22
+ }
23
+
24
+ /** Configuração do executor */
25
+ export interface ExecutorConfig {
26
+ /** Timeout máximo por step (ms) */
27
+ stepTimeoutMs: number
28
+ /** Timeout máximo da chain inteira (ms) */
29
+ chainTimeoutMs: number
30
+ /** Se true, faz snapshot antes de cada step */
31
+ snapshotBeforeStep: boolean
32
+ /** Se true, faz rollback automático em falha */
33
+ autoRollback: boolean
34
+ }
35
+
36
+ /** Configuração padrão */
37
+ export const DEFAULT_EXECUTOR_CONFIG: ExecutorConfig = {
38
+ stepTimeoutMs: 30_000,
39
+ chainTimeoutMs: 120_000,
40
+ snapshotBeforeStep: true,
41
+ autoRollback: true,
42
+ }