mcp-taskflow 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +275 -0
  4. package/dist/config/pathResolver.d.ts +33 -0
  5. package/dist/config/pathResolver.d.ts.map +1 -0
  6. package/dist/config/pathResolver.js +130 -0
  7. package/dist/config/pathResolver.js.map +1 -0
  8. package/dist/data/fileOperations.d.ts +43 -0
  9. package/dist/data/fileOperations.d.ts.map +1 -0
  10. package/dist/data/fileOperations.js +248 -0
  11. package/dist/data/fileOperations.js.map +1 -0
  12. package/dist/data/memoryStore.d.ts +86 -0
  13. package/dist/data/memoryStore.d.ts.map +1 -0
  14. package/dist/data/memoryStore.js +216 -0
  15. package/dist/data/memoryStore.js.map +1 -0
  16. package/dist/data/rulesStore.d.ts +63 -0
  17. package/dist/data/rulesStore.d.ts.map +1 -0
  18. package/dist/data/rulesStore.js +196 -0
  19. package/dist/data/rulesStore.js.map +1 -0
  20. package/dist/data/schemas.d.ts +840 -0
  21. package/dist/data/schemas.d.ts.map +1 -0
  22. package/dist/data/schemas.js +265 -0
  23. package/dist/data/schemas.js.map +1 -0
  24. package/dist/data/taskSearchService.d.ts +110 -0
  25. package/dist/data/taskSearchService.d.ts.map +1 -0
  26. package/dist/data/taskSearchService.js +165 -0
  27. package/dist/data/taskSearchService.js.map +1 -0
  28. package/dist/data/taskStore.d.ts +192 -0
  29. package/dist/data/taskStore.d.ts.map +1 -0
  30. package/dist/data/taskStore.js +347 -0
  31. package/dist/data/taskStore.js.map +1 -0
  32. package/dist/index.d.ts +23 -0
  33. package/dist/index.d.ts.map +1 -0
  34. package/dist/index.js +86 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/prompts/index.d.ts +12 -0
  37. package/dist/prompts/index.d.ts.map +1 -0
  38. package/dist/prompts/index.js +17 -0
  39. package/dist/prompts/index.js.map +1 -0
  40. package/dist/prompts/projectPromptBuilder.d.ts +13 -0
  41. package/dist/prompts/projectPromptBuilder.d.ts.map +1 -0
  42. package/dist/prompts/projectPromptBuilder.js +29 -0
  43. package/dist/prompts/projectPromptBuilder.js.map +1 -0
  44. package/dist/prompts/researchPromptBuilder.d.ts +10 -0
  45. package/dist/prompts/researchPromptBuilder.d.ts.map +1 -0
  46. package/dist/prompts/researchPromptBuilder.js +20 -0
  47. package/dist/prompts/researchPromptBuilder.js.map +1 -0
  48. package/dist/prompts/taskPromptBuilders.d.ts +87 -0
  49. package/dist/prompts/taskPromptBuilders.d.ts.map +1 -0
  50. package/dist/prompts/taskPromptBuilders.js +529 -0
  51. package/dist/prompts/taskPromptBuilders.js.map +1 -0
  52. package/dist/prompts/templateEngine.d.ts +102 -0
  53. package/dist/prompts/templateEngine.d.ts.map +1 -0
  54. package/dist/prompts/templateEngine.js +145 -0
  55. package/dist/prompts/templateEngine.js.map +1 -0
  56. package/dist/prompts/templateLoader.d.ts +61 -0
  57. package/dist/prompts/templateLoader.d.ts.map +1 -0
  58. package/dist/prompts/templateLoader.js +129 -0
  59. package/dist/prompts/templateLoader.js.map +1 -0
  60. package/dist/prompts/templates/v1/templates_en/analyzeTask/index.md +65 -0
  61. package/dist/prompts/templates/v1/templates_en/analyzeTask/iteration.md +12 -0
  62. package/dist/prompts/templates/v1/templates_en/clearAllTasks/backupInfo.md +1 -0
  63. package/dist/prompts/templates/v1/templates_en/clearAllTasks/cancel.md +7 -0
  64. package/dist/prompts/templates/v1/templates_en/clearAllTasks/empty.md +5 -0
  65. package/dist/prompts/templates/v1/templates_en/clearAllTasks/index.md +5 -0
  66. package/dist/prompts/templates/v1/templates_en/clearAllTasks/result.md +7 -0
  67. package/dist/prompts/templates/v1/templates_en/clearAllTasks/success.md +5 -0
  68. package/dist/prompts/templates/v1/templates_en/deleteTask/completed.md +5 -0
  69. package/dist/prompts/templates/v1/templates_en/deleteTask/index.md +5 -0
  70. package/dist/prompts/templates/v1/templates_en/deleteTask/notFound.md +5 -0
  71. package/dist/prompts/templates/v1/templates_en/deleteTask/result.md +5 -0
  72. package/dist/prompts/templates/v1/templates_en/deleteTask/success.md +5 -0
  73. package/dist/prompts/templates/v1/templates_en/executeTask/analysisResult.md +3 -0
  74. package/dist/prompts/templates/v1/templates_en/executeTask/complexity.md +15 -0
  75. package/dist/prompts/templates/v1/templates_en/executeTask/dependencies.md +3 -0
  76. package/dist/prompts/templates/v1/templates_en/executeTask/dependencyTasks.md +3 -0
  77. package/dist/prompts/templates/v1/templates_en/executeTask/implementationGuide.md +3 -0
  78. package/dist/prompts/templates/v1/templates_en/executeTask/index.md +39 -0
  79. package/dist/prompts/templates/v1/templates_en/executeTask/notes.md +1 -0
  80. package/dist/prompts/templates/v1/templates_en/executeTask/relatedFilesSummary.md +5 -0
  81. package/dist/prompts/templates/v1/templates_en/executeTask/verificationCriteria.md +3 -0
  82. package/dist/prompts/templates/v1/templates_en/getTaskDetail/complatedSummary.md +5 -0
  83. package/dist/prompts/templates/v1/templates_en/getTaskDetail/dependencies.md +1 -0
  84. package/dist/prompts/templates/v1/templates_en/getTaskDetail/error.md +3 -0
  85. package/dist/prompts/templates/v1/templates_en/getTaskDetail/implementationGuide.md +3 -0
  86. package/dist/prompts/templates/v1/templates_en/getTaskDetail/index.md +25 -0
  87. package/dist/prompts/templates/v1/templates_en/getTaskDetail/notFound.md +3 -0
  88. package/dist/prompts/templates/v1/templates_en/getTaskDetail/notes.md +1 -0
  89. package/dist/prompts/templates/v1/templates_en/getTaskDetail/relatedFiles.md +3 -0
  90. package/dist/prompts/templates/v1/templates_en/getTaskDetail/verificationCriteria.md +3 -0
  91. package/dist/prompts/templates/v1/templates_en/initProjectRules/index.md +81 -0
  92. package/dist/prompts/templates/v1/templates_en/listTasks/index.md +7 -0
  93. package/dist/prompts/templates/v1/templates_en/listTasks/notFound.md +3 -0
  94. package/dist/prompts/templates/v1/templates_en/listTasks/taskDetails.md +13 -0
  95. package/dist/prompts/templates/v1/templates_en/planTask/hasThought.md +4 -0
  96. package/dist/prompts/templates/v1/templates_en/planTask/index.md +96 -0
  97. package/dist/prompts/templates/v1/templates_en/planTask/noThought.md +4 -0
  98. package/dist/prompts/templates/v1/templates_en/planTask/tasks.md +17 -0
  99. package/dist/prompts/templates/v1/templates_en/processThought/complatedThought.md +6 -0
  100. package/dist/prompts/templates/v1/templates_en/processThought/index.md +13 -0
  101. package/dist/prompts/templates/v1/templates_en/processThought/moreThought.md +1 -0
  102. package/dist/prompts/templates/v1/templates_en/queryTask/index.md +24 -0
  103. package/dist/prompts/templates/v1/templates_en/queryTask/notFound.md +15 -0
  104. package/dist/prompts/templates/v1/templates_en/queryTask/taskDetails.md +5 -0
  105. package/dist/prompts/templates/v1/templates_en/reflectTask/index.md +57 -0
  106. package/dist/prompts/templates/v1/templates_en/researchMode/index.md +95 -0
  107. package/dist/prompts/templates/v1/templates_en/researchMode/previousState.md +9 -0
  108. package/dist/prompts/templates/v1/templates_en/splitTasks/index.md +34 -0
  109. package/dist/prompts/templates/v1/templates_en/splitTasks/taskDetails.md +12 -0
  110. package/dist/prompts/templates/v1/templates_en/tests/basic.md +1 -0
  111. package/dist/prompts/templates/v1/templates_en/toolsDescription/analyzeTask.md +1 -0
  112. package/dist/prompts/templates/v1/templates_en/toolsDescription/clearAllTasks.md +1 -0
  113. package/dist/prompts/templates/v1/templates_en/toolsDescription/deleteTask.md +1 -0
  114. package/dist/prompts/templates/v1/templates_en/toolsDescription/executeTask.md +1 -0
  115. package/dist/prompts/templates/v1/templates_en/toolsDescription/getTaskDetail.md +1 -0
  116. package/dist/prompts/templates/v1/templates_en/toolsDescription/initProjectRules.md +1 -0
  117. package/dist/prompts/templates/v1/templates_en/toolsDescription/listTasks.md +1 -0
  118. package/dist/prompts/templates/v1/templates_en/toolsDescription/planTask.md +3 -0
  119. package/dist/prompts/templates/v1/templates_en/toolsDescription/processThought.md +1 -0
  120. package/dist/prompts/templates/v1/templates_en/toolsDescription/queryTask.md +1 -0
  121. package/dist/prompts/templates/v1/templates_en/toolsDescription/reflectTask.md +1 -0
  122. package/dist/prompts/templates/v1/templates_en/toolsDescription/researchMode.md +1 -0
  123. package/dist/prompts/templates/v1/templates_en/toolsDescription/splitTasks.md +83 -0
  124. package/dist/prompts/templates/v1/templates_en/toolsDescription/updateTask.md +1 -0
  125. package/dist/prompts/templates/v1/templates_en/toolsDescription/verifyTask.md +37 -0
  126. package/dist/prompts/templates/v1/templates_en/updateTaskContent/emptyUpdate.md +5 -0
  127. package/dist/prompts/templates/v1/templates_en/updateTaskContent/fileDetails.md +1 -0
  128. package/dist/prompts/templates/v1/templates_en/updateTaskContent/index.md +7 -0
  129. package/dist/prompts/templates/v1/templates_en/updateTaskContent/notFound.md +5 -0
  130. package/dist/prompts/templates/v1/templates_en/updateTaskContent/success.md +9 -0
  131. package/dist/prompts/templates/v1/templates_en/updateTaskContent/successDetails.md +3 -0
  132. package/dist/prompts/templates/v1/templates_en/updateTaskContent/validation.md +5 -0
  133. package/dist/prompts/templates/v1/templates_en/verifyTask/index.md +19 -0
  134. package/dist/prompts/templates/v1/templates_en/verifyTask/noPass.md +12 -0
  135. package/dist/prompts/thoughtPromptBuilder.d.ts +11 -0
  136. package/dist/prompts/thoughtPromptBuilder.d.ts.map +1 -0
  137. package/dist/prompts/thoughtPromptBuilder.js +30 -0
  138. package/dist/prompts/thoughtPromptBuilder.js.map +1 -0
  139. package/dist/server/container.d.ts +111 -0
  140. package/dist/server/container.d.ts.map +1 -0
  141. package/dist/server/container.js +135 -0
  142. package/dist/server/container.js.map +1 -0
  143. package/dist/server/logger.d.ts +98 -0
  144. package/dist/server/logger.d.ts.map +1 -0
  145. package/dist/server/logger.js +295 -0
  146. package/dist/server/logger.js.map +1 -0
  147. package/dist/server/mcpServer.d.ts +162 -0
  148. package/dist/server/mcpServer.d.ts.map +1 -0
  149. package/dist/server/mcpServer.js +236 -0
  150. package/dist/server/mcpServer.js.map +1 -0
  151. package/dist/tools/project/index.d.ts +7 -0
  152. package/dist/tools/project/index.d.ts.map +1 -0
  153. package/dist/tools/project/index.js +7 -0
  154. package/dist/tools/project/index.js.map +1 -0
  155. package/dist/tools/project/projectTools.d.ts +17 -0
  156. package/dist/tools/project/projectTools.d.ts.map +1 -0
  157. package/dist/tools/project/projectTools.js +73 -0
  158. package/dist/tools/project/projectTools.js.map +1 -0
  159. package/dist/tools/research/index.d.ts +7 -0
  160. package/dist/tools/research/index.d.ts.map +1 -0
  161. package/dist/tools/research/index.js +7 -0
  162. package/dist/tools/research/index.js.map +1 -0
  163. package/dist/tools/research/researchTools.d.ts +16 -0
  164. package/dist/tools/research/researchTools.d.ts.map +1 -0
  165. package/dist/tools/research/researchTools.js +41 -0
  166. package/dist/tools/research/researchTools.js.map +1 -0
  167. package/dist/tools/task/index.d.ts +8 -0
  168. package/dist/tools/task/index.d.ts.map +1 -0
  169. package/dist/tools/task/index.js +8 -0
  170. package/dist/tools/task/index.js.map +1 -0
  171. package/dist/tools/task/taskTools.d.ts +32 -0
  172. package/dist/tools/task/taskTools.d.ts.map +1 -0
  173. package/dist/tools/task/taskTools.js +542 -0
  174. package/dist/tools/task/taskTools.js.map +1 -0
  175. package/dist/tools/thought/index.d.ts +7 -0
  176. package/dist/tools/thought/index.d.ts.map +1 -0
  177. package/dist/tools/thought/index.js +7 -0
  178. package/dist/tools/thought/index.js.map +1 -0
  179. package/dist/tools/thought/thoughtTools.d.ts +16 -0
  180. package/dist/tools/thought/thoughtTools.d.ts.map +1 -0
  181. package/dist/tools/thought/thoughtTools.js +47 -0
  182. package/dist/tools/thought/thoughtTools.js.map +1 -0
  183. package/docs/API.md +32 -0
  184. package/docs/ARCHITECTURE.md +44 -0
  185. package/docs/COMPATIBILITY_REPORT.md +26 -0
  186. package/docs/PERFORMANCE.md +66 -0
  187. package/package.json +77 -0
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Thought Tools Implementation
3
+ *
4
+ * Implements MCP tools for structured thinking and reasoning processes.
5
+ *
6
+ * Tools:
7
+ * - process_thought: Record and structure reasoning steps
8
+ */
9
+ import { zodToJsonSchema } from 'zod-to-json-schema';
10
+ import { ProcessThoughtParamsSchema, } from '../../data/schemas.js';
11
+ import { ProcessThoughtPromptBuilder, } from '../../prompts/thoughtPromptBuilder.js';
12
+ /**
13
+ * Register all thought tools with the MCP server
14
+ *
15
+ * @param server - MCP server instance
16
+ */
17
+ export function registerThoughtTools(server) {
18
+ const container = server.getContainer();
19
+ registerProcessThought(server, container);
20
+ }
21
+ /**
22
+ * Register process_thought tool
23
+ */
24
+ function registerProcessThought(server, container) {
25
+ server.registerTool({
26
+ name: 'process_thought',
27
+ description: 'Record a structured thought step in a reasoning process with stage tracking.',
28
+ inputSchema: zodToJsonSchema(ProcessThoughtParamsSchema, { $refStrategy: 'none' }),
29
+ execute: async (args) => {
30
+ const params = ProcessThoughtParamsSchema.parse(args);
31
+ const { logger } = container;
32
+ logger.info({
33
+ thoughtNumber: params.thoughtNumber,
34
+ totalThoughts: params.totalThoughts,
35
+ stage: params.stage,
36
+ }, 'Processing thought');
37
+ const builder = new ProcessThoughtPromptBuilder();
38
+ const result = await builder.build(params.thought, params.thoughtNumber, params.totalThoughts, params.stage, params.nextThoughtNeeded, params.tags ?? undefined, params.axiomsUsed ?? undefined, params.assumptionsChallenged ?? undefined);
39
+ logger.info({
40
+ thoughtNumber: params.thoughtNumber,
41
+ nextNeeded: params.nextThoughtNeeded,
42
+ }, 'Thought processed');
43
+ return result;
44
+ },
45
+ });
46
+ }
47
+ //# sourceMappingURL=thoughtTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thoughtTools.js","sourceRoot":"","sources":["../../../src/tools/thought/thoughtTools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EACL,0BAA0B,GAE3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,2BAA2B,GAC5B,MAAM,uCAAuC,CAAC;AAE/C;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAExC,sBAAsB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,MAAiB,EAAE,SAA2B;IAC5E,MAAM,CAAC,YAAY,CAAC;QAClB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,8EAA8E;QAC3F,WAAW,EAAE,eAAe,CAAC,0BAA0B,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAIhF;QACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAyB,CAAC;YAC9E,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YAE7B,MAAM,CAAC,IAAI,CAAC;gBACV,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,EAAE,oBAAoB,CAAC,CAAC;YAEzB,MAAM,OAAO,GAAG,IAAI,2BAA2B,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAChC,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,IAAI,IAAI,SAAS,EACxB,MAAM,CAAC,UAAU,IAAI,SAAS,EAC9B,MAAM,CAAC,qBAAqB,IAAI,SAAS,CAC1C,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC;gBACV,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,UAAU,EAAE,MAAM,CAAC,iBAAiB;aACrC,EAAE,mBAAmB,CAAC,CAAC;YAExB,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
package/docs/API.md ADDED
@@ -0,0 +1,32 @@
1
+ # API Reference
2
+
3
+ TaskFlow MCP exposes tools over MCP. This document summarizes the tool set at a high level.
4
+
5
+ ## Task Planning
6
+
7
+ - `plan_task`: turn a goal into a structured plan
8
+ - `split_tasks`: split a plan into discrete tasks
9
+ - `analyze_task`: capture analysis state for a task
10
+ - `reflect_task`: record a reflection on a task
11
+
12
+ ## Task Management
13
+
14
+ - `list_tasks`: list tasks by status
15
+ - `get_task_detail`: detailed view of a task
16
+ - `query_task`: search tasks
17
+ - `create_task`: create a new task
18
+ - `update_task`: update fields/status
19
+ - `delete_task`: remove a task
20
+ - `clear_all_tasks`: remove all tasks
21
+
22
+ ## Workflow
23
+
24
+ - `execute_task`: mark a task in progress and capture execution notes
25
+ - `verify_task`: score and mark a task complete
26
+
27
+ ## Research and Project
28
+
29
+ - `research_mode`: guided research with state tracking
30
+ - `process_thought`: record a reasoning step
31
+ - `init_project_rules`: create default project rules
32
+ - `get_server_info`: server status and counts
@@ -0,0 +1,44 @@
1
+ # Architecture
2
+
3
+ TaskFlow MCP is a local MCP server with a small, layered design.
4
+
5
+ ```mermaid
6
+ flowchart TD
7
+ A[MCP Client] -->|STDIO JSON-RPC| B[MCP Server]
8
+ B --> C[Tools Layer]
9
+ C --> D[Data Layer]
10
+ C --> E[Prompt Templates]
11
+ ```
12
+
13
+ ## Layers
14
+
15
+ 1. **Server**: MCP protocol handling and tool registration
16
+ 2. **Tools**: business logic for task planning, workflow, and research
17
+ 3. **Data**: task persistence and queries
18
+ 4. **Prompts**: templates used by planning and research tools
19
+
20
+ ## Data Model
21
+
22
+ Tasks are stored in a JSON document under the configured `DATA_DIR`. The schema is validated at runtime and includes fields for status, timestamps, dependencies, notes, and summaries.
23
+
24
+ ```mermaid
25
+ classDiagram
26
+ class TaskDocument {
27
+ string version
28
+ TaskItem[] tasks
29
+ }
30
+ class TaskItem {
31
+ string id
32
+ string name
33
+ string description
34
+ string status
35
+ string createdAt
36
+ string updatedAt
37
+ string completedAt
38
+ }
39
+ TaskDocument "1" --> "*" TaskItem
40
+ ```
41
+
42
+ ## Transport
43
+
44
+ The server uses STDIO transport. Clients call `tools/list` to discover tools and `tools/call` to execute them.
@@ -0,0 +1,26 @@
1
+ # Compatibility Report
2
+
3
+ This report summarizes final verification for TaskFlow MCP.
4
+
5
+ ## Summary
6
+
7
+ - ✅ MCP JSON-RPC flow verified via integration tests
8
+ - ✅ All MCP tools list and execute correctly
9
+ - ✅ Changesets release workflow configured
10
+ - ✅ Package builds and runs from `dist`
11
+ - ✅ Performance benchmarks and tests documented
12
+
13
+ ## Evidence
14
+
15
+ - Protocol and workflow coverage: `tests/integration/mcpProtocol.test.ts`
16
+ - Performance coverage: `tests/integration/performance.test.ts`
17
+ - Release workflow: `.github/workflows/release-workflow.yml`
18
+ - Changesets config: `.changeset/config.json`
19
+ - Build output: `dist/index.js`
20
+
21
+ ## Latest Verification (2026-02-04)
22
+
23
+ - `pnpm test` passed (27 test files, 593 tests).
24
+ - `pnpm build` succeeded and templates copied to `dist/prompts/templates`.
25
+
26
+ ## Notes
@@ -0,0 +1,66 @@
1
+ # Performance Guide
2
+
3
+ This document describes how to measure TaskFlow MCP performance, expected baselines, and how to interpret results. Performance will vary by machine, disk, and OS. Use these numbers as target SLOs, not absolute guarantees.
4
+
5
+ ## What We Measure
6
+
7
+ - Task CRUD latency
8
+ - Search performance on 1,000+ tasks
9
+ - Template rendering speed
10
+ - JSON parse/serialize time
11
+ - Sustained load behavior
12
+ - Memory growth under repeated operations
13
+
14
+ ## Benchmarking
15
+
16
+ Run the benchmark script after building:
17
+
18
+ ```bash
19
+ pnpm build
20
+ pnpm run benchmark
21
+ ```
22
+
23
+ The script creates a temporary dataset and prints timings for task creation, list operations, search, planning, and JSON parse/serialize.
24
+
25
+ ## Integration Performance Tests
26
+
27
+ The integration test suite includes performance checks:
28
+
29
+ ```bash
30
+ pnpm test tests/integration/performance.test.ts
31
+ ```
32
+
33
+ These tests validate latency and sustained load characteristics against the targets below.
34
+
35
+ ## Profiling
36
+
37
+ For deeper profiling, run Node with built-in profiling:
38
+
39
+ ```bash
40
+ node --prof dist/index.js
41
+ ```
42
+
43
+ You can also profile the benchmark script:
44
+
45
+ ```bash
46
+ node --prof benchmarks/run-benchmarks.mjs
47
+ ```
48
+
49
+ The generated `isolate-*.log` can be inspected with `node --prof-process`.
50
+
51
+ ## Target SLOs
52
+
53
+ These are the performance objectives for typical developer machines:
54
+
55
+ - Task operations: < 50ms for 1,000 tasks
56
+ - Search: < 100ms for 1,000 tasks
57
+ - Template rendering: < 10ms
58
+ - JSON parse/serialize: < 20ms for 1,000 tasks
59
+ - Memory: < 100MB during steady load
60
+ - Sustained load: < 100ms average list time on 500 tasks
61
+
62
+ ## Notes
63
+
64
+ - Cold runs are slower due to disk caches and module initialization.
65
+ - Disk speed impacts CRUD and list performance the most.
66
+ - Use the benchmark output to compare improvements across releases.
package/package.json ADDED
@@ -0,0 +1,77 @@
1
+ {
2
+ "name": "mcp-taskflow",
3
+ "version": "0.1.0",
4
+ "description": "MCP server for workflow orchestration, planning, and structured development",
5
+ "type": "module",
6
+ "engines": {
7
+ "node": ">=18.0.0"
8
+ },
9
+ "main": "dist/index.js",
10
+ "bin": {
11
+ "mcp-taskflow": "./dist/index.js"
12
+ },
13
+ "keywords": [
14
+ "mcp",
15
+ "model-context-protocol",
16
+ "task-management",
17
+ "research",
18
+ "ai-assistant"
19
+ ],
20
+ "author": "Caleb German",
21
+ "license": "MIT",
22
+ "dependencies": {
23
+ "@modelcontextprotocol/sdk": "^1.26.0",
24
+ "dotenv": "^16.3.1",
25
+ "pino": "^8.21.0",
26
+ "pino-pretty": "^13.1.3",
27
+ "zod": "^3.22.4",
28
+ "zod-to-json-schema": "^3.22.4"
29
+ },
30
+ "devDependencies": {
31
+ "@jazzer.js/core": "^2.1.0",
32
+ "@types/node": "^20.19.30",
33
+ "@typescript-eslint/eslint-plugin": "^8.53.0",
34
+ "@typescript-eslint/parser": "^8.53.0",
35
+ "@vitest/coverage-v8": "^4.0.17",
36
+ "eslint": "^9.39.2",
37
+ "eslint-config-prettier": "^10.1.8",
38
+ "eslint-plugin-security": "^3.0.1",
39
+ "prettier": "^3.8.0",
40
+ "tsx": "^4.7.0",
41
+ "typescript": "^5.3.3",
42
+ "vitest": "^4.0.17",
43
+ "@changesets/cli": "^2.27.11",
44
+ "rimraf": "^6.0.1"
45
+ },
46
+ "files": [
47
+ "dist",
48
+ "README.md",
49
+ "LICENSE.md",
50
+ "CHANGELOG.md",
51
+ "docs"
52
+ ],
53
+ "publishConfig": {
54
+ "access": "public"
55
+ },
56
+ "scripts": {
57
+ "build": "pnpm run clean && tsc",
58
+ "postbuild": "node scripts/copy-templates.mjs",
59
+ "dev": "tsx src/index.ts",
60
+ "test": "vitest run",
61
+ "test:watch": "vitest",
62
+ "test:coverage": "vitest run --coverage",
63
+ "audit": "pnpm audit --audit-level=moderate",
64
+ "type-check": "tsc --noEmit",
65
+ "lint": "eslint src/**/*.ts",
66
+ "lint:fix": "eslint src/**/*.ts --fix",
67
+ "format": "prettier --write \"src/**/*.ts\"",
68
+ "format:check": "prettier --check \"src/**/*.ts\"",
69
+ "start": "node dist/index.js",
70
+ "benchmark": "node benchmarks/run-benchmarks.mjs",
71
+ "fuzz:pathResolver": "jazzer tests/security/fuzz/pathResolver.fuzz.mjs",
72
+ "clean": "pnpm rimraf dist",
73
+ "changeset": "changeset",
74
+ "changeset:version": "changeset version",
75
+ "check": "changeset status"
76
+ }
77
+ }