@langadventurellc/task-trellis-mcp 1.0.0-rc.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,110 +1,358 @@
1
1
  # Task Trellis MCP
2
2
 
3
- An MCP (Model Context Protocol) server for Task Trellis, a tool to help AI coding agents break down complex work into manageable tasks that allow it to work effectively. This server provides a structured task hierarchy and workflow management system, enabling AI agents to claim, complete, and manage tasks efficiently.
3
+ > Transform AI coding chaos into organized productivity
4
+
5
+ [![npm version](https://badge.fury.io/js/%40langadventurellc%2Ftask-trellis-mcp.svg)](https://www.npmjs.com/package/@langadventurellc/task-trellis-mcp)
6
+ [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
7
+
8
+ An MCP (Model Context Protocol) server that greatly improves how AI coding agents handle complex projects. Task Trellis breaks down large development efforts into manageable, trackable work items with built-in workflow management, dependency handling, and progress tracking.
9
+
10
+ ## Table of Contents
11
+
12
+ - [Why Task Trellis?](#why-task-trellis)
13
+ - [Core Benefits](#core-benefits)
14
+ - [Usage](#usage)
15
+ - [Available Tools](#available-tools)
16
+ - [Project Hierarchy](#project-hierarchy)
17
+ - [Prerequisites & Dependencies](#prerequisites--dependencies)
18
+ - [File Storage](#file-storage)
19
+ - [Installation](#installation)
20
+ - [Quick Test](#quick-test)
21
+ - [Configuration Options](#configuration-options)
22
+ - [Troubleshooting](#troubleshooting)
23
+
24
+ ## Why Task Trellis?
25
+
26
+ ### Without Task Trellis
27
+
28
+ - AI agents lose track of complex, multi-step projects
29
+ - Agents spin out of control with no clear task structure
30
+ - Tasks are often too large or vague, leading to confusion
31
+ - No way to manage dependencies or prerequisites
32
+ - No visibility into what's been completed vs. what's pending
33
+ - Tasks get forgotten, duplicated, or done out of order
34
+ - Zero coordination between multiple AI sessions
35
+ - Complex projects become chaotic and overwhelming
36
+
37
+ ### With Task Trellis
38
+
39
+ - **Structured Breakdown**: Automatically organize projects into hierarchical tasks (depending on the size of the effort required)
40
+ - For large projects, create a project with epics, features, and tasks
41
+ - For medium projects, create features with tasks
42
+ - For small tasks, create standalone tasks
43
+ - **Smart Dependencies**: Prevent tasks from starting until prerequisites are complete
44
+ - **Progress Tracking**: Real-time visibility into what's done, in-progress, and pending
45
+ - **Session Continuity**: Pick up exactly where you left off across AI conversations
46
+ - **Workflow Management**: Built-in task claiming, completion, and validation workflows
47
+ - **File Change Tracking**: Automatic documentation of what files were modified for each task
48
+
49
+ ## Core Benefits
50
+
51
+ **Focused Execution**: AI agents work on one clearly-defined task at a time
52
+ **Progress Visibility**: Always know project status and what's next
53
+ **Dependency Management**: Automatic task ordering based on prerequisites
54
+ **Audit Trail**: Complete history of all work completed and changes made
55
+ **Multi-Session Support**: Seamlessly collaborate across different AI conversations
56
+ **Productivity Boost**: Reduce context switching and eliminate forgotten tasks
57
+
58
+ ## Usage
59
+
60
+ ### Basic Workflow
61
+
62
+ See sample prompts (written as Claude Code slash commands): [Sample Prompts](docs/sample_prompts/index.md)
63
+
64
+ 1. **Create Tasks**
65
+ - For large projects
66
+ - Create a project
67
+ - Create epics to group features
68
+ - Create features to break down epics
69
+ - Create tasks for specific work items
70
+ - For medium-sized projects
71
+ - Create standalone feature
72
+ - Create tasks directly under the feature
73
+ - For small tasks
74
+ - Create standalone tasks
75
+
76
+ 2. **Claim & Work on Tasks**
77
+ - AI agent claims next available task
78
+ - Works on the specific task requirements
79
+ - Marks task complete with file changes documented
80
+
81
+ 3. **Track Progress**
82
+ - View completed vs. pending work
83
+ - See dependency relationships
84
+ - Monitor overall project health
4
85
 
5
86
  ## Available Tools
6
87
 
7
- This MCP server provides comprehensive task management functionality through the following tools:
8
-
9
88
  ### Core Object Management
10
89
 
11
- - **create_object**: Creates new objects (projects, epics, features, tasks) in the task hierarchy
12
- - Supports parent-child relationships and prerequisites
13
- - Validates hierarchy constraints (project epic feature task)
14
- - Parameters: type, title, parent (optional), priority, status, prerequisites, description
90
+ - **create_object** - Create projects, epics, features, or tasks with hierarchical relationships
91
+ - **update_object** - Modify object properties, status, priority, or prerequisites
92
+ - **get_object** - Retrieve detailed object information with history and relationships
93
+ - **list_objects** - Query and filter objects by type, status, priority, or scope
94
+ - **delete_object** - Remove objects (with dependency validation)
95
+ - **replace_object_body_regex** - Make targeted content edits using regex patterns
15
96
 
16
- - **update_object**: Updates existing objects with new properties
17
- - Change status, priority, prerequisites, or content
18
- - Validates status transitions and maintains object integrity
19
- - Parameters: id, priority, status, prerequisites, body, force
97
+ ### Task Workflow Management
20
98
 
21
- - **replace_object_body_regex**: Performs targeted regex-based replacements within object body content
22
- - Enables surgical text edits without recreating entire body content
23
- - Safer and more efficient than wholesale body replacement for specific modifications
24
- - Parameters: id, regex, replacement, allowMultipleOccurrences (optional)
99
+ - **claim_task** - Claim available tasks for execution with automatic priority ordering
100
+ - **complete_task** - Mark tasks complete with file change documentation
101
+ - **append_object_log** - Add progress notes and status updates to task history
25
102
 
26
- - **get_object**: Retrieves detailed information about a specific object by ID
27
- - Returns complete object data including metadata, relationships, and history
28
- - Parameters: id
103
+ ### System Management
29
104
 
30
- - **delete_object**: Permanently removes objects from the system
31
- - Validates relationships and prevents deletion of objects with dependencies
32
- - Parameters: id, force
105
+ - **activate** - Initialize the task system (if not configured via command line)
106
+ - **prune_closed** - Clean up old completed/cancelled objects for maintenance
33
107
 
34
- - **list_objects**: Retrieves and filters objects based on various criteria
35
- - Filter by type, status, priority, scope, or closed status
36
- - Essential for discovering and managing work items
37
- - Parameters: type, scope (optional), status (optional), priority (optional), includeClosed
108
+ ## Project Hierarchy
38
109
 
39
- ### Task Workflow Management
110
+ Task Trellis supports a flexible 4-level hierarchy:
40
111
 
41
- - **claim_task**: Claims available tasks for execution by AI agents
42
- - Automatically selects highest priority ready tasks
43
- - Validates prerequisites and readiness criteria
44
- - Parameters: scope (optional), taskId (optional), force
112
+ ```
113
+ Project (Top-level container)
114
+ └── Epic (Large feature groupings)
115
+ └── Feature (Specific functionality)
116
+ └── Task (Individual work items)
117
+ ```
45
118
 
46
- - **complete_task**: Marks tasks as completed and records completion details
47
- - Documents file changes and completion summary
48
- - Updates task status and triggers dependent task progression
49
- - Parameters: taskId, summary, filesChanged
119
+ **Supported Patterns:**
50
120
 
51
- - **append_object_log**: Adds progress updates and notes to object activity logs
52
- - Essential for tracking work history and documenting decisions
53
- - Creates permanent audit trail for retrospectives and debugging
54
- - Parameters: id, contents
121
+ - Full hierarchy: `Project Epic Feature Task`
122
+ - Simplified: `Feature Task`
123
+ - Standalone: `Task` only
55
124
 
56
- ### System Management
125
+ ## Prerequisites & Dependencies
126
+
127
+ Tasks can have prerequisites that must be completed before they become available:
128
+
129
+ ```typescript
130
+ {
131
+ "type": "task",
132
+ "title": "Deploy authentication system",
133
+ "prerequisites": ["T-user-registration", "T-login-system", "T-email-verification"]
134
+ }
135
+ ```
136
+
137
+ ## File Storage
138
+
139
+ Task Trellis uses a local file-based storage system with different hierarchy patterns:
140
+
141
+ ### Full Project Hierarchy
142
+
143
+ ```
144
+ your-project/
145
+ └── .trellis/
146
+ └── p/
147
+ └── P-project-id/
148
+ └── e/
149
+ └── E-epic-id/
150
+ └── f/
151
+ └── F-feature-id/
152
+ └── t/
153
+ ├── open/
154
+ │ └── T-task-id.md
155
+ └── closed/
156
+ └── T-completed-task-id.md
157
+ ```
158
+
159
+ ### Feature-Only Hierarchy
160
+
161
+ ```
162
+ your-project/
163
+ └── .trellis/
164
+ └── f/
165
+ └── F-feature-id/
166
+ └── t/
167
+ ├── open/
168
+ │ └── T-task-id.md
169
+ └── closed/
170
+ └── T-completed-task-id.md
171
+ ```
172
+
173
+ ### Standalone Tasks
174
+
175
+ ```
176
+ your-project/
177
+ └── .trellis/
178
+ └── t/
179
+ ├── open/
180
+ │ └── T-task-id.md
181
+ └── closed/
182
+ └── T-completed-task-id.md
183
+ ```
184
+
185
+ Each object is stored as a Markdown file with YAML frontmatter metadata and content body.
186
+
187
+ ## Installation
188
+
189
+ ### Claude Code
190
+
191
+ The easiest way to install Task Trellis MCP in Claude Code:
192
+
193
+ ```bash
194
+ claude mcp add @langadventurellc/task-trellis-mcp --projectRootFolder "$(pwd)"
195
+ ```
196
+
197
+ Or (you'll be required to call the activate tool once to set the project root folder):
198
+
199
+ ```bash
200
+ claude mcp add @langadventurellc/task-trellis-mcp
201
+ ```
202
+
203
+ ### VS Code with GitHub Copilot
204
+
205
+ 1. Add Task Trellis to your VS Code settings. Open your settings JSON file and add:
206
+
207
+ ```json
208
+ {
209
+ "github.copilot.chat.mcpServers": {
210
+ "task-trellis": {
211
+ "command": "npx",
212
+ "args": [
213
+ "-y",
214
+ "@langadventurellc/task-trellis-mcp",
215
+ "--projectRootFolder",
216
+ "${workspaceFolder}"
217
+ ]
218
+ }
219
+ }
220
+ }
221
+ ```
222
+
223
+ ### Cursor
224
+
225
+ Install Task Trellis MCP in Cursor by adding to your Cursor settings:
226
+
227
+ **Method 1: Via Settings UI**
228
+
229
+ 1. Open Cursor Settings (⌘/Ctrl + ,)
230
+ 2. Search for "MCP"
231
+ 3. Add new server with:
232
+ - **Name**: `task-trellis`
233
+ - **Command**: `npx`
234
+ - **Args**: `["-y", "@langadventurellc/task-trellis-mcp", "--projectRootFolder", "${workspaceFolder}"]`
235
+
236
+ **Method 2: Via Configuration File**
237
+ Add to your Cursor configuration:
238
+
239
+ ```json
240
+ {
241
+ "mcpServers": {
242
+ "task-trellis": {
243
+ "command": "npx",
244
+ "args": [
245
+ "-y",
246
+ "@langadventurellc/task-trellis-mcp",
247
+ "--projectRootFolder",
248
+ "${workspaceFolder}"
249
+ ]
250
+ }
251
+ }
252
+ }
253
+ ```
254
+
255
+ ### Windsurf
256
+
257
+ Add Task Trellis to your Windsurf MCP configuration:
258
+
259
+ ```json
260
+ {
261
+ "mcpServers": {
262
+ "task-trellis": {
263
+ "command": "npx",
264
+ "args": [
265
+ "-y",
266
+ "@langadventurellc/task-trellis-mcp",
267
+ "--projectRootFolder",
268
+ "${workspaceRoot}"
269
+ ]
270
+ }
271
+ }
272
+ }
273
+ ```
274
+
275
+ ### Cline (VS Code Extension)
276
+
277
+ 1. Add Task Trellis to your Cline MCP servers in VS Code settings:
278
+
279
+ ```json
280
+ {
281
+ "cline.mcpServers": {
282
+ "task-trellis": {
283
+ "command": "npx",
284
+ "args": [
285
+ "-y",
286
+ "@langadventurellc/task-trellis-mcp",
287
+ "--projectRootFolder",
288
+ "${workspaceFolder}"
289
+ ]
290
+ }
291
+ }
292
+ }
293
+ ```
294
+
295
+ ### Continue (VS Code Extension)
296
+
297
+ 1. Add to your Continue configuration file (`~/.continue/config.json`):
57
298
 
58
- - **activate**: Initializes the task trellis system in local or remote mode
59
- - Only needs to be run if the server wasn't started with command line arguments (`--projectRootFolder` for local mode or `--mode remote` for remote mode)
60
- - Configures data storage and validates connectivity
61
- - Parameters: mode, projectRoot (local), apiToken (remote), remoteProjectId (remote), url (optional)
299
+ ```json
300
+ {
301
+ "mcpServers": {
302
+ "task-trellis": {
303
+ "command": "npx",
304
+ "args": [
305
+ "-y",
306
+ "@langadventurellc/task-trellis-mcp",
307
+ "--projectRootFolder",
308
+ "/path/to/your/project"
309
+ ]
310
+ }
311
+ }
312
+ }
313
+ ```
62
314
 
63
- - **prune_closed**: Maintenance tool to remove old completed/cancelled objects
64
- - Improves system performance and reduces clutter
65
- - Validates relationships before deletion to maintain integrity
66
- - Parameters: age, scope (optional)
315
+ ### Other MCP Clients
67
316
 
68
- ### Usage
317
+ For any MCP-compatible client, use this configuration:
69
318
 
70
- 1. **Build the server:**
319
+ ```json
320
+ {
321
+ "mcpServers": {
322
+ "task-trellis": {
323
+ "command": "npx",
324
+ "args": [
325
+ "-y",
326
+ "@langadventurellc/task-trellis-mcp",
327
+ "--projectRootFolder",
328
+ "/absolute/path/to/project"
329
+ ]
330
+ }
331
+ }
332
+ }
333
+ ```
71
334
 
72
- ```bash
73
- npm run build
74
- ```
335
+ ## Quick Test
75
336
 
76
- 2. **Start the server:**
337
+ After installation, test that Task Trellis is working by asking your AI assistant:
77
338
 
78
- ```bash
79
- npm run serve
80
- ```
339
+ > "Create a new project called 'My Test Project'"
81
340
 
82
- 3. **Configure in your MCP client:**
83
- ```json
84
- {
85
- "mcpServers": {
86
- "task-trellis": {
87
- "type": "stdio",
88
- "command": "npx",
89
- "args": ["@langadventurellc/task-trellis-mcp"]
90
- }
91
- }
92
- }
93
- ```
341
+ If configured correctly, the AI should respond with a confirmation and create the project structure in your specified project root folder.
94
342
 
95
- ### Command Line Options
343
+ ## Configuration Options
96
344
 
97
- The server accepts the following optional command line arguments:
345
+ The Task Trellis MCP server supports these command-line options:
98
346
 
99
347
  - `--mode <mode>` - Server mode (default: "local")
100
348
  - `local` - Use local file-based storage
101
- - `remote` - Use remote repository (not yet implemented)
349
+ - `remote` - Use remote repository (planned feature)
102
350
 
103
351
  - `--projectRootFolder <path>` - Project root folder path
104
- - When specified, creates a `.trellis` folder inside the project root for task storage
352
+ - Creates a `.trellis` folder inside the project root for task storage
105
353
  - Example: `--projectRootFolder /path/to/my-project` creates `/path/to/my-project/.trellis/`
106
354
 
107
- **Example with options:**
355
+ **Advanced Configuration Example:**
108
356
 
109
357
  ```json
110
358
  {
@@ -124,12 +372,28 @@ The server accepts the following optional command line arguments:
124
372
  }
125
373
  ```
126
374
 
127
- **Note:** You can also configure the server at runtime using the `activate` tool instead of command line arguments.
375
+ ## Troubleshooting
376
+
377
+ ### Common Issues
378
+
379
+ **Tasks not appearing:**
380
+
381
+ - Ensure prerequisites are completed
382
+ - Check task status (should be 'open' or 'draft')
383
+ - Verify project scope configuration
384
+
385
+ **Configuration issues:**
386
+
387
+ - Validate JSON syntax in MCP client configuration
388
+ - Ensure absolute paths are used for `--projectRootFolder`
389
+ - Restart your MCP client after configuration changes
390
+
391
+ ### Getting Help
392
+
393
+ - **Issues**: [Report bugs or feature requests](https://github.com/langadventurellc/task-trellis-mcp/issues)
394
+ - **Documentation**: Check this README and inline tool descriptions
395
+ - **Community**: Share experiences and get help from other users
128
396
 
129
- ### Development
397
+ ## License
130
398
 
131
- - `npm run build` - Build TypeScript to JavaScript
132
- - `npm run dev` - Watch mode for development
133
- - `npm test` - Run Jest tests
134
- - `npm run test:watch` - Run tests in watch mode
135
- - `npm run quality` - Run linting, formatting, and type checks
399
+ GPL-3.0-only - see [LICENSE](LICENSE) file for details.
@@ -122,6 +122,24 @@ describe("replaceStringWithRegex", () => {
122
122
  expect(result1).toBe("special pattern");
123
123
  expect(result2).toBe("special pattern");
124
124
  });
125
+ it("should efficiently detect multiple matches in large strings without creating full array upfront", () => {
126
+ // Create a large string with many matches to test performance optimization
127
+ const pattern = "match";
128
+ const largeString = Array(1000).fill(`${pattern} text`).join(" ");
129
+ expect(() => {
130
+ (0, replaceStringWithRegex_1.replaceStringWithRegex)(largeString, {
131
+ regex: pattern,
132
+ replacement: "replaced",
133
+ });
134
+ }).toThrow(MultipleMatchesError_1.MultipleMatchesError);
135
+ // Verify the error message still contains correct count despite optimization
136
+ expect(() => {
137
+ (0, replaceStringWithRegex_1.replaceStringWithRegex)(largeString, {
138
+ regex: pattern,
139
+ replacement: "replaced",
140
+ });
141
+ }).toThrow(/Found 1000 matches for pattern/);
142
+ });
125
143
  });
126
144
  describe("error handling", () => {
127
145
  it("should throw error for empty regex pattern", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"replaceStringWithRegex.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/replaceStringWithRegex.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replaceStringWithRegex.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/replaceStringWithRegex.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"replaceStringWithRegex.d.ts","sourceRoot":"","sources":["../../src/utils/replaceStringWithRegex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,oBAAoB,GAC5B,MAAM,CAuCR"}
1
+ {"version":3,"file":"replaceStringWithRegex.d.ts","sourceRoot":"","sources":["../../src/utils/replaceStringWithRegex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,oBAAoB,GAC5B,MAAM,CAgDR"}
@@ -59,14 +59,23 @@ function replaceStringWithRegex(input, options) {
59
59
  const errorMessage = error instanceof Error ? error.message : String(error);
60
60
  throw new Error(`Invalid regex pattern: ${errorMessage}`);
61
61
  }
62
- // First, check how many matches we have
63
- const matches = Array.from(input.matchAll(regexObj));
64
- if (matches.length === 0) {
62
+ // Efficiently check for matches without creating full array
63
+ const matchIterator = input.matchAll(regexObj);
64
+ const firstMatch = matchIterator.next();
65
+ if (firstMatch.done) {
65
66
  // No matches, return original string
66
67
  return input;
67
68
  }
68
- if (matches.length > 1 && !allowMultipleOccurrences) {
69
- throw new MultipleMatchesError_1.MultipleMatchesError(matches.length, regex);
69
+ // If we don't allow multiple occurrences, check if there's a second match
70
+ if (!allowMultipleOccurrences) {
71
+ const secondMatch = matchIterator.next();
72
+ if (!secondMatch.done) {
73
+ // We have at least 2 matches, need to count them all for the error
74
+ // Reset and count all matches for accurate error reporting
75
+ regexObj.lastIndex = 0;
76
+ const allMatches = Array.from(input.matchAll(regexObj));
77
+ throw new MultipleMatchesError_1.MultipleMatchesError(allMatches.length, regex);
78
+ }
70
79
  }
71
80
  // Perform the replacement
72
81
  // Reset the regex since matchAll() affects the lastIndex
@@ -1 +1 @@
1
- {"version":3,"file":"replaceStringWithRegex.js","sourceRoot":"","sources":["../../src/utils/replaceStringWithRegex.ts"],"names":[],"mappings":";;AA6CA,wDA0CC;AAvFD,iEAA8D;AAG9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,SAAgB,sBAAsB,CACpC,KAAa,EACb,OAA6B;IAE7B,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,wBAAwB,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAEzE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,wFAAwF;QACxF,4EAA4E;QAC5E,QAAQ,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,wCAAwC;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAErD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,qCAAqC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACpD,MAAM,IAAI,2CAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,0BAA0B;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;IAEvB,IAAI,CAAC;QACH,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,6BAA6B,YAAY,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"replaceStringWithRegex.js","sourceRoot":"","sources":["../../src/utils/replaceStringWithRegex.ts"],"names":[],"mappings":";;AA6CA,wDAmDC;AAhGD,iEAA8D;AAG9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,SAAgB,sBAAsB,CACpC,KAAa,EACb,OAA6B;IAE7B,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,wBAAwB,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAEzE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,wFAAwF;QACxF,4EAA4E;QAC5E,QAAQ,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,4DAA4D;IAC5D,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;IAExC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACpB,qCAAqC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0EAA0E;IAC1E,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACtB,mEAAmE;YACnE,2DAA2D;YAC3D,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;YACvB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxD,MAAM,IAAI,2CAAoB,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;IAEvB,IAAI,CAAC;QACH,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,6BAA6B,YAAY,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@langadventurellc/task-trellis-mcp",
3
- "version": "1.0.0-rc.2",
3
+ "version": "1.0.0",
4
4
  "description": "An MCP server that helps AI coding agents break down projects into tasks and track their progress.",
5
5
  "homepage": "https://github.com/langadventurellc/task-trellis-mcp#readme",
6
6
  "bugs": {