@aexhq/sdk 0.46.5-canary → 0.50.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 (337) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +38 -0
  3. package/README.md +23 -31
  4. package/dist/client/aex.d.ts +33 -0
  5. package/dist/client/aex.js +98 -0
  6. package/dist/client/aex.js.map +1 -0
  7. package/dist/client/credentials.d.ts +25 -0
  8. package/dist/client/credentials.js +97 -0
  9. package/dist/client/credentials.js.map +1 -0
  10. package/dist/client/routing.d.ts +7 -0
  11. package/dist/client/routing.js +29 -0
  12. package/dist/client/routing.js.map +1 -0
  13. package/dist/downloads/download.d.ts +25 -0
  14. package/dist/downloads/download.js +53 -0
  15. package/dist/downloads/download.js.map +1 -0
  16. package/dist/generated/errors.d.ts +12 -0
  17. package/dist/generated/errors.js +81 -0
  18. package/dist/generated/errors.js.map +1 -0
  19. package/dist/generated/resources.d.ts +730 -0
  20. package/dist/generated/resources.js +606 -0
  21. package/dist/generated/resources.js.map +1 -0
  22. package/dist/generated/routes.d.ts +42 -0
  23. package/dist/generated/routes.js +2101 -0
  24. package/dist/generated/routes.js.map +1 -0
  25. package/dist/index.d.ts +20 -50
  26. package/dist/index.js +11 -62
  27. package/dist/index.js.map +1 -1
  28. package/dist/observations/stream.d.ts +1 -0
  29. package/dist/observations/stream.js +18 -0
  30. package/dist/observations/stream.js.map +1 -0
  31. package/dist/transport/errors.d.ts +60 -0
  32. package/dist/transport/errors.js +107 -0
  33. package/dist/transport/errors.js.map +1 -0
  34. package/dist/transport/pagination.d.ts +8 -0
  35. package/dist/transport/pagination.js +34 -0
  36. package/dist/transport/pagination.js.map +1 -0
  37. package/dist/transport/retry.d.ts +21 -0
  38. package/dist/transport/retry.js +37 -0
  39. package/dist/transport/retry.js.map +1 -0
  40. package/dist/transport/transport.d.ts +25 -0
  41. package/dist/transport/transport.js +28 -0
  42. package/dist/transport/transport.js.map +1 -0
  43. package/package.json +63 -30
  44. package/dist/_contracts/account-operations.d.ts +0 -101
  45. package/dist/_contracts/account-operations.js +0 -242
  46. package/dist/_contracts/account-types.d.ts +0 -461
  47. package/dist/_contracts/account-types.js +0 -1
  48. package/dist/_contracts/api-key.d.ts +0 -61
  49. package/dist/_contracts/api-key.js +0 -101
  50. package/dist/_contracts/api-routes.d.ts +0 -20
  51. package/dist/_contracts/api-routes.js +0 -109
  52. package/dist/_contracts/archive-limits.d.ts +0 -3
  53. package/dist/_contracts/archive-limits.js +0 -23
  54. package/dist/_contracts/asset-authoring.d.ts +0 -22
  55. package/dist/_contracts/asset-authoring.js +0 -106
  56. package/dist/_contracts/asset-bundle.d.ts +0 -64
  57. package/dist/_contracts/asset-bundle.js +0 -263
  58. package/dist/_contracts/asset-upload-helper.d.ts +0 -31
  59. package/dist/_contracts/asset-upload-helper.js +0 -84
  60. package/dist/_contracts/billing-admission.d.ts +0 -29
  61. package/dist/_contracts/billing-admission.js +0 -28
  62. package/dist/_contracts/bundle-manifest.d.ts +0 -89
  63. package/dist/_contracts/bundle-manifest.js +0 -158
  64. package/dist/_contracts/canonical-sha256.d.ts +0 -8
  65. package/dist/_contracts/canonical-sha256.js +0 -8
  66. package/dist/_contracts/connection-ticket.d.ts +0 -22
  67. package/dist/_contracts/connection-ticket.js +0 -54
  68. package/dist/_contracts/continuation-event.d.ts +0 -31
  69. package/dist/_contracts/continuation-event.js +0 -6
  70. package/dist/_contracts/contract-parse-error.d.ts +0 -12
  71. package/dist/_contracts/contract-parse-error.js +0 -51
  72. package/dist/_contracts/error-codes.d.ts +0 -26
  73. package/dist/_contracts/error-codes.js +0 -116
  74. package/dist/_contracts/error-factory.d.ts +0 -32
  75. package/dist/_contracts/error-factory.js +0 -174
  76. package/dist/_contracts/event-envelope.d.ts +0 -471
  77. package/dist/_contracts/event-envelope.js +0 -501
  78. package/dist/_contracts/event-stream-client.d.ts +0 -122
  79. package/dist/_contracts/event-stream-client.js +0 -445
  80. package/dist/_contracts/event-view.d.ts +0 -44
  81. package/dist/_contracts/event-view.js +0 -69
  82. package/dist/_contracts/failure-class.d.ts +0 -29
  83. package/dist/_contracts/failure-class.js +0 -73
  84. package/dist/_contracts/http.d.ts +0 -135
  85. package/dist/_contracts/http.js +0 -434
  86. package/dist/_contracts/ids.d.ts +0 -66
  87. package/dist/_contracts/ids.js +0 -119
  88. package/dist/_contracts/index.d.ts +0 -42
  89. package/dist/_contracts/index.js +0 -52
  90. package/dist/_contracts/internal.d.ts +0 -55
  91. package/dist/_contracts/internal.js +0 -113
  92. package/dist/_contracts/models.d.ts +0 -30
  93. package/dist/_contracts/models.js +0 -28
  94. package/dist/_contracts/operation-core.d.ts +0 -36
  95. package/dist/_contracts/operation-core.js +0 -70
  96. package/dist/_contracts/operations.d.ts +0 -218
  97. package/dist/_contracts/operations.js +0 -1496
  98. package/dist/_contracts/otlp-projection.d.ts +0 -78
  99. package/dist/_contracts/otlp-projection.js +0 -171
  100. package/dist/_contracts/post-hook.d.ts +0 -31
  101. package/dist/_contracts/post-hook.js +0 -61
  102. package/dist/_contracts/provider-fault.d.ts +0 -34
  103. package/dist/_contracts/provider-fault.js +0 -68
  104. package/dist/_contracts/retry-core.d.ts +0 -29
  105. package/dist/_contracts/retry-core.js +0 -79
  106. package/dist/_contracts/runner-event.d.ts +0 -117
  107. package/dist/_contracts/runner-event.js +0 -172
  108. package/dist/_contracts/runtime-kind.d.ts +0 -60
  109. package/dist/_contracts/runtime-kind.js +0 -70
  110. package/dist/_contracts/runtime-manifest.d.ts +0 -121
  111. package/dist/_contracts/runtime-manifest.js +0 -83
  112. package/dist/_contracts/runtime-security-profile.d.ts +0 -26
  113. package/dist/_contracts/runtime-security-profile.js +0 -73
  114. package/dist/_contracts/runtime-sizes.d.ts +0 -104
  115. package/dist/_contracts/runtime-sizes.js +0 -111
  116. package/dist/_contracts/runtime-types.d.ts +0 -618
  117. package/dist/_contracts/runtime-types.js +0 -58
  118. package/dist/_contracts/schemas/asset-bundle.d.ts +0 -70
  119. package/dist/_contracts/schemas/asset-bundle.js +0 -107
  120. package/dist/_contracts/schemas/asset-ref.d.ts +0 -61
  121. package/dist/_contracts/schemas/asset-ref.js +0 -118
  122. package/dist/_contracts/schemas/bundle-manifest.d.ts +0 -66
  123. package/dist/_contracts/schemas/bundle-manifest.js +0 -77
  124. package/dist/_contracts/schemas/index.d.ts +0 -32
  125. package/dist/_contracts/schemas/index.js +0 -30
  126. package/dist/_contracts/schemas/mcp-server.d.ts +0 -99
  127. package/dist/_contracts/schemas/mcp-server.js +0 -209
  128. package/dist/_contracts/schemas/models.d.ts +0 -29
  129. package/dist/_contracts/schemas/models.js +0 -51
  130. package/dist/_contracts/schemas/numeric.d.ts +0 -18
  131. package/dist/_contracts/schemas/numeric.js +0 -28
  132. package/dist/_contracts/schemas/post-hook.d.ts +0 -45
  133. package/dist/_contracts/schemas/post-hook.js +0 -68
  134. package/dist/_contracts/schemas/response-assets.d.ts +0 -75
  135. package/dist/_contracts/schemas/response-assets.js +0 -81
  136. package/dist/_contracts/schemas/response-billing.d.ts +0 -208
  137. package/dist/_contracts/schemas/response-billing.js +0 -139
  138. package/dist/_contracts/schemas/response-common.d.ts +0 -132
  139. package/dist/_contracts/schemas/response-common.js +0 -162
  140. package/dist/_contracts/schemas/response-identity.d.ts +0 -648
  141. package/dist/_contracts/schemas/response-identity.js +0 -131
  142. package/dist/_contracts/schemas/response-mcp-servers.d.ts +0 -51
  143. package/dist/_contracts/schemas/response-mcp-servers.js +0 -32
  144. package/dist/_contracts/schemas/response-secrets.d.ts +0 -50
  145. package/dist/_contracts/schemas/response-secrets.js +0 -32
  146. package/dist/_contracts/schemas/response-sessions-internal.d.ts +0 -200
  147. package/dist/_contracts/schemas/response-sessions-internal.js +0 -142
  148. package/dist/_contracts/schemas/response-sessions.d.ts +0 -1598
  149. package/dist/_contracts/schemas/response-sessions.js +0 -377
  150. package/dist/_contracts/schemas/response-webhooks.d.ts +0 -76
  151. package/dist/_contracts/schemas/response-webhooks.js +0 -42
  152. package/dist/_contracts/schemas/response-workspace.d.ts +0 -225
  153. package/dist/_contracts/schemas/response-workspace.js +0 -99
  154. package/dist/_contracts/schemas/runtime-kind.d.ts +0 -31
  155. package/dist/_contracts/schemas/runtime-kind.js +0 -29
  156. package/dist/_contracts/schemas/runtime-security-profile.d.ts +0 -28
  157. package/dist/_contracts/schemas/runtime-security-profile.js +0 -26
  158. package/dist/_contracts/schemas/runtime-sizes.d.ts +0 -70
  159. package/dist/_contracts/schemas/runtime-sizes.js +0 -127
  160. package/dist/_contracts/schemas/session-limits.d.ts +0 -34
  161. package/dist/_contracts/schemas/session-limits.js +0 -39
  162. package/dist/_contracts/schemas/session-machine.d.ts +0 -23
  163. package/dist/_contracts/schemas/session-machine.js +0 -24
  164. package/dist/_contracts/schemas/session-request-config.d.ts +0 -58
  165. package/dist/_contracts/schemas/session-request-config.js +0 -134
  166. package/dist/_contracts/schemas/session-webhook.d.ts +0 -11
  167. package/dist/_contracts/schemas/session-webhook.js +0 -38
  168. package/dist/_contracts/schemas/side-effect-audit.d.ts +0 -98
  169. package/dist/_contracts/schemas/side-effect-audit.js +0 -102
  170. package/dist/_contracts/schemas/submission-assets.d.ts +0 -117
  171. package/dist/_contracts/schemas/submission-assets.js +0 -147
  172. package/dist/_contracts/schemas/submission-body.d.ts +0 -251
  173. package/dist/_contracts/schemas/submission-body.js +0 -378
  174. package/dist/_contracts/schemas/submission-environment.d.ts +0 -79
  175. package/dist/_contracts/schemas/submission-environment.js +0 -179
  176. package/dist/_contracts/schemas/submission-request.d.ts +0 -158
  177. package/dist/_contracts/schemas/submission-request.js +0 -49
  178. package/dist/_contracts/schemas/submission-secrets.d.ts +0 -47
  179. package/dist/_contracts/schemas/submission-secrets.js +0 -108
  180. package/dist/_contracts/schemas/wire.d.ts +0 -118
  181. package/dist/_contracts/schemas/wire.js +0 -171
  182. package/dist/_contracts/schemas/workspace-resources.d.ts +0 -50
  183. package/dist/_contracts/schemas/workspace-resources.js +0 -87
  184. package/dist/_contracts/sdk-errors.d.ts +0 -212
  185. package/dist/_contracts/sdk-errors.js +0 -313
  186. package/dist/_contracts/sdk-secrets.d.ts +0 -67
  187. package/dist/_contracts/sdk-secrets.js +0 -427
  188. package/dist/_contracts/session-archive.d.ts +0 -16
  189. package/dist/_contracts/session-archive.js +0 -92
  190. package/dist/_contracts/session-artifacts.d.ts +0 -189
  191. package/dist/_contracts/session-artifacts.js +0 -264
  192. package/dist/_contracts/session-config.d.ts +0 -373
  193. package/dist/_contracts/session-config.js +0 -562
  194. package/dist/_contracts/session-cost-types.d.ts +0 -211
  195. package/dist/_contracts/session-cost-types.js +0 -69
  196. package/dist/_contracts/session-cost.d.ts +0 -8
  197. package/dist/_contracts/session-cost.js +0 -582
  198. package/dist/_contracts/session-custody.d.ts +0 -165
  199. package/dist/_contracts/session-custody.js +0 -345
  200. package/dist/_contracts/session-file-query.d.ts +0 -14
  201. package/dist/_contracts/session-file-query.js +0 -178
  202. package/dist/_contracts/session-record.d.ts +0 -112
  203. package/dist/_contracts/session-record.js +0 -165
  204. package/dist/_contracts/session-retention.d.ts +0 -201
  205. package/dist/_contracts/session-retention.js +0 -450
  206. package/dist/_contracts/side-effect-audit.d.ts +0 -126
  207. package/dist/_contracts/side-effect-audit.js +0 -520
  208. package/dist/_contracts/sse.d.ts +0 -74
  209. package/dist/_contracts/sse.js +0 -227
  210. package/dist/_contracts/stable.d.ts +0 -45
  211. package/dist/_contracts/stable.js +0 -62
  212. package/dist/_contracts/status.d.ts +0 -25
  213. package/dist/_contracts/status.js +0 -57
  214. package/dist/_contracts/submission-limits.d.ts +0 -61
  215. package/dist/_contracts/submission-limits.js +0 -60
  216. package/dist/_contracts/submission.d.ts +0 -547
  217. package/dist/_contracts/submission.js +0 -812
  218. package/dist/_contracts/suggest.d.ts +0 -15
  219. package/dist/_contracts/suggest.js +0 -53
  220. package/dist/_contracts/testing/response-bindings.d.ts +0 -45
  221. package/dist/_contracts/testing/response-bindings.js +0 -256
  222. package/dist/_contracts/testing/wire-conformance-entry.d.ts +0 -10
  223. package/dist/_contracts/testing/wire-conformance-entry.js +0 -8
  224. package/dist/_contracts/testing/wire-conformance.d.ts +0 -169
  225. package/dist/_contracts/testing/wire-conformance.js +0 -276
  226. package/dist/_contracts/turn-trace.d.ts +0 -28
  227. package/dist/_contracts/turn-trace.js +0 -1
  228. package/dist/_contracts/unknown-field-error.d.ts +0 -13
  229. package/dist/_contracts/unknown-field-error.js +0 -21
  230. package/dist/_contracts/value-guards.d.ts +0 -20
  231. package/dist/_contracts/value-guards.js +0 -34
  232. package/dist/_contracts/webhook-verify.d.ts +0 -34
  233. package/dist/_contracts/webhook-verify.js +0 -93
  234. package/dist/_contracts/wire-observer.d.ts +0 -49
  235. package/dist/_contracts/wire-observer.js +0 -34
  236. package/dist/_contracts/workflow-status.d.ts +0 -7
  237. package/dist/_contracts/workflow-status.js +0 -43
  238. package/dist/_contracts/workspace-resources.d.ts +0 -98
  239. package/dist/_contracts/workspace-resources.js +0 -39
  240. package/dist/archive-limits.d.ts +0 -1
  241. package/dist/archive-limits.js +0 -2
  242. package/dist/archive-limits.js.map +0 -1
  243. package/dist/asset-upload.d.ts +0 -47
  244. package/dist/asset-upload.js +0 -269
  245. package/dist/asset-upload.js.map +0 -1
  246. package/dist/bundle.d.ts +0 -9
  247. package/dist/bundle.js +0 -20
  248. package/dist/bundle.js.map +0 -1
  249. package/dist/canonical-zip.d.ts +0 -68
  250. package/dist/canonical-zip.js +0 -355
  251. package/dist/canonical-zip.js.map +0 -1
  252. package/dist/cli.mjs +0 -12048
  253. package/dist/cli.mjs.sha256 +0 -1
  254. package/dist/client-types.d.ts +0 -192
  255. package/dist/client-types.js +0 -2
  256. package/dist/client-types.js.map +0 -1
  257. package/dist/client.d.ts +0 -464
  258. package/dist/client.js +0 -1207
  259. package/dist/client.js.map +0 -1
  260. package/dist/event-projection.d.ts +0 -22
  261. package/dist/event-projection.js +0 -380
  262. package/dist/event-projection.js.map +0 -1
  263. package/dist/fetch-archive.d.ts +0 -16
  264. package/dist/fetch-archive.js +0 -252
  265. package/dist/fetch-archive.js.map +0 -1
  266. package/dist/file.d.ts +0 -96
  267. package/dist/file.js +0 -272
  268. package/dist/file.js.map +0 -1
  269. package/dist/instructions.d.ts +0 -20
  270. package/dist/instructions.js +0 -40
  271. package/dist/instructions.js.map +0 -1
  272. package/dist/legacy-session-provider-fault.d.ts +0 -7
  273. package/dist/legacy-session-provider-fault.js +0 -38
  274. package/dist/legacy-session-provider-fault.js.map +0 -1
  275. package/dist/mcp-server.d.ts +0 -84
  276. package/dist/mcp-server.js +0 -117
  277. package/dist/mcp-server.js.map +0 -1
  278. package/dist/node-fs.d.ts +0 -29
  279. package/dist/node-fs.js +0 -19
  280. package/dist/node-fs.js.map +0 -1
  281. package/dist/node-walk.d.ts +0 -69
  282. package/dist/node-walk.js +0 -151
  283. package/dist/node-walk.js.map +0 -1
  284. package/dist/path-basename.d.ts +0 -5
  285. package/dist/path-basename.js +0 -9
  286. package/dist/path-basename.js.map +0 -1
  287. package/dist/retry.d.ts +0 -70
  288. package/dist/retry.js +0 -155
  289. package/dist/retry.js.map +0 -1
  290. package/dist/secret.d.ts +0 -65
  291. package/dist/secret.js +0 -110
  292. package/dist/secret.js.map +0 -1
  293. package/dist/session-validate.d.ts +0 -100
  294. package/dist/session-validate.js +0 -303
  295. package/dist/session-validate.js.map +0 -1
  296. package/dist/skill.d.ts +0 -99
  297. package/dist/skill.js +0 -169
  298. package/dist/skill.js.map +0 -1
  299. package/dist/submission-wire.d.ts +0 -13
  300. package/dist/submission-wire.js +0 -69
  301. package/dist/submission-wire.js.map +0 -1
  302. package/dist/tool.d.ts +0 -41
  303. package/dist/tool.js +0 -76
  304. package/dist/tool.js.map +0 -1
  305. package/dist/version.d.ts +0 -9
  306. package/dist/version.js +0 -10
  307. package/dist/version.js.map +0 -1
  308. package/docs/authentication.md +0 -125
  309. package/docs/billing.md +0 -164
  310. package/docs/cleanup.md +0 -27
  311. package/docs/concepts/agent-tools.md +0 -47
  312. package/docs/concepts/composition.md +0 -60
  313. package/docs/concepts/providers-and-runtimes.md +0 -121
  314. package/docs/concepts/sessions.md +0 -51
  315. package/docs/concepts/subagents.md +0 -35
  316. package/docs/credentials.md +0 -116
  317. package/docs/defaults.md +0 -51
  318. package/docs/errors.md +0 -258
  319. package/docs/events.md +0 -143
  320. package/docs/files.md +0 -130
  321. package/docs/limits-and-quotas.md +0 -114
  322. package/docs/limits.md +0 -51
  323. package/docs/mcp.md +0 -47
  324. package/docs/networking.md +0 -114
  325. package/docs/provider-runtime-capabilities.md +0 -32
  326. package/docs/public-surface.json +0 -73
  327. package/docs/quickstart.md +0 -135
  328. package/docs/release.md +0 -44
  329. package/docs/retries.md +0 -108
  330. package/docs/secrets.md +0 -141
  331. package/docs/session-config.md +0 -51
  332. package/docs/session-record.md +0 -58
  333. package/docs/skills.md +0 -65
  334. package/docs/telemetry.md +0 -66
  335. package/docs/testing.md +0 -35
  336. package/docs/vision-skills.md +0 -94
  337. package/docs/webhooks.md +0 -143
@@ -1,303 +0,0 @@
1
- import { containsSecretLikeValue, redactString, SessionConfigValidationError } from "./_contracts/index.js";
2
- const SESSION_CREATE_KEYS = [
3
- "model", "system", "assets", "mcpServers", "fileCapture",
4
- "builtinTools", "outputMode", "responseFormat", "approvalGate", "metadata",
5
- "idempotencyKey", "environment", "runtime", "overrides", "webhook"
6
- ];
7
- const SESSION_START_KEYS = [
8
- ...SESSION_CREATE_KEYS,
9
- "message", "deleteAfter", "messageIdempotencyKey", "stream"
10
- ];
11
- const START_CONTROL_KEYS = [
12
- "timeoutMs", "webSocketFactory", "idleTimeoutMs", "pingIntervalMs", "throwOnFailure"
13
- ];
14
- const SESSION_SEND_KEYS = [
15
- "webSocketFactory", "idleTimeoutMs", "pingIntervalMs", "idempotencyKey"
16
- ];
17
- const SESSION_STREAM_KEYS = [
18
- "webSocketFactory", "idleTimeoutMs", "pingIntervalMs"
19
- ];
20
- const SESSION_OVERRIDE_KEYS = [
21
- "idleTtl", "timeout", "maxSpendUsd", "maxTurns"
22
- ];
23
- const SESSION_RUNTIME_KEYS = ["kind", "size"];
24
- const FILE_CAPTURE_KEYS = [
25
- "allowedDirs", "deniedDirs", "captureTimeoutMs", "maxFileBytes", "maxTotalBytes", "maxFiles"
26
- ];
27
- const SESSION_WEBHOOK_KEYS = ["url"];
28
- const SESSION_ENVIRONMENT_KEYS = [
29
- "networking", "packages", "variables", "secrets"
30
- ];
31
- const PLATFORM_NETWORKING_KEYS = [
32
- "mode", "allowedHosts"
33
- ];
34
- const PLATFORM_PACKAGE_INPUT_KEYS = [
35
- "name", "version"
36
- ];
37
- const TEXT_RESPONSE_FORMAT_KEYS = ["kind"];
38
- const JSON_SCHEMA_RESPONSE_FORMAT_KEYS = [
39
- "kind", "schema", "strict", "name"
40
- ];
41
- const APPROVAL_GATE_KEYS = ["tools"];
42
- const ASSET_CATEGORY_KEYS = [
43
- "files", "skills", "tools", "instructions"
44
- ];
45
- const ASSET_ITEM_KEYS = {
46
- files: [
47
- "kind", "resourceId", "version", "assetId", "contentHash", "createdAt", "updatedAt",
48
- "sizeBytes", "contentType", "name", "mountPath"
49
- ],
50
- skills: [
51
- "kind", "resourceId", "version", "assetId", "contentHash", "createdAt", "updatedAt",
52
- "sizeBytes", "contentType", "name", "description"
53
- ],
54
- tools: [
55
- "kind", "resourceId", "version", "assetId", "contentHash", "createdAt", "updatedAt",
56
- "sizeBytes", "contentType", "name", "description", "input_schema", "entry"
57
- ],
58
- instructions: [
59
- "kind", "resourceId", "version", "assetId", "contentHash", "createdAt", "updatedAt",
60
- "sizeBytes", "contentType", "name"
61
- ]
62
- };
63
- const VALIDATION_DIAGNOSTIC_MAX_LENGTH = 512;
64
- const VALIDATION_DIAGNOSTIC_SOURCE_MAX_LENGTH = 4_096;
65
- const VALIDATION_DIAGNOSTIC_MAX_TOKENS = 64;
66
- const VALIDATION_DIAGNOSTIC_MAX_TOKEN_LENGTH = 1_024;
67
- function fallbackValidationDiagnostic(field) {
68
- return `underlying validator rejected ${field}; diagnostic redacted`;
69
- }
70
- /**
71
- * Produce lossy diagnostic prose without retaining the caught value, its
72
- * properties, stack, or causal chain. Any uncertainty falls back to field-only
73
- * evidence rather than risking caller data in diagnostic-aware logging.
74
- */
75
- function safeValidationDiagnostic(caught, field, policy) {
76
- const fallback = fallbackValidationDiagnostic(field);
77
- if (policy.kind === "redacted")
78
- return fallback;
79
- try {
80
- const values = Array.from(policy.rejectedValues);
81
- if (values.length > VALIDATION_DIAGNOSTIC_MAX_TOKENS)
82
- return fallback;
83
- const tokens = values.filter((value) => typeof value === "string" && value.length > 0);
84
- if (tokens.some((token) => token.length > VALIDATION_DIAGNOSTIC_MAX_TOKEN_LENGTH))
85
- return fallback;
86
- const raw = typeof caught === "string"
87
- ? caught
88
- : caught instanceof Error
89
- ? caught.message
90
- : undefined;
91
- if (!raw)
92
- return fallback;
93
- let diagnostic = raw.slice(0, VALIDATION_DIAGNOSTIC_SOURCE_MAX_LENGTH);
94
- for (const token of tokens) {
95
- diagnostic = diagnostic.split(token).join("<redacted-value>");
96
- }
97
- diagnostic = diagnostic.replace(/[\u0000-\u001f\u007f-\u009f]+/g, " ");
98
- diagnostic = redactString(diagnostic).trim();
99
- if (diagnostic.length === 0 ||
100
- containsSecretLikeValue(diagnostic) ||
101
- tokens.some((token) => diagnostic.includes(token))) {
102
- return fallback;
103
- }
104
- return diagnostic.length <= VALIDATION_DIAGNOSTIC_MAX_LENGTH
105
- ? diagnostic
106
- : `${diagnostic.slice(0, VALIDATION_DIAGNOSTIC_MAX_LENGTH - 3)}...`;
107
- }
108
- catch {
109
- return fallback;
110
- }
111
- }
112
- function validationDiagnosticError(message) {
113
- const diagnostic = new Error(message);
114
- Object.defineProperty(diagnostic, "name", {
115
- configurable: true,
116
- value: "SessionConfigDiagnosticError"
117
- });
118
- return diagnostic;
119
- }
120
- /** Package-private catch-and-translate owner for canonical session validators. */
121
- export function validatedSessionConfig(surface, field, message, validate, policy) {
122
- try {
123
- return validate();
124
- }
125
- catch (caught) {
126
- throw configError(surface, field, message, validationDiagnosticError(safeValidationDiagnostic(caught, field, policy)));
127
- }
128
- }
129
- /**
130
- * Package-private factory for SDK validation errors. `details.field` is the only
131
- * stable machine-readable payload; messages are human guidance and may change.
132
- */
133
- export function configError(surface, field, message, cause) {
134
- return new SessionConfigValidationError(`${surface}: ${message}`, { field }, cause === undefined ? undefined : { cause });
135
- }
136
- export function normaliseSessionInput(input, surface, field) {
137
- if (typeof input === "string") {
138
- if (!input) {
139
- throw configError(surface, field, `${field} must be a non-empty string`);
140
- }
141
- if (!input.trim()) {
142
- throw configError(surface, field, `${field} must contain non-whitespace text`);
143
- }
144
- return input;
145
- }
146
- if (!Array.isArray(input) || input.length === 0) {
147
- throw configError(surface, field, `${field} must be a non-empty string or string array`);
148
- }
149
- for (const segment of input) {
150
- if (typeof segment !== "string" || !segment) {
151
- throw configError(surface, field, `${field} segments must be non-empty strings`);
152
- }
153
- }
154
- if (input.every((segment) => !segment.trim())) {
155
- throw configError(surface, field, `${field} must contain non-whitespace text`);
156
- }
157
- return [...input];
158
- }
159
- export function assertSupportedSessionFields(options, surface, allowStartFields) {
160
- const record = options;
161
- const allowed = new Set(allowStartFields ? SESSION_START_KEYS : SESSION_CREATE_KEYS);
162
- const guidance = {
163
- runtimeSize: "use runtime.size",
164
- runtimeKind: "use runtime.kind",
165
- secretEnv: "use environment.secrets",
166
- provider: "the serving provider is the model slug's creator prefix, e.g. model: \"anthropic/claude-haiku-4-5\"",
167
- apiKeys: "model access is served on the aex managed gateway; you no longer supply a provider key",
168
- parentSessionId: "subagent lineage is assigned by the platform",
169
- message: "sessions are created without a first message; use Aex.start or session.messages.send",
170
- prompt: "use message",
171
- instructions: "publish Instructions through aex.workspace.instructions and pass the returned ref in assets.instructions"
172
- };
173
- for (const field of Object.keys(record)) {
174
- if (!allowed.has(field)) {
175
- const detail = guidance[field];
176
- throw configError(surface, field, `${field} is not a supported option${detail === undefined ? "" : `; ${detail}`}`);
177
- }
178
- }
179
- const overrides = record.overrides;
180
- if (overrides && typeof overrides === "object" && !Array.isArray(overrides)) {
181
- const overrideRecord = overrides;
182
- if (Object.prototype.hasOwnProperty.call(overrideRecord, "idleSuspendAfter")) {
183
- throw configError(surface, "overrides.idleSuspendAfter", "overrides.idleSuspendAfter is not a supported option; use overrides.idleTtl.");
184
- }
185
- }
186
- const runtime = record.runtime;
187
- if (runtime !== undefined) {
188
- if (typeof runtime !== "object" || runtime === null || Array.isArray(runtime)) {
189
- throw configError(surface, "runtime", "runtime must be an object like { kind, size }");
190
- }
191
- for (const key of Object.keys(runtime)) {
192
- if (!SESSION_RUNTIME_KEYS.includes(key)) {
193
- throw configError(surface, `runtime.${key}`, `runtime.${key} is not a supported option; use runtime.kind or runtime.size`);
194
- }
195
- }
196
- }
197
- assertStructuredSessionFields(record, surface, allowStartFields);
198
- }
199
- export function assertSupportedSessionSendOptions(options, surface, allowIdempotencyKey = true) {
200
- const record = options;
201
- if (!record || typeof record !== "object")
202
- return;
203
- const allowed = new Set(allowIdempotencyKey ? SESSION_SEND_KEYS : SESSION_STREAM_KEYS);
204
- for (const field of Object.keys(record)) {
205
- if (allowed.has(field))
206
- continue;
207
- const guidance = field === "from"
208
- ? "use session.events.list(), stream(), or streamEnvelopes() for replay"
209
- : field === "signal"
210
- ? "use session.cancel() / session.suspend() for remote control"
211
- : undefined;
212
- throw configError(surface, field, `${field} is not a supported option${guidance === undefined ? "" : `; ${guidance}`}`);
213
- }
214
- }
215
- export function assertStartSessionOptions(options, surface) {
216
- assertAllowedObjectFields(options, surface, "options", START_CONTROL_KEYS);
217
- }
218
- function assertStructuredSessionFields(record, surface, allowStartFields) {
219
- const overrides = assertAllowedObjectFields(record.overrides, surface, "overrides", SESSION_OVERRIDE_KEYS);
220
- void overrides;
221
- assertAssetsFields(record.assets, surface);
222
- assertAllowedObjectFields(record.fileCapture, surface, "fileCapture", FILE_CAPTURE_KEYS);
223
- assertEnvironmentFields(record.environment, surface);
224
- assertAllowedObjectFields(record.webhook, surface, "webhook", SESSION_WEBHOOK_KEYS);
225
- const responseFormat = assertRecord(record.responseFormat, surface, "responseFormat");
226
- if (responseFormat !== undefined) {
227
- const allowed = responseFormat.kind === "text"
228
- ? TEXT_RESPONSE_FORMAT_KEYS
229
- : JSON_SCHEMA_RESPONSE_FORMAT_KEYS;
230
- assertAllowedKeys(responseFormat, surface, "responseFormat", allowed);
231
- }
232
- assertAllowedObjectFields(record.approvalGate, surface, "approvalGate", APPROVAL_GATE_KEYS);
233
- if (allowStartFields) {
234
- assertAllowedObjectFields(record.stream, surface, "stream", SESSION_STREAM_KEYS);
235
- }
236
- }
237
- function assertAssetsFields(value, surface) {
238
- const assets = assertAllowedObjectFields(value, surface, "assets", ASSET_CATEGORY_KEYS);
239
- if (assets === undefined)
240
- return;
241
- // Workspace publish methods return records that extend the reusable ref with
242
- // immutable metadata. Accept those records directly so publish -> session is ergonomic.
243
- for (const category of ASSET_CATEGORY_KEYS) {
244
- const allowed = ASSET_ITEM_KEYS[category];
245
- const entries = assets[category];
246
- if (entries === undefined)
247
- continue;
248
- if (!Array.isArray(entries)) {
249
- throw configError(surface, `assets.${category}`, `assets.${category} must be an array`);
250
- }
251
- entries.forEach((entry, index) => {
252
- const field = `assets.${category}[${index}]`;
253
- const item = assertRecord(entry, surface, field);
254
- if (item !== undefined)
255
- assertAllowedKeys(item, surface, field, allowed);
256
- });
257
- }
258
- }
259
- function assertEnvironmentFields(value, surface) {
260
- const environment = assertAllowedObjectFields(value, surface, "environment", SESSION_ENVIRONMENT_KEYS);
261
- if (environment === undefined)
262
- return;
263
- assertAllowedObjectFields(environment.networking, surface, "environment.networking", PLATFORM_NETWORKING_KEYS);
264
- for (const field of ["variables", "secrets"]) {
265
- assertRecord(environment[field], surface, `environment.${field}`);
266
- }
267
- const packages = environment.packages;
268
- if (packages === undefined)
269
- return;
270
- if (!Array.isArray(packages)) {
271
- throw configError(surface, "environment.packages", "environment.packages must be an array");
272
- }
273
- packages.forEach((entry, index) => {
274
- const field = `environment.packages[${index}]`;
275
- const item = assertRecord(entry, surface, field);
276
- if (item !== undefined)
277
- assertAllowedKeys(item, surface, field, PLATFORM_PACKAGE_INPUT_KEYS);
278
- });
279
- }
280
- export function assertAllowedObjectFields(value, surface, field, allowed) {
281
- const record = assertRecord(value, surface, field);
282
- if (record !== undefined)
283
- assertAllowedKeys(record, surface, field, allowed);
284
- return record;
285
- }
286
- function assertRecord(value, surface, field) {
287
- if (value === undefined)
288
- return undefined;
289
- if (value === null || typeof value !== "object" || Array.isArray(value)) {
290
- throw configError(surface, field, `${field} must be an object`);
291
- }
292
- return value;
293
- }
294
- function assertAllowedKeys(record, surface, field, allowed) {
295
- const allowedSet = new Set(allowed);
296
- for (const key of Object.keys(record)) {
297
- if (allowedSet.has(key))
298
- continue;
299
- const nested = `${field}.${key}`;
300
- throw configError(surface, nested, `${nested} is not a supported option`);
301
- }
302
- }
303
- //# sourceMappingURL=session-validate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-validate.js","sourceRoot":"","sources":["../src/session-validate.ts"],"names":[],"mappings":"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"}
package/dist/skill.d.ts DELETED
@@ -1,99 +0,0 @@
1
- import { type FetchLike } from "./_contracts/index.js";
2
- import { type BundleMeta, type SkillFiles } from "./bundle.js";
3
- import type { IgnoreOptions } from "./node-walk.js";
4
- /**
5
- * A Skill is a draft workspace bundle of instructional /
6
- * executable content (`SKILL.md` at the bundle root plus any supporting files).
7
- * It is distinct from a {@link Tool}: a session gets a single `skills` meta-tool
8
- * (list/load) rather than one load-tool per skill.
9
- *
10
- * Factories read, canonically bundle, and hash local content. Publish the draft
11
- * with `aex.workspace.skills.publish(skill)`, then pin the returned immutable
12
- * resource ref in `assets.skills`.
13
- */
14
- export declare class Skill {
15
- #private;
16
- /** Internal constructor. Use the `Skill.from*` factories. */
17
- private constructor();
18
- /** Draft identity and canonical content hash. */
19
- get ref(): DraftSkillRef;
20
- /** True for a local-bytes skill that has not been upserted to the workspace yet. */
21
- get isDraft(): boolean;
22
- get name(): string;
23
- get description(): string;
24
- /**
25
- * Read a local skill directory. It must contain `SKILL.md` at its root, whose
26
- * YAML frontmatter supplies `description` and (unless `args.name` is given)
27
- * `name`. When neither an explicit name nor a frontmatter name is present, the
28
- * slugified directory basename is used.
29
- *
30
- * The directory is walked with FIDELITY (the same walk `File.fromPath` uses):
31
- * `.aexignore` + the always-on defaults (`.git/`, `node_modules/`, …) prune the
32
- * upload — so a skill dir carrying `node_modules` no longer ships it — and
33
- * executable bits + symlinks are captured into a `.aexmeta.json` sidecar
34
- * (emitted only when such metadata exists, so a pure-content skill dir stays
35
- * byte-identical → dedup continuity). Bun/Node filesystem runtimes only.
36
- */
37
- static fromDir(rootDir: string, args?: {
38
- readonly name?: string;
39
- readonly ignore?: IgnoreOptions;
40
- }): Promise<Skill>;
41
- /**
42
- * Fetch a zip-archived skill from a URL. The archive is downloaded in the SDK
43
- * process (caller-controlled URL — no SSRF surface), optionally integrity-checked
44
- * against `sha256`, and reduced to the same files map as `Skill.fromDir` (a
45
- * single wrapping top-level folder is stripped). It must expose `SKILL.md` at
46
- * the root. The signed URL only needs to be valid for this call.
47
- */
48
- static fromUrl(url: string, args?: {
49
- readonly name?: string;
50
- readonly sha256?: string;
51
- readonly timeoutMs?: number;
52
- readonly fetch?: FetchLike;
53
- }): Promise<Skill>;
54
- /**
55
- * Build a draft skill from an in-memory files map (path -> string | bytes).
56
- * Requires a root `SKILL.md`. Universal (no filesystem access). An optional
57
- * `meta` (exec bits + symlinks) is threaded to the bundler for callers that
58
- * carry fidelity metadata alongside a hand-built map; omit it and a plain map
59
- * stays byte-identical to the pre-fidelity output.
60
- */
61
- static fromFiles(args: {
62
- readonly name?: string;
63
- readonly files: SkillFiles;
64
- readonly meta?: BundleMeta;
65
- }): Promise<Skill>;
66
- /** Convenience: build a single-file skill from a `SKILL.md` string. */
67
- static fromContent(skillMd: string, args?: {
68
- readonly name?: string;
69
- }): Promise<Skill>;
70
- /**
71
- * Build a draft skill from an already-zipped bundle. The zip is unpacked to a
72
- * files map (directory entries dropped), then re-canonicalised so a
73
- * `fromBytes` skill and the identical `fromDir` / `fromFiles` skill dedup by
74
- * content hash. Requires `SKILL.md` at the archive root.
75
- */
76
- static fromBytes(args: {
77
- readonly name?: string;
78
- readonly zip: Uint8Array;
79
- }): Promise<Skill>;
80
- /**
81
- * Internal: yield the draft bytes and metadata to the workspace publisher.
82
- */
83
- _takeDraftBundle(): {
84
- name: string;
85
- description: string;
86
- contentHash: string;
87
- bytes: Uint8Array;
88
- };
89
- toJSON(): never;
90
- }
91
- /**
92
- * SDK-internal draft marker. It never reaches the session wire directly.
93
- */
94
- export interface DraftSkillRef {
95
- readonly kind: "draft";
96
- readonly name: string;
97
- readonly description: string;
98
- readonly contentHash: string;
99
- }
package/dist/skill.js DELETED
@@ -1,169 +0,0 @@
1
- import { SKILL_BUNDLE_LIMITS } from "./_contracts/index.js";
2
- import { deriveSkillName, extractSkillFrontmatter } from "./_contracts/internal.js";
3
- import { bundleSkillFiles, hashSkillBundle, splitSkillBundleMetadata } from "./bundle.js";
4
- import { fetchSkillArchive } from "./fetch-archive.js";
5
- import { readDirectoryWithFidelity } from "./node-fs.js";
6
- import { unzipSync } from "fflate";
7
- import { assertArchiveCompressedSize, assertArchiveExpandedSize } from "./archive-limits.js";
8
- import { crossPlatformBasename } from "./path-basename.js";
9
- /**
10
- * A Skill is a draft workspace bundle of instructional /
11
- * executable content (`SKILL.md` at the bundle root plus any supporting files).
12
- * It is distinct from a {@link Tool}: a session gets a single `skills` meta-tool
13
- * (list/load) rather than one load-tool per skill.
14
- *
15
- * Factories read, canonically bundle, and hash local content. Publish the draft
16
- * with `aex.workspace.skills.publish(skill)`, then pin the returned immutable
17
- * resource ref in `assets.skills`.
18
- */
19
- export class Skill {
20
- #ref;
21
- #description;
22
- #bundleBytes;
23
- /** Internal constructor. Use the `Skill.from*` factories. */
24
- constructor(ref, description, bundleBytes) {
25
- this.#ref = ref;
26
- this.#description = description;
27
- this.#bundleBytes = bundleBytes;
28
- }
29
- /** Draft identity and canonical content hash. */
30
- get ref() {
31
- return this.#ref;
32
- }
33
- /** True for a local-bytes skill that has not been upserted to the workspace yet. */
34
- get isDraft() {
35
- return true;
36
- }
37
- get name() {
38
- return this.#ref.name;
39
- }
40
- get description() {
41
- return this.#description;
42
- }
43
- // --- factories (source symmetry with File / Instructions / Tool) --------------
44
- /**
45
- * Read a local skill directory. It must contain `SKILL.md` at its root, whose
46
- * YAML frontmatter supplies `description` and (unless `args.name` is given)
47
- * `name`. When neither an explicit name nor a frontmatter name is present, the
48
- * slugified directory basename is used.
49
- *
50
- * The directory is walked with FIDELITY (the same walk `File.fromPath` uses):
51
- * `.aexignore` + the always-on defaults (`.git/`, `node_modules/`, …) prune the
52
- * upload — so a skill dir carrying `node_modules` no longer ships it — and
53
- * executable bits + symlinks are captured into a `.aexmeta.json` sidecar
54
- * (emitted only when such metadata exists, so a pure-content skill dir stays
55
- * byte-identical → dedup continuity). Bun/Node filesystem runtimes only.
56
- */
57
- static async fromDir(rootDir, args = {}) {
58
- const { files, meta } = await readDirectoryWithFidelity(rootDir, args.ignore);
59
- return Skill.#fromFiles("Skill.fromDir", files, args.name, crossPlatformBasename(rootDir), meta);
60
- }
61
- /**
62
- * Fetch a zip-archived skill from a URL. The archive is downloaded in the SDK
63
- * process (caller-controlled URL — no SSRF surface), optionally integrity-checked
64
- * against `sha256`, and reduced to the same files map as `Skill.fromDir` (a
65
- * single wrapping top-level folder is stripped). It must expose `SKILL.md` at
66
- * the root. The signed URL only needs to be valid for this call.
67
- */
68
- static async fromUrl(url, args = {}) {
69
- const { files, meta } = await fetchSkillArchive(url, {
70
- ...(args.sha256 !== undefined ? { sha256: args.sha256 } : {}),
71
- ...(args.timeoutMs !== undefined ? { timeoutMs: args.timeoutMs } : {}),
72
- ...(args.fetch !== undefined ? { fetch: args.fetch } : {})
73
- });
74
- // A URL has no reliable directory basename, so no slug fallback.
75
- return Skill.#fromFiles("Skill.fromUrl", files, args.name, undefined, meta);
76
- }
77
- /**
78
- * Build a draft skill from an in-memory files map (path -> string | bytes).
79
- * Requires a root `SKILL.md`. Universal (no filesystem access). An optional
80
- * `meta` (exec bits + symlinks) is threaded to the bundler for callers that
81
- * carry fidelity metadata alongside a hand-built map; omit it and a plain map
82
- * stays byte-identical to the pre-fidelity output.
83
- */
84
- static async fromFiles(args) {
85
- if (!args || typeof args !== "object" || args.files === undefined) {
86
- throw new Error("Skill.fromFiles: { files } is required");
87
- }
88
- return Skill.#fromFiles("Skill.fromFiles", args.files, args.name, undefined, args.meta);
89
- }
90
- /** Convenience: build a single-file skill from a `SKILL.md` string. */
91
- static async fromContent(skillMd, args = {}) {
92
- if (typeof skillMd !== "string" || skillMd.length === 0) {
93
- throw new Error("Skill.fromContent: skillMd must be a non-empty string");
94
- }
95
- return Skill.#fromFiles("Skill.fromContent", { "SKILL.md": skillMd }, args.name, undefined);
96
- }
97
- /**
98
- * Build a draft skill from an already-zipped bundle. The zip is unpacked to a
99
- * files map (directory entries dropped), then re-canonicalised so a
100
- * `fromBytes` skill and the identical `fromDir` / `fromFiles` skill dedup by
101
- * content hash. Requires `SKILL.md` at the archive root.
102
- */
103
- static async fromBytes(args) {
104
- if (!args || !(args.zip instanceof Uint8Array) || args.zip.byteLength === 0) {
105
- throw new Error("Skill.fromBytes: { zip } must be a non-empty Uint8Array");
106
- }
107
- assertArchiveCompressedSize(args.zip.byteLength, "Skill.fromBytes");
108
- let entries;
109
- let fileCount = 0;
110
- let expandedBytes = 0;
111
- try {
112
- entries = unzipSync(args.zip, {
113
- filter: (entry) => {
114
- if (/[\\/]$/.test(entry.name))
115
- return false;
116
- fileCount += 1;
117
- if (fileCount > SKILL_BUNDLE_LIMITS.maxFiles + 1) {
118
- throw new Error(`Skill.fromBytes exceeds the ${SKILL_BUNDLE_LIMITS.maxFiles}-entry limit plus one control record`);
119
- }
120
- expandedBytes += entry.originalSize;
121
- assertArchiveExpandedSize(expandedBytes, "Skill.fromBytes");
122
- return true;
123
- }
124
- });
125
- }
126
- catch (err) {
127
- throw new Error(`Skill.fromBytes: could not unzip the bundle (expected a .zip): ${err.message}`);
128
- }
129
- const files = {};
130
- for (const [rawPath, bytes] of Object.entries(entries)) {
131
- const path = rawPath.replace(/\\/g, "/");
132
- if (path.endsWith("/"))
133
- continue; // directory entry
134
- files[path] = bytes;
135
- }
136
- const parsed = splitSkillBundleMetadata(files, "Skill.fromBytes");
137
- return Skill.#fromFiles("Skill.fromBytes", parsed.files, args.name, undefined, parsed.meta);
138
- }
139
- /**
140
- * Internal: yield the draft bytes and metadata to the workspace publisher.
141
- */
142
- _takeDraftBundle() {
143
- return {
144
- name: this.#ref.name,
145
- description: this.#ref.description,
146
- contentHash: this.#ref.contentHash,
147
- bytes: this.#bundleBytes
148
- };
149
- }
150
- toJSON() {
151
- throw new Error("Skill drafts cannot be submitted directly; publish with aex.workspace.skills.publish(...)");
152
- }
153
- static async #fromFiles(source, files, explicitName, dirBasename, meta) {
154
- const front = extractSkillFrontmatter(source, files);
155
- const name = deriveSkillName(source, front.name, explicitName, dirBasename);
156
- const description = front.description;
157
- if (typeof description !== "string" || description.trim().length === 0) {
158
- throw new Error(`${source}: a skill description is required — add a \`description:\` field to the SKILL.md YAML frontmatter`);
159
- }
160
- if (description.length > 2048) {
161
- throw new Error(`${source}: description must be <= 2048 chars`);
162
- }
163
- const bundled = bundleSkillFiles(files, meta);
164
- const contentHash = await hashSkillBundle(bundled.zip);
165
- const ref = { kind: "draft", name, description, contentHash };
166
- return new Skill(ref, description, bundled.zip);
167
- }
168
- }
169
- //# sourceMappingURL=skill.js.map
package/dist/skill.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill.js","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import type { McpServerRef, PlatformEnvironmentInput, PlatformMcpServerSecret, PlatformSubmission, SessionRetentionPolicy } from "./_contracts/index.js";
2
- import type { SessionCreateOptions, SessionEnvironmentOptions } from "./client-types.js";
3
- import { McpServer } from "./mcp-server.js";
4
- export declare function fileCaptureForWire(fileCapture: SessionCreateOptions["fileCapture"]): PlatformSubmission["fileCapture"] | undefined;
5
- export declare function sessionRetentionForWire(options: SessionCreateOptions): SessionRetentionPolicy;
6
- export declare function sessionEnvironmentForWire(environment: SessionEnvironmentOptions | undefined): PlatformEnvironmentInput | undefined;
7
- export declare function mergeMcpServers(inputs: readonly McpServer[], explicitSecrets: readonly PlatformMcpServerSecret[]): {
8
- submissionMcpServers: ReadonlyArray<McpServerRef | {
9
- readonly kind: "workspace";
10
- readonly id: string;
11
- }>;
12
- mergedMcpSecrets: readonly PlatformMcpServerSecret[];
13
- };