@wiro-ai/wiro-mcp 1.3.3 → 1.4.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 (270) hide show
  1. package/README.md +173 -16
  2. package/dist/client.d.ts +10 -0
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +39 -20
  5. package/dist/client.js.map +1 -1
  6. package/dist/index.js +4 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/instructions.d.ts +2 -0
  9. package/dist/instructions.d.ts.map +1 -0
  10. package/dist/instructions.js +25 -0
  11. package/dist/instructions.js.map +1 -0
  12. package/dist/playbooks.d.ts +8 -0
  13. package/dist/playbooks.d.ts.map +1 -0
  14. package/dist/playbooks.js +665 -0
  15. package/dist/playbooks.js.map +1 -0
  16. package/dist/prompts.d.ts +4 -0
  17. package/dist/prompts.d.ts.map +1 -0
  18. package/dist/prompts.js +133 -0
  19. package/dist/prompts.js.map +1 -0
  20. package/dist/server.d.ts +9 -2
  21. package/dist/server.d.ts.map +1 -1
  22. package/dist/server.js +9 -3
  23. package/dist/server.js.map +1 -1
  24. package/dist/tools/apply-agent-skills.d.ts +4 -0
  25. package/dist/tools/apply-agent-skills.d.ts.map +1 -0
  26. package/dist/tools/apply-agent-skills.js +545 -0
  27. package/dist/tools/apply-agent-skills.js.map +1 -0
  28. package/dist/tools/cancel-agent-message.d.ts +4 -0
  29. package/dist/tools/cancel-agent-message.d.ts.map +1 -0
  30. package/dist/tools/cancel-agent-message.js +126 -0
  31. package/dist/tools/cancel-agent-message.js.map +1 -0
  32. package/dist/tools/cancel-task.js +3 -3
  33. package/dist/tools/cancel-task.js.map +1 -1
  34. package/dist/tools/clone-workflow.d.ts +4 -0
  35. package/dist/tools/clone-workflow.d.ts.map +1 -0
  36. package/dist/tools/clone-workflow.js +83 -0
  37. package/dist/tools/clone-workflow.js.map +1 -0
  38. package/dist/tools/connect-agent-oauth.d.ts +4 -0
  39. package/dist/tools/connect-agent-oauth.d.ts.map +1 -0
  40. package/dist/tools/connect-agent-oauth.js +508 -0
  41. package/dist/tools/connect-agent-oauth.js.map +1 -0
  42. package/dist/tools/control-agent.d.ts +4 -0
  43. package/dist/tools/control-agent.d.ts.map +1 -0
  44. package/dist/tools/control-agent.js +274 -0
  45. package/dist/tools/control-agent.js.map +1 -0
  46. package/dist/tools/create-workflow.d.ts +100 -0
  47. package/dist/tools/create-workflow.d.ts.map +1 -0
  48. package/dist/tools/create-workflow.js +103 -0
  49. package/dist/tools/create-workflow.js.map +1 -0
  50. package/dist/tools/delete-agent-session.d.ts +6 -0
  51. package/dist/tools/delete-agent-session.d.ts.map +1 -0
  52. package/dist/tools/delete-agent-session.js +134 -0
  53. package/dist/tools/delete-agent-session.js.map +1 -0
  54. package/dist/tools/delete-agent.d.ts +4 -0
  55. package/dist/tools/delete-agent.d.ts.map +1 -0
  56. package/dist/tools/delete-agent.js +144 -0
  57. package/dist/tools/delete-agent.js.map +1 -0
  58. package/dist/tools/delete-workflow.d.ts +4 -0
  59. package/dist/tools/delete-workflow.d.ts.map +1 -0
  60. package/dist/tools/delete-workflow.js +77 -0
  61. package/dist/tools/delete-workflow.js.map +1 -0
  62. package/dist/tools/deploy-agent.d.ts +4 -0
  63. package/dist/tools/deploy-agent.d.ts.map +1 -0
  64. package/dist/tools/deploy-agent.js +455 -0
  65. package/dist/tools/deploy-agent.js.map +1 -0
  66. package/dist/tools/disconnect-agent-oauth.d.ts +4 -0
  67. package/dist/tools/disconnect-agent-oauth.d.ts.map +1 -0
  68. package/dist/tools/disconnect-agent-oauth.js +118 -0
  69. package/dist/tools/disconnect-agent-oauth.js.map +1 -0
  70. package/dist/tools/get-account.d.ts +4 -0
  71. package/dist/tools/get-account.d.ts.map +1 -0
  72. package/dist/tools/get-account.js +110 -0
  73. package/dist/tools/get-account.js.map +1 -0
  74. package/dist/tools/get-agent-activity.d.ts +4 -0
  75. package/dist/tools/get-agent-activity.d.ts.map +1 -0
  76. package/dist/tools/get-agent-activity.js +383 -0
  77. package/dist/tools/get-agent-activity.js.map +1 -0
  78. package/dist/tools/get-agent-conversation.d.ts +4 -0
  79. package/dist/tools/get-agent-conversation.d.ts.map +1 -0
  80. package/dist/tools/get-agent-conversation.js +224 -0
  81. package/dist/tools/get-agent-conversation.js.map +1 -0
  82. package/dist/tools/get-agent-message.d.ts +4 -0
  83. package/dist/tools/get-agent-message.d.ts.map +1 -0
  84. package/dist/tools/get-agent-message.js +68 -0
  85. package/dist/tools/get-agent-message.js.map +1 -0
  86. package/dist/tools/get-agent-template.d.ts +4 -0
  87. package/dist/tools/get-agent-template.d.ts.map +1 -0
  88. package/dist/tools/get-agent-template.js +107 -0
  89. package/dist/tools/get-agent-template.js.map +1 -0
  90. package/dist/tools/get-model-schema.d.ts +5 -1
  91. package/dist/tools/get-model-schema.d.ts.map +1 -1
  92. package/dist/tools/get-model-schema.js +136 -8
  93. package/dist/tools/get-model-schema.js.map +1 -1
  94. package/dist/tools/get-my-agent.d.ts +4 -0
  95. package/dist/tools/get-my-agent.d.ts.map +1 -0
  96. package/dist/tools/get-my-agent.js +78 -0
  97. package/dist/tools/get-my-agent.js.map +1 -0
  98. package/dist/tools/get-playbook.d.ts +3 -0
  99. package/dist/tools/get-playbook.d.ts.map +1 -0
  100. package/dist/tools/get-playbook.js +50 -0
  101. package/dist/tools/get-playbook.js.map +1 -0
  102. package/dist/tools/get-task-price.d.ts.map +1 -1
  103. package/dist/tools/get-task-price.js +42 -15
  104. package/dist/tools/get-task-price.js.map +1 -1
  105. package/dist/tools/get-task.d.ts.map +1 -1
  106. package/dist/tools/get-task.js +4 -3
  107. package/dist/tools/get-task.js.map +1 -1
  108. package/dist/tools/get-workflow.d.ts +9 -0
  109. package/dist/tools/get-workflow.d.ts.map +1 -0
  110. package/dist/tools/get-workflow.js +99 -0
  111. package/dist/tools/get-workflow.js.map +1 -0
  112. package/dist/tools/index.d.ts +62 -2
  113. package/dist/tools/index.d.ts.map +1 -1
  114. package/dist/tools/index.js +127 -14
  115. package/dist/tools/index.js.map +1 -1
  116. package/dist/tools/kill-task.d.ts.map +1 -1
  117. package/dist/tools/kill-task.js +10 -6
  118. package/dist/tools/kill-task.js.map +1 -1
  119. package/dist/tools/list-agent-skills.d.ts +4 -0
  120. package/dist/tools/list-agent-skills.d.ts.map +1 -0
  121. package/dist/tools/list-agent-skills.js +242 -0
  122. package/dist/tools/list-agent-skills.js.map +1 -0
  123. package/dist/tools/list-agent-templates.d.ts +4 -0
  124. package/dist/tools/list-agent-templates.d.ts.map +1 -0
  125. package/dist/tools/list-agent-templates.js +110 -0
  126. package/dist/tools/list-agent-templates.js.map +1 -0
  127. package/dist/tools/list-my-agents.d.ts +4 -0
  128. package/dist/tools/list-my-agents.d.ts.map +1 -0
  129. package/dist/tools/list-my-agents.js +90 -0
  130. package/dist/tools/list-my-agents.js.map +1 -0
  131. package/dist/tools/list-studio-results.d.ts +4 -0
  132. package/dist/tools/list-studio-results.d.ts.map +1 -0
  133. package/dist/tools/list-studio-results.js +95 -0
  134. package/dist/tools/list-studio-results.js.map +1 -0
  135. package/dist/tools/list-tasks.d.ts.map +1 -1
  136. package/dist/tools/list-tasks.js +7 -5
  137. package/dist/tools/list-tasks.js.map +1 -1
  138. package/dist/tools/list-workflow-runs.d.ts +4 -0
  139. package/dist/tools/list-workflow-runs.d.ts.map +1 -0
  140. package/dist/tools/list-workflow-runs.js +110 -0
  141. package/dist/tools/list-workflow-runs.js.map +1 -0
  142. package/dist/tools/list-workflows.d.ts +4 -0
  143. package/dist/tools/list-workflows.d.ts.map +1 -0
  144. package/dist/tools/list-workflows.js +143 -0
  145. package/dist/tools/list-workflows.js.map +1 -0
  146. package/dist/tools/manage-agent-billing.d.ts +4 -0
  147. package/dist/tools/manage-agent-billing.d.ts.map +1 -0
  148. package/dist/tools/manage-agent-billing.js +764 -0
  149. package/dist/tools/manage-agent-billing.js.map +1 -0
  150. package/dist/tools/manage-agent-custom-skill.d.ts +4 -0
  151. package/dist/tools/manage-agent-custom-skill.d.ts.map +1 -0
  152. package/dist/tools/manage-agent-custom-skill.js +537 -0
  153. package/dist/tools/manage-agent-custom-skill.js.map +1 -0
  154. package/dist/tools/recommend-model.d.ts.map +1 -1
  155. package/dist/tools/recommend-model.js +6 -5
  156. package/dist/tools/recommend-model.js.map +1 -1
  157. package/dist/tools/resume-workflow-run.d.ts +4 -0
  158. package/dist/tools/resume-workflow-run.d.ts.map +1 -0
  159. package/dist/tools/resume-workflow-run.js +69 -0
  160. package/dist/tools/resume-workflow-run.js.map +1 -0
  161. package/dist/tools/run-model.d.ts.map +1 -1
  162. package/dist/tools/run-model.js +39 -3
  163. package/dist/tools/run-model.js.map +1 -1
  164. package/dist/tools/run-workflow.d.ts +6 -0
  165. package/dist/tools/run-workflow.d.ts.map +1 -0
  166. package/dist/tools/run-workflow.js +132 -0
  167. package/dist/tools/run-workflow.js.map +1 -0
  168. package/dist/tools/save-workflow-from-agent.d.ts +4 -0
  169. package/dist/tools/save-workflow-from-agent.d.ts.map +1 -0
  170. package/dist/tools/save-workflow-from-agent.js +283 -0
  171. package/dist/tools/save-workflow-from-agent.js.map +1 -0
  172. package/dist/tools/schemas.d.ts +62 -12
  173. package/dist/tools/schemas.d.ts.map +1 -1
  174. package/dist/tools/schemas.js +17 -3
  175. package/dist/tools/schemas.js.map +1 -1
  176. package/dist/tools/search-models.js +6 -6
  177. package/dist/tools/search-models.js.map +1 -1
  178. package/dist/tools/send-agent-message.d.ts +4 -0
  179. package/dist/tools/send-agent-message.d.ts.map +1 -0
  180. package/dist/tools/send-agent-message.js +156 -0
  181. package/dist/tools/send-agent-message.js.map +1 -0
  182. package/dist/tools/set-agent-credentials.d.ts +4 -0
  183. package/dist/tools/set-agent-credentials.d.ts.map +1 -0
  184. package/dist/tools/set-agent-credentials.js +529 -0
  185. package/dist/tools/set-agent-credentials.js.map +1 -0
  186. package/dist/tools/update-agent.d.ts +4 -0
  187. package/dist/tools/update-agent.d.ts.map +1 -0
  188. package/dist/tools/update-agent.js +178 -0
  189. package/dist/tools/update-agent.js.map +1 -0
  190. package/dist/tools/update-workflow.d.ts +201 -0
  191. package/dist/tools/update-workflow.d.ts.map +1 -0
  192. package/dist/tools/update-workflow.js +168 -0
  193. package/dist/tools/update-workflow.js.map +1 -0
  194. package/dist/tools/upload-file.d.ts.map +1 -1
  195. package/dist/tools/upload-file.js +4 -3
  196. package/dist/tools/upload-file.js.map +1 -1
  197. package/dist/tools/wait-for-workflow-run.d.ts +259 -0
  198. package/dist/tools/wait-for-workflow-run.d.ts.map +1 -0
  199. package/dist/tools/wait-for-workflow-run.js +190 -0
  200. package/dist/tools/wait-for-workflow-run.js.map +1 -0
  201. package/dist/types.d.ts +22 -4
  202. package/dist/types.d.ts.map +1 -1
  203. package/dist/types.js.map +1 -1
  204. package/dist/utils/agent-catalog.d.ts +1256 -0
  205. package/dist/utils/agent-catalog.d.ts.map +1 -0
  206. package/dist/utils/agent-catalog.js +388 -0
  207. package/dist/utils/agent-catalog.js.map +1 -0
  208. package/dist/utils/agent-config.d.ts +441 -0
  209. package/dist/utils/agent-config.d.ts.map +1 -0
  210. package/dist/utils/agent-config.js +1667 -0
  211. package/dist/utils/agent-config.js.map +1 -0
  212. package/dist/utils/agent-message.d.ts +115 -0
  213. package/dist/utils/agent-message.d.ts.map +1 -0
  214. package/dist/utils/agent-message.js +246 -0
  215. package/dist/utils/agent-message.js.map +1 -0
  216. package/dist/utils/agent-targets.d.ts +76 -0
  217. package/dist/utils/agent-targets.d.ts.map +1 -0
  218. package/dist/utils/agent-targets.js +408 -0
  219. package/dist/utils/agent-targets.js.map +1 -0
  220. package/dist/utils/agent-turns.d.ts +354 -0
  221. package/dist/utils/agent-turns.d.ts.map +1 -0
  222. package/dist/utils/agent-turns.js +623 -0
  223. package/dist/utils/agent-turns.js.map +1 -0
  224. package/dist/utils/api.d.ts +40 -0
  225. package/dist/utils/api.d.ts.map +1 -0
  226. package/dist/utils/api.js +111 -0
  227. package/dist/utils/api.js.map +1 -0
  228. package/dist/utils/format.d.ts +42 -1
  229. package/dist/utils/format.d.ts.map +1 -1
  230. package/dist/utils/format.js +173 -14
  231. package/dist/utils/format.js.map +1 -1
  232. package/dist/utils/media.d.ts +28 -0
  233. package/dist/utils/media.d.ts.map +1 -0
  234. package/dist/utils/media.js +65 -0
  235. package/dist/utils/media.js.map +1 -0
  236. package/dist/utils/poll.d.ts +39 -0
  237. package/dist/utils/poll.d.ts.map +1 -0
  238. package/dist/utils/poll.js +111 -0
  239. package/dist/utils/poll.js.map +1 -0
  240. package/dist/utils/remote-file.js +2 -2
  241. package/dist/utils/remote-file.js.map +1 -1
  242. package/dist/utils/structured.d.ts +2 -0
  243. package/dist/utils/structured.d.ts.map +1 -1
  244. package/dist/utils/structured.js +10 -10
  245. package/dist/utils/structured.js.map +1 -1
  246. package/dist/utils/studio-runs.d.ts +87 -0
  247. package/dist/utils/studio-runs.d.ts.map +1 -0
  248. package/dist/utils/studio-runs.js +167 -0
  249. package/dist/utils/studio-runs.js.map +1 -0
  250. package/dist/utils/user-agent.d.ts +1140 -0
  251. package/dist/utils/user-agent.d.ts.map +1 -0
  252. package/dist/utils/user-agent.js +802 -0
  253. package/dist/utils/user-agent.js.map +1 -0
  254. package/dist/utils/workflow-agent.d.ts +151 -0
  255. package/dist/utils/workflow-agent.d.ts.map +1 -0
  256. package/dist/utils/workflow-agent.js +292 -0
  257. package/dist/utils/workflow-agent.js.map +1 -0
  258. package/dist/utils/workflow-artifacts.d.ts +160 -0
  259. package/dist/utils/workflow-artifacts.d.ts.map +1 -0
  260. package/dist/utils/workflow-artifacts.js +801 -0
  261. package/dist/utils/workflow-artifacts.js.map +1 -0
  262. package/dist/utils/workflow-save.d.ts +123 -0
  263. package/dist/utils/workflow-save.d.ts.map +1 -0
  264. package/dist/utils/workflow-save.js +734 -0
  265. package/dist/utils/workflow-save.js.map +1 -0
  266. package/dist/utils/workflow.d.ts +559 -0
  267. package/dist/utils/workflow.d.ts.map +1 -0
  268. package/dist/utils/workflow.js +613 -0
  269. package/dist/utils/workflow.js.map +1 -0
  270. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-catalog.d.ts","sourceRoot":"","sources":["../../src/utils/agent-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAShC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,CAc/E;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;EAMhC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOtC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAWhF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuB/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAqElE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,CA6D7E;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CAwB3E;AAID,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQxB,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAarC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAA;CAAE,CAAC;AAEtI,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAiDpE,iGAAiG;AACjG,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,GAC5B,eAAe,CA+CjB;AAID,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE5D"}
@@ -0,0 +1,388 @@
1
+ import { z } from 'zod';
2
+ import { asString, isPlainObject, toNumber, truncate } from './api.js';
3
+ import { FIELD_HELP_MAX, usableConnectionModes } from './agent-config.js';
4
+ import { agentTaskSchema, htmlToText, summarizeTasks, tierPricingSchema, toStringArray, toTierPricing, } from './user-agent.js';
5
+ // The agent catalog: templates, skills and the credentials they need. These
6
+ // come from public catalog endpoints; preset credential values and OAuth
7
+ // internals are still left out.
8
+ export const templateSummarySchema = z.object({
9
+ guid: z.string(),
10
+ slug: z.string(),
11
+ title: z.string(),
12
+ summary: z.string().optional(),
13
+ categories: z.array(z.string()),
14
+ cover: z.string().optional(),
15
+ pricing: tierPricingSchema.nullable(),
16
+ tierMultiplier: z.number().optional(),
17
+ });
18
+ export function toTemplateSummary(row) {
19
+ const summary = asString(row.headline)?.trim() || htmlToText(row.description, 300);
20
+ const cover = asString(row.cover);
21
+ const tierMultiplier = toNumber(row.tiermultiplier);
22
+ return {
23
+ guid: asString(row.guid) ?? '',
24
+ slug: asString(row.slug) ?? '',
25
+ title: asString(row.title) ?? '',
26
+ ...(summary ? { summary } : {}),
27
+ categories: toStringArray(row.categories),
28
+ ...(cover ? { cover } : {}),
29
+ pricing: toTierPricing(row.tiers),
30
+ ...(tierMultiplier !== null ? { tierMultiplier } : {}),
31
+ };
32
+ }
33
+ export const credentialFieldSchema = z.object({
34
+ key: z.string(),
35
+ label: z.string(),
36
+ type: z.string().optional(),
37
+ required: z.boolean(),
38
+ onlyInModes: z.array(z.string()).optional(),
39
+ });
40
+ export const credentialRequirementSchema = z.object({
41
+ key: z.string(),
42
+ title: z.string(),
43
+ mode: z.string().optional(),
44
+ oauth: z.boolean(),
45
+ connectionModes: z.array(z.string()),
46
+ fields: z.array(credentialFieldSchema),
47
+ });
48
+ const modelOptionSchema = z.object({
49
+ slug: z.string(),
50
+ label: z.string().optional(),
51
+ tier: z.string().optional(),
52
+ inputCreditsPer1M: z.number().optional(),
53
+ outputCreditsPer1M: z.number().optional(),
54
+ cachedInputCreditsPer1M: z.number().optional(),
55
+ });
56
+ export const templateDetailSchema = templateSummarySchema.extend({
57
+ description: z.string().optional(),
58
+ skills: z.array(z.object({
59
+ name: z.string(),
60
+ title: z.string().optional(),
61
+ description: z.string().optional(),
62
+ credentialKey: z.string().optional(),
63
+ additionalCredentialKeys: z.array(z.string()).optional(),
64
+ })),
65
+ requiredCredentials: z.array(credentialRequirementSchema),
66
+ optionalCredentials: z.array(credentialRequirementSchema),
67
+ channels: z.array(z.object({
68
+ id: z.string(),
69
+ title: z.string(),
70
+ credentialKey: z.string(),
71
+ requiredFields: z.array(z.string()),
72
+ })),
73
+ models: z.object({
74
+ default: z.string().optional(),
75
+ selectable: z.array(modelOptionSchema),
76
+ }),
77
+ scheduledTasks: z.array(agentTaskSchema).optional(),
78
+ customInstructions: z.array(agentTaskSchema).optional(),
79
+ });
80
+ function writableSchemaField(field) {
81
+ return field.platform_managed !== true
82
+ && field.auto_filled_by_oauth !== true
83
+ && field.server_managed !== true
84
+ && field.type !== 'computed';
85
+ }
86
+ /** What a user fills in for one credential group, from its inline schema. Values are never read. */
87
+ function toCredentialRequirement(key, group) {
88
+ const schema = isPlainObject(group._schema) ? group._schema : {};
89
+ const editable = isPlainObject(group._editable) ? group._editable : null;
90
+ const fields = Array.isArray(schema.fields) ? schema.fields.filter(isPlainObject) : [];
91
+ const mode = asString(schema.credential_mode);
92
+ return {
93
+ key,
94
+ title: asString(schema.title) ?? key,
95
+ ...(mode ? { mode } : {}),
96
+ oauth: isPlainObject(schema.oauth_provider),
97
+ connectionModes: usableConnectionModes({
98
+ connectionModes: toStringArray(schema.connection_modes),
99
+ wiroPending: schema.wiro_connect_pending === true,
100
+ }),
101
+ fields: fields
102
+ .filter(field => {
103
+ const fieldKey = asString(field.key);
104
+ if (!fieldKey || !writableSchemaField(field))
105
+ return false;
106
+ return editable ? editable[fieldKey] !== false : true;
107
+ })
108
+ .map(field => {
109
+ const onlyInModes = toStringArray(field.only_in_modes);
110
+ const type = asString(field.type);
111
+ return {
112
+ key: asString(field.key) ?? '',
113
+ label: asString(field.label) ?? asString(field.key) ?? '',
114
+ ...(type ? { type } : {}),
115
+ required: field.required === true,
116
+ ...(onlyInModes.length > 0 ? { onlyInModes } : {}),
117
+ };
118
+ }),
119
+ };
120
+ }
121
+ function toModelOptions(tokenRates) {
122
+ if (!isPlainObject(tokenRates))
123
+ return { selectable: [] };
124
+ const defaultModel = asString(tokenRates.default_model);
125
+ const models = isPlainObject(tokenRates.models) ? tokenRates.models : {};
126
+ const selectable = Object.entries(models)
127
+ .filter(([, meta]) => isPlainObject(meta) && meta.selectable === true)
128
+ .map(([slug, meta]) => {
129
+ const rates = meta;
130
+ const label = asString(rates.label);
131
+ const tier = asString(rates.tier);
132
+ const input = toNumber(rates.input_per_1m);
133
+ const output = toNumber(rates.output_per_1m);
134
+ const cached = toNumber(rates.cached_input_per_1m);
135
+ return {
136
+ slug,
137
+ ...(label ? { label } : {}),
138
+ ...(tier ? { tier } : {}),
139
+ ...(input !== null ? { inputCreditsPer1M: input } : {}),
140
+ ...(output !== null ? { outputCreditsPer1M: output } : {}),
141
+ ...(cached !== null ? { cachedInputCreditsPer1M: cached } : {}),
142
+ };
143
+ });
144
+ return { ...(defaultModel ? { default: defaultModel } : {}), selectable };
145
+ }
146
+ export function toTemplateDetail(row) {
147
+ const summary = toTemplateSummary(row);
148
+ const skillsMeta = isPlainObject(row.skillsmeta) ? row.skillsmeta : {};
149
+ const skills = toStringArray(row.skills).map(name => {
150
+ const meta = isPlainObject(skillsMeta[name]) ? skillsMeta[name] : {};
151
+ const title = asString(meta.title);
152
+ const description = asString(meta.description);
153
+ const needsCredentials = meta.requires_credentials === true;
154
+ const credentialKey = needsCredentials ? asString(meta.credential_key) : undefined;
155
+ const additional = needsCredentials ? toStringArray(meta.additional_credential_keys) : [];
156
+ return {
157
+ name,
158
+ ...(title ? { title } : {}),
159
+ ...(description ? { description: truncate(description, 200) } : {}),
160
+ ...(credentialKey ? { credentialKey } : {}),
161
+ ...(additional.length > 0 ? { additionalCredentialKeys: additional } : {}),
162
+ };
163
+ });
164
+ const channels = (Array.isArray(row.communicationChannels) ? row.communicationChannels : [])
165
+ .filter(isPlainObject)
166
+ .map(channel => {
167
+ const id = asString(channel.id) ?? '';
168
+ return {
169
+ id,
170
+ title: asString(channel.title) ?? id,
171
+ credentialKey: asString(channel.credentialkey) ?? id,
172
+ requiredFields: toStringArray(channel.required_fields),
173
+ };
174
+ });
175
+ const channelKeys = new Set(channels.map(channel => channel.credentialKey));
176
+ const requiredCredentials = [];
177
+ const optionalCredentials = [];
178
+ if (isPlainObject(row.credentials)) {
179
+ for (const [key, group] of Object.entries(row.credentials)) {
180
+ if (key.startsWith('_') || !isPlainObject(group))
181
+ continue;
182
+ // Only groups the template marks as not optional hold back the setup.
183
+ if (group.optional === false) {
184
+ requiredCredentials.push(toCredentialRequirement(key, group));
185
+ }
186
+ else if (!channelKeys.has(key)) {
187
+ optionalCredentials.push(toCredentialRequirement(key, group));
188
+ }
189
+ }
190
+ }
191
+ const description = htmlToText(row.description, 1_500);
192
+ const scheduled = Array.isArray(row.scheduledskills) ? summarizeTasks(row.scheduledskills) : undefined;
193
+ const custom = Array.isArray(row.customskills) ? summarizeTasks(row.customskills) : undefined;
194
+ return {
195
+ ...summary,
196
+ ...(description ? { description } : {}),
197
+ skills,
198
+ requiredCredentials,
199
+ optionalCredentials,
200
+ channels,
201
+ models: toModelOptions(row.tokenRates),
202
+ ...(scheduled ? { scheduledTasks: scheduled } : {}),
203
+ ...(custom ? { customInstructions: custom } : {}),
204
+ };
205
+ }
206
+ export const skillSummarySchema = z.object({
207
+ name: z.string(),
208
+ title: z.string(),
209
+ description: z.string().optional(),
210
+ category: z.string().optional(),
211
+ capabilities: z.array(z.string()),
212
+ requiresCredentials: z.boolean(),
213
+ credentialKey: z.string().optional(),
214
+ additionalCredentialKeys: z.array(z.string()).optional(),
215
+ dependsOn: z.array(z.string()),
216
+ conflictsWith: z.array(z.string()),
217
+ userInvocable: z.boolean().optional(),
218
+ deprecated: z.boolean(),
219
+ replacement: z.string().optional(),
220
+ monthlyPriceUsd: z.number(),
221
+ monthlyCredits: z.number(),
222
+ });
223
+ export function toSkillSummary(skill) {
224
+ const pricing = isPlainObject(skill.pricing) ? skill.pricing : {};
225
+ const description = asString(skill.description);
226
+ const category = asString(skill.category);
227
+ const credentialKey = asString(skill.credential_key);
228
+ const additional = toStringArray(skill.additional_credential_keys);
229
+ const replacement = asString(skill.replacement);
230
+ return {
231
+ name: asString(skill.name) ?? '',
232
+ title: asString(skill.title) ?? asString(skill.name) ?? '',
233
+ ...(description ? { description: truncate(description, 300) } : {}),
234
+ ...(category ? { category } : {}),
235
+ capabilities: toStringArray(skill.capabilities),
236
+ requiresCredentials: skill.requires_credentials === true,
237
+ ...(credentialKey ? { credentialKey } : {}),
238
+ ...(additional.length > 0 ? { additionalCredentialKeys: additional } : {}),
239
+ dependsOn: toStringArray(skill.depends_on),
240
+ conflictsWith: toStringArray(skill.conflicts_with),
241
+ ...(typeof skill.user_invocable === 'boolean' ? { userInvocable: skill.user_invocable } : {}),
242
+ deprecated: skill.deprecated === true,
243
+ ...(replacement ? { replacement } : {}),
244
+ monthlyPriceUsd: toNumber(pricing.monthly_price_weight_usd) ?? 0,
245
+ monthlyCredits: toNumber(pricing.monthly_credits_weight) ?? 0,
246
+ };
247
+ }
248
+ const setupOptionSchema = z.object({ value: z.string(), label: z.string().optional() });
249
+ const setupItemFieldSchema = z.object({
250
+ key: z.string(),
251
+ label: z.string().optional(),
252
+ type: z.string().optional(),
253
+ required: z.boolean().optional(),
254
+ pattern: z.string().optional(),
255
+ options: z.array(setupOptionSchema).optional(),
256
+ help: z.string().optional(),
257
+ });
258
+ export const credentialSetupFieldSchema = z.object({
259
+ key: z.string(),
260
+ label: z.string(),
261
+ type: z.string().optional(),
262
+ required: z.boolean(),
263
+ writable: z.boolean(),
264
+ secret: z.boolean(),
265
+ onlyInModes: z.array(z.string()).optional(),
266
+ pattern: z.string().optional(),
267
+ options: z.array(setupOptionSchema).optional(),
268
+ help: z.string().optional(),
269
+ // The keys of a list's entries, and of a list inside an entry.
270
+ itemFields: z.array(setupItemFieldSchema.extend({ itemFields: z.array(setupItemFieldSchema).optional() })).optional(),
271
+ });
272
+ export const credentialSetupSchema = z.object({
273
+ key: z.string(),
274
+ title: z.string(),
275
+ role: z.enum(['primary', 'additional', 'channel', 'credential']),
276
+ mode: z.string().optional(),
277
+ connectionModes: z.array(z.string()),
278
+ oauth: z.boolean(),
279
+ wiroConnectAvailable: z.boolean(),
280
+ channel: z.object({ id: z.string(), requiredFields: z.array(z.string()) }).optional(),
281
+ usedBySkills: z.array(z.string()).optional(),
282
+ note: z.string().optional(),
283
+ fields: z.array(credentialSetupFieldSchema),
284
+ });
285
+ function itemSchemaOf(field) {
286
+ if (Array.isArray(field.item_schema))
287
+ return field.item_schema;
288
+ const config = isPlainObject(field.custom_component_config) ? field.custom_component_config : null;
289
+ if (!config)
290
+ return undefined;
291
+ for (const [key, value] of Object.entries(config)) {
292
+ if (key.startsWith('per_') && key.endsWith('_schema') && Array.isArray(value))
293
+ return value;
294
+ }
295
+ return undefined;
296
+ }
297
+ function setupOptions(field) {
298
+ if (!Array.isArray(field.options))
299
+ return [];
300
+ return field.options.flatMap(option => {
301
+ if (isPlainObject(option)) {
302
+ const value = asString(option.value);
303
+ const label = asString(option.text) ?? asString(option.label);
304
+ return value !== undefined ? [{ value, ...(label ? { label } : {}) }] : [];
305
+ }
306
+ const value = asString(option);
307
+ return value !== undefined ? [{ value }] : [];
308
+ });
309
+ }
310
+ /** The keys of a list's entries, with a list inside an entry described one level further. */
311
+ function setupItems(field, nested) {
312
+ return (itemSchemaOf(field) ?? []).filter(isPlainObject).flatMap(item => {
313
+ const itemKey = asString(item.key);
314
+ if (!itemKey)
315
+ return [];
316
+ const itemLabel = asString(item.label);
317
+ const itemType = asString(item.type);
318
+ const itemPattern = asString(item.pattern);
319
+ const options = setupOptions(item);
320
+ const help = htmlToText(item.help, FIELD_HELP_MAX);
321
+ const children = nested ? setupItems(item, false) : [];
322
+ return [{
323
+ key: itemKey,
324
+ ...(itemLabel ? { label: itemLabel } : {}),
325
+ ...(itemType ? { type: itemType } : {}),
326
+ ...(typeof item.required === 'boolean' ? { required: item.required } : {}),
327
+ ...(itemPattern ? { pattern: itemPattern } : {}),
328
+ ...(options.length > 0 ? { options } : {}),
329
+ ...(help ? { help } : {}),
330
+ ...(children.length > 0 ? { itemFields: children } : {}),
331
+ }];
332
+ });
333
+ }
334
+ /** A credential registry entry reduced to what a user is asked for. OAuth internals stay out. */
335
+ export function toCredentialSetup(credential, role) {
336
+ const key = asString(credential.key) ?? '';
337
+ const listedModes = toStringArray(credential.connection_modes);
338
+ const wiroPending = credential.wiro_connect_pending === true;
339
+ const channel = isPlainObject(credential.channel) ? credential.channel : null;
340
+ const mode = asString(credential.credential_mode);
341
+ const usedBy = toStringArray(credential.used_by_skills);
342
+ const schema = Array.isArray(credential.credential_schema)
343
+ ? credential.credential_schema.filter(isPlainObject)
344
+ : [];
345
+ return {
346
+ key,
347
+ title: asString(credential.title) ?? key,
348
+ role: channel && role === 'credential' ? 'channel' : role,
349
+ ...(mode ? { mode } : {}),
350
+ connectionModes: usableConnectionModes({ connectionModes: listedModes, wiroPending }),
351
+ oauth: isPlainObject(credential.oauth_provider),
352
+ wiroConnectAvailable: listedModes.includes('wiro') && !wiroPending,
353
+ ...(channel
354
+ ? { channel: { id: asString(channel.id) ?? key, requiredFields: toStringArray(channel.required_fields) } }
355
+ : {}),
356
+ ...(usedBy.length > 0 ? { usedBySkills: usedBy } : {}),
357
+ ...(key === 'wiro'
358
+ ? { note: 'This is a Wiro project API key. Models the agent runs are billed to that project\'s wallet, so use only a key the user gives for this purpose.' }
359
+ : {}),
360
+ fields: schema.filter(field => asString(field.key)).map(field => {
361
+ const onlyInModes = toStringArray(field.only_in_modes);
362
+ const type = asString(field.type);
363
+ const pattern = asString(field.pattern);
364
+ const help = htmlToText(field.help, FIELD_HELP_MAX);
365
+ const options = setupOptions(field);
366
+ const items = setupItems(field, true);
367
+ return {
368
+ key: asString(field.key) ?? '',
369
+ label: asString(field.label) ?? asString(field.key) ?? '',
370
+ ...(type ? { type } : {}),
371
+ required: field.required === true,
372
+ writable: writableSchemaField(field),
373
+ secret: field.encrypted === true || type === 'password',
374
+ ...(onlyInModes.length > 0 ? { onlyInModes } : {}),
375
+ ...(pattern ? { pattern } : {}),
376
+ ...(options.length > 0 ? { options } : {}),
377
+ ...(help ? { help } : {}),
378
+ ...(items.length > 0 ? { itemFields: items } : {}),
379
+ };
380
+ }),
381
+ };
382
+ }
383
+ // Wiro keeps a few credentials for itself (model routing, command lists); a
384
+ // user never fills them in.
385
+ export function isPlatformCredentialKey(key) {
386
+ return key.startsWith('sys-');
387
+ }
388
+ //# sourceMappingURL=agent-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-catalog.js","sourceRoot":"","sources":["../../src/utils/agent-catalog.ts"],"names":[],"mappings":"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"}