@paca-ai/paca-mcp 0.16.2 → 0.16.3
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 +14 -45
- package/build/index.js +4 -2
- package/build/index.js.map +1 -1
- package/build/package.json +1 -1
- package/build/server.d.ts +0 -18
- package/build/server.d.ts.map +1 -1
- package/build/server.js +17 -53
- package/build/server.js.map +1 -1
- package/build/types/index.d.ts +0 -4
- package/build/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/build/permissions.d.ts +0 -15
- package/build/permissions.d.ts.map +0 -1
- package/build/permissions.js +0 -626
- package/build/permissions.js.map +0 -1
package/README.md
CHANGED
|
@@ -91,7 +91,6 @@ For a full setup walkthrough, see the [MCP Server Setup Guide](../../docs/guides
|
|
|
91
91
|
## Features
|
|
92
92
|
|
|
93
93
|
- **API Key Authentication**: Secure access using Paca API keys
|
|
94
|
-
- **Agent-Specific Permissions**: MCP tools are filtered based on agent's project permissions at startup
|
|
95
94
|
- **Comprehensive Project Management**: Full project lifecycle with member and role management
|
|
96
95
|
- **Advanced Task Management**: Tasks with types, statuses, custom fields, and attachments
|
|
97
96
|
- **Sprint Management**: Complete sprint lifecycle management
|
|
@@ -102,18 +101,16 @@ For a full setup walkthrough, see the [MCP Server Setup Guide](../../docs/guides
|
|
|
102
101
|
- **BlockNote Integration**: Automatic conversion between BlockNote JSON and Markdown
|
|
103
102
|
- **Plugin MCP Tools**: Plugins can contribute additional MCP tools, loaded automatically at startup
|
|
104
103
|
|
|
105
|
-
## Agent
|
|
104
|
+
## Agent Mode vs. User Mode
|
|
106
105
|
|
|
107
|
-
The MCP server
|
|
106
|
+
The MCP server always lists every tool it knows about — it doesn't fetch or check permissions itself. Each tool *call* is authorized by the Paca API, which returns `403` for anything the caller isn't allowed to do; the MCP server turns that into a "Permission denied: ..." error for the calling agent rather than hiding the tool up front. So whether a call succeeds depends on the caller's actual role, not on which mode below you're running in — these modes only control *identity* (who a call is made as) and *scope* (which project a call may target).
|
|
108
107
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
|
112
|
-
|
|
113
|
-
| **
|
|
114
|
-
| **
|
|
115
|
-
| **User Single-Project** | `PACA_PROJECT_ID` only (no `PACA_AGENT_ID`) | User's personal API key | User's global + project permissions | Single project |
|
|
116
|
-
| **User Global** | Neither set | User's personal API key | User's global permissions only | All projects (no project-scoped tools) |
|
|
108
|
+
| Mode | Trigger | API Key Source | Scope |
|
|
109
|
+
|---|---|---|---|
|
|
110
|
+
| **Agent Single-Project** | `PACA_AGENT_ID` + `PACA_PROJECT_ID` | That agent's own `PACA_API_KEY` | Every tool call is pinned to the specified project |
|
|
111
|
+
| **Agent Global** | `PACA_AGENT_ID` only (no `PACA_PROJECT_ID`) | That agent's own `PACA_API_KEY` | Each tool call may target any project the agent is invited into |
|
|
112
|
+
| **User Single-Project** | `PACA_PROJECT_ID` only (no `PACA_AGENT_ID`) | User's personal API key | Every tool call is pinned to the specified project |
|
|
113
|
+
| **User Global** | Neither set | User's personal API key | Each tool call may target any project you're a member of |
|
|
117
114
|
|
|
118
115
|
**Note**: Each ACP agent has its own `PACA_API_KEY`, generated per-agent — not a key shared across every agent in the deployment. Generate (or regenerate) it from the agent's setup page in the Paca UI; regenerating immediately invalidates whatever key was live before, since only one key is ever active per agent.
|
|
119
116
|
|
|
@@ -122,10 +119,7 @@ The MCP server automatically filters available tools based on permissions, wheth
|
|
|
122
119
|
Set `PACA_AGENT_ID` to connect as a specific ACP agent instead of as yourself. Add `PACA_PROJECT_ID` too if you want every tool call pinned to one project (recommended for a project-scoped agent); leave it unset for a global agent, which can then work across any project it's been invited into.
|
|
123
120
|
|
|
124
121
|
1. **Authentication**: Uses that agent's own `PACA_API_KEY` — the key itself identifies the agent, so no separate impersonation header is needed or honored
|
|
125
|
-
2. **
|
|
126
|
-
3. **Tool Filtering**: Shows only tools the agent has permission to use
|
|
127
|
-
4. **Project Validation**: With `PACA_PROJECT_ID` set, enforces that all tool calls use that project ID
|
|
128
|
-
5. **Performance**: Single-project mode is optimized for that common case (one API call at startup)
|
|
122
|
+
2. **Project Validation**: With `PACA_PROJECT_ID` set, enforces that all tool calls use that project ID
|
|
129
123
|
|
|
130
124
|
**How to Get the Agent's API Key:**
|
|
131
125
|
|
|
@@ -189,9 +183,6 @@ When `PACA_AGENT_ID` is not set:
|
|
|
189
183
|
|
|
190
184
|
1. **Authentication**: Uses user's personal API key (from Settings → API Keys)
|
|
191
185
|
2. **No Impersonation**: Acts as the authenticated user directly
|
|
192
|
-
3. **Global Permissions**: Fetches global permissions via `GET /api/v1/users/me/global-permissions`
|
|
193
|
-
4. **Tool Filtering**: Shows only globally permitted tools (no project-scoped tools)
|
|
194
|
-
5. **Best Practice**: Set `PACA_PROJECT_ID` to filter tools at the MCP level and reduce API errors
|
|
195
186
|
|
|
196
187
|
**Configuration:**
|
|
197
188
|
```json
|
|
@@ -226,32 +217,15 @@ When `PACA_AGENT_ID` is not set:
|
|
|
226
217
|
}
|
|
227
218
|
```
|
|
228
219
|
|
|
229
|
-
**Note**: Without `PACA_PROJECT_ID`, project-scoped
|
|
230
|
-
|
|
231
|
-
### Supported Permissions
|
|
232
|
-
|
|
233
|
-
| Permission | Tools Requiring It |
|
|
234
|
-
|---|---|
|
|
235
|
-
| `projects.read` | `list_projects`, `get_project` |
|
|
236
|
-
| `projects.write` | `update_project`, `delete_project` |
|
|
237
|
-
| `projects.create` | `create_project` |
|
|
238
|
-
| `tasks.read` | `list_tasks`, `get_task`, `get_task_by_number`, `list_task_types`, `list_task_statuses` |
|
|
239
|
-
| `tasks.write` | `create_task`, `update_task`, `delete_task`, `create_task_type`, `update_task_type`, `delete_task_type`, `set_default_task_type`, `create_task_status`, `update_task_status`, `delete_task_status`, `set_default_task_status` |
|
|
240
|
-
| `sprints.read` | `list_sprints`, `get_sprint` |
|
|
241
|
-
| `sprints.write` | `create_sprint`, `update_sprint`, `delete_sprint`, `complete_sprint` |
|
|
242
|
-
| `docs.read` | `list_documents`, `get_document`, `list_doc_folders`, `list_doc_snapshots`, `get_doc_snapshot` |
|
|
243
|
-
| `docs.write` | `create_document`, `update_document`, `delete_document`, `create_doc_folder`, `update_doc_folder`, `delete_doc_folder` |
|
|
244
|
-
| `project.members.read` | `list_project_members`, `get_my_project_permissions` |
|
|
245
|
-
| `project.members.write` | `add_project_member`, `update_project_member_role`, `remove_project_member` |
|
|
246
|
-
| `project.roles.read` | `list_project_roles` |
|
|
247
|
-
| `project.roles.write` | `create_project_role`, `update_project_role`, `delete_project_role` |
|
|
220
|
+
**Note**: Without `PACA_PROJECT_ID`, project-scoped tool calls (like `list_tasks`, `create_task`) must pass a `projectId` argument explicitly — the tool is listed either way, but the call still needs a project to act on, and still needs the caller's role in that project to grant the underlying permission (e.g. `tasks.read`).
|
|
248
221
|
|
|
249
222
|
### Configuring Permissions
|
|
250
223
|
|
|
224
|
+
Permissions live entirely on the Paca API side, so configuring them is the same regardless of the MCP server:
|
|
225
|
+
|
|
251
226
|
**For Agents:**
|
|
252
227
|
1. **Add Agent as Project Member**: Add the agent to the desired projects with appropriate roles
|
|
253
228
|
2. **Configure Role Permissions**: Ensure the assigned roles have the necessary permissions
|
|
254
|
-
3. **Restart MCP Server**: Restart the MCP server to refresh the permission cache
|
|
255
229
|
|
|
256
230
|
**Important**: When using agent mode, `PACA_API_KEY` must be that agent's own key (see "How to Get the Agent's API Key" above) — the key itself is what identifies the agent to the server, so `PACA_AGENT_ID` alone is not a claim the server will trust from any other key.
|
|
257
231
|
|
|
@@ -259,7 +233,8 @@ When `PACA_AGENT_ID` is not set:
|
|
|
259
233
|
1. **Assign Global Roles**: Grant users global permissions through their global roles
|
|
260
234
|
2. **Add to Projects**: Add users to projects with appropriate project roles
|
|
261
235
|
3. **Configure Project Roles**: Ensure project roles have the necessary permissions
|
|
262
|
-
|
|
236
|
+
|
|
237
|
+
If a tool call fails with "Permission denied: ...", the role in question is missing the permission the underlying API endpoint requires — grant it and retry, no MCP server restart needed.
|
|
263
238
|
|
|
264
239
|
### Example Configuration
|
|
265
240
|
|
|
@@ -279,12 +254,6 @@ When `PACA_AGENT_ID` is not set:
|
|
|
279
254
|
}
|
|
280
255
|
```
|
|
281
256
|
|
|
282
|
-
**Note**: The MCP server automatically filters tools based on your permissions:
|
|
283
|
-
- **With `PACA_AGENT_ID`**: Filters tools based on the agent's project permissions
|
|
284
|
-
- **Without `PACA_AGENT_ID`**: Filters tools based on your personal user permissions (including global permissions)
|
|
285
|
-
|
|
286
|
-
If permission fetching fails, all tools will be shown to maintain backward compatibility.
|
|
287
|
-
|
|
288
257
|
## Available Tools
|
|
289
258
|
|
|
290
259
|
The MCP server provides **81 tools** across **16 categories** for comprehensive project management.
|
package/build/index.js
CHANGED
|
@@ -41,10 +41,12 @@ async function main() {
|
|
|
41
41
|
// a global-scope agent (services/agent-runner's buildMCPServers omits
|
|
42
42
|
// PACA_PROJECT_ID entirely for a global-chat conversation) runs "unpinned"
|
|
43
43
|
// instead, the same mode a personal API key with no project already uses —
|
|
44
|
-
// each tool call may target any project the
|
|
44
|
+
// each tool call may target any project the caller has permission in
|
|
45
45
|
// (e.g. list/create/update a project, or work within one it's been
|
|
46
46
|
// invited into), passed explicitly per call rather than pinned once at
|
|
47
|
-
// startup.
|
|
47
|
+
// startup. The API itself enforces permissions on each call (a
|
|
48
|
+
// disallowed call comes back as 403); the MCP server no longer
|
|
49
|
+
// pre-filters the tool list by permission.
|
|
48
50
|
// Create configuration object
|
|
49
51
|
const config = {
|
|
50
52
|
apiKey,
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C;;;GAGG;AACH,KAAK,UAAU,IAAI;IAClB,wBAAwB;IACxB,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,+CAA+C;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACxC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,uBAAuB,CAAC;IACpE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,SAAS,CAAC;IAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,SAAS,CAAC;IACvD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,SAAS,CAAC;IAC3D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,SAAS,CAAC;IAChE,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,SAAS,CAAC;IACrE,gEAAgE;IAChE,sEAAsE;IACtE,wEAAwE;IACxE,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB;QACrD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7D,CAAC,CAAC,SAAS,CAAC;IAEb,kCAAkC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACZ,oFAAoF,CACpF,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,sEAAsE;IACtE,2EAA2E;IAC3E,2EAA2E;IAC3E,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C;;;GAGG;AACH,KAAK,UAAU,IAAI;IAClB,wBAAwB;IACxB,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,+CAA+C;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACxC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,uBAAuB,CAAC;IACpE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,SAAS,CAAC;IAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,SAAS,CAAC;IACvD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,SAAS,CAAC;IAC3D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,SAAS,CAAC;IAChE,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,SAAS,CAAC;IACrE,gEAAgE;IAChE,sEAAsE;IACtE,wEAAwE;IACxE,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB;QACrD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7D,CAAC,CAAC,SAAS,CAAC;IAEb,kCAAkC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACZ,oFAAoF,CACpF,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,sEAAsE;IACtE,2EAA2E;IAC3E,2EAA2E;IAC3E,qEAAqE;IACrE,mEAAmE;IACnE,uEAAuE;IACvE,+DAA+D;IAC/D,+DAA+D;IAC/D,2CAA2C;IAE3C,8BAA8B;IAC9B,MAAM,MAAM,GAAe;QAC1B,MAAM;QACN,OAAO;QACP,UAAU;QACV,OAAO;QACP,SAAS;QACT,WAAW;QACX,cAAc;QACd,aAAa;KACb,CAAC;IAEF,wEAAwE;IACxE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IAE1C,6BAA6B;IAC7B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED,oCAAoC;AACpC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACtB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
|
package/build/package.json
CHANGED
package/build/server.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
2
|
-
import { type PermissionMap } from "./permissions.js";
|
|
3
2
|
import { type PluginContextSection } from "./plugin-loader.js";
|
|
4
3
|
import type { PacaConfig } from "./types/index.js";
|
|
5
4
|
/**
|
|
@@ -10,23 +9,6 @@ import type { PacaConfig } from "./types/index.js";
|
|
|
10
9
|
* @returns Configured MCP server
|
|
11
10
|
*/
|
|
12
11
|
export declare function createServer(config: PacaConfig): Promise<Server>;
|
|
13
|
-
/**
|
|
14
|
-
* Determines whether a core tool should be listed for the current caller.
|
|
15
|
-
*
|
|
16
|
-
* `projectId` is `config.projectId` — set only in single-project (pinned)
|
|
17
|
-
* mode. When unset, a `requiresProject` tool used to be gated solely on a
|
|
18
|
-
* scan of `permissionMap.projects`, which is populated only for a pinned
|
|
19
|
-
* project or a global agent's discovered invited projects (see
|
|
20
|
-
* `fetchAgentPermissions` in permissions.ts). That left it empty for an
|
|
21
|
-
* unpinned *human* user, so a global role grant (e.g. `{"*": true}`) was
|
|
22
|
-
* never consulted and every project-scoped tool stayed hidden even for a
|
|
23
|
-
* super-admin. Consulting the global permission map first fixes that
|
|
24
|
-
* without granting anything extra: it's the same `hasPermission` check
|
|
25
|
-
* already used for non-project-scoped tools, just applied here too.
|
|
26
|
-
*
|
|
27
|
-
* Exported for testing.
|
|
28
|
-
*/
|
|
29
|
-
export declare function isToolVisible(toolName: string, permissionMap: PermissionMap, projectId: string | undefined): boolean;
|
|
30
12
|
/**
|
|
31
13
|
* Merge plugin-contributed context sections into a core tool's result.
|
|
32
14
|
*
|
package/build/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAenE,OAAO,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAenE,OAAO,EAAe,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQnD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAmItE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,oBAAoB,EAAE,GAC9B,GAAG,CAaL"}
|
package/build/server.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
2
2
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
3
3
|
import { PacaAPIAnnotationClient, PacaAPIAutomationClient, PacaAPIClient, PacaAPIConversationClient, PacaAPIDocClient, PacaAPIExtendedClient, PacaAPITaskExtendedClient, PacaAPIViewsClient, } from "./api/index.js";
|
|
4
|
-
import { fetchAgentPermissions, getToolPermission, hasPermission, } from "./permissions.js";
|
|
5
4
|
import { loadPlugins } from "./plugin-loader.js";
|
|
6
5
|
import { getAllTools, handleToolCall } from "./tools/index.js";
|
|
7
6
|
const REPO_TOOL_NAMES = new Set([
|
|
@@ -39,8 +38,6 @@ export async function createServer(config) {
|
|
|
39
38
|
conversationClient,
|
|
40
39
|
annotationClient,
|
|
41
40
|
};
|
|
42
|
-
// Fetch agent permissions at startup
|
|
43
|
-
const permissionMap = await fetchAgentPermissions(config);
|
|
44
41
|
const server = new Server({
|
|
45
42
|
name: "paca",
|
|
46
43
|
version: "0.1.0",
|
|
@@ -53,19 +50,27 @@ export async function createServer(config) {
|
|
|
53
50
|
server.setRequestHandler(ListToolsRequestSchema, async (_request) => {
|
|
54
51
|
const allCoreTools = getAllTools();
|
|
55
52
|
const allPluginTools = pluginRegistry.getAllTools();
|
|
56
|
-
//
|
|
57
|
-
|
|
58
|
-
//
|
|
53
|
+
// All tools are always listed — permissions are enforced by the API
|
|
54
|
+
// itself (a call the caller isn't allowed to make comes back as a 403,
|
|
55
|
+
// which formatApiRequestError turns into a "Permission denied: ..."
|
|
56
|
+
// tool error). The MCP server used to pre-filter this list by fetching
|
|
57
|
+
// the caller's permissions at startup and hiding tools it predicted
|
|
58
|
+
// would fail, but that duplicated the backend's own authorization
|
|
59
|
+
// logic and could drift from it — e.g. an unpinned caller (no
|
|
60
|
+
// PACA_PROJECT_ID) whose permission fetch returned little or nothing
|
|
61
|
+
// saw almost no tools at all, even though many of those calls would
|
|
62
|
+
// have succeeded.
|
|
63
|
+
//
|
|
64
|
+
// Repo tools are still hidden entirely when no repository plugin is
|
|
59
65
|
// configured for this conversation — mirrors executor.py's has_repos
|
|
60
66
|
// gate, which never attaches these tools to the agent at all rather
|
|
61
|
-
// than attaching them to fail against an empty plugin list.
|
|
67
|
+
// than attaching them to fail against an empty plugin list. This isn't
|
|
68
|
+
// a permission check: without a repo plugin these tools have no
|
|
69
|
+
// backend to call at all.
|
|
62
70
|
const hasRepoPlugins = (config.repoPluginIds?.length ?? 0) > 0;
|
|
63
71
|
const visibleCoreTools = hasRepoPlugins
|
|
64
|
-
?
|
|
65
|
-
:
|
|
66
|
-
console.error(`[server] Filtered ${visibleCoreTools.length} tools from ${allCoreTools.length} total tools`);
|
|
67
|
-
// Note: Plugin tools are not filtered by permissions at this level
|
|
68
|
-
// Permissions are enforced at the API level
|
|
72
|
+
? allCoreTools
|
|
73
|
+
: allCoreTools.filter((tool) => !REPO_TOOL_NAMES.has(tool.name));
|
|
69
74
|
return {
|
|
70
75
|
tools: [...visibleCoreTools, ...allPluginTools],
|
|
71
76
|
};
|
|
@@ -112,47 +117,6 @@ export async function createServer(config) {
|
|
|
112
117
|
});
|
|
113
118
|
return server;
|
|
114
119
|
}
|
|
115
|
-
/**
|
|
116
|
-
* Determines whether a core tool should be listed for the current caller.
|
|
117
|
-
*
|
|
118
|
-
* `projectId` is `config.projectId` — set only in single-project (pinned)
|
|
119
|
-
* mode. When unset, a `requiresProject` tool used to be gated solely on a
|
|
120
|
-
* scan of `permissionMap.projects`, which is populated only for a pinned
|
|
121
|
-
* project or a global agent's discovered invited projects (see
|
|
122
|
-
* `fetchAgentPermissions` in permissions.ts). That left it empty for an
|
|
123
|
-
* unpinned *human* user, so a global role grant (e.g. `{"*": true}`) was
|
|
124
|
-
* never consulted and every project-scoped tool stayed hidden even for a
|
|
125
|
-
* super-admin. Consulting the global permission map first fixes that
|
|
126
|
-
* without granting anything extra: it's the same `hasPermission` check
|
|
127
|
-
* already used for non-project-scoped tools, just applied here too.
|
|
128
|
-
*
|
|
129
|
-
* Exported for testing.
|
|
130
|
-
*/
|
|
131
|
-
export function isToolVisible(toolName, permissionMap, projectId) {
|
|
132
|
-
const toolPerm = getToolPermission(toolName);
|
|
133
|
-
if (!toolPerm) {
|
|
134
|
-
console.error(`[server] Tool ${toolName} has no permission mapping, allowing by default`);
|
|
135
|
-
return true;
|
|
136
|
-
}
|
|
137
|
-
if (projectId) {
|
|
138
|
-
const hasPerm = hasPermission(permissionMap, toolPerm.permissionKey, projectId);
|
|
139
|
-
console.error(`[server] Tool ${toolName} requires ${toolPerm.permissionKey}, granted: ${hasPerm}`);
|
|
140
|
-
return hasPerm;
|
|
141
|
-
}
|
|
142
|
-
if (toolPerm.requiresProject) {
|
|
143
|
-
// Checked globally first, then any project — log wording deliberately
|
|
144
|
-
// doesn't say "project permission" here, since a grant via the
|
|
145
|
-
// global map alone (no project scan needed) would otherwise be
|
|
146
|
-
// misreported as project-scoped when reading server logs.
|
|
147
|
-
const hasPerm = hasPermission(permissionMap, toolPerm.permissionKey) ||
|
|
148
|
-
Object.keys(permissionMap.projects).some((pid) => hasPermission(permissionMap, toolPerm.permissionKey, pid));
|
|
149
|
-
console.error(`[server] Tool ${toolName} requires ${toolPerm.permissionKey} (global or any project), granted: ${hasPerm}`);
|
|
150
|
-
return hasPerm;
|
|
151
|
-
}
|
|
152
|
-
const hasPerm = hasPermission(permissionMap, toolPerm.permissionKey);
|
|
153
|
-
console.error(`[server] Tool ${toolName} requires global permission ${toolPerm.permissionKey}, granted: ${hasPerm}`);
|
|
154
|
-
return hasPerm;
|
|
155
|
-
}
|
|
156
120
|
/**
|
|
157
121
|
* Merge plugin-contributed context sections into a core tool's result.
|
|
158
122
|
*
|
package/build/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EACN,qBAAqB,EACrB,sBAAsB,GACtB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACN,uBAAuB,EACvB,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/build/types/index.d.ts
CHANGED
|
@@ -53,10 +53,6 @@ export interface PacaConfig {
|
|
|
53
53
|
*/
|
|
54
54
|
repoPluginIds?: string[];
|
|
55
55
|
}
|
|
56
|
-
export interface PermissionMap {
|
|
57
|
-
global: Record<string, boolean>;
|
|
58
|
-
projects: Record<string, Record<string, boolean>>;
|
|
59
|
-
}
|
|
60
56
|
export interface SuccessEnvelope<T> {
|
|
61
57
|
success: true;
|
|
62
58
|
data: T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/build/permissions.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { PacaConfig } from "./types/index.js";
|
|
2
|
-
export interface PermissionMap {
|
|
3
|
-
global: Record<string, boolean>;
|
|
4
|
-
projects: Record<string, Record<string, boolean>>;
|
|
5
|
-
}
|
|
6
|
-
export interface ToolPermission {
|
|
7
|
-
toolName: string;
|
|
8
|
-
permissionKey: string;
|
|
9
|
-
requiresProject?: boolean;
|
|
10
|
-
}
|
|
11
|
-
export declare const TOOL_PERMISSIONS: ToolPermission[];
|
|
12
|
-
export declare function fetchAgentPermissions(config: PacaConfig): Promise<PermissionMap>;
|
|
13
|
-
export declare function hasPermission(permissionMap: PermissionMap, permissionKey: string, projectId?: string): boolean;
|
|
14
|
-
export declare function getToolPermission(toolName: string): ToolPermission | null;
|
|
15
|
-
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IAEtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAqb5C,CAAC;AA2EF,wBAAsB,qBAAqB,CAC1C,MAAM,EAAE,UAAU,GAChB,OAAO,CAAC,aAAa,CAAC,CA2GxB;AA+CD,wBAAgB,aAAa,CAC5B,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAyBT;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAEzE"}
|
package/build/permissions.js
DELETED
|
@@ -1,626 +0,0 @@
|
|
|
1
|
-
export const TOOL_PERMISSIONS = [
|
|
2
|
-
// Project tools
|
|
3
|
-
{ toolName: "list_projects", permissionKey: "projects.read" },
|
|
4
|
-
{
|
|
5
|
-
toolName: "get_project",
|
|
6
|
-
permissionKey: "projects.read",
|
|
7
|
-
requiresProject: true,
|
|
8
|
-
},
|
|
9
|
-
{ toolName: "create_project", permissionKey: "projects.create" },
|
|
10
|
-
{
|
|
11
|
-
toolName: "update_project",
|
|
12
|
-
permissionKey: "projects.write",
|
|
13
|
-
requiresProject: true,
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
toolName: "delete_project",
|
|
17
|
-
permissionKey: "projects.delete",
|
|
18
|
-
requiresProject: true,
|
|
19
|
-
},
|
|
20
|
-
// Task tools
|
|
21
|
-
{
|
|
22
|
-
toolName: "list_tasks",
|
|
23
|
-
permissionKey: "tasks.read",
|
|
24
|
-
requiresProject: true,
|
|
25
|
-
},
|
|
26
|
-
{ toolName: "get_task", permissionKey: "tasks.read", requiresProject: true },
|
|
27
|
-
{
|
|
28
|
-
toolName: "get_task_by_number",
|
|
29
|
-
permissionKey: "tasks.read",
|
|
30
|
-
requiresProject: true,
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
toolName: "create_task",
|
|
34
|
-
permissionKey: "tasks.write",
|
|
35
|
-
requiresProject: true,
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
toolName: "update_task",
|
|
39
|
-
permissionKey: "tasks.write",
|
|
40
|
-
requiresProject: true,
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
toolName: "delete_task",
|
|
44
|
-
permissionKey: "tasks.write",
|
|
45
|
-
requiresProject: true,
|
|
46
|
-
},
|
|
47
|
-
// Sprint tools
|
|
48
|
-
{
|
|
49
|
-
toolName: "list_sprints",
|
|
50
|
-
permissionKey: "sprints.read",
|
|
51
|
-
requiresProject: true,
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
toolName: "get_sprint",
|
|
55
|
-
permissionKey: "sprints.read",
|
|
56
|
-
requiresProject: true,
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
toolName: "create_sprint",
|
|
60
|
-
permissionKey: "sprints.write",
|
|
61
|
-
requiresProject: true,
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
toolName: "update_sprint",
|
|
65
|
-
permissionKey: "sprints.write",
|
|
66
|
-
requiresProject: true,
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
toolName: "delete_sprint",
|
|
70
|
-
permissionKey: "sprints.write",
|
|
71
|
-
requiresProject: true,
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
toolName: "complete_sprint",
|
|
75
|
-
permissionKey: "sprints.write",
|
|
76
|
-
requiresProject: true,
|
|
77
|
-
},
|
|
78
|
-
// Filesystem document tools
|
|
79
|
-
{ toolName: "list_docs", permissionKey: "docs.read", requiresProject: true },
|
|
80
|
-
{ toolName: "read_doc", permissionKey: "docs.read", requiresProject: true },
|
|
81
|
-
{ toolName: "write_doc", permissionKey: "docs.write", requiresProject: true },
|
|
82
|
-
{
|
|
83
|
-
toolName: "delete_doc",
|
|
84
|
-
permissionKey: "docs.write",
|
|
85
|
-
requiresProject: true,
|
|
86
|
-
},
|
|
87
|
-
{ toolName: "move_doc", permissionKey: "docs.write", requiresProject: true },
|
|
88
|
-
// Project member tools
|
|
89
|
-
{
|
|
90
|
-
toolName: "list_project_members",
|
|
91
|
-
permissionKey: "project.members.read",
|
|
92
|
-
requiresProject: true,
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
toolName: "add_project_member",
|
|
96
|
-
permissionKey: "project.members.write",
|
|
97
|
-
requiresProject: true,
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
toolName: "get_my_project_permissions",
|
|
101
|
-
permissionKey: "project.members.read",
|
|
102
|
-
requiresProject: true,
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
toolName: "update_project_member_role",
|
|
106
|
-
permissionKey: "project.members.write",
|
|
107
|
-
requiresProject: true,
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
toolName: "remove_project_member",
|
|
111
|
-
permissionKey: "project.members.write",
|
|
112
|
-
requiresProject: true,
|
|
113
|
-
},
|
|
114
|
-
// Project role tools
|
|
115
|
-
{
|
|
116
|
-
toolName: "list_project_roles",
|
|
117
|
-
permissionKey: "project.roles.read",
|
|
118
|
-
requiresProject: true,
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
toolName: "create_project_role",
|
|
122
|
-
permissionKey: "project.roles.write",
|
|
123
|
-
requiresProject: true,
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
toolName: "update_project_role",
|
|
127
|
-
permissionKey: "project.roles.write",
|
|
128
|
-
requiresProject: true,
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
toolName: "delete_project_role",
|
|
132
|
-
permissionKey: "project.roles.write",
|
|
133
|
-
requiresProject: true,
|
|
134
|
-
},
|
|
135
|
-
// Task type tools — project *schema* (which task types exist). Redefining
|
|
136
|
-
// the type list is gated on project.settings.task_types.write, a
|
|
137
|
-
// different capability from "edit a task's content" (see router.go's
|
|
138
|
-
// task-types route comment / authz.
|
|
139
|
-
// PermissionProjectSettingsTaskTypesWrite's doc comment). Viewing the
|
|
140
|
-
// list has no dedicated read permission — it's gated on tasks.read like
|
|
141
|
-
// its own consumer (a task's type field), not a separate key. A member
|
|
142
|
-
// with only tasks.write (no project.settings.task_types.write) can still
|
|
143
|
-
// edit tasks via update_task, but not these.
|
|
144
|
-
{
|
|
145
|
-
toolName: "list_task_types",
|
|
146
|
-
permissionKey: "tasks.read",
|
|
147
|
-
requiresProject: true,
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
toolName: "create_task_type",
|
|
151
|
-
permissionKey: "project.settings.task_types.write",
|
|
152
|
-
requiresProject: true,
|
|
153
|
-
},
|
|
154
|
-
{
|
|
155
|
-
toolName: "update_task_type",
|
|
156
|
-
permissionKey: "project.settings.task_types.write",
|
|
157
|
-
requiresProject: true,
|
|
158
|
-
},
|
|
159
|
-
{
|
|
160
|
-
toolName: "delete_task_type",
|
|
161
|
-
permissionKey: "project.settings.task_types.write",
|
|
162
|
-
requiresProject: true,
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
toolName: "set_default_task_type",
|
|
166
|
-
permissionKey: "project.settings.task_types.write",
|
|
167
|
-
requiresProject: true,
|
|
168
|
-
},
|
|
169
|
-
// Task status tools — project *schema* (which statuses exist, their
|
|
170
|
-
// order, which is the default), same split as task types above (view via
|
|
171
|
-
// tasks.read, redefine via project.settings.task_statuses.write). Moving
|
|
172
|
-
// a task *between* existing statuses (update_task, move_task/
|
|
173
|
-
// bulk_move_tasks below) stays on tasks.write — that's editing a task,
|
|
174
|
-
// not the status list.
|
|
175
|
-
{
|
|
176
|
-
toolName: "list_task_statuses",
|
|
177
|
-
permissionKey: "tasks.read",
|
|
178
|
-
requiresProject: true,
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
toolName: "create_task_status",
|
|
182
|
-
permissionKey: "project.settings.task_statuses.write",
|
|
183
|
-
requiresProject: true,
|
|
184
|
-
},
|
|
185
|
-
{
|
|
186
|
-
toolName: "update_task_status",
|
|
187
|
-
permissionKey: "project.settings.task_statuses.write",
|
|
188
|
-
requiresProject: true,
|
|
189
|
-
},
|
|
190
|
-
{
|
|
191
|
-
toolName: "delete_task_status",
|
|
192
|
-
permissionKey: "project.settings.task_statuses.write",
|
|
193
|
-
requiresProject: true,
|
|
194
|
-
},
|
|
195
|
-
{
|
|
196
|
-
toolName: "set_default_task_status",
|
|
197
|
-
permissionKey: "project.settings.task_statuses.write",
|
|
198
|
-
requiresProject: true,
|
|
199
|
-
},
|
|
200
|
-
// View tools — gated on their own views.read/write, not a borrowed
|
|
201
|
-
// tasks.read/write (there was no dedicated permission for the view
|
|
202
|
-
// resource itself before — see router.go's views route comment).
|
|
203
|
-
// Moving a *task* within a view (list_task_positions/bulk_move_tasks/
|
|
204
|
-
// move_task below) stays on tasks.* — that's still editing a task.
|
|
205
|
-
{
|
|
206
|
-
toolName: "list_views",
|
|
207
|
-
permissionKey: "views.read",
|
|
208
|
-
requiresProject: true,
|
|
209
|
-
},
|
|
210
|
-
{
|
|
211
|
-
toolName: "create_view",
|
|
212
|
-
permissionKey: "views.write",
|
|
213
|
-
requiresProject: true,
|
|
214
|
-
},
|
|
215
|
-
{
|
|
216
|
-
toolName: "reorder_views",
|
|
217
|
-
permissionKey: "views.write",
|
|
218
|
-
requiresProject: true,
|
|
219
|
-
},
|
|
220
|
-
{ toolName: "get_view", permissionKey: "views.read", requiresProject: true },
|
|
221
|
-
{
|
|
222
|
-
toolName: "update_view",
|
|
223
|
-
permissionKey: "views.write",
|
|
224
|
-
requiresProject: true,
|
|
225
|
-
},
|
|
226
|
-
{
|
|
227
|
-
toolName: "delete_view",
|
|
228
|
-
permissionKey: "views.write",
|
|
229
|
-
requiresProject: true,
|
|
230
|
-
},
|
|
231
|
-
{
|
|
232
|
-
toolName: "list_task_positions",
|
|
233
|
-
permissionKey: "tasks.read",
|
|
234
|
-
requiresProject: true,
|
|
235
|
-
},
|
|
236
|
-
{
|
|
237
|
-
toolName: "bulk_move_tasks",
|
|
238
|
-
permissionKey: "tasks.write",
|
|
239
|
-
requiresProject: true,
|
|
240
|
-
},
|
|
241
|
-
{
|
|
242
|
-
toolName: "move_task",
|
|
243
|
-
permissionKey: "tasks.write",
|
|
244
|
-
requiresProject: true,
|
|
245
|
-
},
|
|
246
|
-
// Custom field tools — project schema, same split as task types/statuses
|
|
247
|
-
// above (view via tasks.read, redefine via
|
|
248
|
-
// project.settings.custom_fields.write).
|
|
249
|
-
{
|
|
250
|
-
toolName: "list_custom_fields",
|
|
251
|
-
permissionKey: "tasks.read",
|
|
252
|
-
requiresProject: true,
|
|
253
|
-
},
|
|
254
|
-
{
|
|
255
|
-
toolName: "create_custom_field",
|
|
256
|
-
permissionKey: "project.settings.custom_fields.write",
|
|
257
|
-
requiresProject: true,
|
|
258
|
-
},
|
|
259
|
-
{
|
|
260
|
-
toolName: "get_custom_field",
|
|
261
|
-
permissionKey: "tasks.read",
|
|
262
|
-
requiresProject: true,
|
|
263
|
-
},
|
|
264
|
-
{
|
|
265
|
-
toolName: "update_custom_field",
|
|
266
|
-
permissionKey: "project.settings.custom_fields.write",
|
|
267
|
-
requiresProject: true,
|
|
268
|
-
},
|
|
269
|
-
{
|
|
270
|
-
toolName: "delete_custom_field",
|
|
271
|
-
permissionKey: "project.settings.custom_fields.write",
|
|
272
|
-
requiresProject: true,
|
|
273
|
-
},
|
|
274
|
-
// Attachment tools
|
|
275
|
-
{
|
|
276
|
-
toolName: "upload_task_attachment",
|
|
277
|
-
permissionKey: "tasks.write",
|
|
278
|
-
requiresProject: true,
|
|
279
|
-
},
|
|
280
|
-
{
|
|
281
|
-
toolName: "list_task_attachments",
|
|
282
|
-
permissionKey: "tasks.read",
|
|
283
|
-
requiresProject: true,
|
|
284
|
-
},
|
|
285
|
-
{
|
|
286
|
-
toolName: "get_attachment_download_url",
|
|
287
|
-
permissionKey: "tasks.read",
|
|
288
|
-
requiresProject: true,
|
|
289
|
-
},
|
|
290
|
-
{
|
|
291
|
-
toolName: "read_task_attachment",
|
|
292
|
-
permissionKey: "tasks.read",
|
|
293
|
-
requiresProject: true,
|
|
294
|
-
},
|
|
295
|
-
{
|
|
296
|
-
toolName: "delete_task_attachment",
|
|
297
|
-
permissionKey: "tasks.write",
|
|
298
|
-
requiresProject: true,
|
|
299
|
-
},
|
|
300
|
-
// Task activity and comment tools
|
|
301
|
-
{
|
|
302
|
-
toolName: "list_task_activities",
|
|
303
|
-
permissionKey: "tasks.read",
|
|
304
|
-
requiresProject: true,
|
|
305
|
-
},
|
|
306
|
-
{
|
|
307
|
-
toolName: "add_task_comment",
|
|
308
|
-
permissionKey: "tasks.write",
|
|
309
|
-
requiresProject: true,
|
|
310
|
-
},
|
|
311
|
-
{
|
|
312
|
-
toolName: "update_task_comment",
|
|
313
|
-
permissionKey: "tasks.write",
|
|
314
|
-
requiresProject: true,
|
|
315
|
-
},
|
|
316
|
-
{
|
|
317
|
-
toolName: "delete_task_comment",
|
|
318
|
-
permissionKey: "tasks.write",
|
|
319
|
-
requiresProject: true,
|
|
320
|
-
},
|
|
321
|
-
// Task link tools (backend: GET gated by tasks.read, POST/DELETE by
|
|
322
|
-
// tasks.write — same permissions.go keys as the task tools above; these
|
|
323
|
-
// three were added in the task-link feature commit without a matching
|
|
324
|
-
// entry here, which left them unconditionally listed for every caller
|
|
325
|
-
// even though the backend itself always enforced these permissions).
|
|
326
|
-
{
|
|
327
|
-
toolName: "list_task_links",
|
|
328
|
-
permissionKey: "tasks.read",
|
|
329
|
-
requiresProject: true,
|
|
330
|
-
},
|
|
331
|
-
{
|
|
332
|
-
toolName: "create_task_link",
|
|
333
|
-
permissionKey: "tasks.write",
|
|
334
|
-
requiresProject: true,
|
|
335
|
-
},
|
|
336
|
-
{
|
|
337
|
-
toolName: "delete_task_link",
|
|
338
|
-
permissionKey: "tasks.write",
|
|
339
|
-
requiresProject: true,
|
|
340
|
-
},
|
|
341
|
-
// Document activity and comment tools (backend: GET gated by docs.read,
|
|
342
|
-
// POST/PATCH/DELETE by docs.write, mirroring list_docs/read_doc/write_doc
|
|
343
|
-
// above — same history as the task-link tools: added without an entry
|
|
344
|
-
// here).
|
|
345
|
-
{
|
|
346
|
-
toolName: "list_doc_activities",
|
|
347
|
-
permissionKey: "docs.read",
|
|
348
|
-
requiresProject: true,
|
|
349
|
-
},
|
|
350
|
-
{
|
|
351
|
-
toolName: "add_doc_comment",
|
|
352
|
-
permissionKey: "docs.write",
|
|
353
|
-
requiresProject: true,
|
|
354
|
-
},
|
|
355
|
-
{
|
|
356
|
-
toolName: "update_doc_comment",
|
|
357
|
-
permissionKey: "docs.write",
|
|
358
|
-
requiresProject: true,
|
|
359
|
-
},
|
|
360
|
-
{
|
|
361
|
-
toolName: "delete_doc_comment",
|
|
362
|
-
permissionKey: "docs.write",
|
|
363
|
-
requiresProject: true,
|
|
364
|
-
},
|
|
365
|
-
// Automation tools (still gated by the workflows.* permission keys — see
|
|
366
|
-
// the backend's automation router registration for why those key names
|
|
367
|
-
// were kept rather than renamed to automations.*)
|
|
368
|
-
{
|
|
369
|
-
toolName: "get_automation",
|
|
370
|
-
permissionKey: "workflows.read",
|
|
371
|
-
requiresProject: true,
|
|
372
|
-
},
|
|
373
|
-
{
|
|
374
|
-
toolName: "create_automation",
|
|
375
|
-
permissionKey: "workflows.write",
|
|
376
|
-
requiresProject: true,
|
|
377
|
-
},
|
|
378
|
-
{
|
|
379
|
-
toolName: "update_automation",
|
|
380
|
-
permissionKey: "workflows.write",
|
|
381
|
-
requiresProject: true,
|
|
382
|
-
},
|
|
383
|
-
{
|
|
384
|
-
toolName: "delete_automation",
|
|
385
|
-
permissionKey: "workflows.write",
|
|
386
|
-
requiresProject: true,
|
|
387
|
-
},
|
|
388
|
-
// Page annotation tools (comments pinned to elements of a running
|
|
389
|
-
// environment's forwarded port via the browser extension)
|
|
390
|
-
{
|
|
391
|
-
toolName: "list_annotations",
|
|
392
|
-
permissionKey: "annotations.read",
|
|
393
|
-
requiresProject: true,
|
|
394
|
-
},
|
|
395
|
-
{
|
|
396
|
-
toolName: "get_annotation",
|
|
397
|
-
permissionKey: "annotations.read",
|
|
398
|
-
requiresProject: true,
|
|
399
|
-
},
|
|
400
|
-
// Conversation tools — read_conversation takes no projectId (it calls the
|
|
401
|
-
// agent-self-service GET /agents/me/conversations/:id path, which
|
|
402
|
-
// authorizes the *specific* conversation by matching the caller's own
|
|
403
|
-
// agent_id — see agentdom.Service.GetConversationForAgent's doc comment;
|
|
404
|
-
// that check happens server-side regardless of what's listed here).
|
|
405
|
-
// Gated on conversations.read: a dedicated domain split from agents.*
|
|
406
|
-
// (which governs managing Agent entities themselves — router.go's
|
|
407
|
-
// /agents routes, both global- and project-scoped) so a role can grant
|
|
408
|
-
// "may read/drive conversations" independently of "may reconfigure
|
|
409
|
-
// agents". A regular USER-role human has no conversations.* by default
|
|
410
|
-
// (see router.go's comment on the deliberately-ungated chat-session
|
|
411
|
-
// routes) — reading another conversation's transcript still requires an
|
|
412
|
-
// explicit grant.
|
|
413
|
-
// requiresProject: true broadens the unpinned-mode check (see
|
|
414
|
-
// isToolVisible in server.ts) to accept conversations.read granted in
|
|
415
|
-
// any project the caller belongs to, not just a global grant — matching
|
|
416
|
-
// the tool's own "any conversation, project or global" scope.
|
|
417
|
-
{
|
|
418
|
-
toolName: "read_conversation",
|
|
419
|
-
permissionKey: "conversations.read",
|
|
420
|
-
requiresProject: true,
|
|
421
|
-
},
|
|
422
|
-
];
|
|
423
|
-
/** Parses a permissions object/array response body into a flat boolean map. */
|
|
424
|
-
function parsePermissionData(data) {
|
|
425
|
-
const out = {};
|
|
426
|
-
if (!data)
|
|
427
|
-
return out;
|
|
428
|
-
if (Array.isArray(data)) {
|
|
429
|
-
for (const perm of data) {
|
|
430
|
-
out[perm] = true;
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
else if (typeof data === "object") {
|
|
434
|
-
for (const [key, value] of Object.entries(data)) {
|
|
435
|
-
out[key] = value === true || value === "true";
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
return out;
|
|
439
|
-
}
|
|
440
|
-
/** Extracts a `permissions` payload from either an unwrapped body or one
|
|
441
|
-
* still wrapped in the API's `{success, data}` envelope — defensively
|
|
442
|
-
* checking both shapes, since callers here use a raw fetch() rather than
|
|
443
|
-
* PacaAPIClient's envelope-unwrapping request() helper. */
|
|
444
|
-
function extractPermissions(json) {
|
|
445
|
-
if (json && typeof json === "object") {
|
|
446
|
-
if ("data" in json &&
|
|
447
|
-
json.data &&
|
|
448
|
-
typeof json.data === "object" &&
|
|
449
|
-
"permissions" in json.data) {
|
|
450
|
-
return json.data.permissions;
|
|
451
|
-
}
|
|
452
|
-
if ("permissions" in json) {
|
|
453
|
-
return json.permissions;
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
return json;
|
|
457
|
-
}
|
|
458
|
-
/**
|
|
459
|
-
* Fetches this project's permission map for a single project and merges it
|
|
460
|
-
* into `projects`. Shared by the pinned single-project fetch and the
|
|
461
|
-
* unpinned global-agent multi-project fetch below — same endpoint
|
|
462
|
-
* (GET .../members/me/permissions), same agent-or-human auth headers.
|
|
463
|
-
*/
|
|
464
|
-
async function fetchProjectPermissions(config, headers, projectId, projects) {
|
|
465
|
-
try {
|
|
466
|
-
const permUrl = `${config.baseURL}/api/v1/projects/${projectId}/members/me/permissions`;
|
|
467
|
-
const permResponse = await fetch(permUrl, { headers });
|
|
468
|
-
if (!permResponse.ok) {
|
|
469
|
-
console.error(`Failed to fetch permissions for project ${projectId}: ${permResponse.status} ${permResponse.statusText}`);
|
|
470
|
-
return;
|
|
471
|
-
}
|
|
472
|
-
const permJson = await permResponse.json();
|
|
473
|
-
const permData = extractPermissions(permJson);
|
|
474
|
-
if (permData && typeof permData === "object") {
|
|
475
|
-
projects[projectId] = parsePermissionData(permData);
|
|
476
|
-
console.error(`[permissions] Project ${projectId} permissions:`, Object.keys(projects[projectId]));
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
|
-
catch (err) {
|
|
480
|
-
console.error(`Failed to fetch permissions for project ${projectId}:`, err);
|
|
481
|
-
}
|
|
482
|
-
}
|
|
483
|
-
export async function fetchAgentPermissions(config) {
|
|
484
|
-
const global = {};
|
|
485
|
-
const projects = {};
|
|
486
|
-
// A personal API key (no agentId, no projectId) is filtered by the
|
|
487
|
-
// caller's own permissions like every other mode — global permissions are
|
|
488
|
-
// fetched below via /users/me/global-permissions. There is no "show every
|
|
489
|
-
// tool" fallback; a key with no permissions sees no permission-gated
|
|
490
|
-
// tools. (Project-scoped tools stay hidden for a personal key until its
|
|
491
|
-
// per-project permissions are also discovered — a follow-up, not part of
|
|
492
|
-
// the security hardening here.)
|
|
493
|
-
// A global-scope agent: agentId set, no fixed projectId — running
|
|
494
|
-
// "unpinned" (see index.ts). Unlike a project-scoped agent, it has its
|
|
495
|
-
// own global role (agents.global_role_id) and may be invited into
|
|
496
|
-
// several projects at once, so both the global-permissions fetch below
|
|
497
|
-
// and the project-permissions fetch need a global-agent-specific path.
|
|
498
|
-
const isGlobalAgent = Boolean(config.agentId) && !config.projectId;
|
|
499
|
-
try {
|
|
500
|
-
const headers = {
|
|
501
|
-
"Content-Type": "application/json",
|
|
502
|
-
"X-API-Key": config.apiKey,
|
|
503
|
-
};
|
|
504
|
-
if (config.agentId) {
|
|
505
|
-
headers["X-Agent-ID"] = config.agentId;
|
|
506
|
-
}
|
|
507
|
-
// Global permissions: a human (personal key) reads their own via
|
|
508
|
-
// /users/me/global-permissions; a global agent reads its own via the
|
|
509
|
-
// analogous agent self-service endpoint (agent-API-key authenticated,
|
|
510
|
-
// resolves via the agent's own global_role_id — see
|
|
511
|
-
// authz.HasGlobalPermissionsForAgent on the backend). A
|
|
512
|
-
// project-scoped agent has no global role of its own and skips this,
|
|
513
|
-
// same as before.
|
|
514
|
-
if (!config.agentId || isGlobalAgent) {
|
|
515
|
-
try {
|
|
516
|
-
const globalUrl = isGlobalAgent
|
|
517
|
-
? `${config.baseURL}/api/v1/agents/me/global-permissions`
|
|
518
|
-
: `${config.baseURL}/api/v1/users/me/global-permissions`;
|
|
519
|
-
const globalResponse = await fetch(globalUrl, { headers });
|
|
520
|
-
if (globalResponse.ok) {
|
|
521
|
-
const globalJson = await globalResponse.json();
|
|
522
|
-
const globalData = extractPermissions(globalJson);
|
|
523
|
-
Object.assign(global, parsePermissionData(globalData));
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
catch (err) {
|
|
527
|
-
console.error("[permissions] Failed to fetch global permissions:", err);
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
if (config.projectId) {
|
|
531
|
-
await fetchProjectPermissions(config, headers, config.projectId, projects);
|
|
532
|
-
const entityType = config.agentId ? "agent" : "user";
|
|
533
|
-
console.error(`[permissions] Loaded permissions for ${entityType} in project ${config.projectId}`);
|
|
534
|
-
}
|
|
535
|
-
else if (isGlobalAgent) {
|
|
536
|
-
// Discover every project this global agent has been invited into
|
|
537
|
-
// (GET /agents/me/projects), then fetch its own permissions in
|
|
538
|
-
// each — the multi-project counterpart of the single fetch above.
|
|
539
|
-
// This is what lets the tool-listing filter's requiresProject
|
|
540
|
-
// branch (server.ts) and per-call projectId validation (never
|
|
541
|
-
// pinned when config.projectId is unset) resolve to real
|
|
542
|
-
// per-project permissions instead of an empty map.
|
|
543
|
-
try {
|
|
544
|
-
const projectsUrl = `${config.baseURL}/api/v1/agents/me/projects`;
|
|
545
|
-
const projectsResponse = await fetch(projectsUrl, { headers });
|
|
546
|
-
if (projectsResponse.ok) {
|
|
547
|
-
const projectsJson = await projectsResponse.json();
|
|
548
|
-
const body = projectsJson &&
|
|
549
|
-
typeof projectsJson === "object" &&
|
|
550
|
-
"data" in projectsJson
|
|
551
|
-
? projectsJson.data
|
|
552
|
-
: projectsJson;
|
|
553
|
-
const projectIds = Array.isArray(body?.project_ids)
|
|
554
|
-
? body.project_ids
|
|
555
|
-
: [];
|
|
556
|
-
await Promise.all(projectIds.map((projectId) => fetchProjectPermissions(config, headers, projectId, projects)));
|
|
557
|
-
console.error(`[permissions] Global agent loaded permissions for ${projectIds.length} invited project(s)`);
|
|
558
|
-
}
|
|
559
|
-
else {
|
|
560
|
-
console.error(`[permissions] Failed to fetch invited projects: ${projectsResponse.status} ${projectsResponse.statusText}`);
|
|
561
|
-
}
|
|
562
|
-
}
|
|
563
|
-
catch (err) {
|
|
564
|
-
console.error("[permissions] Failed to fetch invited projects:", err);
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
}
|
|
568
|
-
catch (error) {
|
|
569
|
-
console.error("[permissions] Failed to fetch permissions:", error);
|
|
570
|
-
}
|
|
571
|
-
return { global, projects };
|
|
572
|
-
}
|
|
573
|
-
/**
|
|
574
|
-
* Checks one flat permission map (either the global map or a single
|
|
575
|
-
* project's) for an exact match or a covering wildcard, mirroring the Go
|
|
576
|
-
* backend's own matcher (internal/platform/authz/authorizer.go's
|
|
577
|
-
* hasPermission): every granted key ending in ".*" is tried as a prefix
|
|
578
|
-
* against permissionKey, not just one wildcard derived from permissionKey's
|
|
579
|
-
* first segment. That distinction matters now that some domains nest a
|
|
580
|
-
* wildcard below the top level — project.settings.* (granted to e.g.
|
|
581
|
-
* PROJECT_OWNER/PROJECT_MANAGER by default) must cover
|
|
582
|
-
* project.settings.task_types.read, but there is no such permission as a
|
|
583
|
-
* bare "project.*"; a single derived `${parts[0]}.*` candidate would only
|
|
584
|
-
* ever check that non-existent key and never match. Scanning every granted
|
|
585
|
-
* wildcard also means this needs no updating if a future permission adds
|
|
586
|
-
* another nesting level.
|
|
587
|
-
*/
|
|
588
|
-
function matchesPermissionMap(map, permissionKey, scopeLabel) {
|
|
589
|
-
if (map["*"] === true) {
|
|
590
|
-
console.error(`[permissions] Granting ${permissionKey} via ${scopeLabel} *`);
|
|
591
|
-
return true;
|
|
592
|
-
}
|
|
593
|
-
if (map[permissionKey] === true) {
|
|
594
|
-
console.error(`[permissions] Granting ${permissionKey} via ${scopeLabel} exact match`);
|
|
595
|
-
return true;
|
|
596
|
-
}
|
|
597
|
-
for (const [key, granted] of Object.entries(map)) {
|
|
598
|
-
if (!granted || !key.endsWith(".*"))
|
|
599
|
-
continue;
|
|
600
|
-
const prefix = key.slice(0, -1); // strip the trailing "*", keep the dot
|
|
601
|
-
if (permissionKey.startsWith(prefix)) {
|
|
602
|
-
console.error(`[permissions] Granting ${permissionKey} via ${scopeLabel} ${key}`);
|
|
603
|
-
return true;
|
|
604
|
-
}
|
|
605
|
-
}
|
|
606
|
-
return false;
|
|
607
|
-
}
|
|
608
|
-
export function hasPermission(permissionMap, permissionKey, projectId) {
|
|
609
|
-
if (!permissionKey)
|
|
610
|
-
return true;
|
|
611
|
-
const { global, projects } = permissionMap;
|
|
612
|
-
if (matchesPermissionMap(global, permissionKey, "global")) {
|
|
613
|
-
return true;
|
|
614
|
-
}
|
|
615
|
-
if (projectId && projects[projectId]) {
|
|
616
|
-
if (matchesPermissionMap(projects[projectId], permissionKey, `project ${projectId}`)) {
|
|
617
|
-
return true;
|
|
618
|
-
}
|
|
619
|
-
console.error(`[permissions] Denying ${permissionKey} for project ${projectId} - no matching permission`);
|
|
620
|
-
}
|
|
621
|
-
return false;
|
|
622
|
-
}
|
|
623
|
-
export function getToolPermission(toolName) {
|
|
624
|
-
return TOOL_PERMISSIONS.find((tp) => tp.toolName === toolName) || null;
|
|
625
|
-
}
|
|
626
|
-
//# sourceMappingURL=permissions.js.map
|
package/build/permissions.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"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"}
|