@develosaur/mcp 1.0.6 → 1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"ApiKeyAuth.d.ts","sourceRoot":"","sources":["../../src/auth/ApiKeyAuth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAShE;;GAEG;AACH,wBAAgB,cAAc,IAAI,gBAAgB,CAmDjD;AAuBD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC,CAgCrB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAY7E;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC;IAC5C,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC;CAC1B,CAAC,CAMD"}
1
+ {"version":3,"file":"ApiKeyAuth.d.ts","sourceRoot":"","sources":["../../src/auth/ApiKeyAuth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAShE;;GAEG;AACH,wBAAgB,cAAc,IAAI,gBAAgB,CAmDjD;AAuBD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC,CAsCrB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAY7E;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC;IAC5C,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC;CAC1B,CAAC,CAMD"}
@@ -90,12 +90,15 @@ export async function exchangeKeyForJWT(apiKey) {
90
90
  throw new Error(`Authentication failed: ${msg}`);
91
91
  }
92
92
  const data = await response.json();
93
+ // Extract user_id (sub claim) from JWT payload
94
+ const jwtPayload = JSON.parse(Buffer.from(data.access_token.split('.')[1], 'base64').toString());
93
95
  return {
94
96
  accessToken: data.access_token,
95
97
  expiresIn: data.expires_in,
96
98
  expiresAt: Date.now() + data.expires_in * 1000,
97
99
  projectId: data.project_id,
98
100
  projectName: data.project_name,
101
+ userId: jwtPayload.sub,
99
102
  };
100
103
  }
101
104
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ApiKeyAuth.js","sourceRoot":"","sources":["../../src/auth/ApiKeyAuth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ApiKeyAuth.js","sourceRoot":"","sources":["../../src/auth/ApiKeyAuth.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,6 +2,13 @@
2
2
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
3
  import { authenticate } from './auth/ApiKeyAuth.js';
4
4
  import { createMcpServer } from './server.js';
5
+ // Route `npx @develosaur/mcp init` to the setup script
6
+ if (process.argv[2] === 'init') {
7
+ import('./init.js');
8
+ }
9
+ else {
10
+ main();
11
+ }
5
12
  async function main() {
6
13
  try {
7
14
  // 1. Discover .develosaur.json and authenticate
@@ -19,5 +26,4 @@ async function main() {
19
26
  process.exit(1);
20
27
  }
21
28
  }
22
- main();
23
29
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,gDAAgD;QAChD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;QAExD,OAAO,CAAC,KAAK,CACX,0CAA0C,IAAI,CAAC,WAAW,MAAM,IAAI,CAAC,SAAS,GAAG,CAClF,CAAC;QAEF,sCAAsC;QACtC,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEvD,2BAA2B;QAC3B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhC,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,uDAAuD;AACvD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;IAC/B,MAAM,CAAC,WAAW,CAAC,CAAC;AACtB,CAAC;KAAM,CAAC;IACN,IAAI,EAAE,CAAC;AACT,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,gDAAgD;QAChD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;QAExD,OAAO,CAAC,KAAK,CACX,0CAA0C,IAAI,CAAC,WAAW,MAAM,IAAI,CAAC,SAAS,GAAG,CAClF,CAAC;QAEF,sCAAsC;QACtC,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEvD,2BAA2B;QAC3B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhC,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
package/dist/init.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * `npx @develosaur/mcp init`
4
+ *
5
+ * Interactive setup command that:
6
+ * 1. Checks for .develosaur.json
7
+ * 2. Creates/updates .mcp.json
8
+ * 3. Ensures .gitignore includes .develosaur.json
9
+ * 4. Copies Claude skill commands to .claude/commands/
10
+ * 5. Tests the connection
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":";AAEA;;;;;;;;;GASG"}
package/dist/init.js ADDED
@@ -0,0 +1,303 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * `npx @develosaur/mcp init`
4
+ *
5
+ * Interactive setup command that:
6
+ * 1. Checks for .develosaur.json
7
+ * 2. Creates/updates .mcp.json
8
+ * 3. Ensures .gitignore includes .develosaur.json
9
+ * 4. Copies Claude skill commands to .claude/commands/
10
+ * 5. Tests the connection
11
+ */
12
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
13
+ import { join } from 'node:path';
14
+ const cwd = process.cwd();
15
+ const BLUE = '\x1b[34m';
16
+ const GREEN = '\x1b[32m';
17
+ const YELLOW = '\x1b[33m';
18
+ const RED = '\x1b[31m';
19
+ const DIM = '\x1b[2m';
20
+ const BOLD = '\x1b[1m';
21
+ const RESET = '\x1b[0m';
22
+ function log(msg) { console.log(msg); }
23
+ function ok(msg) { console.log(`${GREEN} OK${RESET} ${msg}`); }
24
+ function warn(msg) { console.log(`${YELLOW}WARN${RESET} ${msg}`); }
25
+ function fail(msg) { console.log(`${RED}FAIL${RESET} ${msg}`); }
26
+ function step(n, msg) { console.log(`\n${BLUE}[${n}/5]${RESET} ${BOLD}${msg}${RESET}`); }
27
+ // ── Step 1: Check .develosaur.json ──
28
+ function checkConfig() {
29
+ step(1, 'Checking for .develosaur.json');
30
+ const configPath = join(cwd, '.develosaur.json');
31
+ if (existsSync(configPath)) {
32
+ try {
33
+ const config = JSON.parse(readFileSync(configPath, 'utf-8'));
34
+ const name = config.project_name || config.projectName || '(unknown)';
35
+ ok(`.develosaur.json found — project: ${BOLD}${name}${RESET}`);
36
+ return true;
37
+ }
38
+ catch {
39
+ warn('.develosaur.json exists but is invalid JSON');
40
+ return false;
41
+ }
42
+ }
43
+ fail('.develosaur.json not found');
44
+ log('');
45
+ log(' To connect this workspace to your Develosaur project:');
46
+ log(` ${DIM}1.${RESET} Open ${BOLD}develosaur.com${RESET} and go to your project list`);
47
+ log(` ${DIM}2.${RESET} Click the ${BOLD}MCP download icon${RESET} on the project card (Pro required)`);
48
+ log(` ${DIM}3.${RESET} Place the downloaded .develosaur.json in: ${DIM}${cwd}${RESET}`);
49
+ log(` ${DIM}4.${RESET} Run this command again: ${BOLD}npx @develosaur/mcp init${RESET}`);
50
+ return false;
51
+ }
52
+ // ── Step 2: Create/update .mcp.json ──
53
+ function setupMcpJson() {
54
+ step(2, 'Configuring .mcp.json');
55
+ const mcpPath = join(cwd, '.mcp.json');
56
+ const entry = {
57
+ command: 'npx',
58
+ args: ['-y', '@develosaur/mcp@latest'],
59
+ };
60
+ if (existsSync(mcpPath)) {
61
+ try {
62
+ const existing = JSON.parse(readFileSync(mcpPath, 'utf-8'));
63
+ if (existing.mcpServers?.develosaur) {
64
+ ok('.mcp.json already has develosaur entry');
65
+ return;
66
+ }
67
+ existing.mcpServers = existing.mcpServers || {};
68
+ existing.mcpServers.develosaur = entry;
69
+ writeFileSync(mcpPath, JSON.stringify(existing, null, 2) + '\n');
70
+ ok('Added develosaur to existing .mcp.json');
71
+ }
72
+ catch {
73
+ warn('.mcp.json exists but is invalid — creating fresh');
74
+ writeFileSync(mcpPath, JSON.stringify({ mcpServers: { develosaur: entry } }, null, 2) + '\n');
75
+ ok('Created .mcp.json');
76
+ }
77
+ }
78
+ else {
79
+ writeFileSync(mcpPath, JSON.stringify({ mcpServers: { develosaur: entry } }, null, 2) + '\n');
80
+ ok('Created .mcp.json');
81
+ }
82
+ }
83
+ // ── Step 3: Update .gitignore ──
84
+ function setupGitignore() {
85
+ step(3, 'Checking .gitignore');
86
+ const gitignorePath = join(cwd, '.gitignore');
87
+ if (existsSync(gitignorePath)) {
88
+ const content = readFileSync(gitignorePath, 'utf-8');
89
+ if (content.includes('.develosaur.json')) {
90
+ ok('.gitignore already includes .develosaur.json');
91
+ return;
92
+ }
93
+ writeFileSync(gitignorePath, content.trimEnd() + '\n\n# Develosaur MCP API key\n.develosaur.json\n');
94
+ ok('Added .develosaur.json to .gitignore');
95
+ }
96
+ else {
97
+ writeFileSync(gitignorePath, '# Develosaur MCP API key\n.develosaur.json\n');
98
+ ok('Created .gitignore with .develosaur.json');
99
+ }
100
+ }
101
+ // ── Step 4: Install Claude skill commands ──
102
+ function installSkillCommands() {
103
+ step(4, 'Installing Claude skill commands');
104
+ const commandsDir = join(cwd, '.claude', 'commands');
105
+ mkdirSync(commandsDir, { recursive: true });
106
+ const commands = {
107
+ 'develosaur-plan.md': `Plan a new feature in the Develosaur project board.
108
+
109
+ ## Instructions
110
+
111
+ You are connected to a Develosaur project via MCP. The user wants to plan a feature.
112
+
113
+ 1. **Read the current tree** — call \`get_tree\` to see existing project structure
114
+ 2. **List available tags** — call \`list_tags\` to see what tags exist
115
+ 3. **Ask the user** what feature they want to plan (if not provided as argument: $ARGUMENTS)
116
+ 4. **Find the right branch** — use \`find_nodes\` to locate where this feature should live
117
+ 5. **Build a DEEP hierarchical plan** using \`batch_create_nodes\`:
118
+ - Level 0: Feature specification node (with markdown description)
119
+ - Level 1: Major phases or work areas
120
+ - Level 2: Concrete tasks within each phase
121
+ - Level 3+: Subtasks, implementation steps, edge cases
122
+ - Use \`parent_temp_id\` chaining for deep nesting
123
+ - A flat list is NOT acceptable — think like an architect
124
+ 6. **Set priority scores** — \`v_score\` (business value 0-10) and \`e_score\` (effort 0-10) on every task
125
+ 7. **Tag nodes** with appropriate project tags. If a needed tag doesn't exist, create it with \`create_tag\`
126
+ 8. **Set deadlines** on time-sensitive tasks using the \`deadline\` parameter (YYYY-MM-DD)
127
+ 9. **Report the plan** — summarize what you created with node IDs
128
+
129
+ After creating the plan, ask if the user wants you to start implementing it.`,
130
+ 'develosaur-work.md': `Check the Develosaur task board and pick up the next task.
131
+
132
+ ## Instructions
133
+
134
+ You are connected to a Develosaur project via MCP. The user wants you to check the board and start working.
135
+
136
+ 1. **Read the tree** — call \`get_tree\` to see all incomplete tasks
137
+ 2. **Identify priorities** — look for:
138
+ - Tasks tagged "IN-PROGRESS" (resume these first)
139
+ - High \`v_score\` tasks (most valuable)
140
+ - Tasks under active feature branches
141
+ 3. **Pick one task** — choose the most impactful task you can complete
142
+ 4. **Get full details** — call \`get_node\` on your chosen task to read its content and context
143
+ 5. **Update status** — tag it "IN-PROGRESS" using \`update_node\`
144
+ 6. **Do the work** — implement what the task describes in the actual codebase
145
+ 7. **Update the node** — add implementation notes to \`content_markdown\` as you work
146
+ 8. **Mark complete** — use \`complete_node\` when done
147
+ 9. **Check for next** — read the tree again and ask if the user wants you to continue
148
+
149
+ Always keep the project board in sync with reality. If you discover new subtasks during implementation, create them under the appropriate parent with \`create_node\`.
150
+
151
+ If a task is blocked, note the blocker in the content and set \`blocked_by\` with \`update_node\`.`,
152
+ 'develosaur-sync.md': `Sync recent work back to the Develosaur project board.
153
+
154
+ ## Context
155
+ $ARGUMENTS
156
+
157
+ ## Instructions
158
+
159
+ You are connected to a Develosaur project via MCP. The user has done some work and wants to update the project board.
160
+
161
+ 1. **Read the tree** — call \`get_tree\` to see current project state
162
+ 2. **Find related tasks** — use \`find_nodes\` to search for tasks matching the work described above
163
+ 3. **For each related task**:
164
+ - Call \`get_node\` to see its full content
165
+ - Use \`update_node\` to add implementation notes to \`content_markdown\`
166
+ - If the task is complete, use \`complete_node\` to mark it done
167
+ - If partially done, update the content with progress notes
168
+ 4. **Create new tasks** — if the work revealed follow-ups or new tasks, create them with \`create_node\` under the appropriate branch
169
+ 5. **Update tags** — move tasks from "IN-PROGRESS" to completed, tag new discoveries appropriately
170
+ 6. **Report** — summarize what you updated on the board
171
+
172
+ Be precise — only update nodes that directly relate to the work described. Don't over-update.`,
173
+ 'develosaur-review.md': `Review the Develosaur project status and provide insights.
174
+
175
+ ## Instructions
176
+
177
+ You are connected to a Develosaur project via MCP. The user wants a project status review.
178
+
179
+ 1. **Get project stats** — call \`get_project\` for high-level numbers
180
+ 2. **Read full tree** — call \`get_tree\` with \`include_completed: true\` and \`max_depth: 2\` for the big picture
181
+ 3. **Read active tree** — call \`get_tree\` with \`include_completed: false\` for current work
182
+ 4. **List tags** — call \`list_tags\` to understand categorization
183
+ 5. **Analyze and report**:
184
+
185
+ ### Project Health
186
+ - Overall completion percentage
187
+ - Number of active vs completed tasks
188
+ - Are there orphaned/rogue nodes that need organization?
189
+
190
+ ### In Progress
191
+ - What is actively being worked on?
192
+ - Are any tasks stale (created long ago, never updated)?
193
+
194
+ ### Blocked or At Risk
195
+ - Tasks with \`blocked_by\` dependencies
196
+ - Tasks with high heat that haven't been addressed
197
+
198
+ ### Recommended Next Steps
199
+ - What should be prioritized next and why?
200
+ - Are there tasks that should be broken down further?
201
+ - Any structural improvements (reorganize branches, merge related tasks)?
202
+
203
+ ### Cleanup Suggestions
204
+ - Nodes to merge or remove
205
+ - Tags to create or retire
206
+ - Missing deadlines or priority scores`,
207
+ 'develosaur-setup.md': `Set up the Develosaur MCP integration in this project.
208
+
209
+ ## Instructions
210
+
211
+ Help the user set up the Develosaur MCP connection so Claude can manage their project board.
212
+
213
+ ### Step 1: Check for existing config
214
+ Look for a \`.develosaur.json\` file in the current directory or parent directories (up to 5 levels). If found, report its project name and test the connection by calling \`connection_status\`.
215
+
216
+ ### Step 2: If no config found
217
+ Tell the user:
218
+
219
+ > To connect this workspace to your Develosaur project:
220
+ >
221
+ > 1. Open **develosaur.com** and go to your project list
222
+ > 2. Click the **MCP download icon** on the project card (Pro subscription required)
223
+ > 3. Place the downloaded \`.develosaur.json\` file in this project's root directory
224
+ > 4. **Important**: Add \`.develosaur.json\` to your \`.gitignore\` — it contains an API key
225
+
226
+ ### Step 3: Verify .mcp.json
227
+ Check if \`.mcp.json\` exists in the project root with the develosaur entry.
228
+
229
+ ### Step 4: Test connection
230
+ Call \`connection_status\` to verify everything works. Report the project name, node count, and connection status.
231
+
232
+ ### Step 5: Show available commands
233
+ Tell the user about the available slash commands:
234
+ - \`/develosaur-plan\` — Plan a new feature with hierarchical task decomposition
235
+ - \`/develosaur-work\` — Check the task board and pick up the next task
236
+ - \`/develosaur-sync\` — Update the board after completing work
237
+ - \`/develosaur-review\` — Get a project status review`,
238
+ };
239
+ let installed = 0;
240
+ for (const [filename, content] of Object.entries(commands)) {
241
+ const filePath = join(commandsDir, filename);
242
+ if (existsSync(filePath)) {
243
+ // Overwrite to ensure latest version
244
+ }
245
+ writeFileSync(filePath, content + '\n');
246
+ installed++;
247
+ }
248
+ ok(`Installed ${installed} slash commands to .claude/commands/`);
249
+ log(` ${DIM}/develosaur-plan${RESET} — Plan a new feature`);
250
+ log(` ${DIM}/develosaur-work${RESET} — Pick up the next task`);
251
+ log(` ${DIM}/develosaur-sync${RESET} — Sync work to the board`);
252
+ log(` ${DIM}/develosaur-review${RESET} — Project status review`);
253
+ log(` ${DIM}/develosaur-setup${RESET} — Connection setup help`);
254
+ }
255
+ // ── Step 5: Test connection ──
256
+ async function testConnection(hasConfig) {
257
+ step(5, 'Testing connection');
258
+ if (!hasConfig) {
259
+ warn('Skipped — no .develosaur.json found (see step 1)');
260
+ return;
261
+ }
262
+ try {
263
+ const { exchangeKeyForJWT } = await import('./auth/ApiKeyAuth.js');
264
+ const configPath = join(cwd, '.develosaur.json');
265
+ const config = JSON.parse(readFileSync(configPath, 'utf-8'));
266
+ const apiKey = config.api_key || config.apiKey;
267
+ if (!apiKey) {
268
+ fail('No api_key found in .develosaur.json');
269
+ return;
270
+ }
271
+ const auth = await exchangeKeyForJWT(apiKey);
272
+ ok(`Connected to "${BOLD}${auth.projectName}${RESET}" (${auth.projectId.slice(0, 8)}...)`);
273
+ log(` ${DIM}JWT valid until ${new Date(auth.expiresAt).toISOString()}${RESET}`);
274
+ }
275
+ catch (error) {
276
+ fail(`Connection failed: ${error.message}`);
277
+ log(` ${DIM}Make sure you have an active internet connection and a valid Pro subscription.${RESET}`);
278
+ }
279
+ }
280
+ // ── Main ──
281
+ async function main() {
282
+ log('');
283
+ log(`${BOLD}Develosaur MCP Setup${RESET}`);
284
+ log(`${DIM}Configure Claude to manage your Develosaur project board${RESET}`);
285
+ const hasConfig = checkConfig();
286
+ setupMcpJson();
287
+ setupGitignore();
288
+ installSkillCommands();
289
+ await testConnection(hasConfig);
290
+ log('');
291
+ if (hasConfig) {
292
+ log(`${GREEN}${BOLD}Setup complete!${RESET} Start a Claude Code session and try: ${BOLD}/develosaur-work${RESET}`);
293
+ }
294
+ else {
295
+ log(`${YELLOW}${BOLD}Almost done!${RESET} Download .develosaur.json from develosaur.com, then run ${BOLD}npx @develosaur/mcp init${RESET} again.`);
296
+ }
297
+ log('');
298
+ }
299
+ main().catch((err) => {
300
+ console.error(`${RED}Fatal:${RESET} ${err.message}`);
301
+ process.exit(1);
302
+ });
303
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":";AAEA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAE1B,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,KAAK,GAAG,UAAU,CAAC;AACzB,MAAM,MAAM,GAAG,UAAU,CAAC;AAC1B,MAAM,GAAG,GAAG,UAAU,CAAC;AACvB,MAAM,GAAG,GAAG,SAAS,CAAC;AACtB,MAAM,IAAI,GAAG,SAAS,CAAC;AACvB,MAAM,KAAK,GAAG,SAAS,CAAC;AAExB,SAAS,GAAG,CAAC,GAAW,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/C,SAAS,EAAE,CAAC,GAAW,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,OAAO,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACxE,SAAS,IAAI,CAAC,GAAW,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,OAAO,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3E,SAAS,IAAI,CAAC,GAAW,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,OAAO,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACxE,SAAS,IAAI,CAAC,CAAS,EAAE,GAAW,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAEzG,uCAAuC;AAEvC,SAAS,WAAW;IAClB,IAAI,CAAC,CAAC,EAAE,+BAA+B,CAAC,CAAC;IAEzC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IACjD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,WAAW,IAAI,WAAW,CAAC;YACtE,EAAE,CAAC,qCAAqC,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,6CAA6C,CAAC,CAAC;YACpD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACnC,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,yDAAyD,CAAC,CAAC;IAC/D,GAAG,CAAC,KAAK,GAAG,KAAK,KAAK,SAAS,IAAI,iBAAiB,KAAK,8BAA8B,CAAC,CAAC;IACzF,GAAG,CAAC,KAAK,GAAG,KAAK,KAAK,cAAc,IAAI,oBAAoB,KAAK,qCAAqC,CAAC,CAAC;IACxG,GAAG,CAAC,KAAK,GAAG,KAAK,KAAK,8CAA8C,GAAG,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;IACzF,GAAG,CAAC,KAAK,GAAG,KAAK,KAAK,4BAA4B,IAAI,2BAA2B,KAAK,EAAE,CAAC,CAAC;IAC1F,OAAO,KAAK,CAAC;AACf,CAAC;AAED,wCAAwC;AAExC,SAAS,YAAY;IACnB,IAAI,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;IAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG;QACZ,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,wBAAwB,CAAC;KACvC,CAAC;IAEF,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5D,IAAI,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;gBACpC,EAAE,CAAC,wCAAwC,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YACD,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;YAChD,QAAQ,CAAC,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC;YACvC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACjE,EAAE,CAAC,wCAAwC,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,kDAAkD,CAAC,CAAC;YACzD,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9F,EAAE,CAAC,mBAAmB,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9F,EAAE,CAAC,mBAAmB,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,kCAAkC;AAElC,SAAS,cAAc;IACrB,IAAI,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAE/B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAE9C,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACrD,IAAI,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACzC,EAAE,CAAC,8CAA8C,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QACD,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,kDAAkD,CAAC,CAAC;QACrG,EAAE,CAAC,sCAAsC,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,aAAa,EAAE,8CAA8C,CAAC,CAAC;QAC7E,EAAE,CAAC,0CAA0C,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,8CAA8C;AAE9C,SAAS,oBAAoB;IAC3B,IAAI,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;IAE5C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACrD,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,MAAM,QAAQ,GAA2B;QACvC,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;6EAsBmD;QAEzE,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;mGAqByE;QAE/F,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;8FAoBoE;QAE1F,sBAAsB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAiCc;QAEtC,qBAAqB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uDA8B4B;KACpD,CAAC;IAEF,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC7C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,qCAAqC;QACvC,CAAC;QACD,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;QACxC,SAAS,EAAE,CAAC;IACd,CAAC;IAED,EAAE,CAAC,aAAa,SAAS,sCAAsC,CAAC,CAAC;IACjE,GAAG,CAAC,KAAK,GAAG,mBAAmB,KAAK,yBAAyB,CAAC,CAAC;IAC/D,GAAG,CAAC,KAAK,GAAG,mBAAmB,KAAK,4BAA4B,CAAC,CAAC;IAClE,GAAG,CAAC,KAAK,GAAG,mBAAmB,KAAK,6BAA6B,CAAC,CAAC;IACnE,GAAG,CAAC,KAAK,GAAG,qBAAqB,KAAK,0BAA0B,CAAC,CAAC;IAClE,GAAG,CAAC,KAAK,GAAG,oBAAoB,KAAK,2BAA2B,CAAC,CAAC;AACpE,CAAC;AAED,gCAAgC;AAEhC,KAAK,UAAU,cAAc,CAAC,SAAkB;IAC9C,IAAI,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAE9B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC;QAE/C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,sCAAsC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC7C,EAAE,CAAC,iBAAiB,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3F,GAAG,CAAC,KAAK,GAAG,mBAAmB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IACnF,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,CAAC,sBAAsB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5C,GAAG,CAAC,KAAK,GAAG,iFAAiF,KAAK,EAAE,CAAC,CAAC;IACxG,CAAC;AACH,CAAC;AAED,aAAa;AAEb,KAAK,UAAU,IAAI;IACjB,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,GAAG,IAAI,uBAAuB,KAAK,EAAE,CAAC,CAAC;IAC3C,GAAG,CAAC,GAAG,GAAG,2DAA2D,KAAK,EAAE,CAAC,CAAC;IAE9E,MAAM,SAAS,GAAG,WAAW,EAAE,CAAC;IAChC,YAAY,EAAE,CAAC;IACf,cAAc,EAAE,CAAC;IACjB,oBAAoB,EAAE,CAAC;IACvB,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;IAEhC,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,IAAI,SAAS,EAAE,CAAC;QACd,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,kBAAkB,KAAK,yCAAyC,IAAI,mBAAmB,KAAK,EAAE,CAAC,CAAC;IACrH,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,eAAe,KAAK,4DAA4D,IAAI,2BAA2B,KAAK,SAAS,CAAC,CAAC;IACrJ,CAAC;IACD,GAAG,CAAC,EAAE,CAAC,CAAC;AACV,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAa/D,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,gBAAgB,GACvB,SAAS,CA0pBX"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAe/D,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,gBAAgB,GACvB,SAAS,CA0uBX"}
package/dist/server.js CHANGED
@@ -6,6 +6,8 @@ import { exchangeKeyForJWT, createAuthenticatedClient } from './auth/ApiKeyAuth.
6
6
  import { createNode, updateNode, completeNode, deleteNode, batchCreateNodes } from './tools/nodes.js';
7
7
  import { createEdge, moveNode } from './tools/edges.js';
8
8
  import { getTree, getNode, findNodes, listTags } from './tools/query.js';
9
+ import { createTag, deleteTag } from './tools/tags.js';
10
+ import { getProjectOverview } from './tools/project.js';
9
11
  import { z } from 'zod';
10
12
  // Refresh 5 minutes before expiry to avoid mid-operation failures
11
13
  const REFRESH_BUFFER_MS = 5 * 60 * 1000;
@@ -104,13 +106,13 @@ export function createMcpServer(supabase, auth, config) {
104
106
  '',
105
107
  '### Node structure:',
106
108
  'Nodes are organized in a DEEP tree hierarchy — not flat lists. Each node can have: title, markdown content, tags, priority scores.',
107
- 'Node types: "tasks" (default), "richtext" (documentation), "deadline" (time-bound), "title" (section header).',
109
+ 'Node types: "tasks" (default — holds data, markdown, priority), "richtext" (documentation), "deadline" (time-bound).',
108
110
  'Use get_tree to see the current structure, find_nodes to search, and create/update/complete nodes to manage work.',
109
111
  '',
110
112
  '### Building hierarchical trees:',
111
113
  'When creating plans, use batch_create_nodes with parent_temp_id chaining to build multi-level trees:',
112
- '- Level 0: Feature spec (type: "title")',
113
- '- Level 1: Phases or work areas (type: "title")',
114
+ '- Level 0: Feature spec (type: "tasks" — the default)',
115
+ '- Level 1: Phases or work areas (type: "tasks")',
114
116
  '- Level 2: Concrete tasks (type: "tasks")',
115
117
  '- Level 3+: Subtasks, steps, edge cases (type: "tasks")',
116
118
  'Chain depth via parent_temp_id: {"temp_id":"phase1", ...} → {"temp_id":"task1", "parent_temp_id":"phase1"} → {"temp_id":"sub1", "parent_temp_id":"task1"}',
@@ -159,11 +161,11 @@ export function createMcpServer(supabase, auth, config) {
159
161
  '',
160
162
  'Follow this workflow:',
161
163
  '1. **Analyze the tree** — understand the existing structure and find where this feature belongs',
162
- '2. **Create a feature spec node** (type: "title") under the appropriate branch with a markdown description of the feature',
164
+ '2. **Create a feature spec node** under the appropriate branch with a markdown description of the feature',
163
165
  '3. **Build a DEEP hierarchical task tree** — do NOT create flat children. Think in phases/areas → tasks → subtasks:',
164
- ' - Level 1 (under spec): Major phases or work areas (type: "title")',
165
- ' - Level 2: Concrete tasks within each phase (type: "tasks")',
166
- ' - Level 3+: Subtasks, implementation steps, or edge cases (type: "tasks")',
166
+ ' - Level 1 (under spec): Major phases or work areas',
167
+ ' - Level 2: Concrete tasks within each phase',
168
+ ' - Level 3+: Subtasks, implementation steps, or edge cases',
167
169
  ' - Example: Feature → "Phase 1: Core" → "Build service layer" → "Add error handling"',
168
170
  '4. **Use batch_create_nodes with parent_temp_id chaining** for deep nesting:',
169
171
  ' - Give each node a temp_id (e.g., "phase1", "task1a", "subtask1a1")',
@@ -331,11 +333,13 @@ export function createMcpServer(supabase, auth, config) {
331
333
  title: z.string().describe('Node title'),
332
334
  content_markdown: z.string().optional().describe('Markdown content body'),
333
335
  parent_id: z.string().optional().describe('Parent node ID. Omit for root-level (rogue) node.'),
334
- type: z.enum(['tasks', 'richtext', 'deadline', 'title']).optional().describe('Node type'),
336
+ type: z.enum(['tasks', 'richtext', 'deadline']).optional().describe('Node type (default: tasks)'),
335
337
  color: z.string().optional().describe("Hex color, e.g. '#4299e1'"),
336
338
  tags: z.array(z.string()).optional().describe('Tag IDs to assign'),
337
339
  v_score: z.number().min(0).max(10).optional().describe('Business value 0-10 (priority base tier)'),
338
340
  e_score: z.number().min(0).max(10).optional().describe('Effort estimate 0-10 (lower = easier)'),
341
+ deadline: z.string().optional().describe('Due date in YYYY-MM-DD format. Injected as [due: YYYY-MM-DD] in content for Calendar View.'),
342
+ blocked_by: z.array(z.string()).optional().describe('Node IDs that block this node (dependency tracking)'),
339
343
  }, async (params) => {
340
344
  rateLimiter.check();
341
345
  const s = await ensureSession();
@@ -348,6 +352,8 @@ export function createMcpServer(supabase, auth, config) {
348
352
  tags: params.tags,
349
353
  vScore: params.v_score,
350
354
  eScore: params.e_score,
355
+ deadline: params.deadline,
356
+ blockedBy: params.blocked_by,
351
357
  });
352
358
  return {
353
359
  content: [{
@@ -365,6 +371,8 @@ export function createMcpServer(supabase, auth, config) {
365
371
  tags: z.array(z.string()).optional().describe('Replace tag IDs'),
366
372
  v_score: z.number().min(0).max(10).optional().describe('New business value'),
367
373
  e_score: z.number().min(0).max(10).optional().describe('New effort estimate'),
374
+ deadline: z.string().optional().describe('Due date YYYY-MM-DD. Injected as [due: YYYY-MM-DD] in content.'),
375
+ blocked_by: z.array(z.string()).optional().describe('Node IDs that block this node'),
368
376
  }, async (params) => {
369
377
  rateLimiter.check();
370
378
  const s = await ensureSession();
@@ -375,6 +383,8 @@ export function createMcpServer(supabase, auth, config) {
375
383
  tags: params.tags,
376
384
  vScore: params.v_score,
377
385
  eScore: params.e_score,
386
+ deadline: params.deadline,
387
+ blockedBy: params.blocked_by,
378
388
  });
379
389
  return {
380
390
  content: [{
@@ -420,11 +430,13 @@ export function createMcpServer(supabase, auth, config) {
420
430
  content_markdown: z.string().optional().describe('Markdown content'),
421
431
  parent_temp_id: z.string().optional().describe('temp_id of another node in this batch to use as parent'),
422
432
  parent_id: z.string().optional().describe('UUID of an existing node to attach under'),
423
- type: z.enum(['tasks', 'richtext', 'deadline', 'title']).optional(),
433
+ type: z.enum(['tasks', 'richtext', 'deadline']).optional(),
424
434
  color: z.string().optional(),
425
435
  tags: z.array(z.string()).optional(),
426
436
  v_score: z.number().min(0).max(10).optional(),
427
437
  e_score: z.number().min(0).max(10).optional(),
438
+ deadline: z.string().optional().describe('Due date YYYY-MM-DD'),
439
+ blocked_by: z.array(z.string()).optional().describe('Node IDs that block this node'),
428
440
  })).describe('Array of nodes to create'),
429
441
  }, async (params) => {
430
442
  rateLimiter.check();
@@ -531,6 +543,52 @@ export function createMcpServer(supabase, auth, config) {
531
543
  }],
532
544
  };
533
545
  });
546
+ // ── Create Tag ──
547
+ server.tool('create_tag', 'Create a new tag in the current project. Returns the tag ID for use in node tagging.', {
548
+ name: z.string().describe('Tag name (must be unique within project)'),
549
+ color: z.string().optional().describe("Hex color, e.g. '#e53e3e'. Defaults to blue."),
550
+ heat_index: z.number().min(-5).max(5).optional().describe('Heat impact -5 to +5. Positive = raises priority over time, negative = lowers. Default 0.'),
551
+ }, async (params) => {
552
+ rateLimiter.check();
553
+ await refreshIfNeeded();
554
+ const tag = await createTag(currentSupabase, currentAuth.projectId, currentAuth.userId, {
555
+ name: params.name,
556
+ color: params.color,
557
+ heatIndex: params.heat_index,
558
+ });
559
+ return {
560
+ content: [{
561
+ type: 'text',
562
+ text: JSON.stringify({ tag_id: tag.id, name: tag.name, color: tag.color }),
563
+ }],
564
+ };
565
+ });
566
+ // ── Delete Tag ──
567
+ server.tool('delete_tag', 'Delete a project tag. Removes the tag from all nodes that have it.', {
568
+ tag_id: z.string().describe('Tag ID to delete'),
569
+ }, async (params) => {
570
+ rateLimiter.check();
571
+ await refreshIfNeeded();
572
+ await deleteTag(currentSupabase, currentAuth.projectId, params.tag_id);
573
+ return {
574
+ content: [{
575
+ type: 'text',
576
+ text: JSON.stringify({ deleted: params.tag_id }),
577
+ }],
578
+ };
579
+ });
580
+ // ── Get Project ──
581
+ server.tool('get_project', 'Get project-level overview: name, node count, edge count, completion stats, tag count.', {}, async () => {
582
+ const s = await ensureSession();
583
+ const tags = await listTags(currentSupabase, currentAuth.projectId);
584
+ const overview = getProjectOverview(s, currentAuth.projectId, currentAuth.projectName, tags.length);
585
+ return {
586
+ content: [{
587
+ type: 'text',
588
+ text: JSON.stringify(overview, null, 2),
589
+ }],
590
+ };
591
+ });
534
592
  return server;
535
593
  }
536
594
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAEtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEpF,QAAQ;AACR,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtG,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,kEAAkE;AAClE,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAExC,MAAM,UAAU,eAAe,CAC7B,QAAwB,EACxB,IAAgB,EAChB,MAAwB;IAExB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,8CAA8C;IAC9C,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,IAAI,eAAe,GAAG,QAAQ,CAAC;IAC/B,IAAI,OAAO,GAA6B,IAAI,CAAC;IAC7C,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAE9C;;OAEG;IACH,KAAK,UAAU,eAAe;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,WAAW,CAAC,SAAS,GAAG,iBAAiB;YAAE,OAAO;QAE5D,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC5E,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACtD,eAAe,GAAG,yBAAyB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAErE,kEAAkE;YAClE,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC;oBAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBACpD,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YAED,OAAO,CAAC,KAAK,CACX,8CAA8C,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,CAC9F,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,wCAAwC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,UAAU,aAAa;QAC1B,MAAM,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,IAAI,iBAAiB,CAAC,eAAe,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;YACxE,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;QAClC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,+DAA+D;IAC/D,gDAAgD;IAChD,+DAA+D;IAE/D,MAAM,CAAC,QAAQ,CACb,kBAAkB,EAClB,+BAA+B,EAC/B;QACE,WAAW,EAAE,+HAA+H;QAC5I,QAAQ,EAAE,YAAY;KACvB,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;QACZ,MAAM,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;QAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;QAE3C,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QAEpE,MAAM,QAAQ,GAAG;YACf,yBAAyB,WAAW,CAAC,WAAW,EAAE;YAClD,eAAe,WAAW,CAAC,SAAS,EAAE;YACtC,UAAU,SAAS,aAAa,SAAS,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,EAAE;YACzG,EAAE;YACF,gCAAgC;YAChC,IAAI;YACJ,EAAE;YACF,mBAAmB;YACnB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW;YACvF,EAAE;YACF,wDAAwD;YACxD,EAAE;YACF,6HAA6H;YAC7H,EAAE;YACF,+BAA+B;YAC/B,gEAAgE;YAChE,+DAA+D;YAC/D,wGAAwG;YACxG,2FAA2F;YAC3F,2EAA2E;YAC3E,EAAE;YACF,oBAAoB;YACpB,0EAA0E;YAC1E,6DAA6D;YAC7D,0EAA0E;YAC1E,EAAE;YACF,4BAA4B;YAC5B,uCAAuC;YACvC,kDAAkD;YAClD,0DAA0D;YAC1D,EAAE;YACF,qBAAqB;YACrB,oIAAoI;YACpI,sHAAsH;YACtH,mHAAmH;YACnH,EAAE;YACF,kCAAkC;YAClC,sGAAsG;YACtG,uDAAuD;YACvD,iDAAiD;YACjD,2CAA2C;YAC3C,yDAAyD;YACzD,2JAA2J;YAC3J,oFAAoF;SACrF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,OAAO;YACL,QAAQ,EAAE,CAAC;oBACT,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,QAAQ,EAAE,YAAY;oBACtB,IAAI,EAAE,QAAQ;iBACf,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,+DAA+D;IAC/D,oDAAoD;IACpD,+DAA+D;IAE/D,MAAM,CAAC,MAAM,CACX,cAAc,EACd,gLAAgL,EAChL;QACE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAChE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;QAC9F,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;KACxH,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QAEpE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa;YACrC,CAAC,CAAC,kCAAkC,MAAM,CAAC,aAAa,WAAW;YACnE,CAAC,CAAC,qFAAqF,CAAC;QAE1F,OAAO;YACL,QAAQ,EAAE,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;4BACJ,qBAAqB,MAAM,CAAC,YAAY,8BAA8B;4BACtE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;4BAC9D,EAAE;4BACF,yBAAyB;4BACzB,IAAI;4BACJ,EAAE;4BACF,mBAAmB;4BACnB,OAAO,IAAI,eAAe;4BAC1B,EAAE;4BACF,iBAAiB;4BACjB,GAAG,UAAU,EAAE;4BACf,EAAE;4BACF,uBAAuB;4BACvB,iGAAiG;4BACjG,2GAA2G;4BAC3G,qHAAqH;4BACrH,uDAAuD;4BACvD,gDAAgD;4BAChD,8DAA8D;4BAC9D,wFAAwF;4BACxF,8EAA8E;4BAC9E,wEAAwE;4BACxE,wFAAwF;4BACxF,0EAA0E;4BAC1E,+GAA+G;4BAC/G,mGAAmG;4BACnG,gFAAgF;4BAChF,EAAE;4BACF,+GAA+G;4BAC/G,4GAA4G;4BAC5G,gEAAgE;4BAChE,EAAE;4BACF,qFAAqF;4BACrF,mFAAmF;4BACnF,qDAAqD;4BACrD,6DAA6D;4BAC7D,2FAA2F;yBAC5F,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;qBAC7B;iBACF,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,MAAM,CACX,YAAY,EACZ,qJAAqJ,EACrJ,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QAEpE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1E,OAAO;YACL,QAAQ,EAAE,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;4BACJ,oBAAoB;4BACpB,IAAI;4BACJ,EAAE;4BACF,mBAAmB;4BACnB,OAAO,IAAI,WAAW;4BACtB,EAAE;4BACF,iBAAiB;4BACjB,qEAAqE;4BACrE,EAAE;4BACF,mEAAmE;4BACnE,kIAAkI;4BAClI,wEAAwE;4BACxE,iGAAiG;4BACjG,+DAA+D;4BAC/D,wDAAwD;4BACxD,uEAAuE;4BACvE,oDAAoD;4BACpD,iDAAiD;4BACjD,EAAE;4BACF,6FAA6F;4BAC7F,2GAA2G;yBAC5G,CAAC,IAAI,CAAC,IAAI,CAAC;qBACb;iBACF,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,MAAM,CACX,eAAe,EACf,gIAAgI,EAChI;QACE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;KAC5E,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;QAErD,OAAO;YACL,QAAQ,EAAE,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;4BACJ,mBAAmB;4BACnB,MAAM,CAAC,YAAY;4BACnB,EAAE;4BACF,yBAAyB;4BACzB,IAAI;4BACJ,EAAE;4BACF,iBAAiB;4BACjB,oEAAoE;4BACpE,EAAE;4BACF,4FAA4F;4BAC5F,8GAA8G;4BAC9G,iFAAiF;4BACjF,kHAAkH;4BAClH,sFAAsF;4BACtF,EAAE;4BACF,4EAA4E;yBAC7E,CAAC,IAAI,CAAC,IAAI,CAAC;qBACb;iBACF,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,MAAM,CACX,gBAAgB,EAChB,4HAA4H,EAC5H,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QAEpE,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,KAAK,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC;QAC7C,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAY,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,GAAU,CAAC;YACxB,KAAK,EAAE,CAAC;YACR,IAAI,IAAI,CAAC,SAAS;gBAAE,SAAS,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC;gBAAE,UAAU,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;4BACJ,mBAAmB;4BACnB,YAAY,WAAW,CAAC,WAAW,EAAE;4BACrC,gBAAgB,KAAK,iBAAiB,SAAS,mBAAmB,UAAU,iBAAiB,KAAK,GAAG,SAAS,EAAE;4BAChH,EAAE;4BACF,6CAA6C;4BAC7C,QAAQ;4BACR,EAAE;4BACF,sBAAsB;4BACtB,UAAU;4BACV,EAAE;4BACF,mBAAmB;4BACnB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;4BACjD,EAAE;4BACF,iBAAiB;4BACjB,kCAAkC;4BAClC,mEAAmE;4BACnE,uDAAuD;4BACvD,gFAAgF;4BAChF,yEAAyE;4BACzE,2EAA2E;yBAC5E,CAAC,IAAI,CAAC,IAAI,CAAC;qBACb;iBACF,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,+DAA+D;IAC/D,yCAAyC;IACzC,+DAA+D;IAE/D,0BAA0B;IAE1B,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,4EAA4E,EAC5E,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;QAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;QAE3C,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,YAAY,EAAE,WAAW,CAAC,WAAW;wBACrC,UAAU,EAAE,WAAW,CAAC,SAAS;wBACjC,UAAU,EAAE,SAAS;wBACrB,UAAU,EAAE,SAAS;wBACrB,kBAAkB,EAAE,CAAC,CAAC,WAAW,EAAE;wBACnC,cAAc,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;qBAC9D,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,oBAAoB;IAEpB,MAAM,CAAC,IAAI,CACT,aAAa,EACb,8HAA8H,EAC9H;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACxC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACzE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;QAC9F,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACjG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAClE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAClE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;QAClG,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAC/F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4FAA4F,CAAC;QACtI,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;KAC3G,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,WAAW,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,UAAU,CAAC,CAAC,EAAE;YAC1C,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,eAAe,EAAE,MAAM,CAAC,gBAAgB;YACxC,QAAQ,EAAE,MAAM,CAAC,SAAS;YAC1B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,OAAO;YACtB,MAAM,EAAE,MAAM,CAAC,OAAO;YACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,UAAU;SAC7B,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;iBACzD,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,oBAAoB;IAEpB,MAAM,CAAC,IAAI,CACT,aAAa,EACb,2EAA2E,EAC3E;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACjD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;QAClD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACxE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QACtD,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAChE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC5E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAC7E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;QAC1G,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;KACrF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,WAAW,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE;YAC9C,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,eAAe,EAAE,MAAM,CAAC,gBAAgB;YACxC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,OAAO;YACtB,MAAM,EAAE,MAAM,CAAC,OAAO;YACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,UAAU;SAC7B,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;iBACjE,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,sBAAsB;IAEtB,MAAM,CAAC,IAAI,CACT,eAAe,EACf,wIAAwI,EACxI;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;KACpD,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,WAAW,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAExD,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;iBAClF,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,oBAAoB;IAEpB,MAAM,CAAC,IAAI,CACT,aAAa,EACb,yEAAyE,EACzE;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;KAClD,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,WAAW,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAEhD,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;iBACjE,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,2BAA2B;IAE3B,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,2KAA2K,EAC3K;QACE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;YACxF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YACxC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACpE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;YACxG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACrF,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC1D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;YAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;YAC7C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC/D,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;SACrF,CAAC,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACzC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,WAAW,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3D,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC1C,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QAC3B,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;iBAC5E,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,oBAAoB;IAEpB,MAAM,CAAC,IAAI,CACT,aAAa,EACb,gEAAgE,EAChE;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;KAC/C,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,WAAW,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEnE,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;iBAChG,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,kBAAkB;IAElB,MAAM,CAAC,IAAI,CACT,WAAW,EACX,yEAAyE,EACzE;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC/C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;KACzD,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,WAAW,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;QAEpE,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;iBACtG,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,iBAAiB;IAEjB,MAAM,CAAC,IAAI,CACT,UAAU,EACV,2MAA2M,EAC3M;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QAChF,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;KAC/F,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE;YACtB,QAAQ,EAAE,MAAM,CAAC,SAAS;YAC1B,gBAAgB,EAAE,MAAM,CAAC,iBAAiB;SAC3C,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACxC,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,iBAAiB;IAEjB,MAAM,CAAC,IAAI,CACT,UAAU,EACV,4FAA4F,EAC5F;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;KACxC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAExC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,MAAM,CAAC,OAAO,YAAY,EAAE,CAAC;gBACrE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,mBAAmB;IAEnB,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,gEAAgE,EAChE;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC5D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACvD,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;KAC1E,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,EAAE;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBAClE,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,kBAAkB;IAElB,MAAM,CAAC,IAAI,CACT,WAAW,EACX,iFAAiF,EACjF,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,eAAe,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QAEpE,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;iBACpC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,mBAAmB;IAEnB,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,sFAAsF,EACtF;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;QACrE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QACrF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2FAA2F,CAAC;KACvJ,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,WAAW,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,eAAe,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,eAAe,EAAE,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE;YACtF,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,UAAU;SAC7B,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;iBAC3E,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,mBAAmB;IAEnB,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,oEAAoE,EACpE;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KAChD,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,WAAW,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,eAAe,EAAE,CAAC;QACxB,MAAM,SAAS,CAAC,eAAe,EAAE,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAEvE,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;iBACjD,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,oBAAoB;IAEpB,MAAM,CAAC,IAAI,CACT,aAAa,EACb,wFAAwF,EACxF,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,CAAC,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,CAAC,EAAE,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEpG,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;iBACxC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { YjsProjectSession } from '../yjs/YjsProjectSession.js';
2
- import type { NodeData, CreateNodeParams, BatchNodeInput, Tag } from '../types.js';
2
+ import type { CreateNodeParams, BatchNodeInput, Tag } from '../types.js';
3
3
  /**
4
4
  * Create a single node in the Y.Doc
5
5
  */
@@ -7,10 +7,20 @@ export declare function createNode(session: YjsProjectSession, params: CreateNod
7
7
  nodeId: string;
8
8
  seq: number;
9
9
  }>;
10
+ export interface UpdateNodeParams {
11
+ title?: string;
12
+ contentMarkdown?: string;
13
+ color?: string;
14
+ tags?: string[];
15
+ vScore?: number;
16
+ eScore?: number;
17
+ deadline?: string;
18
+ blockedBy?: string[];
19
+ }
10
20
  /**
11
21
  * Update an existing node's properties (partial update)
12
22
  */
13
- export declare function updateNode(session: YjsProjectSession, nodeId: string, updates: Partial<Pick<NodeData, 'title' | 'contentMarkdown' | 'color' | 'tags' | 'vScore' | 'eScore'>>): Promise<number>;
23
+ export declare function updateNode(session: YjsProjectSession, nodeId: string, updates: UpdateNodeParams): Promise<number>;
14
24
  /**
15
25
  * Mark a node as completed.
16
26
  * Mirrors the web app's NodeController.completeNode() flow:
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/tools/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAGnF;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CA6B1C;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC,GACrG,OAAO,CAAC,MAAM,CAAC,CAoBjB;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,EAAE,GACV,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAqDjB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,cAAc,EAAE,GACvB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAwE9B"}
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/tools/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAY,gBAAgB,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAGnF;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CA6B1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAUD;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAyBjB;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,EAAE,GACV,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAqDjB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,cAAc,EAAE,GACvB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA2E9B"}
@@ -27,6 +27,13 @@ export async function createNode(session, params) {
27
27
  });
28
28
  return { nodeId, seq };
29
29
  }
30
+ /**
31
+ * Inject a [due: YYYY-MM-DD] marker into markdown content.
32
+ */
33
+ function injectDeadline(content, deadline) {
34
+ const cleaned = content.replace(/\[due:\s*\d{4}-\d{2}-\d{2}\]/g, '').trim();
35
+ return cleaned ? `${cleaned}\n\n[due: ${deadline}]` : `[due: ${deadline}]`;
36
+ }
30
37
  /**
31
38
  * Update an existing node's properties (partial update)
32
39
  */
@@ -51,6 +58,12 @@ export async function updateNode(session, nodeId, updates) {
51
58
  updated.vScore = updates.vScore;
52
59
  if (updates.eScore !== undefined)
53
60
  updated.eScore = updates.eScore;
61
+ if (updates.blockedBy !== undefined)
62
+ updated.blockedBy = updates.blockedBy;
63
+ if (updates.deadline !== undefined) {
64
+ const content = updated.contentMarkdown || '';
65
+ updated.contentMarkdown = injectDeadline(content, updates.deadline);
66
+ }
54
67
  nodesMap.set(nodeId, updated);
55
68
  });
56
69
  }
@@ -146,18 +159,20 @@ export async function batchCreateNodes(session, inputs) {
146
159
  const parentId = input.parent_temp_id
147
160
  ? tempToReal.get(input.parent_temp_id)
148
161
  : input.parent_id;
149
- const isTitle = input.type === 'title';
162
+ let content = input.content_markdown || '';
163
+ if (input.deadline) {
164
+ const cleaned = content.replace(/\[due:\s*\d{4}-\d{2}-\d{2}\]/g, '').trim();
165
+ content = cleaned ? `${cleaned}\n\n[due: ${input.deadline}]` : `[due: ${input.deadline}]`;
166
+ }
150
167
  const nodeData = {
151
168
  id: nodeId,
152
169
  title: input.title,
153
- contentMarkdown: input.content_markdown || '',
170
+ contentMarkdown: content,
154
171
  position: { x: 0, y: 0 },
155
- dimensions: isTitle
156
- ? { width: 736, height: 140 }
157
- : { width: 636, height: 636 },
172
+ dimensions: { width: 636, height: 636 },
158
173
  color: input.color || '#4299e1',
159
174
  useCustomColor: !!input.color,
160
- type: input.type || 'richtext',
175
+ type: input.type || 'tasks',
161
176
  relationships: { parentId, childIds: [] },
162
177
  tags: input.tags || [],
163
178
  pinnedTags: [],
@@ -165,6 +180,7 @@ export async function batchCreateNodes(session, inputs) {
165
180
  completed: false,
166
181
  vScore: input.v_score,
167
182
  eScore: input.e_score ?? 5,
183
+ blockedBy: input.blocked_by || [],
168
184
  heatInitial: 0,
169
185
  heatLastUpdated: now,
170
186
  promotionLevel: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/tools/nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/tools/nodes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { YjsProjectSession } from '../yjs/YjsProjectSession.js';
2
+ import type { ProjectOverview } from '../types.js';
3
+ /**
4
+ * Get project-level overview stats
5
+ */
6
+ export declare function getProjectOverview(session: YjsProjectSession, projectId: string, projectName: string, tagCount: number): ProjectOverview;
7
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/tools/project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAY,eAAe,EAAE,MAAM,aAAa,CAAC;AAE7D;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,eAAe,CAmBjB"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Get project-level overview stats
3
+ */
4
+ export function getProjectOverview(session, projectId, projectName, tagCount) {
5
+ const doc = session.getDoc();
6
+ const nodesMap = doc.getMap('nodes');
7
+ const edgesMap = doc.getMap('edges');
8
+ let completed = 0;
9
+ nodesMap.forEach((val) => {
10
+ const node = val;
11
+ if (node.completed)
12
+ completed++;
13
+ });
14
+ return {
15
+ project_id: projectId,
16
+ project_name: projectName,
17
+ node_count: nodesMap.size,
18
+ edge_count: edgesMap.size,
19
+ completed_count: completed,
20
+ tag_count: tagCount,
21
+ };
22
+ }
23
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/tools/project.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAA0B,EAC1B,SAAiB,EACjB,WAAmB,EACnB,QAAgB;IAEhB,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAErC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAY,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,GAAe,CAAC;QAC7B,IAAI,IAAI,CAAC,SAAS;YAAE,SAAS,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,WAAW;QACzB,UAAU,EAAE,QAAQ,CAAC,IAAI;QACzB,UAAU,EAAE,QAAQ,CAAC,IAAI;QACzB,eAAe,EAAE,SAAS;QAC1B,SAAS,EAAE,QAAQ;KACpB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { SupabaseClient } from '@supabase/supabase-js';
2
+ import type { CreateTagParams, Tag } from '../types.js';
3
+ /**
4
+ * Create a new project tag in the project_tags table.
5
+ * Returns the created tag's ID.
6
+ */
7
+ export declare function createTag(supabase: SupabaseClient, projectId: string, userId: string, params: CreateTagParams): Promise<Tag>;
8
+ /**
9
+ * Delete a project tag by ID
10
+ */
11
+ export declare function deleteTag(supabase: SupabaseClient, projectId: string, tagId: string): Promise<void>;
12
+ //# sourceMappingURL=tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/tools/tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAExD;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,GAAG,CAAC,CA8Bd;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAUf"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Create a new project tag in the project_tags table.
3
+ * Returns the created tag's ID.
4
+ */
5
+ export async function createTag(supabase, projectId, userId, params) {
6
+ const { data, error } = await supabase
7
+ .from('project_tags')
8
+ .insert({
9
+ project_id: projectId,
10
+ name: params.name,
11
+ color: params.color || '#4299e1',
12
+ created_by: userId,
13
+ heat_index: params.heatIndex ?? 0,
14
+ clear_heat: false,
15
+ })
16
+ .select('*')
17
+ .single();
18
+ if (error) {
19
+ if (error.code === '23505') {
20
+ throw new Error(`Tag "${params.name}" already exists in this project`);
21
+ }
22
+ throw new Error(`Failed to create tag: ${error.message}`);
23
+ }
24
+ return {
25
+ id: data.tag_id || data.id,
26
+ name: data.name,
27
+ color: data.color,
28
+ scope: 'project',
29
+ projectId: data.project_id,
30
+ heatIndex: data.heat_index,
31
+ clearHeat: data.clear_heat,
32
+ };
33
+ }
34
+ /**
35
+ * Delete a project tag by ID
36
+ */
37
+ export async function deleteTag(supabase, projectId, tagId) {
38
+ const { error } = await supabase
39
+ .from('project_tags')
40
+ .delete()
41
+ .eq('id', tagId)
42
+ .eq('project_id', projectId);
43
+ if (error) {
44
+ throw new Error(`Failed to delete tag: ${error.message}`);
45
+ }
46
+ }
47
+ //# sourceMappingURL=tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/tools/tags.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAwB,EACxB,SAAiB,EACjB,MAAc,EACd,MAAuB;IAEvB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ;SACnC,IAAI,CAAC,cAAc,CAAC;SACpB,MAAM,CAAC;QACN,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS;QAChC,UAAU,EAAE,MAAM;QAClB,UAAU,EAAE,MAAM,CAAC,SAAS,IAAI,CAAC;QACjC,UAAU,EAAE,KAAK;KAClB,CAAC;SACD,MAAM,CAAC,GAAG,CAAC;SACX,MAAM,EAAE,CAAC;IAEZ,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,CAAC,IAAI,kCAAkC,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE;QAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,IAAI,CAAC,UAAU;QAC1B,SAAS,EAAE,IAAI,CAAC,UAAU;QAC1B,SAAS,EAAE,IAAI,CAAC,UAAU;KAC3B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAwB,EACxB,SAAiB,EACjB,KAAa;IAEb,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ;SAC7B,IAAI,CAAC,cAAc,CAAC;SACpB,MAAM,EAAE;SACR,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;SACf,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAE/B,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
package/dist/types.d.ts CHANGED
@@ -23,7 +23,7 @@ export interface NodeData {
23
23
  color: string;
24
24
  useCustomColor?: boolean;
25
25
  inheritedColor?: string;
26
- type?: 'tasks' | 'richtext' | 'deadline' | 'image' | 'title';
26
+ type?: 'tasks' | 'richtext' | 'deadline' | 'image';
27
27
  relationships: NodeRelationships;
28
28
  completed?: boolean;
29
29
  completedAt?: string;
@@ -75,16 +75,19 @@ export interface AuthResult {
75
75
  expiresAt: number;
76
76
  projectId: string;
77
77
  projectName: string;
78
+ userId: string;
78
79
  }
79
80
  export interface CreateNodeParams {
80
81
  title: string;
81
82
  contentMarkdown?: string;
82
83
  parentId?: string;
83
- type?: 'tasks' | 'richtext' | 'deadline' | 'title';
84
+ type?: 'tasks' | 'richtext' | 'deadline';
84
85
  color?: string;
85
86
  tags?: string[];
86
87
  vScore?: number;
87
88
  eScore?: number;
89
+ deadline?: string;
90
+ blockedBy?: string[];
88
91
  }
89
92
  export interface BatchNodeInput {
90
93
  temp_id: string;
@@ -92,10 +95,25 @@ export interface BatchNodeInput {
92
95
  content_markdown?: string;
93
96
  parent_temp_id?: string;
94
97
  parent_id?: string;
95
- type?: 'tasks' | 'richtext' | 'deadline' | 'title';
98
+ type?: 'tasks' | 'richtext' | 'deadline';
96
99
  color?: string;
97
100
  tags?: string[];
98
101
  v_score?: number;
99
102
  e_score?: number;
103
+ deadline?: string;
104
+ blocked_by?: string[];
105
+ }
106
+ export interface CreateTagParams {
107
+ name: string;
108
+ color?: string;
109
+ heatIndex?: number;
110
+ }
111
+ export interface ProjectOverview {
112
+ project_id: string;
113
+ project_name: string;
114
+ node_count: number;
115
+ edge_count: number;
116
+ completed_count: number;
117
+ tag_count: number;
100
118
  }
101
119
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;IACnD,aAAa,EAAE,iBAAiB,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAEhB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -3,10 +3,6 @@ export declare const DEFAULT_NODE_DIMENSIONS: {
3
3
  readonly width: 636;
4
4
  readonly height: 636;
5
5
  };
6
- export declare const TITLE_NODE_DIMENSIONS: {
7
- readonly width: number;
8
- readonly height: 140;
9
- };
10
6
  export declare const DEFAULT_NODE_COLOR = "#4299e1";
11
7
  export declare function generateNodeId(): string;
12
8
  export declare function buildEdgeId(sourceId: string, targetId: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"nodeDefaults.d.ts","sourceRoot":"","sources":["../../src/utils/nodeDefaults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAK9D,eAAO,MAAM,uBAAuB;;;CAG1B,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;CAGxB,CAAC;AAEX,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,QAAQ,CA8BhE"}
1
+ {"version":3,"file":"nodeDefaults.d.ts","sourceRoot":"","sources":["../../src/utils/nodeDefaults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAK9D,eAAO,MAAM,uBAAuB;;;CAG1B,CAAC;AAEX,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtE;AAYD,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,QAAQ,CAiChE"}
@@ -5,10 +5,6 @@ export const DEFAULT_NODE_DIMENSIONS = {
5
5
  width: A4_WIDTH,
6
6
  height: A4_WIDTH, // square by default
7
7
  };
8
- export const TITLE_NODE_DIMENSIONS = {
9
- width: A4_WIDTH + 100,
10
- height: 140,
11
- };
12
8
  export const DEFAULT_NODE_COLOR = '#4299e1';
13
9
  export function generateNodeId() {
14
10
  return randomUUID();
@@ -16,20 +12,30 @@ export function generateNodeId() {
16
12
  export function buildEdgeId(sourceId, targetId) {
17
13
  return `${sourceId}|${targetId}`;
18
14
  }
15
+ /**
16
+ * Inject a [due: YYYY-MM-DD] marker into markdown content if a deadline is set.
17
+ * The web app parses this marker for Calendar View.
18
+ */
19
+ function injectDeadline(content, deadline) {
20
+ // Remove any existing [due: ...] marker
21
+ const cleaned = content.replace(/\[due:\s*\d{4}-\d{2}-\d{2}\]/g, '').trim();
22
+ return cleaned ? `${cleaned}\n\n[due: ${deadline}]` : `[due: ${deadline}]`;
23
+ }
19
24
  export function buildNodeData(params) {
20
25
  const now = new Date().toISOString();
21
- const isTitle = params.type === 'title';
26
+ let content = params.contentMarkdown || '';
27
+ if (params.deadline) {
28
+ content = injectDeadline(content, params.deadline);
29
+ }
22
30
  return {
23
31
  id: generateNodeId(),
24
32
  title: params.title,
25
- contentMarkdown: params.contentMarkdown || '',
33
+ contentMarkdown: content,
26
34
  position: { x: 0, y: 0 },
27
- dimensions: isTitle
28
- ? { ...TITLE_NODE_DIMENSIONS }
29
- : { ...DEFAULT_NODE_DIMENSIONS },
35
+ dimensions: { ...DEFAULT_NODE_DIMENSIONS },
30
36
  color: params.color || DEFAULT_NODE_COLOR,
31
37
  useCustomColor: !!params.color,
32
- type: params.type || 'richtext',
38
+ type: params.type || 'tasks',
33
39
  relationships: {
34
40
  parentId: params.parentId || undefined,
35
41
  childIds: [],
@@ -40,6 +46,7 @@ export function buildNodeData(params) {
40
46
  completed: false,
41
47
  vScore: params.vScore,
42
48
  eScore: params.eScore ?? 5,
49
+ blockedBy: params.blockedBy || [],
43
50
  heatInitial: 0,
44
51
  heatLastUpdated: now,
45
52
  promotionLevel: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"nodeDefaults.js","sourceRoot":"","sources":["../../src/utils/nodeDefaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,oEAAoE;AACpE,MAAM,QAAQ,GAAG,GAAG,CAAC;AAErB,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,QAAQ,EAAE,oBAAoB;CAC9B,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,KAAK,EAAE,QAAQ,GAAG,GAAG;IACrB,MAAM,EAAE,GAAG;CACH,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE5C,MAAM,UAAU,cAAc;IAC5B,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,QAAgB;IAC5D,OAAO,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAwB;IACpD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC;IAExC,OAAO;QACL,EAAE,EAAE,cAAc,EAAE;QACpB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,EAAE;QAC7C,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;QACxB,UAAU,EAAE,OAAO;YACjB,CAAC,CAAC,EAAE,GAAG,qBAAqB,EAAE;YAC9B,CAAC,CAAC,EAAE,GAAG,uBAAuB,EAAE;QAClC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,kBAAkB;QACzC,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;QAC9B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,UAAU;QAC/B,aAAa,EAAE;YACb,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;YACtC,QAAQ,EAAE,EAAE;SACb;QACD,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;QACvB,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;QAC1B,WAAW,EAAE,CAAC;QACd,eAAe,EAAE,GAAG;QACpB,cAAc,EAAE,CAAC;QACjB,kBAAkB,EAAE,KAAK;KAC1B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"nodeDefaults.js","sourceRoot":"","sources":["../../src/utils/nodeDefaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,oEAAoE;AACpE,MAAM,QAAQ,GAAG,GAAG,CAAC;AAErB,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,QAAQ,EAAE,oBAAoB;CAC9B,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE5C,MAAM,UAAU,cAAc;IAC5B,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,QAAgB;IAC5D,OAAO,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,OAAe,EAAE,QAAgB;IACvD,wCAAwC;IACxC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5E,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,aAAa,QAAQ,GAAG,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAwB;IACpD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAErC,IAAI,OAAO,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;IAC3C,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,OAAO;QACL,EAAE,EAAE,cAAc,EAAE;QACpB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,eAAe,EAAE,OAAO;QACxB,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;QACxB,UAAU,EAAE,EAAE,GAAG,uBAAuB,EAAE;QAC1C,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,kBAAkB;QACzC,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;QAC9B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,OAAO;QAC5B,aAAa,EAAE;YACb,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;YACtC,QAAQ,EAAE,EAAE;SACb;QACD,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;QACvB,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;QACjC,WAAW,EAAE,CAAC;QACd,eAAe,EAAE,GAAG;QACpB,cAAc,EAAE,CAAC;QACjB,kBAAkB,EAAE,KAAK;KAC1B,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,16 +1,18 @@
1
1
  {
2
2
  "name": "@develosaur/mcp",
3
- "version": "1.0.6",
3
+ "version": "1.1.0",
4
4
  "description": "Develosaur MCP server — AI agents track development progress in real-time",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "bin": {
8
- "develosaur-mcp": "./dist/index.js"
8
+ "develosaur-mcp": "./dist/index.js",
9
+ "develosaur-init": "./dist/init.js"
9
10
  },
10
11
  "scripts": {
11
12
  "build": "tsc",
12
13
  "dev": "tsc --watch",
13
- "prepublishOnly": "npm run build"
14
+ "prepublishOnly": "npm run build",
15
+ "init": "node ./dist/init.js"
14
16
  },
15
17
  "dependencies": {
16
18
  "@modelcontextprotocol/sdk": "^1.12.1",
@@ -30,7 +32,10 @@
30
32
  "develosaur",
31
33
  "project-management",
32
34
  "ai-agent",
33
- "model-context-protocol"
35
+ "model-context-protocol",
36
+ "claude",
37
+ "claude-code",
38
+ "skill"
34
39
  ],
35
40
  "license": "MIT",
36
41
  "engines": {