@hhsw2015/task-master-ai 0.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +4072 -0
  2. package/LICENSE +25 -0
  3. package/README-task-master.md +648 -0
  4. package/README.md +415 -0
  5. package/dist/ai-services-unified-BgdcS4fE.js +7 -0
  6. package/dist/ai-services-unified-DVAKOPK0.js +1 -0
  7. package/dist/assets/.windsurfrules +524 -0
  8. package/dist/assets/AGENTS.md +435 -0
  9. package/dist/assets/GEMINI.md +110 -0
  10. package/dist/assets/claude/TM_COMMANDS_GUIDE.md +147 -0
  11. package/dist/assets/config.json +34 -0
  12. package/dist/assets/env.example +12 -0
  13. package/dist/assets/example_prd.txt +47 -0
  14. package/dist/assets/example_prd_rpg.txt +511 -0
  15. package/dist/assets/gitignore +25 -0
  16. package/dist/assets/hamster-art.txt +49 -0
  17. package/dist/assets/kiro-hooks/tm-code-change-task-tracker.kiro.hook +23 -0
  18. package/dist/assets/kiro-hooks/tm-complexity-analyzer.kiro.hook +16 -0
  19. package/dist/assets/kiro-hooks/tm-daily-standup-assistant.kiro.hook +13 -0
  20. package/dist/assets/kiro-hooks/tm-git-commit-task-linker.kiro.hook +13 -0
  21. package/dist/assets/kiro-hooks/tm-pr-readiness-checker.kiro.hook +13 -0
  22. package/dist/assets/kiro-hooks/tm-task-dependency-auto-progression.kiro.hook +17 -0
  23. package/dist/assets/kiro-hooks/tm-test-success-task-completer.kiro.hook +23 -0
  24. package/dist/assets/roocode/.roo/rules-architect/architect-rules +93 -0
  25. package/dist/assets/roocode/.roo/rules-ask/ask-rules +89 -0
  26. package/dist/assets/roocode/.roo/rules-code/code-rules +61 -0
  27. package/dist/assets/roocode/.roo/rules-debug/debug-rules +68 -0
  28. package/dist/assets/roocode/.roo/rules-orchestrator/orchestrator-rules +181 -0
  29. package/dist/assets/roocode/.roo/rules-test/test-rules +61 -0
  30. package/dist/assets/roocode/.roomodes +63 -0
  31. package/dist/assets/rules/cursor_rules.mdc +53 -0
  32. package/dist/assets/rules/dev_workflow.mdc +424 -0
  33. package/dist/assets/rules/hamster.mdc +173 -0
  34. package/dist/assets/rules/self_improve.mdc +72 -0
  35. package/dist/assets/rules/taskmaster.mdc +573 -0
  36. package/dist/assets/rules/taskmaster_hooks_workflow.mdc +59 -0
  37. package/dist/assets/scripts_README.md +445 -0
  38. package/dist/commands-D7m4KWx1.js +329 -0
  39. package/dist/config-manager-CvbfYtIR.js +1 -0
  40. package/dist/config-manager-cjltSxIS.js +270 -0
  41. package/dist/dependency-manager-CyOxi5uo.js +1078 -0
  42. package/dist/git-utils-DllbRE35.js +1 -0
  43. package/dist/git-utils-PBP1PRVP.js +1 -0
  44. package/dist/mcp-server.js +44 -0
  45. package/dist/profiles-DcD-JxPM.js +3528 -0
  46. package/dist/research-DN4RyyJY.js +1 -0
  47. package/dist/response-language-C5AwQSfD.js +1 -0
  48. package/dist/response-language-LzM2RD6-.js +1 -0
  49. package/dist/sentry-CBAZ4LSk.js +1 -0
  50. package/dist/tag-management-6HOtYZMj.js +1 -0
  51. package/dist/task-manager-BtFURFe0.js +1 -0
  52. package/dist/task-master.js +2 -0
  53. package/dist/update-subtask-by-id-DiWMqGfw.js +1 -0
  54. package/dist/update-task-by-id-eyL-PNVX.js +1 -0
  55. package/dist/utils-CGk8TL6x.js +1 -0
  56. package/index.js +160 -0
  57. package/package.json +183 -0
@@ -0,0 +1 @@
1
+ import"./ai-services-unified-BgdcS4fE.js";import"./config-manager-cjltSxIS.js";import"./git-utils-DllbRE35.js";import"./sentry-CBAZ4LSk.js";import{A as e}from"./dependency-manager-CyOxi5uo.js";import"./response-language-C5AwQSfD.js";export{e as performResearch};
@@ -0,0 +1 @@
1
+ import{B as e,X as t,f as n,q as r,yt as i}from"./config-manager-cjltSxIS.js";function a(a,o={}){let{mcpLog:s,projectRoot:c}=o,l=(e,...t)=>{s&&typeof s[e]==`function`&&s[e](...t)},u=t(null,{projectRoot:c}),d=e(c);if(i(`debug`,`Checking for config file using findConfigPath, found: ${u}`),i(`debug`,`Checking config file using isConfigFilePresent(), exists: ${d}`),!d)return{success:!1,error:{code:`CONFIG_MISSING`,message:`The configuration file is missing. Run "task-master init" to create it.`}};if(typeof a!=`string`||a.trim()===``)return{success:!1,error:{code:`INVALID_RESPONSE_LANGUAGE`,message:`Invalid response language: ${a}. Must be a non-empty string.`}};try{let e=n(c);return e.global.responseLanguage=a,r(e,c)?{success:!0,data:{responseLanguage:a,message:successMessage}}:{success:!1,error:{code:`WRITE_ERROR`,message:`Error writing updated configuration to configuration file`}}}catch(e){return l(`error`,`Error setting response language: ${e.message}`),{success:!1,error:{code:`SET_RESPONSE_LANGUAGE_ERROR`,message:e.message}}}}var o=a;export{o as t};
@@ -0,0 +1 @@
1
+ import"./config-manager-cjltSxIS.js";import"./git-utils-DllbRE35.js";import{t as e}from"./response-language-C5AwQSfD.js";export{e as default};
@@ -0,0 +1 @@
1
+ import{U as e,r as t}from"./config-manager-cjltSxIS.js";import{createHash as n}from"crypto";import*as r from"@sentry/node";let i=!1;function a(e){if(e)return n(`sha256`).update(e).digest(`hex`).substring(0,8)}function o(n={}){if(i)return;e(!0);try{if(!t(n.projectRoot)){console.log(`✓ Anonymous telemetry disabled per user preference. Set anonymousTelemetry: true in .taskmaster/config.json to re-enable.`);return}}catch{}finally{e(!1)}let a=n.dsn||`https://ce8c03ca1dd0da5b9837c6ba1b3a0f9d@o4510099843776512.ingest.us.sentry.io/4510381945585664`;if(a)try{r.init({dsn:a,environment:n.environment||process.env.NODE_ENV||`production`,integrations:[r.vercelAIIntegration({recordInputs:!0,recordOutputs:!0}),r.zodErrorsIntegration()],tracesSampleRate:n.tracesSampleRate??1,sendDefaultPii:n.sendDefaultPii??!0,debug:process.env.SENTRY_DEBUG===`true`}),i=!0,process.env.SENTRY_DEBUG===`true`&&(console.log(` DSN: ${a.substring(0,40)}...`),console.log(` Environment: ${n.environment||process.env.NODE_ENV||`production`}`),console.log(` Traces Sample Rate: ${n.tracesSampleRate??1}`))}catch(e){console.error(`Failed to initialize telemetry: ${e.message}`)}}function s(e,t={}){if(!i)return process.env.SENTRY_DEBUG===`true`&&console.log(`⚠️ Sentry not initialized, telemetry config not available`),null;let n={isEnabled:!0,recordInputs:!0,recordOutputs:!0};return e&&(n.functionId=e),Object.keys(t).length>0&&(n.metadata={},t.command&&(n.metadata.command=t.command),t.outputType&&(n.metadata.outputType=t.outputType),t.tag&&(n.metadata.tag=t.tag),t.taskId&&(n.metadata.taskId=t.taskId),t.userId&&(n.metadata.userId=t.userId),t.briefId&&(n.metadata.briefId=t.briefId),t.projectHash&&(n.metadata.projectHash=t.projectHash)),process.env.SENTRY_DEBUG===`true`&&console.log(`📊 Sentry telemetry config created:`,JSON.stringify(n,null,2)),n}export{a as n,o as r,s as t};
@@ -0,0 +1 @@
1
+ import"./ai-services-unified-BgdcS4fE.js";import"./config-manager-cjltSxIS.js";import"./git-utils-DllbRE35.js";import"./sentry-CBAZ4LSk.js";import{ct as e,dt as t,ft as n,ht as r,lt as i,mt as a,pt as o,st as s,ut as c}from"./dependency-manager-CyOxi5uo.js";import"./response-language-C5AwQSfD.js";export{s as copyTag,e as createTag,i as createTagFromBranch,c as deleteTag,t as renameTag,n as switchCurrentTag,o as tags,a as updateBranchTagMapping,r as useTag};
@@ -0,0 +1 @@
1
+ import"./ai-services-unified-BgdcS4fE.js";import{dt as e,wt as t}from"./config-manager-cjltSxIS.js";import"./git-utils-DllbRE35.js";import"./sentry-CBAZ4LSk.js";import{$ as n,A as r,C as i,D as a,E as o,I as s,J as c,K as l,L as u,M as d,N as f,O as p,P as m,Q as h,S as g,T as _,X as v,Y as y,Z as b,gt as x,j as S,k as C,q as w,w as T}from"./dependency-manager-CyOxi5uo.js";import{t as E}from"./response-language-C5AwQSfD.js";export{n as addSubtask,h as addTask,b as analyzeTaskComplexity,v as clearSubtasks,c as expandAllTasks,y as expandTask,x as findNextTask,e as findTaskById,w as isTaskDependentOn,l as listTasks,u as migrateProject,s as moveTask,m as parsePRD,r as performResearch,t as readComplexityReport,f as removeSubtask,S as removeTask,a as scopeDownTask,p as scopeUpTask,E as setResponseLanguage,_ as setTaskStatus,d as taskExists,o as updateSingleTaskStatus,T as updateSubtaskById,i as updateTaskById,g as updateTasks,C as validateStrength};
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import{U as e,cn as t,hn as n}from"./config-manager-cjltSxIS.js";import"./git-utils-DllbRE35.js";import{r}from"./sentry-CBAZ4LSk.js";import{join as i}from"node:path";import a from"dotenv";const o=process.cwd(),s=t();a.config({path:i(s,`.env`)}),r({projectRoot:s}),process.env.TASKMASTER_ORIGINAL_CWD=o,process.env.DEBUG===`1`&&console.error(`DEBUG - dev.js received args:`,process.argv.slice(2));try{await n.getInstance().hasValidSession()&&e(!0)}catch{e(!1)}const{runCLI:c}=await import(`./commands-D7m4KWx1.js`);c(process.argv);export{};
@@ -0,0 +1 @@
1
+ import"./ai-services-unified-BgdcS4fE.js";import"./config-manager-cjltSxIS.js";import"./git-utils-DllbRE35.js";import"./sentry-CBAZ4LSk.js";import{w as e}from"./dependency-manager-CyOxi5uo.js";import"./response-language-C5AwQSfD.js";export{e as default};
@@ -0,0 +1 @@
1
+ import"./ai-services-unified-BgdcS4fE.js";import"./config-manager-cjltSxIS.js";import"./git-utils-DllbRE35.js";import"./sentry-CBAZ4LSk.js";import{C as e}from"./dependency-manager-CyOxi5uo.js";import"./response-language-C5AwQSfD.js";export{e as default};
@@ -0,0 +1 @@
1
+ import{At as e,Ct as t,Dt as n,Et as r,Mt as i,Ot as a,St as o,Tt as s,_t as c,at as l,bt as u,ct as d,dt as f,ft as p,gt as m,ht as h,it as g,jt as _,kt as v,lt as y,mt as b,nt as x,ot as S,pt as C,rt as w,st as T,ut as E,vt as D,wt as O,xt as k,yt as A}from"./config-manager-cjltSxIS.js";import"./git-utils-DllbRE35.js";export{x as LOG_LEVELS,w as addComplexityToTask,g as aggregateTelemetry,l as createStateJson,S as disableSilentMode,T as enableSilentMode,d as ensureTagMetadata,y as findCycles,E as findProjectRoot,f as findTaskById,p as findTaskInComplexityReport,C as flattenTasksWithSubtasks,b as formatTaskId,h as getCurrentTag,m as getTasksForTag,c as isEmpty,D as isSilentMode,A as log,u as markMigrationForNotice,k as migrateConfigJson,o as normalizeTaskIds,t as performCompleteTagMigration,O as readComplexityReport,s as readJSON,r as resolveEnvVariable,n as resolveTag,a as taskExists,v as traverseDependencies,e as truncate,_ as withFileLockSync,i as writeJSON};
package/index.js ADDED
@@ -0,0 +1,160 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Task Master
5
+ * Copyright (c) 2025 Eyal Toledano, Ralph Khreish
6
+ *
7
+ * This software is licensed under the MIT License with Commons Clause.
8
+ * You may use this software for any purpose, including commercial applications,
9
+ * and modify and redistribute it freely, subject to the following restrictions:
10
+ *
11
+ * 1. You may not sell this software or offer it as a service.
12
+ * 2. The origin of this software must not be misrepresented.
13
+ * 3. Altered source versions must be plainly marked as such.
14
+ *
15
+ * For the full license text, see the LICENSE file in the root directory.
16
+ */
17
+
18
+ /**
19
+ * Claude Task Master
20
+ * A task management system for AI-driven development with Claude
21
+ */
22
+
23
+ // This file serves as the main entry point for the package
24
+ // The primary functionality is provided through the CLI commands
25
+
26
+ import { spawn } from 'child_process';
27
+ import { createRequire } from 'module';
28
+ import { dirname, resolve } from 'path';
29
+ import { fileURLToPath } from 'url';
30
+ import { Command } from 'commander';
31
+
32
+ const __filename = fileURLToPath(import.meta.url);
33
+ const __dirname = dirname(__filename);
34
+ const require = createRequire(import.meta.url);
35
+
36
+ // Get package information
37
+ const packageJson = require('./package.json');
38
+
39
+ // Export the path to the dev.js script for programmatic usage
40
+ export const devScriptPath = resolve(__dirname, './scripts/dev.js');
41
+
42
+ // Export a function to initialize a new project programmatically
43
+ export const initProject = async (options = {}) => {
44
+ const init = await import('./scripts/init.js');
45
+ return init.initializeProject(options);
46
+ };
47
+
48
+ // Export a function to run init as a CLI command
49
+ export const runInitCLI = async (options = {}) => {
50
+ try {
51
+ const init = await import('./scripts/init.js');
52
+ const result = await init.initializeProject(options);
53
+ return result;
54
+ } catch (error) {
55
+ console.error('Initialization failed:', error.message);
56
+ if (process.env.DEBUG === 'true') {
57
+ console.error('Debug stack trace:', error.stack);
58
+ }
59
+ throw error; // Re-throw to be handled by the command handler
60
+ }
61
+ };
62
+
63
+ // Export version information
64
+ export const version = packageJson.version;
65
+
66
+ // CLI implementation
67
+ if (import.meta.url === `file://${process.argv[1]}`) {
68
+ const program = new Command();
69
+
70
+ program
71
+ .name('task-master')
72
+ .description('Claude Task Master CLI')
73
+ .version(version);
74
+
75
+ program
76
+ .command('init')
77
+ .description('Initialize a new project')
78
+ .option('-y, --yes', 'Skip prompts and use default values')
79
+ .option('-n, --name <n>', 'Project name')
80
+ .option('-d, --description <description>', 'Project description')
81
+ .option('-v, --version <version>', 'Project version', '0.1.0')
82
+ .option('-a, --author <author>', 'Author name')
83
+ .option('--skip-install', 'Skip installing dependencies')
84
+ .option('--dry-run', 'Show what would be done without making changes')
85
+ .option('--aliases', 'Add shell aliases (tm, taskmaster, hamster, ham)')
86
+ .option('--no-aliases', 'Skip shell aliases (tm, taskmaster, hamster, ham)')
87
+ .option('--git', 'Initialize Git repository')
88
+ .option('--no-git', 'Skip Git repository initialization')
89
+ .option('--git-tasks', 'Store tasks in Git')
90
+ .option('--no-git-tasks', 'No Git storage of tasks')
91
+ .action(async (cmdOptions) => {
92
+ try {
93
+ await runInitCLI(cmdOptions);
94
+ } catch (err) {
95
+ console.error('Init failed:', err.message);
96
+ process.exit(1);
97
+ }
98
+ });
99
+
100
+ program
101
+ .command('dev')
102
+ .description('Run the dev.js script')
103
+ .allowUnknownOption(true)
104
+ .action(() => {
105
+ const args = process.argv.slice(process.argv.indexOf('dev') + 1);
106
+ const child = spawn('node', [devScriptPath, ...args], {
107
+ stdio: 'inherit',
108
+ cwd: process.cwd()
109
+ });
110
+
111
+ child.on('close', (code) => {
112
+ process.exit(code);
113
+ });
114
+ });
115
+
116
+ // Add shortcuts for common dev.js commands
117
+ program
118
+ .command('list')
119
+ .description('List all tasks')
120
+ .action(() => {
121
+ const child = spawn('node', [devScriptPath, 'list'], {
122
+ stdio: 'inherit',
123
+ cwd: process.cwd()
124
+ });
125
+
126
+ child.on('close', (code) => {
127
+ process.exit(code);
128
+ });
129
+ });
130
+
131
+ program
132
+ .command('next')
133
+ .description('Show the next task to work on')
134
+ .action(() => {
135
+ const child = spawn('node', [devScriptPath, 'next'], {
136
+ stdio: 'inherit',
137
+ cwd: process.cwd()
138
+ });
139
+
140
+ child.on('close', (code) => {
141
+ process.exit(code);
142
+ });
143
+ });
144
+
145
+ program
146
+ .command('generate')
147
+ .description('Generate task files')
148
+ .action(() => {
149
+ const child = spawn('node', [devScriptPath, 'generate'], {
150
+ stdio: 'inherit',
151
+ cwd: process.cwd()
152
+ });
153
+
154
+ child.on('close', (code) => {
155
+ process.exit(code);
156
+ });
157
+ });
158
+
159
+ program.parse(process.argv);
160
+ }
package/package.json ADDED
@@ -0,0 +1,183 @@
1
+ {
2
+ "name": "@hhsw2015/task-master-ai",
3
+ "version": "0.43.0",
4
+ "description": "A task management system for ambitious AI-driven development that doesn't overwhelm and confuse Cursor.",
5
+ "main": "index.js",
6
+ "type": "module",
7
+ "bin": {
8
+ "task-master": "dist/task-master.js",
9
+ "task-master-mcp": "dist/mcp-server.js",
10
+ "task-master-ai": "dist/mcp-server.js"
11
+ },
12
+ "publishConfig": {
13
+ "provenance": true,
14
+ "access": "public"
15
+ },
16
+ "workspaces": [
17
+ "apps/*",
18
+ "packages/*",
19
+ "."
20
+ ],
21
+ "scripts": {
22
+ "build": "npm run build:build-config && cross-env NODE_ENV=production tsdown",
23
+ "dev": "tsdown --watch",
24
+ "turbo:dev": "turbo dev",
25
+ "turbo:build": "turbo build",
26
+ "turbo:typecheck": "turbo typecheck",
27
+ "turbo:test": "turbo test",
28
+ "turbo:test:unit": "turbo test:unit",
29
+ "turbo:test:integration": "turbo test:integration",
30
+ "build:build-config": "npm run build -w @tm/build-config",
31
+ "test": "cross-env NODE_ENV=test node --experimental-vm-modules node_modules/.bin/jest",
32
+ "test:unit": "node --experimental-vm-modules node_modules/.bin/jest --testPathPattern=unit",
33
+ "test:integration": "node --experimental-vm-modules node_modules/.bin/jest --testPathPattern=integration",
34
+ "test:fails": "node --experimental-vm-modules node_modules/.bin/jest --onlyFailures",
35
+ "test:watch": "node --experimental-vm-modules node_modules/.bin/jest --watch",
36
+ "test:coverage": "node --experimental-vm-modules node_modules/.bin/jest --coverage",
37
+ "test:ci": "node --experimental-vm-modules node_modules/.bin/jest --coverage --ci",
38
+ "test:e2e": "./tests/e2e/run_e2e.sh",
39
+ "test:e2e-report": "./tests/e2e/run_e2e.sh --analyze-log",
40
+ "postpack": "chmod +x dist/task-master.js dist/mcp-server.js",
41
+ "changeset": "changeset",
42
+ "changeset:validate": "node .github/scripts/validate-changesets.mjs",
43
+ "version": "changeset version && node ./.github/scripts/sync-manifest-version.mjs && npm i --package-lock-only",
44
+ "release": "node ./.github/scripts/release.mjs",
45
+ "publish-packages": "turbo run build lint test && changeset version && changeset publish",
46
+ "inspector": "npx @modelcontextprotocol/inspector node dist/mcp-server.js",
47
+ "mcp-server": "node dist/mcp-server.js",
48
+ "format-check": "biome format .",
49
+ "format": "biome format . --write",
50
+ "deps:check": "manypkg check || echo 'Note: Workspace package version warnings are expected for internal @tm/* packages'",
51
+ "deps:fix": "manypkg fix"
52
+ },
53
+ "keywords": [
54
+ "claude",
55
+ "task",
56
+ "management",
57
+ "ai",
58
+ "development",
59
+ "cursor",
60
+ "anthropic",
61
+ "llm",
62
+ "mcp",
63
+ "context"
64
+ ],
65
+ "author": "Eyal Toledano",
66
+ "license": "MIT WITH Commons-Clause",
67
+ "dependencies": {
68
+ "@ai-sdk/amazon-bedrock": "^3.0.23",
69
+ "@ai-sdk/anthropic": "^2.0.18",
70
+ "@ai-sdk/azure": "^2.0.89",
71
+ "@ai-sdk/google": "^2.0.16",
72
+ "@ai-sdk/google-vertex": "^3.0.86",
73
+ "@ai-sdk/groq": "^2.0.21",
74
+ "@ai-sdk/mistral": "^2.0.16",
75
+ "@ai-sdk/openai": "^2.0.34",
76
+ "@ai-sdk/openai-compatible": "^1.0.25",
77
+ "@ai-sdk/perplexity": "^2.0.10",
78
+ "@ai-sdk/provider": "^2.0.0",
79
+ "@ai-sdk/provider-utils": "^3.0.10",
80
+ "@ai-sdk/xai": "^2.0.22",
81
+ "@aws-sdk/credential-providers": "^3.895.0",
82
+ "@inquirer/search": "^3.0.15",
83
+ "@openrouter/ai-sdk-provider": "^1.2.0",
84
+ "@sentry/node": "^10.27.0",
85
+ "@streamparser/json": "^0.0.22",
86
+ "@supabase/supabase-js": "^2.57.4",
87
+ "@types/turndown": "^5.0.6",
88
+ "ai": "^5.0.51",
89
+ "ai-sdk-provider-claude-code": "^2.2.4",
90
+ "ai-sdk-provider-codex-cli": "^0.7.0",
91
+ "ai-sdk-provider-gemini-cli": "^1.4.0",
92
+ "ajv": "^8.17.1",
93
+ "ajv-formats": "^3.0.1",
94
+ "boxen": "^8.0.1",
95
+ "chalk": "5.6.2",
96
+ "cli-highlight": "^2.1.11",
97
+ "cli-progress": "^3.12.0",
98
+ "cli-table3": "^0.6.5",
99
+ "commander": "^12.1.0",
100
+ "cors": "^2.8.5",
101
+ "date-fns": "^4.1.0",
102
+ "dotenv": "^16.6.1",
103
+ "express": "^4.21.2",
104
+ "fastmcp": "^3.23.1",
105
+ "figlet": "^1.8.0",
106
+ "fs-extra": "^11.3.0",
107
+ "fuse.js": "^7.1.0",
108
+ "gpt-tokens": "^1.3.14",
109
+ "gradient-string": "^3.0.0",
110
+ "helmet": "^8.1.0",
111
+ "inquirer": "^12.5.0",
112
+ "jsonc-parser": "^3.3.1",
113
+ "jsonrepair": "^3.13.0",
114
+ "jsonwebtoken": "^9.0.2",
115
+ "lru-cache": "^10.2.0",
116
+ "marked": "^15.0.12",
117
+ "marked-terminal": "^7.3.0",
118
+ "ollama-ai-provider-v2": "^1.3.1",
119
+ "open": "^10.2.0",
120
+ "ora": "^8.2.0",
121
+ "proper-lockfile": "^4.1.2",
122
+ "simple-git": "^3.28.0",
123
+ "steno": "^4.0.2",
124
+ "terminal-link": "^5.0.0",
125
+ "turndown": "^7.2.2",
126
+ "undici": "^7.16.0",
127
+ "uuid": "^11.1.0",
128
+ "zod": "^4.1.12"
129
+ },
130
+ "optionalDependencies": {
131
+ "@anthropic-ai/claude-code": "^2.0.59",
132
+ "@biomejs/cli-linux-x64": "^1.9.4"
133
+ },
134
+ "engines": {
135
+ "node": ">=20.0.0"
136
+ },
137
+ "packageManager": "npm@10.9.2",
138
+ "repository": {
139
+ "type": "git",
140
+ "url": "git+https://github.com/eyaltoledano/claude-task-master.git"
141
+ },
142
+ "homepage": "https://github.com/eyaltoledano/claude-task-master#readme",
143
+ "bugs": {
144
+ "url": "https://github.com/eyaltoledano/claude-task-master/issues"
145
+ },
146
+ "files": [
147
+ "dist/**",
148
+ "README-task-master.md",
149
+ "README.md",
150
+ "LICENSE",
151
+ "CHANGELOG.md"
152
+ ],
153
+ "overrides": {
154
+ "node-fetch": "^2.6.12",
155
+ "whatwg-url": "^11.0.0"
156
+ },
157
+ "devDependencies": {
158
+ "@anthropic-ai/mcpb": "^2.1.2",
159
+ "@biomejs/biome": "^1.9.4",
160
+ "@changesets/changelog-github": "^0.5.1",
161
+ "@changesets/cli": "^2.28.1",
162
+ "@manypkg/cli": "^0.25.1",
163
+ "@tm/ai-sdk-provider-grok-cli": "*",
164
+ "@tm/cli": "*",
165
+ "@types/fs-extra": "^11.0.4",
166
+ "@types/jest": "^29.5.14",
167
+ "@types/marked-terminal": "^6.1.1",
168
+ "@vitest/coverage-v8": "^4.0.10",
169
+ "concurrently": "^9.2.1",
170
+ "cross-env": "^10.0.0",
171
+ "execa": "^8.0.1",
172
+ "jest": "^29.7.0",
173
+ "jest-environment-node": "^29.7.0",
174
+ "mock-fs": "^5.5.0",
175
+ "prettier": "^3.5.3",
176
+ "supertest": "^7.1.0",
177
+ "ts-jest": "^29.4.2",
178
+ "tsdown": "^0.15.2",
179
+ "tsx": "^4.20.4",
180
+ "turbo": "2.5.6",
181
+ "typescript": "^5.9.2"
182
+ }
183
+ }