@projitive/mcp 1.2.0 → 2.0.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.
package/README.md CHANGED
@@ -2,80 +2,47 @@
2
2
 
3
3
  Language: English | [简体中文](README_CN.md)
4
4
 
5
- **Current Spec Version: projitive-spec v1.0.0 | MCP Version: 1.0.8**
5
+ ## Version
6
6
 
7
- Projitive MCP server (semantic interface edition) helps agents discover projects, select tasks, locate evidence, and execute under governance workflows.
7
+ - Current Spec Version: projitive-spec v1.0.0
8
+ - MCP Version: 2.0.0
8
9
 
9
- ## Agent Delivery Loop
10
+ ## 60-Second Start
10
11
 
11
- ```mermaid
12
- flowchart LR
13
- A[taskNext / projectNext] --> B[taskContext / projectContext]
14
- B --> C[Update tasks/designs/reports]
15
- C --> D[taskContext verify]
16
- D --> E{More actionable work?}
17
- E -->|Yes| A
18
- E -->|No| F[Done / wait for new tasks]
19
- ```
20
-
21
- ## Why Developers Choose This MCP
22
-
23
- - Predictable API family: `List/Context` as core, `Next/Scan/Locate` for acceleration.
24
- - Governance-safe automation: state changes are guided by evidence-first workflow.
25
- - Agent-ready outputs: markdown contracts optimized for tool-chaining, not raw JSON blobs.
26
- - Production publishing pipeline: release-triggered CI with lint/test/publish gates.
27
-
28
- ## How It Helps Agents Manage and Advance Projects
29
-
30
- This MCP is designed to make agent execution operational, not just informative. It gives agents a closed-loop workflow:
31
-
32
- 1. **Find what to do next**
33
- - `taskNext` or `projectNext` ranks actionable targets.
34
- 2. **Build the right context**
35
- - `taskContext` / `projectContext` / `roadmapContext` provide evidence, references, and next-call hints.
36
- 3. **Execute with governance constraints**
37
- - Agent updates markdown artifacts (`tasks.md`, `designs/`, `reports/`) with immutable IDs and evidence rules.
38
- 4. **Re-verify and continue**
39
- - Re-run `taskContext` (or `roadmapContext`) to confirm consistency, then move to the next task.
12
+ If you only read one section, read this:
40
13
 
41
- In short: it converts agent work from ad-hoc edits into a **discover → decide → execute → verify** delivery loop.
14
+ 1. Start server: `npx -y @projitive/mcp`
15
+ 2. Configure mcp.json with scan roots and depth
16
+ 3. Run: taskNext -> taskContext -> taskUpdate -> taskContext -> taskNext
42
17
 
43
- ## Agent Workflow (Shortest Path)
18
+ Why teams use it:
44
19
 
45
- ```text
46
- taskNext
47
- -> taskContext
48
- -> update artifacts (tasks/designs/reports)
49
- -> taskContext (verify)
50
- -> taskNext (next cycle)
51
- ```
52
-
53
- When no actionable task exists (`actionableTasks: 0`), use bootstrap path:
20
+ - Faster next-task selection
21
+ - Better evidence traceability
22
+ - More predictable multi-agent delivery
54
23
 
55
- ```text
56
- taskNext
57
- -> projectContext
58
- -> create 1-3 TODO tasks in tasks.md marker block (from roadmap/readme/report gaps)
59
- -> taskNext
60
- ```
24
+ ## What It Is Useful For
61
25
 
62
- Optional customization: add `hooks/task_no_actionable.md` in governance root to override the default no-task discovery checklist.
26
+ Projitive MCP helps agents move work forward in governed projects without losing traceability.
63
27
 
64
- When the agent starts inside a project:
28
+ - Pick the next highest-value task quickly.
29
+ - Build execution context with linked evidence.
30
+ - Update task and roadmap state in a consistent, auditable way.
31
+ - Keep delivery loop stable across long-running multi-agent workflows.
65
32
 
66
- ```text
67
- projectLocate -> projectContext -> taskList -> taskContext
68
- ```
33
+ ## How To Use
69
34
 
70
- ## Quick Start
35
+ ### 1. Start MCP Server
71
36
 
72
- Use npm package directly in MCP client configuration:
37
+ Use package directly in your MCP client:
73
38
 
74
39
  ```bash
75
40
  npx -y @projitive/mcp
76
41
  ```
77
42
 
78
- MCP client config example (`mcp.json`):
43
+ ### 2. Add Client Config
44
+
45
+ Example mcp.json:
79
46
 
80
47
  ```json
81
48
  {
@@ -92,403 +59,127 @@ MCP client config example (`mcp.json`):
92
59
  }
93
60
  ```
94
61
 
95
- Environment variables (required):
96
-
97
- - `PROJITIVE_SCAN_ROOT_PATHS`: required scan roots for discovery methods.
98
- - Use platform-delimiter string (`:` on Linux/macOS, `;` on Windows), e.g. `/workspace/a:/workspace/b`.
99
- - Fallback: if not set, legacy `PROJITIVE_SCAN_ROOT_PATH` is used.
100
- - `PROJITIVE_SCAN_MAX_DEPTH`: required scan depth for discovery methods (integer `0-8`).
101
-
102
- Local path startup is not the recommended usage mode in this README.
103
-
104
- For maintainers/contributors only:
105
-
106
- ```bash
107
- cd packages/mcp
108
- npm ci
109
- npm run build
110
- npm run test
111
- ```
112
-
113
- ## Spec Version
114
-
115
- - Current aligned spec version: `projitive-spec v1.0.0`
116
- - Note: Projitive is a general governance specification; MCP is one implementation of this spec.
117
- - Alignment rule: MCP major version must match the spec major version (currently both `v1.x`).
118
-
119
- ## Design Boundaries
120
-
121
- - MCP handles discovery, locating, summarization, and execution guidance.
122
- - Agents/AI handle reading and updating markdown content.
123
- - MCP does not provide direct artifact-write APIs such as `task.update_*`, `roadmap.update_*`, or `sync_*`.
124
- - All tool outputs are agent-oriented Markdown (not raw JSON objects).
125
- - Standard output sections: `Summary` / `Evidence` / `Agent Guidance` / `Next Call`.
126
- - Standard error sections: `Error` / `Next Step` / `Retry Example`.
127
-
128
- ## MCP Capability Model
129
-
130
- - Tools: execute discovery/locating/summarization actions (primary channel).
131
- - Resources: expose readable governance artifacts for low-cost context loading.
132
- - Prompts: provide parameterized workflow templates to reduce execution drift.
133
-
134
- ### Resources (Implemented)
135
-
136
- - `projitive://governance/workspace`: reads `.projitive/README.md`
137
- - `projitive://governance/tasks`: reads `.projitive/tasks.md`
138
- - `projitive://governance/roadmap`: reads `.projitive/roadmap.md`
139
- - `projitive://mcp/method-catalog`: method naming and role catalog (`List/Context/Next/Scan/Locate`)
140
-
141
- ### Prompts (Implemented)
142
-
143
- - `executeTaskWorkflow`: standard execution chain (`taskNext -> taskContext -> artifacts update -> verify`)
144
- - `updateTaskStatusWithEvidence`: status transition + evidence alignment template
145
- - `triageProjectGovernance`: project-level governance triage template
146
-
147
- ## Tools Methods
148
-
149
- ### Discovery Layer
150
-
151
- #### `projectInit`
152
-
153
- - **Purpose**: manually initialize governance directory structure for a project (default `.projitive`).
154
- - **Input**: `projectPath`, `governanceDir?`, `force?`
155
- - **Output Example (Markdown)**:
156
-
157
- ```markdown
158
- # projectInit
159
-
160
- ## Summary
161
- - projectPath: /workspace/proj-a
162
- - governanceDir: /workspace/proj-a/.projitive
163
- - markerPath: /workspace/proj-a/.projitive/.projitive
164
- - force: false
165
-
166
- ## Evidence
167
- - createdFiles: 4
168
- - updatedFiles: 0
169
- - skippedFiles: 0
170
-
171
- ## Agent Guidance
172
- - If files were skipped and you want to overwrite templates, rerun with force=true.
173
- - Continue with projectContext and taskList for execution.
174
-
175
- ## Next Call
176
- - projectContext(projectPath="/workspace/proj-a/.projitive")
177
- ```
178
-
179
- #### `projectNext`
180
-
181
- - **Purpose**: directly list recently actionable projects (ranked by actionable task count and recency).
182
- - **Input**: `limit?`
183
- - **Output Example (Markdown)**:
184
-
185
- ```markdown
186
- # projectNext
62
+ Required environment variables:
187
63
 
188
- ## Summary
189
- - rootPath: /workspace
190
- - maxDepth: 3
191
- - matchedProjects: 8
192
- - actionableProjects: 3
193
- - limit: 10
64
+ - PROJITIVE_SCAN_ROOT_PATHS: discovery roots (platform-delimited)
65
+ - PROJITIVE_SCAN_MAX_DEPTH: discovery depth (0-8)
194
66
 
195
- ## Evidence
196
- - rankedProjects:
197
- 1. /workspace/proj-a | actionable=5 | in_progress=2 | todo=3 | blocked=1 | done=4 | latest=2026-02-17T12:00:00.000Z | tasksPath=/workspace/proj-a/tasks.md
198
- 2. /workspace/proj-b | actionable=3 | in_progress=1 | todo=2 | blocked=0 | done=7 | latest=2026-02-16T09:00:00.000Z | tasksPath=/workspace/proj-b/tasks.md
67
+ Fallback: when PROJITIVE_SCAN_ROOT_PATHS is not set, legacy PROJITIVE_SCAN_ROOT_PATH is used.
199
68
 
200
- ## Agent Guidance
201
- - Pick top 1 project and call `projectContext` with its governanceDir.
202
- - Then call `taskList` and `taskContext` to continue execution.
69
+ ### 3. Use The Default Delivery Loop
203
70
 
204
- ## Next Call
205
- - projectContext(projectPath="/workspace/proj-a")
206
- ```
207
-
208
- #### `projectScan`
209
-
210
- - **Purpose**: scan directories and discover governable projects.
211
- - **Input**: `(none)`
212
- - **Output Example (Markdown)**:
213
-
214
- ```markdown
215
- # projectScan
216
-
217
- ## Summary
218
- - rootPath: /workspace
219
- - maxDepth: 3
220
- - discoveredCount: 2
221
-
222
- ## Evidence
223
- - projects:
224
- 1. /workspace/proj-a
225
- 2. /workspace/proj-b
226
-
227
- ## Agent Guidance
228
- - Use one discovered project path and call `projectLocate` to lock governance root.
229
- - Then call `projectContext` to inspect current governance state.
230
-
231
- ## Next Call
232
- - projectLocate(inputPath="/workspace/proj-a")
233
- ```
234
-
235
- #### `projectLocate`
236
-
237
- - **Purpose**: when an agent is already inside a project path, resolve the nearest `.projitive` upward.
238
- - **Input**: `inputPath`
239
- - **Output Example (Markdown)**:
240
-
241
- ```markdown
242
- # projectLocate
243
-
244
- ## Summary
245
- - resolvedFrom: /workspace/proj-a/packages/mcp
246
- - governanceDir: /workspace/proj-a
247
- - markerPath: /workspace/proj-a/.projitive
248
-
249
- ## Agent Guidance
250
- - Call `projectContext` with this governanceDir to get task and roadmap summaries.
251
-
252
- ## Next Call
253
- - projectContext(projectPath="/workspace/proj-a")
254
- ```
255
-
256
- #### `projectContext`
257
-
258
- - **Purpose**: summarize governance state instead of only returning file lists.
259
- - **Input**: `projectPath`
260
- - **Output Example (Markdown)**:
261
-
262
- ```markdown
263
- # projectContext
264
-
265
- ## Summary
266
- - governanceDir: /workspace/proj-a
267
- - tasksFile: /workspace/proj-a/tasks.md
268
- - roadmapIds: 3
269
-
270
- ## Evidence
271
- ### Task Summary
272
- - total: 12
273
- - TODO: 4
274
- - IN_PROGRESS: 3
275
- - BLOCKED: 1
276
- - DONE: 4
277
-
278
- ### Artifacts
279
- - ✅ README.md
280
- - ✅ roadmap.md
281
- - ✅ tasks.md
282
- - ✅ designs/
283
- - ✅ reports/
284
- - ✅ hooks/
285
-
286
- ## Agent Guidance
287
- - Start from `taskList` to choose a target task.
288
- - Then call `taskContext` with a task ID to retrieve evidence locations and reading order.
289
-
290
- ## Next Call
291
- - taskList(projectPath="/workspace/proj-a")
292
- ```
293
-
294
- ### Task Layer
295
-
296
- #### `taskNext`
297
-
298
- - **Purpose**: one-step workflow for project discovery + best task selection + evidence/read-order output.
299
- - **Input**: `limit?`
300
- - **Output Example (Markdown)**:
301
-
302
- ```markdown
303
- # taskNext
304
-
305
- ## Summary
306
- - rootPath: /workspace
307
- - maxDepth: 3
308
- - matchedProjects: 8
309
- - actionableTasks: 12
310
- - selectedProject: /workspace/proj-a
311
- - selectedTaskId: TASK-0003
312
- - selectedTaskStatus: IN_PROGRESS
313
-
314
- ## Evidence
315
- ### Selected Task
316
- - id: TASK-0003
317
- - title: Build MCP tools
318
- - taskLocation: /workspace/proj-a/tasks.md#L42
319
-
320
- ### Top Candidates
321
- 1. TASK-0003 | IN_PROGRESS | Build MCP tools | project=/workspace/proj-a | projectScore=6
322
- 2. TASK-0007 | TODO | Add docs examples | project=/workspace/proj-b | projectScore=5
323
-
324
- ### Selection Reason
325
- - Rank rule: projectScore DESC -> taskPriority DESC -> taskUpdatedAt DESC.
326
- - Selected candidate scores: projectScore=6, taskPriority=2, taskUpdatedAtMs=1739793600000.
327
-
328
- ### Suggested Read Order
329
- 1. /workspace/proj-a/tasks.md
330
- 2. /workspace/proj-a/designs/mcp-design.md
331
- 3. /workspace/proj-a/reports/mcp-progress.md
332
-
333
- ## Agent Guidance
334
- - Start immediately with Suggested Read Order and execute the selected task.
335
- - Re-run `taskContext` for the selectedTaskId after edits to verify evidence consistency.
336
-
337
- ## Next Call
338
- - taskContext(projectPath="/workspace/proj-a", taskId="TASK-0003")
71
+ ```mermaid
72
+ flowchart LR
73
+ A[taskNext / projectNext] --> B[taskContext / projectContext]
74
+ B --> C[Update task and roadmap + docs]
75
+ C --> D[taskContext verify]
76
+ D --> E{More actionable work?}
77
+ E -->|Yes| A
78
+ E -->|No| F[Done / wait for new tasks]
339
79
  ```
340
80
 
341
- - **Recommended Path**: prefer `taskNext` to avoid multi-hop flow (`projectNext -> projectContext -> taskList -> taskContext`).
342
-
343
- #### `taskList`
344
-
345
- - **Purpose**: list tasks in current project, with optional status filtering and limiting.
346
- - **Input**: `projectPath`, `status?`, `limit?`
347
- - **Output Example (Markdown)**:
81
+ Recommended minimal sequence:
348
82
 
349
- ```markdown
350
- # taskList
83
+ 1. taskNext
84
+ 2. taskContext
85
+ 3. taskUpdate and/or roadmapUpdate
86
+ 4. taskContext
87
+ 5. taskNext
351
88
 
352
- ## Summary
353
- - governanceDir: /workspace/proj-a
354
- - tasksPath: /workspace/proj-a/tasks.md
355
- - filter.status: IN_PROGRESS
356
- - returned: 2
89
+ ### 4. New User Minimal Flow
357
90
 
358
- ## Evidence
359
- - tasks:
360
- - TASK-0003 | IN_PROGRESS | Build MCP tools | owner=alice | updatedAt=2026-02-17T12:00:00.000Z
361
- - TASK-0007 | IN_PROGRESS | Add docs examples | owner=bob | updatedAt=2026-02-17T13:30:00.000Z
91
+ This is the shortest end-to-end path from first connection to first governed update:
362
92
 
363
- ## Agent Guidance
364
- - Pick one task ID and call `taskContext`.
365
-
366
- ## Next Call
367
- - taskContext(projectPath="/workspace/proj-a", taskId="TASK-0003")
368
- ```
93
+ ```mermaid
94
+ sequenceDiagram
95
+ participant U as User/Agent
96
+ participant M as Projitive MCP
369
97
 
370
- #### `taskContext`
371
-
372
- - **Purpose**: return task detail + related evidence locations in one call (replacing `trace.references`).
373
- - **Input**: `projectPath`, `taskId`
374
- - **Output Example (Markdown)**:
375
-
376
- ```markdown
377
- # taskContext
378
-
379
- ## Summary
380
- - governanceDir: /workspace/proj-a
381
- - taskId: TASK-0003
382
- - title: Build MCP tools
383
- - status: IN_PROGRESS
384
- - owner: alice
385
- - updatedAt: 2026-02-17T12:00:00.000Z
386
- - roadmapRefs: ROADMAP-0001
387
- - taskLocation: /workspace/proj-a/tasks.md#L42
388
-
389
- ## Evidence
390
- ### Related Artifacts
391
- - /workspace/proj-a/tasks.md
392
- - /workspace/proj-a/designs/mcp-design.md
393
- - /workspace/proj-a/reports/mcp-progress.md
394
-
395
- ### Reference Locations
396
- - /workspace/proj-a/tasks.md#L42: "id": "TASK-0003"
397
- - /workspace/proj-a/designs/mcp-design.md#L18: Ref: TASK-0003
398
-
399
- ### Suggested Read Order
400
- 1. /workspace/proj-a/tasks.md
401
- 2. /workspace/proj-a/designs/mcp-design.md
402
- 3. /workspace/proj-a/reports/mcp-progress.md
403
-
404
- ## Agent Guidance
405
- - Read the files in Suggested Read Order.
406
- - Verify whether current status and evidence are consistent.
407
- - This task is IN_PROGRESS: prioritize finishing with report/design evidence updates.
408
- - Verify references stay consistent before marking DONE.
409
-
410
- ## Next Call
411
- - taskContext(projectPath="/workspace/proj-a", taskId="TASK-0003")
98
+ U->>M: projectScan()
99
+ M-->>U: discovered governance projects
100
+ U->>M: projectContext(projectPath)
101
+ M-->>U: task/roadmap summary
102
+ U->>M: taskNext()
103
+ M-->>U: selected actionable task
104
+ U->>M: taskContext(projectPath, taskId)
105
+ M-->>U: evidence and read order
106
+ U->>M: taskUpdate(projectPath, taskId, updates)
107
+ M-->>U: updated task state
108
+ U->>M: taskContext(projectPath, taskId)
109
+ M-->>U: verification snapshot
412
110
  ```
413
111
 
414
- ### Roadmap Layer
112
+ ## What You Can Do With It
415
113
 
416
- #### `roadmapList`
114
+ ### Core Tools
417
115
 
418
- - **Purpose**: list roadmap items and linked task summary.
419
- - **Input**: `projectPath`
420
- - **Output Example (Markdown)**:
116
+ | Group | Tool | Purpose |
117
+ | --- | --- | --- |
118
+ | Project | projectInit | Initialize governance structure |
119
+ | Project | projectScan | Discover governable projects |
120
+ | Project | projectNext | Rank actionable projects |
121
+ | Project | projectLocate | Resolve nearest governance root |
122
+ | Project | projectContext | Summarize governance context |
123
+ | Project | syncViews | Force materialize markdown views |
124
+ | Task | taskList | List tasks |
125
+ | Task | taskNext | Select best actionable task |
126
+ | Task | taskContext | Get task evidence and reading order |
127
+ | Task | taskUpdate | Update task state and metadata |
128
+ | Roadmap | roadmapList | List roadmaps and linked tasks |
129
+ | Roadmap | roadmapContext | Get roadmap context |
130
+ | Roadmap | roadmapUpdate | Update roadmap milestone fields |
421
131
 
422
- ```markdown
423
- # roadmapList
132
+ ### Resources
424
133
 
425
- ## Summary
426
- - governanceDir: /workspace/proj-a
427
- - roadmapCount: 2
134
+ - projitive://governance/workspace
135
+ - projitive://governance/tasks
136
+ - projitive://governance/roadmap
137
+ - projitive://mcp/method-catalog
428
138
 
429
- ## Evidence
430
- - roadmaps:
431
- - ROADMAP-0001 | linkedTasks=6
432
- - ROADMAP-0002 | linkedTasks=3
139
+ ### Prompts
433
140
 
434
- ## Agent Guidance
435
- - Pick one roadmap ID and call `roadmapContext`.
141
+ - executeTaskWorkflow
142
+ - updateTaskStatusWithEvidence
143
+ - triageProjectGovernance
436
144
 
437
- ## Next Call
438
- - roadmapContext(projectPath="/workspace/proj-a", roadmapId="ROADMAP-0001")
439
- ```
145
+ ## Design Philosophy
440
146
 
441
- #### `roadmapContext`
147
+ ### 1. Source Of Truth vs Views
442
148
 
443
- - **Purpose**: get single roadmap detail and reference locations.
444
- - **Input**: `projectPath`, `roadmapId`
445
- - **Output Example (Markdown)**:
149
+ - Governance source data is stored in .projitive.
150
+ - tasks.md and roadmap.md are materialized/generated views.
151
+ - Manual edits on generated views can be overwritten by sync.
446
152
 
447
- ```markdown
448
- # roadmapContext
153
+ ### 2. Query Performance Without Extra Files
449
154
 
450
- ## Summary
451
- - governanceDir: /workspace/proj-a
452
- - roadmapId: ROADMAP-0001
453
- - relatedTasks: 6
454
- - references: 9
155
+ - Query path uses embedded DuckDB in memory by default.
156
+ - No extra intermediate DuckDB database file is created.
455
157
 
456
- ## Evidence
457
- ### Related Tasks
458
- - TASK-0001 | DONE | Bootstrap governance
459
- - TASK-0003 | IN_PROGRESS | Build MCP tools
158
+ ### 3. Evidence-First Execution
460
159
 
461
- ### Reference Locations
462
- - /workspace/proj-a/roadmap.md#L21: ROADMAP-0001
463
- - /workspace/proj-a/tasks.md#L42: "roadmapRefs": ["ROADMAP-0001"]
160
+ - State changes should be backed by report/design/readme evidence.
161
+ - Tool output format is agent-friendly markdown for chained execution.
464
162
 
465
- ## Agent Guidance
466
- - Read roadmap references first, then related tasks.
467
- - Keep ROADMAP/TASK IDs unchanged while updating markdown files.
163
+ ### 4. Deterministic Multi-Agent Workflow
468
164
 
469
- ## Next Call
470
- - roadmapContext(projectPath="/workspace/proj-a", roadmapId="ROADMAP-0001")
471
- ```
165
+ - Prefer tool-based writes over ad-hoc markdown edits.
166
+ - Keep IDs stable and transitions explicit.
167
+ - Re-verify context after each significant update.
472
168
 
473
- ## Unified Error Output Example
169
+ ## Architecture Documents
474
170
 
475
- ```markdown
476
- # taskContext
171
+ - Index: docs/README_CN.md
172
+ - Current architecture: docs/ARCHITECTURE_CN.md
173
+ - Migration architecture: docs/MIGRATION_ARCHITECTURE_CN.md
174
+ - Historical proposals: REFACTOR_CN.md, REFACTOR_V2_CN.md
477
175
 
478
- ## Error
479
- - cause: Invalid task ID format: TASK-12
176
+ ## Development
480
177
 
481
- ## Next Step
482
- - expected format: TASK-0001
483
- - retry with a valid task ID
178
+ For maintainers:
484
179
 
485
- ## Retry Example
486
- - taskContext(projectPath="/workspace/proj-a", taskId="TASK-0001")
180
+ ```bash
181
+ cd packages/mcp
182
+ npm ci
183
+ npm run build
184
+ npm run test
487
185
  ```
488
-
489
- ## Recommended Agent Call Flow
490
-
491
- 1. `taskNext`: one-step discovery and top task selection (default path).
492
- 2. `taskContext`: fetch detailed evidence for a specific task ID when needed.
493
- 3. `projectNext`: optional project-level scheduling flow when you need project-first dispatch.
494
- 4. When already in a project path, use `projectLocate` to quickly resolve governance root.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projitive/mcp",
3
- "version": "1.2.0",
3
+ "version": "2.0.0",
4
4
  "description": "Projitive MCP Server for project and task discovery/update",
5
5
  "license": "ISC",
6
6
  "author": "",
@@ -25,11 +25,14 @@
25
25
  "output"
26
26
  ],
27
27
  "dependencies": {
28
+ "@duckdb/node-api": "1.5.0-r.1",
28
29
  "@modelcontextprotocol/sdk": "^1.17.5",
30
+ "sql.js": "^1.14.1",
29
31
  "zod": "^3.23.8"
30
32
  },
31
33
  "devDependencies": {
32
34
  "@types/node": "^24.3.0",
35
+ "@types/sql.js": "^1.4.9",
33
36
  "@vitest/coverage-v8": "^3.2.4",
34
37
  "tsx": "^4.20.5",
35
38
  "typescript": "^5.9.2",
@@ -2,7 +2,7 @@ import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { catchIt } from "./catch.js";
4
4
  const FILE_ARTIFACTS = ["README.md", "roadmap.md", "tasks.md"];
5
- const DIRECTORY_ARTIFACTS = ["designs", "reports", "hooks"];
5
+ const DIRECTORY_ARTIFACTS = ["designs", "reports", "templates"];
6
6
  async function fileLineCount(filePath) {
7
7
  const content = await fs.readFile(filePath, "utf-8");
8
8
  if (!content) {
@@ -7,3 +7,4 @@ export * from "./response.js";
7
7
  export * from "./catch.js";
8
8
  export * from "./artifacts.js";
9
9
  export * from "./linter.js";
10
+ export * from "./store.js";