@dv.nghiem/flowdeck 0.2.4 → 0.3.1

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 (82) hide show
  1. package/README.md +24 -41
  2. package/dist/hooks/approval-hook.d.ts +6 -0
  3. package/dist/hooks/approval-hook.d.ts.map +1 -1
  4. package/dist/hooks/guard-rails.d.ts +0 -8
  5. package/dist/hooks/guard-rails.d.ts.map +1 -1
  6. package/dist/hooks/memory-hook.d.ts +21 -0
  7. package/dist/hooks/memory-hook.d.ts.map +1 -0
  8. package/dist/hooks/orchestrator-guard-hook.d.ts.map +1 -1
  9. package/dist/hooks/patch-trust.d.ts.map +1 -1
  10. package/dist/hooks/todo-hook.d.ts +1 -7
  11. package/dist/hooks/todo-hook.d.ts.map +1 -1
  12. package/dist/hooks/tool-guard.d.ts +1 -0
  13. package/dist/hooks/tool-guard.d.ts.map +1 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +728 -428
  16. package/dist/services/memory-store.d.ts +40 -0
  17. package/dist/services/memory-store.d.ts.map +1 -0
  18. package/dist/services/policy-compiler.d.ts.map +1 -1
  19. package/dist/tools/memory-search.d.ts +3 -0
  20. package/dist/tools/memory-search.d.ts.map +1 -0
  21. package/docs/commands/fd-doctor.md +21 -0
  22. package/docs/commands/fd-quick.md +33 -0
  23. package/docs/commands/fd-reflect.md +23 -0
  24. package/docs/commands/fd-status.md +31 -0
  25. package/docs/commands/fd-translate-intent.md +17 -0
  26. package/docs/commands.md +209 -271
  27. package/docs/configuration.md +5 -2
  28. package/docs/index.md +22 -28
  29. package/docs/memory.md +69 -0
  30. package/docs/quick-start.md +1 -1
  31. package/package.json +1 -1
  32. package/src/commands/fd-deploy-check.md +131 -11
  33. package/src/commands/fd-new-project.md +14 -1
  34. package/src/commands/fd-quick.md +60 -0
  35. package/src/commands/fd-reflect.md +41 -2
  36. package/src/commands/fd-status.md +84 -0
  37. package/src/rules/README.md +8 -7
  38. package/src/skills/agent-harness-construction/SKILL.md +227 -0
  39. package/src/skills/api-design/SKILL.md +5 -0
  40. package/src/skills/backend-patterns/SKILL.md +105 -0
  41. package/src/skills/clean-architecture/SKILL.md +85 -0
  42. package/src/skills/cqrs/SKILL.md +230 -0
  43. package/src/skills/ddd-architecture/SKILL.md +104 -0
  44. package/src/skills/django-patterns/SKILL.md +304 -0
  45. package/src/skills/django-tdd/SKILL.md +297 -0
  46. package/src/skills/event-driven-architecture/SKILL.md +152 -0
  47. package/src/skills/frontend-pattern/SKILL.md +159 -0
  48. package/src/skills/hexagonal-architecture/SKILL.md +80 -0
  49. package/src/skills/layered-architecture/SKILL.md +64 -0
  50. package/src/skills/postgres-patterns/SKILL.md +74 -0
  51. package/src/skills/python-patterns/SKILL.md +5 -0
  52. package/src/skills/saga-architecture/SKILL.md +113 -0
  53. package/dist/tools/run-parallel.d.ts +0 -4
  54. package/dist/tools/run-parallel.d.ts.map +0 -1
  55. package/docs/command-migration.md +0 -175
  56. package/docs/commands/fd-analyze-change.md +0 -107
  57. package/docs/commands/fd-dashboard.md +0 -11
  58. package/docs/commands/fd-evaluate-risk.md +0 -134
  59. package/docs/commands/fd-guarded-edit.md +0 -105
  60. package/docs/commands/fd-progress.md +0 -11
  61. package/docs/commands/fd-review-code.md +0 -29
  62. package/docs/commands/fd-roadmap.md +0 -10
  63. package/docs/commands/fd-settings.md +0 -10
  64. package/docs/parallel-execution.md +0 -255
  65. package/src/commands/fd-analyze-change.md +0 -57
  66. package/src/commands/fd-approve.md +0 -64
  67. package/src/commands/fd-blast-radius.md +0 -49
  68. package/src/commands/fd-dashboard.md +0 -57
  69. package/src/commands/fd-evaluate-risk.md +0 -62
  70. package/src/commands/fd-guarded-edit.md +0 -69
  71. package/src/commands/fd-impact-radar.md +0 -51
  72. package/src/commands/fd-learn.md +0 -36
  73. package/src/commands/fd-progress.md +0 -50
  74. package/src/commands/fd-regression-predict.md +0 -57
  75. package/src/commands/fd-review-code.md +0 -96
  76. package/src/commands/fd-review-route.md +0 -54
  77. package/src/commands/fd-roadmap.md +0 -46
  78. package/src/commands/fd-settings.md +0 -57
  79. package/src/commands/fd-test-gap.md +0 -54
  80. package/src/commands/fd-volatility-map.md +0 -64
  81. package/src/commands/fd-workspace-status.md +0 -34
  82. package/src/skills/parallel-execute/SKILL.md +0 -92
package/README.md CHANGED
@@ -10,7 +10,7 @@ FlowDeck adds a structured, multi-agent development workflow to OpenCode. It coo
10
10
 
11
11
  - 🤖 **25 agents** — architect, planner, coder, reviewer, tester, debugger, risk-analyst, policy-enforcer, and more
12
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
13
+ - ⚡ **17 commands** — workflow commands for all project operations
14
14
  - 📋 **15 workflows** — pre-built orchestration flows including Spec-Driven Development (SDD)
15
15
  - 🔄 **Persistent state** — resume exactly where you left off across sessions via `.planning/STATE.md`
16
16
  - 🔀 **Parallel execution** — independent tasks run simultaneously in wave-structured batches
@@ -21,6 +21,7 @@ FlowDeck adds a structured, multi-agent development workflow to OpenCode. It coo
21
21
  - 🪝 **Deep System Hooks** — context window monitoring, session idle summaries, shell environment injection, and structured compaction to prevent context loss
22
22
  - 🌐 **Built-in MCPs** — Context7 (docs), Exa (web search), and Grep.app (code search) included and enabled by default
23
23
  - 💎 **Ensemble Reasoning** — `/fd-council` tool for synthesized consensus from multiple specialized agents
24
+ - 🧠 **Persistent Memory** — SQLite-based memory stores tool executions, assistant messages, and session summaries. Agents can search past observations with `memory-search` tool.
24
25
 
25
26
  ---
26
27
 
@@ -68,53 +69,35 @@ State is written to `.planning/STATE.md` after each phase. Use `/fd-checkpoint`
68
69
  | Command | Purpose |
69
70
  |---------|---------|
70
71
  | `/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 |
72
+ | `/fd-map-codebase` | Analyse and index the codebase into structured `.codebase/` files |
73
+ | `/fd-discuss` | Pre-planning structured Q&A to capture decisions |
74
+ | `/fd-plan` | Generate a wave-structured execution plan from decisions |
75
+ | `/fd-new-feature` | Implement a feature with TDD discipline and parallel agents |
76
+ | `/fd-fix-bug` | Diagnose, fix, and verify a bug with regression test |
77
+ | `/fd-write-docs` | Explore APIs and generate accurate documentation |
78
+ | `/fd-deploy-check` | Pre-deploy safety check with test, security, and build verification |
79
+ | `/fd-status` | View project progress, roadmap, and workspace overview |
80
+ | `/fd-checkpoint` | Save a session checkpoint to STATE.md |
81
+ | `/fd-resume` | Reload STATE.md and PLAN.md to continue interrupted session |
82
+ | `/fd-reflect` | Post-session reflection or capture patterns as reusable skills |
83
+ | `/fd-multi-repo` | Multi-repo orchestration list, add, remove, or status |
84
+ | `/fd-translate-intent` | Convert vague requests into ranked implementation options |
85
+ | `/fd-ask` | Smart agent dispatch routes to specialist by keyword |
86
+ | `/fd-quick` | Focused task with automatic agent selection |
87
87
  | `/fd-doctor` | Check FlowDeck installation and environment health |
88
- | `/fd-council` | Ensemble-based reasoning from multiple specialized agents |
89
88
 
90
89
  ### Analysis commands
91
90
 
92
- These umbrella commands consolidate the full analysis surface into four focused entry points:
91
+ These umbrella commands consolidate multiple analysis modules into focused entry points:
93
92
 
94
93
  | Command | Purpose |
95
94
  |---------|---------|
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 |
95
+ | `/fd-translate-intent` | Convert vague requests into ranked implementation options with tradeoffs |
96
+ | `/fd-analyze-change` | Combined pre-change analysis (impact, blast radius, regression, test gaps, volatility) |
97
+ | `/fd-guarded-edit` | Edit gate returning auto-approve / confirm / review / block |
98
+ | `/fd-evaluate-risk` | Standalone risk assessment with confidence score |
100
99
 
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.
100
+ See [docs/workflows.md](docs/workflows.md) for details on how analysis commands work.
118
101
 
119
102
  ---
120
103
 
@@ -127,7 +110,7 @@ The individual analysis commands (`/fd-impact-radar`, `/fd-blast-radius`, `/fd-r
127
110
  | [docs/quick-start.md](docs/quick-start.md) | First 15 minutes — step-by-step walkthrough |
128
111
  | [docs/configuration.md](docs/configuration.md) | `opencode.json`, project config, environment variables, plugin tools |
129
112
  | [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 |
113
+ | [docs/workflows.md](docs/workflows.md) | Command architecture and workflow patterns |
131
114
 
132
115
  ---
133
116
 
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Approval Hook
3
+ * Intercepts write/edit operations on sensitive files and blocks them
4
+ * unless a recent approval exists. Throws to block (per OpenCode hook contract).
5
+ * To enable: set FLOWDECK_APPROVAL_HOOK_ENABLED=on. Default is OFF.
6
+ */
1
7
  export declare function approvalHook(context: {
2
8
  directory?: string;
3
9
  }, toolInput: {
@@ -1 +1 @@
1
- {"version":3,"file":"approval-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/approval-hook.ts"],"names":[],"mappings":"AAUA,wBAAsB,YAAY,CAChC,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/B,SAAS,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3C,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACzC,OAAO,CAAC,IAAI,CAAC,CAgCf"}
1
+ {"version":3,"file":"approval-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/approval-hook.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,wBAAsB,YAAY,CAChC,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/B,SAAS,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3C,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACzC,OAAO,CAAC,IAAI,CAAC,CAkCf"}
@@ -12,14 +12,6 @@ export type ExecutionMode = "auto" | "guarded" | "review-only";
12
12
  export declare function resolveExecutionMode(configPath: string, trustScore: number | null, // 0–100, null = unknown
13
13
  volatility?: string): ExecutionMode;
14
14
  export type Severity = "warn" | "block" | null;
15
- /**
16
- * HOOK-03: Guard rails enforcement
17
- * Warns on write/edit tools during setup phase (plan_confirmed=false).
18
- * Blocks on write/edit tools during execution phase (plan_confirmed=true).
19
- * Checks .codebase/ existence per proposal spec line 412.
20
- * Detects bash build/deploy commands per proposal spec line 416.
21
- * Respects guard_enforcement override in config.json.
22
- */
23
15
  export declare function guardRailsHook(ctx: {
24
16
  directory: string;
25
17
  }, input: {
@@ -1 +1 @@
1
- {"version":3,"file":"guard-rails.d.ts","sourceRoot":"","sources":["../../src/hooks/guard-rails.ts"],"names":[],"mappings":"AASA;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAAA;AAE9D;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GAAG,IAAI,EAAG,wBAAwB;AACpD,UAAU,CAAC,EAAE,MAAM,GAClB,aAAa,CAkBf;AAgBD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AAE9C;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAC1B,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACvB,OAAO,EAAE,GAAG,GACX,OAAO,CAAC,IAAI,CAAC,CAgEf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,CAWjF;AAMD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAS3D"}
1
+ {"version":3,"file":"guard-rails.d.ts","sourceRoot":"","sources":["../../src/hooks/guard-rails.ts"],"names":[],"mappings":"AASA;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAAA;AAE9D;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GAAG,IAAI,EAAG,wBAAwB;AACpD,UAAU,CAAC,EAAE,MAAM,GAClB,aAAa,CAkBf;AAgBD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AAa9C,wBAAsB,cAAc,CAClC,GAAG,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAC1B,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACvB,OAAO,EAAE,GAAG,GACX,OAAO,CAAC,IAAI,CAAC,CAgEf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,CAWjF;AAMD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAS3D"}
@@ -0,0 +1,21 @@
1
+ import { type Session } from "../services/memory-store";
2
+ export declare function onSessionCreated(directory: string, contentSessionId: string, prompt?: string): Session;
3
+ export declare function onToolExecuted(contentSessionId: string, toolName: string, toolInput: Record<string, unknown>, toolResponse: string | null, directory: string): void;
4
+ export declare function onMessageUpdated(contentSessionId: string, role: string, content: string, directory: string): void;
5
+ export declare function onSessionCompact(contentSessionId: string, summary: string): void;
6
+ export declare function onSessionEnd(contentSessionId: string, lastMessage?: string): void;
7
+ export declare function getSessionContext(directory: string, contentSessionId: string): {
8
+ context: string;
9
+ previousSessions: Session[];
10
+ };
11
+ export declare function clearSession(contentSessionId: string): void;
12
+ export declare const memoryHook: {
13
+ onSessionCreated: typeof onSessionCreated;
14
+ onToolExecuted: typeof onToolExecuted;
15
+ onMessageUpdated: typeof onMessageUpdated;
16
+ onSessionCompact: typeof onSessionCompact;
17
+ onSessionEnd: typeof onSessionEnd;
18
+ getSessionContext: typeof getSessionContext;
19
+ clearSession: typeof clearSession;
20
+ };
21
+ //# sourceMappingURL=memory-hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/memory-hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,OAAO,EACb,MAAM,0BAA0B,CAAA;AAwBjC,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAYtG;AAED,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,SAAS,EAAE,MAAM,GAChB,IAAI,CAsBN;AAED,wBAAgB,gBAAgB,CAC9B,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,IAAI,CAyBN;AAED,wBAAgB,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAKhF;AAED,wBAAgB,YAAY,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CASjF;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG;IAC9E,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,OAAO,EAAE,CAAA;CAC5B,CAYA;AAED,wBAAgB,YAAY,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAE3D;AAED,eAAO,MAAM,UAAU;;;;;;;;CAQtB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator-guard-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/orchestrator-guard-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAuEH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,gBAAgB,CAAsB;IAE9C;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAa5D;;;OAGG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;CASjD"}
1
+ {"version":3,"file":"orchestrator-guard-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/orchestrator-guard-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAsEH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,gBAAgB,CAAsB;IAE9C;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAa5D;;;OAGG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;CASjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"patch-trust.d.ts","sourceRoot":"","sources":["../../src/hooks/patch-trust.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAYH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,iBAAiB,GAAG,WAAW,CAAA;AAEnE,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,YAAY,CAAA;IACrB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AA0BD,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CA4B5F;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAC1B,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACvB,MAAM,EAAE;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,GACpB,OAAO,CAAC,IAAI,CAAC,CAgBf"}
1
+ {"version":3,"file":"patch-trust.d.ts","sourceRoot":"","sources":["../../src/hooks/patch-trust.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAYH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,iBAAiB,GAAG,WAAW,CAAA;AAEnE,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,YAAY,CAAA;IACrB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AA0BD,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CA4B5F;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAC1B,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACvB,MAAM,EAAE;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,GACpB,OAAO,CAAC,IAAI,CAAC,CAoBf"}
@@ -3,11 +3,6 @@
3
3
  * Logs FlowDeck planning progress whenever OpenCode's todo list is updated.
4
4
  * Ported from ECC's todo.updated handler.
5
5
  */
6
- type Todo = {
7
- text: string;
8
- done: boolean;
9
- status?: string;
10
- };
11
6
  export declare function createTodoHook(client: {
12
7
  app: {
13
8
  log: (args: {
@@ -19,7 +14,6 @@ export declare function createTodoHook(client: {
19
14
  }) => Promise<any>;
20
15
  };
21
16
  }): (event: {
22
- todos: Todo[];
17
+ todos?: unknown;
23
18
  }) => Promise<void>;
24
- export {};
25
19
  //# sourceMappingURL=todo-hook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"todo-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/todo-hook.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,KAAK,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5D,wBAAgB,cAAc,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE;QAAE,GAAG,EAAE,CAAC,IAAI,EAAE;YAAE,IAAI,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE,CAAA;CAAE,IAG3J,OAAO;IAAE,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,mBAavC"}
1
+ {"version":3,"file":"todo-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/todo-hook.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,wBAAgB,cAAc,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE;QAAE,GAAG,EAAE,CAAC,IAAI,EAAE;YAAE,IAAI,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE,CAAA;CAAE,IAG3J,OAAO;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,mBAezC"}
@@ -3,6 +3,7 @@
3
3
  * Pattern matching on tool arguments to prevent destructive commands.
4
4
  * D-04: pure string.includes() matching, no path filtering, no regex/glob.
5
5
  * Also enforces architectural constraints from .codebase/CONSTRAINTS.md.
6
+ * To enable: set FLOWDECK_TOOL_GUARD_ENABLED=on. Default is OFF.
6
7
  */
7
8
  export type BlockReason = string | null;
8
9
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tool-guard.d.ts","sourceRoot":"","sources":["../../src/hooks/tool-guard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,CAAA;AAEvC;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,WAAW,CAsC9D;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAepF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAYpE;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAC1B,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACvB,MAAM,EAAE;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,GACpB,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
1
+ {"version":3,"file":"tool-guard.d.ts","sourceRoot":"","sources":["../../src/hooks/tool-guard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,CAAA;AAEvC;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,WAAW,CAsC9D;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAepF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAYpE;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAC1B,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACvB,MAAM,EAAE;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,GACpB,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AA2EjD,QAAA,MAAM,MAAM,EAAE,MAoKb,CAAA;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAiGjD,QAAA,MAAM,MAAM,EAAE,MAqNb,CAAA;AAED,eAAe,MAAM,CAAA"}