@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.
Files changed (72) hide show
  1. package/README.md +33 -19
  2. package/dist/index.js +6 -4
  3. package/dist/index.js.map +1 -1
  4. package/dist/mcp-http.js +30 -10
  5. package/dist/mcp-http.js.map +1 -1
  6. package/dist/schemas/task.d.ts +27 -27
  7. package/dist/schemas/task.d.ts.map +1 -1
  8. package/dist/schemas/task.js +9 -3
  9. package/dist/schemas/task.js.map +1 -1
  10. package/dist/schemas/workspace.d.ts +21 -21
  11. package/dist/schemas/workspace.d.ts.map +1 -1
  12. package/dist/schemas/workspace.js +8 -3
  13. package/dist/schemas/workspace.js.map +1 -1
  14. package/dist/server.d.ts +2 -2
  15. package/dist/server.d.ts.map +1 -1
  16. package/dist/server.js +8 -4
  17. package/dist/server.js.map +1 -1
  18. package/dist/services/scope.d.ts +45 -0
  19. package/dist/services/scope.d.ts.map +1 -0
  20. package/dist/services/scope.js +147 -0
  21. package/dist/services/scope.js.map +1 -0
  22. package/dist/tools/add-comment.d.ts +1 -1
  23. package/dist/tools/add-comment.d.ts.map +1 -1
  24. package/dist/tools/add-comment.js +8 -5
  25. package/dist/tools/add-comment.js.map +1 -1
  26. package/dist/tools/archive-task.d.ts +1 -1
  27. package/dist/tools/archive-task.d.ts.map +1 -1
  28. package/dist/tools/archive-task.js +8 -5
  29. package/dist/tools/archive-task.js.map +1 -1
  30. package/dist/tools/create-task.d.ts +1 -1
  31. package/dist/tools/create-task.d.ts.map +1 -1
  32. package/dist/tools/create-task.js +7 -7
  33. package/dist/tools/create-task.js.map +1 -1
  34. package/dist/tools/get-task.d.ts +1 -1
  35. package/dist/tools/get-task.d.ts.map +1 -1
  36. package/dist/tools/get-task.js +6 -4
  37. package/dist/tools/get-task.js.map +1 -1
  38. package/dist/tools/list-board.d.ts +1 -1
  39. package/dist/tools/list-board.d.ts.map +1 -1
  40. package/dist/tools/list-board.js +13 -9
  41. package/dist/tools/list-board.js.map +1 -1
  42. package/dist/tools/list-comments.d.ts +1 -1
  43. package/dist/tools/list-comments.d.ts.map +1 -1
  44. package/dist/tools/list-comments.js +8 -5
  45. package/dist/tools/list-comments.js.map +1 -1
  46. package/dist/tools/list-members.d.ts +1 -1
  47. package/dist/tools/list-members.d.ts.map +1 -1
  48. package/dist/tools/list-members.js +5 -3
  49. package/dist/tools/list-members.js.map +1 -1
  50. package/dist/tools/list-project-tasks.d.ts +1 -1
  51. package/dist/tools/list-project-tasks.d.ts.map +1 -1
  52. package/dist/tools/list-project-tasks.js +6 -5
  53. package/dist/tools/list-project-tasks.js.map +1 -1
  54. package/dist/tools/list-projects.d.ts +1 -1
  55. package/dist/tools/list-projects.d.ts.map +1 -1
  56. package/dist/tools/list-projects.js +5 -3
  57. package/dist/tools/list-projects.js.map +1 -1
  58. package/dist/tools/list-tags.d.ts +1 -1
  59. package/dist/tools/list-tags.d.ts.map +1 -1
  60. package/dist/tools/list-tags.js +5 -3
  61. package/dist/tools/list-tags.js.map +1 -1
  62. package/dist/tools/move-task.d.ts +1 -1
  63. package/dist/tools/move-task.d.ts.map +1 -1
  64. package/dist/tools/move-task.js +8 -5
  65. package/dist/tools/move-task.js.map +1 -1
  66. package/dist/tools/types.d.ts +2 -0
  67. package/dist/tools/types.d.ts.map +1 -1
  68. package/dist/tools/update-task.d.ts +1 -1
  69. package/dist/tools/update-task.d.ts.map +1 -1
  70. package/dist/tools/update-task.js +10 -7
  71. package/dist/tools/update-task.js.map +1 -1
  72. package/package.json +1 -1
package/README.md CHANGED
@@ -32,24 +32,32 @@ stdio требует `OTASK_*` (без них падает при старте).
32
32
  | `OTASK_EMAIL` | stdio, HTTP gateway | вместе с `OTASK_PASSWORD` как альтернатива ключу | Логин для получения токена |
33
33
  | `OTASK_PASSWORD` | stdio, HTTP gateway | вместе с `OTASK_EMAIL` | Пароль для логина |
34
34
  | `MCP_AUTH_TOKEN` | HTTP gateway | режим gateway | Общий секрет, который должен отправлять клиент; **не** токен O!task |
35
- | `OTASK_ALLOWED_PROJECTS` | stdio, HTTP gateway | опционально | Список slug и/или числовых ID проектов через запятую |
35
+ | `OTASK_DEFAULT_WS` | stdio, HTTP | опционально | Workspace slug по умолчанию (если tool не передал `ws_slug`) |
36
+ | `OTASK_DEFAULT_PROJECT` | stdio, HTTP | опционально | Project slug **или** numeric id по умолчанию |
37
+ | `OTASK_ALLOWED_WS` | stdio, HTTP gateway | опционально | Allow-list workspace slug через запятую |
38
+ | `OTASK_ALLOWED_PROJECTS` | stdio, HTTP gateway | опционально | Allow-list project slug и/или numeric id через запятую |
36
39
  | `PORT` | HTTP | опционально (по умолчанию `3847`) | Порт прослушивания |
37
40
  | `HOST` | HTTP | опционально (по умолчанию `0.0.0.0`) | Адрес привязки |
38
41
 
42
+ Default должен входить в allow-list, если list непустой (иначе сервер падает при старте).
43
+
39
44
  ## HTTP-заголовки
40
45
 
41
46
  | Заголовок | Режим | Назначение |
42
47
  |-----------|-------|------------|
43
48
  | `Authorization: Bearer …` | gateway | Должен совпадать с `MCP_AUTH_TOKEN` |
44
49
  | `Authorization: Bearer …` | passthrough | Токен O!task API; проксируется на каждый запрос к API |
45
- | `X-Otask-Allowed-Projects` | **только passthrough** | Slug/ID через запятую; в gateway игнорируется (используйте env) |
50
+ | `X-Otask-Allowed-Projects` | **только passthrough** | Allow-list projects; в gateway env |
51
+ | `X-Otask-Allowed-Ws` | **только passthrough** | Allow-list workspaces |
52
+ | `X-Otask-Default-Ws` | **passthrough** (override env) | Default workspace slug |
53
+ | `X-Otask-Default-Project` | **passthrough** (override env) | Default project slug/id |
46
54
 
47
55
  ## Эндпоинты (HTTP)
48
56
 
49
57
  | | |
50
58
  |---|---|
51
59
  | MCP | `POST`/`GET` `/mcp` (Streamable HTTP) |
52
- | Health | `GET /health` → `{ ok, mode, authMode, projectGuard }`, где `projectGuard` `"env" \| "header" \| "off"` |
60
+ | Health | `GET /health` → `{ ok, mode, authMode, projectGuard, wsGuard, defaults }` (`"env" \| "header" \| "off"`) |
53
61
 
54
62
  Пример деплоя: `https://otask-mcp.grigoreo.dev/mcp` (порт `3847` в Docker).
55
63
 
@@ -62,7 +70,10 @@ Env сервера:
62
70
  ```env
63
71
  OTASK_AUTH_KEY=...
64
72
  MCP_AUTH_TOKEN=super-secret-mcp-token
65
- OTASK_ALLOWED_PROJECTS=my-project,42
73
+ OTASK_DEFAULT_WS=246cd090-27a2-4f00-b4d6-2018d4d7ffe1
74
+ OTASK_DEFAULT_PROJECT=3156e838-b2b8-4537-8379-97131c22f60b
75
+ OTASK_ALLOWED_WS=246cd090-27a2-4f00-b4d6-2018d4d7ffe1
76
+ OTASK_ALLOWED_PROJECTS=3156e838-b2b8-4537-8379-97131c22f60b,35747
66
77
  ```
67
78
 
68
79
  n8n **MCP Client Tool**:
@@ -70,7 +81,7 @@ n8n **MCP Client Tool**:
70
81
  - URL: `https://otask-mcp.example/mcp`
71
82
  - Transport: **HTTP Streamable**
72
83
  - Credential / header: `Authorization: Bearer super-secret-mcp-token`
73
- - **Не** отправляйте `X-Otask-Allowed-Projects` (allow-list берётся из env сервера)
84
+ - **Не** отправляйте `X-Otask-*` allow/default headers (берутся из env сервера)
74
85
 
75
86
  ### Passthrough (токен O!task у клиента)
76
87
 
@@ -81,13 +92,16 @@ n8n **MCP Client Tool**:
81
92
  - URL: `https://otask-mcp.example/mcp`
82
93
  - Transport: **HTTP Streamable**
83
94
  - Credential / header: `Authorization: Bearer <тот же токен, что и для api.otask.ru>`
84
- - Опционально: `X-Otask-Allowed-Projects: eng-backlog,99`
95
+ - Опционально: `X-Otask-Allowed-Projects`, `X-Otask-Allowed-Ws`, `X-Otask-Default-Ws`, `X-Otask-Default-Project`
85
96
 
86
97
  ### Stdio (Cursor / OpenCode)
87
98
 
88
99
  ```env
89
100
  OTASK_AUTH_KEY=...
90
101
  # или OTASK_EMAIL + OTASK_PASSWORD
102
+ OTASK_DEFAULT_WS=...
103
+ OTASK_DEFAULT_PROJECT=my-project
104
+ OTASK_ALLOWED_WS=...
91
105
  OTASK_ALLOWED_PROJECTS=my-project
92
106
  ```
93
107
 
@@ -116,25 +130,25 @@ bun start
116
130
 
117
131
  Если активен allow-list проектов, project-scoped инструменты проверяют членство (или фильтруют списки); пустой allow-list = доступны все проекты.
118
132
 
119
- ## Allow-list проектов
133
+ ## Defaults и allow-list (ws + projects)
120
134
 
121
- Формат: **slug** и/или **числовые ID** через запятую (пробелы обрезаются). Пусто / не задано = выключено.
135
+ | Что | Env (gateway/stdio) | Header (passthrough) |
136
+ |-----|---------------------|----------------------|
137
+ | Default workspace | `OTASK_DEFAULT_WS` | `X-Otask-Default-Ws` (override) |
138
+ | Default project | `OTASK_DEFAULT_PROJECT` (slug или id) | `X-Otask-Default-Project` |
139
+ | Limit workspaces | `OTASK_ALLOWED_WS` | `X-Otask-Allowed-Ws` |
140
+ | Limit projects | `OTASK_ALLOWED_PROJECTS` | `X-Otask-Allowed-Projects` |
122
141
 
123
- ### Gateway / stdio env
142
+ Формат allow-list: значения через запятую (пробелы обрезаются). Projects: **slug** и/или **numeric id**. WS: только slug. Пусто = off.
124
143
 
125
144
  ```env
126
- OTASK_ALLOWED_PROJECTS=product-roadmap,eng-backlog,42
127
- ```
128
-
129
- `GET /health` → `projectGuard: "env"`, если значение непустое.
130
-
131
- ### Passthrough — заголовок запроса
132
-
133
- ```http
134
- X-Otask-Allowed-Projects: product-roadmap,42
145
+ OTASK_DEFAULT_WS=246cd090-27a2-4f00-b4d6-2018d4d7ffe1
146
+ OTASK_DEFAULT_PROJECT=3156e838-b2b8-4537-8379-97131c22f60b
147
+ OTASK_ALLOWED_WS=246cd090-27a2-4f00-b4d6-2018d4d7ffe1
148
+ OTASK_ALLOWED_PROJECTS=3156e838-b2b8-4537-8379-97131c22f60b,product-roadmap,42
135
149
  ```
136
150
 
137
- `GET /health` этим заголовком) `projectGuard: "header"`. Gateway этот заголовок игнорирует и всегда использует `OTASK_ALLOWED_PROJECTS`.
151
+ `otask_list_board` по умолчанию шлёт `type=status` (так требует O!task API).
138
152
 
139
153
  ## Снимок API-документации
140
154
 
package/dist/index.js CHANGED
@@ -1,20 +1,22 @@
1
1
  #!/usr/bin/env node
2
2
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
3
  import { createEnvAuthResolver, validateStdioAuthConfig } from "./services/auth.js";
4
- import { projectGuardFromEnv } from "./services/project-guard.js";
4
+ import { assertDefaultsAllowed, scopeFromEnv, } from "./services/scope.js";
5
5
  import { createMcpServer } from "./server.js";
6
6
  async function main() {
7
7
  try {
8
8
  validateStdioAuthConfig();
9
+ const scope = scopeFromEnv();
10
+ assertDefaultsAllowed(scope);
11
+ const server = createMcpServer(createEnvAuthResolver(), scope);
12
+ const transport = new StdioServerTransport();
13
+ await server.connect(transport);
9
14
  }
10
15
  catch (error) {
11
16
  const message = error instanceof Error ? error.message : String(error);
12
17
  console.error(`ERROR: ${message}`);
13
18
  process.exit(1);
14
19
  }
15
- const server = createMcpServer(createEnvAuthResolver(), projectGuardFromEnv());
16
- const transport = new StdioServerTransport();
17
- await server.connect(transport);
18
20
  }
19
21
  main().catch((error) => {
20
22
  console.error("Server error:", error);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,uBAAuB,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAC5B,qBAAqB,EAAE,EACvB,mBAAmB,EAAE,CACtB,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EACL,qBAAqB,EACrB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,uBAAuB,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;QAC7B,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAE7B,MAAM,MAAM,GAAG,eAAe,CAAC,qBAAqB,EAAE,EAAE,KAAK,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/dist/mcp-http.js CHANGED
@@ -2,8 +2,8 @@
2
2
  import http from "node:http";
3
3
  import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
4
4
  import { createMcpServer } from "./server.js";
5
- import { authorizeHttpMcpRequest, createEnvAuthResolver, createPassthroughAuthResolver, extractBearerToken, extractProjectAllowListHeader, getHttpAuthMode, validateHttpAuthConfig, } from "./services/auth.js";
6
- import { projectGuardMode, resolveHttpProjectGuard, } from "./services/project-guard.js";
5
+ import { authorizeHttpMcpRequest, createEnvAuthResolver, createPassthroughAuthResolver, extractBearerToken, getHttpAuthMode, validateHttpAuthConfig, } from "./services/auth.js";
6
+ import { assertDefaultsAllowed, resolveHttpScope, scopeFromEnv, } from "./services/scope.js";
7
7
  function getPort() {
8
8
  const raw = process.env.PORT?.trim() || "3847";
9
9
  const port = Number.parseInt(raw, 10);
@@ -16,6 +16,24 @@ function sendJson(res, status, body) {
16
16
  res.writeHead(status, { "Content-Type": "application/json" });
17
17
  res.end(JSON.stringify(body));
18
18
  }
19
+ function scopeModes(authMode, scope) {
20
+ return {
21
+ wsGuard: scope.wsGuard.list.isEmpty
22
+ ? "off"
23
+ : authMode === "gateway"
24
+ ? "env"
25
+ : "header",
26
+ projectGuard: scope.projectGuard.list.isEmpty
27
+ ? "off"
28
+ : authMode === "gateway"
29
+ ? "env"
30
+ : "header",
31
+ defaults: {
32
+ ws: Boolean(scope.defaultWs),
33
+ project: Boolean(scope.defaultProject),
34
+ },
35
+ };
36
+ }
19
37
  async function handleMcpRequest(req, res) {
20
38
  const clientBearer = extractBearerToken(req.headers.authorization);
21
39
  const authResult = authorizeHttpMcpRequest(clientBearer);
@@ -30,17 +48,16 @@ async function handleMcpRequest(req, res) {
30
48
  ? createPassthroughAuthResolver(authResult.otaskBearer)
31
49
  : createEnvAuthResolver();
32
50
  const authMode = getHttpAuthMode();
33
- const headerRaw = extractProjectAllowListHeader(req.headers);
34
- const guard = resolveHttpProjectGuard({
51
+ const scope = resolveHttpScope({
35
52
  authMode,
36
53
  env: process.env,
37
- headerRaw,
54
+ headers: req.headers,
38
55
  });
39
56
  const transport = new StreamableHTTPServerTransport({
40
57
  sessionIdGenerator: undefined,
41
58
  enableJsonResponse: true,
42
59
  });
43
- const server = createMcpServer(auth, guard);
60
+ const server = createMcpServer(auth, scope);
44
61
  res.on("close", () => {
45
62
  void transport.close();
46
63
  });
@@ -51,17 +68,19 @@ async function handleRequest(req, res) {
51
68
  const requestUrl = new URL(req.url ?? "/", `http://${req.headers.host ?? "localhost"}`);
52
69
  if (requestUrl.pathname === "/health") {
53
70
  const authMode = getHttpAuthMode();
54
- const headerRaw = extractProjectAllowListHeader(req.headers);
55
- const guard = resolveHttpProjectGuard({
71
+ const scope = resolveHttpScope({
56
72
  authMode,
57
73
  env: process.env,
58
- headerRaw,
74
+ headers: req.headers,
59
75
  });
76
+ const modes = scopeModes(authMode, scope);
60
77
  sendJson(res, 200, {
61
78
  ok: true,
62
79
  mode: "mcp-streamable-http",
63
80
  authMode,
64
- projectGuard: projectGuardMode(authMode, guard),
81
+ projectGuard: modes.projectGuard,
82
+ wsGuard: modes.wsGuard,
83
+ defaults: modes.defaults,
65
84
  });
66
85
  return;
67
86
  }
@@ -76,6 +95,7 @@ async function handleRequest(req, res) {
76
95
  }
77
96
  function main() {
78
97
  validateHttpAuthConfig();
98
+ assertDefaultsAllowed(scopeFromEnv());
79
99
  const port = getPort();
80
100
  const host = process.env.HOST?.trim() || "0.0.0.0";
81
101
  http
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-http.js","sourceRoot":"","sources":["../src/mcp-http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-http.js","sourceRoot":"","sources":["../src/mcp-http.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import { z } from "zod";
2
2
  export declare const WsTaskSlugSchema: z.ZodObject<{
3
- ws_slug: z.ZodString;
3
+ ws_slug: z.ZodOptional<z.ZodString>;
4
4
  task_slug: z.ZodString;
5
5
  }, "strict", z.ZodTypeAny, {
6
- ws_slug: string;
7
6
  task_slug: string;
7
+ ws_slug?: string | undefined;
8
8
  }, {
9
- ws_slug: string;
10
9
  task_slug: string;
10
+ ws_slug?: string | undefined;
11
11
  }>;
12
12
  export declare const SubtaskSchema: z.ZodObject<{
13
13
  id: z.ZodNullable<z.ZodNumber>;
@@ -39,7 +39,7 @@ export declare const FileSchema: z.ZodObject<{
39
39
  temp_src: string;
40
40
  }>;
41
41
  export declare const UpdateTaskInputSchema: z.ZodObject<{
42
- ws_slug: z.ZodString;
42
+ ws_slug: z.ZodOptional<z.ZodString>;
43
43
  task_slug: z.ZodString;
44
44
  } & {
45
45
  name: z.ZodOptional<z.ZodString>;
@@ -82,7 +82,6 @@ export declare const UpdateTaskInputSchema: z.ZodObject<{
82
82
  }>, "many">>;
83
83
  tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
84
84
  }, "strict", z.ZodTypeAny, {
85
- ws_slug: string;
86
85
  task_slug: string;
87
86
  name?: string | undefined;
88
87
  priority_id?: number | undefined;
@@ -104,9 +103,9 @@ export declare const UpdateTaskInputSchema: z.ZodObject<{
104
103
  name: string;
105
104
  temp_src: string;
106
105
  }[] | undefined;
106
+ ws_slug?: string | undefined;
107
107
  comment?: string | undefined;
108
108
  }, {
109
- ws_slug: string;
110
109
  task_slug: string;
111
110
  name?: string | undefined;
112
111
  priority_id?: number | undefined;
@@ -128,41 +127,42 @@ export declare const UpdateTaskInputSchema: z.ZodObject<{
128
127
  name: string;
129
128
  temp_src: string;
130
129
  }[] | undefined;
130
+ ws_slug?: string | undefined;
131
131
  comment?: string | undefined;
132
132
  }>;
133
133
  export type UpdateTaskInput = z.infer<typeof UpdateTaskInputSchema>;
134
134
  export declare const GetTaskInputSchema: z.ZodObject<{
135
- ws_slug: z.ZodString;
135
+ ws_slug: z.ZodOptional<z.ZodString>;
136
136
  task_slug: z.ZodString;
137
137
  }, "strict", z.ZodTypeAny, {
138
- ws_slug: string;
139
138
  task_slug: string;
139
+ ws_slug?: string | undefined;
140
140
  }, {
141
- ws_slug: string;
142
141
  task_slug: string;
142
+ ws_slug?: string | undefined;
143
143
  }>;
144
144
  export type GetTaskInput = z.infer<typeof GetTaskInputSchema>;
145
145
  export declare const MoveTaskInputSchema: z.ZodObject<{
146
- ws_slug: z.ZodString;
146
+ ws_slug: z.ZodOptional<z.ZodString>;
147
147
  task_slug: z.ZodString;
148
148
  } & {
149
149
  board_column_id: z.ZodNumber;
150
150
  board_id: z.ZodOptional<z.ZodNumber>;
151
151
  }, "strict", z.ZodTypeAny, {
152
152
  board_column_id: number;
153
- ws_slug: string;
154
153
  task_slug: string;
155
154
  board_id?: number | undefined;
155
+ ws_slug?: string | undefined;
156
156
  }, {
157
157
  board_column_id: number;
158
- ws_slug: string;
159
158
  task_slug: string;
160
159
  board_id?: number | undefined;
160
+ ws_slug?: string | undefined;
161
161
  }>;
162
162
  export type MoveTaskInput = z.infer<typeof MoveTaskInputSchema>;
163
163
  export declare const CreateTaskInputSchema: z.ZodObject<{
164
- ws_slug: z.ZodString;
165
- project_id: z.ZodNumber;
164
+ ws_slug: z.ZodOptional<z.ZodString>;
165
+ project_id: z.ZodOptional<z.ZodNumber>;
166
166
  name: z.ZodString;
167
167
  board_id: z.ZodNumber;
168
168
  board_column_id: z.ZodNumber;
@@ -175,66 +175,66 @@ export declare const CreateTaskInputSchema: z.ZodObject<{
175
175
  }, "strict", z.ZodTypeAny, {
176
176
  name: string;
177
177
  end_at: string;
178
- project_id: number;
179
178
  board_id: number;
180
179
  board_column_id: number;
181
- ws_slug: string;
182
180
  priority_id?: number | undefined;
183
181
  description?: string | undefined;
182
+ project_id?: number | undefined;
184
183
  performers?: string[] | undefined;
185
184
  tags?: string[] | undefined;
185
+ ws_slug?: string | undefined;
186
186
  comment?: string | undefined;
187
187
  }, {
188
188
  name: string;
189
189
  end_at: string;
190
- project_id: number;
191
190
  board_id: number;
192
191
  board_column_id: number;
193
- ws_slug: string;
194
192
  priority_id?: number | undefined;
195
193
  description?: string | undefined;
194
+ project_id?: number | undefined;
196
195
  performers?: string[] | undefined;
197
196
  tags?: string[] | undefined;
197
+ ws_slug?: string | undefined;
198
198
  comment?: string | undefined;
199
199
  }>;
200
200
  export type CreateTaskInput = z.infer<typeof CreateTaskInputSchema>;
201
201
  export declare const ArchiveTaskInputSchema: z.ZodObject<{
202
- ws_slug: z.ZodString;
202
+ ws_slug: z.ZodOptional<z.ZodString>;
203
203
  task_slug: z.ZodString;
204
204
  }, "strict", z.ZodTypeAny, {
205
- ws_slug: string;
206
205
  task_slug: string;
206
+ ws_slug?: string | undefined;
207
207
  }, {
208
- ws_slug: string;
209
208
  task_slug: string;
209
+ ws_slug?: string | undefined;
210
210
  }>;
211
211
  export type ArchiveTaskInput = z.infer<typeof ArchiveTaskInputSchema>;
212
212
  export declare const ListCommentsInputSchema: z.ZodObject<{
213
- ws_slug: z.ZodString;
213
+ ws_slug: z.ZodOptional<z.ZodString>;
214
214
  task_slug: z.ZodString;
215
215
  }, "strict", z.ZodTypeAny, {
216
- ws_slug: string;
217
216
  task_slug: string;
217
+ ws_slug?: string | undefined;
218
218
  }, {
219
- ws_slug: string;
220
219
  task_slug: string;
220
+ ws_slug?: string | undefined;
221
221
  }>;
222
222
  export type ListCommentsInput = z.infer<typeof ListCommentsInputSchema>;
223
223
  export declare const AddCommentInputSchema: z.ZodObject<{
224
- ws_slug: z.ZodString;
224
+ ws_slug: z.ZodOptional<z.ZodString>;
225
225
  task_slug: z.ZodString;
226
226
  } & {
227
227
  comment: z.ZodString;
228
228
  parent_id: z.ZodOptional<z.ZodNumber>;
229
229
  }, "strict", z.ZodTypeAny, {
230
- ws_slug: string;
231
230
  task_slug: string;
232
231
  comment: string;
232
+ ws_slug?: string | undefined;
233
233
  parent_id?: number | undefined;
234
234
  }, {
235
- ws_slug: string;
236
235
  task_slug: string;
237
236
  comment: string;
237
+ ws_slug?: string | undefined;
238
238
  parent_id?: number | undefined;
239
239
  }>;
240
240
  export type AddCommentInput = z.infer<typeof AddCommentInputSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/schemas/task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;;;;;;;;;EAWlB,CAAC;AAEZ,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;EAQf,CAAC;AAEZ,eAAO,MAAM,UAAU;;;;;;;;;EAKZ,CAAC;AAEZ,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBvB,CAAC;AAEZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,kBAAkB;;;;;;;;;EAAmB,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;EAOrB,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BvB,CAAC;AAEZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,sBAAsB;;;;;;;;;EAAmB,CAAC;AAEvD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,uBAAuB;;;;;;;;;EAAmB,CAAC;AAExD,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;EAOvB,CAAC;AAEZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/schemas/task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;;;;;;;;;EAclB,CAAC;AAEZ,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;EAQf,CAAC;AAEZ,eAAO,MAAM,UAAU;;;;;;;;;EAKZ,CAAC;AAEZ,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBvB,CAAC;AAEZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,kBAAkB;;;;;;;;;EAAmB,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;EAOrB,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCvB,CAAC;AAEZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,sBAAsB;;;;;;;;;EAAmB,CAAC;AAEvD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,uBAAuB;;;;;;;;;EAAmB,CAAC;AAExD,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;EAOvB,CAAC;AAEZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -4,7 +4,8 @@ export const WsTaskSlugSchema = z
4
4
  ws_slug: z
5
5
  .string()
6
6
  .min(1)
7
- .describe("Workspace slug (UUID from panel.otask.ru URL)"),
7
+ .optional()
8
+ .describe("Workspace slug (UUID from panel.otask.ru). Optional if OTASK_DEFAULT_WS is set."),
8
9
  task_slug: z
9
10
  .string()
10
11
  .min(1)
@@ -60,8 +61,13 @@ export const CreateTaskInputSchema = z
60
61
  ws_slug: z
61
62
  .string()
62
63
  .min(1)
63
- .describe("Workspace slug (UUID from panel.otask.ru URL)"),
64
- project_id: z.number().int().describe("Project ID (must be allow-listed)"),
64
+ .optional()
65
+ .describe("Workspace slug. Optional if OTASK_DEFAULT_WS is set."),
66
+ project_id: z
67
+ .number()
68
+ .int()
69
+ .optional()
70
+ .describe("Project ID (must be allow-listed). Optional if OTASK_DEFAULT_PROJECT is set."),
65
71
  name: z.string().min(1).describe("Task title"),
66
72
  board_id: z
67
73
  .number()
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/schemas/task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/schemas/task.ts"],"names":[],"mappings":"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"}
@@ -1,66 +1,66 @@
1
1
  import { z } from "zod";
2
2
  export declare const WsSlugSchema: z.ZodObject<{
3
- ws_slug: z.ZodString;
3
+ ws_slug: z.ZodOptional<z.ZodString>;
4
4
  }, "strict", z.ZodTypeAny, {
5
- ws_slug: string;
5
+ ws_slug?: string | undefined;
6
6
  }, {
7
- ws_slug: string;
7
+ ws_slug?: string | undefined;
8
8
  }>;
9
9
  export type WsSlugInput = z.infer<typeof WsSlugSchema>;
10
10
  export declare const ProjectSlugSchema: z.ZodObject<{
11
- ws_slug: z.ZodString;
11
+ ws_slug: z.ZodOptional<z.ZodString>;
12
12
  } & {
13
- project_slug: z.ZodString;
13
+ project_slug: z.ZodOptional<z.ZodString>;
14
14
  }, "strict", z.ZodTypeAny, {
15
- ws_slug: string;
16
- project_slug: string;
15
+ ws_slug?: string | undefined;
16
+ project_slug?: string | undefined;
17
17
  }, {
18
- ws_slug: string;
19
- project_slug: string;
18
+ ws_slug?: string | undefined;
19
+ project_slug?: string | undefined;
20
20
  }>;
21
21
  export type ProjectSlugInput = z.infer<typeof ProjectSlugSchema>;
22
22
  export declare const ListProjectTasksInputSchema: z.ZodObject<{
23
- ws_slug: z.ZodString;
23
+ ws_slug: z.ZodOptional<z.ZodString>;
24
24
  } & {
25
- project_slug: z.ZodString;
25
+ project_slug: z.ZodOptional<z.ZodString>;
26
26
  } & {
27
27
  page: z.ZodOptional<z.ZodNumber>;
28
28
  status_id: z.ZodOptional<z.ZodNumber>;
29
29
  board_id: z.ZodOptional<z.ZodNumber>;
30
30
  board_column_id: z.ZodOptional<z.ZodNumber>;
31
31
  }, "strict", z.ZodTypeAny, {
32
- ws_slug: string;
33
- project_slug: string;
34
32
  status_id?: number | undefined;
35
33
  board_id?: number | undefined;
36
34
  board_column_id?: number | undefined;
35
+ ws_slug?: string | undefined;
36
+ project_slug?: string | undefined;
37
37
  page?: number | undefined;
38
38
  }, {
39
- ws_slug: string;
40
- project_slug: string;
41
39
  status_id?: number | undefined;
42
40
  board_id?: number | undefined;
43
41
  board_column_id?: number | undefined;
42
+ ws_slug?: string | undefined;
43
+ project_slug?: string | undefined;
44
44
  page?: number | undefined;
45
45
  }>;
46
46
  export type ListProjectTasksInput = z.infer<typeof ListProjectTasksInputSchema>;
47
47
  export declare const ListBoardInputSchema: z.ZodObject<{
48
- ws_slug: z.ZodString;
48
+ ws_slug: z.ZodOptional<z.ZodString>;
49
49
  } & {
50
- project_slug: z.ZodString;
50
+ project_slug: z.ZodOptional<z.ZodString>;
51
51
  } & {
52
52
  type: z.ZodOptional<z.ZodString>;
53
53
  board_slug: z.ZodOptional<z.ZodString>;
54
54
  }, "strict", z.ZodTypeAny, {
55
- ws_slug: string;
56
- project_slug: string;
57
55
  type?: string | undefined;
58
56
  board_slug?: string | undefined;
57
+ ws_slug?: string | undefined;
58
+ project_slug?: string | undefined;
59
59
  }, {
60
- ws_slug: string;
61
- project_slug: string;
62
60
  type?: string | undefined;
63
61
  board_slug?: string | undefined;
62
+ ws_slug?: string | undefined;
63
+ project_slug?: string | undefined;
64
64
  }>;
65
65
  export type ListBoardInput = z.infer<typeof ListBoardInputSchema>;
66
66
  //# sourceMappingURL=workspace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/schemas/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;;;;;;EAOd,CAAC;AAEZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEvD,eAAO,MAAM,iBAAiB;;;;;;;;;;EAKnB,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;EAS7B,CAAC;AAEZ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;EAGtB,CAAC;AAEZ,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/schemas/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;;;;;;EAUd,CAAC;AAEZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEvD,eAAO,MAAM,iBAAiB;;;;;;;;;;EAQnB,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;EAS7B,CAAC;AAEZ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;EAMtB,CAAC;AAEZ,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -4,14 +4,16 @@ export const WsSlugSchema = z
4
4
  ws_slug: z
5
5
  .string()
6
6
  .min(1)
7
- .describe("Workspace slug (UUID from panel.otask.ru URL)"),
7
+ .optional()
8
+ .describe("Workspace slug (UUID from panel.otask.ru). Optional if OTASK_DEFAULT_WS is set."),
8
9
  })
9
10
  .strict();
10
11
  export const ProjectSlugSchema = WsSlugSchema.extend({
11
12
  project_slug: z
12
13
  .string()
13
14
  .min(1)
14
- .describe("Project slug (UUID from panel.otask.ru URL)"),
15
+ .optional()
16
+ .describe("Project slug (UUID from panel.otask.ru). Optional if OTASK_DEFAULT_PROJECT is set."),
15
17
  }).strict();
16
18
  export const ListProjectTasksInputSchema = ProjectSlugSchema.extend({
17
19
  page: z.number().int().optional().describe("Page number for pagination"),
@@ -24,7 +26,10 @@ export const ListProjectTasksInputSchema = ProjectSlugSchema.extend({
24
26
  .describe("Filter by board column id"),
25
27
  }).strict();
26
28
  export const ListBoardInputSchema = ProjectSlugSchema.extend({
27
- type: z.string().optional().describe("Board type filter"),
29
+ type: z
30
+ .string()
31
+ .optional()
32
+ .describe('Board type filter (API requires "status"; defaulted by tool)'),
28
33
  board_slug: z.string().optional().describe("Specific board slug"),
29
34
  }).strict();
30
35
  //# sourceMappingURL=workspace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/schemas/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,+CAA+C,CAAC;CAC7D,CAAC;KACD,MAAM,EAAE,CAAC;AAIZ,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAAC;IACnD,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,6CAA6C,CAAC;CAC3D,CAAC,CAAC,MAAM,EAAE,CAAC;AAIZ,MAAM,CAAC,MAAM,2BAA2B,GAAG,iBAAiB,CAAC,MAAM,CAAC;IAClE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACxE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACtE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACpE,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,CAAC,2BAA2B,CAAC;CACzC,CAAC,CAAC,MAAM,EAAE,CAAC;AAIZ,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,MAAM,CAAC;IAC3D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACzD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CAClE,CAAC,CAAC,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/schemas/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CACP,iFAAiF,CAClF;CACJ,CAAC;KACD,MAAM,EAAE,CAAC;AAIZ,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAAC;IACnD,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CACP,oFAAoF,CACrF;CACJ,CAAC,CAAC,MAAM,EAAE,CAAC;AAIZ,MAAM,CAAC,MAAM,2BAA2B,GAAG,iBAAiB,CAAC,MAAM,CAAC;IAClE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACxE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACtE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACpE,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,CAAC,2BAA2B,CAAC;CACzC,CAAC,CAAC,MAAM,EAAE,CAAC;AAIZ,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,MAAM,CAAC;IAC3D,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;IAC3E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CAClE,CAAC,CAAC,MAAM,EAAE,CAAC"}
package/dist/server.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { OtaskAuthResolver } from "./services/auth.js";
3
- import { type ProjectGuard } from "./services/project-guard.js";
4
- export declare function createMcpServer(auth: OtaskAuthResolver, guard?: ProjectGuard): McpServer;
3
+ import { type ScopeContext } from "./services/scope.js";
4
+ export declare function createMcpServer(auth: OtaskAuthResolver, scope?: ScopeContext): McpServer;
5
5
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,6BAA6B,CAAC;AAGrC,wBAAgB,eAAe,CAC7B,IAAI,EAAE,iBAAiB,EACvB,KAAK,GAAE,YAAmE,GACzE,SAAS,CASX"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAG7B,wBAAgB,eAAe,CAC7B,IAAI,EAAE,iBAAiB,EACvB,KAAK,GAAE,YAA+B,GACrC,SAAS,CAaX"}