@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.
Files changed (248) hide show
  1. package/README.md +50 -17
  2. package/dist/client.d.ts +25 -6
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +129 -29
  5. package/dist/client.js.map +1 -1
  6. package/dist/instructions.d.ts.map +1 -1
  7. package/dist/instructions.js +24 -17
  8. package/dist/instructions.js.map +1 -1
  9. package/dist/playbooks.d.ts.map +1 -1
  10. package/dist/playbooks.js +61 -48
  11. package/dist/playbooks.js.map +1 -1
  12. package/dist/prompts.d.ts.map +1 -1
  13. package/dist/prompts.js +4 -3
  14. package/dist/prompts.js.map +1 -1
  15. package/dist/server.d.ts +6 -0
  16. package/dist/server.d.ts.map +1 -1
  17. package/dist/server.js +3 -4
  18. package/dist/server.js.map +1 -1
  19. package/dist/tools/apply-agent-skills.d.ts.map +1 -1
  20. package/dist/tools/apply-agent-skills.js +400 -88
  21. package/dist/tools/apply-agent-skills.js.map +1 -1
  22. package/dist/tools/bind-agent-project.d.ts +4 -0
  23. package/dist/tools/bind-agent-project.d.ts.map +1 -0
  24. package/dist/tools/bind-agent-project.js +403 -0
  25. package/dist/tools/bind-agent-project.js.map +1 -0
  26. package/dist/tools/cancel-agent-message.d.ts.map +1 -1
  27. package/dist/tools/cancel-agent-message.js +6 -3
  28. package/dist/tools/cancel-agent-message.js.map +1 -1
  29. package/dist/tools/cancel-task.js +3 -3
  30. package/dist/tools/cancel-task.js.map +1 -1
  31. package/dist/tools/clone-workflow.d.ts.map +1 -1
  32. package/dist/tools/clone-workflow.js +5 -4
  33. package/dist/tools/clone-workflow.js.map +1 -1
  34. package/dist/tools/connect-agent-oauth.d.ts.map +1 -1
  35. package/dist/tools/connect-agent-oauth.js +144 -44
  36. package/dist/tools/connect-agent-oauth.js.map +1 -1
  37. package/dist/tools/control-agent.d.ts.map +1 -1
  38. package/dist/tools/control-agent.js +133 -45
  39. package/dist/tools/control-agent.js.map +1 -1
  40. package/dist/tools/create-workflow.d.ts +9 -6
  41. package/dist/tools/create-workflow.d.ts.map +1 -1
  42. package/dist/tools/create-workflow.js +13 -13
  43. package/dist/tools/create-workflow.js.map +1 -1
  44. package/dist/tools/delete-agent-session.d.ts.map +1 -1
  45. package/dist/tools/delete-agent-session.js +20 -14
  46. package/dist/tools/delete-agent-session.js.map +1 -1
  47. package/dist/tools/delete-agent.d.ts.map +1 -1
  48. package/dist/tools/delete-agent.js +14 -10
  49. package/dist/tools/delete-agent.js.map +1 -1
  50. package/dist/tools/delete-workflow.d.ts.map +1 -1
  51. package/dist/tools/delete-workflow.js +6 -5
  52. package/dist/tools/delete-workflow.js.map +1 -1
  53. package/dist/tools/deploy-agent.d.ts.map +1 -1
  54. package/dist/tools/deploy-agent.js +215 -47
  55. package/dist/tools/deploy-agent.js.map +1 -1
  56. package/dist/tools/disconnect-agent-oauth.d.ts.map +1 -1
  57. package/dist/tools/disconnect-agent-oauth.js +32 -12
  58. package/dist/tools/disconnect-agent-oauth.js.map +1 -1
  59. package/dist/tools/get-account.d.ts.map +1 -1
  60. package/dist/tools/get-account.js +157 -49
  61. package/dist/tools/get-account.js.map +1 -1
  62. package/dist/tools/get-agent-activity.d.ts.map +1 -1
  63. package/dist/tools/get-agent-activity.js +186 -36
  64. package/dist/tools/get-agent-activity.js.map +1 -1
  65. package/dist/tools/get-agent-conversation.d.ts.map +1 -1
  66. package/dist/tools/get-agent-conversation.js +65 -39
  67. package/dist/tools/get-agent-conversation.js.map +1 -1
  68. package/dist/tools/get-agent-message.d.ts.map +1 -1
  69. package/dist/tools/get-agent-message.js +6 -4
  70. package/dist/tools/get-agent-message.js.map +1 -1
  71. package/dist/tools/get-agent-template.d.ts.map +1 -1
  72. package/dist/tools/get-agent-template.js +33 -17
  73. package/dist/tools/get-agent-template.js.map +1 -1
  74. package/dist/tools/get-model-schema.d.ts.map +1 -1
  75. package/dist/tools/get-model-schema.js +7 -5
  76. package/dist/tools/get-model-schema.js.map +1 -1
  77. package/dist/tools/get-my-agent.d.ts.map +1 -1
  78. package/dist/tools/get-my-agent.js +54 -11
  79. package/dist/tools/get-my-agent.js.map +1 -1
  80. package/dist/tools/get-playbook.d.ts.map +1 -1
  81. package/dist/tools/get-playbook.js +3 -2
  82. package/dist/tools/get-playbook.js.map +1 -1
  83. package/dist/tools/get-task-price.d.ts +1 -1
  84. package/dist/tools/get-task-price.d.ts.map +1 -1
  85. package/dist/tools/get-task-price.js +29 -8
  86. package/dist/tools/get-task-price.js.map +1 -1
  87. package/dist/tools/get-task.d.ts.map +1 -1
  88. package/dist/tools/get-task.js +25 -9
  89. package/dist/tools/get-task.js.map +1 -1
  90. package/dist/tools/get-workflow.d.ts.map +1 -1
  91. package/dist/tools/get-workflow.js +46 -21
  92. package/dist/tools/get-workflow.js.map +1 -1
  93. package/dist/tools/index.d.ts +4 -1
  94. package/dist/tools/index.d.ts.map +1 -1
  95. package/dist/tools/index.js +10 -1
  96. package/dist/tools/index.js.map +1 -1
  97. package/dist/tools/kill-task.js +3 -3
  98. package/dist/tools/kill-task.js.map +1 -1
  99. package/dist/tools/list-agent-skills.d.ts.map +1 -1
  100. package/dist/tools/list-agent-skills.js +5 -4
  101. package/dist/tools/list-agent-skills.js.map +1 -1
  102. package/dist/tools/list-agent-templates.js +4 -4
  103. package/dist/tools/list-agent-templates.js.map +1 -1
  104. package/dist/tools/list-my-agents.d.ts.map +1 -1
  105. package/dist/tools/list-my-agents.js +14 -8
  106. package/dist/tools/list-my-agents.js.map +1 -1
  107. package/dist/tools/list-projects.d.ts +4 -0
  108. package/dist/tools/list-projects.d.ts.map +1 -0
  109. package/dist/tools/list-projects.js +141 -0
  110. package/dist/tools/list-projects.js.map +1 -0
  111. package/dist/tools/list-studio-results.js +3 -3
  112. package/dist/tools/list-studio-results.js.map +1 -1
  113. package/dist/tools/list-tasks.js +3 -3
  114. package/dist/tools/list-tasks.js.map +1 -1
  115. package/dist/tools/list-workflow-runs.d.ts.map +1 -1
  116. package/dist/tools/list-workflow-runs.js +6 -4
  117. package/dist/tools/list-workflow-runs.js.map +1 -1
  118. package/dist/tools/list-workflows.d.ts.map +1 -1
  119. package/dist/tools/list-workflows.js +7 -6
  120. package/dist/tools/list-workflows.js.map +1 -1
  121. package/dist/tools/manage-agent-billing.d.ts.map +1 -1
  122. package/dist/tools/manage-agent-billing.js +259 -87
  123. package/dist/tools/manage-agent-billing.js.map +1 -1
  124. package/dist/tools/manage-agent-custom-skill.d.ts.map +1 -1
  125. package/dist/tools/manage-agent-custom-skill.js +91 -21
  126. package/dist/tools/manage-agent-custom-skill.js.map +1 -1
  127. package/dist/tools/recommend-model.js +3 -3
  128. package/dist/tools/recommend-model.js.map +1 -1
  129. package/dist/tools/resume-workflow-run.d.ts.map +1 -1
  130. package/dist/tools/resume-workflow-run.js +3 -2
  131. package/dist/tools/resume-workflow-run.js.map +1 -1
  132. package/dist/tools/run-model.js +5 -5
  133. package/dist/tools/run-model.js.map +1 -1
  134. package/dist/tools/run-workflow.d.ts.map +1 -1
  135. package/dist/tools/run-workflow.js +3 -2
  136. package/dist/tools/run-workflow.js.map +1 -1
  137. package/dist/tools/save-workflow-from-agent.d.ts.map +1 -1
  138. package/dist/tools/save-workflow-from-agent.js +22 -20
  139. package/dist/tools/save-workflow-from-agent.js.map +1 -1
  140. package/dist/tools/schemas.d.ts +150 -127
  141. package/dist/tools/schemas.d.ts.map +1 -1
  142. package/dist/tools/schemas.js +76 -3
  143. package/dist/tools/schemas.js.map +1 -1
  144. package/dist/tools/search-docs.js +3 -3
  145. package/dist/tools/search-docs.js.map +1 -1
  146. package/dist/tools/search-models.d.ts.map +1 -1
  147. package/dist/tools/search-models.js +7 -4
  148. package/dist/tools/search-models.js.map +1 -1
  149. package/dist/tools/send-agent-message.d.ts.map +1 -1
  150. package/dist/tools/send-agent-message.js +32 -11
  151. package/dist/tools/send-agent-message.js.map +1 -1
  152. package/dist/tools/set-agent-credentials.d.ts.map +1 -1
  153. package/dist/tools/set-agent-credentials.js +60 -59
  154. package/dist/tools/set-agent-credentials.js.map +1 -1
  155. package/dist/tools/update-agent.d.ts.map +1 -1
  156. package/dist/tools/update-agent.js +59 -21
  157. package/dist/tools/update-agent.js.map +1 -1
  158. package/dist/tools/update-workflow.d.ts +205 -6
  159. package/dist/tools/update-workflow.d.ts.map +1 -1
  160. package/dist/tools/update-workflow.js +20 -7
  161. package/dist/tools/update-workflow.js.map +1 -1
  162. package/dist/tools/upload-file.d.ts.map +1 -1
  163. package/dist/tools/upload-file.js +13 -9
  164. package/dist/tools/upload-file.js.map +1 -1
  165. package/dist/tools/wait-for-task.d.ts.map +1 -1
  166. package/dist/tools/wait-for-task.js +23 -5
  167. package/dist/tools/wait-for-task.js.map +1 -1
  168. package/dist/tools/wait-for-workflow-run.d.ts +18 -18
  169. package/dist/tools/wait-for-workflow-run.d.ts.map +1 -1
  170. package/dist/tools/wait-for-workflow-run.js +7 -6
  171. package/dist/tools/wait-for-workflow-run.js.map +1 -1
  172. package/dist/types.d.ts +6 -0
  173. package/dist/types.d.ts.map +1 -1
  174. package/dist/types.js.map +1 -1
  175. package/dist/utils/agent-catalog.d.ts +168 -139
  176. package/dist/utils/agent-catalog.d.ts.map +1 -1
  177. package/dist/utils/agent-catalog.js +34 -14
  178. package/dist/utils/agent-catalog.js.map +1 -1
  179. package/dist/utils/agent-config.d.ts +111 -8
  180. package/dist/utils/agent-config.d.ts.map +1 -1
  181. package/dist/utils/agent-config.js +290 -40
  182. package/dist/utils/agent-config.js.map +1 -1
  183. package/dist/utils/agent-message.d.ts +41 -22
  184. package/dist/utils/agent-message.d.ts.map +1 -1
  185. package/dist/utils/agent-message.js +94 -31
  186. package/dist/utils/agent-message.js.map +1 -1
  187. package/dist/utils/agent-targets.d.ts +8 -4
  188. package/dist/utils/agent-targets.d.ts.map +1 -1
  189. package/dist/utils/agent-targets.js +51 -35
  190. package/dist/utils/agent-targets.js.map +1 -1
  191. package/dist/utils/agent-turns.d.ts +31 -24
  192. package/dist/utils/agent-turns.d.ts.map +1 -1
  193. package/dist/utils/agent-turns.js +154 -35
  194. package/dist/utils/agent-turns.js.map +1 -1
  195. package/dist/utils/api.d.ts +6 -0
  196. package/dist/utils/api.d.ts.map +1 -1
  197. package/dist/utils/api.js +22 -1
  198. package/dist/utils/api.js.map +1 -1
  199. package/dist/utils/format.d.ts +27 -1
  200. package/dist/utils/format.d.ts.map +1 -1
  201. package/dist/utils/format.js +429 -82
  202. package/dist/utils/format.js.map +1 -1
  203. package/dist/utils/json-schema-dialect.d.ts +8 -1
  204. package/dist/utils/json-schema-dialect.d.ts.map +1 -1
  205. package/dist/utils/json-schema-dialect.js +27 -1
  206. package/dist/utils/json-schema-dialect.js.map +1 -1
  207. package/dist/utils/media.d.ts +8 -0
  208. package/dist/utils/media.d.ts.map +1 -1
  209. package/dist/utils/media.js +29 -0
  210. package/dist/utils/media.js.map +1 -1
  211. package/dist/utils/poll.d.ts +5 -2
  212. package/dist/utils/poll.d.ts.map +1 -1
  213. package/dist/utils/poll.js +10 -9
  214. package/dist/utils/poll.js.map +1 -1
  215. package/dist/utils/quoted-text.d.ts +28 -0
  216. package/dist/utils/quoted-text.d.ts.map +1 -0
  217. package/dist/utils/quoted-text.js +64 -0
  218. package/dist/utils/quoted-text.js.map +1 -0
  219. package/dist/utils/structured.d.ts +2 -0
  220. package/dist/utils/structured.d.ts.map +1 -1
  221. package/dist/utils/structured.js +15 -2
  222. package/dist/utils/structured.js.map +1 -1
  223. package/dist/utils/studio-runs.d.ts +4 -4
  224. package/dist/utils/studio-runs.d.ts.map +1 -1
  225. package/dist/utils/studio-runs.js +11 -8
  226. package/dist/utils/studio-runs.js.map +1 -1
  227. package/dist/utils/user-agent.d.ts +376 -241
  228. package/dist/utils/user-agent.d.ts.map +1 -1
  229. package/dist/utils/user-agent.js +302 -89
  230. package/dist/utils/user-agent.js.map +1 -1
  231. package/dist/utils/wiro-project.d.ts +45 -0
  232. package/dist/utils/wiro-project.d.ts.map +1 -0
  233. package/dist/utils/wiro-project.js +66 -0
  234. package/dist/utils/wiro-project.js.map +1 -0
  235. package/dist/utils/workflow-agent.d.ts +4 -4
  236. package/dist/utils/workflow-save.d.ts +23 -5
  237. package/dist/utils/workflow-save.d.ts.map +1 -1
  238. package/dist/utils/workflow-save.js +130 -38
  239. package/dist/utils/workflow-save.js.map +1 -1
  240. package/dist/utils/workflow.d.ts +79 -61
  241. package/dist/utils/workflow.d.ts.map +1 -1
  242. package/dist/utils/workflow.js +149 -19
  243. package/dist/utils/workflow.js.map +1 -1
  244. package/dist/utils/workspace.d.ts +64 -0
  245. package/dist/utils/workspace.d.ts.map +1 -0
  246. package/dist/utils/workspace.js +173 -0
  247. package/dist/utils/workspace.js.map +1 -0
  248. 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, settledStatusAdvice, toAgentDetail, waitForAgentToSettle, } from '../utils/user-agent.js';
5
- import { nextActionSchema } from './schemas.js';
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, custom instructions and the state '
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
- ? settledStatusAdvice(agent.status)
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: `${formatAgentDetail(agent)}\n\n${advice}`,
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":"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"}
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;AAezE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8C3D"}
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;AAEzB,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;YACX,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;iBAChC,QAAQ,CAAC,mFAAmF,CAAC;SACjG;QACD,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
+ {"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 { WiroClient } from '../client.js';
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,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ/C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAyHhF"}
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 { awaitingCharge, cancelledWhileQueued, formatTaskCost } from '../utils/format.js';
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: '## Error\n\nTask not found.' }],
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
- // Wiro sets chargedcost once it has billed a finished task; a failed or
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 reads as finished a moment before its charge is recorded.
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;AAExB,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EACL,YAAY,EACZ,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAkB;IACxE,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,4EAA4E;cACrF,uFAAuF;cACvF,oFAAoF;cACpF,2FAA2F;cAC3F,uFAAuF;cACvF,wFAAwF;cACxF,cAAc;QAClB,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YACpF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SAClF;QACD,YAAY,EAAE,qBAAqB;QACnC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE;QACrC,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,yDAAyD,EAAE,CAAC;oBACrG,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACzE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YAElC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC;oBACzE,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACjD,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;YAC/E,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAEzC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YACjC,wEAAwE;YACxE,4DAA4D;YAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE;gBACvG,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7B,MAAM,OAAO,GAAG,UAAU,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC;gBAClF,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC;gBACtB,CAAC,CAAC,IAAI,CAAC;YACT,8EAA8E;YAC9E,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YACtC,iEAAiE;YACjE,MAAM,QAAQ,GAAG,KAAK,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACzF,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ;oBAC9B,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,6DAA6D;oBACzF,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;YAClD,CAAC;iBAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,KAAK,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnF,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,IAAI,mCAAmC,EAAE,CAAC,CAAC;YAC5E,CAAC;iBAAM,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBACpC,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,IAAI,CAAC,QAAQ;oBAC1C,CAAC,CAAC,0CAA0C;oBAC5C,CAAC,CAAC,kFAAkF,CAAC,EAAE,CAAC,CAAC;YAC7F,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YAClE,CAAC;YAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;YACtD,CAAC;YAED,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,EAAE;gBAClD,MAAM;gBACN,SAAS;aACV,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,KAAK,KAAK,WAAW,CAAC;YACzC,MAAM,QAAQ,GAAG,UAAU,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,WAAW,CAAC;YAC3E,yEAAyE;YACzE,yEAAyE;YACzE,MAAM,aAAa,GAAG,KAAK,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC;YAE7E,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5D,iBAAiB,EAAE;oBACjB,KAAK;oBACL,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,MAAM,EAAE,QAAQ,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI;oBAC1E,OAAO,EAAE,QAAQ,IAAI,CAAC,QAAQ;wBAC5B,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;4BACnD,CAAC,CAAC,UAAU;4BACZ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnD,CAAC,CAAC,IAAI;oBACR,GAAG,CAAC,cAAc,CAAC,UAAU;wBAC3B,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,UAAU,EAAE;wBAC3C,CAAC,CAAC,EAAE,CAAC;iBACR;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,eAAe,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;gBACnH,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,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,EAEL,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AAYtB,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAiH3E"}
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"}
@@ -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.errors?.map(error => error.message).join(', ')
65
- || 'Task status request failed.';
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: '## Error\n\nTask not found.' }],
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${error instanceof Error ? error.message : String(error)}` }],
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,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,MAAkB;IACnE,MAAM,CAAC,YAAY,CACjB,UAAU,EACV;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,6DAA6D;cACtE,8DAA8D;cAC9D,sEAAsE;cACtE,sEAAsE;cACtE,qEAAqE;cACrE,8EAA8E;cAC9E,kGAAkG;cAClG,uEAAuE;cACvE,gBAAgB;QACpB,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YACpF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YACjF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;iBACrD,QAAQ,CAAC,mEAAmE,CAAC;SACjF;QACD,YAAY,EAAE,sBAAsB;QACpC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE;QACnD,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,yDAAyD,EAAE,CAAC;oBACrG,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,YAAY,GAAG,CAAC;gBAC7B,CAAC,CAAC,MAAM,MAAM,CAAC,WAAW,CACxB,SAAS,EACT,YAAY,GAAG,IAAI,EACnB;oBACE,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;wBAC9B,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC;wBACjD,IAAI,aAAa,KAAK,SAAS;4BAAE,OAAO;wBACxC,IAAI,CAAC;4BACH,MAAM,KAAK,CAAC,gBAAgB,CAAC;gCAC3B,MAAM,EAAE,wBAAwB;gCAChC,MAAM,EAAE;oCACN,aAAa;oCACb,QAAQ,EAAE,OAAO,CAAC,SAAS,GAAG,IAAI;oCAClC,OAAO,EAAE,gBAAgB,IAAI,CAAC,MAAM,EAAE;iCACvC;6BACF,CAAC,CAAC;wBACL,CAAC;wBAAC,MAAM,CAAC;4BACP,iEAAiE;wBACnE,CAAC;oBACH,CAAC;iBACF,CACF;gBACD,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;uBAC/D,6BAA6B,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,eAAe,MAAM,EAAE,EAAE,CAAC;oBACnE,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YAElC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC;oBACzE,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;gBACxD,iBAAiB,EAAE,sBAAsB,CAAC,IAAI,EAAE;oBAC9C,MAAM;oBACN,SAAS;iBACV,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;gBAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjD,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,iBAAiB,CAAC;gCACtB,MAAM,EAAE,MAAM,IAAI,QAAQ,EAAE,EAAE;gCAC9B,SAAS,EAAE,SAAS,IAAI,QAAQ,EAAE,iBAAiB;gCACnD,MAAM,EAAE,QAAQ,EAAE,MAAM;gCACxB,cAAc,EAAE,YAAY;6BAC7B,CAAC;yBACH,CAAC;oBACF,iBAAiB,EAAE,QAAQ;wBACzB,CAAC,CAAC,sBAAsB,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;wBACzD,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;iBAC/C,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,eAAe,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;gBACnH,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
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;AASnF,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;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAsF/E"}
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 { formatWorkflowInputs, parseWorkflowSlug, toWorkflowDetail, workflowDetailSchema, } from '../utils/workflow.js';
4
- import { nextActionSchema } from './schemas.js';
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), outputs, '
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
- const lines = [`## ${workflow.title}`, ''];
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', '', ...formatWorkflowInputs(workflow.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 => `- \`${key}\``));
73
- if (workflow.estimatedCost?.valueUsd !== undefined && workflow.estimatedCost.valueUsd !== null) {
74
- lines.push('', `**Estimated cost per run:** about $${workflow.estimatedCost.valueUsd}`);
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":"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"}
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,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,0BAA0B,EAC1B,oBAAoB,GAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAM7D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAkB,EAClB,QAAgB,EAChB,MAAoB;IAEpB,MAAM,MAAM,GAAG,iBAAiB,CAC9B,MAAM,MAAM,CAAC,IAAI,CAAyB,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,EACzF,qBAAqB,CACtB,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACjD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,yDAAyD;AACzD,SAAS,YAAY,CAAC,MAAgC;IACpD,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAkB;IACvE,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,wFAAwF;cACjG,wGAAwG;cACxG,qFAAqF;cACrF,qFAAqF;cACrF,uFAAuF;cACvF,sFAAsF;cACtF,sFAAsF;cACtF,gBAAgB;QACpB,WAAW,EAAE,WAAW,CAAC;YACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;iBACpB,QAAQ,CAAC,8EAA8E,CAAC;YAC3F,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;iBACrC,QAAQ,CAAC,kEAAkE,CAAC;SAChF,CAAC;QACF,YAAY,EAAE;YACZ,QAAQ,EAAE,oBAAoB;YAC9B,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;SACxC;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,EAAE;QACvC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACnE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;YAExE,2EAA2E;YAC3E,4EAA4E;YAC5E,2EAA2E;YAC3E,0EAA0E;YAC1E,6BAA6B;YAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,OAAO;gBACvD,CAAC,CAAC,+LAA+L;gBACjM,CAAC,CAAC,sDAAsD,CAAC;YAC3D,6EAA6E;YAC7E,8EAA8E;YAC9E,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,SAAS,KAAK,CAAC,CAAC;YAClE,MAAM,KAAK,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvD,KAAK,CAAC,IAAI,CAAC,eAAe,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;YACxC,IAAI,QAAQ,CAAC,KAAK;gBAAE,KAAK,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/D,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,OAAO;gBAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,QAAQ,CAAC,UAAU,gDAAgD,CAAC,CAAC;YAClJ,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW;gBAC5C,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACtE,CAAC,CAAC,QAAQ,CAAC,OAAO;oBAChB,CAAC,CAAC,GAAG,KAAK,qJAAqJ;oBAC/J,CAAC,CAAC,GAAG,KAAK,uBAAuB,EAAE,CAAC,CAAC;YACzC,IAAI,QAAQ,CAAC,WAAW;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,0BAA0B,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;YAC3G,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACxI,IAAI,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACrG,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACzG,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC;YACxC,IAAI,QAAQ,EAAE,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACnE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,sCAAsC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5E,CAAC;iBAAM,IAAI,QAAQ,EAAE,KAAK,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,sDAAsD,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,QAAQ,EAAE,KAAK;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5E,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,4EAA4E,CAAC,CAAC;YAC/F,CAAC;YAED,MAAM,UAAU,GAAG,CAAC,OAAO;gBACzB,CAAC,CAAC;oBACA,IAAI,EAAE,cAAc;oBACpB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE;oBACtC,MAAM,EAAE,sIAAsI;0BAC1I,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;4BAC3B,CAAC,CAAC,2BAA2B,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,KAAK,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,EAAE;4BAC5I,CAAC,CAAC,oBAAoB,CAAC;iBAC5B;gBACD,CAAC,CAAC,QAAQ,CAAC,YAAY;oBACrB,CAAC,CAAC;wBACA,IAAI,EAAE,iBAAiB;wBACvB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;wBAClH,MAAM,EAAE,oKAAoK;qBAC7K;oBACD,CAAC,CAAC,SAAS,CAAC;YAEhB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5D,iBAAiB,EAAE;oBACjB,QAAQ;oBACR,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtC;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -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 { 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, };
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":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}