@dv.nghiem/flowdeck 0.1.1 → 0.2.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 (51) hide show
  1. package/README.md +1 -1
  2. package/dist/agents/auto-learner.d.ts +3 -0
  3. package/dist/agents/auto-learner.d.ts.map +1 -0
  4. package/dist/agents/index.d.ts +12 -9
  5. package/dist/agents/index.d.ts.map +1 -1
  6. package/dist/agents/orchestrator.d.ts.map +1 -1
  7. package/dist/agents/planner.d.ts +1 -0
  8. package/dist/agents/planner.d.ts.map +1 -1
  9. package/dist/agents/types.d.ts +1 -1
  10. package/dist/agents/types.d.ts.map +1 -1
  11. package/dist/config/index.d.ts +3 -0
  12. package/dist/config/index.d.ts.map +1 -0
  13. package/dist/config/loader.d.ts +7 -0
  14. package/dist/config/loader.d.ts.map +1 -0
  15. package/dist/config/schema.d.ts +21 -0
  16. package/dist/config/schema.d.ts.map +1 -0
  17. package/dist/hooks/approval-hook.d.ts +2 -6
  18. package/dist/hooks/approval-hook.d.ts.map +1 -1
  19. package/dist/hooks/auto-learn-hook.d.ts +20 -0
  20. package/dist/hooks/auto-learn-hook.d.ts.map +1 -0
  21. package/dist/hooks/decision-trace-hook.d.ts.map +1 -1
  22. package/dist/hooks/guard-rails.d.ts.map +1 -1
  23. package/dist/hooks/orchestrator-guard-hook.d.ts +29 -0
  24. package/dist/hooks/orchestrator-guard-hook.d.ts.map +1 -0
  25. package/dist/hooks/session-events.d.ts.map +1 -1
  26. package/dist/hooks/session-idle-hook.d.ts.map +1 -1
  27. package/dist/hooks/telemetry-hook.d.ts +5 -11
  28. package/dist/hooks/telemetry-hook.d.ts.map +1 -1
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +3337 -162
  31. package/dist/lib/logger.d.ts +20 -0
  32. package/dist/lib/logger.d.ts.map +1 -0
  33. package/dist/tools/create-skill.d.ts +3 -0
  34. package/dist/tools/create-skill.d.ts.map +1 -0
  35. package/dist/tools/reflect.d.ts +3 -0
  36. package/dist/tools/reflect.d.ts.map +1 -0
  37. package/docs/agents.md +14 -62
  38. package/docs/commands.md +1 -1
  39. package/docs/configuration.md +80 -1
  40. package/docs/quick-start.md +1 -1
  41. package/docs/skills.md +1 -1
  42. package/docs/workflows.md +14 -14
  43. package/package.json +1 -1
  44. package/src/commands/fd-learn.md +36 -0
  45. package/src/commands/fd-reflect.md +30 -0
  46. package/src/rules/common/agent-orchestration.md +2 -4
  47. package/src/workflows/execute-phase.md +17 -14
  48. package/src/workflows/plan-flow.md +2 -2
  49. package/src/workflows/plan-phase.md +12 -12
  50. package/dist/agents/flowdeck.d.ts +0 -5
  51. package/dist/agents/flowdeck.d.ts.map +0 -1
package/README.md CHANGED
@@ -54,7 +54,7 @@ FlowDeck structures every feature through a four-step cycle:
54
54
  |------|---------|--------------|
55
55
  | **Initialize** | `/fd-new-project MyApp` | Creates `.planning/` directory with `PROJECT.md`, `STATE.md`, and `ROADMAP.md` |
56
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 |
57
+ | **Plan** | `/fd-plan 1` | `@planner` builds a wave-structured `PLAN.md`; you type `CONFIRMED` to proceed |
58
58
  | **Execute** | `/fd-new-feature "…"` | `@orchestrator` delegates to `@architect`, `@coder`, `@tester`, `@reviewer` in waves |
59
59
 
60
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.
@@ -0,0 +1,3 @@
1
+ import type { AgentDefinition } from './types';
2
+ export declare function createAutoLearnerAgent(model?: string): AgentDefinition;
3
+ //# sourceMappingURL=auto-learner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-learner.d.ts","sourceRoot":"","sources":["../../src/agents/auto-learner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAuB/C,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,CAWtE"}
@@ -3,9 +3,8 @@ import type { AgentDefinition } from './types';
3
3
  export { resolvePrompt } from './types';
4
4
  export type { AgentDefinition, AgentFactory } from './types';
5
5
  import { createOrchestratorAgent } from './orchestrator';
6
- import { createPlannerAgent } from './planner';
6
+ import { createPlannerAgent, createPlanCheckerAgent } from './planner';
7
7
  import { createCoderAgent } from './coder';
8
- import { createFlowdeckPlannerAgent, createFlowdeckExecutorAgent, createFlowdeckPlanCheckerAgent } from './flowdeck';
9
8
  import { createTesterAgent } from './tester';
10
9
  import { createReviewerAgent } from './reviewer';
11
10
  import { createResearcherAgent } from './researcher';
@@ -20,19 +19,23 @@ import { createArchitectAgent } from './architect';
20
19
  import { createRiskAnalystAgent } from './risk-analyst';
21
20
  import { createPolicyEnforcerAgent } from './policy-enforcer';
22
21
  import { createPerformanceOptimizerAgent, createRefactorGuideAgent } from './performance';
23
- export declare const DEFAULT_MODELS: Record<string, string>;
22
+ /** All agent names registered by FlowDeck. */
23
+ export declare const AGENT_NAMES: readonly string[];
24
24
  export type AgentMode = 'primary' | 'subagent' | 'all';
25
25
  /**
26
- * Create a single agent by name with optional custom prompts
26
+ * Create a single agent by name with optional model and custom prompts.
27
+ * When model is undefined, the agent inherits the model currently selected by the user.
27
28
  */
28
29
  export declare function createAgent(name: string, model?: string, customPrompt?: string, customAppendPrompt?: string): AgentDefinition | undefined;
29
30
  /**
30
- * Create all agent definitions
31
+ * Create all agent definitions with optional per-agent model overrides.
32
+ * When a model is not provided for an agent, it will inherit the user's currently selected model.
31
33
  */
32
- export declare function createAgents(): AgentDefinition[];
34
+ export declare function createAgents(agentModels?: Record<string, string | undefined>): AgentDefinition[];
33
35
  /**
34
- * Get agent configurations formatted for the OpenCode SDK
36
+ * Get agent configurations formatted for the OpenCode SDK.
37
+ * Pass agentModels to apply per-agent model overrides from flowdeck.json.
35
38
  */
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, };
39
+ export declare function getAgentConfigs(agentModels?: Record<string, string | undefined>): Record<string, AgentConfig>;
40
+ export { createOrchestratorAgent, createPlannerAgent, createCoderAgent, createPlanCheckerAgent, createTesterAgent, createReviewerAgent, createResearcherAgent, createWriterAgent, createSecurityAuditorAgent, createDocUpdaterAgent, createMapperAgent, createCodeExplorerAgent, createDebugSpecialistAgent, createBuildErrorResolverAgent, createTaskSplitterAgent, createDiscusserAgent, createParallelCoordinatorAgent, createArchitectAgent, createRiskAnalystAgent, createPolicyEnforcerAgent, createPerformanceOptimizerAgent, createRefactorGuideAgent, };
38
41
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
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,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,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,8CAA8C;AAC9C,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EAwB/B,CAAC;AAGX,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC;AAmBvD;;;GAGG;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,CAgH7B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,eAAe,EAAE,CAYhG;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAuB7G;AAGD,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,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"}
@@ -1 +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"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/agents/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAmP/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"}
@@ -1,3 +1,4 @@
1
1
  import type { AgentFactory } from './types';
2
2
  export declare const createPlannerAgent: AgentFactory;
3
+ export declare const createPlanCheckerAgent: AgentFactory;
3
4
  //# sourceMappingURL=planner.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../src/agents/planner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AA+N7D,eAAO,MAAM,kBAAkB,EAAE,YAiBhC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,YAqBpC,CAAC"}
@@ -16,5 +16,5 @@ export interface AgentDefinition {
16
16
  * Otherwise, customAppendPrompt is appended to the base.
17
17
  */
18
18
  export declare function resolvePrompt(base: string, customPrompt?: string, customAppendPrompt?: string): string;
19
- export type AgentFactory = (model: string, customPrompt?: string, customAppendPrompt?: string) => AgentDefinition;
19
+ export type AgentFactory = (model: string | undefined, customPrompt?: string, customAppendPrompt?: string) => AgentDefinition;
20
20
  //# sourceMappingURL=types.d.ts.map
@@ -1 +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"}
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,GAAG,SAAS,EACzB,YAAY,CAAC,EAAE,MAAM,EACrB,kBAAkB,CAAC,EAAE,MAAM,KACxB,eAAe,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { loadFlowDeckConfig } from './loader';
2
+ export type { FlowDeckConfig, AgentModelConfig } from './schema';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { FlowDeckConfig } from './schema';
2
+ /**
3
+ * Load flowdeck.json config. Project-level config takes precedence over global.
4
+ * Returns an empty config if no file is found.
5
+ */
6
+ export declare function loadFlowDeckConfig(directory?: string): FlowDeckConfig;
7
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAa/C;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,CAoBrE"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * FlowDeck configuration schema for `flowdeck.json`.
3
+ *
4
+ * Users can create this file at:
5
+ * - Global: ~/.config/opencode/flowdeck.json
6
+ * - Project: <project>/.opencode/flowdeck.json
7
+ *
8
+ * Project config takes precedence over global config.
9
+ */
10
+ export interface AgentModelConfig {
11
+ /** Model to use for this agent (e.g. "anthropic/claude-sonnet-4-5"). If not set, uses the currently selected model. */
12
+ model?: string;
13
+ }
14
+ export interface FlowDeckConfig {
15
+ /**
16
+ * Per-agent model overrides. Keys are agent names (e.g. "orchestrator", "coder", "planner").
17
+ * If an agent is not listed, it uses the model the user currently has selected in OpenCode.
18
+ */
19
+ agents?: Record<string, AgentModelConfig>;
20
+ }
21
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,uHAAuH;IACvH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC3C"}
@@ -3,11 +3,7 @@ export declare function approvalHook(context: {
3
3
  }, toolInput: {
4
4
  name?: string;
5
5
  tool?: string;
6
- parameters?: Record<string, unknown>;
7
- }, _output: {
8
- parts?: Array<{
9
- type: string;
10
- text: string;
11
- }>;
6
+ }, output: {
7
+ args?: Record<string, unknown>;
12
8
  }): Promise<void>;
13
9
  //# sourceMappingURL=approval-hook.d.ts.map
@@ -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,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EACjF,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GACzD,OAAO,CAAC,IAAI,CAAC,CAgCf"}
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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Auto-Learn Hook
3
+ *
4
+ * Fires automatically on session.idle after significant work has been done.
5
+ * Spawns a background child session with the @auto-learner agent, which:
6
+ * 1. Calls the `reflect` tool to analyse session artifacts
7
+ * 2. Calls `create-skill` for any valuable patterns found
8
+ *
9
+ * No user command required — fully automatic.
10
+ *
11
+ * Safeguards:
12
+ * - Only triggers once per plugin session (triggered flag)
13
+ * - Requires at least MIN_EDITS file edits to consider work "significant"
14
+ * - Fire-and-forget: does not block the user's session
15
+ * - All errors are swallowed — never surfaces to the user
16
+ */
17
+ import type { OpencodeClient } from "@opencode-ai/sdk";
18
+ import type { SessionFileTracker } from "./file-tracker";
19
+ export declare function createAutoLearnHook(client: OpencodeClient, fileTracker: SessionFileTracker, directory: string, appLog: (msg: string) => void): () => Promise<void>;
20
+ //# sourceMappingURL=auto-learn-hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-learn-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/auto-learn-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAIxD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,kBAAkB,EAC/B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,uBAkB9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"decision-trace-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/decision-trace-hook.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,wBAAsB,iBAAiB,CACrC,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,CAyBf"}
1
+ {"version":3,"file":"decision-trace-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/decision-trace-hook.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,wBAAsB,iBAAiB,CACrC,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,CA8Bf"}
@@ -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,CAkEf;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;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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Orchestrator Guard Hook
3
+ *
4
+ * Enforces the "orchestrator as coordinator only" rule:
5
+ * the primary orchestrator session is not allowed to use file-writing or shell-execution
6
+ * tools directly. It must delegate all such work via the `delegate` tool.
7
+ *
8
+ * Detection: the FIRST session.created event is treated as the orchestrator's session.
9
+ * Child sessions (created by `delegate`) always arrive after the primary one.
10
+ *
11
+ * To disable: set FLOWDECK_ORCHESTRATOR_GUARD=off in the environment.
12
+ */
13
+ export declare class OrchestratorGuard {
14
+ private primarySessionId;
15
+ /**
16
+ * Call this from the plugin's event handler so the guard can capture the
17
+ * primary session ID the first time a session is created.
18
+ */
19
+ onEvent(event: {
20
+ type: string;
21
+ properties?: unknown;
22
+ }): void;
23
+ /**
24
+ * Call this from tool.execute.before.
25
+ * Throws if the tool is blocked for the orchestrator session.
26
+ */
27
+ check(sessionId: string, toolName: string): void;
28
+ }
29
+ //# sourceMappingURL=orchestrator-guard-hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator-guard-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/orchestrator-guard-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;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 +1 @@
1
- {"version":3,"file":"session-events.d.ts","sourceRoot":"","sources":["../../src/hooks/session-events.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAC1B,SAAS,EAAE,MAAM,GAAG,OAAO,GAC1B,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
1
+ {"version":3,"file":"session-events.d.ts","sourceRoot":"","sources":["../../src/hooks/session-events.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAC1B,SAAS,EAAE,MAAM,GAAG,OAAO,GAC1B,OAAO,CAAC,IAAI,CAAC,CAuBf"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-idle-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/session-idle-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,wBAAgB,qBAAqB,CACnC,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,EAC5I,OAAO,EAAE,kBAAkB,uBA2B5B"}
1
+ {"version":3,"file":"session-idle-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/session-idle-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,wBAAgB,qBAAqB,CACnC,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,EAC5I,OAAO,EAAE,kBAAkB,uBAmC5B"}
@@ -3,12 +3,8 @@ export declare function telemetryHook(context: {
3
3
  }, toolInput: {
4
4
  name?: string;
5
5
  tool?: string;
6
- parameters?: Record<string, unknown>;
7
- }, _output: {
8
- parts?: Array<{
9
- type: string;
10
- text: string;
11
- }>;
6
+ }, output: {
7
+ args?: Record<string, unknown>;
12
8
  }): Promise<void>;
13
9
  export declare function telemetryAfterHook(context: {
14
10
  directory?: string;
@@ -16,10 +12,8 @@ export declare function telemetryAfterHook(context: {
16
12
  name?: string;
17
13
  tool?: string;
18
14
  }, _output: {
19
- parts?: Array<{
20
- type: string;
21
- text: string;
22
- }>;
23
- error?: string;
15
+ title?: string;
16
+ output?: string;
17
+ metadata?: unknown;
24
18
  }): Promise<void>;
25
19
  //# sourceMappingURL=telemetry-hook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/telemetry-hook.ts"],"names":[],"mappings":"AASA,wBAAsB,aAAa,CACjC,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/B,SAAS,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EACjF,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GACzD,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAsB,kBAAkB,CACtC,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,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACzE,OAAO,CAAC,IAAI,CAAC,CAWf"}
1
+ {"version":3,"file":"telemetry-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/telemetry-hook.ts"],"names":[],"mappings":"AAOA,wBAAsB,aAAa,CACjC,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,CAYf;AAED,wBAAsB,kBAAkB,CACtC,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,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/D,OAAO,CAAC,IAAI,CAAC,CAWf"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAoH/D,QAAA,MAAM,MAAM,EAAE,YAGb,CAAA;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAqK/D,QAAA,MAAM,MAAM,EAAE,YAGb,CAAA;AAED,eAAe,MAAM,CAAA"}