@opentask/taskin-task-server-mcp 0.3.0 → 0.5.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 +18 -0
- package/dist/documented-tools.test.js +14 -3
- package/dist/documented-tools.test.js.map +1 -1
- package/dist/task-server-mcp.d.ts +37 -4
- package/dist/task-server-mcp.d.ts.map +1 -1
- package/dist/task-server-mcp.js +125 -30
- package/dist/task-server-mcp.js.map +1 -1
- package/dist/task-server-mcp.mock.d.ts +9 -0
- package/dist/task-server-mcp.mock.d.ts.map +1 -1
- package/dist/task-server-mcp.mock.js +6 -0
- package/dist/task-server-mcp.mock.js.map +1 -1
- package/dist/task-server-mcp.on-status-change.test.d.ts +2 -0
- package/dist/task-server-mcp.on-status-change.test.d.ts.map +1 -0
- package/dist/task-server-mcp.on-status-change.test.js +47 -0
- package/dist/task-server-mcp.on-status-change.test.js.map +1 -0
- package/dist/task-server-mcp.types.d.ts +37 -1
- package/dist/task-server-mcp.types.d.ts.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -98,6 +98,8 @@ console.log('MCP server running');
|
|
|
98
98
|
## MCP Tools
|
|
99
99
|
|
|
100
100
|
- `list_tasks` - List tasks as JSON, without the markdown body. Filters:
|
|
101
|
+
- `prioritize_tasks` - Give every task a priority number, once and on purpose
|
|
102
|
+
- `list_groups` - List the task groups, each with its id and name
|
|
101
103
|
`status`, `type`, `assignee`, `open`, `closed`, `text`
|
|
102
104
|
- `start_task` - Start working on a task
|
|
103
105
|
- `finish_task` - Mark task as complete
|
|
@@ -105,6 +107,22 @@ console.log('MCP server running');
|
|
|
105
107
|
`get_task`, `pause_task` and `lint_tasks` appeared in this list before they
|
|
106
108
|
existed, and still do not.
|
|
107
109
|
|
|
110
|
+
### Parity with the CLI
|
|
111
|
+
|
|
112
|
+
`start_task` and `finish_task` are the same operation as `taskin start` and
|
|
113
|
+
`taskin finish` — including the side effects the project's `automation.level`
|
|
114
|
+
asks for. When the level auto-commits status changes (`assisted`, `autopilot`,
|
|
115
|
+
or a `commits.taskStatusChanges` override), both doors write the same
|
|
116
|
+
`docs(TASKS): task-… - atualiza status para …` commit; under `manual`, neither
|
|
117
|
+
does. This used to differ: the MCP path changed the status and committed
|
|
118
|
+
nothing, so the project history depended on which door you used (task-066).
|
|
119
|
+
|
|
120
|
+
This package stays git-agnostic — it only calls an optional `onStatusChange`
|
|
121
|
+
hook after a status-changing tool succeeds. The CLI wires that hook (see
|
|
122
|
+
`createMcpStatusCommitHook`); a plain programmatic embed can wire its own or
|
|
123
|
+
none. `list_tasks` is read-only and never triggers the hook, matching `taskin
|
|
124
|
+
list`, which also commits nothing.
|
|
125
|
+
|
|
108
126
|
## MCP Resources
|
|
109
127
|
|
|
110
128
|
- `task://{taskId}` - Get full task context
|
|
@@ -14,7 +14,12 @@ import { TaskMCPServer } from './task-server-mcp.js';
|
|
|
14
14
|
* item de lista nesses arquivos tem que existir no `listTools()`.
|
|
15
15
|
*/
|
|
16
16
|
const RAIZ = join(import.meta.dirname, '..', '..', '..');
|
|
17
|
-
const DOCUMENTOS = [
|
|
17
|
+
const DOCUMENTOS = [
|
|
18
|
+
'docs/MCP_CLAUDE_SETUP.md',
|
|
19
|
+
'docs/MCP_VSCODE_SETUP.md',
|
|
20
|
+
'packages/task-server-mcp/README.md',
|
|
21
|
+
'packages/cli/README.md',
|
|
22
|
+
];
|
|
18
23
|
/**
|
|
19
24
|
* Nomes citados como ferramenta, e nao em qualquer lugar do texto.
|
|
20
25
|
*
|
|
@@ -29,7 +34,13 @@ function ferramentasAnunciadas(markdown) {
|
|
|
29
34
|
for (const linha of markdown.split('\n')) {
|
|
30
35
|
for (const padrao of padroes) {
|
|
31
36
|
const nome = linha.match(padrao)?.[1];
|
|
32
|
-
|
|
37
|
+
/*
|
|
38
|
+
* Qualquer nome em posicao de anuncio conta. A versao anterior exigia
|
|
39
|
+
* sufixo `_task`/`_tasks`, uma convencao que valia quando as tres
|
|
40
|
+
* ferramentas eram sobre tarefas — e que calou quando `list_groups`
|
|
41
|
+
* chegou, deixando a guarda cega para ela.
|
|
42
|
+
*/
|
|
43
|
+
if (nome)
|
|
33
44
|
nomes.add(nome);
|
|
34
45
|
}
|
|
35
46
|
}
|
|
@@ -45,7 +56,7 @@ describe('ferramentas documentadas', () => {
|
|
|
45
56
|
const inexistentes = anunciadas.filter((nome) => !implementadas.has(nome));
|
|
46
57
|
expect(inexistentes).toEqual([]);
|
|
47
58
|
});
|
|
48
|
-
it('as
|
|
59
|
+
it('todas as ferramentas do servidor estao documentadas em algum lugar', () => {
|
|
49
60
|
const documentadas = new Set(DOCUMENTOS.flatMap((caminho) => [...ferramentasAnunciadas(readFileSync(join(RAIZ, caminho), 'utf-8'))]));
|
|
50
61
|
const ausentes = [...implementadas].filter((nome) => !documentadas.has(nome));
|
|
51
62
|
expect(ausentes).toEqual([]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documented-tools.test.js","sourceRoot":"","sources":["../src/documented-tools.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;;;;;;;GAUG;AACH,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEzD,MAAM,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"documented-tools.test.js","sourceRoot":"","sources":["../src/documented-tools.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;;;;;;;GAUG;AACH,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEzD,MAAM,UAAU,GAAG;IACjB,0BAA0B;IAC1B,0BAA0B;IAC1B,oCAAoC;IACpC,wBAAwB;CACzB,CAAC;AAEF;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,OAAO,GAAG,CAAC,0BAA0B,EAAE,wBAAwB,EAAE,sBAAsB,CAAC,CAAC;IAE/F,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACtC;;;;;eAKG;YACH,IAAI,IAAI;gBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC;QACjC,WAAW,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,EAA6B;KAC/E,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7E,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,0CAA0C,EAAE,CAAC,OAAO,EAAE,EAAE;QAC1E,MAAM,UAAU,GAAG,CAAC,GAAG,qBAAqB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAE1F,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3E,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,qBAAqB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CACxG,CAAC;QAEF,MAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9E,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ITaskManager } from '@opentask/taskin-task-manager';
|
|
2
2
|
import type { ITaskMCPServer, MCPConnectionOptions, MCPPrompt, MCPPromptGetParams, MCPPromptGetResult, MCPResourceListResult, MCPResourceReadParams, MCPServerConfig, MCPTool, MCPToolCallParams, MCPToolCallResult } from './task-server-mcp.types.js';
|
|
3
3
|
export declare class TaskMCPServer implements ITaskMCPServer {
|
|
4
4
|
private server;
|
|
5
5
|
private taskManager;
|
|
6
6
|
private config;
|
|
7
|
+
/**
|
|
8
|
+
* Injected side effect for status-changing tools. Undefined when the host
|
|
9
|
+
* wires no automation (e.g. a plain programmatic embed), in which case
|
|
10
|
+
* `start_task`/`finish_task` change status and nothing else — the pre-hook
|
|
11
|
+
* behavior.
|
|
12
|
+
*/
|
|
13
|
+
private onStatusChange?;
|
|
7
14
|
constructor(config: MCPServerConfig);
|
|
8
15
|
/**
|
|
9
16
|
* Setup MCP request handlers
|
|
@@ -11,8 +18,12 @@ export declare class TaskMCPServer implements ITaskMCPServer {
|
|
|
11
18
|
private setupHandlers;
|
|
12
19
|
/**
|
|
13
20
|
* Connect to MCP transport
|
|
21
|
+
*
|
|
22
|
+
* `MCPTransportType` tem um valor so, entao nao ha o que despachar. O ramo
|
|
23
|
+
* que existia aqui aceitava `'sse'` pelo tipo e recusava em tempo de
|
|
24
|
+
* execucao, ja com o provider inicializado.
|
|
14
25
|
*/
|
|
15
|
-
connect(
|
|
26
|
+
connect(_options: MCPConnectionOptions): Promise<void>;
|
|
16
27
|
/**
|
|
17
28
|
* Get server information
|
|
18
29
|
*/
|
|
@@ -44,6 +55,16 @@ export declare class TaskMCPServer implements ITaskMCPServer {
|
|
|
44
55
|
* Handle finish_task tool
|
|
45
56
|
*/
|
|
46
57
|
private handleFinishTask;
|
|
58
|
+
/**
|
|
59
|
+
* Run the injected status-change hook, if any.
|
|
60
|
+
*
|
|
61
|
+
* Best-effort on purpose: the task's status was already persisted by the
|
|
62
|
+
* manager, so a hook that throws (a git problem, say) must not turn a
|
|
63
|
+
* successful `start_task`/`finish_task` into a failed tool call. The failure
|
|
64
|
+
* is logged and the tool still reports success — same posture the CLI takes,
|
|
65
|
+
* where a failed auto-commit only drops the "Auto-committed" line.
|
|
66
|
+
*/
|
|
67
|
+
private notifyStatusChange;
|
|
47
68
|
/**
|
|
48
69
|
* List available prompts
|
|
49
70
|
*/
|
|
@@ -62,8 +83,20 @@ export declare class TaskMCPServer implements ITaskMCPServer {
|
|
|
62
83
|
* houve duas filtragens discordando no repositorio.
|
|
63
84
|
*/
|
|
64
85
|
private selecionarTarefas;
|
|
65
|
-
/**
|
|
66
|
-
|
|
86
|
+
/**
|
|
87
|
+
* Numeracao inicial de prioridade.
|
|
88
|
+
*
|
|
89
|
+
* Delega a mesma funcao que a CLI usa (`numerarPrioridade`), para as duas
|
|
90
|
+
* superficies nao divergirem na regra.
|
|
91
|
+
*/
|
|
92
|
+
/**
|
|
93
|
+
* Os grupos, quando o provider tem o conceito.
|
|
94
|
+
*
|
|
95
|
+
* Um provider sem grupos nao expoe o registro, e a ferramenta diz isso em vez
|
|
96
|
+
* de falhar — a ausencia e informacao, e nao erro.
|
|
97
|
+
*/
|
|
98
|
+
private handleListGroups;
|
|
99
|
+
private handlePrioritizeTasks;
|
|
67
100
|
private handleListTasks;
|
|
68
101
|
/**
|
|
69
102
|
* List available resources
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-server-mcp.d.ts","sourceRoot":"","sources":["../src/task-server-mcp.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"task-server-mcp.d.ts","sourceRoot":"","sources":["../src/task-server-mcp.ts"],"names":[],"mappings":"AAUA,OAAO,EAGL,KAAK,YAAY,EAOlB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,OAAO,EACP,iBAAiB,EACjB,iBAAiB,EAElB,MAAM,4BAA4B,CAAC;AA4BpC,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,MAAM,CAAoD;IAClE;;;;;OAKG;IACH,OAAO,CAAC,cAAc,CAAC,CAAuB;gBAElC,MAAM,EAAE,eAAe;IA6BnC;;OAEG;IACH,OAAO,CAAC,aAAa;IAsErB;;;;;;OAMG;IACG,OAAO,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D;;OAEG;IACH,aAAa;;;;;;;;;;IAab;;OAEG;IACH,SAAS,IAAI;QAAE,KAAK,EAAE,OAAO,EAAE,CAAA;KAAE;IA6EjC;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,iBAAiB;IAiDxC;;OAEG;YACW,eAAe;IA2B7B;;OAEG;YACW,gBAAgB;IAyC9B;;;;;;;;OAQG;YACW,kBAAkB;IAUhC;;OAEG;IACH,WAAW,IAAI;QAAE,OAAO,EAAE,SAAS,EAAE,CAAA;KAAE;IAwCvC;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAsFxE;;;;;;OAMG;YACW,iBAAiB;IAS/B;;;;;OAKG;IACH;;;;;OAKG;YACW,gBAAgB;YAiBhB,qBAAqB;YASrB,eAAe;IAU7B;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAarD;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,qBAAqB;;;;;;;IAsBhD;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,YAAY,EACzB,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GACjC,OAAO,CAAC,aAAa,CAAC,CAUxB"}
|
package/dist/task-server-mcp.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
2
2
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
3
|
import { CallToolRequestSchema, GetPromptRequestSchema, ListPromptsRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
4
|
-
import { filterTasks, summarizeTask } from '@opentask/taskin-task-manager';
|
|
4
|
+
import { filterCriteriaJsonSchema, filterTasks, ordenarTarefas, parseFilterCriteria, summarizeTask, } from '@opentask/taskin-task-manager';
|
|
5
5
|
import { TaskIdSchema } from '@opentask/taskin-types';
|
|
6
6
|
/**
|
|
7
7
|
* MCP Server for task management integration with LLMs
|
|
@@ -32,8 +32,16 @@ export class TaskMCPServer {
|
|
|
32
32
|
server;
|
|
33
33
|
taskManager;
|
|
34
34
|
config;
|
|
35
|
+
/**
|
|
36
|
+
* Injected side effect for status-changing tools. Undefined when the host
|
|
37
|
+
* wires no automation (e.g. a plain programmatic embed), in which case
|
|
38
|
+
* `start_task`/`finish_task` change status and nothing else — the pre-hook
|
|
39
|
+
* behavior.
|
|
40
|
+
*/
|
|
41
|
+
onStatusChange;
|
|
35
42
|
constructor(config) {
|
|
36
43
|
this.taskManager = config.taskManager;
|
|
44
|
+
this.onStatusChange = config.onStatusChange;
|
|
37
45
|
this.config = {
|
|
38
46
|
name: 'taskin-mcp-server',
|
|
39
47
|
version: '1.0.0',
|
|
@@ -120,16 +128,14 @@ export class TaskMCPServer {
|
|
|
120
128
|
}
|
|
121
129
|
/**
|
|
122
130
|
* Connect to MCP transport
|
|
131
|
+
*
|
|
132
|
+
* `MCPTransportType` tem um valor so, entao nao ha o que despachar. O ramo
|
|
133
|
+
* que existia aqui aceitava `'sse'` pelo tipo e recusava em tempo de
|
|
134
|
+
* execucao, ja com o provider inicializado.
|
|
123
135
|
*/
|
|
124
|
-
async connect(
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
await this.server.connect(transport);
|
|
128
|
-
this.log('MCP Server connected via stdio');
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
throw new Error(`Transport ${options.transport} not yet implemented`);
|
|
132
|
-
}
|
|
136
|
+
async connect(_options) {
|
|
137
|
+
await this.server.connect(new StdioServerTransport());
|
|
138
|
+
this.log('MCP Server connected via stdio');
|
|
133
139
|
}
|
|
134
140
|
/**
|
|
135
141
|
* Get server information
|
|
@@ -151,20 +157,43 @@ export class TaskMCPServer {
|
|
|
151
157
|
*/
|
|
152
158
|
listTools() {
|
|
153
159
|
const tools = [
|
|
160
|
+
{
|
|
161
|
+
name: 'list_groups',
|
|
162
|
+
description: 'List the task groups in this project, each with its id and name. The name lives in one place — a task only carries the group id — so renaming a group touches no task file.',
|
|
163
|
+
inputSchema: { type: 'object', properties: {} },
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
name: 'prioritize_tasks',
|
|
167
|
+
description: 'Give every task in the project a priority number, once and on purpose. Tasks that already carry one keep it; the gaps around them are filled. Running it again changes nothing. Use it on a project where only some tasks are prioritised — there, moving a task rewrites every file before it, and this ends that state.',
|
|
168
|
+
inputSchema: {
|
|
169
|
+
type: 'object',
|
|
170
|
+
properties: {
|
|
171
|
+
dryRun: { type: 'boolean', description: 'Report how many would be numbered, without writing' },
|
|
172
|
+
},
|
|
173
|
+
},
|
|
174
|
+
},
|
|
154
175
|
{
|
|
155
176
|
name: 'list_tasks',
|
|
156
177
|
description: 'List the tasks in the project. Returns a JSON array with what identifies each task — id, title, status, type, assignee — without the markdown body. Fetch a task body by id after choosing one.',
|
|
178
|
+
/*
|
|
179
|
+
* O schema JSON dos criterios sai do schema unico em `task-manager`, o
|
|
180
|
+
* mesmo que valida a chamada e gera as flags da CLI — nao de uma lista
|
|
181
|
+
* escrita a mao aqui.
|
|
182
|
+
*/
|
|
157
183
|
inputSchema: {
|
|
158
|
-
|
|
184
|
+
...filterCriteriaJsonSchema(),
|
|
159
185
|
properties: {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
186
|
+
...filterCriteriaJsonSchema().properties,
|
|
187
|
+
/*
|
|
188
|
+
* `sort` nao vem do schema de criterios de proposito: ordenar nao
|
|
189
|
+
* restringe nada. Fica ao lado, com o mesmo vocabulario do quadro
|
|
190
|
+
* de priorizacao do dashboard.
|
|
191
|
+
*/
|
|
192
|
+
sort: {
|
|
193
|
+
type: 'string',
|
|
194
|
+
description: 'Order: manual (priority), diff-asc or diff-desc. Defaults to manual.',
|
|
195
|
+
},
|
|
166
196
|
},
|
|
167
|
-
required: [],
|
|
168
197
|
},
|
|
169
198
|
},
|
|
170
199
|
{
|
|
@@ -205,6 +234,10 @@ export class TaskMCPServer {
|
|
|
205
234
|
try {
|
|
206
235
|
this.log(`Calling tool: ${params.name}`, params.arguments);
|
|
207
236
|
switch (params.name) {
|
|
237
|
+
case 'list_groups':
|
|
238
|
+
return await this.handleListGroups();
|
|
239
|
+
case 'prioritize_tasks':
|
|
240
|
+
return await this.handlePrioritizeTasks(params.arguments ?? {});
|
|
208
241
|
case 'list_tasks':
|
|
209
242
|
return await this.handleListTasks(params.arguments ?? {});
|
|
210
243
|
case 'start_task': {
|
|
@@ -245,6 +278,7 @@ export class TaskMCPServer {
|
|
|
245
278
|
*/
|
|
246
279
|
async handleStartTask(taskId) {
|
|
247
280
|
const task = await this.taskManager.startTask(taskId);
|
|
281
|
+
await this.notifyStatusChange(task.id, task.status);
|
|
248
282
|
return {
|
|
249
283
|
content: [
|
|
250
284
|
{
|
|
@@ -267,7 +301,14 @@ export class TaskMCPServer {
|
|
|
267
301
|
* Handle finish_task tool
|
|
268
302
|
*/
|
|
269
303
|
async handleFinishTask(taskId) {
|
|
270
|
-
|
|
304
|
+
/*
|
|
305
|
+
* O relato dos criterios em aberto viaja junto: um agente que fecha uma
|
|
306
|
+
* tarefa precisa ver o que ficou para tras tanto quanto uma pessoa — foi
|
|
307
|
+
* justamente um agente que fechou quatro tarefas com o checklist inteiro em
|
|
308
|
+
* aberto.
|
|
309
|
+
*/
|
|
310
|
+
const { task, blockers } = await this.taskManager.finishTaskComRelato(taskId);
|
|
311
|
+
await this.notifyStatusChange(task.id, task.status);
|
|
271
312
|
return {
|
|
272
313
|
content: [
|
|
273
314
|
{
|
|
@@ -281,11 +322,38 @@ export class TaskMCPServer {
|
|
|
281
322
|
status: task.status,
|
|
282
323
|
type: task.type,
|
|
283
324
|
},
|
|
325
|
+
/*
|
|
326
|
+
* O que ficou em aberto viaja na resposta, e nao so no texto: um
|
|
327
|
+
* agente precisa poder **reagir** a isso, e nao apenas ler.
|
|
328
|
+
*/
|
|
329
|
+
openCriteria: blockers,
|
|
330
|
+
...(blockers.length > 0 && {
|
|
331
|
+
hint: 'Tick these in the task file, or say why they were dropped: "— adiado: <reason>".',
|
|
332
|
+
}),
|
|
284
333
|
}, null, 2),
|
|
285
334
|
},
|
|
286
335
|
],
|
|
287
336
|
};
|
|
288
337
|
}
|
|
338
|
+
/**
|
|
339
|
+
* Run the injected status-change hook, if any.
|
|
340
|
+
*
|
|
341
|
+
* Best-effort on purpose: the task's status was already persisted by the
|
|
342
|
+
* manager, so a hook that throws (a git problem, say) must not turn a
|
|
343
|
+
* successful `start_task`/`finish_task` into a failed tool call. The failure
|
|
344
|
+
* is logged and the tool still reports success — same posture the CLI takes,
|
|
345
|
+
* where a failed auto-commit only drops the "Auto-committed" line.
|
|
346
|
+
*/
|
|
347
|
+
async notifyStatusChange(taskId, status) {
|
|
348
|
+
if (!this.onStatusChange)
|
|
349
|
+
return;
|
|
350
|
+
try {
|
|
351
|
+
await this.onStatusChange({ taskId, status });
|
|
352
|
+
}
|
|
353
|
+
catch (error) {
|
|
354
|
+
this.log('onStatusChange hook failed:', error);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
289
357
|
/**
|
|
290
358
|
* List available prompts
|
|
291
359
|
*/
|
|
@@ -418,23 +486,50 @@ Let me start by marking the task as done using the finish_task tool.`,
|
|
|
418
486
|
* que a resposta aqui e a de `taskin list --json` nao possam divergir — ja
|
|
419
487
|
* houve duas filtragens discordando no repositorio.
|
|
420
488
|
*/
|
|
421
|
-
async selecionarTarefas(criteria) {
|
|
489
|
+
async selecionarTarefas(criteria, modo = 'manual') {
|
|
422
490
|
const tasks = await this.taskManager.getAllTasks();
|
|
423
|
-
|
|
491
|
+
/*
|
|
492
|
+
* Ordenar antes de resumir: o resumo expoe `priority`, e a ordenacao
|
|
493
|
+
* trabalha com `order` — a traducao acontece depois, e nao no meio.
|
|
494
|
+
*/
|
|
495
|
+
return ordenarTarefas(filterTasks(tasks, criteria), modo).map(summarizeTask);
|
|
424
496
|
}
|
|
425
|
-
/**
|
|
426
|
-
|
|
497
|
+
/**
|
|
498
|
+
* Numeracao inicial de prioridade.
|
|
499
|
+
*
|
|
500
|
+
* Delega a mesma funcao que a CLI usa (`numerarPrioridade`), para as duas
|
|
501
|
+
* superficies nao divergirem na regra.
|
|
502
|
+
*/
|
|
503
|
+
/**
|
|
504
|
+
* Os grupos, quando o provider tem o conceito.
|
|
505
|
+
*
|
|
506
|
+
* Um provider sem grupos nao expoe o registro, e a ferramenta diz isso em vez
|
|
507
|
+
* de falhar — a ausencia e informacao, e nao erro.
|
|
508
|
+
*/
|
|
509
|
+
async handleListGroups() {
|
|
510
|
+
const registro = this.taskManager.groupRegistry;
|
|
511
|
+
if (!registro) {
|
|
512
|
+
return {
|
|
513
|
+
content: [{ type: 'text', text: JSON.stringify({ supported: false, groups: [] }, null, 2) }],
|
|
514
|
+
isError: false,
|
|
515
|
+
};
|
|
516
|
+
}
|
|
517
|
+
const grupos = await registro.listGroups();
|
|
427
518
|
return {
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
519
|
+
content: [{ type: 'text', text: JSON.stringify({ supported: true, groups: grupos }, null, 2) }],
|
|
520
|
+
isError: false,
|
|
521
|
+
};
|
|
522
|
+
}
|
|
523
|
+
async handlePrioritizeTasks(args) {
|
|
524
|
+
const resultado = await this.taskManager.prioritizeAll({ dryRun: args.dryRun === true });
|
|
525
|
+
return {
|
|
526
|
+
content: [{ type: 'text', text: JSON.stringify(resultado, null, 2) }],
|
|
527
|
+
isError: false,
|
|
434
528
|
};
|
|
435
529
|
}
|
|
436
530
|
async handleListTasks(args) {
|
|
437
|
-
const
|
|
531
|
+
const modo = args.sort === 'diff-asc' || args.sort === 'diff-desc' ? args.sort : 'manual';
|
|
532
|
+
const tarefas = await this.selecionarTarefas(parseFilterCriteria(args), modo);
|
|
438
533
|
return {
|
|
439
534
|
content: [{ type: 'text', text: JSON.stringify(tarefas, null, 2) }],
|
|
440
535
|
isError: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-server-mcp.js","sourceRoot":"","sources":["../src/task-server-mcp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task-server-mcp.js","sourceRoot":"","sources":["../src/task-server-mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,15 @@ export declare class MockMCPTaskManager implements ITaskManager {
|
|
|
23
23
|
* servidor MCP passou a listar tarefas, entao acompanha a assinatura real.
|
|
24
24
|
*/
|
|
25
25
|
getAllTasks(): Promise<Task[]>;
|
|
26
|
+
finishTaskComRelato(taskId: TaskId): Promise<{
|
|
27
|
+
task: Task;
|
|
28
|
+
blockers: [];
|
|
29
|
+
}>;
|
|
30
|
+
prioritizeAll(): Promise<{
|
|
31
|
+
total: number;
|
|
32
|
+
withoutPriority: number;
|
|
33
|
+
changed: number;
|
|
34
|
+
}>;
|
|
26
35
|
/**
|
|
27
36
|
* Get task by ID (for testing)
|
|
28
37
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-server-mcp.mock.d.ts","sourceRoot":"","sources":["../src/task-server-mcp.mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACnH,OAAO,EAAe,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,KAAK,CAAgC;;IAuBvC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAexC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezC,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAajE,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAUjC;;;;;OAKG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"task-server-mcp.mock.d.ts","sourceRoot":"","sources":["../src/task-server-mcp.mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACnH,OAAO,EAAe,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,KAAK,CAAgC;;IAuBvC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAexC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezC,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAajE,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAUjC;;;;;OAKG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAI9B,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,EAAE,CAAA;KAAE,CAAC;IAI1E,aAAa,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAI3F;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;CAG1C;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAQ/F;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;wBACJ,MAAM;;;;;;yBAKL,MAAM;;;;;;CAI5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB;4BACL,MAAM;;;;;;6BAKL,MAAM;;;;;;0BAKT,MAAM;;;;;;CAI7B,CAAC"}
|
|
@@ -104,6 +104,12 @@ export class MockMCPTaskManager {
|
|
|
104
104
|
async getAllTasks() {
|
|
105
105
|
return Array.from(this.tasks.values());
|
|
106
106
|
}
|
|
107
|
+
async finishTaskComRelato(taskId) {
|
|
108
|
+
return { task: await this.finishTask(taskId), blockers: [] };
|
|
109
|
+
}
|
|
110
|
+
async prioritizeAll() {
|
|
111
|
+
return { total: this.tasks.size, withoutPriority: 0, changed: 0 };
|
|
112
|
+
}
|
|
107
113
|
/**
|
|
108
114
|
* Get task by ID (for testing)
|
|
109
115
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-server-mcp.mock.js","sourceRoot":"","sources":["../src/task-server-mcp.mock.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task-server-mcp.mock.js","sourceRoot":"","sources":["../src/task-server-mcp.mock.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-server-mcp.on-status-change.test.d.ts","sourceRoot":"","sources":["../src/task-server-mcp.on-status-change.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { parseTaskId } from '@opentask/taskin-types';
|
|
2
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
3
|
+
import { TaskMCPServer } from './task-server-mcp.js';
|
|
4
|
+
import { createMockMCPServerConfig, mockToolCalls } from './task-server-mcp.mock.js';
|
|
5
|
+
describe('TaskMCPServer — onStatusChange hook', () => {
|
|
6
|
+
it('invokes the hook with the resulting status after start_task', async () => {
|
|
7
|
+
const changes = [];
|
|
8
|
+
const server = new TaskMCPServer(createMockMCPServerConfig({ onStatusChange: (change) => void changes.push(change) }));
|
|
9
|
+
await server.callTool(mockToolCalls.startTask('001'));
|
|
10
|
+
expect(changes).toEqual([{ taskId: parseTaskId('001'), status: 'in-progress' }]);
|
|
11
|
+
});
|
|
12
|
+
it('invokes the hook with the resulting status after finish_task', async () => {
|
|
13
|
+
const changes = [];
|
|
14
|
+
const server = new TaskMCPServer(createMockMCPServerConfig({ onStatusChange: (change) => void changes.push(change) }));
|
|
15
|
+
await server.callTool(mockToolCalls.finishTask('001'));
|
|
16
|
+
expect(changes).toEqual([{ taskId: parseTaskId('001'), status: 'done' }]);
|
|
17
|
+
});
|
|
18
|
+
it('does not invoke the hook for the read-only list_tasks', async () => {
|
|
19
|
+
const onStatusChange = vi.fn();
|
|
20
|
+
const server = new TaskMCPServer(createMockMCPServerConfig({ onStatusChange }));
|
|
21
|
+
await server.callTool({ name: 'list_tasks', arguments: {} });
|
|
22
|
+
expect(onStatusChange).not.toHaveBeenCalled();
|
|
23
|
+
});
|
|
24
|
+
it('does not invoke the hook when the status change fails', async () => {
|
|
25
|
+
const onStatusChange = vi.fn();
|
|
26
|
+
const server = new TaskMCPServer(createMockMCPServerConfig({ onStatusChange }));
|
|
27
|
+
// 002 is already in-progress in the mock, so start_task throws.
|
|
28
|
+
const result = await server.callTool(mockToolCalls.startTask('002'));
|
|
29
|
+
expect(result.isError).toBe(true);
|
|
30
|
+
expect(onStatusChange).not.toHaveBeenCalled();
|
|
31
|
+
});
|
|
32
|
+
it('still succeeds when no hook is wired (pre-hook behavior)', async () => {
|
|
33
|
+
const server = new TaskMCPServer(createMockMCPServerConfig());
|
|
34
|
+
const result = await server.callTool(mockToolCalls.startTask('001'));
|
|
35
|
+
expect(result.isError).toBeFalsy();
|
|
36
|
+
});
|
|
37
|
+
it('reports success even if the hook throws — the status already changed', async () => {
|
|
38
|
+
const server = new TaskMCPServer(createMockMCPServerConfig({
|
|
39
|
+
onStatusChange: () => {
|
|
40
|
+
throw new Error('git exploded');
|
|
41
|
+
},
|
|
42
|
+
}));
|
|
43
|
+
const result = await server.callTool(mockToolCalls.startTask('001'));
|
|
44
|
+
expect(result.isError).toBeFalsy();
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=task-server-mcp.on-status-change.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-server-mcp.on-status-change.test.js","sourceRoot":"","sources":["../src/task-server-mcp.on-status-change.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,25 @@
|
|
|
1
1
|
import type { ITaskManager } from '@opentask/taskin-task-manager';
|
|
2
|
+
import type { TaskId, TaskStatus } from '@opentask/taskin-types';
|
|
3
|
+
/**
|
|
4
|
+
* A task status transition the MCP server just performed, handed to the
|
|
5
|
+
* `onStatusChange` hook so the host can mirror whatever side effect the CLI
|
|
6
|
+
* does for the same operation (e.g. the auto-commit of the status change).
|
|
7
|
+
*/
|
|
8
|
+
export interface TaskStatusChange {
|
|
9
|
+
taskId: TaskId;
|
|
10
|
+
status: TaskStatus;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Called after `start_task`/`finish_task` change a task's status.
|
|
14
|
+
*
|
|
15
|
+
* The MCP package speaks only to `ITaskManager` and must stay agnostic of git
|
|
16
|
+
* and of the project's automation config — so the effect that the CLI performs
|
|
17
|
+
* (committing the status change when `automation.level` asks for it) is injected
|
|
18
|
+
* here by whoever wires the server, not implemented in this package. Kept
|
|
19
|
+
* best-effort by the server: a failing hook is logged, never turned into a
|
|
20
|
+
* failed tool call, because the status change itself already succeeded.
|
|
21
|
+
*/
|
|
22
|
+
export type TaskStatusChangeHook = (change: TaskStatusChange) => Promise<void> | void;
|
|
2
23
|
/**
|
|
3
24
|
* MCP Server configuration
|
|
4
25
|
*/
|
|
@@ -7,6 +28,13 @@ export interface MCPServerConfig {
|
|
|
7
28
|
* TaskManager instance to expose via MCP
|
|
8
29
|
*/
|
|
9
30
|
taskManager: ITaskManager;
|
|
31
|
+
/**
|
|
32
|
+
* Optional hook invoked after a status-changing tool (`start_task`,
|
|
33
|
+
* `finish_task`) succeeds. This is the seam that lets the MCP path honor the
|
|
34
|
+
* project's `automation.level` without this package depending on git: the CLI
|
|
35
|
+
* wires a hook that commits the status change exactly as `taskin start` does.
|
|
36
|
+
*/
|
|
37
|
+
onStatusChange?: TaskStatusChangeHook;
|
|
10
38
|
/**
|
|
11
39
|
* Server name
|
|
12
40
|
* @default 'taskin-mcp-server'
|
|
@@ -241,8 +269,16 @@ export interface ITaskMCPServer {
|
|
|
241
269
|
}
|
|
242
270
|
/**
|
|
243
271
|
* MCP Transport type
|
|
272
|
+
*
|
|
273
|
+
* Um so, e de proposito. O tipo dizia `'stdio' | 'sse'`, a CLI anunciava as
|
|
274
|
+
* duas, e `connect` respondia `Transport sse not yet implemented` — depois de
|
|
275
|
+
* ja ter inicializado o provider. Opcao exposta sem implementacao e defeito,
|
|
276
|
+
* nao detalhe: o tipo volta a modelar o que existe.
|
|
277
|
+
*
|
|
278
|
+
* Quando houver um segundo transporte, ele entra aqui **junto** com a sua
|
|
279
|
+
* implementacao, e nao antes.
|
|
244
280
|
*/
|
|
245
|
-
export type MCPTransportType = 'stdio'
|
|
281
|
+
export type MCPTransportType = 'stdio';
|
|
246
282
|
/**
|
|
247
283
|
* MCP Connection options
|
|
248
284
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-server-mcp.types.d.ts","sourceRoot":"","sources":["../src/task-server-mcp.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"task-server-mcp.types.d.ts","sourceRoot":"","sources":["../src/task-server-mcp.types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opentask/taskin-task-server-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Model Context Protocol (MCP) server for task management integration with LLMs",
|
|
5
5
|
"motivation": "Enable LLMs to interact with task management systems",
|
|
6
6
|
"solve": "Provides MCP server implementation for task operations",
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
21
|
-
"@opentask/taskin-
|
|
22
|
-
"@opentask/taskin-
|
|
23
|
-
"@opentask/taskin-
|
|
21
|
+
"@opentask/taskin-task-manager": "3.2.0",
|
|
22
|
+
"@opentask/taskin-types": "2.3.0",
|
|
23
|
+
"@opentask/taskin-file-system-provider": "3.3.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/node": "^24.10.1",
|