@grigoreo-dev/otask-mcp 1.2.1 → 1.3.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 +33 -19
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/mcp-http.js +30 -10
- package/dist/mcp-http.js.map +1 -1
- package/dist/schemas/task.d.ts +27 -27
- package/dist/schemas/task.d.ts.map +1 -1
- package/dist/schemas/task.js +9 -3
- package/dist/schemas/task.js.map +1 -1
- package/dist/schemas/workspace.d.ts +21 -21
- package/dist/schemas/workspace.d.ts.map +1 -1
- package/dist/schemas/workspace.js +8 -3
- package/dist/schemas/workspace.js.map +1 -1
- package/dist/server.d.ts +2 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +8 -4
- package/dist/server.js.map +1 -1
- package/dist/services/scope.d.ts +45 -0
- package/dist/services/scope.d.ts.map +1 -0
- package/dist/services/scope.js +147 -0
- package/dist/services/scope.js.map +1 -0
- package/dist/tools/add-comment.d.ts +1 -1
- package/dist/tools/add-comment.d.ts.map +1 -1
- package/dist/tools/add-comment.js +8 -5
- package/dist/tools/add-comment.js.map +1 -1
- package/dist/tools/archive-task.d.ts +1 -1
- package/dist/tools/archive-task.d.ts.map +1 -1
- package/dist/tools/archive-task.js +8 -5
- package/dist/tools/archive-task.js.map +1 -1
- package/dist/tools/create-task.d.ts +1 -1
- package/dist/tools/create-task.d.ts.map +1 -1
- package/dist/tools/create-task.js +7 -7
- package/dist/tools/create-task.js.map +1 -1
- package/dist/tools/get-task.d.ts +1 -1
- package/dist/tools/get-task.d.ts.map +1 -1
- package/dist/tools/get-task.js +6 -4
- package/dist/tools/get-task.js.map +1 -1
- package/dist/tools/list-board.d.ts +1 -1
- package/dist/tools/list-board.d.ts.map +1 -1
- package/dist/tools/list-board.js +13 -9
- package/dist/tools/list-board.js.map +1 -1
- package/dist/tools/list-comments.d.ts +1 -1
- package/dist/tools/list-comments.d.ts.map +1 -1
- package/dist/tools/list-comments.js +8 -5
- package/dist/tools/list-comments.js.map +1 -1
- package/dist/tools/list-members.d.ts +1 -1
- package/dist/tools/list-members.d.ts.map +1 -1
- package/dist/tools/list-members.js +5 -3
- package/dist/tools/list-members.js.map +1 -1
- package/dist/tools/list-project-tasks.d.ts +1 -1
- package/dist/tools/list-project-tasks.d.ts.map +1 -1
- package/dist/tools/list-project-tasks.js +6 -5
- package/dist/tools/list-project-tasks.js.map +1 -1
- package/dist/tools/list-projects.d.ts +1 -1
- package/dist/tools/list-projects.d.ts.map +1 -1
- package/dist/tools/list-projects.js +5 -3
- package/dist/tools/list-projects.js.map +1 -1
- package/dist/tools/list-tags.d.ts +1 -1
- package/dist/tools/list-tags.d.ts.map +1 -1
- package/dist/tools/list-tags.js +5 -3
- package/dist/tools/list-tags.js.map +1 -1
- package/dist/tools/move-task.d.ts +1 -1
- package/dist/tools/move-task.d.ts.map +1 -1
- package/dist/tools/move-task.js +8 -5
- package/dist/tools/move-task.js.map +1 -1
- package/dist/tools/types.d.ts +2 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/update-task.d.ts +1 -1
- package/dist/tools/update-task.d.ts.map +1 -1
- package/dist/tools/update-task.js +10 -7
- package/dist/tools/update-task.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { WsSlugSchema, } from "../schemas/workspace.js";
|
|
2
2
|
import { agentListResult } from "../services/format.js";
|
|
3
|
+
import { resolveWsSlug } from "../services/scope.js";
|
|
3
4
|
import { compactMember } from "../services/task-mapper.js";
|
|
4
5
|
import { jsonToolResult, toolError } from "./helpers.js";
|
|
5
|
-
export function createListMembersTool({ api, }) {
|
|
6
|
+
export function createListMembersTool({ api, scope, }) {
|
|
6
7
|
return {
|
|
7
8
|
name: "otask_list_members",
|
|
8
9
|
config: {
|
|
@@ -10,7 +11,7 @@ export function createListMembersTool({ api, }) {
|
|
|
10
11
|
description: `List workspace members (performers for assignment).
|
|
11
12
|
|
|
12
13
|
Args:
|
|
13
|
-
- ws_slug:
|
|
14
|
+
- ws_slug: optional if OTASK_DEFAULT_WS is set
|
|
14
15
|
|
|
15
16
|
Returns compact members: id, name, email, status_text.
|
|
16
17
|
|
|
@@ -25,7 +26,8 @@ Docs: https://api.otask.ru/docs`,
|
|
|
25
26
|
},
|
|
26
27
|
handler: async ({ ws_slug }) => {
|
|
27
28
|
try {
|
|
28
|
-
const
|
|
29
|
+
const ws = resolveWsSlug(ws_slug, scope);
|
|
30
|
+
const members = await api.listMembers(ws);
|
|
29
31
|
const items = members.map((m) => compactMember((m ?? {})));
|
|
30
32
|
const payload = agentListResult(`${items.length} member(s)`, items);
|
|
31
33
|
return jsonToolResult(payload, payload);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-members.js","sourceRoot":"","sources":["../../src/tools/list-members.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAEb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,qBAAqB,CAAC,EACpC,GAAG,
|
|
1
|
+
{"version":3,"file":"list-members.js","sourceRoot":"","sources":["../../src/tools/list-members.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAEb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,qBAAqB,CAAC,EACpC,GAAG,EACH,KAAK,GACI;IACT,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,MAAM,EAAE;YACN,KAAK,EAAE,qBAAqB;YAC5B,WAAW,EAAE;;;;;;;gCAOa;YAC1B,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE;gBACX,YAAY,EAAE,IAAI;gBAClB,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,IAAI;aACpB;SACF;QACD,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YAC7B,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACzC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9B,aAAa,CACX,CAAC,CAAC,IAAI,EAAE,CAMP,CACF,CACF,CAAC;gBACF,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,KAAK,CAAC,MAAM,YAAY,EAAE,KAAK,CAAC,CAAC;gBACpE,OAAO,cAAc,CAAC,OAAO,EAAE,OAA6C,CAAC,CAAC;YAChF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { type ListProjectTasksInput } from "../schemas/workspace.js";
|
|
2
2
|
import type { ToolDefinition, ToolDeps } from "./types.js";
|
|
3
|
-
export declare function createListProjectTasksTool({ api,
|
|
3
|
+
export declare function createListProjectTasksTool({ api, scope, }: ToolDeps): ToolDefinition<ListProjectTasksInput>;
|
|
4
4
|
//# sourceMappingURL=list-project-tasks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-project-tasks.d.ts","sourceRoot":"","sources":["../../src/tools/list-project-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"list-project-tasks.d.ts","sourceRoot":"","sources":["../../src/tools/list-project-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AAQjC,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3D,wBAAgB,0BAA0B,CAAC,EACzC,GAAG,EACH,KAAK,GACN,EAAE,QAAQ,GAAG,cAAc,CAAC,qBAAqB,CAAC,CA4DlD"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ListProjectTasksInputSchema, } from "../schemas/workspace.js";
|
|
2
2
|
import { agentListResult } from "../services/format.js";
|
|
3
|
-
import {
|
|
3
|
+
import { resolveProjectSlug, resolveWsSlug, } from "../services/scope.js";
|
|
4
4
|
import { compactTask } from "../services/task-mapper.js";
|
|
5
5
|
import { jsonToolResult, toolError } from "./helpers.js";
|
|
6
|
-
export function createListProjectTasksTool({ api,
|
|
6
|
+
export function createListProjectTasksTool({ api, scope, }) {
|
|
7
7
|
return {
|
|
8
8
|
name: "otask_list_project_tasks",
|
|
9
9
|
config: {
|
|
@@ -11,7 +11,7 @@ export function createListProjectTasksTool({ api, guard, }) {
|
|
|
11
11
|
description: `List tasks in a project. Project must be on the allow-list when configured.
|
|
12
12
|
|
|
13
13
|
Args:
|
|
14
|
-
- ws_slug, project_slug:
|
|
14
|
+
- ws_slug, project_slug: optional if OTASK_DEFAULT_WS / OTASK_DEFAULT_PROJECT set
|
|
15
15
|
- page, status_id, board_id, board_column_id: optional filters
|
|
16
16
|
|
|
17
17
|
Returns compact tasks via agent list envelope.
|
|
@@ -27,7 +27,8 @@ Docs: https://api.otask.ru/docs`,
|
|
|
27
27
|
},
|
|
28
28
|
handler: async ({ ws_slug, project_slug, page, status_id, board_id, board_column_id, }) => {
|
|
29
29
|
try {
|
|
30
|
-
|
|
30
|
+
const ws = resolveWsSlug(ws_slug, scope);
|
|
31
|
+
const project = await resolveProjectSlug(project_slug, scope, () => api.listProjects(ws));
|
|
31
32
|
const query = {};
|
|
32
33
|
if (page !== undefined)
|
|
33
34
|
query.page = page;
|
|
@@ -38,7 +39,7 @@ Docs: https://api.otask.ru/docs`,
|
|
|
38
39
|
if (board_column_id !== undefined)
|
|
39
40
|
query.board_column_id = board_column_id;
|
|
40
41
|
const hasQuery = Object.keys(query).length > 0;
|
|
41
|
-
const result = await api.listProjectTasks(
|
|
42
|
+
const result = await api.listProjectTasks(ws, project, hasQuery ? query : undefined);
|
|
42
43
|
const items = result.tasks.map((t) => compactTask(t));
|
|
43
44
|
const payload = agentListResult(`${items.length} task(s)`, items, result.meta);
|
|
44
45
|
return jsonToolResult(payload, payload);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-project-tasks.js","sourceRoot":"","sources":["../../src/tools/list-project-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,GAE5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"list-project-tasks.js","sourceRoot":"","sources":["../../src/tools/list-project-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,GAE5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,kBAAkB,EAClB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,0BAA0B,CAAC,EACzC,GAAG,EACH,KAAK,GACI;IACT,OAAO;QACL,IAAI,EAAE,0BAA0B;QAChC,MAAM,EAAE;YACN,KAAK,EAAE,2BAA2B;YAClC,WAAW,EAAE;;;;;;;;gCAQa;YAC1B,WAAW,EAAE,2BAA2B;YACxC,WAAW,EAAE;gBACX,YAAY,EAAE,IAAI;gBAClB,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,IAAI;aACpB;SACF;QACD,OAAO,EAAE,KAAK,EAAE,EACd,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,eAAe,GAChB,EAAE,EAAE;YACH,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACzC,MAAM,OAAO,GAAG,MAAM,kBAAkB,CACtC,YAAY,EACZ,KAAK,EACL,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAC3B,CAAC;gBACF,MAAM,KAAK,GAAgD,EAAE,CAAC;gBAC9D,IAAI,IAAI,KAAK,SAAS;oBAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC1C,IAAI,SAAS,KAAK,SAAS;oBAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;gBACzD,IAAI,QAAQ,KAAK,SAAS;oBAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACtD,IAAI,eAAe,KAAK,SAAS;oBAAE,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;gBAC3E,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC/C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,gBAAgB,CACvC,EAAE,EACF,OAAO,EACP,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC7B,CAAC;gBACF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,MAAM,OAAO,GAAG,eAAe,CAC7B,GAAG,KAAK,CAAC,MAAM,UAAU,EACzB,KAAK,EACL,MAAM,CAAC,IAAI,CACZ,CAAC;gBACF,OAAO,cAAc,CAAC,OAAO,EAAE,OAA6C,CAAC,CAAC;YAChF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { type WsSlugInput } from "../schemas/workspace.js";
|
|
2
2
|
import type { ToolDefinition, ToolDeps } from "./types.js";
|
|
3
|
-
export declare function createListProjectsTool({ api, guard, }: ToolDeps): ToolDefinition<WsSlugInput>;
|
|
3
|
+
export declare function createListProjectsTool({ api, guard, scope, }: ToolDeps): ToolDefinition<WsSlugInput>;
|
|
4
4
|
//# sourceMappingURL=list-projects.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-projects.d.ts","sourceRoot":"","sources":["../../src/tools/list-projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"list-projects.d.ts","sourceRoot":"","sources":["../../src/tools/list-projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3D,wBAAgB,sBAAsB,CAAC,EACrC,GAAG,EACH,KAAK,EACL,KAAK,GACN,EAAE,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,CAqCxC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { WsSlugSchema, } from "../schemas/workspace.js";
|
|
2
2
|
import { agentListResult } from "../services/format.js";
|
|
3
|
+
import { resolveWsSlug } from "../services/scope.js";
|
|
3
4
|
import { compactProject } from "../services/task-mapper.js";
|
|
4
5
|
import { jsonToolResult, toolError } from "./helpers.js";
|
|
5
|
-
export function createListProjectsTool({ api, guard, }) {
|
|
6
|
+
export function createListProjectsTool({ api, guard, scope, }) {
|
|
6
7
|
return {
|
|
7
8
|
name: "otask_list_projects",
|
|
8
9
|
config: {
|
|
@@ -10,7 +11,7 @@ export function createListProjectsTool({ api, guard, }) {
|
|
|
10
11
|
description: `List projects in a workspace. Results are filtered by the project allow-list when configured.
|
|
11
12
|
|
|
12
13
|
Args:
|
|
13
|
-
- ws_slug:
|
|
14
|
+
- ws_slug: optional if OTASK_DEFAULT_WS is set
|
|
14
15
|
|
|
15
16
|
Returns compact projects: id, slug, name, status_id.
|
|
16
17
|
|
|
@@ -25,7 +26,8 @@ Docs: https://api.otask.ru/docs`,
|
|
|
25
26
|
},
|
|
26
27
|
handler: async ({ ws_slug }) => {
|
|
27
28
|
try {
|
|
28
|
-
const
|
|
29
|
+
const ws = resolveWsSlug(ws_slug, scope);
|
|
30
|
+
const projects = await api.listProjects(ws);
|
|
29
31
|
const allowed = guard.filterProjects(projects);
|
|
30
32
|
const items = allowed.map((p) => compactProject(p));
|
|
31
33
|
const payload = agentListResult(`${items.length} project(s)`, items);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-projects.js","sourceRoot":"","sources":["../../src/tools/list-projects.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAEb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,sBAAsB,CAAC,EACrC,GAAG,EACH,KAAK,GACI;IACT,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE;YACN,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EAAE;;;;;;;gCAOa;YAC1B,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE;gBACX,YAAY,EAAE,IAAI;gBAClB,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,IAAI;aACpB;SACF;QACD,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YAC7B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"list-projects.js","sourceRoot":"","sources":["../../src/tools/list-projects.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAEb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,sBAAsB,CAAC,EACrC,GAAG,EACH,KAAK,EACL,KAAK,GACI;IACT,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE;YACN,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EAAE;;;;;;;gCAOa;YAC1B,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE;gBACX,YAAY,EAAE,IAAI;gBAClB,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,IAAI;aACpB;SACF;QACD,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YAC7B,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACzC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpD,MAAM,OAAO,GAAG,eAAe,CAC7B,GAAG,KAAK,CAAC,MAAM,aAAa,EAC5B,KAAK,CACN,CAAC;gBACF,OAAO,cAAc,CAAC,OAAO,EAAE,OAA6C,CAAC,CAAC;YAChF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { type WsSlugInput } from "../schemas/workspace.js";
|
|
2
2
|
import type { ToolDefinition, ToolDeps } from "./types.js";
|
|
3
|
-
export declare function createListTagsTool({ api, }: ToolDeps): ToolDefinition<WsSlugInput>;
|
|
3
|
+
export declare function createListTagsTool({ api, scope, }: ToolDeps): ToolDefinition<WsSlugInput>;
|
|
4
4
|
//# sourceMappingURL=list-tags.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-tags.d.ts","sourceRoot":"","sources":["../../src/tools/list-tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"list-tags.d.ts","sourceRoot":"","sources":["../../src/tools/list-tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3D,wBAAgB,kBAAkB,CAAC,EACjC,GAAG,EACH,KAAK,GACN,EAAE,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,CAmCxC"}
|
package/dist/tools/list-tags.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { WsSlugSchema, } from "../schemas/workspace.js";
|
|
2
2
|
import { agentListResult } from "../services/format.js";
|
|
3
|
+
import { resolveWsSlug } from "../services/scope.js";
|
|
3
4
|
import { compactTag } from "../services/task-mapper.js";
|
|
4
5
|
import { jsonToolResult, toolError } from "./helpers.js";
|
|
5
|
-
export function createListTagsTool({ api, }) {
|
|
6
|
+
export function createListTagsTool({ api, scope, }) {
|
|
6
7
|
return {
|
|
7
8
|
name: "otask_list_tags",
|
|
8
9
|
config: {
|
|
@@ -10,7 +11,7 @@ export function createListTagsTool({ api, }) {
|
|
|
10
11
|
description: `List workspace tags for labeling tasks.
|
|
11
12
|
|
|
12
13
|
Args:
|
|
13
|
-
- ws_slug:
|
|
14
|
+
- ws_slug: optional if OTASK_DEFAULT_WS is set
|
|
14
15
|
|
|
15
16
|
Returns compact tags (id, name, slug?, color?) as agent list envelope.
|
|
16
17
|
|
|
@@ -25,7 +26,8 @@ Docs: https://api.otask.ru/docs`,
|
|
|
25
26
|
},
|
|
26
27
|
handler: async ({ ws_slug }) => {
|
|
27
28
|
try {
|
|
28
|
-
const
|
|
29
|
+
const ws = resolveWsSlug(ws_slug, scope);
|
|
30
|
+
const tags = await api.listTags(ws);
|
|
29
31
|
const items = tags.map((t) => compactTag(t));
|
|
30
32
|
const payload = agentListResult(`${items.length} tag(s)`, items);
|
|
31
33
|
return jsonToolResult(payload, payload);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-tags.js","sourceRoot":"","sources":["../../src/tools/list-tags.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAEb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,kBAAkB,CAAC,EACjC,GAAG,
|
|
1
|
+
{"version":3,"file":"list-tags.js","sourceRoot":"","sources":["../../src/tools/list-tags.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAEb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,kBAAkB,CAAC,EACjC,GAAG,EACH,KAAK,GACI;IACT,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE;YACN,KAAK,EAAE,kBAAkB;YACzB,WAAW,EAAE;;;;;;;gCAOa;YAC1B,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE;gBACX,YAAY,EAAE,IAAI;gBAClB,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,IAAI;aACpB;SACF;QACD,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YAC7B,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACzC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3B,UAAU,CAAC,CAAgE,CAAC,CAC7E,CAAC;gBACF,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,KAAK,CAAC,MAAM,SAAS,EAAE,KAAK,CAAC,CAAC;gBACjE,OAAO,cAAc,CAAC,OAAO,EAAE,OAA6C,CAAC,CAAC;YAChF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { type MoveTaskInput } from "../schemas/task.js";
|
|
2
2
|
import type { ToolDefinition, ToolDeps } from "./types.js";
|
|
3
|
-
export declare function createMoveTaskTool({ api, guard, }: ToolDeps): ToolDefinition<MoveTaskInput>;
|
|
3
|
+
export declare function createMoveTaskTool({ api, guard, scope, }: ToolDeps): ToolDefinition<MoveTaskInput>;
|
|
4
4
|
//# sourceMappingURL=move-task.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"move-task.d.ts","sourceRoot":"","sources":["../../src/tools/move-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"move-task.d.ts","sourceRoot":"","sources":["../../src/tools/move-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3D,wBAAgB,kBAAkB,CAAC,EACjC,GAAG,EACH,KAAK,EACL,KAAK,GACN,EAAE,QAAQ,GAAG,cAAc,CAAC,aAAa,CAAC,CA+D1C"}
|
package/dist/tools/move-task.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { MoveTaskInputSchema, } from "../schemas/task.js";
|
|
2
2
|
import { assertProjectIdAllowed } from "../services/project-guard.js";
|
|
3
|
+
import { resolveWsSlug } from "../services/scope.js";
|
|
3
4
|
import { buildUpdateBodyFromTask, compactTask, } from "../services/task-mapper.js";
|
|
4
5
|
import { jsonToolResult, toolError } from "./helpers.js";
|
|
5
|
-
export function createMoveTaskTool({ api, guard, }) {
|
|
6
|
+
export function createMoveTaskTool({ api, guard, scope, }) {
|
|
6
7
|
return {
|
|
7
8
|
name: "otask_move_task",
|
|
8
9
|
config: {
|
|
@@ -12,7 +13,8 @@ export function createMoveTaskTool({ api, guard, }) {
|
|
|
12
13
|
Discover column IDs via otask_list_board. Project must be allow-listed when configured.
|
|
13
14
|
|
|
14
15
|
Args:
|
|
15
|
-
- ws_slug
|
|
16
|
+
- ws_slug: optional if OTASK_DEFAULT_WS is set
|
|
17
|
+
- task_slug: task identity
|
|
16
18
|
- board_column_id: target column
|
|
17
19
|
- board_id: optional if changing board
|
|
18
20
|
|
|
@@ -29,16 +31,17 @@ Docs: https://api.otask.ru/docs`,
|
|
|
29
31
|
},
|
|
30
32
|
handler: async ({ ws_slug, task_slug, board_column_id, board_id }) => {
|
|
31
33
|
try {
|
|
32
|
-
const
|
|
34
|
+
const ws = resolveWsSlug(ws_slug, scope);
|
|
35
|
+
const current = await api.getTask(ws, task_slug);
|
|
33
36
|
const projectSlug = typeof current.project_slug === "string"
|
|
34
37
|
? current.project_slug
|
|
35
38
|
: undefined;
|
|
36
|
-
await assertProjectIdAllowed(guard, () => api.listProjects(
|
|
39
|
+
await assertProjectIdAllowed(guard, () => api.listProjects(ws), current.project_id, projectSlug);
|
|
37
40
|
const body = buildUpdateBodyFromTask(current, {
|
|
38
41
|
board_column_id,
|
|
39
42
|
...(board_id !== undefined ? { board_id } : {}),
|
|
40
43
|
});
|
|
41
|
-
const result = await api.updateTask(
|
|
44
|
+
const result = await api.updateTask(ws, task_slug, body);
|
|
42
45
|
const summary = compactTask(result.task);
|
|
43
46
|
return jsonToolResult({
|
|
44
47
|
success: result.success,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"move-task.js","sourceRoot":"","sources":["../../src/tools/move-task.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAEpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EACL,uBAAuB,EACvB,WAAW,GACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,kBAAkB,CAAC,EACjC,GAAG,EACH,KAAK,GACI;IACT,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE;YACN,KAAK,EAAE,kBAAkB;YACzB,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"move-task.js","sourceRoot":"","sources":["../../src/tools/move-task.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAEpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,uBAAuB,EACvB,WAAW,GACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,kBAAkB,CAAC,EACjC,GAAG,EACH,KAAK,EACL,KAAK,GACI;IACT,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE;YACN,KAAK,EAAE,kBAAkB;YACzB,WAAW,EAAE;;;;;;;;;;;;gCAYa;YAC1B,WAAW,EAAE,mBAAmB;YAChC,WAAW,EAAE;gBACX,YAAY,EAAE,KAAK;gBACnB,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,IAAI;aACpB;SACF;QACD,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE;YACnE,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACzC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;gBACjD,MAAM,WAAW,GACf,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ;oBACtC,CAAC,CAAC,OAAO,CAAC,YAAY;oBACtB,CAAC,CAAC,SAAS,CAAC;gBAChB,MAAM,sBAAsB,CAC1B,KAAK,EACL,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,EAC1B,OAAO,CAAC,UAAU,EAClB,WAAW,CACZ,CAAC;gBACF,MAAM,IAAI,GAAG,uBAAuB,CAAC,OAAO,EAAE;oBAC5C,eAAe;oBACf,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChD,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBACzD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACzC,OAAO,cAAc,CACnB;oBACE,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,IAAI,EAAE,OAAO;iBACd,EACD;oBACE,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,IAAI,EAAE,OAAO;iBACd,CACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/types.d.ts
CHANGED
|
@@ -2,10 +2,12 @@ import type { ToolAnnotations } from "@modelcontextprotocol/sdk/types.js";
|
|
|
2
2
|
import type { z } from "zod";
|
|
3
3
|
import type { OtaskClient } from "../services/client.js";
|
|
4
4
|
import type { ProjectGuard } from "../services/project-guard.js";
|
|
5
|
+
import type { ScopeContext } from "../services/scope.js";
|
|
5
6
|
/** Shared dependencies injected into every tool factory. */
|
|
6
7
|
export interface ToolDeps {
|
|
7
8
|
api: OtaskClient;
|
|
8
9
|
guard: ProjectGuard;
|
|
10
|
+
scope: ScopeContext;
|
|
9
11
|
}
|
|
10
12
|
export interface ToolConfig {
|
|
11
13
|
title?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,4DAA4D;AAC5D,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,WAAW,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;IAC3B,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC;QAChC,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,cAAc,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { type UpdateTaskInput } from "../schemas/task.js";
|
|
2
2
|
import type { ToolDefinition, ToolDeps } from "./types.js";
|
|
3
|
-
export declare function createUpdateTaskTool({ api, guard, }: ToolDeps): ToolDefinition<UpdateTaskInput>;
|
|
3
|
+
export declare function createUpdateTaskTool({ api, guard, scope, }: ToolDeps): ToolDefinition<UpdateTaskInput>;
|
|
4
4
|
//# sourceMappingURL=update-task.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-task.d.ts","sourceRoot":"","sources":["../../src/tools/update-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"update-task.d.ts","sourceRoot":"","sources":["../../src/tools/update-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3D,wBAAgB,oBAAoB,CAAC,EACnC,GAAG,EACH,KAAK,EACL,KAAK,GACN,EAAE,QAAQ,GAAG,cAAc,CAAC,eAAe,CAAC,CA4G5C"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { UpdateTaskInputSchema, } from "../schemas/task.js";
|
|
2
2
|
import { assertProjectIdAllowed } from "../services/project-guard.js";
|
|
3
|
+
import { resolveWsSlug } from "../services/scope.js";
|
|
3
4
|
import { buildUpdateBodyFromTask, summarizeTask, } from "../services/task-mapper.js";
|
|
4
5
|
import { jsonToolResult, toolError } from "./helpers.js";
|
|
5
|
-
export function createUpdateTaskTool({ api, guard, }) {
|
|
6
|
+
export function createUpdateTaskTool({ api, guard, scope, }) {
|
|
6
7
|
return {
|
|
7
8
|
name: "otask_update_task",
|
|
8
9
|
config: {
|
|
@@ -18,8 +19,9 @@ Common updates:
|
|
|
18
19
|
- comment: optional note recorded with the update
|
|
19
20
|
|
|
20
21
|
Args:
|
|
21
|
-
- ws_slug
|
|
22
|
-
-
|
|
22
|
+
- ws_slug: optional if OTASK_DEFAULT_WS is set
|
|
23
|
+
- task_slug: UUID from panel.otask.ru
|
|
24
|
+
- Any task fields to change (all optional except task_slug)
|
|
23
25
|
|
|
24
26
|
Returns updated task summary on success.
|
|
25
27
|
|
|
@@ -35,11 +37,12 @@ Docs: https://api.otask.ru/docs#zadaci-POSTapi-v1-ws--ws_slug--tasks--task_slug-
|
|
|
35
37
|
handler: async (params) => {
|
|
36
38
|
const { ws_slug, task_slug, ...changes } = params;
|
|
37
39
|
try {
|
|
38
|
-
const
|
|
40
|
+
const ws = resolveWsSlug(ws_slug, scope);
|
|
41
|
+
const current = await api.getTask(ws, task_slug);
|
|
39
42
|
const projectSlug = typeof current.project_slug === "string"
|
|
40
43
|
? current.project_slug
|
|
41
44
|
: undefined;
|
|
42
|
-
await assertProjectIdAllowed(guard, () => api.listProjects(
|
|
45
|
+
await assertProjectIdAllowed(guard, () => api.listProjects(ws), current.project_id, projectSlug);
|
|
43
46
|
const body = buildUpdateBodyFromTask(current, {
|
|
44
47
|
...(changes.name !== undefined ? { name: changes.name } : {}),
|
|
45
48
|
...(changes.board_id !== undefined
|
|
@@ -71,9 +74,9 @@ Docs: https://api.otask.ru/docs#zadaci-POSTapi-v1-ws--ws_slug--tasks--task_slug-
|
|
|
71
74
|
...(changes.tags !== undefined ? { tags: changes.tags } : {}),
|
|
72
75
|
});
|
|
73
76
|
if (changes.project_id !== undefined) {
|
|
74
|
-
await assertProjectIdAllowed(guard, () => api.listProjects(
|
|
77
|
+
await assertProjectIdAllowed(guard, () => api.listProjects(ws), changes.project_id);
|
|
75
78
|
}
|
|
76
|
-
const result = await api.updateTask(
|
|
79
|
+
const result = await api.updateTask(ws, task_slug, body);
|
|
77
80
|
const summary = summarizeTask(result.task);
|
|
78
81
|
return jsonToolResult({
|
|
79
82
|
success: result.success,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-task.js","sourceRoot":"","sources":["../../src/tools/update-task.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAEtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EACL,uBAAuB,EACvB,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,oBAAoB,CAAC,EACnC,GAAG,EACH,KAAK,GACI;IACT,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE;YACN,KAAK,EAAE,oBAAoB;YAC3B,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"update-task.js","sourceRoot":"","sources":["../../src/tools/update-task.ts"],"names":[],"mappings":"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"}
|