@dv.nghiem/flowdeck 0.1.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 (331) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +136 -0
  3. package/bin/flowdeck.js +108 -0
  4. package/dist/agents/architect.d.ts +3 -0
  5. package/dist/agents/architect.d.ts.map +1 -0
  6. package/dist/agents/code-explorer.d.ts +3 -0
  7. package/dist/agents/code-explorer.d.ts.map +1 -0
  8. package/dist/agents/coder.d.ts +3 -0
  9. package/dist/agents/coder.d.ts.map +1 -0
  10. package/dist/agents/debug.d.ts +4 -0
  11. package/dist/agents/debug.d.ts.map +1 -0
  12. package/dist/agents/doc-updater.d.ts +3 -0
  13. package/dist/agents/doc-updater.d.ts.map +1 -0
  14. package/dist/agents/flowdeck.d.ts +5 -0
  15. package/dist/agents/flowdeck.d.ts.map +1 -0
  16. package/dist/agents/index.d.ts +38 -0
  17. package/dist/agents/index.d.ts.map +1 -0
  18. package/dist/agents/mapper.d.ts +3 -0
  19. package/dist/agents/mapper.d.ts.map +1 -0
  20. package/dist/agents/orchestrator.d.ts +10 -0
  21. package/dist/agents/orchestrator.d.ts.map +1 -0
  22. package/dist/agents/performance.d.ts +4 -0
  23. package/dist/agents/performance.d.ts.map +1 -0
  24. package/dist/agents/planner.d.ts +3 -0
  25. package/dist/agents/planner.d.ts.map +1 -0
  26. package/dist/agents/policy-enforcer.d.ts +3 -0
  27. package/dist/agents/policy-enforcer.d.ts.map +1 -0
  28. package/dist/agents/researcher.d.ts +3 -0
  29. package/dist/agents/researcher.d.ts.map +1 -0
  30. package/dist/agents/reviewer.d.ts +3 -0
  31. package/dist/agents/reviewer.d.ts.map +1 -0
  32. package/dist/agents/risk-analyst.d.ts +3 -0
  33. package/dist/agents/risk-analyst.d.ts.map +1 -0
  34. package/dist/agents/security-auditor.d.ts +3 -0
  35. package/dist/agents/security-auditor.d.ts.map +1 -0
  36. package/dist/agents/specialist.d.ts +5 -0
  37. package/dist/agents/specialist.d.ts.map +1 -0
  38. package/dist/agents/tester.d.ts +3 -0
  39. package/dist/agents/tester.d.ts.map +1 -0
  40. package/dist/agents/types.d.ts +20 -0
  41. package/dist/agents/types.d.ts.map +1 -0
  42. package/dist/agents/writer.d.ts +3 -0
  43. package/dist/agents/writer.d.ts.map +1 -0
  44. package/dist/commands/analysis/analysis.test.d.ts +2 -0
  45. package/dist/commands/analysis/analysis.test.d.ts.map +1 -0
  46. package/dist/commands/analysis/analyze-change.d.ts +148 -0
  47. package/dist/commands/analysis/analyze-change.d.ts.map +1 -0
  48. package/dist/commands/analysis/evaluate-risk.d.ts +77 -0
  49. package/dist/commands/analysis/evaluate-risk.d.ts.map +1 -0
  50. package/dist/commands/analysis/guarded-edit.d.ts +72 -0
  51. package/dist/commands/analysis/guarded-edit.d.ts.map +1 -0
  52. package/dist/commands/execution/deploy-check.d.ts +91 -0
  53. package/dist/commands/execution/deploy-check.d.ts.map +1 -0
  54. package/dist/commands/execution/fix-bug.d.ts +187 -0
  55. package/dist/commands/execution/fix-bug.d.ts.map +1 -0
  56. package/dist/commands/execution/new-feature.d.ts +171 -0
  57. package/dist/commands/execution/new-feature.d.ts.map +1 -0
  58. package/dist/commands/execution/review-code.d.ts +130 -0
  59. package/dist/commands/execution/review-code.d.ts.map +1 -0
  60. package/dist/commands/execution/write-docs.d.ts +94 -0
  61. package/dist/commands/execution/write-docs.d.ts.map +1 -0
  62. package/dist/commands/governance/approve.d.ts +80 -0
  63. package/dist/commands/governance/approve.d.ts.map +1 -0
  64. package/dist/commands/intelligence/blast-radius.d.ts +67 -0
  65. package/dist/commands/intelligence/blast-radius.d.ts.map +1 -0
  66. package/dist/commands/intelligence/impact-radar.d.ts +71 -0
  67. package/dist/commands/intelligence/impact-radar.d.ts.map +1 -0
  68. package/dist/commands/intelligence/intelligence.test.d.ts +2 -0
  69. package/dist/commands/intelligence/intelligence.test.d.ts.map +1 -0
  70. package/dist/commands/intelligence/regression-predict.d.ts +75 -0
  71. package/dist/commands/intelligence/regression-predict.d.ts.map +1 -0
  72. package/dist/commands/intelligence/review-route.d.ts +65 -0
  73. package/dist/commands/intelligence/review-route.d.ts.map +1 -0
  74. package/dist/commands/intelligence/test-gap.d.ts +73 -0
  75. package/dist/commands/intelligence/test-gap.d.ts.map +1 -0
  76. package/dist/commands/intelligence/translate-intent.d.ts +87 -0
  77. package/dist/commands/intelligence/translate-intent.d.ts.map +1 -0
  78. package/dist/commands/intelligence/volatility-map-cmd.d.ts +68 -0
  79. package/dist/commands/intelligence/volatility-map-cmd.d.ts.map +1 -0
  80. package/dist/commands/planning/ask.d.ts +62 -0
  81. package/dist/commands/planning/ask.d.ts.map +1 -0
  82. package/dist/commands/planning/ask.test.d.ts +2 -0
  83. package/dist/commands/planning/ask.test.d.ts.map +1 -0
  84. package/dist/commands/planning/dashboard.d.ts +30 -0
  85. package/dist/commands/planning/dashboard.d.ts.map +1 -0
  86. package/dist/commands/planning/discuss.d.ts +39 -0
  87. package/dist/commands/planning/discuss.d.ts.map +1 -0
  88. package/dist/commands/planning/plan.d.ts +67 -0
  89. package/dist/commands/planning/plan.d.ts.map +1 -0
  90. package/dist/commands/planning/roadmap.d.ts +105 -0
  91. package/dist/commands/planning/roadmap.d.ts.map +1 -0
  92. package/dist/commands/setup/doctor.d.ts +10 -0
  93. package/dist/commands/setup/doctor.d.ts.map +1 -0
  94. package/dist/commands/setup/map-codebase.d.ts +62 -0
  95. package/dist/commands/setup/map-codebase.d.ts.map +1 -0
  96. package/dist/commands/setup/new-project.d.ts +19 -0
  97. package/dist/commands/setup/new-project.d.ts.map +1 -0
  98. package/dist/commands/setup/settings.d.ts +57 -0
  99. package/dist/commands/setup/settings.d.ts.map +1 -0
  100. package/dist/commands/state/checkpoint.d.ts +27 -0
  101. package/dist/commands/state/checkpoint.d.ts.map +1 -0
  102. package/dist/commands/state/multi-repo.d.ts +63 -0
  103. package/dist/commands/state/multi-repo.d.ts.map +1 -0
  104. package/dist/commands/state/progress.d.ts +57 -0
  105. package/dist/commands/state/progress.d.ts.map +1 -0
  106. package/dist/commands/state/resume.d.ts +11 -0
  107. package/dist/commands/state/resume.d.ts.map +1 -0
  108. package/dist/commands/state/workspace-commands.d.ts +207 -0
  109. package/dist/commands/state/workspace-commands.d.ts.map +1 -0
  110. package/dist/dashboard/lib/port-finder.d.ts +10 -0
  111. package/dist/dashboard/lib/port-finder.d.ts.map +1 -0
  112. package/dist/dashboard/lib/port-finder.test.d.ts +2 -0
  113. package/dist/dashboard/lib/port-finder.test.d.ts.map +1 -0
  114. package/dist/dashboard/lib/state-reader.d.ts +3 -0
  115. package/dist/dashboard/lib/state-reader.d.ts.map +1 -0
  116. package/dist/dashboard/server.d.ts +2 -0
  117. package/dist/dashboard/server.d.ts.map +1 -0
  118. package/dist/dashboard/server.mjs +13649 -0
  119. package/dist/dashboard/types.d.ts +72 -0
  120. package/dist/dashboard/types.d.ts.map +1 -0
  121. package/dist/dashboard/views/index.ejs +391 -0
  122. package/dist/dashboard/views/partials/blockers.ejs +10 -0
  123. package/dist/dashboard/views/partials/header.ejs +20 -0
  124. package/dist/dashboard/views/partials/phase-timeline.ejs +40 -0
  125. package/dist/dashboard/views/partials/progress.ejs +12 -0
  126. package/dist/hooks/approval-hook.d.ts +13 -0
  127. package/dist/hooks/approval-hook.d.ts.map +1 -0
  128. package/dist/hooks/compaction-hook.d.ts +23 -0
  129. package/dist/hooks/compaction-hook.d.ts.map +1 -0
  130. package/dist/hooks/context-window-monitor.d.ts +21 -0
  131. package/dist/hooks/context-window-monitor.d.ts.map +1 -0
  132. package/dist/hooks/decision-trace-hook.d.ts +13 -0
  133. package/dist/hooks/decision-trace-hook.d.ts.map +1 -0
  134. package/dist/hooks/file-tracker.d.ts +29 -0
  135. package/dist/hooks/file-tracker.d.ts.map +1 -0
  136. package/dist/hooks/guard-rails.d.ts +33 -0
  137. package/dist/hooks/guard-rails.d.ts.map +1 -0
  138. package/dist/hooks/index.d.ts +5 -0
  139. package/dist/hooks/index.d.ts.map +1 -0
  140. package/dist/hooks/notifications.d.ts +21 -0
  141. package/dist/hooks/notifications.d.ts.map +1 -0
  142. package/dist/hooks/patch-trust.d.ts +27 -0
  143. package/dist/hooks/patch-trust.d.ts.map +1 -0
  144. package/dist/hooks/patch-trust.test.d.ts +2 -0
  145. package/dist/hooks/patch-trust.test.d.ts.map +1 -0
  146. package/dist/hooks/session-events.d.ts +8 -0
  147. package/dist/hooks/session-events.d.ts.map +1 -0
  148. package/dist/hooks/session-idle-hook.d.ts +21 -0
  149. package/dist/hooks/session-idle-hook.d.ts.map +1 -0
  150. package/dist/hooks/session-start.d.ts +10 -0
  151. package/dist/hooks/session-start.d.ts.map +1 -0
  152. package/dist/hooks/shell-env-hook.d.ts +21 -0
  153. package/dist/hooks/shell-env-hook.d.ts.map +1 -0
  154. package/dist/hooks/telemetry-hook.d.ts +25 -0
  155. package/dist/hooks/telemetry-hook.d.ts.map +1 -0
  156. package/dist/hooks/todo-hook.d.ts +25 -0
  157. package/dist/hooks/todo-hook.d.ts.map +1 -0
  158. package/dist/hooks/tool-guard.d.ts +41 -0
  159. package/dist/hooks/tool-guard.d.ts.map +1 -0
  160. package/dist/hooks/tool-guard.test.d.ts +2 -0
  161. package/dist/hooks/tool-guard.test.d.ts.map +1 -0
  162. package/dist/index.d.ts +4 -0
  163. package/dist/index.d.ts.map +1 -0
  164. package/dist/index.js +6639 -0
  165. package/dist/lib/confirmation.d.ts +20 -0
  166. package/dist/lib/confirmation.d.ts.map +1 -0
  167. package/dist/lib/impact-radar.d.ts +35 -0
  168. package/dist/lib/impact-radar.d.ts.map +1 -0
  169. package/dist/lib/signatures.d.ts +12 -0
  170. package/dist/lib/signatures.d.ts.map +1 -0
  171. package/dist/lib/timestamps.d.ts +23 -0
  172. package/dist/lib/timestamps.d.ts.map +1 -0
  173. package/dist/mcp/index.d.ts +20 -0
  174. package/dist/mcp/index.d.ts.map +1 -0
  175. package/dist/services/agent-performance.d.ts +29 -0
  176. package/dist/services/agent-performance.d.ts.map +1 -0
  177. package/dist/services/approval-manager.d.ts +30 -0
  178. package/dist/services/approval-manager.d.ts.map +1 -0
  179. package/dist/services/index.d.ts +7 -0
  180. package/dist/services/index.d.ts.map +1 -0
  181. package/dist/services/model-router.d.ts +35 -0
  182. package/dist/services/model-router.d.ts.map +1 -0
  183. package/dist/services/policy-compiler.d.ts +27 -0
  184. package/dist/services/policy-compiler.d.ts.map +1 -0
  185. package/dist/services/run-trace.d.ts +34 -0
  186. package/dist/services/run-trace.d.ts.map +1 -0
  187. package/dist/services/services.test.d.ts +2 -0
  188. package/dist/services/services.test.d.ts.map +1 -0
  189. package/dist/services/telemetry.d.ts +34 -0
  190. package/dist/services/telemetry.d.ts.map +1 -0
  191. package/dist/tools/agent-dispatch.test.d.ts +2 -0
  192. package/dist/tools/agent-dispatch.test.d.ts.map +1 -0
  193. package/dist/tools/codebase-state.d.ts +4 -0
  194. package/dist/tools/codebase-state.d.ts.map +1 -0
  195. package/dist/tools/context-generator.d.ts +3 -0
  196. package/dist/tools/context-generator.d.ts.map +1 -0
  197. package/dist/tools/council.d.ts +4 -0
  198. package/dist/tools/council.d.ts.map +1 -0
  199. package/dist/tools/decision-trace.d.ts +16 -0
  200. package/dist/tools/decision-trace.d.ts.map +1 -0
  201. package/dist/tools/delegate.d.ts +4 -0
  202. package/dist/tools/delegate.d.ts.map +1 -0
  203. package/dist/tools/failure-replay.d.ts +19 -0
  204. package/dist/tools/failure-replay.d.ts.map +1 -0
  205. package/dist/tools/failure-replay.test.d.ts +2 -0
  206. package/dist/tools/failure-replay.test.d.ts.map +1 -0
  207. package/dist/tools/hash-edit.d.ts +3 -0
  208. package/dist/tools/hash-edit.d.ts.map +1 -0
  209. package/dist/tools/planning-state-lib.d.ts +65 -0
  210. package/dist/tools/planning-state-lib.d.ts.map +1 -0
  211. package/dist/tools/planning-state.d.ts +3 -0
  212. package/dist/tools/planning-state.d.ts.map +1 -0
  213. package/dist/tools/policy-engine.d.ts +19 -0
  214. package/dist/tools/policy-engine.d.ts.map +1 -0
  215. package/dist/tools/repo-memory.d.ts +20 -0
  216. package/dist/tools/repo-memory.d.ts.map +1 -0
  217. package/dist/tools/repo-memory.test.d.ts +2 -0
  218. package/dist/tools/repo-memory.test.d.ts.map +1 -0
  219. package/dist/tools/run-parallel.d.ts +4 -0
  220. package/dist/tools/run-parallel.d.ts.map +1 -0
  221. package/dist/tools/run-pipeline.d.ts +4 -0
  222. package/dist/tools/run-pipeline.d.ts.map +1 -0
  223. package/dist/tools/volatility-map.d.ts +18 -0
  224. package/dist/tools/volatility-map.d.ts.map +1 -0
  225. package/dist/tools/volatility-map.test.d.ts +2 -0
  226. package/dist/tools/volatility-map.test.d.ts.map +1 -0
  227. package/dist/tools/workspace-state.d.ts +3 -0
  228. package/dist/tools/workspace-state.d.ts.map +1 -0
  229. package/docs/USER_GUIDE.md +20 -0
  230. package/docs/agents.md +562 -0
  231. package/docs/best-practices.md +47 -0
  232. package/docs/command-migration.md +175 -0
  233. package/docs/commands/fd-analyze-change.md +107 -0
  234. package/docs/commands/fd-ask.md +51 -0
  235. package/docs/commands/fd-checkpoint.md +10 -0
  236. package/docs/commands/fd-dashboard.md +11 -0
  237. package/docs/commands/fd-deploy-check.md +11 -0
  238. package/docs/commands/fd-discuss.md +28 -0
  239. package/docs/commands/fd-evaluate-risk.md +134 -0
  240. package/docs/commands/fd-fix-bug.md +24 -0
  241. package/docs/commands/fd-guarded-edit.md +105 -0
  242. package/docs/commands/fd-map-codebase.md +27 -0
  243. package/docs/commands/fd-multi-repo.md +63 -0
  244. package/docs/commands/fd-new-feature.md +25 -0
  245. package/docs/commands/fd-new-project.md +24 -0
  246. package/docs/commands/fd-plan.md +33 -0
  247. package/docs/commands/fd-progress.md +11 -0
  248. package/docs/commands/fd-resume.md +10 -0
  249. package/docs/commands/fd-review-code.md +29 -0
  250. package/docs/commands/fd-roadmap.md +10 -0
  251. package/docs/commands/fd-settings.md +10 -0
  252. package/docs/commands/fd-write-docs.md +10 -0
  253. package/docs/commands.md +476 -0
  254. package/docs/configuration.md +211 -0
  255. package/docs/feature-integration-architecture.md +255 -0
  256. package/docs/index.md +75 -0
  257. package/docs/installation.md +134 -0
  258. package/docs/intelligence.md +294 -0
  259. package/docs/multi-repo.md +201 -0
  260. package/docs/notifications.md +170 -0
  261. package/docs/parallel-execution.md +227 -0
  262. package/docs/quick-start.md +174 -0
  263. package/docs/rules.md +459 -0
  264. package/docs/skills.md +408 -0
  265. package/docs/workflows.md +376 -0
  266. package/package.json +58 -0
  267. package/postinstall.mjs +102 -0
  268. package/src/rules/README.md +37 -0
  269. package/src/rules/common/agent-orchestration.md +86 -0
  270. package/src/rules/common/coding-style.md +120 -0
  271. package/src/rules/common/git-workflow.md +77 -0
  272. package/src/rules/common/security.md +94 -0
  273. package/src/rules/common/testing.md +105 -0
  274. package/src/rules/golang/patterns.md +187 -0
  275. package/src/rules/java/patterns.md +204 -0
  276. package/src/rules/python/patterns.md +141 -0
  277. package/src/rules/rust/patterns.md +210 -0
  278. package/src/rules/typescript/patterns.md +168 -0
  279. package/src/skills/api-design/SKILL.md +143 -0
  280. package/src/skills/arch-constraint-guard/SKILL.md +61 -0
  281. package/src/skills/blast-radius-preview/SKILL.md +65 -0
  282. package/src/skills/change-impact-radar/SKILL.md +63 -0
  283. package/src/skills/code-review/SKILL.md +108 -0
  284. package/src/skills/code-tour/SKILL.md +101 -0
  285. package/src/skills/codebase-mapping/SKILL.md +87 -0
  286. package/src/skills/codebase-onboarding/SKILL.md +133 -0
  287. package/src/skills/confidence-aware-planning/SKILL.md +67 -0
  288. package/src/skills/context-load/SKILL.md +63 -0
  289. package/src/skills/debug-flow/SKILL.md +75 -0
  290. package/src/skills/decision-trace/SKILL.md +72 -0
  291. package/src/skills/dependency-audit/SKILL.md +126 -0
  292. package/src/skills/deploy-check/SKILL.md +87 -0
  293. package/src/skills/documentation-writer/SKILL.md +154 -0
  294. package/src/skills/failure-replay-engine/SKILL.md +59 -0
  295. package/src/skills/git-release/SKILL.md +94 -0
  296. package/src/skills/git-workflow/SKILL.md +177 -0
  297. package/src/skills/golang-patterns/SKILL.md +511 -0
  298. package/src/skills/human-review-routing/SKILL.md +65 -0
  299. package/src/skills/intent-translator/SKILL.md +57 -0
  300. package/src/skills/java-patterns/SKILL.md +479 -0
  301. package/src/skills/multi-repo/SKILL.md +187 -0
  302. package/src/skills/parallel-execute/SKILL.md +92 -0
  303. package/src/skills/patch-trust-score/SKILL.md +44 -0
  304. package/src/skills/performance-profiling/SKILL.md +153 -0
  305. package/src/skills/plan-task/SKILL.md +101 -0
  306. package/src/skills/python-patterns/SKILL.md +529 -0
  307. package/src/skills/refactor-guide/SKILL.md +117 -0
  308. package/src/skills/regression-prediction/SKILL.md +57 -0
  309. package/src/skills/repo-memory-graph/SKILL.md +49 -0
  310. package/src/skills/rust-patterns/SKILL.md +492 -0
  311. package/src/skills/security-scan/SKILL.md +91 -0
  312. package/src/skills/self-healing-policies/SKILL.md +76 -0
  313. package/src/skills/tdd-workflow/SKILL.md +126 -0
  314. package/src/skills/test-coverage/SKILL.md +94 -0
  315. package/src/skills/test-gap-detector/SKILL.md +58 -0
  316. package/src/skills/volatility-map/SKILL.md +52 -0
  317. package/src/workflows/debug-flow.md +119 -0
  318. package/src/workflows/deploy-check-flow.md +98 -0
  319. package/src/workflows/discuss-flow.md +97 -0
  320. package/src/workflows/execute-flow.md +233 -0
  321. package/src/workflows/execute-phase.md +142 -0
  322. package/src/workflows/fix-bug-flow.md +210 -0
  323. package/src/workflows/map-codebase-flow.md +92 -0
  324. package/src/workflows/multi-repo-flow.md +226 -0
  325. package/src/workflows/parallel-execution-flow.md +236 -0
  326. package/src/workflows/plan-flow.md +126 -0
  327. package/src/workflows/plan-phase.md +101 -0
  328. package/src/workflows/refactor-flow.md +122 -0
  329. package/src/workflows/review-code-flow.md +105 -0
  330. package/src/workflows/spec-driven-flow.md +43 -0
  331. package/src/workflows/write-docs-flow.md +95 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Dang Van Nghiem
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,136 @@
1
+ # FlowDeck — OpenCode Plugin
2
+
3
+ > AI-powered multi-agent workflow orchestration with built-in safety intelligence for OpenCode
4
+
5
+ FlowDeck adds a structured, multi-agent development workflow to OpenCode. It coordinates 25 specialist agents through a four-phase cycle — discuss, plan, execute, review — with persistent state that survives session restarts, and a full AI safety layer that scores every change, predicts regressions, and enforces architectural constraints before anything is applied.
6
+
7
+ ---
8
+
9
+ ## Features
10
+
11
+ - 🤖 **25 agents** — architect, planner, coder, reviewer, tester, debugger, risk-analyst, policy-enforcer, and more
12
+ - 🛠️ **24 skills** — reusable workflow patterns (TDD, security scan, deploy check, code review, and more)
13
+ - ⚡ **24 commands** — 19 workflow commands + 4 umbrella analysis commands + `/fd-ask` smart dispatch
14
+ - 📋 **15 workflows** — pre-built orchestration flows including Spec-Driven Development (SDD)
15
+ - 🔄 **Persistent state** — resume exactly where you left off across sessions via `.planning/STATE.md`
16
+ - 🔀 **Parallel execution** — independent tasks run simultaneously in wave-structured batches
17
+ - 📐 **Language rules** — coding standards for TypeScript, Python, Go, Java, and Rust
18
+ - 🗂️ **Multi-repo support** — coordinate changes across multiple repositories in one session
19
+ - 🔔 **System notifications** — desktop alerts when long-running tasks complete
20
+ - 🛡️ **AI Safety layer** — patch trust scoring, edit gates, phase gating, arch constraint enforcement, failure replay, and regression prediction built into every workflow
21
+ - 🪝 **Deep System Hooks** — context window monitoring, session idle summaries, shell environment injection, and structured compaction to prevent context loss
22
+ - 🌐 **Built-in MCPs** — Context7 (docs), Exa (web search), and Grep.app (code search) included and enabled by default
23
+ - 💎 **Ensemble Reasoning** — `/fd-council` tool for synthesized consensus from multiple specialized agents
24
+
25
+ ---
26
+
27
+ ## Quick Install
28
+
29
+ ### Method 1: curl (recommended)
30
+
31
+ ```bash
32
+ curl -fsSL https://raw.githubusercontent.com/DVNghiem/flowdeck/main/install.sh | bash
33
+ ```
34
+
35
+ ### Method 2: npx (no git required)
36
+
37
+ ```bash
38
+ npx @dv.nghiem/flowdeck install
39
+ ```
40
+
41
+ See [Installation](docs/installation.md) for prerequisites, verification steps, and environment variables.
42
+
43
+ ---
44
+
45
+ ## Core Workflow
46
+
47
+ FlowDeck structures every feature through a four-step cycle:
48
+
49
+ ```
50
+ /fd-new-project → /fd-discuss → /fd-plan → /fd-new-feature
51
+ ```
52
+
53
+ | Step | Command | What happens |
54
+ |------|---------|--------------|
55
+ | **Initialize** | `/fd-new-project MyApp` | Creates `.planning/` directory with `PROJECT.md`, `STATE.md`, and `ROADMAP.md` |
56
+ | **Discuss** | `/fd-discuss 1` | `@discusser` runs structured Q&A, saves decisions to `DISCUSS.md` |
57
+ | **Plan** | `/fd-plan 1` | `@flowdeck-planner` builds a wave-structured `PLAN.md`; you type `CONFIRMED` to proceed |
58
+ | **Execute** | `/fd-new-feature "…"` | `@orchestrator` delegates to `@architect`, `@coder`, `@tester`, `@reviewer` in waves |
59
+
60
+ State is written to `.planning/STATE.md` after each phase. Use `/fd-checkpoint` to save mid-session and `/fd-resume` to reload context in a new session.
61
+
62
+ ---
63
+
64
+ ## Command Reference
65
+
66
+ ### Workflow commands
67
+
68
+ | Command | Purpose |
69
+ |---------|---------|
70
+ | `/fd-new-project` | Bootstrap a new project with PROJECT.md, ROADMAP.md, STATE.md |
71
+ | `/fd-map-codebase` | Analyse and index the codebase into ARCHITECTURE.md and MEMORY.json |
72
+ | `/fd-discuss` | Pre-planning discussion with impact radar integration |
73
+ | `/fd-plan` | Generate a wave-structured execution plan |
74
+ | `/fd-new-feature` | Implement a feature with failure replay and post-execution recording |
75
+ | `/fd-fix-bug` | Fix a bug with impact radar, failure replay, and 7-step workflow |
76
+ | `/fd-review-code` | Code review with impact radar and trust scoring |
77
+ | `/fd-write-docs` | Generate or update documentation |
78
+ | `/fd-deploy-check` | Pre-deploy safety and readiness check |
79
+ | `/fd-progress` | View project progress and completion metrics |
80
+ | `/fd-checkpoint` | Save a session checkpoint for resumption |
81
+ | `/fd-resume` | Resume from a previous checkpoint |
82
+ | `/fd-roadmap` | View and update the project roadmap |
83
+ | `/fd-dashboard` | Visual progress dashboard |
84
+ | `/fd-settings` | Configure FlowDeck settings and execution mode |
85
+ | `/fd-multi-repo` | Multi-repo management |
86
+ | `/fd-ask` | Smart agent dispatch — routes to the right agent by keyword |
87
+ | `/fd-doctor` | Check FlowDeck installation and environment health |
88
+ | `/fd-council` | Ensemble-based reasoning from multiple specialized agents |
89
+
90
+ ### Analysis commands
91
+
92
+ These umbrella commands consolidate the full analysis surface into four focused entry points:
93
+
94
+ | Command | Purpose |
95
+ |---------|---------|
96
+ | `/fd-analyze-change` | Pre-change analysis — runs impact radar, blast radius, regression prediction, test gap detection, volatility mapping, and reviewer routing in one report |
97
+ | `/fd-guarded-edit` | Edit gate — returns auto-approve / require-confirmation / require-review / block based on policy, trust score, volatility, and arch constraints |
98
+ | `/fd-evaluate-risk` | Risk assessment — risk score, confidence, regression categories, approval needed, safer alternatives |
99
+ | `/fd-translate-intent` | Intent translator — converts vague requests into 3–5 ranked implementation options with assumptions and clarifying questions |
100
+
101
+ **Example pre-change workflow:**
102
+
103
+ ```bash
104
+ # 1. Understand the intent
105
+ /fd-translate-intent --intent "make checkout faster"
106
+
107
+ # 2. Full pre-change analysis
108
+ /fd-analyze-change --change "add Redis cache for checkout queries"
109
+
110
+ # 3. Gate decision for the specific file
111
+ /fd-guarded-edit --file "src/checkout/query.ts" --change "add Redis cache layer"
112
+
113
+ # 4. Quantified risk estimate
114
+ /fd-evaluate-risk --change "add Redis cache for checkout queries" --file "src/checkout/query.ts"
115
+ ```
116
+
117
+ The individual analysis commands (`/fd-impact-radar`, `/fd-blast-radius`, `/fd-regression-predict`, `/fd-test-gap`, `/fd-volatility-map`, `/fd-review-route`) remain available for single-purpose use. See [docs/command-migration.md](docs/command-migration.md) for the full migration guide.
118
+
119
+ ---
120
+
121
+ ## Documentation
122
+
123
+ | File | Description |
124
+ |------|-------------|
125
+ | [docs/index.md](docs/index.md) | Full documentation table of contents |
126
+ | [docs/installation.md](docs/installation.md) | Prerequisites, install methods, verification, and uninstall |
127
+ | [docs/quick-start.md](docs/quick-start.md) | First 15 minutes — step-by-step walkthrough |
128
+ | [docs/configuration.md](docs/configuration.md) | `opencode.json`, project config, environment variables, plugin tools |
129
+ | [docs/USER_GUIDE.md](docs/USER_GUIDE.md) | Full agent and skill usage reference with examples |
130
+ | [docs/command-migration.md](docs/command-migration.md) | Command map, architecture overview, and migration guide |
131
+
132
+ ---
133
+
134
+ ## License
135
+
136
+ MIT
@@ -0,0 +1,108 @@
1
+ #!/usr/bin/env node
2
+ // bin/flowdeck.js — FlowDeck CLI
3
+ // Usage: npx @dv.nghiem/flowdeck [--local] [--uninstall] [--help]
4
+
5
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from "node:fs";
6
+ import { join, dirname } from "node:path";
7
+ import { homedir } from "node:os";
8
+ import { fileURLToPath } from "node:url";
9
+
10
+ const __dirname = dirname(fileURLToPath(import.meta.url));
11
+ const pkgRoot = join(__dirname, "..");
12
+
13
+ const args = process.argv.slice(2);
14
+
15
+ if (args.includes("--help") || args.includes("-h") || args.includes("help")) {
16
+ console.log(`
17
+ FlowDeck — structured planning and execution workflows for OpenCode
18
+
19
+ Usage:
20
+ npx @dv.nghiem/flowdeck Install FlowDeck globally (~/.config/opencode/)
21
+ npx @dv.nghiem/flowdeck --local Install to current project (.opencode/)
22
+ npx @dv.nghiem/flowdeck --uninstall Remove FlowDeck from opencode.json
23
+ npx @dv.nghiem/flowdeck --help Show this help
24
+
25
+ Agents and skills are managed by the npm package — no manual copy needed.
26
+ `);
27
+ process.exit(0);
28
+ }
29
+
30
+ const isLocal = args.includes("--local");
31
+ const isUninstall = args.includes("--uninstall");
32
+
33
+ const configDir = isLocal
34
+ ? join(process.cwd(), ".opencode")
35
+ : process.env.OPENCODE_CONFIG_DIR ||
36
+ (process.env.XDG_CONFIG_HOME
37
+ ? join(process.env.XDG_CONFIG_HOME, "opencode")
38
+ : join(homedir(), ".config", "opencode"));
39
+
40
+ const configFile = join(configDir, "opencode.json");
41
+
42
+ if (isUninstall) {
43
+ console.log(`Uninstalling FlowDeck from: ${configDir}`);
44
+
45
+ if (existsSync(configFile)) {
46
+ try {
47
+ const cfg = JSON.parse(readFileSync(configFile, "utf-8"));
48
+ let changed = false;
49
+
50
+ if (Array.isArray(cfg.plugin)) {
51
+ const before = cfg.plugin.length;
52
+ cfg.plugin = cfg.plugin.filter(
53
+ (p) => p !== "@dv.nghiem/flowdeck" && !String(p).startsWith("@dv.nghiem/flowdeck@")
54
+ );
55
+ if (cfg.plugin.length < before) changed = true;
56
+ }
57
+
58
+ if (cfg.default_agent === "orchestrator") {
59
+ delete cfg.default_agent;
60
+ changed = true;
61
+ }
62
+
63
+ if (changed) {
64
+ writeFileSync(configFile, JSON.stringify(cfg, null, 2) + "\n");
65
+ console.log(" ✓ Removed plugin from opencode.json");
66
+ } else {
67
+ console.log(" ✓ Plugin not found in opencode.json");
68
+ }
69
+ } catch { /* ignore parse errors */ }
70
+ }
71
+
72
+ console.log("✅ FlowDeck uninstalled from: " + configDir);
73
+ console.log(" To reinstall: npx @dv.nghiem/flowdeck");
74
+ process.exit(0);
75
+ }
76
+
77
+ // Install — register plugin in opencode.json
78
+ console.log(`Installing FlowDeck to: ${configDir}\n`);
79
+
80
+ mkdirSync(configDir, { recursive: true });
81
+
82
+ let cfg = {};
83
+ if (existsSync(configFile)) {
84
+ try { cfg = JSON.parse(readFileSync(configFile, "utf-8")); } catch { /* ignore */ }
85
+ }
86
+
87
+ if (!Array.isArray(cfg.plugin)) cfg.plugin = [];
88
+ const already = cfg.plugin.some(
89
+ (p) => p === "@dv.nghiem/flowdeck" || String(p).startsWith("@dv.nghiem/flowdeck@")
90
+ );
91
+ if (!already) {
92
+ cfg.plugin.push("@dv.nghiem/flowdeck");
93
+ console.log(" ✓ Added @dv.nghiem/flowdeck to plugin list");
94
+ } else {
95
+ console.log(" ✓ Plugin already registered");
96
+ }
97
+
98
+ if (!cfg.default_agent) {
99
+ cfg.default_agent = "orchestrator";
100
+ console.log(" ✓ Set default_agent to orchestrator");
101
+ } else {
102
+ console.log(" ✓ default_agent already set");
103
+ }
104
+
105
+ writeFileSync(configFile, JSON.stringify(cfg, null, 2) + "\n");
106
+
107
+ console.log(`\n✅ FlowDeck installed! Restart OpenCode to activate.`);
108
+ console.log(` Config: ${configDir}`);
@@ -0,0 +1,3 @@
1
+ import type { AgentFactory } from './types';
2
+ export declare const createArchitectAgent: AgentFactory;
3
+ //# sourceMappingURL=architect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"architect.d.ts","sourceRoot":"","sources":["../../src/agents/architect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AA8I7D,eAAO,MAAM,oBAAoB,EAAE,YAiBlC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AgentFactory } from './types';
2
+ export declare const createCodeExplorerAgent: AgentFactory;
3
+ //# sourceMappingURL=code-explorer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-explorer.d.ts","sourceRoot":"","sources":["../../src/agents/code-explorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AA8F7D,eAAO,MAAM,uBAAuB,EAAE,YAqBrC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AgentFactory } from './types';
2
+ export declare const createCoderAgent: AgentFactory;
3
+ //# sourceMappingURL=coder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coder.d.ts","sourceRoot":"","sources":["../../src/agents/coder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AAkH7D,eAAO,MAAM,gBAAgB,EAAE,YAiB9B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { AgentFactory } from './types';
2
+ export declare const createDebugSpecialistAgent: AgentFactory;
3
+ export declare const createBuildErrorResolverAgent: AgentFactory;
4
+ //# sourceMappingURL=debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/agents/debug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AA4L7D,eAAO,MAAM,0BAA0B,EAAE,YAqBxC,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,YAqB3C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AgentFactory } from './types';
2
+ export declare const createDocUpdaterAgent: AgentFactory;
3
+ //# sourceMappingURL=doc-updater.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-updater.d.ts","sourceRoot":"","sources":["../../src/agents/doc-updater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AA4D7D,eAAO,MAAM,qBAAqB,EAAE,YAiBnC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { AgentFactory } from './types';
2
+ export declare const createFlowdeckPlannerAgent: AgentFactory;
3
+ export declare const createFlowdeckExecutorAgent: AgentFactory;
4
+ export declare const createFlowdeckPlanCheckerAgent: AgentFactory;
5
+ //# sourceMappingURL=flowdeck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flowdeck.d.ts","sourceRoot":"","sources":["../../src/agents/flowdeck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AAsR7D,eAAO,MAAM,0BAA0B,EAAE,YAqBxC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,YAqBzC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,YAqB5C,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { AgentConfig } from '@opencode-ai/sdk/v2';
2
+ import type { AgentDefinition } from './types';
3
+ export { resolvePrompt } from './types';
4
+ export type { AgentDefinition, AgentFactory } from './types';
5
+ import { createOrchestratorAgent } from './orchestrator';
6
+ import { createPlannerAgent } from './planner';
7
+ import { createCoderAgent } from './coder';
8
+ import { createFlowdeckPlannerAgent, createFlowdeckExecutorAgent, createFlowdeckPlanCheckerAgent } from './flowdeck';
9
+ import { createTesterAgent } from './tester';
10
+ import { createReviewerAgent } from './reviewer';
11
+ import { createResearcherAgent } from './researcher';
12
+ import { createWriterAgent } from './writer';
13
+ import { createSecurityAuditorAgent } from './security-auditor';
14
+ import { createDocUpdaterAgent } from './doc-updater';
15
+ import { createMapperAgent } from './mapper';
16
+ import { createCodeExplorerAgent } from './code-explorer';
17
+ import { createDebugSpecialistAgent, createBuildErrorResolverAgent } from './debug';
18
+ import { createTaskSplitterAgent, createDiscusserAgent, createParallelCoordinatorAgent } from './specialist';
19
+ import { createArchitectAgent } from './architect';
20
+ import { createRiskAnalystAgent } from './risk-analyst';
21
+ import { createPolicyEnforcerAgent } from './policy-enforcer';
22
+ import { createPerformanceOptimizerAgent, createRefactorGuideAgent } from './performance';
23
+ export declare const DEFAULT_MODELS: Record<string, string>;
24
+ export type AgentMode = 'primary' | 'subagent' | 'all';
25
+ /**
26
+ * Create a single agent by name with optional custom prompts
27
+ */
28
+ export declare function createAgent(name: string, model?: string, customPrompt?: string, customAppendPrompt?: string): AgentDefinition | undefined;
29
+ /**
30
+ * Create all agent definitions
31
+ */
32
+ export declare function createAgents(): AgentDefinition[];
33
+ /**
34
+ * Get agent configurations formatted for the OpenCode SDK
35
+ */
36
+ export declare function getAgentConfigs(): Record<string, AgentConfig>;
37
+ export { createOrchestratorAgent, createPlannerAgent, createCoderAgent, createFlowdeckPlannerAgent, createFlowdeckExecutorAgent, createFlowdeckPlanCheckerAgent, createTesterAgent, createReviewerAgent, createResearcherAgent, createWriterAgent, createSecurityAuditorAgent, createDocUpdaterAgent, createMapperAgent, createCodeExplorerAgent, createDebugSpecialistAgent, createBuildErrorResolverAgent, createTaskSplitterAgent, createDiscusserAgent, createParallelCoordinatorAgent, createArchitectAgent, createRiskAnalystAgent, createPolicyEnforcerAgent, createPerformanceOptimizerAgent, createRefactorGuideAgent, };
38
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,SAAS,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,8BAA8B,EAC/B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,8BAA8B,EAC/B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EACL,+BAA+B,EAC/B,wBAAwB,EACzB,MAAM,eAAe,CAAC;AAGvB,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAyBjD,CAAC;AAGF,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC;AAmBvD;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EACrB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,eAAe,GAAG,SAAS,CA4H7B;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,eAAe,EAAE,CAYhD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAyB7D;AAGD,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,2BAA2B,EAC3B,8BAA8B,EAC9B,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,oBAAoB,EACpB,8BAA8B,EAC9B,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,+BAA+B,EAC/B,wBAAwB,GACzB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AgentFactory } from './types';
2
+ export declare const createMapperAgent: AgentFactory;
3
+ //# sourceMappingURL=mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../../src/agents/mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AAsE7D,eAAO,MAAM,iBAAiB,EAAE,YAiB/B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { AgentDefinition } from './types';
2
+ /**
3
+ * Build the orchestrator prompt with dynamic agent filtering.
4
+ */
5
+ export declare function buildOrchestratorPrompt(disabledAgents?: Set<string>): string;
6
+ export declare function createOrchestratorAgent(model?: string | Array<string | {
7
+ id: string;
8
+ variant?: string;
9
+ }>, customPrompt?: string, customAppendPrompt?: string, disabledAgents?: Set<string>): AgentDefinition;
10
+ //# sourceMappingURL=orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/agents/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA2O/C;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAsB5E;AAED,wBAAgB,uBAAuB,CACrC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACjE,YAAY,CAAC,EAAE,MAAM,EACrB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAC3B,eAAe,CAuBjB"}
@@ -0,0 +1,4 @@
1
+ import type { AgentFactory } from './types';
2
+ export declare const createPerformanceOptimizerAgent: AgentFactory;
3
+ export declare const createRefactorGuideAgent: AgentFactory;
4
+ //# sourceMappingURL=performance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance.d.ts","sourceRoot":"","sources":["../../src/agents/performance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AAuS7D,eAAO,MAAM,+BAA+B,EAAE,YAqB7C,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,YAiBtC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AgentFactory } from './types';
2
+ export declare const createPlannerAgent: AgentFactory;
3
+ //# sourceMappingURL=planner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../src/agents/planner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AAyI7D,eAAO,MAAM,kBAAkB,EAAE,YAiBhC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AgentFactory } from './types';
2
+ export declare const createPolicyEnforcerAgent: AgentFactory;
3
+ //# sourceMappingURL=policy-enforcer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-enforcer.d.ts","sourceRoot":"","sources":["../../src/agents/policy-enforcer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AAgE7D,eAAO,MAAM,yBAAyB,EAAE,YAqBvC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AgentFactory } from './types';
2
+ export declare const createResearcherAgent: AgentFactory;
3
+ //# sourceMappingURL=researcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"researcher.d.ts","sourceRoot":"","sources":["../../src/agents/researcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AAiF7D,eAAO,MAAM,qBAAqB,EAAE,YAiBnC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AgentFactory } from './types';
2
+ export declare const createReviewerAgent: AgentFactory;
3
+ //# sourceMappingURL=reviewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewer.d.ts","sourceRoot":"","sources":["../../src/agents/reviewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AAyI7D,eAAO,MAAM,mBAAmB,EAAE,YAiBjC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AgentFactory } from './types';
2
+ export declare const createRiskAnalystAgent: AgentFactory;
3
+ //# sourceMappingURL=risk-analyst.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"risk-analyst.d.ts","sourceRoot":"","sources":["../../src/agents/risk-analyst.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AA2D7D,eAAO,MAAM,sBAAsB,EAAE,YAiBpC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AgentFactory } from './types';
2
+ export declare const createSecurityAuditorAgent: AgentFactory;
3
+ //# sourceMappingURL=security-auditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-auditor.d.ts","sourceRoot":"","sources":["../../src/agents/security-auditor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AA4G7D,eAAO,MAAM,0BAA0B,EAAE,YAqBxC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { AgentFactory } from './types';
2
+ export declare const createTaskSplitterAgent: AgentFactory;
3
+ export declare const createDiscusserAgent: AgentFactory;
4
+ export declare const createParallelCoordinatorAgent: AgentFactory;
5
+ //# sourceMappingURL=specialist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specialist.d.ts","sourceRoot":"","sources":["../../src/agents/specialist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AAwZ7D,eAAO,MAAM,uBAAuB,EAAE,YAqBrC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,YAiBlC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,YAqB5C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AgentFactory } from './types';
2
+ export declare const createTesterAgent: AgentFactory;
3
+ //# sourceMappingURL=tester.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tester.d.ts","sourceRoot":"","sources":["../../src/agents/tester.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AAqH7D,eAAO,MAAM,iBAAiB,EAAE,YAiB/B,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { AgentConfig } from '@opencode-ai/sdk/v2';
2
+ export interface AgentDefinition {
3
+ name: string;
4
+ displayName?: string;
5
+ description?: string;
6
+ config: AgentConfig;
7
+ /** Priority-ordered model entries for runtime fallback resolution. */
8
+ _modelArray?: Array<{
9
+ id: string;
10
+ variant?: string;
11
+ }>;
12
+ }
13
+ /**
14
+ * Resolve agent prompt from base/custom/append inputs.
15
+ * If customPrompt is provided, it replaces the base entirely.
16
+ * Otherwise, customAppendPrompt is appended to the base.
17
+ */
18
+ export declare function resolvePrompt(base: string, customPrompt?: string, customAppendPrompt?: string): string;
19
+ export type AgentFactory = (model: string, customPrompt?: string, customAppendPrompt?: string) => AgentDefinition;
20
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,sEAAsE;IACtE,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,EACrB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,CAIR;AAED,MAAM,MAAM,YAAY,GAAG,CACzB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM,EACrB,kBAAkB,CAAC,EAAE,MAAM,KACxB,eAAe,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AgentFactory } from './types';
2
+ export declare const createWriterAgent: AgentFactory;
3
+ //# sourceMappingURL=writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/agents/writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AAsF7D,eAAO,MAAM,iBAAiB,EAAE,YAiB/B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=analysis.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analysis.test.d.ts","sourceRoot":"","sources":["../../../src/commands/analysis/analysis.test.ts"],"names":[],"mappings":""}