@wiro-ai/wiro-mcp 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -17
- package/dist/client.d.ts +25 -6
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +129 -29
- package/dist/client.js.map +1 -1
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +24 -17
- package/dist/instructions.js.map +1 -1
- package/dist/playbooks.d.ts.map +1 -1
- package/dist/playbooks.js +61 -48
- package/dist/playbooks.js.map +1 -1
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +4 -3
- package/dist/prompts.js.map +1 -1
- package/dist/server.d.ts +6 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +3 -4
- package/dist/server.js.map +1 -1
- package/dist/tools/apply-agent-skills.d.ts.map +1 -1
- package/dist/tools/apply-agent-skills.js +400 -88
- package/dist/tools/apply-agent-skills.js.map +1 -1
- package/dist/tools/bind-agent-project.d.ts +4 -0
- package/dist/tools/bind-agent-project.d.ts.map +1 -0
- package/dist/tools/bind-agent-project.js +403 -0
- package/dist/tools/bind-agent-project.js.map +1 -0
- package/dist/tools/cancel-agent-message.d.ts.map +1 -1
- package/dist/tools/cancel-agent-message.js +6 -3
- package/dist/tools/cancel-agent-message.js.map +1 -1
- package/dist/tools/cancel-task.js +3 -3
- package/dist/tools/cancel-task.js.map +1 -1
- package/dist/tools/clone-workflow.d.ts.map +1 -1
- package/dist/tools/clone-workflow.js +5 -4
- package/dist/tools/clone-workflow.js.map +1 -1
- package/dist/tools/connect-agent-oauth.d.ts.map +1 -1
- package/dist/tools/connect-agent-oauth.js +144 -44
- package/dist/tools/connect-agent-oauth.js.map +1 -1
- package/dist/tools/control-agent.d.ts.map +1 -1
- package/dist/tools/control-agent.js +133 -45
- package/dist/tools/control-agent.js.map +1 -1
- package/dist/tools/create-workflow.d.ts +9 -6
- package/dist/tools/create-workflow.d.ts.map +1 -1
- package/dist/tools/create-workflow.js +13 -13
- package/dist/tools/create-workflow.js.map +1 -1
- package/dist/tools/delete-agent-session.d.ts.map +1 -1
- package/dist/tools/delete-agent-session.js +20 -14
- package/dist/tools/delete-agent-session.js.map +1 -1
- package/dist/tools/delete-agent.d.ts.map +1 -1
- package/dist/tools/delete-agent.js +14 -10
- package/dist/tools/delete-agent.js.map +1 -1
- package/dist/tools/delete-workflow.d.ts.map +1 -1
- package/dist/tools/delete-workflow.js +6 -5
- package/dist/tools/delete-workflow.js.map +1 -1
- package/dist/tools/deploy-agent.d.ts.map +1 -1
- package/dist/tools/deploy-agent.js +215 -47
- package/dist/tools/deploy-agent.js.map +1 -1
- package/dist/tools/disconnect-agent-oauth.d.ts.map +1 -1
- package/dist/tools/disconnect-agent-oauth.js +32 -12
- package/dist/tools/disconnect-agent-oauth.js.map +1 -1
- package/dist/tools/get-account.d.ts.map +1 -1
- package/dist/tools/get-account.js +157 -49
- package/dist/tools/get-account.js.map +1 -1
- package/dist/tools/get-agent-activity.d.ts.map +1 -1
- package/dist/tools/get-agent-activity.js +186 -36
- package/dist/tools/get-agent-activity.js.map +1 -1
- package/dist/tools/get-agent-conversation.d.ts.map +1 -1
- package/dist/tools/get-agent-conversation.js +65 -39
- package/dist/tools/get-agent-conversation.js.map +1 -1
- package/dist/tools/get-agent-message.d.ts.map +1 -1
- package/dist/tools/get-agent-message.js +6 -4
- package/dist/tools/get-agent-message.js.map +1 -1
- package/dist/tools/get-agent-template.d.ts.map +1 -1
- package/dist/tools/get-agent-template.js +33 -17
- package/dist/tools/get-agent-template.js.map +1 -1
- package/dist/tools/get-model-schema.d.ts.map +1 -1
- package/dist/tools/get-model-schema.js +7 -5
- package/dist/tools/get-model-schema.js.map +1 -1
- package/dist/tools/get-my-agent.d.ts.map +1 -1
- package/dist/tools/get-my-agent.js +54 -11
- package/dist/tools/get-my-agent.js.map +1 -1
- package/dist/tools/get-playbook.d.ts.map +1 -1
- package/dist/tools/get-playbook.js +3 -2
- package/dist/tools/get-playbook.js.map +1 -1
- package/dist/tools/get-task-price.d.ts +1 -1
- package/dist/tools/get-task-price.d.ts.map +1 -1
- package/dist/tools/get-task-price.js +29 -8
- package/dist/tools/get-task-price.js.map +1 -1
- package/dist/tools/get-task.d.ts.map +1 -1
- package/dist/tools/get-task.js +25 -9
- package/dist/tools/get-task.js.map +1 -1
- package/dist/tools/get-workflow.d.ts.map +1 -1
- package/dist/tools/get-workflow.js +46 -21
- package/dist/tools/get-workflow.js.map +1 -1
- package/dist/tools/index.d.ts +4 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +10 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/kill-task.js +3 -3
- package/dist/tools/kill-task.js.map +1 -1
- package/dist/tools/list-agent-skills.d.ts.map +1 -1
- package/dist/tools/list-agent-skills.js +5 -4
- package/dist/tools/list-agent-skills.js.map +1 -1
- package/dist/tools/list-agent-templates.js +4 -4
- package/dist/tools/list-agent-templates.js.map +1 -1
- package/dist/tools/list-my-agents.d.ts.map +1 -1
- package/dist/tools/list-my-agents.js +14 -8
- package/dist/tools/list-my-agents.js.map +1 -1
- package/dist/tools/list-projects.d.ts +4 -0
- package/dist/tools/list-projects.d.ts.map +1 -0
- package/dist/tools/list-projects.js +141 -0
- package/dist/tools/list-projects.js.map +1 -0
- package/dist/tools/list-studio-results.js +3 -3
- package/dist/tools/list-studio-results.js.map +1 -1
- package/dist/tools/list-tasks.js +3 -3
- package/dist/tools/list-tasks.js.map +1 -1
- package/dist/tools/list-workflow-runs.d.ts.map +1 -1
- package/dist/tools/list-workflow-runs.js +6 -4
- package/dist/tools/list-workflow-runs.js.map +1 -1
- package/dist/tools/list-workflows.d.ts.map +1 -1
- package/dist/tools/list-workflows.js +7 -6
- package/dist/tools/list-workflows.js.map +1 -1
- package/dist/tools/manage-agent-billing.d.ts.map +1 -1
- package/dist/tools/manage-agent-billing.js +259 -87
- package/dist/tools/manage-agent-billing.js.map +1 -1
- package/dist/tools/manage-agent-custom-skill.d.ts.map +1 -1
- package/dist/tools/manage-agent-custom-skill.js +91 -21
- package/dist/tools/manage-agent-custom-skill.js.map +1 -1
- package/dist/tools/recommend-model.js +3 -3
- package/dist/tools/recommend-model.js.map +1 -1
- package/dist/tools/resume-workflow-run.d.ts.map +1 -1
- package/dist/tools/resume-workflow-run.js +3 -2
- package/dist/tools/resume-workflow-run.js.map +1 -1
- package/dist/tools/run-model.js +5 -5
- package/dist/tools/run-model.js.map +1 -1
- package/dist/tools/run-workflow.d.ts.map +1 -1
- package/dist/tools/run-workflow.js +3 -2
- package/dist/tools/run-workflow.js.map +1 -1
- package/dist/tools/save-workflow-from-agent.d.ts.map +1 -1
- package/dist/tools/save-workflow-from-agent.js +22 -20
- package/dist/tools/save-workflow-from-agent.js.map +1 -1
- package/dist/tools/schemas.d.ts +150 -127
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +76 -3
- package/dist/tools/schemas.js.map +1 -1
- package/dist/tools/search-docs.js +3 -3
- package/dist/tools/search-docs.js.map +1 -1
- package/dist/tools/search-models.d.ts.map +1 -1
- package/dist/tools/search-models.js +7 -4
- package/dist/tools/search-models.js.map +1 -1
- package/dist/tools/send-agent-message.d.ts.map +1 -1
- package/dist/tools/send-agent-message.js +32 -11
- package/dist/tools/send-agent-message.js.map +1 -1
- package/dist/tools/set-agent-credentials.d.ts.map +1 -1
- package/dist/tools/set-agent-credentials.js +60 -59
- package/dist/tools/set-agent-credentials.js.map +1 -1
- package/dist/tools/update-agent.d.ts.map +1 -1
- package/dist/tools/update-agent.js +59 -21
- package/dist/tools/update-agent.js.map +1 -1
- package/dist/tools/update-workflow.d.ts +205 -6
- package/dist/tools/update-workflow.d.ts.map +1 -1
- package/dist/tools/update-workflow.js +20 -7
- package/dist/tools/update-workflow.js.map +1 -1
- package/dist/tools/upload-file.d.ts.map +1 -1
- package/dist/tools/upload-file.js +13 -9
- package/dist/tools/upload-file.js.map +1 -1
- package/dist/tools/wait-for-task.d.ts.map +1 -1
- package/dist/tools/wait-for-task.js +23 -5
- package/dist/tools/wait-for-task.js.map +1 -1
- package/dist/tools/wait-for-workflow-run.d.ts +18 -18
- package/dist/tools/wait-for-workflow-run.d.ts.map +1 -1
- package/dist/tools/wait-for-workflow-run.js +7 -6
- package/dist/tools/wait-for-workflow-run.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/agent-catalog.d.ts +168 -139
- package/dist/utils/agent-catalog.d.ts.map +1 -1
- package/dist/utils/agent-catalog.js +34 -14
- package/dist/utils/agent-catalog.js.map +1 -1
- package/dist/utils/agent-config.d.ts +111 -8
- package/dist/utils/agent-config.d.ts.map +1 -1
- package/dist/utils/agent-config.js +290 -40
- package/dist/utils/agent-config.js.map +1 -1
- package/dist/utils/agent-message.d.ts +41 -22
- package/dist/utils/agent-message.d.ts.map +1 -1
- package/dist/utils/agent-message.js +94 -31
- package/dist/utils/agent-message.js.map +1 -1
- package/dist/utils/agent-targets.d.ts +8 -4
- package/dist/utils/agent-targets.d.ts.map +1 -1
- package/dist/utils/agent-targets.js +51 -35
- package/dist/utils/agent-targets.js.map +1 -1
- package/dist/utils/agent-turns.d.ts +31 -24
- package/dist/utils/agent-turns.d.ts.map +1 -1
- package/dist/utils/agent-turns.js +154 -35
- package/dist/utils/agent-turns.js.map +1 -1
- package/dist/utils/api.d.ts +6 -0
- package/dist/utils/api.d.ts.map +1 -1
- package/dist/utils/api.js +22 -1
- package/dist/utils/api.js.map +1 -1
- package/dist/utils/format.d.ts +27 -1
- package/dist/utils/format.d.ts.map +1 -1
- package/dist/utils/format.js +429 -82
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/json-schema-dialect.d.ts +8 -1
- package/dist/utils/json-schema-dialect.d.ts.map +1 -1
- package/dist/utils/json-schema-dialect.js +27 -1
- package/dist/utils/json-schema-dialect.js.map +1 -1
- package/dist/utils/media.d.ts +8 -0
- package/dist/utils/media.d.ts.map +1 -1
- package/dist/utils/media.js +29 -0
- package/dist/utils/media.js.map +1 -1
- package/dist/utils/poll.d.ts +5 -2
- package/dist/utils/poll.d.ts.map +1 -1
- package/dist/utils/poll.js +10 -9
- package/dist/utils/poll.js.map +1 -1
- package/dist/utils/quoted-text.d.ts +28 -0
- package/dist/utils/quoted-text.d.ts.map +1 -0
- package/dist/utils/quoted-text.js +64 -0
- package/dist/utils/quoted-text.js.map +1 -0
- package/dist/utils/structured.d.ts +2 -0
- package/dist/utils/structured.d.ts.map +1 -1
- package/dist/utils/structured.js +15 -2
- package/dist/utils/structured.js.map +1 -1
- package/dist/utils/studio-runs.d.ts +4 -4
- package/dist/utils/studio-runs.d.ts.map +1 -1
- package/dist/utils/studio-runs.js +11 -8
- package/dist/utils/studio-runs.js.map +1 -1
- package/dist/utils/user-agent.d.ts +376 -241
- package/dist/utils/user-agent.d.ts.map +1 -1
- package/dist/utils/user-agent.js +302 -89
- package/dist/utils/user-agent.js.map +1 -1
- package/dist/utils/wiro-project.d.ts +45 -0
- package/dist/utils/wiro-project.d.ts.map +1 -0
- package/dist/utils/wiro-project.js +66 -0
- package/dist/utils/wiro-project.js.map +1 -0
- package/dist/utils/workflow-agent.d.ts +4 -4
- package/dist/utils/workflow-save.d.ts +23 -5
- package/dist/utils/workflow-save.d.ts.map +1 -1
- package/dist/utils/workflow-save.js +130 -38
- package/dist/utils/workflow-save.js.map +1 -1
- package/dist/utils/workflow.d.ts +79 -61
- package/dist/utils/workflow.d.ts.map +1 -1
- package/dist/utils/workflow.js +149 -19
- package/dist/utils/workflow.js.map +1 -1
- package/dist/utils/workspace.d.ts +64 -0
- package/dist/utils/workspace.d.ts.map +1 -0
- package/dist/utils/workspace.js +173 -0
- package/dist/utils/workspace.js.map +1 -0
- package/package.json +6 -4
|
@@ -1,30 +1,44 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { errorResult } from '../utils/api.js';
|
|
3
|
+
import { customSkillEntries, resolveExistingCustomSkillKey, setupStillMissingNote } from '../utils/agent-config.js';
|
|
4
|
+
import { textBlock } from '../utils/quoted-text.js';
|
|
3
5
|
import { DEFAULT_WAIT_SECONDS, MAX_WAIT_SECONDS } from '../utils/poll.js';
|
|
4
|
-
import { agentDetailSchema, describeAgentStatus, formatAgentDetail, isTransitionalStatus, nextStepForAgent, readAgentDetail, readAgentStatus,
|
|
5
|
-
import {
|
|
6
|
+
import { agentDetailSchema, describeAgentStatus, formatAgentDetail, isTransitionalStatus, nextStepForAgent, readAgentDetail, readAgentStatus, readStatusAdvice, toAgentDetail, waitForAgentToSettle, } from '../utils/user-agent.js';
|
|
7
|
+
import { isPlainTeamMember } from '../utils/workspace.js';
|
|
8
|
+
import { nextActionSchema, strictInput } from './schemas.js';
|
|
9
|
+
const entrySchema = z.object({
|
|
10
|
+
key: z.string(),
|
|
11
|
+
kind: z.enum(['custom_instruction', 'scheduled_task']),
|
|
12
|
+
description: z.string().optional(),
|
|
13
|
+
enabled: z.boolean(),
|
|
14
|
+
interval: z.string().nullable(),
|
|
15
|
+
text: z.string(),
|
|
16
|
+
});
|
|
6
17
|
export function registerGetMyAgent(server, client) {
|
|
7
18
|
server.registerTool('get_my_agent', {
|
|
8
19
|
title: 'Get a deployed Wiro agent',
|
|
9
20
|
description: 'Read the full state of one deployed agent: status (number and label), plan, its Starter and Pro '
|
|
10
|
-
+ 'prices, credit balance, time zone, skills, chat channels, model settings with the credit rates of the models it can switch to, '
|
|
11
|
-
+ 'scheduled tasks
|
|
12
|
-
+ 'of each credential. Credential values are never returned, only whether each one is filled, '
|
|
21
|
+
+ 'prices, credit balance, when it last did anything, time zone, skills, chat channels, model settings with the credit rates of the models it can switch to, '
|
|
22
|
+
+ 'scheduled tasks and custom instructions (a long text is shortened; entry adds one entry\'s whole text), and the '
|
|
23
|
+
+ 'state of each credential. Credential values are never returned, only whether each one is filled, '
|
|
13
24
|
+ 'connected or missing. With wait_seconds it keeps reading until the agent is no longer stopping, '
|
|
14
25
|
+ 'queued or starting; when the wait runs out, follow the returned nextAction instead of repeating '
|
|
15
26
|
+ 'the action that started it. Statuses: 0 stopped, 1 stopping, 2 queued, 3 starting, 4 running, '
|
|
16
27
|
+ '5 error, 6 setup required.',
|
|
17
|
-
inputSchema: {
|
|
28
|
+
inputSchema: strictInput({
|
|
18
29
|
agent_guid: z.string().min(1).max(100)
|
|
19
30
|
.describe('The deployed agent\'s guid, from list_my_agents or deploy_agent.'),
|
|
31
|
+
entry: z.string().min(1).max(80).optional()
|
|
32
|
+
.describe('The key of one custom instruction or scheduled task, such as cs-brand-voice, or its bare name such as brand-voice. Adds that entry\'s whole text, which the list shortens when it is long. Read it before changing the entry with manage_agent_custom_skill.'),
|
|
20
33
|
wait_seconds: z.number().int().min(0).max(MAX_WAIT_SECONDS).default(0)
|
|
21
34
|
.describe('Keep reading for up to this many seconds while the agent is stopping, queued or starting (0 to 600, default 0 for an immediate read). 45 or less is safe for clients with a 60 second tool timeout; follow nextAction to keep waiting.'),
|
|
22
|
-
},
|
|
35
|
+
}),
|
|
23
36
|
outputSchema: {
|
|
24
37
|
agent: agentDetailSchema,
|
|
25
38
|
settled: z.boolean(),
|
|
26
39
|
waitedSeconds: z.number().nonnegative().optional(),
|
|
27
40
|
advice: z.string(),
|
|
41
|
+
entry: entrySchema.optional(),
|
|
28
42
|
nextAction: nextActionSchema.optional(),
|
|
29
43
|
},
|
|
30
44
|
annotations: {
|
|
@@ -33,7 +47,7 @@ export function registerGetMyAgent(server, client) {
|
|
|
33
47
|
idempotentHint: true,
|
|
34
48
|
openWorldHint: true,
|
|
35
49
|
},
|
|
36
|
-
}, async ({ agent_guid, wait_seconds }, extra) => {
|
|
50
|
+
}, async ({ agent_guid, entry, wait_seconds }, extra) => {
|
|
37
51
|
try {
|
|
38
52
|
const guid = agent_guid.trim();
|
|
39
53
|
let row = await readAgentDetail(client, guid, extra.signal);
|
|
@@ -46,26 +60,55 @@ export function registerGetMyAgent(server, client) {
|
|
|
46
60
|
waitedSeconds = Math.round(waited.elapsedMs / 1000);
|
|
47
61
|
}
|
|
48
62
|
const agent = toAgentDetail(row);
|
|
63
|
+
// The list shows the start of a long entry; the row holds its whole text.
|
|
64
|
+
let full;
|
|
65
|
+
if (entry !== undefined) {
|
|
66
|
+
const entries = customSkillEntries(row);
|
|
67
|
+
const resolved = resolveExistingCustomSkillKey(entry, new Set(entries.map(item => item.key)));
|
|
68
|
+
const found = resolved.key ? entries.find(item => item.key === resolved.key) : undefined;
|
|
69
|
+
if (!found) {
|
|
70
|
+
return errorResult(new Error(resolved.error
|
|
71
|
+
?? `This agent has no custom instruction or scheduled task named "${entry}". get_my_agent without entry lists its keys.`));
|
|
72
|
+
}
|
|
73
|
+
full = {
|
|
74
|
+
key: found.key,
|
|
75
|
+
kind: found.kind === 'scheduled_task' ? 'scheduled_task' : 'custom_instruction',
|
|
76
|
+
...(found.description ? { description: found.description } : {}),
|
|
77
|
+
enabled: found.enabled,
|
|
78
|
+
interval: found.interval,
|
|
79
|
+
text: found.value,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
const plainMember = await isPlainTeamMember(client, row, extra.signal);
|
|
49
83
|
const advice = settled
|
|
50
|
-
?
|
|
84
|
+
? readStatusAdvice(agent, plainMember)
|
|
51
85
|
: `The agent is still ${describeAgentStatus(agent.status).toLowerCase()}. Call get_my_agent again with wait_seconds to keep waiting.`;
|
|
86
|
+
// A client that shows only the text still learns which tool gives each missing credential.
|
|
87
|
+
const setupNote = plainMember ? null : setupStillMissingNote(agent.missingCredentials);
|
|
52
88
|
const nextAction = !settled && wait_seconds > 0
|
|
53
89
|
? {
|
|
54
90
|
tool: 'get_my_agent',
|
|
55
91
|
arguments: { agent_guid: guid, wait_seconds: DEFAULT_WAIT_SECONDS },
|
|
56
92
|
reason: 'The agent has not settled yet. Keep waiting; do not repeat the action that started it.',
|
|
57
93
|
}
|
|
58
|
-
: nextStepForAgent(agent, DEFAULT_WAIT_SECONDS);
|
|
94
|
+
: nextStepForAgent(agent, DEFAULT_WAIT_SECONDS, plainMember);
|
|
59
95
|
return {
|
|
60
96
|
content: [{
|
|
61
97
|
type: 'text',
|
|
62
|
-
text:
|
|
98
|
+
text: [
|
|
99
|
+
formatAgentDetail(agent, plainMember),
|
|
100
|
+
...(full ? ['', `### \`${full.key}\` in full`, '', ...textBlock(full.text)] : []),
|
|
101
|
+
...(setupNote ? ['', setupNote] : []),
|
|
102
|
+
'',
|
|
103
|
+
advice,
|
|
104
|
+
].join('\n'),
|
|
63
105
|
}],
|
|
64
106
|
structuredContent: {
|
|
65
107
|
agent,
|
|
66
108
|
settled,
|
|
67
109
|
...(waitedSeconds !== undefined ? { waitedSeconds } : {}),
|
|
68
110
|
advice,
|
|
111
|
+
...(full ? { entry: full } : {}),
|
|
69
112
|
...(nextAction ? { nextAction } : {}),
|
|
70
113
|
},
|
|
71
114
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-my-agent.js","sourceRoot":"","sources":["../../src/tools/get-my-agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"get-my-agent.js","sourceRoot":"","sources":["../../src/tools/get-my-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-playbook.d.ts","sourceRoot":"","sources":["../../src/tools/get-playbook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"get-playbook.d.ts","sourceRoot":"","sources":["../../src/tools/get-playbook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgBzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8C3D"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { PLAYBOOK_SUMMARIES, PLAYBOOK_TITLES, PLAYBOOK_TOPICS, PLAYBOOKS, } from '../playbooks.js';
|
|
3
|
+
import { strictInput } from './schemas.js';
|
|
3
4
|
const topicSchema = z.enum(PLAYBOOK_TOPICS);
|
|
4
5
|
const topicList = PLAYBOOK_TOPICS
|
|
5
6
|
.map(topic => `${topic} (${PLAYBOOK_SUMMARIES[topic]})`)
|
|
@@ -14,10 +15,10 @@ export function registerGetPlaybook(server) {
|
|
|
14
15
|
+ 'and follow it. Each topic is enough for its own job; read getting-started '
|
|
15
16
|
+ `when the route or the workspace is unclear. Topics: ${topicList}. `
|
|
16
17
|
+ 'Several topics can be read in one call.',
|
|
17
|
-
inputSchema: {
|
|
18
|
+
inputSchema: strictInput({
|
|
18
19
|
topics: z.array(topicSchema).min(1)
|
|
19
20
|
.describe('One or more playbook topics to read, e.g. ["workflows"] or ["agents", "billing"].'),
|
|
20
|
-
},
|
|
21
|
+
}),
|
|
21
22
|
outputSchema: {
|
|
22
23
|
topics: z.array(z.object({
|
|
23
24
|
topic: topicSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-playbook.js","sourceRoot":"","sources":["../../src/tools/get-playbook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,SAAS,GACV,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"get-playbook.js","sourceRoot":"","sources":["../../src/tools/get-playbook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,SAAS,GACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAE5C,MAAM,SAAS,GAAG,eAAe;KAC9B,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,KAAK,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC;KACvD,IAAI,CAAC,IAAI,CAAC,CAAC;AAEd,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,6DAA6D;cACtE,gEAAgE;cAChE,sEAAsE;cACtE,qEAAqE;cACrE,4EAA4E;cAC5E,uDAAuD,SAAS,IAAI;cACpE,yCAAyC;QAC7C,WAAW,EAAE,WAAW,CAAC;YACvB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;iBAChC,QAAQ,CAAC,mFAAmF,CAAC;SACjG,CAAC;QACF,YAAY,EAAE;YACZ,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;gBACvB,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;gBACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;aACrB,CAAC,CAAC;SACJ;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,0EAA0E;YAC1E,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjD,KAAK;YACL,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC;YAC7B,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC;SAC3B,CAAC,CAAC,CAAC;QACJ,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;iBACtE,CAAC;YACF,iBAAiB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;SACvC,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import type
|
|
2
|
+
import { type WiroClient } from '../client.js';
|
|
3
3
|
export declare function registerGetTaskPrice(server: McpServer, client: WiroClient): void;
|
|
4
4
|
//# sourceMappingURL=get-task-price.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-task-price.d.ts","sourceRoot":"","sources":["../../src/tools/get-task-price.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"get-task-price.d.ts","sourceRoot":"","sources":["../../src/tools/get-task-price.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,EAA8C,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAc3F,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CA6IhF"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { isTaskId, isTaskIdTooLarge, isTaskNotFound } from '../client.js';
|
|
3
|
+
import { awaitingCharge, cancelledWhileQueued, formatTaskCost, TASK_ID_NOT_NUMERIC, TASK_NOT_FOUND, } from '../utils/format.js';
|
|
3
4
|
import { getTaskState, toStructuredTaskResult, } from '../utils/structured.js';
|
|
4
|
-
import { taskPriceOutputSchema } from './schemas.js';
|
|
5
|
+
import { strictInput, taskPriceOutputSchema } from './schemas.js';
|
|
5
6
|
export function registerGetTaskPrice(server, client) {
|
|
6
7
|
server.registerTool('get_task_price', {
|
|
7
8
|
title: 'Get a Wiro task price',
|
|
@@ -12,10 +13,10 @@ export function registerGetTaskPrice(server, client) {
|
|
|
12
13
|
+ 'shows its cost, so use this for a task whose result you do not have, or whose result '
|
|
13
14
|
+ 'shows only the list price. If the task is active, follow the returned `wait_for_task` '
|
|
14
15
|
+ 'next action.',
|
|
15
|
-
inputSchema: {
|
|
16
|
+
inputSchema: strictInput({
|
|
16
17
|
tasktoken: z.string().optional().describe('The task token returned from run_model.'),
|
|
17
18
|
taskid: z.string().optional().describe('The task ID (alternative to tasktoken).'),
|
|
18
|
-
},
|
|
19
|
+
}),
|
|
19
20
|
outputSchema: taskPriceOutputSchema,
|
|
20
21
|
annotations: {
|
|
21
22
|
readOnlyHint: true,
|
|
@@ -31,11 +32,32 @@ export function registerGetTaskPrice(server, client) {
|
|
|
31
32
|
isError: true,
|
|
32
33
|
};
|
|
33
34
|
}
|
|
35
|
+
if (taskid && !isTaskId(taskid)) {
|
|
36
|
+
return {
|
|
37
|
+
content: [{ type: 'text', text: `## Error\n\n${TASK_ID_NOT_NUMERIC}` }],
|
|
38
|
+
isError: true,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
if (taskid && isTaskIdTooLarge(taskid)) {
|
|
42
|
+
return {
|
|
43
|
+
content: [{ type: 'text', text: `## Error\n\n${TASK_NOT_FOUND}` }],
|
|
44
|
+
isError: true,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
34
47
|
const detail = await client.getTask({ tasktoken, taskid }, extra.signal);
|
|
48
|
+
if (!detail.result) {
|
|
49
|
+
const errors = isTaskNotFound(detail)
|
|
50
|
+
? TASK_NOT_FOUND
|
|
51
|
+
: detail.errors?.map(error => error.message).join(', ') || 'Task status request failed.';
|
|
52
|
+
return {
|
|
53
|
+
content: [{ type: 'text', text: `## Error\n\n${errors}` }],
|
|
54
|
+
isError: true,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
35
57
|
const task = detail.tasklist?.[0];
|
|
36
58
|
if (!task) {
|
|
37
59
|
return {
|
|
38
|
-
content: [{ type: 'text', text:
|
|
60
|
+
content: [{ type: 'text', text: `## Error\n\n${TASK_NOT_FOUND}` }],
|
|
39
61
|
isError: true,
|
|
40
62
|
};
|
|
41
63
|
}
|
|
@@ -48,15 +70,14 @@ export function registerGetTaskPrice(server, client) {
|
|
|
48
70
|
}
|
|
49
71
|
lines.push(`**Status:** ${task.status}`);
|
|
50
72
|
const state = getTaskState(task);
|
|
51
|
-
//
|
|
52
|
-
// cancelled task shows a charge only when Wiro reports one.
|
|
73
|
+
// Shows the charge Wiro reports for the task.
|
|
53
74
|
const chargedUsd = task.chargedcost === null || task.chargedcost === undefined || task.chargedcost === ''
|
|
54
75
|
? null
|
|
55
76
|
: Number(task.chargedcost);
|
|
56
77
|
const charged = chargedUsd !== null && Number.isFinite(chargedUsd) && chargedUsd > 0
|
|
57
78
|
? formatTaskCost(task)
|
|
58
79
|
: null;
|
|
59
|
-
// A successful task
|
|
80
|
+
// A successful task shows its list price until its charge is recorded.
|
|
60
81
|
const awaiting = awaitingCharge(task);
|
|
61
82
|
// No worker took a task cancelled while queued, so it never ran.
|
|
62
83
|
const neverRan = state === 'cancelled' && charged === null && cancelledWhileQueued(task);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-task-price.js","sourceRoot":"","sources":["../../src/tools/get-task-price.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"get-task-price.js","sourceRoot":"","sources":["../../src/tools/get-task-price.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-task.d.ts","sourceRoot":"","sources":["../../src/tools/get-task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,
|
|
1
|
+
{"version":3,"file":"get-task.d.ts","sourceRoot":"","sources":["../../src/tools/get-task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,EAML,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AActB,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAiI3E"}
|
package/dist/tools/get-task.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { TaskWaitTimeoutError, } from '../client.js';
|
|
3
|
-
import { formatTaskPending, formatTaskResult, } from '../utils/format.js';
|
|
2
|
+
import { isTaskId, isTaskIdTooLarge, isTaskNotFound, TaskPollingError, TaskWaitTimeoutError, } from '../client.js';
|
|
3
|
+
import { formatTaskPending, formatTaskResult, TASK_ID_NOT_NUMERIC, TASK_NOT_FOUND, } from '../utils/format.js';
|
|
4
4
|
import { createTaskContent, toPendingTaskResult, toStructuredTaskResult, } from '../utils/structured.js';
|
|
5
|
-
import { taskResultOutputSchema } from './schemas.js';
|
|
5
|
+
import { strictInput, taskResultOutputSchema } from './schemas.js';
|
|
6
6
|
export function registerGetTask(server, client) {
|
|
7
7
|
server.registerTool('get_task', {
|
|
8
8
|
title: 'Get a Wiro task',
|
|
@@ -15,12 +15,12 @@ export function registerGetTask(server, client) {
|
|
|
15
15
|
+ 'and the turn\'s `session_id` when it had one. When the task is complete, present every returned '
|
|
16
16
|
+ 'media resource in the user-facing response instead of reporting only '
|
|
17
17
|
+ 'task metadata.',
|
|
18
|
-
inputSchema: {
|
|
18
|
+
inputSchema: strictInput({
|
|
19
19
|
tasktoken: z.string().optional().describe('The task token returned from run_model.'),
|
|
20
20
|
taskid: z.string().optional().describe('The task ID (alternative to tasktoken).'),
|
|
21
21
|
wait_seconds: z.number().int().min(0).max(45).default(0)
|
|
22
22
|
.describe('Optional bounded wait before returning (0-45 seconds, default 0).'),
|
|
23
|
-
},
|
|
23
|
+
}),
|
|
24
24
|
outputSchema: taskResultOutputSchema,
|
|
25
25
|
annotations: {
|
|
26
26
|
readOnlyHint: true,
|
|
@@ -36,6 +36,18 @@ export function registerGetTask(server, client) {
|
|
|
36
36
|
isError: true,
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
|
+
if (taskid && !isTaskId(taskid)) {
|
|
40
|
+
return {
|
|
41
|
+
content: [{ type: 'text', text: `## Error\n\n${TASK_ID_NOT_NUMERIC}` }],
|
|
42
|
+
isError: true,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
if (taskid && isTaskIdTooLarge(taskid)) {
|
|
46
|
+
return {
|
|
47
|
+
content: [{ type: 'text', text: `## Error\n\n${TASK_NOT_FOUND}` }],
|
|
48
|
+
isError: true,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
39
51
|
const reference = { tasktoken, taskid };
|
|
40
52
|
const detail = wait_seconds > 0
|
|
41
53
|
? await client.waitForTask(reference, wait_seconds * 1000, {
|
|
@@ -61,8 +73,9 @@ export function registerGetTask(server, client) {
|
|
|
61
73
|
})
|
|
62
74
|
: await client.getTask(reference, extra.signal);
|
|
63
75
|
if (!detail.result) {
|
|
64
|
-
const errors = detail
|
|
65
|
-
|
|
76
|
+
const errors = isTaskNotFound(detail)
|
|
77
|
+
? TASK_NOT_FOUND
|
|
78
|
+
: detail.errors?.map(error => error.message).join(', ') || 'Task status request failed.';
|
|
66
79
|
return {
|
|
67
80
|
content: [{ type: 'text', text: `## Error\n\n${errors}` }],
|
|
68
81
|
isError: true,
|
|
@@ -71,7 +84,7 @@ export function registerGetTask(server, client) {
|
|
|
71
84
|
const task = detail.tasklist?.[0];
|
|
72
85
|
if (!task) {
|
|
73
86
|
return {
|
|
74
|
-
content: [{ type: 'text', text:
|
|
87
|
+
content: [{ type: 'text', text: `## Error\n\n${TASK_NOT_FOUND}` }],
|
|
75
88
|
isError: true,
|
|
76
89
|
};
|
|
77
90
|
}
|
|
@@ -101,8 +114,11 @@ export function registerGetTask(server, client) {
|
|
|
101
114
|
: toPendingTaskResult({ taskid, tasktoken }),
|
|
102
115
|
};
|
|
103
116
|
}
|
|
117
|
+
const message = error instanceof TaskPollingError && isTaskNotFound(error.lastDetail)
|
|
118
|
+
? TASK_NOT_FOUND
|
|
119
|
+
: (error instanceof Error ? error.message : String(error));
|
|
104
120
|
return {
|
|
105
|
-
content: [{ type: 'text', text: `## Error\n\n${
|
|
121
|
+
content: [{ type: 'text', text: `## Error\n\n${message}` }],
|
|
106
122
|
isError: true,
|
|
107
123
|
};
|
|
108
124
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-task.js","sourceRoot":"","sources":["../../src/tools/get-task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,oBAAoB,GAErB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"get-task.js","sourceRoot":"","sources":["../../src/tools/get-task.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-workflow.d.ts","sourceRoot":"","sources":["../../src/tools/get-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAkC,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"get-workflow.d.ts","sourceRoot":"","sources":["../../src/tools/get-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAkC,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAanF,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC3C;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAQlC;AAQD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAwG/E"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { errorResult, requireApiSuccess } from '../utils/api.js';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { quotedBlock, quotedSpan } from '../utils/quoted-text.js';
|
|
4
|
+
import { parseWorkflowSlug, plainInputKeys, quotedWorkflowInputs, toWorkflowDetail, WORKFLOW_DESCRIPTION_LABEL, workflowDetailSchema, } from '../utils/workflow.js';
|
|
5
|
+
import { nextActionSchema, strictInput } from './schemas.js';
|
|
5
6
|
export async function fetchWorkflowRow(client, fullSlug, signal) {
|
|
6
7
|
const result = requireApiSuccess(await client.post('/Workflow/Detail', { slug: fullSlug }, signal), 'Workflow not found.');
|
|
7
8
|
const row = result.workflow?.[0];
|
|
@@ -9,23 +10,28 @@ export async function fetchWorkflowRow(client, fullSlug, signal) {
|
|
|
9
10
|
throw new Error('Workflow not found.');
|
|
10
11
|
return row;
|
|
11
12
|
}
|
|
13
|
+
/** The inputs a run must be given, when Wiro says so. */
|
|
14
|
+
function requiredNote(inputs) {
|
|
15
|
+
const keys = plainInputKeys(inputs.filter(input => input.required));
|
|
16
|
+
return keys.length > 0 ? `A run must be given: ${keys.join(', ')}. ` : '';
|
|
17
|
+
}
|
|
12
18
|
export function registerGetWorkflow(server, client) {
|
|
13
19
|
server.registerTool('get_workflow', {
|
|
14
20
|
title: 'Get a Wiro workflow',
|
|
15
|
-
description: 'Read one workflow: its inputs (the keys run_workflow takes
|
|
16
|
-
+ 'state, and the full step graph when you are allowed to see it. Read this before '
|
|
21
|
+
description: 'Read one workflow: its inputs (the keys run_workflow takes, marked when a run must be '
|
|
22
|
+
+ 'given them), outputs, state, and the full step graph when you are allowed to see it. Read this before '
|
|
17
23
|
+ 'running a workflow, and before editing one with update_workflow (pass the returned '
|
|
18
24
|
+ '`updatetime` back as `loaded_updatetime`). Protected workflows from other creators '
|
|
19
25
|
+ 'show only their inputs, but they can still be run. Input lists and saved values hide '
|
|
20
26
|
+ 'the values of fields named like api_key, token, secret or password, and values that '
|
|
21
27
|
+ 'look like a provider key. Other saved values come back as saved: never repeat a key '
|
|
22
28
|
+ 'you see there.',
|
|
23
|
-
inputSchema: {
|
|
29
|
+
inputSchema: strictInput({
|
|
24
30
|
slug: z.string().min(1)
|
|
25
31
|
.describe('The full workflow slug ("<name>-<5 character id>") or the workflow page URL.'),
|
|
26
32
|
include_graph: z.boolean().default(true)
|
|
27
33
|
.describe('Include the step graph (contents). Set false for a short answer.'),
|
|
28
|
-
},
|
|
34
|
+
}),
|
|
29
35
|
outputSchema: {
|
|
30
36
|
workflow: workflowDetailSchema,
|
|
31
37
|
nextAction: nextActionSchema.optional(),
|
|
@@ -49,7 +55,11 @@ export function registerGetWorkflow(server, client) {
|
|
|
49
55
|
const leftOut = workflow.graphHidden && !workflow.insider
|
|
50
56
|
? 'This protected workflow is outside this key\'s workspace. Unless you own it or are in its team, a key you leave out uses its default, not its saved value, so pass the saved values you want.'
|
|
51
57
|
: 'A key you leave out uses its saved value or default.';
|
|
52
|
-
|
|
58
|
+
// A workflow with no steps has nothing to run, and a run of it is refused. A
|
|
59
|
+
// hidden graph arrives emptied, so only a graph the caller can see says this.
|
|
60
|
+
const noSteps = !workflow.graphHidden && workflow.stepCount === 0;
|
|
61
|
+
const lines = ['## Workflow', ''];
|
|
62
|
+
lines.push(`**Title:** ${quotedSpan(workflow.title)}`);
|
|
53
63
|
lines.push(`**Slug:** \`${workflow.fullSlug}\``);
|
|
54
64
|
lines.push(`**Page:** ${workflow.url}`);
|
|
55
65
|
if (workflow.state)
|
|
@@ -58,36 +68,51 @@ export function registerGetWorkflow(server, client) {
|
|
|
58
68
|
lines.push(`**updatetime:** \`${workflow.updatetime}\` (pass it as loaded_updatetime when editing)`);
|
|
59
69
|
const count = workflow.stepCount !== undefined ? `${workflow.stepCount}, ` : '';
|
|
60
70
|
lines.push(`**Steps:** ${!workflow.graphHidden
|
|
61
|
-
? workflow.stepCount
|
|
71
|
+
? (noSteps ? '0, so there is nothing to run yet' : workflow.stepCount)
|
|
62
72
|
: workflow.isClone
|
|
63
73
|
? `${count}hidden. This is a copy of a protected workflow, so its steps stay hidden, even from you. You can run it and change its title, description and tags.`
|
|
64
74
|
: `${count}hidden by the creator`}`);
|
|
65
75
|
if (workflow.description)
|
|
66
|
-
lines.push('', workflow.description);
|
|
67
|
-
lines.push('', '### Inputs', '', ...
|
|
76
|
+
lines.push('', ...quotedBlock(WORKFLOW_DESCRIPTION_LABEL, workflow.description));
|
|
77
|
+
lines.push('', '### Inputs', '', ...(noSteps && workflow.inputs.length === 0 ? ['No inputs.'] : quotedWorkflowInputs(workflow.inputs)));
|
|
68
78
|
if (workflow.graphHidden && !workflow.insider && workflow.inputs.length > 0)
|
|
69
79
|
lines.push('', leftOut);
|
|
70
80
|
const outputs = Object.keys(workflow.outputs);
|
|
71
81
|
if (outputs.length > 0)
|
|
72
|
-
lines.push('', `### Outputs`, '', ...outputs.map(key => `-
|
|
73
|
-
|
|
74
|
-
|
|
82
|
+
lines.push('', `### Outputs`, '', ...outputs.map(key => `- ${quotedSpan(key)}`));
|
|
83
|
+
const estimate = workflow.estimatedCost;
|
|
84
|
+
if (estimate?.valueUsd !== undefined && estimate.valueUsd !== null) {
|
|
85
|
+
lines.push('', `**Estimated cost per run:** about $${estimate.valueUsd}`);
|
|
86
|
+
}
|
|
87
|
+
else if (estimate?.notes) {
|
|
88
|
+
lines.push('', '**Estimated cost per run:** not known before the run');
|
|
75
89
|
}
|
|
90
|
+
if (estimate?.notes)
|
|
91
|
+
lines.push(...estimate.notes.map(note => `- ${note}`));
|
|
76
92
|
if (workflow.contents) {
|
|
77
93
|
lines.push('', 'The full step graph is in the structured result under `workflow.contents`.');
|
|
78
94
|
}
|
|
95
|
+
const nextAction = !noSteps
|
|
96
|
+
? {
|
|
97
|
+
tool: 'run_workflow',
|
|
98
|
+
arguments: { slug: workflow.fullSlug },
|
|
99
|
+
reason: 'Run it only if the user asked for a run, after telling them the estimate; otherwise ask the user first (each model step is charged).'
|
|
100
|
+
+ (workflow.inputs.length > 0
|
|
101
|
+
? ` Pass input values for: ${plainInputKeys(workflow.inputs).join(', ') || 'the inputs listed'}. ${requiredNote(workflow.inputs)}${leftOut}`
|
|
102
|
+
: ' It has no inputs.'),
|
|
103
|
+
}
|
|
104
|
+
: workflow.canEditGraph
|
|
105
|
+
? {
|
|
106
|
+
tool: 'update_workflow',
|
|
107
|
+
arguments: { slug: workflow.fullSlug, ...(workflow.updatetime ? { loaded_updatetime: workflow.updatetime } : {}) },
|
|
108
|
+
reason: 'It has no steps yet, so there is nothing to run. If the user wants to build it, add the steps as `contents`; get_playbook topic "workflow-graph" shows the format.',
|
|
109
|
+
}
|
|
110
|
+
: undefined;
|
|
79
111
|
return {
|
|
80
112
|
content: [{ type: 'text', text: lines.join('\n') }],
|
|
81
113
|
structuredContent: {
|
|
82
114
|
workflow,
|
|
83
|
-
nextAction: {
|
|
84
|
-
tool: 'run_workflow',
|
|
85
|
-
arguments: { slug: workflow.fullSlug },
|
|
86
|
-
reason: 'Run it only if the user asked for a run, after telling them the estimate; otherwise ask the user first (each model step is charged). Pass input values'
|
|
87
|
-
+ (workflow.inputs.length > 0
|
|
88
|
-
? ` for: ${workflow.inputs.map(input => input.key).join(', ')}. ${leftOut}`
|
|
89
|
-
: '. It has no inputs.'),
|
|
90
|
-
},
|
|
115
|
+
...(nextAction ? { nextAction } : {}),
|
|
91
116
|
},
|
|
92
117
|
};
|
|
93
118
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-workflow.js","sourceRoot":"","sources":["../../src/tools/get-workflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAoB,MAAM,iBAAiB,CAAC;AACnF,OAAO,
|
|
1
|
+
{"version":3,"file":"get-workflow.js","sourceRoot":"","sources":["../../src/tools/get-workflow.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -49,6 +49,8 @@ import { registerSetAgentCredentials } from './set-agent-credentials.js';
|
|
|
49
49
|
import { registerConnectAgentOauth } from './connect-agent-oauth.js';
|
|
50
50
|
import { registerDisconnectAgentOauth } from './disconnect-agent-oauth.js';
|
|
51
51
|
import { registerManageAgentCustomSkill } from './manage-agent-custom-skill.js';
|
|
52
|
+
import { registerListProjects } from './list-projects.js';
|
|
53
|
+
import { registerBindAgentProject } from './bind-agent-project.js';
|
|
52
54
|
export declare const TOOLSETS: readonly ["models", "workflows", "agents"];
|
|
53
55
|
export type Toolset = typeof TOOLSETS[number];
|
|
54
56
|
/** What a tool wrapper is told about the tool it wraps. */
|
|
@@ -74,5 +76,6 @@ export interface RegisterToolsOptions {
|
|
|
74
76
|
/** Parses a comma-separated list such as "models,workflows"; unknown names are ignored. */
|
|
75
77
|
export declare function parseToolsets(value: string | undefined): Toolset[] | undefined;
|
|
76
78
|
export declare function registerTools(mcpServer: McpServer, client: WiroClient, options?: RegisterToolsOptions): void;
|
|
77
|
-
export {
|
|
79
|
+
export { advertiseJsonSchema2020_12, withJsonSchema2020_12 } from '../utils/json-schema-dialect.js';
|
|
80
|
+
export { registerSearchModels, registerGetModelSchema, registerRecommendModel, registerExplore, registerRunModel, registerWaitForTask, registerGetTask, registerListTasks, registerGetTaskPrice, registerCancelTask, registerKillTask, registerUploadFile, registerSearchDocs, registerGetAccount, registerListWorkflows, registerGetWorkflow, registerCreateWorkflow, registerUpdateWorkflow, registerCloneWorkflow, registerDeleteWorkflow, registerRunWorkflow, registerWaitForWorkflowRun, registerResumeWorkflowRun, registerListWorkflowRuns, registerGetPlaybook, registerSendAgentMessage, registerGetAgentMessage, registerGetAgentConversation, registerCancelAgentMessage, registerDeleteAgentSession, registerListStudioResults, registerSaveWorkflowFromAgent, registerListAgentTemplates, registerGetAgentTemplate, registerListAgentSkills, registerDeployAgent, registerListMyAgents, registerGetMyAgent, registerControlAgent, registerUpdateAgent, registerManageAgentBilling, registerGetAgentActivity, registerDeleteAgent, registerApplyAgentSkills, registerSetAgentCredentials, registerConnectAgentOauth, registerDisconnectAgentOauth, registerManageAgentCustomSkill, registerListProjects, registerBindAgentProject, };
|
|
78
81
|
//# 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,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,eAAO,MAAM,QAAQ,4CAA6C,CAAC;AACnE,MAAM,MAAM,OAAO,GAAG,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;AAE9C,2DAA2D;AAC3D,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,4FAA4F;AAC5F,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC;AAExD;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,KAAK,WAAW,CAAC;AAEhF,MAAM,WAAW,oBAAoB;IACnC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC9B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAkBD,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,EAAE,GAAG,SAAS,CAK9E;AAED,wBAAgB,aAAa,CAC3B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,oBAAyB,GACjC,IAAI,CAkFN;AAED,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAEpG,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,EAC7B,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,4BAA4B,EAC5B,8BAA8B,EAC9B,oBAAoB,EACpB,wBAAwB,GACzB,CAAC"}
|