@wiro-ai/wiro-mcp 1.3.4 → 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 +12 -0
  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 +38 -1
  229. package/dist/utils/format.d.ts.map +1 -1
  230. package/dist/utils/format.js +162 -13
  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 +9 -6
  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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAe5C,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,KAAK,CAAyB;IAC9B,IAAI,CAA0B;IAEvC,YAAY,OAAe,EAAE,KAA6B,EAAE,IAA6B;QACvF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,IAA6B,EAAE,QAAgB;IAC7E,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;SAClC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC9E,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;AACvD,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,iBAAiB,CAAwB,IAAO,EAAE,QAAgB;IAChF,IAAI,IAAI,EAAE,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;SAC/B,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;SACzB,MAAM,CAAC,CAAC,IAAI,EAA2B,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC;IAClF,MAAM,IAAI,cAAc,CACtB,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,EAC/B,KAAK,EACL,CAAC,IAAI,IAAI,EAAE,CAA4B,CACxC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,KAAK,YAAY,cAAc;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC;IAC7E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,IAAqB;IAChE,OAAO,KAAK,YAAY,cAAc;WACjC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,yEAAyE;AACzE,SAAS,gBAAgB,CAAC,YAAoB;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7H,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC1D,OAAO,gGAAgG,CAAC;IAC1G,CAAC;IACD,yEAAyE;IACzE,mEAAmE;IACnE,IAAI,KAAK,YAAY,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,OAAO;YAAE,OAAO,kBAAkB,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;IACnE,CAAC;IACD,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,eAAe,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QAC7E,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc,EAAE,QAAQ,GAAG,CAAC;IACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACvD,OAAO,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,SAAiB;IACtD,OAAO,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,aAAa,CAAoC,KAAQ;IACvE,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAC5D,CAAC;AACT,CAAC"}
@@ -1,8 +1,26 @@
1
- import type { Task, ToolListItem, ToolParameterOption } from '../types.js';
1
+ import type { Task, ToolListItem, ToolParameterItem, ToolParameterOption } from '../types.js';
2
2
  export declare function toParameterOption(option: ToolParameterOption): {
3
3
  label: string;
4
4
  value: string;
5
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;
6
24
  export declare function formatTaskResult(task: Task): string;
7
25
  export declare function formatTaskSubmitted(taskid: string, tasktoken: string): string;
8
26
  export declare function formatTaskPending(params: {
@@ -13,6 +31,25 @@ export declare function formatTaskPending(params: {
13
31
  reason?: string;
14
32
  }): string;
15
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
+ };
16
53
  export declare function formatModelList(models: ToolListItem[], header?: string): string;
17
54
  export declare function formatModelSchema(model: ToolListItem): string;
18
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,EACZ,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;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,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,CAgE7D;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"}
@@ -6,6 +6,56 @@ export function toParameterOption(option) {
6
6
  const modelSlug = option.slugowner && option.slugproject ? `${option.slugowner}/${option.slugproject}` : undefined;
7
7
  return { label: String(option.label ?? option.text ?? option.name ?? modelSlug ?? value), value };
8
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
+ }
9
59
  export function formatTaskResult(task) {
10
60
  const lines = [];
11
61
  const requireCompleteTurn = task.status === 'task_postprocess_end'
@@ -30,6 +80,8 @@ export function formatTaskResult(task) {
30
80
  lines.push('');
31
81
  lines.push(`**Status:** ${task.status}`);
32
82
  lines.push(`**Task ID:** ${task.id}`);
83
+ if (task.socketaccesstoken)
84
+ lines.push(`**Task Token:** ${task.socketaccesstoken}`);
33
85
  if (task.modelslugowner && task.modelslugproject) {
34
86
  lines.push(`**Model:** \`${task.modelslugowner}/${task.modelslugproject}\``);
35
87
  }
@@ -45,9 +97,9 @@ export function formatTaskResult(task) {
45
97
  if (task.elapsedseconds) {
46
98
  lines.push(`**Duration:** ${task.elapsedseconds}s`);
47
99
  }
48
- if (task.totalcost && task.totalcost !== '0') {
49
- lines.push(`**Cost:** $${task.totalcost}`);
50
- }
100
+ const cost = formatTaskCost(task);
101
+ if (cost)
102
+ lines.push(`**Cost:** ${cost}`);
51
103
  if (hasInvalidProjection) {
52
104
  lines.push('');
53
105
  lines.push('### Response');
@@ -222,9 +274,9 @@ export function formatTaskList(tasks, total, start = 0) {
222
274
  lines.push(`- **Started:** ${task.starttime}`);
223
275
  if (task.elapsedseconds)
224
276
  lines.push(`- **Duration:** ${task.elapsedseconds}s`);
225
- if (task.totalcost && task.totalcost !== '0') {
226
- lines.push(`- **Cost:** $${task.totalcost}`);
227
- }
277
+ const cost = formatTaskCost(task);
278
+ if (cost)
279
+ lines.push(`- **Cost:** ${cost}`);
228
280
  const outputLinks = (task.outputs ?? [])
229
281
  .filter(output => output.url)
230
282
  .slice(0, 3);
@@ -236,6 +288,102 @@ export function formatTaskList(tasks, total, start = 0) {
236
288
  }
237
289
  return lines.join('\n');
238
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
+ }
239
387
  export function formatModelList(models, header) {
240
388
  if (models.length === 0)
241
389
  return 'No models found.';
@@ -245,7 +393,7 @@ export function formatModelList(models, header) {
245
393
  for (const model of models) {
246
394
  const slug = `${model.cleanslugowner}/${model.cleanslugproject}`;
247
395
  const cats = model.categories?.filter(c => c !== 'tool').join(', ') || '';
248
- lines.push(`### ${model.title}`);
396
+ lines.push(`### ${model.title || slug}`);
249
397
  lines.push(`- **Model:** \`${slug}\``);
250
398
  if (cats)
251
399
  lines.push(`- **Categories:** ${cats}`);
@@ -261,7 +409,7 @@ export function formatModelList(models, header) {
261
409
  export function formatModelSchema(model) {
262
410
  const lines = [];
263
411
  const slug = `${model.cleanslugowner}/${model.cleanslugproject}`;
264
- lines.push(`## ${model.title}`);
412
+ lines.push(`## ${model.title || slug}`);
265
413
  lines.push(`**Model:** \`${slug}\``);
266
414
  if (model.seodescription)
267
415
  lines.push(`**Description:** ${model.seodescription}`);
@@ -284,7 +432,7 @@ export function formatModelSchema(model) {
284
432
  }
285
433
  for (const param of group.items) {
286
434
  const required = param.required ? ' **(required)**' : '';
287
- const defaultVal = param.default ? ` (default: \`${param.default}\`)` : '';
435
+ const defaultVal = parameterFallbackText(param);
288
436
  lines.push(`- **\`${param.id}\`** (${param.type})${required}${defaultVal}`);
289
437
  if (param.label)
290
438
  lines.push(` ${param.label}`);
@@ -297,7 +445,7 @@ export function formatModelSchema(model) {
297
445
  if (param.type === 'fileinput')
298
446
  lines.push(` Pass a URL directly (e.g. \`${param.id}: "https://..."\`) or use \`${param.id}Url\` for the URL field.`);
299
447
  if (param.type === 'multifileinput')
300
- 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\`.`);
301
449
  if (param.type === 'combinefileinput')
302
450
  lines.push(` Pass an array of URLs directly: \`${param.id}: ["https://...", "https://..."]\`. No upload needed.`);
303
451
  if (param.type === 'json' || param.type === 'json-array')
@@ -309,8 +457,9 @@ export function formatModelSchema(model) {
309
457
  .join(', ');
310
458
  lines.push(` Options: ${optionValues}`);
311
459
  }
312
- if (param.type === 'range' && param.min != null && param.max != null) {
313
- 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}` : ''}`);
314
463
  }
315
464
  }
316
465
  lines.push('');
@@ -432,7 +581,7 @@ function formatDynamicPrice(dynamicprice) {
432
581
  }
433
582
  const min = entries[0];
434
583
  const max = entries[entries.length - 1];
435
- return `$${formatPrice(min.price)} – $${formatPrice(max.price)} / ${min.label}`;
584
+ return `$${formatPrice(min.price)} to $${formatPrice(max.price)} / ${min.label}`;
436
585
  }
437
586
  catch {
438
587
  return null;