@tom2012/cc-web 2026.5.13-a → 2026.5.14-a
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/backend/dist/flows/runner.d.ts +4 -11
- package/backend/dist/flows/runner.d.ts.map +1 -1
- package/backend/dist/flows/runner.js +190 -381
- package/backend/dist/flows/runner.js.map +1 -1
- package/backend/dist/flows/store.d.ts +22 -18
- package/backend/dist/flows/store.d.ts.map +1 -1
- package/backend/dist/flows/store.js +68 -60
- package/backend/dist/flows/store.js.map +1 -1
- package/backend/dist/flows/types.d.ts +103 -75
- package/backend/dist/flows/types.d.ts.map +1 -1
- package/backend/dist/flows/types.js +20 -8
- package/backend/dist/flows/types.js.map +1 -1
- package/backend/dist/routes/flows.d.ts.map +1 -1
- package/backend/dist/routes/flows.js +184 -146
- package/backend/dist/routes/flows.js.map +1 -1
- package/frontend/dist/assets/{ChatOverlay-DeV9Kxv1.js → ChatOverlay-DsfZXjjz.js} +1 -1
- package/frontend/dist/assets/{GraphPreview-DKBe95dN.js → GraphPreview-BGZHA8KW.js} +1 -1
- package/frontend/dist/assets/{MobilePage-l30eYbBv.js → MobilePage-B-FiVfUE.js} +3 -3
- package/frontend/dist/assets/{OfficePreview-CZZ5h3xg.js → OfficePreview-CvHPeAlI.js} +2 -2
- package/frontend/dist/assets/{PdfPreview-Db1BlGXF.js → PdfPreview-D1OVG7jG.js} +1 -1
- package/frontend/dist/assets/{ProjectPage-BSuP0OrL.js → ProjectPage-CyKEenc5.js} +5 -5
- package/frontend/dist/assets/{SettingsPage-B9iJQRJi.js → SettingsPage-CIe3HZml.js} +1 -1
- package/frontend/dist/assets/{SkillHubPage-CDdKniVk.js → SkillHubPage-CG1-G4Pf.js} +1 -1
- package/frontend/dist/assets/{chevron-down-CO9XV3WE.js → chevron-down-CS7uu2Ol.js} +1 -1
- package/frontend/dist/assets/{index-CHWSKceq.js → index-BThL9NV3.js} +2 -2
- package/frontend/dist/assets/index-BkQ6KI1l.css +1 -0
- package/frontend/dist/assets/{index-sRc5noTy.js → index-DCc5jmus.js} +1 -1
- package/frontend/dist/assets/{index-CwqaFIAN.js → index-DN91i4kg.js} +1 -1
- package/frontend/dist/assets/{jszip.min-DQDZjRrf.js → jszip.min-DHcltCpp.js} +1 -1
- package/frontend/dist/assets/{select-D1f26o6o.js → select-C09dwvOR.js} +1 -1
- package/frontend/dist/assets/{user-CCZuBByN.js → user-Bj8X-WCQ.js} +1 -1
- package/frontend/dist/index.html +2 -2
- package/package.json +1 -1
- package/frontend/dist/assets/index-RmHssrlH.css +0 -1
|
@@ -1,52 +1,43 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Task-flow data model
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* Task-flow data model (schemaVersion 2).
|
|
3
|
+
*
|
|
4
|
+
* All persistent data lives in a single file under each project:
|
|
5
|
+
* <project>/.ccweb/workflow_data.json
|
|
6
|
+
*
|
|
7
|
+
* It holds three sections:
|
|
8
|
+
* - constants: immutable values declared in FlowDef.constants (initialized
|
|
9
|
+
* once at flow start; never written by user-input/LLM)
|
|
10
|
+
* - variables: mutable values written by user-input nodes and/or LLM nodes
|
|
11
|
+
* (read by any node, branched on by system-logic)
|
|
12
|
+
* - task_progress: append-only progress log; the LLM signals node completion
|
|
13
|
+
* by flipping `task_progress[N].finish = true` via Edit/Write
|
|
14
|
+
*
|
|
15
|
+
* The runner's transient bookkeeping (currentNodeId, history, loopCounters,
|
|
16
|
+
* pauseReason, etc.) lives separately in <project>/.ccweb/flow_state.json so
|
|
17
|
+
* the data file stays user-readable and version-controllable.
|
|
6
18
|
*/
|
|
7
|
-
export
|
|
8
|
-
/** Default
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
*
|
|
13
|
-
|
|
19
|
+
export declare const SCHEMA_VERSION: 2;
|
|
20
|
+
/** Default location of the unified workflow data file. */
|
|
21
|
+
export declare const WORKFLOW_DATA_PATH = ".ccweb/workflow_data.json";
|
|
22
|
+
/** Immutable value declared at flow-definition time. Written into
|
|
23
|
+
* workflow_data.constants[name] once at flow start; nodes can read it but
|
|
24
|
+
* cannot overwrite it (validator forbids constants in writeVariables, etc.). */
|
|
25
|
+
export interface FlowConstant {
|
|
26
|
+
/** Unique within the flow; shares a namespace with FlowVariable.name —
|
|
27
|
+
* variables and constants must not collide. */
|
|
28
|
+
name: string;
|
|
29
|
+
/** Any JSON-serializable value: string / number / boolean / array / object. */
|
|
30
|
+
value: unknown;
|
|
31
|
+
description?: string;
|
|
32
|
+
}
|
|
33
|
+
/** Mutable value written at runtime by user-input or LLM nodes. */
|
|
14
34
|
export interface FlowVariable {
|
|
15
|
-
/** Unique within
|
|
35
|
+
/** Unique within the flow (with constants). */
|
|
16
36
|
name: string;
|
|
17
|
-
/** Relative path; UI defaults to DEFAULT_VAR_FILE when blank. */
|
|
18
|
-
file: string;
|
|
19
|
-
/** Human-readable meaning — injected into LLM prompt at init nodes so the
|
|
20
|
-
* agent knows what value to derive. */
|
|
21
37
|
description: string;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
label: string;
|
|
26
|
-
/** Phase-1 supports `text` (single line) and `textarea` (multi-line). */
|
|
27
|
-
type: 'text' | 'textarea';
|
|
28
|
-
/** When set, the submitted value is merged into the named flow variable's
|
|
29
|
-
* file (top-level JSON field = variable name). Mutually exclusive with
|
|
30
|
-
* `bindVariable`. */
|
|
31
|
-
outputToVariable?: string;
|
|
32
|
-
/** When set, the field renders the variable's current value read-only —
|
|
33
|
-
* used to surface upstream context to the user. Mutually exclusive with
|
|
34
|
-
* `outputToVariable`. */
|
|
35
|
-
bindVariable?: string;
|
|
36
|
-
}
|
|
37
|
-
export interface FileRef {
|
|
38
|
-
path: string;
|
|
39
|
-
provider: FileProvider;
|
|
40
|
-
}
|
|
41
|
-
export interface BranchRule {
|
|
42
|
-
/** Variable-mode (preferred): reference a flow variable by name; runner
|
|
43
|
-
* resolves to its file + uses `name` as the JSON top-level field. */
|
|
44
|
-
variable?: string;
|
|
45
|
-
/** Field-mode (legacy): explicit JSON field on the node's first input
|
|
46
|
-
* file. Kept for backward compat with pre-variable flow defs. */
|
|
47
|
-
field?: string;
|
|
48
|
-
equals: unknown;
|
|
49
|
-
goto: number;
|
|
38
|
+
/** Optional initial value written into workflow_data.variables[name] at
|
|
39
|
+
* flow start. Without it, the variable starts as `undefined` (missing key). */
|
|
40
|
+
initialValue?: unknown;
|
|
50
41
|
}
|
|
51
42
|
export type NodeKind = 'user-input' | 'llm' | 'system-logic';
|
|
52
43
|
interface NodeBase {
|
|
@@ -54,56 +45,82 @@ interface NodeBase {
|
|
|
54
45
|
name: string;
|
|
55
46
|
kind: NodeKind;
|
|
56
47
|
}
|
|
48
|
+
/** User-input form field. A field may be in exactly one of three modes —
|
|
49
|
+
* read-write input, read-only variable display, or read-only constant display.
|
|
50
|
+
* Validator enforces XOR. */
|
|
51
|
+
export interface UserInputField {
|
|
52
|
+
key: string;
|
|
53
|
+
label: string;
|
|
54
|
+
type: 'text' | 'textarea';
|
|
55
|
+
/** Mode A: submitted value is merged into variables[name]. */
|
|
56
|
+
outputVariable?: string;
|
|
57
|
+
/** Mode B: render variables[name]'s current value, read-only. */
|
|
58
|
+
bindVariable?: string;
|
|
59
|
+
/** Mode C: render constants[name]'s value, read-only. */
|
|
60
|
+
bindConstant?: string;
|
|
61
|
+
}
|
|
57
62
|
export interface UserInputNode extends NodeBase {
|
|
58
63
|
kind: 'user-input';
|
|
59
64
|
userInputSchema: {
|
|
60
65
|
fields: UserInputField[];
|
|
61
66
|
};
|
|
62
|
-
outputs: FileRef[];
|
|
63
67
|
next: number | null;
|
|
64
68
|
}
|
|
65
69
|
export interface LlmNode extends NodeBase {
|
|
66
70
|
kind: 'llm';
|
|
67
|
-
|
|
68
|
-
/** Template supports {{file:relpath}} substitution. */
|
|
71
|
+
/** Supports {{var:name}} and {{const:name}} interpolation. */
|
|
69
72
|
promptTemplate: string;
|
|
70
|
-
|
|
73
|
+
/** Variable names whose current values are prepended to the prompt as a
|
|
74
|
+
* read-only "current values" context block. */
|
|
75
|
+
readVariables?: string[];
|
|
76
|
+
/** Constant names whose values are prepended to the prompt as a context
|
|
77
|
+
* block. */
|
|
78
|
+
readConstants?: string[];
|
|
79
|
+
/** Variable names this node is asked to produce. A per-variable write
|
|
80
|
+
* instruction is appended at the end of the prompt (description + target
|
|
81
|
+
* path workflow_data.variables[name]). */
|
|
82
|
+
writeVariables?: string[];
|
|
83
|
+
/** Seconds to wait for `task_progress[N].finish = true` before pausing. */
|
|
71
84
|
timeoutSec: number;
|
|
72
85
|
next: number | null;
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
referenceVariables?: string[];
|
|
86
|
+
}
|
|
87
|
+
/** Branch rule for system-logic nodes. Either `variable` or `constant`
|
|
88
|
+
* must be set (XOR) — the runner reads workflow_data accordingly and
|
|
89
|
+
* matches via loose equality. */
|
|
90
|
+
export interface BranchRule {
|
|
91
|
+
variable?: string;
|
|
92
|
+
constant?: string;
|
|
93
|
+
equals: unknown;
|
|
94
|
+
goto: number;
|
|
83
95
|
}
|
|
84
96
|
export interface SystemLogicNode extends NodeBase {
|
|
85
97
|
kind: 'system-logic';
|
|
86
|
-
inputs: FileRef[];
|
|
87
98
|
branches: BranchRule[];
|
|
88
|
-
/** Loop-cap for backward goto edges.
|
|
99
|
+
/** Loop-cap for backward goto edges. */
|
|
89
100
|
maxRetries: number;
|
|
90
101
|
/** Where to go if no branch matches. null = terminal, otherwise nodeId. */
|
|
91
102
|
defaultGoto?: number | null;
|
|
92
103
|
}
|
|
93
104
|
export type FlowNode = UserInputNode | LlmNode | SystemLogicNode;
|
|
94
105
|
export interface FlowDef {
|
|
106
|
+
/** Schema version. Hard-break from v1; loader rejects anything but 2. */
|
|
107
|
+
schemaVersion: typeof SCHEMA_VERSION;
|
|
95
108
|
id: string;
|
|
96
109
|
name: string;
|
|
97
110
|
description?: string;
|
|
98
111
|
/** Node id of the first node to execute. */
|
|
99
112
|
entryNodeId: number;
|
|
100
113
|
nodes: FlowNode[];
|
|
101
|
-
/**
|
|
102
|
-
|
|
114
|
+
/** Immutable values, initialized into workflow_data once. Optional → []. */
|
|
115
|
+
constants?: FlowConstant[];
|
|
116
|
+
/** Mutable values. Optional → []. */
|
|
103
117
|
variables?: FlowVariable[];
|
|
104
118
|
}
|
|
105
119
|
export type RunStatus = 'running' | 'paused' | 'completed' | 'failed' | 'aborted';
|
|
106
|
-
|
|
120
|
+
/** Reduced pause reasons (vs v1): file-read-error variants are gone — v2
|
|
121
|
+
* doesn't read user-supplied filesystem paths, so file-read failures are
|
|
122
|
+
* impossible by construction. */
|
|
123
|
+
export type PauseReason = 'awaiting-user-input' | 'timeout' | 'max-retries-exceeded' | 'user-paused' | null;
|
|
107
124
|
export interface NodeHistoryEntry {
|
|
108
125
|
nodeId: number;
|
|
109
126
|
startedAt: number;
|
|
@@ -113,36 +130,47 @@ export interface NodeHistoryEntry {
|
|
|
113
130
|
}
|
|
114
131
|
export interface FlowState {
|
|
115
132
|
flowId: string;
|
|
116
|
-
/** Disk filename of the flow def (under `.ccweb/flows/`). Persisted so the
|
|
117
|
-
* frontend can re-fetch the FlowDef on page reload without an extra
|
|
118
|
-
* list-then-match round-trip. */
|
|
119
133
|
flowFilename: string;
|
|
120
134
|
runId: string;
|
|
121
135
|
startedAt: number;
|
|
122
136
|
status: RunStatus;
|
|
123
137
|
currentNodeId: number | null;
|
|
124
|
-
/** nodeId → number of times that backward edge was taken in this run. */
|
|
125
138
|
loopCounters: Record<number, number>;
|
|
126
139
|
history: NodeHistoryEntry[];
|
|
127
140
|
pauseReason: PauseReason;
|
|
128
141
|
pauseDetail?: string;
|
|
129
142
|
/** When status='paused' and reason='awaiting-user-input', the schema to
|
|
130
|
-
* show
|
|
131
|
-
*
|
|
132
|
-
* without an extra fetch
|
|
143
|
+
* show. `contextValues` carries pre-read snapshot of bindVariable and
|
|
144
|
+
* bindConstant referenced by the form so the frontend can render them
|
|
145
|
+
* read-only without an extra fetch. */
|
|
133
146
|
pendingUserInput?: {
|
|
134
147
|
nodeId: number;
|
|
135
148
|
fields: UserInputField[];
|
|
136
|
-
|
|
149
|
+
contextValues?: {
|
|
150
|
+
variables?: Record<string, unknown>;
|
|
151
|
+
constants?: Record<string, unknown>;
|
|
152
|
+
};
|
|
137
153
|
};
|
|
138
154
|
}
|
|
139
|
-
export interface
|
|
140
|
-
id
|
|
155
|
+
export interface TaskProgressEntry {
|
|
156
|
+
/** Node id. Same id may repeat on loop re-entries — entries are append-only. */
|
|
157
|
+
nodeId: number;
|
|
141
158
|
name: string;
|
|
142
159
|
finish: boolean;
|
|
160
|
+
startedAt: number;
|
|
161
|
+
finishedAt?: number;
|
|
143
162
|
}
|
|
144
|
-
export interface
|
|
145
|
-
|
|
163
|
+
export interface WorkflowData {
|
|
164
|
+
/** Snapshot of FlowDef.constants. The runner writes this once at start and
|
|
165
|
+
* never mutates it again. */
|
|
166
|
+
constants: Record<string, unknown>;
|
|
167
|
+
/** Mutable variables. Top-level key = variable name. Values are arbitrary
|
|
168
|
+
* JSON. Missing keys = undefined (variable was never written). */
|
|
169
|
+
variables: Record<string, unknown>;
|
|
170
|
+
/** Append-only progress log. The runner appends an entry when an llm node
|
|
171
|
+
* starts; the LLM flips `finish = true` to signal completion. The runner
|
|
172
|
+
* watches this file (50ms debounce) for the current entry's finish. */
|
|
173
|
+
task_progress: TaskProgressEntry[];
|
|
146
174
|
}
|
|
147
175
|
export {};
|
|
148
176
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/flows/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/flows/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,eAAO,MAAM,cAAc,EAAG,CAAU,CAAC;AAEzC,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAI9D;;iFAEiF;AACjF,MAAM,WAAW,YAAY;IAC3B;oDACgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,mEAAmE;AACnE,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB;oFACgF;IAChF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,KAAK,GAAG,cAAc,CAAC;AAE7D,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED;;8BAE8B;AAC9B,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,IAAI,EAAE,YAAY,CAAC;IACnB,eAAe,EAAE;QAAE,MAAM,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC;IAC9C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,OAAQ,SAAQ,QAAQ;IACvC,IAAI,EAAE,KAAK,CAAC;IACZ,8DAA8D;IAC9D,cAAc,EAAE,MAAM,CAAC;IACvB;oDACgD;IAChD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;iBACa;IACb,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;+CAE2C;IAC3C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED;;kCAEkC;AAClC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,OAAO,GAAG,eAAe,CAAC;AAEjE,MAAM,WAAW,OAAO;IACtB,yEAAyE;IACzE,aAAa,EAAE,OAAO,cAAc,CAAC;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,qCAAqC;IACrC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B;AAID,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,SAAS,CAAC;AAEd;;kCAEkC;AAClC,MAAM,MAAM,WAAW,GACnB,qBAAqB,GACrB,SAAS,GACT,sBAAsB,GACtB,aAAa,GACb,IAAI,CAAC;AAET,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;4CAGwC;IACxC,gBAAgB,CAAC,EAAE;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,aAAa,CAAC,EAAE;YACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACpC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACrC,CAAC;KACH,CAAC;CACH;AAID,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B;kCAC8B;IAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC;uEACmE;IACnE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC;;4EAEwE;IACxE,aAAa,EAAE,iBAAiB,EAAE,CAAC;CACpC"}
|
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Task-flow data model
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
3
|
+
* Task-flow data model (schemaVersion 2).
|
|
4
|
+
*
|
|
5
|
+
* All persistent data lives in a single file under each project:
|
|
6
|
+
* <project>/.ccweb/workflow_data.json
|
|
7
|
+
*
|
|
8
|
+
* It holds three sections:
|
|
9
|
+
* - constants: immutable values declared in FlowDef.constants (initialized
|
|
10
|
+
* once at flow start; never written by user-input/LLM)
|
|
11
|
+
* - variables: mutable values written by user-input nodes and/or LLM nodes
|
|
12
|
+
* (read by any node, branched on by system-logic)
|
|
13
|
+
* - task_progress: append-only progress log; the LLM signals node completion
|
|
14
|
+
* by flipping `task_progress[N].finish = true` via Edit/Write
|
|
15
|
+
*
|
|
16
|
+
* The runner's transient bookkeeping (currentNodeId, history, loopCounters,
|
|
17
|
+
* pauseReason, etc.) lives separately in <project>/.ccweb/flow_state.json so
|
|
18
|
+
* the data file stays user-readable and version-controllable.
|
|
7
19
|
*/
|
|
8
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
exports.
|
|
21
|
+
exports.WORKFLOW_DATA_PATH = exports.SCHEMA_VERSION = void 0;
|
|
22
|
+
exports.SCHEMA_VERSION = 2;
|
|
23
|
+
/** Default location of the unified workflow data file. */
|
|
24
|
+
exports.WORKFLOW_DATA_PATH = '.ccweb/workflow_data.json';
|
|
13
25
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/flows/types.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/flows/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AAEU,QAAA,cAAc,GAAG,CAAU,CAAC;AAEzC,0DAA0D;AAC7C,QAAA,kBAAkB,GAAG,2BAA2B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flows.d.ts","sourceRoot":"","sources":["../../src/routes/flows.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"flows.d.ts","sourceRoot":"","sources":["../../src/routes/flows.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAM9C,QAAA,MAAM,MAAM,4CAAW,CAAC;AAqBxB,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,OAAO,CA6M5D;AAyJD,eAAe,MAAM,CAAC"}
|