@dv.nghiem/flowdeck 0.3.5 → 0.3.7
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.
- package/dist/agents/index.d.ts +2 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/supervisor.d.ts +3 -0
- package/dist/agents/supervisor.d.ts.map +1 -0
- package/dist/config/schema.d.ts +36 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/dashboard/lib/state-reader.d.ts.map +1 -1
- package/dist/dashboard/server.mjs +0 -37
- package/dist/dashboard/types.d.ts +0 -2
- package/dist/dashboard/types.d.ts.map +1 -1
- package/dist/dashboard/views/index.ejs +0 -6
- package/dist/dashboard/views/partials/header.ejs +0 -4
- package/dist/hooks/memory-hook.d.ts +7 -0
- package/dist/hooks/memory-hook.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1072 -91
- package/dist/services/agent-contract-registry.d.ts.map +1 -1
- package/dist/services/memory-store.d.ts +34 -1
- package/dist/services/memory-store.d.ts.map +1 -1
- package/dist/services/memory-store.test.d.ts +2 -0
- package/dist/services/memory-store.test.d.ts.map +1 -0
- package/dist/services/supervisor-binding.d.ts +114 -0
- package/dist/services/supervisor-binding.d.ts.map +1 -0
- package/dist/services/supervisor.test.d.ts +14 -0
- package/dist/services/supervisor.test.d.ts.map +1 -0
- package/dist/services/telemetry.d.ts +1 -1
- package/dist/services/telemetry.d.ts.map +1 -1
- package/dist/services/workflow-scorecard.d.ts +20 -0
- package/dist/services/workflow-scorecard.d.ts.map +1 -1
- package/dist/tools/memory-search.d.ts.map +1 -1
- package/dist/tools/memory-status.d.ts.map +1 -1
- package/docs/agents.md +1 -1
- package/docs/commands/fd-ask.md +1 -1
- package/docs/commands/fd-deploy-check.md +1 -1
- package/docs/commands/fd-discuss.md +1 -1
- package/docs/commands/fd-fix-bug.md +1 -1
- package/docs/commands/fd-new-feature.md +1 -1
- package/docs/commands/fd-verify.md +18 -0
- package/docs/commands/fd-write-docs.md +1 -1
- package/docs/feature-integration-architecture.md +1 -1
- package/docs/notifications.md +2 -2
- package/docs/quick-start.md +1 -1
- package/docs/skills.md +1 -1
- package/package.json +1 -1
- package/src/commands/fd-new-project.md +0 -1
- package/src/rules/common/agent-orchestration.md +1 -1
- package/src/skills/design-tokens/SKILL.md +250 -0
- package/src/skills/git-release/SKILL.md +1 -1
- package/src/skills/ui-design/SKILL.md +313 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-contract-registry.d.ts","sourceRoot":"","sources":["../../src/services/agent-contract-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,iDAAiD;IACjD,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,mDAAmD;IACnD,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,+DAA+D;IAC/D,oBAAoB,EAAE,MAAM,EAAE,CAAA;IAC9B,0CAA0C;IAC1C,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,2CAA2C;IAC3C,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,+DAA+D;IAC/D,oBAAoB,EAAE,MAAM,EAAE,CAAA;IAC9B,qDAAqD;IACrD,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,oCAAoC;IACpC,eAAe,EAAE,MAAM,EAAE,CAAA;CAC1B;AA+
|
|
1
|
+
{"version":3,"file":"agent-contract-registry.d.ts","sourceRoot":"","sources":["../../src/services/agent-contract-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,iDAAiD;IACjD,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,mDAAmD;IACnD,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,+DAA+D;IAC/D,oBAAoB,EAAE,MAAM,EAAE,CAAA;IAC9B,0CAA0C;IAC1C,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,2CAA2C;IAC3C,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,+DAA+D;IAC/D,oBAAoB,EAAE,MAAM,EAAE,CAAA;IAC9B,qDAAqD;IACrD,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,oCAAoC;IACpC,eAAe,EAAE,MAAM,EAAE,CAAA;CAC1B;AA+UD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAE/D;AAED,wBAAgB,eAAe,IAAI,aAAa,EAAE,CAEjD;AAED,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAElD"}
|
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured handoff artifact persisted alongside the text summary.
|
|
3
|
+
* Derived from observations + LLM compaction output.
|
|
4
|
+
*/
|
|
5
|
+
export interface HandoffMetadata {
|
|
6
|
+
workflow_name: string | null;
|
|
7
|
+
current_status: string;
|
|
8
|
+
current_stage: string | null;
|
|
9
|
+
completed_stages: string[];
|
|
10
|
+
pending_stages: string[];
|
|
11
|
+
key_decisions: string[];
|
|
12
|
+
blockers: string[];
|
|
13
|
+
important_files: string[];
|
|
14
|
+
approvals: string[];
|
|
15
|
+
open_questions: string[];
|
|
16
|
+
next_steps: string[];
|
|
17
|
+
tool_names_used: string[];
|
|
18
|
+
observation_count: number;
|
|
19
|
+
updated_at: string;
|
|
20
|
+
}
|
|
1
21
|
export interface Observation {
|
|
2
22
|
id?: number;
|
|
3
23
|
session_id: number;
|
|
@@ -21,6 +41,7 @@ export interface Summary {
|
|
|
21
41
|
id?: number;
|
|
22
42
|
session_id: number;
|
|
23
43
|
content: string;
|
|
44
|
+
metadata?: HandoffMetadata | null;
|
|
24
45
|
created_at?: string;
|
|
25
46
|
}
|
|
26
47
|
export interface SearchResult {
|
|
@@ -29,12 +50,24 @@ export interface SearchResult {
|
|
|
29
50
|
}
|
|
30
51
|
export declare function initSession(contentSessionId: string, project: string, directory: string): Session;
|
|
31
52
|
export declare function storeObservation(sessionId: number, toolName: string, toolInput: unknown, toolResponse: string | null, directory: string): Observation;
|
|
32
|
-
export declare function storeSummary(sessionId: number, content: string): Summary;
|
|
53
|
+
export declare function storeSummary(sessionId: number, content: string, metadata?: HandoffMetadata | null): Summary;
|
|
33
54
|
export declare function getRecentSessions(directory: string, limit?: number): Session[];
|
|
34
55
|
export declare function getObservationsForSession(sessionId: number): Observation[];
|
|
35
56
|
export declare function getSessionSummary(sessionId: number): Summary | null;
|
|
57
|
+
export declare function getSessionByContentSessionId(contentSessionId: string): Session | null;
|
|
36
58
|
export declare function getRecentObservations(directory: string, limit?: number): SearchResult[];
|
|
37
59
|
export declare function searchObservations(directory: string, query: string, limit?: number): SearchResult[];
|
|
38
60
|
export declare function getContextForDirectory(directory: string, maxObservations?: number): string;
|
|
39
61
|
export declare function closeDatabase(): void;
|
|
62
|
+
/**
|
|
63
|
+
* Returns current connection-level PRAGMA values.
|
|
64
|
+
* Intended for diagnostics and tests — queries via the shared singleton so the
|
|
65
|
+
* values reflect what this module actually set, not a second connection.
|
|
66
|
+
*/
|
|
67
|
+
export declare function getDbSettings(): {
|
|
68
|
+
journal_mode: string;
|
|
69
|
+
busy_timeout: number;
|
|
70
|
+
synchronous: number;
|
|
71
|
+
wal_autocheckpoint: number;
|
|
72
|
+
};
|
|
40
73
|
//# sourceMappingURL=memory-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../src/services/memory-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../src/services/memory-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-store.test.d.ts","sourceRoot":"","sources":["../../src/services/memory-store.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supervisor Binding Service
|
|
3
|
+
*
|
|
4
|
+
* Programmatic governance layer that reviews existing commands and agents
|
|
5
|
+
* before execution. It never invents new commands or workflows — it only
|
|
6
|
+
* operates on items already registered in the system.
|
|
7
|
+
*
|
|
8
|
+
* Architecture:
|
|
9
|
+
* Orchestrator → [supervisor review] → proceed / block / escalate
|
|
10
|
+
*
|
|
11
|
+
* The supervisor is strictly read-only with respect to the registry:
|
|
12
|
+
* - It inspects what already exists
|
|
13
|
+
* - It validates policy compliance
|
|
14
|
+
* - It returns a structured decision
|
|
15
|
+
* - It NEVER creates or modifies commands or workflows
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* The canonical set of registered FlowDeck commands.
|
|
19
|
+
* This list is derived from src/commands/*.md at build time and must NOT
|
|
20
|
+
* be modified by the supervisor under any circumstances.
|
|
21
|
+
*/
|
|
22
|
+
export declare const REGISTERED_COMMANDS: readonly string[];
|
|
23
|
+
/**
|
|
24
|
+
* The canonical workflow phases derived from the orchestrator phase state
|
|
25
|
+
* machine. These are the only valid workflow stages in the system.
|
|
26
|
+
*/
|
|
27
|
+
export declare const WORKFLOW_PHASES: readonly string[];
|
|
28
|
+
export type SupervisorDecisionKind = "approve" | "revise" | "block" | "escalate";
|
|
29
|
+
export type SupervisorTargetType = "command" | "agent" | "workflow";
|
|
30
|
+
export type SupervisorReviewPhase = "preflight" | "post-stage";
|
|
31
|
+
export interface SupervisorDecision {
|
|
32
|
+
/** Final decision */
|
|
33
|
+
decision: SupervisorDecisionKind;
|
|
34
|
+
/** Type of the reviewed target */
|
|
35
|
+
targetType: SupervisorTargetType;
|
|
36
|
+
/** Name of the reviewed target (exact registered name) */
|
|
37
|
+
targetName: string;
|
|
38
|
+
/** Whether the target actually exists in the registry */
|
|
39
|
+
exists: boolean;
|
|
40
|
+
/** Human-readable reasons for the decision */
|
|
41
|
+
reasons: string[];
|
|
42
|
+
/** Required inputs or stages that are absent */
|
|
43
|
+
missingRequirements: string[];
|
|
44
|
+
/** Risk conditions detected */
|
|
45
|
+
riskFlags: string[];
|
|
46
|
+
/** Changes the caller must make before proceeding (for "revise") */
|
|
47
|
+
requiredChanges: string[];
|
|
48
|
+
/** Approval gate status */
|
|
49
|
+
approvalStatus: "approved" | "pending" | "denied" | "escalated";
|
|
50
|
+
/** 0–1 confidence in the decision */
|
|
51
|
+
confidenceScore: number;
|
|
52
|
+
/** Whether this was a preflight or post-stage review */
|
|
53
|
+
reviewPhase: SupervisorReviewPhase;
|
|
54
|
+
/** ISO timestamp */
|
|
55
|
+
timestamp: string;
|
|
56
|
+
}
|
|
57
|
+
export interface SupervisorContext {
|
|
58
|
+
/** Task description provided by the user or orchestrator */
|
|
59
|
+
taskDescription?: string;
|
|
60
|
+
/** Current workflow phase at the time of review */
|
|
61
|
+
currentPhase?: string;
|
|
62
|
+
/** Whether required inputs have been confirmed present */
|
|
63
|
+
prerequisitesMet?: boolean;
|
|
64
|
+
/** Specific missing inputs */
|
|
65
|
+
missingInputs?: string[];
|
|
66
|
+
/** Whether design approval is present (for UI-heavy tasks) */
|
|
67
|
+
designApprovalPresent?: boolean;
|
|
68
|
+
/** Whether a regression test exists (for bugfix commands) */
|
|
69
|
+
regressionTestPresent?: boolean;
|
|
70
|
+
/** Whether the target requires explicit human approval */
|
|
71
|
+
approvalRequired?: boolean;
|
|
72
|
+
/** Whether human approval was granted */
|
|
73
|
+
approvalGranted?: boolean;
|
|
74
|
+
/** Review phase: before or after execution */
|
|
75
|
+
reviewPhase?: SupervisorReviewPhase;
|
|
76
|
+
/** Run/session IDs for telemetry */
|
|
77
|
+
run_id?: string;
|
|
78
|
+
session_id?: string;
|
|
79
|
+
}
|
|
80
|
+
export interface ResolvedSupervisorConfig {
|
|
81
|
+
enabled: boolean;
|
|
82
|
+
mode: "advisory" | "strict";
|
|
83
|
+
/** Command/agent names to gate; empty array means gate all */
|
|
84
|
+
reviewedTargets: string[];
|
|
85
|
+
canBlock: boolean;
|
|
86
|
+
confidenceThreshold: number;
|
|
87
|
+
postExecutionReview: boolean;
|
|
88
|
+
}
|
|
89
|
+
export declare function resolveSupervisorConfig(directory: string): ResolvedSupervisorConfig;
|
|
90
|
+
export declare function isRegisteredCommand(name: string): boolean;
|
|
91
|
+
export declare function isRegisteredAgent(name: string): boolean;
|
|
92
|
+
export declare function isRegisteredTarget(name: string): {
|
|
93
|
+
exists: boolean;
|
|
94
|
+
type: SupervisorTargetType;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Run a supervisor review on an existing command or agent before execution.
|
|
98
|
+
*
|
|
99
|
+
* Returns a structured SupervisorDecision. In "advisory" mode the caller may
|
|
100
|
+
* proceed even on a "block" decision (it should log the decision). In "strict"
|
|
101
|
+
* mode the caller must honour "block" and "escalate".
|
|
102
|
+
*
|
|
103
|
+
* The supervisor NEVER creates a new command or workflow. If the target does
|
|
104
|
+
* not exist, it returns decision="block" with exists=false and explains that
|
|
105
|
+
* the requested target is not registered.
|
|
106
|
+
*/
|
|
107
|
+
export declare function runSupervisorReview(directory: string, targetName: string, ctx?: SupervisorContext): SupervisorDecision;
|
|
108
|
+
/**
|
|
109
|
+
* Shorthand: should execution proceed given a decision and the current config mode?
|
|
110
|
+
* In "advisory" mode, only "block" with a missing-existence check is hard-stopped.
|
|
111
|
+
* In "strict" mode, "block" and "escalate" both halt execution.
|
|
112
|
+
*/
|
|
113
|
+
export declare function shouldProceed(decision: SupervisorDecision, mode: "advisory" | "strict", canBlock: boolean): boolean;
|
|
114
|
+
//# sourceMappingURL=supervisor-binding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervisor-binding.d.ts","sourceRoot":"","sources":["../../src/services/supervisor-binding.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supervisor Binding Tests
|
|
3
|
+
*
|
|
4
|
+
* Covers:
|
|
5
|
+
* - Approves an existing valid command
|
|
6
|
+
* - Blocks an existing command with missing required stage
|
|
7
|
+
* - Blocks a workflow that violates policy
|
|
8
|
+
* - Does not invent new commands or workflows
|
|
9
|
+
* - Integrates with current orchestrator without breaking existing command routing
|
|
10
|
+
* - Only applied to already-registered commands/workflows
|
|
11
|
+
* - Missing command/workflow reported correctly
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=supervisor.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervisor.test.d.ts","sourceRoot":"","sources":["../../src/services/supervisor.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type TelemetryEventType = "command.start" | "command.end" | "tool.call" | "tool.complete" | "agent.dispatch" | "agent.complete" | "approval.request" | "approval.resolve" | "run.complete" | "run.fail" | "policy.violation" | "patch.scored" | "contract.violation" | "agent.span.open" | "agent.span.close" | "budget.warning" | "budget.exhausted" | "deadlock.detected" | "scorecard.generated";
|
|
1
|
+
export type TelemetryEventType = "command.start" | "command.end" | "tool.call" | "tool.complete" | "agent.dispatch" | "agent.complete" | "approval.request" | "approval.resolve" | "run.complete" | "run.fail" | "policy.violation" | "patch.scored" | "contract.violation" | "agent.span.open" | "agent.span.close" | "budget.warning" | "budget.exhausted" | "deadlock.detected" | "scorecard.generated" | "supervisor.review";
|
|
2
2
|
export interface TelemetryEvent {
|
|
3
3
|
id: string;
|
|
4
4
|
ts: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/services/telemetry.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,kBAAkB,GAC1B,eAAe,GACf,aAAa,GACb,WAAW,GACX,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,GAClB,kBAAkB,GAClB,cAAc,GACd,UAAU,GACV,kBAAkB,GAClB,cAAc,GAEd,oBAAoB,GACpB,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,kBAAkB,GAClB,mBAAmB,GACnB,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/services/telemetry.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,kBAAkB,GAC1B,eAAe,GACf,aAAa,GACb,WAAW,GACX,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,GAClB,kBAAkB,GAClB,cAAc,GACd,UAAU,GACV,kBAAkB,GAClB,cAAc,GAEd,oBAAoB,GACpB,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,kBAAkB,GAClB,mBAAmB,GACnB,qBAAqB,GAErB,mBAAmB,CAAA;AAEvB,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,kBAAkB,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAA;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,cAAc,GAAG,IAAI,CAa1G;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,cAAc,EAAE,CAUrE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAE1E;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,SAAM,GAAG,cAAc,EAAE,CAuBxE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,cAAc,EAAE,CAI/E"}
|
|
@@ -25,6 +25,12 @@ export interface ScorecardDimensions {
|
|
|
25
25
|
handoffQuality: number;
|
|
26
26
|
/** No agent contract violations */
|
|
27
27
|
contractCompliance: number;
|
|
28
|
+
/**
|
|
29
|
+
* Supervisor review outcomes: proportion of reviews that resulted in "approve"
|
|
30
|
+
* or "revise" (recoverable), versus "block" or "escalate" (hard stops).
|
|
31
|
+
* Defaults to 1.0 when the supervisor is disabled or no reviews occurred.
|
|
32
|
+
*/
|
|
33
|
+
supervisorCompliance: number;
|
|
28
34
|
}
|
|
29
35
|
export interface WorkflowScorecard {
|
|
30
36
|
scorecard_id: string;
|
|
@@ -40,6 +46,10 @@ export interface WorkflowScorecard {
|
|
|
40
46
|
human_interventions: number;
|
|
41
47
|
overrides_used: number;
|
|
42
48
|
deadlock_signals: number;
|
|
49
|
+
/** Total supervisor review events for this run */
|
|
50
|
+
supervisor_reviews: number;
|
|
51
|
+
/** Supervisor reviews that resulted in block or escalate */
|
|
52
|
+
supervisor_hard_stops: number;
|
|
43
53
|
success_reason?: string;
|
|
44
54
|
failure_reason?: string;
|
|
45
55
|
}
|
|
@@ -55,6 +65,16 @@ export interface ScorecardInput {
|
|
|
55
65
|
policy_violations?: number;
|
|
56
66
|
human_interventions?: number;
|
|
57
67
|
overrides_used?: number;
|
|
68
|
+
/**
|
|
69
|
+
* Total supervisor reviews that occurred.
|
|
70
|
+
* Computed automatically from telemetry when omitted.
|
|
71
|
+
*/
|
|
72
|
+
supervisor_reviews?: number;
|
|
73
|
+
/**
|
|
74
|
+
* Number of reviews that resulted in "block" or "escalate".
|
|
75
|
+
* Computed automatically from telemetry when omitted.
|
|
76
|
+
*/
|
|
77
|
+
supervisor_hard_stops?: number;
|
|
58
78
|
}
|
|
59
79
|
export declare function scorecardsPath(dir: string): string;
|
|
60
80
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-scorecard.d.ts","sourceRoot":"","sources":["../../src/services/workflow-scorecard.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAM3C,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,eAAe,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,qBAAqB,EAAE,MAAM,CAAA;IAC7B,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAA;IACrB,oDAAoD;IACpD,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAA;IACrB,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAA;IACvB,wCAAwC;IACxC,gBAAgB,EAAE,MAAM,CAAA;IACxB,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAA;IACtB,mCAAmC;IACnC,kBAAkB,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"workflow-scorecard.d.ts","sourceRoot":"","sources":["../../src/services/workflow-scorecard.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAM3C,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,eAAe,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,qBAAqB,EAAE,MAAM,CAAA;IAC7B,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAA;IACrB,oDAAoD;IACpD,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAA;IACrB,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAA;IACvB,wCAAwC;IACxC,gBAAgB,EAAE,MAAM,CAAA;IACxB,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAA;IACtB,mCAAmC;IACnC,kBAAkB,EAAE,MAAM,CAAA;IAC1B;;;;OAIG;IACH,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAA;IAClE,UAAU,EAAE,mBAAmB,CAAA;IAC/B,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,MAAM,CAAA;IACxB,kDAAkD;IAClD,kBAAkB,EAAE,MAAM,CAAA;IAC1B,4DAA4D;IAC5D,qBAAqB,EAAE,MAAM,CAAA;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,4CAA4C;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAgBD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,QAAQ,EACf,KAAK,GAAE,cAAmB,GACzB,iBAAiB,CAiFnB;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,iBAAiB,EAAE,CAS3E;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAEvF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,iBAAiB,EAAE,CAIhG;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIhF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-search.d.ts","sourceRoot":"","sources":["../../src/tools/memory-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"memory-search.d.ts","sourceRoot":"","sources":["../../src/tools/memory-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAQ/D,eAAO,MAAM,gBAAgB,EAAE,cAgF7B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-status.d.ts","sourceRoot":"","sources":["../../src/tools/memory-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"memory-status.d.ts","sourceRoot":"","sources":["../../src/tools/memory-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAU/D,eAAO,MAAM,gBAAgB,EAAE,cAkE7B,CAAA"}
|
package/docs/agents.md
CHANGED
|
@@ -527,7 +527,7 @@ The writer drafts technical documentation that developers will actually read. It
|
|
|
527
527
|
**Best for:**
|
|
528
528
|
- Writing a README.md from scratch for a new project or module
|
|
529
529
|
- Drafting API reference documentation for newly implemented public functions
|
|
530
|
-
- Creating a changelog entry after a release
|
|
530
|
+
- Creating a changelog entry after a release
|
|
531
531
|
- Writing a code tour or architectural overview document
|
|
532
532
|
|
|
533
533
|
**Example usage:**
|
package/docs/commands/fd-ask.md
CHANGED
|
@@ -46,6 +46,6 @@ Route a free-form task to the best specialized agent automatically.
|
|
|
46
46
|
|
|
47
47
|
After `/fd-ask` completes, you can go deeper:
|
|
48
48
|
|
|
49
|
-
1. **Full workflow** → `/fd-fix-bug`, `/fd-new-feature`, `/fd-
|
|
49
|
+
1. **Full workflow** → `/fd-fix-bug`, `/fd-new-feature`, `/fd-verify`
|
|
50
50
|
2. **Detailed planning** → `/fd-discuss`, `/fd-plan`
|
|
51
51
|
3. **Another question** → `/fd-ask --task '...'`
|
|
@@ -7,5 +7,5 @@ Run the FlowDeck deploy-check workflow before deploying to production.
|
|
|
7
7
|
|
|
8
8
|
1. **Fix blocking issues** → `/fd-fix-bug [issue]`
|
|
9
9
|
2. **Create deployment checkpoint** → `/fd-checkpoint`
|
|
10
|
-
3. **Review code again** → `/fd-
|
|
10
|
+
3. **Review code again** → `/fd-verify`
|
|
11
11
|
4. **View project roadmap** → `/fd-roadmap`
|
|
@@ -22,7 +22,7 @@ After discussion completes, choose your next step:
|
|
|
22
22
|
|
|
23
23
|
1. **Create implementation plan** → `/fd-plan [phase-number]`
|
|
24
24
|
2. **Continue discussion** → `/fd-discuss [phase-number]`
|
|
25
|
-
3. **Review existing work** → `/fd-
|
|
25
|
+
3. **Review existing work** → `/fd-verify`
|
|
26
26
|
4. **Check project dashboard** → `/fd-dashboard`
|
|
27
27
|
|
|
28
28
|
Type the number or the command to proceed.
|
|
@@ -18,7 +18,7 @@ Systematically debug and fix a bug using FlowDeck's structured approach.
|
|
|
18
18
|
|
|
19
19
|
## What Next?
|
|
20
20
|
|
|
21
|
-
1. **Run code review** → `/fd-
|
|
21
|
+
1. **Run code review** → `/fd-verify`
|
|
22
22
|
2. **Check for more bugs** → `/fd-fix-bug [next-issue]`
|
|
23
23
|
3. **Update documentation** → `/fd-write-docs`
|
|
24
24
|
4. **Deploy check** → `/fd-deploy-check`
|
|
@@ -19,7 +19,7 @@ Execute a new feature using FlowDeck's multi-agent workflow.
|
|
|
19
19
|
|
|
20
20
|
## What Next?
|
|
21
21
|
|
|
22
|
-
1. **Review the code** → `/fd-
|
|
22
|
+
1. **Review the code** → `/fd-verify`
|
|
23
23
|
2. **Write documentation** → `/fd-write-docs`
|
|
24
24
|
3. **Deploy check** → `/fd-deploy-check`
|
|
25
25
|
4. **Start next feature** → `/fd-new-feature [description]`
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Review code quality, security, and conventions — runs parallel @reviewer + @security-auditor agents
|
|
3
|
+
argument-hint: "[file-pattern|dir|stage number]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Run the FlowDeck code review workflow. Reviews can target:
|
|
7
|
+
- **Specific files or directories** — `fd-verify src/services/`
|
|
8
|
+
- **Git staged changes** — `fd-verify staged`
|
|
9
|
+
- **Full project** — `fd-verify`
|
|
10
|
+
|
|
11
|
+
## What Next?
|
|
12
|
+
|
|
13
|
+
1. **Fix issues found** → `/fd-fix-bug [issue]`
|
|
14
|
+
2. **Create deployment checkpoint** → `/fd-checkpoint`
|
|
15
|
+
3. **Deploy to production** → `/fd-deploy-check`
|
|
16
|
+
4. **View project dashboard** → `/fd-dashboard`
|
|
17
|
+
|
|
18
|
+
Type the number or command to proceed.
|
|
@@ -5,6 +5,6 @@ Run the FlowDeck write-docs workflow to generate accurate project documentation.
|
|
|
5
5
|
|
|
6
6
|
## What Next?
|
|
7
7
|
|
|
8
|
-
1. **Review documentation** → `/fd-
|
|
8
|
+
1. **Review documentation** → `/fd-verify staged`
|
|
9
9
|
2. **Deploy check** → `/fd-deploy-check`
|
|
10
10
|
3. **Create checkpoint** → `/fd-checkpoint`
|
|
@@ -219,7 +219,7 @@ All existing commands continue to work unchanged. New capabilities are additive:
|
|
|
219
219
|
|
|
220
220
|
- `fd-new-feature` — now uses model router instead of hardcoded models; emits telemetry
|
|
221
221
|
- `fd-fix-bug` — emits run trace on entry, evaluates policies, proposes new policies from failures
|
|
222
|
-
- `fd-
|
|
222
|
+
- `fd-verify` — shows policy violations in output table
|
|
223
223
|
- Dashboard — new operational sections appear only when data exists (no empty-state noise)
|
|
224
224
|
- Approval hook — only triggers for write operations on sensitive file patterns; safe paths are unaffected
|
|
225
225
|
- Telemetry — append-only, never read during hook execution, cannot slow down tool calls
|
package/docs/notifications.md
CHANGED
|
@@ -8,7 +8,7 @@ FlowDeck fires desktop notifications when commands that require your attention c
|
|
|
8
8
|
|
|
9
9
|
When an interactive command finishes (one that either asks questions or produces output you need to approve), FlowDeck sends a desktop notification through the OS notification system. Notification urgency depends on the command:
|
|
10
10
|
|
|
11
|
-
- **Critical-level (urgent):** `/fd-discuss`, `/fd-plan`, `/fd-
|
|
11
|
+
- **Critical-level (urgent):** `/fd-discuss`, `/fd-plan`, `/fd-verify`, `/fd-deploy-check`, `/fd-new-project`
|
|
12
12
|
These commands present questions or decisions that block further progress. The notification is sent at high urgency so it appears even in Do Not Disturb mode on some systems.
|
|
13
13
|
|
|
14
14
|
- **Info-level:** `/fd-new-feature`, `/fd-fix-bug`, `/fd-write-docs`, `/fd-checkpoint`
|
|
@@ -97,7 +97,7 @@ $toast = [Windows.UI.Notifications.ToastNotification]::new($template)
|
|
|
97
97
|
|---------|-------|------|
|
|
98
98
|
| `/fd-discuss` | `FlowDeck: /fd-discuss` | Your input is needed — please check OpenCode |
|
|
99
99
|
| `/fd-plan` | `FlowDeck: /fd-plan` | Your input is needed — please check OpenCode |
|
|
100
|
-
| `/fd-
|
|
100
|
+
| `/fd-verify` | `FlowDeck: /fd-verify` | Your input is needed — please check OpenCode |
|
|
101
101
|
| `/fd-deploy-check` | `FlowDeck: /fd-deploy-check` | Your input is needed — please check OpenCode |
|
|
102
102
|
| `/fd-new-project` | `FlowDeck: /fd-new-project` | Your input is needed — please check OpenCode |
|
|
103
103
|
| `/fd-new-feature` | `FlowDeck: /fd-new-feature complete` | Review the output and choose your next step |
|
package/docs/quick-start.md
CHANGED
|
@@ -45,7 +45,7 @@ This creates the `.planning/` directory at your project root with the following
|
|
|
45
45
|
.planning/
|
|
46
46
|
├── PROJECT.md # Project context: name, goals, constraints, tech stack
|
|
47
47
|
├── STATE.md # Current execution state, tracked by all agents
|
|
48
|
-
├── ROADMAP.md # Phase definitions and
|
|
48
|
+
├── ROADMAP.md # Phase definitions and features
|
|
49
49
|
└── config.json # FlowDeck project configuration
|
|
50
50
|
```
|
|
51
51
|
|
package/docs/skills.md
CHANGED
|
@@ -335,7 +335,7 @@ Creates consistent releases with semantic versioning, changelog generation from
|
|
|
335
335
|
Collect merged PRs since the last tag and generate the changelog entry.
|
|
336
336
|
```
|
|
337
337
|
|
|
338
|
-
**When to use:** When a
|
|
338
|
+
**When to use:** When a release is ready to ship, or when a hotfix needs a patch release.
|
|
339
339
|
|
|
340
340
|
---
|
|
341
341
|
|
package/package.json
CHANGED
|
@@ -79,6 +79,6 @@ discuss → plan → execute → review
|
|
|
79
79
|
| discuss | `@discusser` | `/fd-discuss` |
|
|
80
80
|
| plan | `@planner` → `@plan-checker` | `/fd-plan` |
|
|
81
81
|
| execute | `@orchestrator` → `@backend-coder`, `@tester`, etc. | `/fd-new-feature` |
|
|
82
|
-
| review | `@reviewer` + `@security-auditor` | `/fd-
|
|
82
|
+
| review | `@reviewer` + `@security-auditor` | `/fd-verify` |
|
|
83
83
|
|
|
84
84
|
Do not skip phases. The orchestrator enforces phase gating automatically.
|