@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-turns.js","sourceRoot":"","sources":["../../src/utils/agent-turns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ export interface ApiErrorItem {
2
+ code?: number | string;
3
+ message?: string;
4
+ }
5
+ export interface ApiEnvelope {
6
+ result?: boolean;
7
+ errors?: ApiErrorItem[];
8
+ }
9
+ export declare class ApiResultError extends Error {
10
+ readonly codes: Array<number | string>;
11
+ readonly body: Record<string, unknown>;
12
+ constructor(message: string, codes: Array<number | string>, body: Record<string, unknown>);
13
+ }
14
+ export declare function apiErrorMessage(body: ApiEnvelope | undefined, fallback: string): string;
15
+ /** Returns the body when `result` is true, otherwise throws ApiResultError. */
16
+ export declare function requireApiSuccess<T extends ApiEnvelope>(body: T, fallback: string): T;
17
+ /**
18
+ * True when a request may have reached Wiro and done its work even though no
19
+ * usable answer came back: a network failure, a timeout, or a 5xx/408/429.
20
+ * A result:false body or another 4xx is a clean refusal.
21
+ */
22
+ export declare function isOutcomeUnknown(error: unknown): boolean;
23
+ export declare function hasErrorCode(error: unknown, code: number | string): boolean;
24
+ export declare function errorText(error: unknown): string;
25
+ export declare function errorResult(error: unknown): {
26
+ content: {
27
+ type: "text";
28
+ text: string;
29
+ }[];
30
+ isError: boolean;
31
+ };
32
+ export declare function toNumber(value: unknown): number | null;
33
+ export declare function toInteger(value: unknown, fallback?: number): number;
34
+ export declare function asString(value: unknown): string | undefined;
35
+ export declare function isPlainObject(value: unknown): value is Record<string, unknown>;
36
+ /** Unix seconds (number or numeric string) to an ISO time, or undefined. */
37
+ export declare function unixToIso(value: unknown): string | undefined;
38
+ export declare function truncate(text: string, maxLength: number): string;
39
+ export declare function compactObject<T extends Record<string, unknown>>(value: T): T;
40
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAE3B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAM1F;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKvF;AAED,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAUrF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMxD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAG3E;AAcD,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAWhD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO;;;;;;EAKzC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAOtD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,SAAI,GAAG,MAAM,CAG9D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAI3D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE9E;AAED,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAI5D;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAI5E"}
@@ -0,0 +1,111 @@
1
+ import { WiroApiError } from '../client.js';
2
+ export class ApiResultError extends Error {
3
+ codes;
4
+ body;
5
+ constructor(message, codes, body) {
6
+ super(message);
7
+ this.name = 'ApiResultError';
8
+ this.codes = codes;
9
+ this.body = body;
10
+ }
11
+ }
12
+ export function apiErrorMessage(body, fallback) {
13
+ const messages = (body?.errors ?? [])
14
+ .map(error => (typeof error?.message === 'string' ? error.message.trim() : ''))
15
+ .filter(Boolean);
16
+ return [...new Set(messages)].join(', ') || fallback;
17
+ }
18
+ /** Returns the body when `result` is true, otherwise throws ApiResultError. */
19
+ export function requireApiSuccess(body, fallback) {
20
+ if (body?.result === true)
21
+ return body;
22
+ const codes = (body?.errors ?? [])
23
+ .map(error => error?.code)
24
+ .filter((code) => code !== undefined && code !== null);
25
+ throw new ApiResultError(apiErrorMessage(body, fallback), codes, (body ?? {}));
26
+ }
27
+ /**
28
+ * True when a request may have reached Wiro and done its work even though no
29
+ * usable answer came back: a network failure, a timeout, or a 5xx/408/429.
30
+ * A result:false body or another 4xx is a clean refusal.
31
+ */
32
+ export function isOutcomeUnknown(error) {
33
+ if (error instanceof ApiResultError)
34
+ return false;
35
+ if (error instanceof WiroApiError) {
36
+ return error.status >= 500 || error.status === 408 || error.status === 429;
37
+ }
38
+ return true;
39
+ }
40
+ export function hasErrorCode(error, code) {
41
+ return error instanceof ApiResultError
42
+ && error.codes.some(candidate => String(candidate) === String(code));
43
+ }
44
+ /** The first error message of a Wiro JSON answer, if the body is one. */
45
+ function bodyErrorMessage(responseBody) {
46
+ try {
47
+ const parsed = JSON.parse(responseBody);
48
+ const errors = isPlainObject(parsed) && Array.isArray(parsed.errors) ? parsed.errors : [];
49
+ const first = errors.find(entry => isPlainObject(entry) && typeof entry.message === 'string' && entry.message.trim() !== '');
50
+ return isPlainObject(first) ? String(first.message).trim() : undefined;
51
+ }
52
+ catch {
53
+ return undefined;
54
+ }
55
+ }
56
+ export function errorText(error) {
57
+ if (error instanceof WiroApiError && error.status === 413) {
58
+ return 'The request was too large for the Wiro API (HTTP 413). A file is probably over the size limit.';
59
+ }
60
+ // Refusals such as a team key whose creator left the team arrive as HTTP
61
+ // errors with Wiro's own sentence in the body; show that sentence.
62
+ if (error instanceof WiroApiError && !error.hint) {
63
+ const message = bodyErrorMessage(error.responseBody);
64
+ if (message)
65
+ return `Wiro API error ${error.status}: ${message}`;
66
+ }
67
+ return error instanceof Error ? error.message : String(error);
68
+ }
69
+ export function errorResult(error) {
70
+ return {
71
+ content: [{ type: 'text', text: `## Error\n\n${errorText(error)}` }],
72
+ isError: true,
73
+ };
74
+ }
75
+ export function toNumber(value) {
76
+ if (typeof value === 'number')
77
+ return Number.isFinite(value) ? value : null;
78
+ if (typeof value === 'string' && value.trim() !== '') {
79
+ const parsed = Number(value);
80
+ return Number.isFinite(parsed) ? parsed : null;
81
+ }
82
+ return null;
83
+ }
84
+ export function toInteger(value, fallback = 0) {
85
+ const parsed = toNumber(value);
86
+ return parsed === null ? fallback : Math.trunc(parsed);
87
+ }
88
+ export function asString(value) {
89
+ if (typeof value === 'string')
90
+ return value;
91
+ if (typeof value === 'number' && Number.isFinite(value))
92
+ return String(value);
93
+ return undefined;
94
+ }
95
+ export function isPlainObject(value) {
96
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
97
+ }
98
+ /** Unix seconds (number or numeric string) to an ISO time, or undefined. */
99
+ export function unixToIso(value) {
100
+ const seconds = toNumber(value);
101
+ if (seconds === null || seconds <= 0)
102
+ return undefined;
103
+ return new Date(seconds * 1000).toISOString();
104
+ }
105
+ export function truncate(text, maxLength) {
106
+ return text.length > maxLength ? `${text.slice(0, maxLength)}...` : text;
107
+ }
108
+ export function compactObject(value) {
109
+ return Object.fromEntries(Object.entries(value).filter(([, entry]) => entry !== undefined));
110
+ }
111
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,26 @@
1
- import type { Task, ToolListItem } from '../types.js';
1
+ import type { Task, ToolListItem, ToolParameterItem, ToolParameterOption } from '../types.js';
2
+ export declare function toParameterOption(option: ToolParameterOption): {
3
+ label: string;
4
+ value: string;
5
+ };
6
+ /**
7
+ * A successful task that Wiro has not billed yet. It reads as finished a moment
8
+ * before its charge is recorded, so only the list price is known.
9
+ */
10
+ export declare function awaitingCharge(task: Task): boolean;
11
+ /**
12
+ * A cancelled task that no worker ever took, so it never ran and is never
13
+ * charged. A row without accepttime is not counted as one.
14
+ */
15
+ export declare function cancelledWhileQueued(task: Task): boolean;
16
+ /**
17
+ * A task's cost for the user: what Wiro charged once it billed the task, with
18
+ * the list price beside it when a discount made them differ. Before Wiro bills
19
+ * a successful task, the list price, marked as such. A cancelled task can still
20
+ * be charged once work it had already started ends, so $0 there is only the
21
+ * amount so far, unless it was cancelled while queued.
22
+ */
23
+ export declare function formatTaskCost(task: Task): string | null;
2
24
  export declare function formatTaskResult(task: Task): string;
3
25
  export declare function formatTaskSubmitted(taskid: string, tasktoken: string): string;
4
26
  export declare function formatTaskPending(params: {
@@ -9,6 +31,25 @@ export declare function formatTaskPending(params: {
9
31
  reason?: string;
10
32
  }): string;
11
33
  export declare function formatTaskList(tasks: Task[], total: number, start?: number): string;
34
+ /**
35
+ * The catalog value of a parameter: a checkbox's state as "true" or "false"
36
+ * (from Tool/Detail's `value`, else `defaultvalue`), otherwise `defaultvalue`,
37
+ * then `value`. Arrays are JSON text; empty means none.
38
+ */
39
+ export declare function parameterDefault(item: ToolParameterItem): string | undefined;
40
+ export declare function isSampleParameter(item: ToolParameterItem): boolean;
41
+ /** What a left-out parameter gets: `default` in a run, `sample` only in a workflow step. */
42
+ export declare function parameterFallback(item: ToolParameterItem): {
43
+ default?: string;
44
+ sample?: string;
45
+ };
46
+ /** How the parameter list shows what a left-out parameter gets. */
47
+ export declare function parameterFallbackText(item: ToolParameterItem): string;
48
+ export declare function parameterRange(item: ToolParameterItem): {
49
+ min?: number;
50
+ max?: number;
51
+ step?: number;
52
+ };
12
53
  export declare function formatModelList(models: ToolListItem[], header?: string): string;
13
54
  export declare function formatModelSchema(model: ToolListItem): string;
14
55
  export declare function formatPricing(model: ToolListItem): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EAGJ,YAAY,EACb,MAAM,aAAa,CAAC;AAMrB,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CA6HnD;AAoED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAM7E;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAgBT;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,IAAI,EAAE,EACb,KAAK,EAAE,MAAM,EACb,KAAK,SAAI,GACR,MAAM,CAoCR;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAoB/E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CA6D7D;AA4ED,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAahE;AAoCD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMlD"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EAGJ,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAQrB,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAI/F;AAQD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAIlD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAKxD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAexD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CA6HnD;AAoED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAM7E;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAgBT;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,IAAI,EAAE,EACb,KAAK,EAAE,MAAM,EACb,KAAK,SAAI,GACR,MAAM,CAmCR;AAqBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAS5E;AAYD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAGlE;AAED,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAQhG;AAED,mEAAmE;AACnE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAerE;AAOD,wBAAgB,cAAc,CAAC,IAAI,EAAE,iBAAiB,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAOrG;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAoB/E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAiE7D;AA4ED,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAahE;AAoCD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMlD"}
@@ -1,4 +1,61 @@
1
1
  import { isToolCallSegment, normalizeTaskRawContent, } from './task-segments.js';
2
+ // The value Wiro accepts for an option, and a label to show next to it. Wiro
3
+ // checks an option's value, or its id when it has no value.
4
+ export function toParameterOption(option) {
5
+ const value = String(option.value ?? option.id ?? '');
6
+ const modelSlug = option.slugowner && option.slugproject ? `${option.slugowner}/${option.slugproject}` : undefined;
7
+ return { label: String(option.label ?? option.text ?? option.name ?? modelSlug ?? value), value };
8
+ }
9
+ function usdAmount(value) {
10
+ if (value === undefined || value === null || value === '')
11
+ return null;
12
+ const parsed = Number(value);
13
+ return Number.isFinite(parsed) ? parsed : null;
14
+ }
15
+ /**
16
+ * A successful task that Wiro has not billed yet. It reads as finished a moment
17
+ * before its charge is recorded, so only the list price is known.
18
+ */
19
+ export function awaitingCharge(task) {
20
+ const list = usdAmount(task.totalcost);
21
+ return task.status === 'task_postprocess_end' && task.pexit === '0'
22
+ && usdAmount(task.chargedcost) === null && list !== null && list > 0;
23
+ }
24
+ /**
25
+ * A cancelled task that no worker ever took, so it never ran and is never
26
+ * charged. A row without accepttime is not counted as one.
27
+ */
28
+ export function cancelledWhileQueued(task) {
29
+ const accepted = task.accepttime;
30
+ return task.status === 'task_cancel'
31
+ && accepted !== undefined && accepted !== null && accepted !== ''
32
+ && Number(accepted) === 0;
33
+ }
34
+ /**
35
+ * A task's cost for the user: what Wiro charged once it billed the task, with
36
+ * the list price beside it when a discount made them differ. Before Wiro bills
37
+ * a successful task, the list price, marked as such. A cancelled task can still
38
+ * be charged once work it had already started ends, so $0 there is only the
39
+ * amount so far, unless it was cancelled while queued.
40
+ */
41
+ export function formatTaskCost(task) {
42
+ const list = usdAmount(task.totalcost);
43
+ const charged = usdAmount(task.chargedcost);
44
+ if (cancelledWhileQueued(task) && !(charged !== null && charged > 0)) {
45
+ return '$0 (cancelled while queued, not charged)';
46
+ }
47
+ if (awaitingCharge(task))
48
+ return `$${list} list price; the charged amount is not recorded yet`;
49
+ if (charged !== null) {
50
+ if (charged === 0)
51
+ return task.status === 'task_cancel' ? 'no charge recorded yet' : '$0 (not charged)';
52
+ if (list !== null && list > 0 && Math.abs(list - charged) > 1e-9) {
53
+ return `$${charged} charged (list price $${list})`;
54
+ }
55
+ return `$${charged}`;
56
+ }
57
+ return list !== null && list > 0 ? `$${list}` : null;
58
+ }
2
59
  export function formatTaskResult(task) {
3
60
  const lines = [];
4
61
  const requireCompleteTurn = task.status === 'task_postprocess_end'
@@ -23,6 +80,8 @@ export function formatTaskResult(task) {
23
80
  lines.push('');
24
81
  lines.push(`**Status:** ${task.status}`);
25
82
  lines.push(`**Task ID:** ${task.id}`);
83
+ if (task.socketaccesstoken)
84
+ lines.push(`**Task Token:** ${task.socketaccesstoken}`);
26
85
  if (task.modelslugowner && task.modelslugproject) {
27
86
  lines.push(`**Model:** \`${task.modelslugowner}/${task.modelslugproject}\``);
28
87
  }
@@ -38,9 +97,9 @@ export function formatTaskResult(task) {
38
97
  if (task.elapsedseconds) {
39
98
  lines.push(`**Duration:** ${task.elapsedseconds}s`);
40
99
  }
41
- if (task.totalcost && task.totalcost !== '0') {
42
- lines.push(`**Cost:** $${task.totalcost}`);
43
- }
100
+ const cost = formatTaskCost(task);
101
+ if (cost)
102
+ lines.push(`**Cost:** ${cost}`);
44
103
  if (hasInvalidProjection) {
45
104
  lines.push('');
46
105
  lines.push('### Response');
@@ -215,9 +274,9 @@ export function formatTaskList(tasks, total, start = 0) {
215
274
  lines.push(`- **Started:** ${task.starttime}`);
216
275
  if (task.elapsedseconds)
217
276
  lines.push(`- **Duration:** ${task.elapsedseconds}s`);
218
- if (task.totalcost && task.totalcost !== '0') {
219
- lines.push(`- **Cost:** $${task.totalcost}`);
220
- }
277
+ const cost = formatTaskCost(task);
278
+ if (cost)
279
+ lines.push(`- **Cost:** ${cost}`);
221
280
  const outputLinks = (task.outputs ?? [])
222
281
  .filter(output => output.url)
223
282
  .slice(0, 3);
@@ -229,6 +288,102 @@ export function formatTaskList(tasks, total, start = 0) {
229
288
  }
230
289
  return lines.join('\n');
231
290
  }
291
+ /** A number from Tool/Detail's text fields, where "" means none. */
292
+ function rangeNumber(value) {
293
+ if (value === undefined || value === null || value === '')
294
+ return undefined;
295
+ const parsed = Number(value);
296
+ return Number.isFinite(parsed) ? parsed : undefined;
297
+ }
298
+ // A checkbox's catalog value means on or off. true, 1, yes, on and any other
299
+ // non-empty text are on (some models keep a command-line flag such as
300
+ // "--do_sample" there); "", false, 0, no, off, null and undefined are off.
301
+ const CHECKBOX_OFF_VALUES = new Set(['', 'false', '0', 'no', 'off', 'null', 'undefined']);
302
+ function checkboxIsOn(value) {
303
+ if (typeof value === 'boolean')
304
+ return value;
305
+ if (typeof value === 'number')
306
+ return value !== 0;
307
+ if (typeof value !== 'string')
308
+ return false;
309
+ return !CHECKBOX_OFF_VALUES.has(value.trim().toLowerCase());
310
+ }
311
+ /**
312
+ * The catalog value of a parameter: a checkbox's state as "true" or "false"
313
+ * (from Tool/Detail's `value`, else `defaultvalue`), otherwise `defaultvalue`,
314
+ * then `value`. Arrays are JSON text; empty means none.
315
+ */
316
+ export function parameterDefault(item) {
317
+ if (item.type === 'checkbox') {
318
+ const initial = Object.prototype.hasOwnProperty.call(item, 'value') ? item.value : item.defaultvalue;
319
+ return checkboxIsOn(initial) ? 'true' : 'false';
320
+ }
321
+ const raw = item.defaultvalue ?? item.value ?? item.default;
322
+ if (raw === undefined || raw === null || raw === '')
323
+ return undefined;
324
+ if (Array.isArray(raw))
325
+ return raw.length > 0 ? JSON.stringify(raw) : undefined;
326
+ return typeof raw === 'object' ? JSON.stringify(raw) : String(raw);
327
+ }
328
+ // A run fills an optional parameter left out of its request with the catalog
329
+ // value, except these, whose catalog value is a sample shown on the model's page:
330
+ // file inputs, ids containing "input", the prompt and the structured LLM fields.
331
+ // A run refuses a required parameter that is left out before it fills anything.
332
+ // A workflow step that leaves out any of them gets the catalog value. Two ids
333
+ // follow their own rule: a run picks a random seed when `seed` is left out or 0,
334
+ // and `parallel_tool_calls` is true whenever `tools` are sent.
335
+ const SAMPLE_TYPES = new Set(['fileinput', 'multifileinput', 'multifileinputdrop', 'combinefileinput', 'fileexplorer']);
336
+ const SAMPLE_IDS = new Set(['prompt', 'messages', 'tools', 'tool_choice', 'previousTaskToken', 'toolOutputs', 'response_format']);
337
+ export function isSampleParameter(item) {
338
+ const id = String(item.id);
339
+ return SAMPLE_TYPES.has(String(item.type)) || id.includes('input') || SAMPLE_IDS.has(id);
340
+ }
341
+ /** What a left-out parameter gets: `default` in a run, `sample` only in a workflow step. */
342
+ export function parameterFallback(item) {
343
+ const id = String(item.id);
344
+ if (id === 'parallel_tool_calls')
345
+ return { default: 'true' };
346
+ const value = parameterDefault(item);
347
+ if (value === undefined)
348
+ return {};
349
+ if (id === 'seed')
350
+ return Number(value) === 0 ? {} : { sample: value };
351
+ const required = item.required === true || String(item.required) === 'true';
352
+ return !required && !isSampleParameter(item) ? { default: value } : { sample: value };
353
+ }
354
+ /** How the parameter list shows what a left-out parameter gets. */
355
+ export function parameterFallbackText(item) {
356
+ const id = String(item.id);
357
+ const { default: value, sample } = parameterFallback(item);
358
+ const shown = (text) => (text.length > 120 ? `${text.slice(0, 120)}...` : text);
359
+ if (id === 'parallel_tool_calls')
360
+ return ' (default: `true` when `tools` are sent)';
361
+ if (id === 'seed') {
362
+ return ` (a run picks a random seed when it is left out or 0${sample !== undefined
363
+ ? `; a workflow step that leaves it out gets \`${shown(sample)}\``
364
+ : ''})`;
365
+ }
366
+ if (value !== undefined)
367
+ return ` (default: \`${shown(value)}\`)`;
368
+ if (sample === undefined)
369
+ return '';
370
+ return /\/sampleinputs\//.test(sample)
371
+ ? ' (sample files on the model\'s page, used only by a workflow step that leaves it out)'
372
+ : ` (sample: \`${shown(sample)}\`, used only by a workflow step that leaves it out)`;
373
+ }
374
+ // Only number and float parameters get a range, as in the run form, which
375
+ // draws a slider only for those. Bounds on other types, such as 0 to 0 on a
376
+ // text or select field, are not limits, so they get none.
377
+ const RANGE_TYPES = new Set(['number', 'float', 'range']);
378
+ export function parameterRange(item) {
379
+ if (!RANGE_TYPES.has(String(item.type)))
380
+ return {};
381
+ return {
382
+ min: rangeNumber(item.minvalue) ?? rangeNumber(item.min),
383
+ max: rangeNumber(item.maxvalue) ?? rangeNumber(item.max),
384
+ step: rangeNumber(item.incrementby) ?? rangeNumber(item.step),
385
+ };
386
+ }
232
387
  export function formatModelList(models, header) {
233
388
  if (models.length === 0)
234
389
  return 'No models found.';
@@ -238,7 +393,7 @@ export function formatModelList(models, header) {
238
393
  for (const model of models) {
239
394
  const slug = `${model.cleanslugowner}/${model.cleanslugproject}`;
240
395
  const cats = model.categories?.filter(c => c !== 'tool').join(', ') || '';
241
- lines.push(`### ${model.title}`);
396
+ lines.push(`### ${model.title || slug}`);
242
397
  lines.push(`- **Model:** \`${slug}\``);
243
398
  if (cats)
244
399
  lines.push(`- **Categories:** ${cats}`);
@@ -254,7 +409,7 @@ export function formatModelList(models, header) {
254
409
  export function formatModelSchema(model) {
255
410
  const lines = [];
256
411
  const slug = `${model.cleanslugowner}/${model.cleanslugproject}`;
257
- lines.push(`## ${model.title}`);
412
+ lines.push(`## ${model.title || slug}`);
258
413
  lines.push(`**Model:** \`${slug}\``);
259
414
  if (model.seodescription)
260
415
  lines.push(`**Description:** ${model.seodescription}`);
@@ -277,7 +432,7 @@ export function formatModelSchema(model) {
277
432
  }
278
433
  for (const param of group.items) {
279
434
  const required = param.required ? ' **(required)**' : '';
280
- const defaultVal = param.default ? ` (default: \`${param.default}\`)` : '';
435
+ const defaultVal = parameterFallbackText(param);
281
436
  lines.push(`- **\`${param.id}\`** (${param.type})${required}${defaultVal}`);
282
437
  if (param.label)
283
438
  lines.push(` ${param.label}`);
@@ -290,17 +445,21 @@ export function formatModelSchema(model) {
290
445
  if (param.type === 'fileinput')
291
446
  lines.push(` Pass a URL directly (e.g. \`${param.id}: "https://..."\`) or use \`${param.id}Url\` for the URL field.`);
292
447
  if (param.type === 'multifileinput')
293
- lines.push(` Pass URLs via \`${param.id}Url\` (comma-separated) or upload files in \`${param.id}\`.`);
448
+ lines.push(` Pass the URLs comma-separated in \`${param.id.replace('Multiple', '')}UrlMultiple\`.`);
294
449
  if (param.type === 'combinefileinput')
295
450
  lines.push(` Pass an array of URLs directly: \`${param.id}: ["https://...", "https://..."]\`. No upload needed.`);
296
451
  if (param.type === 'json' || param.type === 'json-array')
297
452
  lines.push(` Pass this as a structured JSON value inside the ordinary \`params\` object.`);
298
453
  if (param.options?.length) {
299
- const optionValues = param.options.map(o => `\`${o.value}\``).join(', ');
454
+ const optionValues = param.options
455
+ .map(toParameterOption)
456
+ .map(o => (o.label === o.value ? `\`${o.value}\`` : `\`${o.value}\` (${o.label})`))
457
+ .join(', ');
300
458
  lines.push(` Options: ${optionValues}`);
301
459
  }
302
- if (param.type === 'range' && param.min != null && param.max != null) {
303
- lines.push(` Range: ${param.min} - ${param.max}${param.step ? `, step: ${param.step}` : ''}`);
460
+ const range = parameterRange(param);
461
+ if (range.min !== undefined || range.max !== undefined) {
462
+ lines.push(` Range: ${range.min ?? 'no minimum'} to ${range.max ?? 'no maximum'}${range.step ? `, step ${range.step}` : ''}`);
304
463
  }
305
464
  }
306
465
  lines.push('');
@@ -422,7 +581,7 @@ function formatDynamicPrice(dynamicprice) {
422
581
  }
423
582
  const min = entries[0];
424
583
  const max = entries[entries.length - 1];
425
- return `$${formatPrice(min.price)} – $${formatPrice(max.price)} / ${min.label}`;
584
+ return `$${formatPrice(min.price)} to $${formatPrice(max.price)} / ${min.label}`;
426
585
  }
427
586
  catch {
428
587
  return null;