@tomflow/proflow-task-store-sqlite 0.1.3 → 0.1.4

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/DOCS.md ADDED
@@ -0,0 +1,27 @@
1
+ # @tomflow/proflow-task-store-sqlite — Module Docs
2
+
3
+ Module ref: `task-store-sqlite`
4
+ Domain: `task-orchestration`
5
+ Kind: `library`
6
+
7
+ Provides the node:sqlite store and repository adapters for Task-owned structured facts.
8
+
9
+ ## Standard management surface
10
+
11
+ `install / uninstall / status / setup / docs / start / stop`
12
+
13
+ ## Provides
14
+
15
+ - None.
16
+
17
+ ## Requires
18
+
19
+ - `task-orchestration` `>=1.0.0 <2.0.0`
20
+
21
+ ## Public setup inputs
22
+
23
+ - None. Deterministic/private values and cross-Module shared facts are not public configuration.
24
+
25
+ ## Ownership boundary
26
+
27
+ Module business APIs and any module-specific extra commands remain package-owned. Platform does not proxy or interpret them. Current human/external preparation is documented in `SETUP.md`.
package/SETUP.md ADDED
@@ -0,0 +1,7 @@
1
+ # @tomflow/proflow-task-store-sqlite — Module Setup
2
+
3
+ No user or external setup is required by the current frozen Module contract. `Module.install` completes deterministic preparation; `Module.setup` only re-observes current reality and must not ask the user to supply private paths, loopback endpoints, tokens or cross-Module facts.
4
+
5
+ ## Completion
6
+
7
+ Setup is complete only when the Module's own `status` reports `setupStatus=READY`. Re-running setup must re-observe reality; it must not resume from a blind historical step index.
@@ -1,297 +1,96 @@
1
- export declare function createBehaviorAdapter(config?: Record<string, string>): {
2
- describe: () => {
3
- result: {
4
- contract: "deployment.result.v1";
5
- ok: boolean;
6
- status: "SUCCEEDED";
7
- moduleRef: "task-store-sqlite";
8
- moduleVersion: "0.1.3";
9
- checks?: unknown[];
10
- };
11
- observedEffects: never[];
12
- };
13
- preflight: () => {
14
- result: {
15
- contract: "deployment.result.v1";
16
- ok: boolean;
17
- status: "SUCCEEDED";
18
- moduleRef: "task-store-sqlite";
19
- moduleVersion: "0.1.3";
20
- checks?: unknown[];
21
- } | {
22
- contract: "deployment.result.v1";
23
- ok: boolean;
24
- status: "ACTION_REQUIRED";
25
- moduleRef: "task-store-sqlite";
26
- moduleVersion: "0.1.3";
27
- actionRequired: {
28
- action: string;
29
- description: string;
30
- };
31
- checks?: unknown[];
32
- } | {
33
- contract: "deployment.result.v1";
34
- ok: boolean;
35
- status: "BLOCKED";
36
- moduleRef: "task-store-sqlite";
37
- moduleVersion: "0.1.3";
38
- error: {
39
- code: "VERIFY_FAILED";
40
- message: string;
41
- retryable: boolean;
42
- };
43
- checks?: unknown[];
44
- };
45
- observedEffects: never[];
46
- };
47
- status: () => {
48
- result: {
49
- contract: "deployment.result.v1";
50
- ok: boolean;
51
- status: "SUCCEEDED";
52
- moduleRef: "task-store-sqlite";
53
- moduleVersion: "0.1.3";
54
- checks?: unknown[];
55
- data: {
56
- configStatus: "INCOMPLETE";
57
- missingConfig: string[];
58
- runtimeStatus: "UNKNOWN";
59
- };
60
- };
61
- observedEffects: never[];
62
- } | {
1
+ import type { ModuleCommandContext } from "@tomflow/proflow-module-contract";
2
+ export declare const taskDatabasePath: (context: ModuleCommandContext) => string;
3
+ export declare const behaviorAdapter: {
4
+ readonly install: (context: ModuleCommandContext) => Promise<{
63
5
  result: {
64
6
  contract: "deployment.result.v1";
65
- ok: boolean;
7
+ ok: true;
66
8
  status: "SUCCEEDED";
67
9
  moduleRef: "task-store-sqlite";
68
- moduleVersion: "0.1.3";
69
- checks?: unknown[];
10
+ moduleVersion: "0.1.4";
70
11
  data: {
71
- missingConfig?: never;
72
- configStatus: "INVALID" | "READY";
73
- runtimeStatus: "UNKNOWN";
12
+ databasePath: string;
74
13
  };
75
14
  };
76
15
  observedEffects: never[];
77
- };
78
- verify: () => {
16
+ }>;
17
+ readonly uninstall: (_context: ModuleCommandContext) => Promise<{
79
18
  result: {
80
- contract: "deployment.result.v1";
81
- ok: boolean;
82
- status: "SUCCEEDED";
83
- moduleRef: "task-store-sqlite";
84
- moduleVersion: "0.1.3";
85
- checks?: unknown[];
86
- } | {
87
- contract: "deployment.result.v1";
88
- ok: boolean;
89
- status: "ACTION_REQUIRED";
90
- moduleRef: "task-store-sqlite";
91
- moduleVersion: "0.1.3";
92
- actionRequired: {
93
- action: string;
94
- description: string;
95
- };
96
- checks?: unknown[];
97
- } | {
98
- contract: "deployment.result.v1";
99
- ok: boolean;
100
- status: "BLOCKED";
101
- moduleRef: "task-store-sqlite";
102
- moduleVersion: "0.1.3";
103
- error: {
104
- code: "VERIFY_FAILED";
105
- message: string;
106
- retryable: boolean;
107
- };
108
- checks?: unknown[];
19
+ readonly contract: "deployment.result.v1";
20
+ readonly ok: true;
21
+ readonly status: "SUCCEEDED";
22
+ readonly moduleRef: "task-store-sqlite";
23
+ readonly moduleVersion: "0.1.4";
109
24
  };
110
25
  observedEffects: never[];
111
- };
112
- doctor: () => {
26
+ }>;
27
+ readonly status: (context: ModuleCommandContext) => Promise<{
113
28
  result: {
114
29
  contract: "deployment.result.v1";
115
- ok: boolean;
30
+ ok: true;
116
31
  status: "SUCCEEDED";
117
32
  moduleRef: "task-store-sqlite";
118
- moduleVersion: "0.1.3";
119
- checks?: unknown[];
120
- } | {
121
- contract: "deployment.result.v1";
122
- ok: boolean;
123
- status: "ACTION_REQUIRED";
124
- moduleRef: "task-store-sqlite";
125
- moduleVersion: "0.1.3";
126
- actionRequired: {
127
- action: string;
128
- description: string;
129
- };
130
- checks?: unknown[];
131
- } | {
132
- contract: "deployment.result.v1";
133
- ok: boolean;
134
- status: "BLOCKED";
135
- moduleRef: "task-store-sqlite";
136
- moduleVersion: "0.1.3";
137
- error: {
138
- code: "VERIFY_FAILED";
139
- message: string;
140
- retryable: boolean;
33
+ moduleVersion: "0.1.4";
34
+ data: {
35
+ setupStatus: "FAILED" | "READY";
36
+ runtimeStatus: "NOT_APPLICABLE";
141
37
  };
142
- checks?: unknown[];
143
- };
144
- observedEffects: never[];
145
- };
146
- };
147
- export declare const behaviorAdapter: {
148
- describe: () => {
149
- result: {
150
- contract: "deployment.result.v1";
151
- ok: boolean;
152
- status: "SUCCEEDED";
153
- moduleRef: "task-store-sqlite";
154
- moduleVersion: "0.1.3";
155
- checks?: unknown[];
156
38
  };
157
39
  observedEffects: never[];
158
- };
159
- preflight: () => {
40
+ }>;
41
+ readonly setup: (context: ModuleCommandContext) => Promise<{
160
42
  result: {
161
- contract: "deployment.result.v1";
162
- ok: boolean;
163
- status: "SUCCEEDED";
164
- moduleRef: "task-store-sqlite";
165
- moduleVersion: "0.1.3";
166
- checks?: unknown[];
43
+ readonly contract: "deployment.result.v1";
44
+ readonly ok: true;
45
+ readonly status: "SUCCEEDED";
46
+ readonly moduleRef: "task-store-sqlite";
47
+ readonly moduleVersion: "0.1.4";
167
48
  } | {
168
49
  contract: "deployment.result.v1";
169
- ok: boolean;
170
- status: "ACTION_REQUIRED";
171
50
  moduleRef: "task-store-sqlite";
172
- moduleVersion: "0.1.3";
173
- actionRequired: {
174
- action: string;
175
- description: string;
176
- };
177
- checks?: unknown[];
178
- } | {
179
- contract: "deployment.result.v1";
180
- ok: boolean;
181
- status: "BLOCKED";
182
- moduleRef: "task-store-sqlite";
183
- moduleVersion: "0.1.3";
51
+ moduleVersion: "0.1.4";
52
+ ok: false;
53
+ status: "FAILED";
184
54
  error: {
185
- code: "VERIFY_FAILED";
55
+ code: "SETUP_FAILED";
186
56
  message: string;
187
57
  retryable: boolean;
188
58
  };
189
- checks?: unknown[];
190
59
  };
191
60
  observedEffects: never[];
192
- };
193
- status: () => {
61
+ }>;
62
+ readonly docs: (_context: ModuleCommandContext) => Promise<{
194
63
  result: {
195
64
  contract: "deployment.result.v1";
196
- ok: boolean;
65
+ ok: true;
197
66
  status: "SUCCEEDED";
198
67
  moduleRef: "task-store-sqlite";
199
- moduleVersion: "0.1.3";
200
- checks?: unknown[];
68
+ moduleVersion: "0.1.4";
201
69
  data: {
202
- configStatus: "INCOMPLETE";
203
- missingConfig: string[];
204
- runtimeStatus: "UNKNOWN";
70
+ docs: string;
71
+ setup: string;
205
72
  };
206
73
  };
207
74
  observedEffects: never[];
208
- } | {
75
+ }>;
76
+ readonly start: (_context: ModuleCommandContext) => Promise<{
209
77
  result: {
210
- contract: "deployment.result.v1";
211
- ok: boolean;
212
- status: "SUCCEEDED";
213
- moduleRef: "task-store-sqlite";
214
- moduleVersion: "0.1.3";
215
- checks?: unknown[];
216
- data: {
217
- missingConfig?: never;
218
- configStatus: "INVALID" | "READY";
219
- runtimeStatus: "UNKNOWN";
220
- };
221
- };
222
- observedEffects: never[];
223
- };
224
- verify: () => {
225
- result: {
226
- contract: "deployment.result.v1";
227
- ok: boolean;
228
- status: "SUCCEEDED";
229
- moduleRef: "task-store-sqlite";
230
- moduleVersion: "0.1.3";
231
- checks?: unknown[];
232
- } | {
233
- contract: "deployment.result.v1";
234
- ok: boolean;
235
- status: "ACTION_REQUIRED";
236
- moduleRef: "task-store-sqlite";
237
- moduleVersion: "0.1.3";
238
- actionRequired: {
239
- action: string;
240
- description: string;
241
- };
242
- checks?: unknown[];
243
- } | {
244
- contract: "deployment.result.v1";
245
- ok: boolean;
246
- status: "BLOCKED";
247
- moduleRef: "task-store-sqlite";
248
- moduleVersion: "0.1.3";
249
- error: {
250
- code: "VERIFY_FAILED";
251
- message: string;
252
- retryable: boolean;
253
- };
254
- checks?: unknown[];
78
+ readonly contract: "deployment.result.v1";
79
+ readonly ok: true;
80
+ readonly status: "SUCCEEDED";
81
+ readonly moduleRef: "task-store-sqlite";
82
+ readonly moduleVersion: "0.1.4";
255
83
  };
256
84
  observedEffects: never[];
257
- };
258
- doctor: () => {
85
+ }>;
86
+ readonly stop: (_context: ModuleCommandContext) => Promise<{
259
87
  result: {
260
- contract: "deployment.result.v1";
261
- ok: boolean;
262
- status: "SUCCEEDED";
263
- moduleRef: "task-store-sqlite";
264
- moduleVersion: "0.1.3";
265
- checks?: unknown[];
266
- } | {
267
- contract: "deployment.result.v1";
268
- ok: boolean;
269
- status: "ACTION_REQUIRED";
270
- moduleRef: "task-store-sqlite";
271
- moduleVersion: "0.1.3";
272
- actionRequired: {
273
- action: string;
274
- description: string;
275
- };
276
- checks?: unknown[];
277
- } | {
278
- contract: "deployment.result.v1";
279
- ok: boolean;
280
- status: "BLOCKED";
281
- moduleRef: "task-store-sqlite";
282
- moduleVersion: "0.1.3";
283
- error: {
284
- code: "VERIFY_FAILED";
285
- message: string;
286
- retryable: boolean;
287
- };
288
- checks?: unknown[];
88
+ readonly contract: "deployment.result.v1";
89
+ readonly ok: true;
90
+ readonly status: "SUCCEEDED";
91
+ readonly moduleRef: "task-store-sqlite";
92
+ readonly moduleVersion: "0.1.4";
289
93
  };
290
94
  observedEffects: never[];
291
- };
292
- };
293
- export declare function createProductionBinding(input: {
294
- config: Record<string, string>;
295
- }): {
296
- behaviorAdapter: Record<string, unknown>;
95
+ }>;
297
96
  };
@@ -1,4 +1,6 @@
1
1
  import { existsSync } from "node:fs";
2
+ import { mkdir } from "node:fs/promises";
3
+ import { join, resolve } from "node:path";
2
4
  import { DatabaseSync } from "node:sqlite";
3
5
  import { descriptor } from "./descriptor.js";
4
6
  const REQUIRED_TABLES = [
@@ -13,137 +15,88 @@ const REQUIRED_TABLES = [
13
15
  "task_events",
14
16
  "idempotency_records",
15
17
  ];
16
- const success = (checks) => ({
18
+ const base = {
17
19
  contract: "deployment.result.v1",
18
20
  ok: true,
19
21
  status: "SUCCEEDED",
20
22
  moduleRef: descriptor.moduleRef,
21
23
  moduleVersion: descriptor.moduleVersion,
22
- ...(checks === undefined ? {} : { checks }),
23
- });
24
- const actionRequired = (description, checks) => ({
25
- contract: "deployment.result.v1",
26
- ok: false,
27
- status: "ACTION_REQUIRED",
28
- moduleRef: descriptor.moduleRef,
29
- moduleVersion: descriptor.moduleVersion,
30
- actionRequired: { action: "configure-task-store", description },
31
- ...(checks === undefined ? {} : { checks }),
32
- });
33
- const blocked = (message, checks) => ({
34
- contract: "deployment.result.v1",
35
- ok: false,
36
- status: "BLOCKED",
37
- moduleRef: descriptor.moduleRef,
38
- moduleVersion: descriptor.moduleVersion,
39
- error: { code: "VERIFY_FAILED", message, retryable: true },
40
- ...(checks === undefined ? {} : { checks }),
41
- });
42
- function inspect(databasePath) {
43
- if (!databasePath)
44
- return { ok: false, message: "databasePath is required" };
45
- if (!existsSync(databasePath)) {
46
- return {
47
- ok: false,
48
- message: `Task SQLite database does not exist at ${databasePath}`,
49
- };
50
- }
51
- let database;
24
+ };
25
+ export const taskDatabasePath = (context) => join(resolve(context.workspaceRoot), ".proflow", "state", "task.sqlite");
26
+ function inspect(path) {
27
+ if (!existsSync(path))
28
+ return false;
29
+ let db;
52
30
  try {
53
- database = new DatabaseSync(databasePath, { readOnly: true });
54
- const integrity = database.prepare("PRAGMA integrity_check").get();
55
- const tables = new Set(database
31
+ db = new DatabaseSync(path, { readOnly: true });
32
+ const integrity = db.prepare("PRAGMA integrity_check").get();
33
+ const tables = new Set(db
56
34
  .prepare("SELECT name FROM sqlite_master WHERE type='table'")
57
35
  .all().map((row) => row.name));
58
- const missing = REQUIRED_TABLES.filter((table) => !tables.has(table));
59
- if (integrity?.integrity_check !== "ok") {
60
- return {
61
- ok: false,
62
- message: `SQLite integrity_check returned ${integrity?.integrity_check ?? "unknown"}`,
63
- };
64
- }
65
- if (missing.length > 0) {
66
- return {
67
- ok: false,
68
- message: `Task SQLite schema is missing tables: ${missing.join(", ")}`,
69
- };
70
- }
71
- return {
72
- ok: true,
73
- message: "Task SQLite schema is present and integrity_check is ok",
74
- };
36
+ return (integrity?.integrity_check === "ok" &&
37
+ REQUIRED_TABLES.every((table) => tables.has(table)));
75
38
  }
76
- catch (error) {
77
- return {
78
- ok: false,
79
- message: error instanceof Error
80
- ? error.message
81
- : "Task SQLite reality could not be read",
82
- };
39
+ catch {
40
+ return false;
83
41
  }
84
42
  finally {
85
- database?.close();
43
+ db?.close();
86
44
  }
87
45
  }
88
- export function createBehaviorAdapter(config = {}) {
89
- const resultForReality = (reality, checks) => reality.ok
90
- ? success(checks)
91
- : config.databasePath
92
- ? blocked(reality.message, checks)
93
- : actionRequired(reality.message, checks);
94
- return {
95
- describe: () => ({ result: success(), observedEffects: [] }),
96
- preflight: () => {
97
- const reality = inspect(config.databasePath);
98
- return { result: resultForReality(reality), observedEffects: [] };
46
+ export const behaviorAdapter = {
47
+ install: async (context) => {
48
+ const path = taskDatabasePath(context);
49
+ await mkdir(resolve(path, ".."), { recursive: true, mode: 0o700 });
50
+ if (!existsSync(path)) {
51
+ const db = new DatabaseSync(path);
52
+ db.close();
53
+ }
54
+ return {
55
+ result: { ...base, data: { databasePath: path } },
56
+ observedEffects: [],
57
+ };
58
+ },
59
+ uninstall: async (_context) => ({
60
+ result: base,
61
+ observedEffects: [],
62
+ }),
63
+ status: async (context) => ({
64
+ result: {
65
+ ...base,
66
+ data: {
67
+ setupStatus: inspect(taskDatabasePath(context))
68
+ ? "READY"
69
+ : "FAILED",
70
+ runtimeStatus: "NOT_APPLICABLE",
71
+ },
99
72
  },
100
- status: () => {
101
- if (!config.databasePath) {
102
- return {
103
- result: {
104
- ...success(),
105
- data: {
106
- configStatus: "INCOMPLETE",
107
- missingConfig: ["databasePath"],
108
- runtimeStatus: "UNKNOWN",
109
- },
110
- },
111
- observedEffects: [],
112
- };
113
- }
114
- const reality = inspect(config.databasePath);
115
- return {
116
- result: {
117
- ...success(),
118
- data: {
119
- configStatus: reality.ok
120
- ? "READY"
121
- : "INVALID",
122
- runtimeStatus: "UNKNOWN",
123
- },
73
+ observedEffects: [],
74
+ }),
75
+ setup: async (context) => ({
76
+ result: inspect(taskDatabasePath(context))
77
+ ? base
78
+ : {
79
+ ...base,
80
+ ok: false,
81
+ status: "FAILED",
82
+ error: {
83
+ code: "SETUP_FAILED",
84
+ message: "Task SQLite schema is not materialized; task-migration-runner must complete deterministic install",
85
+ retryable: true,
124
86
  },
125
- observedEffects: [],
126
- };
127
- },
128
- verify: () => {
129
- const reality = inspect(config.databasePath);
130
- const check = {
131
- id: "sqlite-integrity-pass",
132
- status: reality.ok ? "PASS" : "FAIL",
133
- message: reality.message,
134
- };
135
- return {
136
- result: resultForReality(reality, [check]),
137
- observedEffects: [],
138
- };
139
- },
140
- doctor: () => {
141
- const reality = inspect(config.databasePath);
142
- return { result: resultForReality(reality), observedEffects: [] };
143
- },
144
- };
145
- }
146
- export const behaviorAdapter = createBehaviorAdapter();
147
- export function createProductionBinding(input) {
148
- return { behaviorAdapter: createBehaviorAdapter(input.config) };
149
- }
87
+ },
88
+ observedEffects: [],
89
+ }),
90
+ docs: async (_context) => ({
91
+ result: { ...base, data: { docs: "DOCS.md", setup: "SETUP.md" } },
92
+ observedEffects: [],
93
+ }),
94
+ start: async (_context) => ({
95
+ result: base,
96
+ observedEffects: [],
97
+ }),
98
+ stop: async (_context) => ({
99
+ result: base,
100
+ observedEffects: [],
101
+ }),
102
+ };
@@ -3,7 +3,7 @@ export declare const descriptor: {
3
3
  readonly contractVersion: "1.0.0";
4
4
  readonly moduleRef: "task-store-sqlite";
5
5
  readonly packageName: "@tomflow/proflow-task-store-sqlite";
6
- readonly moduleVersion: "0.1.3";
6
+ readonly moduleVersion: "0.1.4";
7
7
  readonly kind: "library";
8
8
  readonly templateVersion: "1.0.0";
9
9
  readonly platformCompatibility: ">=1.0.0 <2.0.0";
@@ -21,34 +21,14 @@ export declare const descriptor: {
21
21
  readonly runtime: "node";
22
22
  readonly versionRange: ">=24.19.0";
23
23
  }];
24
- readonly configSlots: readonly [{
25
- readonly key: "databasePath";
26
- readonly type: "path";
27
- readonly required: true;
28
- readonly description: "Task SQLite database path";
29
- }];
30
- readonly lifecycle: {
31
- readonly supported: readonly ["describe", "preflight", "status", "verify", "doctor"];
32
- };
33
- readonly verification: {
34
- readonly checks: readonly [{
35
- readonly id: "sqlite-integrity-pass";
36
- readonly description: "SQLite schema and integrity checks pass";
37
- readonly lifecycle: "verify";
38
- }];
39
- };
24
+ readonly configSlots: readonly [];
40
25
  readonly effects: readonly [{
41
26
  readonly kind: "filesystem";
42
27
  readonly description: "Persists Task-owned structured facts in SQLite";
43
28
  readonly retention: "preserve";
44
29
  }];
45
- readonly documentation: readonly [{
46
- readonly id: "overview";
47
- readonly path: "./README.md";
48
- readonly description: "Package-owned module overview";
49
- }, {
50
- readonly id: "configuration";
51
- readonly path: "./CONFIGURATION.md";
52
- readonly description: "Module configuration fields, sources and materialization instructions";
53
- }];
30
+ readonly documentation: {
31
+ readonly docs: "DOCS.md";
32
+ readonly setup: "SETUP.md";
33
+ };
54
34
  };
@@ -3,7 +3,7 @@ export const descriptor = {
3
3
  contractVersion: "1.0.0",
4
4
  moduleRef: "task-store-sqlite",
5
5
  packageName: "@tomflow/proflow-task-store-sqlite",
6
- moduleVersion: "0.1.3",
6
+ moduleVersion: "0.1.4",
7
7
  kind: "library",
8
8
  templateVersion: "1.0.0",
9
9
  platformCompatibility: ">=1.0.0 <2.0.0",
@@ -25,26 +25,7 @@ export const descriptor = {
25
25
  versionRange: ">=24.19.0",
26
26
  },
27
27
  ],
28
- configSlots: [
29
- {
30
- key: "databasePath",
31
- type: "path",
32
- required: true,
33
- description: "Task SQLite database path",
34
- },
35
- ],
36
- lifecycle: {
37
- supported: ["describe", "preflight", "status", "verify", "doctor"],
38
- },
39
- verification: {
40
- checks: [
41
- {
42
- id: "sqlite-integrity-pass",
43
- description: "SQLite schema and integrity checks pass",
44
- lifecycle: "verify",
45
- },
46
- ],
47
- },
28
+ configSlots: [],
48
29
  effects: [
49
30
  {
50
31
  kind: "filesystem",
@@ -52,16 +33,8 @@ export const descriptor = {
52
33
  retention: "preserve",
53
34
  },
54
35
  ],
55
- documentation: [
56
- {
57
- id: "overview",
58
- path: "./README.md",
59
- description: "Package-owned module overview",
60
- },
61
- {
62
- id: "configuration",
63
- path: "./CONFIGURATION.md",
64
- description: "Module configuration fields, sources and materialization instructions",
65
- },
66
- ],
36
+ documentation: {
37
+ docs: "DOCS.md",
38
+ setup: "SETUP.md",
39
+ },
67
40
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tomflow/proflow-task-store-sqlite",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -16,14 +16,15 @@
16
16
  "proflow.module.json",
17
17
  "conformance.json",
18
18
  "README.md",
19
- "CONFIGURATION.md"
19
+ "DOCS.md",
20
+ "SETUP.md"
20
21
  ],
21
22
  "dependencies": {
22
- "@tomflow/proflow-task-orchestration": "^0.1.2",
23
- "@tomflow/proflow-module-contract": "^0.1.2"
23
+ "@tomflow/proflow-module-contract": "^0.1.4",
24
+ "@tomflow/proflow-task-orchestration": "^0.1.3"
24
25
  },
25
26
  "devDependencies": {
26
- "@tomflow/proflow-task-migration-runner": "^0.1.3"
27
+ "@tomflow/proflow-task-migration-runner": "^0.1.4"
27
28
  },
28
29
  "description": "Provides the node:sqlite store and repository adapters for Task-owned structured facts.",
29
30
  "keywords": [
@@ -3,7 +3,7 @@
3
3
  "contractVersion": "1.0.0",
4
4
  "moduleRef": "task-store-sqlite",
5
5
  "packageName": "@tomflow/proflow-task-store-sqlite",
6
- "moduleVersion": "0.1.3",
6
+ "moduleVersion": "0.1.4",
7
7
  "kind": "library",
8
8
  "templateVersion": "1.0.0",
9
9
  "platformCompatibility": ">=1.0.0 <2.0.0",
@@ -25,26 +25,7 @@
25
25
  "versionRange": ">=24.19.0"
26
26
  }
27
27
  ],
28
- "configSlots": [
29
- {
30
- "key": "databasePath",
31
- "type": "path",
32
- "required": true,
33
- "description": "Task SQLite database path"
34
- }
35
- ],
36
- "lifecycle": {
37
- "supported": ["describe", "preflight", "status", "verify", "doctor"]
38
- },
39
- "verification": {
40
- "checks": [
41
- {
42
- "id": "sqlite-integrity-pass",
43
- "description": "SQLite schema and integrity checks pass",
44
- "lifecycle": "verify"
45
- }
46
- ]
47
- },
28
+ "configSlots": [],
48
29
  "effects": [
49
30
  {
50
31
  "kind": "filesystem",
@@ -52,16 +33,8 @@
52
33
  "retention": "preserve"
53
34
  }
54
35
  ],
55
- "documentation": [
56
- {
57
- "id": "overview",
58
- "path": "./README.md",
59
- "description": "Package-owned module overview"
60
- },
61
- {
62
- "id": "configuration",
63
- "path": "./CONFIGURATION.md",
64
- "description": "Module configuration fields, sources and materialization instructions"
65
- }
66
- ]
36
+ "documentation": {
37
+ "docs": "DOCS.md",
38
+ "setup": "SETUP.md"
39
+ }
67
40
  }
package/CONFIGURATION.md DELETED
@@ -1,23 +0,0 @@
1
- # task-store-sqlite configuration
2
-
3
- Canonical public config: `.proflow/config/task-store-sqlite.json`
4
-
5
- This file is Workspace-owned data. `platform uninstall` does not delete it. Values are JSON strings. Raw secrets must not be stored here; `secretRef` fields contain opaque references only.
6
-
7
- ## Fields
8
-
9
- | Key | Type | Required | Sensitive | Source | Meaning |
10
- |---|---|---:|---:|---|---|
11
- | `databasePath` | `path` | yes | no | User or owning Module supplies an absolute/local path that exists on this Workspace. | Task SQLite database path |
12
-
13
- ## Materialize
14
-
15
- Create or update the canonical JSON object at:
16
-
17
- `.proflow/config/task-store-sqlite.json`
18
-
19
- Use only declared keys and string values. Do not create a second Platform configuration database.
20
-
21
- ## Base completion check
22
-
23
- Run `platform modules`. This Module should no longer report required keys in `missingConfig`. `platform start` performs the authoritative Module-owned validation before starting anything.