@aexhq/sdk 0.46.5-canary → 0.51.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 (346) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +38 -0
  3. package/README.md +54 -29
  4. package/dist/client/aex.d.ts +33 -0
  5. package/dist/client/aex.js +108 -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 +18 -0
  14. package/dist/downloads/download.js +67 -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 +82 -0
  18. package/dist/generated/errors.js.map +1 -0
  19. package/dist/generated/models.d.ts +1392 -0
  20. package/dist/generated/models.js +62 -0
  21. package/dist/generated/models.js.map +1 -0
  22. package/dist/generated/resources.d.ts +710 -0
  23. package/dist/generated/resources.js +582 -0
  24. package/dist/generated/resources.js.map +1 -0
  25. package/dist/generated/routes.d.ts +44 -0
  26. package/dist/generated/routes.js +1905 -0
  27. package/dist/generated/routes.js.map +1 -0
  28. package/dist/index.d.ts +21 -50
  29. package/dist/index.js +14 -62
  30. package/dist/index.js.map +1 -1
  31. package/dist/node/session-file-limits.d.ts +4 -0
  32. package/dist/node/session-file-limits.js +7 -0
  33. package/dist/node/session-file-limits.js.map +1 -0
  34. package/dist/node/session-files.d.ts +80 -0
  35. package/dist/node/session-files.js +254 -0
  36. package/dist/node/session-files.js.map +1 -0
  37. package/dist/observations/stream.d.ts +1 -0
  38. package/dist/observations/stream.js +18 -0
  39. package/dist/observations/stream.js.map +1 -0
  40. package/dist/transport/errors.d.ts +60 -0
  41. package/dist/transport/errors.js +107 -0
  42. package/dist/transport/errors.js.map +1 -0
  43. package/dist/transport/pagination.d.ts +8 -0
  44. package/dist/transport/pagination.js +34 -0
  45. package/dist/transport/pagination.js.map +1 -0
  46. package/dist/transport/retry.d.ts +21 -0
  47. package/dist/transport/retry.js +37 -0
  48. package/dist/transport/retry.js.map +1 -0
  49. package/dist/transport/transport.d.ts +25 -0
  50. package/dist/transport/transport.js +33 -0
  51. package/dist/transport/transport.js.map +1 -0
  52. package/package.json +67 -30
  53. package/dist/_contracts/account-operations.d.ts +0 -101
  54. package/dist/_contracts/account-operations.js +0 -242
  55. package/dist/_contracts/account-types.d.ts +0 -461
  56. package/dist/_contracts/account-types.js +0 -1
  57. package/dist/_contracts/api-key.d.ts +0 -61
  58. package/dist/_contracts/api-key.js +0 -101
  59. package/dist/_contracts/api-routes.d.ts +0 -20
  60. package/dist/_contracts/api-routes.js +0 -109
  61. package/dist/_contracts/archive-limits.d.ts +0 -3
  62. package/dist/_contracts/archive-limits.js +0 -23
  63. package/dist/_contracts/asset-authoring.d.ts +0 -22
  64. package/dist/_contracts/asset-authoring.js +0 -106
  65. package/dist/_contracts/asset-bundle.d.ts +0 -64
  66. package/dist/_contracts/asset-bundle.js +0 -263
  67. package/dist/_contracts/asset-upload-helper.d.ts +0 -31
  68. package/dist/_contracts/asset-upload-helper.js +0 -84
  69. package/dist/_contracts/billing-admission.d.ts +0 -29
  70. package/dist/_contracts/billing-admission.js +0 -28
  71. package/dist/_contracts/bundle-manifest.d.ts +0 -89
  72. package/dist/_contracts/bundle-manifest.js +0 -158
  73. package/dist/_contracts/canonical-sha256.d.ts +0 -8
  74. package/dist/_contracts/canonical-sha256.js +0 -8
  75. package/dist/_contracts/connection-ticket.d.ts +0 -22
  76. package/dist/_contracts/connection-ticket.js +0 -54
  77. package/dist/_contracts/continuation-event.d.ts +0 -31
  78. package/dist/_contracts/continuation-event.js +0 -6
  79. package/dist/_contracts/contract-parse-error.d.ts +0 -12
  80. package/dist/_contracts/contract-parse-error.js +0 -51
  81. package/dist/_contracts/error-codes.d.ts +0 -26
  82. package/dist/_contracts/error-codes.js +0 -116
  83. package/dist/_contracts/error-factory.d.ts +0 -32
  84. package/dist/_contracts/error-factory.js +0 -174
  85. package/dist/_contracts/event-envelope.d.ts +0 -471
  86. package/dist/_contracts/event-envelope.js +0 -501
  87. package/dist/_contracts/event-stream-client.d.ts +0 -122
  88. package/dist/_contracts/event-stream-client.js +0 -445
  89. package/dist/_contracts/event-view.d.ts +0 -44
  90. package/dist/_contracts/event-view.js +0 -69
  91. package/dist/_contracts/failure-class.d.ts +0 -29
  92. package/dist/_contracts/failure-class.js +0 -73
  93. package/dist/_contracts/http.d.ts +0 -135
  94. package/dist/_contracts/http.js +0 -434
  95. package/dist/_contracts/ids.d.ts +0 -66
  96. package/dist/_contracts/ids.js +0 -119
  97. package/dist/_contracts/index.d.ts +0 -42
  98. package/dist/_contracts/index.js +0 -52
  99. package/dist/_contracts/internal.d.ts +0 -55
  100. package/dist/_contracts/internal.js +0 -113
  101. package/dist/_contracts/models.d.ts +0 -30
  102. package/dist/_contracts/models.js +0 -28
  103. package/dist/_contracts/operation-core.d.ts +0 -36
  104. package/dist/_contracts/operation-core.js +0 -70
  105. package/dist/_contracts/operations.d.ts +0 -218
  106. package/dist/_contracts/operations.js +0 -1496
  107. package/dist/_contracts/otlp-projection.d.ts +0 -78
  108. package/dist/_contracts/otlp-projection.js +0 -171
  109. package/dist/_contracts/post-hook.d.ts +0 -31
  110. package/dist/_contracts/post-hook.js +0 -61
  111. package/dist/_contracts/provider-fault.d.ts +0 -34
  112. package/dist/_contracts/provider-fault.js +0 -68
  113. package/dist/_contracts/retry-core.d.ts +0 -29
  114. package/dist/_contracts/retry-core.js +0 -79
  115. package/dist/_contracts/runner-event.d.ts +0 -117
  116. package/dist/_contracts/runner-event.js +0 -172
  117. package/dist/_contracts/runtime-kind.d.ts +0 -60
  118. package/dist/_contracts/runtime-kind.js +0 -70
  119. package/dist/_contracts/runtime-manifest.d.ts +0 -121
  120. package/dist/_contracts/runtime-manifest.js +0 -83
  121. package/dist/_contracts/runtime-security-profile.d.ts +0 -26
  122. package/dist/_contracts/runtime-security-profile.js +0 -73
  123. package/dist/_contracts/runtime-sizes.d.ts +0 -104
  124. package/dist/_contracts/runtime-sizes.js +0 -111
  125. package/dist/_contracts/runtime-types.d.ts +0 -618
  126. package/dist/_contracts/runtime-types.js +0 -58
  127. package/dist/_contracts/schemas/asset-bundle.d.ts +0 -70
  128. package/dist/_contracts/schemas/asset-bundle.js +0 -107
  129. package/dist/_contracts/schemas/asset-ref.d.ts +0 -61
  130. package/dist/_contracts/schemas/asset-ref.js +0 -118
  131. package/dist/_contracts/schemas/bundle-manifest.d.ts +0 -66
  132. package/dist/_contracts/schemas/bundle-manifest.js +0 -77
  133. package/dist/_contracts/schemas/index.d.ts +0 -32
  134. package/dist/_contracts/schemas/index.js +0 -30
  135. package/dist/_contracts/schemas/mcp-server.d.ts +0 -99
  136. package/dist/_contracts/schemas/mcp-server.js +0 -209
  137. package/dist/_contracts/schemas/models.d.ts +0 -29
  138. package/dist/_contracts/schemas/models.js +0 -51
  139. package/dist/_contracts/schemas/numeric.d.ts +0 -18
  140. package/dist/_contracts/schemas/numeric.js +0 -28
  141. package/dist/_contracts/schemas/post-hook.d.ts +0 -45
  142. package/dist/_contracts/schemas/post-hook.js +0 -68
  143. package/dist/_contracts/schemas/response-assets.d.ts +0 -75
  144. package/dist/_contracts/schemas/response-assets.js +0 -81
  145. package/dist/_contracts/schemas/response-billing.d.ts +0 -208
  146. package/dist/_contracts/schemas/response-billing.js +0 -139
  147. package/dist/_contracts/schemas/response-common.d.ts +0 -132
  148. package/dist/_contracts/schemas/response-common.js +0 -162
  149. package/dist/_contracts/schemas/response-identity.d.ts +0 -648
  150. package/dist/_contracts/schemas/response-identity.js +0 -131
  151. package/dist/_contracts/schemas/response-mcp-servers.d.ts +0 -51
  152. package/dist/_contracts/schemas/response-mcp-servers.js +0 -32
  153. package/dist/_contracts/schemas/response-secrets.d.ts +0 -50
  154. package/dist/_contracts/schemas/response-secrets.js +0 -32
  155. package/dist/_contracts/schemas/response-sessions-internal.d.ts +0 -200
  156. package/dist/_contracts/schemas/response-sessions-internal.js +0 -142
  157. package/dist/_contracts/schemas/response-sessions.d.ts +0 -1598
  158. package/dist/_contracts/schemas/response-sessions.js +0 -377
  159. package/dist/_contracts/schemas/response-webhooks.d.ts +0 -76
  160. package/dist/_contracts/schemas/response-webhooks.js +0 -42
  161. package/dist/_contracts/schemas/response-workspace.d.ts +0 -225
  162. package/dist/_contracts/schemas/response-workspace.js +0 -99
  163. package/dist/_contracts/schemas/runtime-kind.d.ts +0 -31
  164. package/dist/_contracts/schemas/runtime-kind.js +0 -29
  165. package/dist/_contracts/schemas/runtime-security-profile.d.ts +0 -28
  166. package/dist/_contracts/schemas/runtime-security-profile.js +0 -26
  167. package/dist/_contracts/schemas/runtime-sizes.d.ts +0 -70
  168. package/dist/_contracts/schemas/runtime-sizes.js +0 -127
  169. package/dist/_contracts/schemas/session-limits.d.ts +0 -34
  170. package/dist/_contracts/schemas/session-limits.js +0 -39
  171. package/dist/_contracts/schemas/session-machine.d.ts +0 -23
  172. package/dist/_contracts/schemas/session-machine.js +0 -24
  173. package/dist/_contracts/schemas/session-request-config.d.ts +0 -58
  174. package/dist/_contracts/schemas/session-request-config.js +0 -134
  175. package/dist/_contracts/schemas/session-webhook.d.ts +0 -11
  176. package/dist/_contracts/schemas/session-webhook.js +0 -38
  177. package/dist/_contracts/schemas/side-effect-audit.d.ts +0 -98
  178. package/dist/_contracts/schemas/side-effect-audit.js +0 -102
  179. package/dist/_contracts/schemas/submission-assets.d.ts +0 -117
  180. package/dist/_contracts/schemas/submission-assets.js +0 -147
  181. package/dist/_contracts/schemas/submission-body.d.ts +0 -251
  182. package/dist/_contracts/schemas/submission-body.js +0 -378
  183. package/dist/_contracts/schemas/submission-environment.d.ts +0 -79
  184. package/dist/_contracts/schemas/submission-environment.js +0 -179
  185. package/dist/_contracts/schemas/submission-request.d.ts +0 -158
  186. package/dist/_contracts/schemas/submission-request.js +0 -49
  187. package/dist/_contracts/schemas/submission-secrets.d.ts +0 -47
  188. package/dist/_contracts/schemas/submission-secrets.js +0 -108
  189. package/dist/_contracts/schemas/wire.d.ts +0 -118
  190. package/dist/_contracts/schemas/wire.js +0 -171
  191. package/dist/_contracts/schemas/workspace-resources.d.ts +0 -50
  192. package/dist/_contracts/schemas/workspace-resources.js +0 -87
  193. package/dist/_contracts/sdk-errors.d.ts +0 -212
  194. package/dist/_contracts/sdk-errors.js +0 -313
  195. package/dist/_contracts/sdk-secrets.d.ts +0 -67
  196. package/dist/_contracts/sdk-secrets.js +0 -427
  197. package/dist/_contracts/session-archive.d.ts +0 -16
  198. package/dist/_contracts/session-archive.js +0 -92
  199. package/dist/_contracts/session-artifacts.d.ts +0 -189
  200. package/dist/_contracts/session-artifacts.js +0 -264
  201. package/dist/_contracts/session-config.d.ts +0 -373
  202. package/dist/_contracts/session-config.js +0 -562
  203. package/dist/_contracts/session-cost-types.d.ts +0 -211
  204. package/dist/_contracts/session-cost-types.js +0 -69
  205. package/dist/_contracts/session-cost.d.ts +0 -8
  206. package/dist/_contracts/session-cost.js +0 -582
  207. package/dist/_contracts/session-custody.d.ts +0 -165
  208. package/dist/_contracts/session-custody.js +0 -345
  209. package/dist/_contracts/session-file-query.d.ts +0 -14
  210. package/dist/_contracts/session-file-query.js +0 -178
  211. package/dist/_contracts/session-record.d.ts +0 -112
  212. package/dist/_contracts/session-record.js +0 -165
  213. package/dist/_contracts/session-retention.d.ts +0 -201
  214. package/dist/_contracts/session-retention.js +0 -450
  215. package/dist/_contracts/side-effect-audit.d.ts +0 -126
  216. package/dist/_contracts/side-effect-audit.js +0 -520
  217. package/dist/_contracts/sse.d.ts +0 -74
  218. package/dist/_contracts/sse.js +0 -227
  219. package/dist/_contracts/stable.d.ts +0 -45
  220. package/dist/_contracts/stable.js +0 -62
  221. package/dist/_contracts/status.d.ts +0 -25
  222. package/dist/_contracts/status.js +0 -57
  223. package/dist/_contracts/submission-limits.d.ts +0 -61
  224. package/dist/_contracts/submission-limits.js +0 -60
  225. package/dist/_contracts/submission.d.ts +0 -547
  226. package/dist/_contracts/submission.js +0 -812
  227. package/dist/_contracts/suggest.d.ts +0 -15
  228. package/dist/_contracts/suggest.js +0 -53
  229. package/dist/_contracts/testing/response-bindings.d.ts +0 -45
  230. package/dist/_contracts/testing/response-bindings.js +0 -256
  231. package/dist/_contracts/testing/wire-conformance-entry.d.ts +0 -10
  232. package/dist/_contracts/testing/wire-conformance-entry.js +0 -8
  233. package/dist/_contracts/testing/wire-conformance.d.ts +0 -169
  234. package/dist/_contracts/testing/wire-conformance.js +0 -276
  235. package/dist/_contracts/turn-trace.d.ts +0 -28
  236. package/dist/_contracts/turn-trace.js +0 -1
  237. package/dist/_contracts/unknown-field-error.d.ts +0 -13
  238. package/dist/_contracts/unknown-field-error.js +0 -21
  239. package/dist/_contracts/value-guards.d.ts +0 -20
  240. package/dist/_contracts/value-guards.js +0 -34
  241. package/dist/_contracts/webhook-verify.d.ts +0 -34
  242. package/dist/_contracts/webhook-verify.js +0 -93
  243. package/dist/_contracts/wire-observer.d.ts +0 -49
  244. package/dist/_contracts/wire-observer.js +0 -34
  245. package/dist/_contracts/workflow-status.d.ts +0 -7
  246. package/dist/_contracts/workflow-status.js +0 -43
  247. package/dist/_contracts/workspace-resources.d.ts +0 -98
  248. package/dist/_contracts/workspace-resources.js +0 -39
  249. package/dist/archive-limits.d.ts +0 -1
  250. package/dist/archive-limits.js +0 -2
  251. package/dist/archive-limits.js.map +0 -1
  252. package/dist/asset-upload.d.ts +0 -47
  253. package/dist/asset-upload.js +0 -269
  254. package/dist/asset-upload.js.map +0 -1
  255. package/dist/bundle.d.ts +0 -9
  256. package/dist/bundle.js +0 -20
  257. package/dist/bundle.js.map +0 -1
  258. package/dist/canonical-zip.d.ts +0 -68
  259. package/dist/canonical-zip.js +0 -355
  260. package/dist/canonical-zip.js.map +0 -1
  261. package/dist/cli.mjs +0 -12048
  262. package/dist/cli.mjs.sha256 +0 -1
  263. package/dist/client-types.d.ts +0 -192
  264. package/dist/client-types.js +0 -2
  265. package/dist/client-types.js.map +0 -1
  266. package/dist/client.d.ts +0 -464
  267. package/dist/client.js +0 -1207
  268. package/dist/client.js.map +0 -1
  269. package/dist/event-projection.d.ts +0 -22
  270. package/dist/event-projection.js +0 -380
  271. package/dist/event-projection.js.map +0 -1
  272. package/dist/fetch-archive.d.ts +0 -16
  273. package/dist/fetch-archive.js +0 -252
  274. package/dist/fetch-archive.js.map +0 -1
  275. package/dist/file.d.ts +0 -96
  276. package/dist/file.js +0 -272
  277. package/dist/file.js.map +0 -1
  278. package/dist/instructions.d.ts +0 -20
  279. package/dist/instructions.js +0 -40
  280. package/dist/instructions.js.map +0 -1
  281. package/dist/legacy-session-provider-fault.d.ts +0 -7
  282. package/dist/legacy-session-provider-fault.js +0 -38
  283. package/dist/legacy-session-provider-fault.js.map +0 -1
  284. package/dist/mcp-server.d.ts +0 -84
  285. package/dist/mcp-server.js +0 -117
  286. package/dist/mcp-server.js.map +0 -1
  287. package/dist/node-fs.d.ts +0 -29
  288. package/dist/node-fs.js +0 -19
  289. package/dist/node-fs.js.map +0 -1
  290. package/dist/node-walk.d.ts +0 -69
  291. package/dist/node-walk.js +0 -151
  292. package/dist/node-walk.js.map +0 -1
  293. package/dist/path-basename.d.ts +0 -5
  294. package/dist/path-basename.js +0 -9
  295. package/dist/path-basename.js.map +0 -1
  296. package/dist/retry.d.ts +0 -70
  297. package/dist/retry.js +0 -155
  298. package/dist/retry.js.map +0 -1
  299. package/dist/secret.d.ts +0 -65
  300. package/dist/secret.js +0 -110
  301. package/dist/secret.js.map +0 -1
  302. package/dist/session-validate.d.ts +0 -100
  303. package/dist/session-validate.js +0 -303
  304. package/dist/session-validate.js.map +0 -1
  305. package/dist/skill.d.ts +0 -99
  306. package/dist/skill.js +0 -169
  307. package/dist/skill.js.map +0 -1
  308. package/dist/submission-wire.d.ts +0 -13
  309. package/dist/submission-wire.js +0 -69
  310. package/dist/submission-wire.js.map +0 -1
  311. package/dist/tool.d.ts +0 -41
  312. package/dist/tool.js +0 -76
  313. package/dist/tool.js.map +0 -1
  314. package/dist/version.d.ts +0 -9
  315. package/dist/version.js +0 -10
  316. package/dist/version.js.map +0 -1
  317. package/docs/authentication.md +0 -125
  318. package/docs/billing.md +0 -164
  319. package/docs/cleanup.md +0 -27
  320. package/docs/concepts/agent-tools.md +0 -47
  321. package/docs/concepts/composition.md +0 -60
  322. package/docs/concepts/providers-and-runtimes.md +0 -121
  323. package/docs/concepts/sessions.md +0 -51
  324. package/docs/concepts/subagents.md +0 -35
  325. package/docs/credentials.md +0 -116
  326. package/docs/defaults.md +0 -51
  327. package/docs/errors.md +0 -258
  328. package/docs/events.md +0 -143
  329. package/docs/files.md +0 -130
  330. package/docs/limits-and-quotas.md +0 -114
  331. package/docs/limits.md +0 -51
  332. package/docs/mcp.md +0 -47
  333. package/docs/networking.md +0 -114
  334. package/docs/provider-runtime-capabilities.md +0 -32
  335. package/docs/public-surface.json +0 -73
  336. package/docs/quickstart.md +0 -135
  337. package/docs/release.md +0 -44
  338. package/docs/retries.md +0 -108
  339. package/docs/secrets.md +0 -141
  340. package/docs/session-config.md +0 -51
  341. package/docs/session-record.md +0 -58
  342. package/docs/skills.md +0 -65
  343. package/docs/telemetry.md +0 -66
  344. package/docs/testing.md +0 -35
  345. package/docs/vision-skills.md +0 -94
  346. 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
- };