@paca-ai/paca-mcp 0.10.8-rc.1 → 0.11.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/build/api/automation-client.d.ts +29 -0
- package/build/api/automation-client.d.ts.map +1 -0
- package/build/api/automation-client.js +121 -0
- package/build/api/automation-client.js.map +1 -0
- package/build/api/index.d.ts +1 -1
- package/build/api/index.d.ts.map +1 -1
- package/build/api/index.js +1 -1
- package/build/api/index.js.map +1 -1
- package/build/package.json +1 -1
- package/build/permissions.d.ts.map +1 -1
- package/build/permissions.js +7 -5
- package/build/permissions.js.map +1 -1
- package/build/server.js +3 -3
- package/build/server.js.map +1 -1
- package/build/tools/automation-tools.d.ts +17 -0
- package/build/tools/automation-tools.d.ts.map +1 -0
- package/build/tools/automation-tools.js +440 -0
- package/build/tools/automation-tools.js.map +1 -0
- package/build/tools/doc-activity-tools.d.ts.map +1 -1
- package/build/tools/doc-activity-tools.js +3 -1
- package/build/tools/doc-activity-tools.js.map +1 -1
- package/build/tools/index.d.ts +2 -2
- package/build/tools/index.d.ts.map +1 -1
- package/build/tools/index.js +8 -8
- package/build/tools/index.js.map +1 -1
- package/build/tools/member-tools.d.ts.map +1 -1
- package/build/tools/member-tools.js +6 -0
- package/build/tools/member-tools.js.map +1 -1
- package/build/tools/task-tools.d.ts.map +1 -1
- package/build/tools/task-tools.js +3 -3
- package/build/tools/task-tools.js.map +1 -1
- package/build/types/index.d.ts +47 -47
- package/build/types/index.d.ts.map +1 -1
- package/build/utils/formatters.d.ts.map +1 -1
- package/build/utils/formatters.js +2 -1
- package/build/utils/formatters.js.map +1 -1
- package/package.json +1 -1
- package/build/api/workflow-client.d.ts +0 -31
- package/build/api/workflow-client.d.ts.map +0 -1
- package/build/api/workflow-client.js +0 -120
- package/build/api/workflow-client.js.map +0 -1
- package/build/tools/workflow-orchestration.d.ts +0 -101
- package/build/tools/workflow-orchestration.d.ts.map +0 -1
- package/build/tools/workflow-orchestration.js +0 -399
- package/build/tools/workflow-orchestration.js.map +0 -1
- package/build/tools/workflow-tools.d.ts +0 -11
- package/build/tools/workflow-tools.d.ts.map +0 -1
- package/build/tools/workflow-tools.js +0 -607
- package/build/tools/workflow-tools.js.map +0 -1
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { formatToolError } from "../utils/index.js";
|
|
3
|
+
const PROJECT_ID_DESC = "The technical UUID of the project (e.g., '550e8400-e29b-41d4-a716-446655440000'). Use list_projects to get the project ID. Do NOT use the project name.";
|
|
4
|
+
const AUTOMATION_ID_DESC = "The technical UUID of the automation. Use get_automation (without automationId) to list automations and get their IDs.";
|
|
5
|
+
const STATUS_ID_DESC = "The technical UUID of a task status in this project. Use list_task_statuses to get status IDs.";
|
|
6
|
+
const MEMBER_ID_DESC = "The technical UUID of the project member (human or agent) to assign. Use list_project_members to get member IDs.";
|
|
7
|
+
const AutomationStatusEnum = z.enum(["draft", "active", "archived"]);
|
|
8
|
+
const NodeKindEnum = z.enum(["trigger", "condition", "action"]);
|
|
9
|
+
const TRIGGER_TYPES = [
|
|
10
|
+
"status_changed",
|
|
11
|
+
"task_created",
|
|
12
|
+
"assignee_changed",
|
|
13
|
+
"priority_changed",
|
|
14
|
+
"tag_added",
|
|
15
|
+
"due_date_reached",
|
|
16
|
+
"predecessor_done",
|
|
17
|
+
"cron",
|
|
18
|
+
"api_trigger",
|
|
19
|
+
];
|
|
20
|
+
const ACTION_TYPES = [
|
|
21
|
+
"assign",
|
|
22
|
+
"set_status",
|
|
23
|
+
"set_priority",
|
|
24
|
+
"add_tag",
|
|
25
|
+
"set_custom_field",
|
|
26
|
+
"trigger_ai_agent",
|
|
27
|
+
"call_api",
|
|
28
|
+
];
|
|
29
|
+
// .strict() on every item schema below is deliberate: agents occasionally
|
|
30
|
+
// invent a plausible-but-wrong field name. Without .strict(), Zod silently
|
|
31
|
+
// drops the unrecognized key; with .strict(), the caller also gets an
|
|
32
|
+
// explicit "Unrecognized key(s)" issue naming the mistake.
|
|
33
|
+
const NodeSetInputSchema = z
|
|
34
|
+
.object({
|
|
35
|
+
id: z
|
|
36
|
+
.string()
|
|
37
|
+
.optional()
|
|
38
|
+
.describe("Omit to CREATE a new node (kind/type are then required). Pass an existing node's id to UPDATE its config/position instead (kind/type are ignored for an update — a node's kind/type can't change after creation)."),
|
|
39
|
+
ref: z
|
|
40
|
+
.string()
|
|
41
|
+
.optional()
|
|
42
|
+
.describe("Only meaningful when creating a new node (id omitted): a label YOU choose for this node, so edges.add in this SAME call can reference it by ref before it has a real id yet."),
|
|
43
|
+
kind: NodeKindEnum.optional(),
|
|
44
|
+
type: z
|
|
45
|
+
.string()
|
|
46
|
+
.optional()
|
|
47
|
+
.describe(`Built-in trigger types: ${TRIGGER_TYPES.join(", ")}. Built-in action types: ${ACTION_TYPES.join(", ")}. A Condition node's type is always "condition". A plugin may also contribute its own reverse-DNS-namespaced type (e.g. "com.acme.github.pr_status") — check the project's installed plugins if unsure what's available.`),
|
|
48
|
+
config: z
|
|
49
|
+
.record(z.string(), z.unknown())
|
|
50
|
+
.optional()
|
|
51
|
+
.describe(`Type-specific config. Trigger: {status_id?} for status_changed (omit = any status; ${STATUS_ID_DESC}), {tag?} for tag_added (omit = any tag), {due_date_offset_minutes?} for due_date_reached, {watched_task_ids, target_task_id?} for predecessor_done (fires once every watched task is done; watched_task_ids is required; target_task_id is the DIFFERENT task the graph then runs against, re-evaluated using its own current state — optional, see the note below), {cron_expression, target_task_id?} for cron (cron_expression is a standard 5-field cron expression evaluated in UTC, e.g. "*/15 * * * *" — required; target_task_id is the fixed task the graph runs against on every fire — optional, see the note below), {target_task_id?} for api_trigger (fires when an external caller POSTs to this node's webhook URL with a valid secret token; target_task_id is the fixed task the graph runs against on every call — optional, see the note below; the webhook secret itself can only be generated from the web UI, not via this tool). Note on target_task_id: leave it unset if the trigger should only reach call_api and/or trigger_ai_agent actions downstream — those are the only two action types that don't need a task (call_api operates on static config; trigger_ai_agent fires a standalone message at the agent instead of assigning a task when there's none), so a task-less trigger may only connect to them (edge/node-update calls that would connect it to a condition or any other action are rejected). Action: {member_id} for assign/trigger_ai_agent (${MEMBER_ID_DESC} trigger_ai_agent also takes {message} — a free-text instruction for the agent; message is required when the upstream trigger has no target_task_id, since there's no task for the agent to fall back to), {status_id} for set_status, {importance} for set_priority, {tag} for add_tag, {field_key, value} for set_custom_field, {method, url, headers?, body?} for call_api (method is one of GET/POST/PUT/PATCH/DELETE; url must be http(s); headers is a string→string map; body is sent verbatim — both method and url are required). Every action except call_api also accepts {target?} (see the target note below) to retarget itself onto a task other than the one the graph is walking — e.g. set_status with target {kind: "children"} sets every child task's status instead of the walked task's own. Condition: {branches: [{handle, label?, tree}]} where tree is a single leaf comparison {field, operator, value?, target?, match_mode?}; fields are status_id/task_type_id/importance/assignee_ids/tags/custom_field (custom_field also needs field_key), operators are equals/not_equals/contains/greater_than/less_than/is_empty/is_not_empty; target retargets the leaf the same way an action's does (see below); match_mode ("any", the default, or "all") only matters when target resolves to more than one task — "any" passes if at least one resolved task satisfies the leaf, "all" requires every one to. Target shape (shared by every action's and condition leaf's {target}): {kind, other_task_id?} — kind is one of "self" (default; the task the graph is walking, i.e. omit target entirely for today's behavior), "parent", "children", "blocks", "is_blocked_by", "relates_to", "duplicates", "is_duplicated_by" (the same five relation directions as the task's Linked Tasks section, minus self), or "other" (an explicit, otherwise-unrelated task — requires other_task_id). "children" and the four link kinds can resolve to more than one task (e.g. several children, or several blocking tasks); a retargeted action then fans out, applying once per resolved task. A trigger with no target_task_id has no task to retarget FROM, so its downstream nodes may only use target "self"/omitted with call_api or trigger_ai_agent — anything else needs a task to resolve relative to.`),
|
|
52
|
+
posX: z.number().optional(),
|
|
53
|
+
posY: z.number().optional(),
|
|
54
|
+
})
|
|
55
|
+
.strict();
|
|
56
|
+
const EdgeAddInputSchema = z
|
|
57
|
+
.object({
|
|
58
|
+
source: z
|
|
59
|
+
.string()
|
|
60
|
+
.describe("Either an existing node's id, or a ref you assigned to a node being created in the SAME call's nodes.set list."),
|
|
61
|
+
sourceHandle: z
|
|
62
|
+
.string()
|
|
63
|
+
.optional()
|
|
64
|
+
.describe('Required when source is a Condition node: must match one of that node\'s declared branch handles, or the literal "else" for the fallback path. Must be omitted when source is a Trigger or Action node (they have exactly one outgoing path).'),
|
|
65
|
+
target: z
|
|
66
|
+
.string()
|
|
67
|
+
.describe("Either an existing node's id, or a ref you assigned to a node being created in the SAME call's nodes.set list. Cannot be a Trigger node (nothing can point into a trigger)."),
|
|
68
|
+
})
|
|
69
|
+
.strict();
|
|
70
|
+
const GetAutomationSchema = z.object({
|
|
71
|
+
projectId: z.string(),
|
|
72
|
+
automationId: z.string().optional(),
|
|
73
|
+
status: AutomationStatusEnum.optional(),
|
|
74
|
+
});
|
|
75
|
+
const CreateAutomationSchema = z.object({
|
|
76
|
+
projectId: z.string(),
|
|
77
|
+
name: z.string().trim().min(1),
|
|
78
|
+
description: z.string().optional(),
|
|
79
|
+
nodes: z.array(NodeSetInputSchema).optional(),
|
|
80
|
+
edges: z.array(EdgeAddInputSchema).optional(),
|
|
81
|
+
activate: z.boolean().optional(),
|
|
82
|
+
});
|
|
83
|
+
const UpdateAutomationSchema = z.object({
|
|
84
|
+
projectId: z.string(),
|
|
85
|
+
automationId: z.string(),
|
|
86
|
+
name: z.string().trim().min(1).optional(),
|
|
87
|
+
description: z.string().optional(),
|
|
88
|
+
status: AutomationStatusEnum.optional(),
|
|
89
|
+
nodes: z
|
|
90
|
+
.object({
|
|
91
|
+
set: z.array(NodeSetInputSchema).optional(),
|
|
92
|
+
remove: z.array(z.string()).optional(),
|
|
93
|
+
})
|
|
94
|
+
.optional(),
|
|
95
|
+
edges: z
|
|
96
|
+
.object({
|
|
97
|
+
add: z.array(EdgeAddInputSchema).optional(),
|
|
98
|
+
remove: z.array(z.string()).optional(),
|
|
99
|
+
})
|
|
100
|
+
.optional(),
|
|
101
|
+
});
|
|
102
|
+
const DeleteAutomationSchema = z.object({
|
|
103
|
+
projectId: z.string(),
|
|
104
|
+
automationId: z.string(),
|
|
105
|
+
});
|
|
106
|
+
/**
|
|
107
|
+
* Returns all automation MCP tools.
|
|
108
|
+
*/
|
|
109
|
+
export function getAutomationTools() {
|
|
110
|
+
return [
|
|
111
|
+
{
|
|
112
|
+
name: "get_automation",
|
|
113
|
+
description: "Get information about automations in a project. Pass automationId to fetch one automation's full graph: every node (Trigger/Condition/Action, with its type and config) and every edge (which node feeds which, and — for a Condition source — which branch). Omit automationId to list all automations in the project instead (optionally filtered by status) — e.g. to find an automation's ID before fetching its graph.\n\n" +
|
|
114
|
+
"An automation is a graph of three node kinds:\n" +
|
|
115
|
+
"- Trigger: starts a run when a matching event occurs (a task's status/assignee/priority changes, a task is created, a tag is added, a due date is reached, or all of a set of watched tasks reach a 'done' status). A graph can have more than one trigger — any of them firing starts the same downstream chain.\n" +
|
|
116
|
+
"- Condition: branches. Evaluates each declared branch's leaf-tree in order against the task and follows the first one that matches, or the 'else' edge if none do.\n" +
|
|
117
|
+
"- Action: mutates the task (assign, set status, set priority, add a tag, set a custom field, or hand off to an AI agent with a custom instruction), then continues along its own edge.\n\n" +
|
|
118
|
+
"Every automation whose trigger matches an event runs independently — there's no cross-automation priority; if two automations could both act on the same event, put that decision inside one automation's Condition branches instead of splitting it across two automations.\n\n" +
|
|
119
|
+
"Call this before editing an automation you didn't just create, so you know its current graph and node IDs — update_automation addresses existing nodes/edges by the IDs this tool returns.",
|
|
120
|
+
inputSchema: {
|
|
121
|
+
type: "object",
|
|
122
|
+
properties: {
|
|
123
|
+
projectId: { type: "string", description: PROJECT_ID_DESC },
|
|
124
|
+
automationId: {
|
|
125
|
+
type: "string",
|
|
126
|
+
description: `Optional. ${AUTOMATION_ID_DESC} Omit to list all automations in the project instead of fetching one's graph.`,
|
|
127
|
+
},
|
|
128
|
+
status: {
|
|
129
|
+
type: "string",
|
|
130
|
+
enum: ["draft", "active", "archived"],
|
|
131
|
+
description: "Optional filter by lifecycle status. Only used when automationId is omitted.",
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
required: ["projectId"],
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
name: "create_automation",
|
|
139
|
+
description: "Create a new automation, optionally building out its whole graph in one call: nodes (triggers/conditions/actions) and edges between them. Starts in 'draft' state — the engine ignores it until activated (pass activate: true once the graph is complete, or activate later via update_automation). Activating requires at least one Trigger node and at least one Action node, and the graph must remain acyclic.\n\n" +
|
|
140
|
+
"Give each new node a `ref` (a label you choose) so edges in this SAME call can wire them together before they have real IDs — e.g. nodes: [{ref:'t1', kind:'trigger', type:'status_changed', config:{status_id:'...'}}, {ref:'a1', kind:'action', type:'assign', config:{member_id:'...'}}], edges: [{source:'t1', target:'a1'}]. See get_automation's tool description for the node-kind vocabulary and the config shape per type.\n\n" +
|
|
141
|
+
"Each entry in nodes/edges is applied independently — one bad entry (e.g. an edge that would create a cycle) doesn't block the others; check the response for any 'failed' items. activate is only attempted if every requested item above succeeded.",
|
|
142
|
+
inputSchema: {
|
|
143
|
+
type: "object",
|
|
144
|
+
properties: {
|
|
145
|
+
projectId: { type: "string", description: PROJECT_ID_DESC },
|
|
146
|
+
name: { type: "string", description: "Automation name." },
|
|
147
|
+
description: {
|
|
148
|
+
type: "string",
|
|
149
|
+
description: "Optional description.",
|
|
150
|
+
},
|
|
151
|
+
nodes: {
|
|
152
|
+
type: "array",
|
|
153
|
+
description: "Nodes to create. Each requires kind and type; config/posX/posY are optional. Assign a ref to reference this node from edges in the same call.",
|
|
154
|
+
},
|
|
155
|
+
edges: {
|
|
156
|
+
type: "array",
|
|
157
|
+
description: "Links between the nodes above (by ref) — see EdgeAddInputSchema fields.",
|
|
158
|
+
},
|
|
159
|
+
activate: {
|
|
160
|
+
type: "boolean",
|
|
161
|
+
description: "If true, activate the automation immediately after building the graph above — only attempted if every item succeeded.",
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
required: ["projectId", "name"],
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
name: "update_automation",
|
|
169
|
+
description: "Update an automation: rename/describe it, change its lifecycle status, and/or edit its graph (nodes, edges) — all in one call. Use get_automation first to see the automation's current graph and node IDs.\n\n" +
|
|
170
|
+
"Graph edits work whether the automation is 'draft' or 'active'. Only 'archived' locks the graph (delete or build a new one instead). Do not call this tool once per node; pass every node you're touching as one nodes.set array in a single call.\n\n" +
|
|
171
|
+
"Pass status when you want a different lifecycle state: 'draft' to pause the engine while keeping the automation editable; 'active' to activate a currently-draft automation (requires at least one Trigger node and at least one Action node, and an acyclic graph); 'archived' to archive a currently-active one (archived automations can never be reverted — delete or build a new one instead).\n\n" +
|
|
172
|
+
"nodes.set: pass id to update an existing node's config/position; omit id (and supply kind+type) to create a new node, optionally with a ref other edges.add entries in this same call can reference. nodes.remove deletes nodes by id (and their edges). edges.add creates new edges (source/target may be an id or a ref from nodes.set in this call); edges.remove deletes edges by id. Every item in every list is attempted independently — one item failing doesn't block its siblings.",
|
|
173
|
+
inputSchema: {
|
|
174
|
+
type: "object",
|
|
175
|
+
properties: {
|
|
176
|
+
projectId: { type: "string", description: PROJECT_ID_DESC },
|
|
177
|
+
automationId: { type: "string", description: AUTOMATION_ID_DESC },
|
|
178
|
+
name: { type: "string", description: "New name." },
|
|
179
|
+
description: { type: "string", description: "New description." },
|
|
180
|
+
status: {
|
|
181
|
+
type: "string",
|
|
182
|
+
enum: ["draft", "active", "archived"],
|
|
183
|
+
description: "New lifecycle status. See the tool description above for preconditions.",
|
|
184
|
+
},
|
|
185
|
+
nodes: {
|
|
186
|
+
type: "object",
|
|
187
|
+
description: "Add/update or remove nodes.",
|
|
188
|
+
properties: {
|
|
189
|
+
set: { type: "array", description: "Nodes to create or update." },
|
|
190
|
+
remove: {
|
|
191
|
+
type: "array",
|
|
192
|
+
description: "Node IDs to remove.",
|
|
193
|
+
items: { type: "string" },
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
},
|
|
197
|
+
edges: {
|
|
198
|
+
type: "object",
|
|
199
|
+
description: "Add or remove edges.",
|
|
200
|
+
properties: {
|
|
201
|
+
add: { type: "array", description: "Edges to create." },
|
|
202
|
+
remove: {
|
|
203
|
+
type: "array",
|
|
204
|
+
description: "Edge IDs to remove.",
|
|
205
|
+
items: { type: "string" },
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
},
|
|
209
|
+
},
|
|
210
|
+
required: ["projectId", "automationId"],
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
name: "delete_automation",
|
|
215
|
+
description: "Permanently delete an automation.",
|
|
216
|
+
inputSchema: {
|
|
217
|
+
type: "object",
|
|
218
|
+
properties: {
|
|
219
|
+
projectId: { type: "string", description: PROJECT_ID_DESC },
|
|
220
|
+
automationId: { type: "string", description: AUTOMATION_ID_DESC },
|
|
221
|
+
},
|
|
222
|
+
required: ["projectId", "automationId"],
|
|
223
|
+
},
|
|
224
|
+
},
|
|
225
|
+
];
|
|
226
|
+
}
|
|
227
|
+
function formatAutomation(automation) {
|
|
228
|
+
return (`- **${automation.name}** (status: ${automation.status})\n` +
|
|
229
|
+
` ID: ${automation.id}\n` +
|
|
230
|
+
` Description: ${automation.description || "(none)"}`);
|
|
231
|
+
}
|
|
232
|
+
function formatAutomationGraph(graph) {
|
|
233
|
+
const a = graph.automation;
|
|
234
|
+
const nodes = graph.nodes || [];
|
|
235
|
+
const edges = graph.edges || [];
|
|
236
|
+
const lines = [
|
|
237
|
+
`Automation '${a.name}' (status: ${a.status}, id: ${a.id})`,
|
|
238
|
+
`${nodes.length} node(s), ${edges.length} edge(s):`,
|
|
239
|
+
"",
|
|
240
|
+
];
|
|
241
|
+
for (const n of nodes) {
|
|
242
|
+
lines.push(`- node ${n.id}: kind=${n.kind} type=${n.type} config=${JSON.stringify(n.config)} position=(${n.pos_x}, ${n.pos_y})`);
|
|
243
|
+
}
|
|
244
|
+
for (const e of edges) {
|
|
245
|
+
lines.push(`- edge ${e.id}: ${e.source_node_id}${e.source_handle ? ` [${e.source_handle}]` : ""} -> ${e.target_node_id}`);
|
|
246
|
+
}
|
|
247
|
+
return lines.join("\n");
|
|
248
|
+
}
|
|
249
|
+
async function applyNodeSet(client, projectId, automationId, items) {
|
|
250
|
+
const refToId = new Map();
|
|
251
|
+
const failures = [];
|
|
252
|
+
for (const item of items ?? []) {
|
|
253
|
+
try {
|
|
254
|
+
if (item.id) {
|
|
255
|
+
await client.updateAutomationNode(projectId, automationId, item.id, {
|
|
256
|
+
config: item.config,
|
|
257
|
+
pos_x: item.posX,
|
|
258
|
+
pos_y: item.posY,
|
|
259
|
+
});
|
|
260
|
+
if (item.ref)
|
|
261
|
+
refToId.set(item.ref, item.id);
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
if (!item.kind || !item.type) {
|
|
265
|
+
failures.push(`node ${item.ref ?? "(no ref)"}: kind and type are required when creating a new node`);
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
const created = await client.addAutomationNode(projectId, automationId, {
|
|
269
|
+
kind: item.kind,
|
|
270
|
+
type: item.type,
|
|
271
|
+
config: item.config ?? {},
|
|
272
|
+
pos_x: item.posX ?? 0,
|
|
273
|
+
pos_y: item.posY ?? 0,
|
|
274
|
+
});
|
|
275
|
+
if (item.ref)
|
|
276
|
+
refToId.set(item.ref, created.id);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
catch (err) {
|
|
280
|
+
failures.push(`node ${item.ref ?? item.id ?? "(unknown)"}: ${err instanceof Error ? err.message : String(err)}`);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
return { refToId, failures };
|
|
284
|
+
}
|
|
285
|
+
async function applyNodeRemovals(client, projectId, automationId, ids) {
|
|
286
|
+
const failures = [];
|
|
287
|
+
for (const id of ids ?? []) {
|
|
288
|
+
try {
|
|
289
|
+
await client.removeAutomationNode(projectId, automationId, id);
|
|
290
|
+
}
|
|
291
|
+
catch (err) {
|
|
292
|
+
failures.push(`node ${id}: ${err instanceof Error ? err.message : String(err)}`);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
return failures;
|
|
296
|
+
}
|
|
297
|
+
async function applyEdgeAdds(client, projectId, automationId, items, resolution) {
|
|
298
|
+
const failures = [];
|
|
299
|
+
for (const item of items ?? []) {
|
|
300
|
+
const sourceId = resolution.refToId.get(item.source) ?? item.source;
|
|
301
|
+
const targetId = resolution.refToId.get(item.target) ?? item.target;
|
|
302
|
+
try {
|
|
303
|
+
await client.addAutomationEdge(projectId, automationId, {
|
|
304
|
+
source_node_id: sourceId,
|
|
305
|
+
source_handle: item.sourceHandle,
|
|
306
|
+
target_node_id: targetId,
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
catch (err) {
|
|
310
|
+
failures.push(`edge ${item.source}->${item.target}: ${err instanceof Error ? err.message : String(err)}`);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
return failures;
|
|
314
|
+
}
|
|
315
|
+
async function applyEdgeRemovals(client, projectId, automationId, ids) {
|
|
316
|
+
const failures = [];
|
|
317
|
+
for (const id of ids ?? []) {
|
|
318
|
+
try {
|
|
319
|
+
await client.removeAutomationEdge(projectId, automationId, id);
|
|
320
|
+
}
|
|
321
|
+
catch (err) {
|
|
322
|
+
failures.push(`edge ${id}: ${err instanceof Error ? err.message : String(err)}`);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
return failures;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Handles automation MCP tool calls.
|
|
329
|
+
*/
|
|
330
|
+
export async function handleAutomationTool(name, args, client) {
|
|
331
|
+
try {
|
|
332
|
+
switch (name) {
|
|
333
|
+
case "get_automation": {
|
|
334
|
+
const input = GetAutomationSchema.parse(args);
|
|
335
|
+
if (input.automationId) {
|
|
336
|
+
const graph = await client.getAutomation(input.projectId, input.automationId);
|
|
337
|
+
return {
|
|
338
|
+
content: [{ type: "text", text: formatAutomationGraph(graph) }],
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
const automations = await client.listAutomations(input.projectId, input.status);
|
|
342
|
+
if (automations.length === 0) {
|
|
343
|
+
return {
|
|
344
|
+
content: [
|
|
345
|
+
{ type: "text", text: "No automations found in this project." },
|
|
346
|
+
],
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
return {
|
|
350
|
+
content: [
|
|
351
|
+
{
|
|
352
|
+
type: "text",
|
|
353
|
+
text: automations.map(formatAutomation).join("\n\n"),
|
|
354
|
+
},
|
|
355
|
+
],
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
case "create_automation": {
|
|
359
|
+
const input = CreateAutomationSchema.parse(args);
|
|
360
|
+
const automation = await client.createAutomation(input.projectId, {
|
|
361
|
+
name: input.name,
|
|
362
|
+
description: input.description,
|
|
363
|
+
});
|
|
364
|
+
const { refToId, failures: nodeFailures } = await applyNodeSet(client, input.projectId, automation.id, input.nodes);
|
|
365
|
+
const edgeFailures = await applyEdgeAdds(client, input.projectId, automation.id, input.edges, { refToId });
|
|
366
|
+
const allFailures = [...nodeFailures, ...edgeFailures];
|
|
367
|
+
let activated = false;
|
|
368
|
+
if (input.activate && allFailures.length === 0) {
|
|
369
|
+
await client.activateAutomation(input.projectId, automation.id);
|
|
370
|
+
activated = true;
|
|
371
|
+
}
|
|
372
|
+
const graph = await client.getAutomation(input.projectId, automation.id);
|
|
373
|
+
const lines = [formatAutomationGraph(graph)];
|
|
374
|
+
if (activated)
|
|
375
|
+
lines.push("\nActivated.");
|
|
376
|
+
if (allFailures.length > 0) {
|
|
377
|
+
lines.push(`\nSome items failed:\n${allFailures.map((f) => `- ${f}`).join("\n")}`);
|
|
378
|
+
}
|
|
379
|
+
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
380
|
+
}
|
|
381
|
+
case "update_automation": {
|
|
382
|
+
const input = UpdateAutomationSchema.parse(args);
|
|
383
|
+
if (input.name !== undefined ||
|
|
384
|
+
input.description !== undefined ||
|
|
385
|
+
(input.status !== undefined && input.status === "draft")) {
|
|
386
|
+
await client.updateAutomation(input.projectId, input.automationId, {
|
|
387
|
+
name: input.name,
|
|
388
|
+
description: input.description,
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
if (input.status === "draft") {
|
|
392
|
+
await client.revertAutomationToDraft(input.projectId, input.automationId);
|
|
393
|
+
}
|
|
394
|
+
const { refToId, failures: nodeSetFailures } = await applyNodeSet(client, input.projectId, input.automationId, input.nodes?.set);
|
|
395
|
+
const nodeRemoveFailures = await applyNodeRemovals(client, input.projectId, input.automationId, input.nodes?.remove);
|
|
396
|
+
const edgeAddFailures = await applyEdgeAdds(client, input.projectId, input.automationId, input.edges?.add, { refToId });
|
|
397
|
+
const edgeRemoveFailures = await applyEdgeRemovals(client, input.projectId, input.automationId, input.edges?.remove);
|
|
398
|
+
if (input.status === "active") {
|
|
399
|
+
await client.activateAutomation(input.projectId, input.automationId);
|
|
400
|
+
}
|
|
401
|
+
else if (input.status === "archived") {
|
|
402
|
+
await client.archiveAutomation(input.projectId, input.automationId);
|
|
403
|
+
}
|
|
404
|
+
const allFailures = [
|
|
405
|
+
...nodeSetFailures,
|
|
406
|
+
...nodeRemoveFailures,
|
|
407
|
+
...edgeAddFailures,
|
|
408
|
+
...edgeRemoveFailures,
|
|
409
|
+
];
|
|
410
|
+
const graph = await client.getAutomation(input.projectId, input.automationId);
|
|
411
|
+
const lines = [formatAutomationGraph(graph)];
|
|
412
|
+
if (allFailures.length > 0) {
|
|
413
|
+
lines.push(`\nSome items failed:\n${allFailures.map((f) => `- ${f}`).join("\n")}`);
|
|
414
|
+
}
|
|
415
|
+
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
416
|
+
}
|
|
417
|
+
case "delete_automation": {
|
|
418
|
+
const input = DeleteAutomationSchema.parse(args);
|
|
419
|
+
await client.deleteAutomation(input.projectId, input.automationId);
|
|
420
|
+
return {
|
|
421
|
+
content: [
|
|
422
|
+
{ type: "text", text: `Automation ${input.automationId} deleted.` },
|
|
423
|
+
],
|
|
424
|
+
};
|
|
425
|
+
}
|
|
426
|
+
default:
|
|
427
|
+
return {
|
|
428
|
+
content: [{ type: "text", text: `Unknown automation tool: ${name}` }],
|
|
429
|
+
isError: true,
|
|
430
|
+
};
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
catch (err) {
|
|
434
|
+
return {
|
|
435
|
+
content: [{ type: "text", text: formatToolError(err) }],
|
|
436
|
+
isError: true,
|
|
437
|
+
};
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
//# sourceMappingURL=automation-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automation-tools.js","sourceRoot":"","sources":["../../src/tools/automation-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc-activity-tools.d.ts","sourceRoot":"","sources":["../../src/tools/doc-activity-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAuCxD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,EAAE,CAwD5C;AA0BD;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAC1C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,gBAAgB,GACtB,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"doc-activity-tools.d.ts","sourceRoot":"","sources":["../../src/tools/doc-activity-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAuCxD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,EAAE,CAwD5C;AA0BD;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAC1C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,gBAAgB,GACtB,OAAO,CAAC,GAAG,CAAC,CAyEd"}
|
|
@@ -119,7 +119,9 @@ export async function handleDocActivityTool(toolName, args, client) {
|
|
|
119
119
|
const activities = await client.listDocumentActivities(projectId, docId);
|
|
120
120
|
const formatted = activities.map(formatDocActivity).join("\n\n---\n\n");
|
|
121
121
|
return {
|
|
122
|
-
content: [
|
|
122
|
+
content: [
|
|
123
|
+
{ type: "text", text: `Document Activities:\n\n${formatted}` },
|
|
124
|
+
],
|
|
123
125
|
};
|
|
124
126
|
}
|
|
125
127
|
case "add_doc_comment": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc-activity-tools.js","sourceRoot":"","sources":["../../src/tools/doc-activity-tools.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"doc-activity-tools.js","sourceRoot":"","sources":["../../src/tools/doc-activity-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzE,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAEH,MAAM,eAAe,GACpB,yJAAyJ,CAAC;AAE3J,MAAM,WAAW,GAChB,0HAA0H,CAAC;AAE5H,MAAM,eAAe,GACpB,gIAAgI,CAAC;AAElI,MAAM,YAAY,GACjB,2SAA2S,CAAC;AAE7S;;GAEG;AACH,MAAM,UAAU,mBAAmB;IAClC,OAAO;QACN;YACC,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EACV,iIAAiI;YAClI,WAAW,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACX,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;oBAC3D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;iBACnD;gBACD,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC;aAChC;SACD;QACD;YACC,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,gCAAgC,YAAY,EAAE;YAC3D,WAAW,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACX,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;oBAC3D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;oBACnD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;iBAChE;gBACD,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC;aAC3C;SACD;QACD;YACC,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,4BAA4B;YACzC,WAAW,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACX,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;oBAC3D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;oBACnD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;oBAC3D,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;iBACpE;gBACD,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC;aACxD;SACD;QACD;YACC,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,4BAA4B;YACzC,WAAW,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACX,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;oBAC3D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;oBACnD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;iBAC3D;gBACD,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC;aAC7C;SACD;KACD,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAa;IACvC,MAAM,OAAO,GACZ,QAAQ,CAAC,aAAa,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO;QACvD,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9C,OAAO,aAAa,QAAQ,CAAC,aAAa;MACrC,QAAQ,CAAC,EAAE;QACT,QAAQ,CAAC,UAAU,MAAM,QAAQ,CAAC,cAAc,KAAK,QAAQ,CAAC,QAAQ;eAC/D,OAAO;WACX,QAAQ,CAAC,UAAU,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAY;IACrC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5E,OAAO;MACF,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,UAAU,MAAM,OAAO,CAAC,cAAc,KAAK,OAAO,CAAC,QAAQ;WAChE,OAAO;WACP,OAAO,CAAC,UAAU;WAClB,OAAO,CAAC,UAAU,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,QAAgB,EAChB,IAAS,EACT,MAAwB;IAExB,IAAI,CAAC;QACJ,QAAQ,QAAQ,EAAE,CAAC;YAClB,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC5B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjE,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,sBAAsB,CACrD,SAAS,EACT,KAAK,CACL,CAAC;gBACF,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACxE,OAAO;oBACN,OAAO,EAAE;wBACR,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,SAAS,EAAE,EAAE;qBAC9D;iBACD,CAAC;YACH,CAAC;YAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACxB,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAC9C,SAAS,EACT,KAAK,EACL,OAAO,CACP,CAAC;gBACF,OAAO;oBACN,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,kCAAkC,gBAAgB,CAAC,OAAO,CAAC,EAAE;yBACnE;qBACD;iBACD,CAAC;YACH,CAAC;YAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBAC3B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAC7C,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,qBAAqB,CACjD,SAAS,EACT,KAAK,EACL,SAAS,EACT,OAAO,CACP,CAAC;gBACF,OAAO;oBACN,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,oCAAoC,gBAAgB,CAAC,OAAO,CAAC,EAAE;yBACrE;qBACD;iBACD,CAAC;YACH,CAAC;YAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBAC3B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,GACpC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;gBAChE,OAAO;oBACN,OAAO,EAAE;wBACR,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,SAAS,uBAAuB,EAAE;qBACnE;iBACD,CAAC;YACH,CAAC;YAED;gBACC,MAAM,IAAI,KAAK,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;QACjE,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO;YACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACrE,OAAO,EAAE,IAAI;SACb,CAAC;IACH,CAAC;AACF,CAAC"}
|
package/build/tools/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CallToolRequest, Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
-
import type { PacaAPIClient, PacaAPIDocClient, PacaAPIExtendedClient, PacaAPITaskExtendedClient, PacaAPIViewsClient
|
|
2
|
+
import type { PacaAPIAutomationClient, PacaAPIClient, PacaAPIDocClient, PacaAPIExtendedClient, PacaAPITaskExtendedClient, PacaAPIViewsClient } from "../api/index.js";
|
|
3
3
|
/**
|
|
4
4
|
* Returns all available MCP tools.
|
|
5
5
|
*/
|
|
@@ -14,6 +14,6 @@ export declare function handleToolCall(request: CallToolRequest, clients: {
|
|
|
14
14
|
viewsClient: PacaAPIViewsClient;
|
|
15
15
|
taskExtendedClient: PacaAPITaskExtendedClient;
|
|
16
16
|
docClient: PacaAPIDocClient;
|
|
17
|
-
|
|
17
|
+
automationClient: PacaAPIAutomationClient;
|
|
18
18
|
}): Promise<any>;
|
|
19
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EACX,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EACX,uBAAuB,EACvB,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,MAAM,iBAAiB,CAAC;AA0CzB;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,EAAE,CAkBpC;AAED;;;GAGG;AACH,wBAAsB,cAAc,CACnC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE;IACR,SAAS,EAAE,aAAa,CAAC;IACzB,cAAc,EAAE,qBAAqB,CAAC;IACtC,WAAW,EAAE,kBAAkB,CAAC;IAChC,kBAAkB,EAAE,yBAAyB,CAAC;IAC9C,SAAS,EAAE,gBAAgB,CAAC;IAC5B,gBAAgB,EAAE,uBAAuB,CAAC;CAC1C,GACC,OAAO,CAAC,GAAG,CAAC,CA4Kd"}
|
package/build/tools/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { formatToolError } from "../utils/index.js";
|
|
2
2
|
import { getAttachmentTools, handleAttachmentTool, } from "./attachment-tools.js";
|
|
3
|
+
import { getAutomationTools, handleAutomationTool, } from "./automation-tools.js";
|
|
3
4
|
import { getDocActivityTools, handleDocActivityTool, } from "./doc-activity-tools.js";
|
|
4
5
|
import { getFilesystemDocTools, handleFilesystemDocTool, } from "./filesystem-doc-tools.js";
|
|
5
6
|
import { getProjectMemberTools, getProjectRoleTools, handleProjectMemberTool, } from "./member-tools.js";
|
|
@@ -10,7 +11,6 @@ import { getTaskLinkTools, handleTaskLinkTool } from "./task-link-tools.js";
|
|
|
10
11
|
import { getTaskTools, handleTaskTool } from "./task-tools.js";
|
|
11
12
|
import { getTaskStatusTools, getTaskTypeTools, handleTaskTypeTool, } from "./task-type-tools.js";
|
|
12
13
|
import { getCustomFieldTools, getViewTools, handleViewTool, } from "./view-tools.js";
|
|
13
|
-
import { getWorkflowTools, handleWorkflowTool } from "./workflow-tools.js";
|
|
14
14
|
/**
|
|
15
15
|
* Returns all available MCP tools.
|
|
16
16
|
*/
|
|
@@ -29,7 +29,7 @@ export function getAllTools() {
|
|
|
29
29
|
...getAttachmentTools(),
|
|
30
30
|
...getTaskActivityTools(),
|
|
31
31
|
...getTaskLinkTools(),
|
|
32
|
-
...
|
|
32
|
+
...getAutomationTools(),
|
|
33
33
|
...getDocActivityTools(),
|
|
34
34
|
];
|
|
35
35
|
}
|
|
@@ -135,12 +135,12 @@ export async function handleToolCall(request, clients) {
|
|
|
135
135
|
name === "delete_task_link") {
|
|
136
136
|
return handleTaskLinkTool(name, args, clients.taskExtendedClient);
|
|
137
137
|
}
|
|
138
|
-
// Automation
|
|
139
|
-
if (name === "
|
|
140
|
-
name === "
|
|
141
|
-
name === "
|
|
142
|
-
name === "
|
|
143
|
-
return
|
|
138
|
+
// Automation tools
|
|
139
|
+
if (name === "get_automation" ||
|
|
140
|
+
name === "create_automation" ||
|
|
141
|
+
name === "update_automation" ||
|
|
142
|
+
name === "delete_automation") {
|
|
143
|
+
return handleAutomationTool(name, args, clients.automationClient);
|
|
144
144
|
}
|
|
145
145
|
// Document activity tools
|
|
146
146
|
if (name === "list_doc_activities" ||
|
package/build/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACN,kBAAkB,EAClB,oBAAoB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,mBAAmB,EACnB,qBAAqB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,qBAAqB,EACrB,uBAAuB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACN,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EACN,oBAAoB,EACpB,sBAAsB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,mBAAmB,EACnB,YAAY,EACZ,cAAc,GACd,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-tools.d.ts","sourceRoot":"","sources":["../../src/tools/member-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAoD7D;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,EAAE,CAuG9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,EAAE,CAmG5C;
|
|
1
|
+
{"version":3,"file":"member-tools.d.ts","sourceRoot":"","sources":["../../src/tools/member-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAoD7D;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,EAAE,CAuG9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,EAAE,CAmG5C;AAyBD;;GAEG;AACH,wBAAsB,uBAAuB,CAC5C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,qBAAqB,GAC3B,OAAO,CAAC,GAAG,CAAC,CAmJd"}
|
|
@@ -235,7 +235,13 @@ export function getProjectRoleTools() {
|
|
|
235
235
|
];
|
|
236
236
|
}
|
|
237
237
|
function formatProjectMember(member) {
|
|
238
|
+
// Member ID (member.id) is what task/automation assignment tools expect
|
|
239
|
+
// (assigneeId, trigger_ai_agent's member_id, ...) — it is NOT the same
|
|
240
|
+
// value as User ID, and only agent members even have a User ID. Every
|
|
241
|
+
// assignment-taking tool's description points back here for "the member
|
|
242
|
+
// ID", so this field must actually be present in the output.
|
|
238
243
|
return `Member: ${member.username} (${member.full_name})
|
|
244
|
+
Member ID: ${member.id}
|
|
239
245
|
User ID: ${member.user_id}
|
|
240
246
|
Role: ${member.role_name}
|
|
241
247
|
Role ID: ${member.project_role_id}
|