@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,20 +0,0 @@
1
- /** Draft instruction context published through `aex.workspace.instructions`. */
2
- export declare class Instructions {
3
- #private;
4
- private constructor();
5
- get name(): string;
6
- /** Build a draft whose canonical archive contains one root `AGENTS.md`. */
7
- static fromContent(content: string, args: {
8
- readonly name: string;
9
- }): Promise<Instructions>;
10
- static fromPath(path: string, args: {
11
- readonly name: string;
12
- }): Promise<Instructions>;
13
- /** @internal */
14
- _takeDraftBundle(): {
15
- readonly name: string;
16
- readonly contentHash: string;
17
- readonly bytes: Uint8Array;
18
- };
19
- toJSON(): never;
20
- }
@@ -1,40 +0,0 @@
1
- import { readFile } from "node:fs/promises";
2
- import { strToU8 } from "fflate";
3
- import { assertWorkspaceInstructionResourceName } from "./_contracts/index.js";
4
- import { bundleSingleFile, hashSkillBundle } from "./_contracts/internal.js";
5
- /** Draft instruction context published through `aex.workspace.instructions`. */
6
- export class Instructions {
7
- #name;
8
- #contentHash;
9
- #zipBytes;
10
- constructor(name, contentHash, zipBytes) {
11
- this.#name = name;
12
- this.#contentHash = contentHash;
13
- this.#zipBytes = zipBytes;
14
- }
15
- get name() {
16
- return this.#name;
17
- }
18
- /** Build a draft whose canonical archive contains one root `AGENTS.md`. */
19
- static async fromContent(content, args) {
20
- if (typeof content !== "string" || content.length === 0) {
21
- throw new Error("Instructions.fromContent: content must be a non-empty string");
22
- }
23
- const name = args?.name;
24
- assertWorkspaceInstructionResourceName(name, "Instructions.fromContent: name");
25
- const bytes = strToU8(content);
26
- const zip = bundleSingleFile("AGENTS.md", bytes, "Instructions.fromContent");
27
- return new Instructions(name, await hashSkillBundle(zip), zip);
28
- }
29
- static async fromPath(path, args) {
30
- return Instructions.fromContent(await readFile(path, "utf8"), args);
31
- }
32
- /** @internal */
33
- _takeDraftBundle() {
34
- return { name: this.#name, contentHash: this.#contentHash, bytes: this.#zipBytes };
35
- }
36
- toJSON() {
37
- throw new Error("Instructions drafts cannot be submitted directly; publish with aex.workspace.instructions.publish(...)");
38
- }
39
- }
40
- //# sourceMappingURL=instructions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,sCAAsC,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE9E,gFAAgF;AAChF,MAAM,OAAO,YAAY;IACd,KAAK,CAAS;IACd,YAAY,CAAS;IACrB,SAAS,CAAa;IAE/B,YAAoB,IAAY,EAAE,WAAmB,EAAE,QAAoB;QACzE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,2EAA2E;IAC3E,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,IAA+B;QACvE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;QACxB,sCAAsC,CAAC,IAAI,EAAE,gCAAgC,CAAC,CAAC;QAC/E,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,0BAA0B,CAAC,CAAC;QAC7E,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,eAAe,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,IAA+B;QACjE,OAAO,YAAY,CAAC,WAAW,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,gBAAgB;IAChB,gBAAgB;QACd,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;IACrF,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG,CAAC;IACJ,CAAC;CACF"}
@@ -1,7 +0,0 @@
1
- import type { DebugSink, ProviderFault, Session } from "./_contracts/index.js";
2
- /**
3
- * Temporary field-absent compatibility bridge for pre-ProviderFault sessions.
4
- * It recognizes only the historical failure class/templates and never carries
5
- * the free-text message into the returned public fault.
6
- */
7
- export declare function legacySessionProviderFault(session: Session, debug?: DebugSink): ProviderFault | undefined;
@@ -1,38 +0,0 @@
1
- const LEGACY_HTTP_FAILURE = /^llm provider unavailable \(HTTP (\d{3})\) — throttled or overloaded; request was not replayed automatically(?:: .+)?$/;
2
- const LEGACY_STREAM_FAILURE = /^llm provider stream error \((rate_limit_error|overloaded_error|api_error|timeout_error)\) — throttled or overloaded mid-stream; retry later$/;
3
- /**
4
- * Temporary field-absent compatibility bridge for pre-ProviderFault sessions.
5
- * It recognizes only the historical failure class/templates and never carries
6
- * the free-text message into the returned public fault.
7
- */
8
- export function legacySessionProviderFault(session, debug) {
9
- // A present canonical field always wins, including a present non-throttle.
10
- if (Object.hasOwn(session, "providerFault"))
11
- return undefined;
12
- const message = typeof session.errorMessage === "string" ? session.errorMessage : undefined;
13
- const httpMatch = message?.match(LEGACY_HTTP_FAILURE);
14
- const streamMatch = message?.match(LEGACY_STREAM_FAILURE);
15
- let fault;
16
- if (httpMatch) {
17
- const status = Number(httpMatch[1]);
18
- const kind = status === 429 ? "rate_limit" : status === 529 ? "overloaded" : "unavailable";
19
- fault = { kind, status };
20
- }
21
- else if (streamMatch) {
22
- const errorType = streamMatch[1];
23
- const kind = errorType === "rate_limit_error"
24
- ? "rate_limit"
25
- : errorType === "overloaded_error"
26
- ? "overloaded"
27
- : "unavailable";
28
- fault = { kind };
29
- }
30
- else if (session.failureClass === "transient-provider") {
31
- fault = { kind: "unavailable" };
32
- }
33
- if (fault !== undefined) {
34
- debug?.(`[aex] legacy_provider_fault_fallback kind=${fault.kind} source=session`);
35
- }
36
- return fault;
37
- }
38
- //# sourceMappingURL=legacy-session-provider-fault.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"legacy-session-provider-fault.js","sourceRoot":"","sources":["../src/legacy-session-provider-fault.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GACvB,wHAAwH,CAAC;AAC3H,MAAM,qBAAqB,GACzB,+IAA+I,CAAC;AAElJ;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAgB,EAChB,KAAiB;IAEjB,2EAA2E;IAC3E,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC;QAAE,OAAO,SAAS,CAAC;IAE9D,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,MAAM,SAAS,GAAG,OAAO,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,OAAO,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAE1D,IAAI,KAAgC,CAAC;IACrC,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;QAC3F,KAAK,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC3B,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,SAAS,KAAK,kBAAkB;YAC3C,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,SAAS,KAAK,kBAAkB;gBAChC,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,aAAa,CAAC;QACpB,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC;IACnB,CAAC;SAAM,IAAI,OAAO,CAAC,YAAY,KAAK,oBAAoB,EAAE,CAAC;QACzD,KAAK,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,KAAK,EAAE,CAAC,6CAA6C,KAAK,CAAC,IAAI,iBAAiB,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,84 +0,0 @@
1
- import { type McpServerRef, type PlatformMcpServerSecret, type RemoteMcpTransport } from "./_contracts/index.js";
2
- /**
3
- * Wire shape for a workspace MCP server ref in `submission.mcpServers[]`.
4
- * The BFF resolves this to an inline `{name, url}` before the shared
5
- * parser sessions. Auth still arrives inline in
6
- * `secrets.mcpServers[<resolved-name>].headers` — workspace refs do
7
- * not carry auth, by design.
8
- */
9
- export interface WorkspaceMcpServerSubmissionEntry {
10
- readonly kind: "workspace";
11
- readonly id: string;
12
- }
13
- /**
14
- * Inline MCP server reference OR a workspace-persistent ref via
15
- * `McpServer.fromId("mcp_...")`.
16
- *
17
- * For inline refs, headers (typically `Authorization`) are vaulted
18
- * server-side under `secrets.mcpServers` and excluded from the
19
- * idempotency hash; the non-secret `{name, url}` part is hashed.
20
- *
21
- * The SDK splits the header bag from the public ref BEFORE the wire
22
- * payload is built, so a single inline `McpServer` instance becomes:
23
- *
24
- * - a `submission.mcpServers` entry of `{ name, url }`, and
25
- * - (when `headers` is present) a `secrets.mcpServers` entry of
26
- * `{ name, headers }`.
27
- *
28
- * For workspace refs (`McpServer.fromId(id)`), the submission entry
29
- * is `{kind:"workspace", id}`; the BFF resolves it to inline when
30
- * the session is created. The user still supplies auth separately via
31
- * `secrets.mcpServers[<workspace-name>]` keyed by the workspace
32
- * MCP's persisted `name`.
33
- */
34
- export declare class McpServer {
35
- readonly kind: "inline" | "workspace";
36
- readonly name: string;
37
- readonly url: string;
38
- readonly transport: RemoteMcpTransport | undefined;
39
- readonly id: string | undefined;
40
- readonly headers: Readonly<Record<string, string>> | undefined;
41
- /** Internal constructor. Use `McpServer.remote(...)` or `McpServer.fromId(...)`. */
42
- constructor(args: {
43
- readonly kind?: "inline" | "workspace";
44
- readonly id?: string;
45
- readonly name?: string;
46
- readonly url?: string;
47
- readonly transport?: RemoteMcpTransport;
48
- readonly headers?: Readonly<Record<string, string>>;
49
- });
50
- /**
51
- * Inline remote MCP server reachable over HTTP(S) by URL. `transport`
52
- * defaults to the runtime's choice when omitted; pass it explicitly
53
- * to pin `"http"` (streamable) or `"sse"` (event-stream). Stdio is
54
- * not supported — see {@link rejectStdioMcpShape}.
55
- */
56
- static remote(args: {
57
- readonly name: string;
58
- readonly url: string;
59
- readonly transport?: RemoteMcpTransport;
60
- readonly headers?: Readonly<Record<string, string>>;
61
- }): McpServer;
62
- /**
63
- * Reference a workspace-persistent MCP server by id. The BFF
64
- * resolves the ref to inline `{name, url}` when the session is created using
65
- * the row from `workspace_mcp_servers`. Auth still arrives inline at
66
- * the call site — pass it in `secrets.mcpServers[<workspace-name>]`.
67
- */
68
- static fromId(id: string): McpServer;
69
- /** Wire shape for the non-secret `submission.mcpServers` entry. */
70
- toSubmissionEntry(): McpServerRef | WorkspaceMcpServerSubmissionEntry;
71
- /**
72
- * Wire shape for the `secrets.mcpServers` entry, or `undefined`
73
- * when no headers were provided. Returned headers are a defensive
74
- * copy.
75
- *
76
- * Workspace refs never emit a secret entry from the SDK — the
77
- * caller knows the resolved `name` (from the dashboard or from a
78
- * prior list call) and supplies the headers under that name
79
- * directly on the `secrets.mcpServers[]` array. Mixing SDK-side
80
- * auth into a workspace ref's `name` would create a name/auth
81
- * mismatch the BFF can't validate.
82
- */
83
- toSecretEntry(): PlatformMcpServerSecret | undefined;
84
- }
@@ -1,117 +0,0 @@
1
- import { idPatternSource, isId, rejectStdioMcpShape } from "./_contracts/index.js";
2
- /**
3
- * Inline MCP server reference OR a workspace-persistent ref via
4
- * `McpServer.fromId("mcp_...")`.
5
- *
6
- * For inline refs, headers (typically `Authorization`) are vaulted
7
- * server-side under `secrets.mcpServers` and excluded from the
8
- * idempotency hash; the non-secret `{name, url}` part is hashed.
9
- *
10
- * The SDK splits the header bag from the public ref BEFORE the wire
11
- * payload is built, so a single inline `McpServer` instance becomes:
12
- *
13
- * - a `submission.mcpServers` entry of `{ name, url }`, and
14
- * - (when `headers` is present) a `secrets.mcpServers` entry of
15
- * `{ name, headers }`.
16
- *
17
- * For workspace refs (`McpServer.fromId(id)`), the submission entry
18
- * is `{kind:"workspace", id}`; the BFF resolves it to inline when
19
- * the session is created. The user still supplies auth separately via
20
- * `secrets.mcpServers[<workspace-name>]` keyed by the workspace
21
- * MCP's persisted `name`.
22
- */
23
- export class McpServer {
24
- kind;
25
- name;
26
- url;
27
- transport;
28
- id;
29
- headers;
30
- /** Internal constructor. Use `McpServer.remote(...)` or `McpServer.fromId(...)`. */
31
- constructor(args) {
32
- if (!args || typeof args !== "object") {
33
- throw new Error("McpServer: args is required");
34
- }
35
- // Defence in depth: any stdio-shaped input that slips past the
36
- // builder type (callers will reach in with `as never` to feed stdio
37
- // shapes) is rejected with the canonical error.
38
- rejectStdioMcpShape(args);
39
- if (args.kind === "workspace") {
40
- // The shape comes from the id owner (`@aexhq/contracts/ids`), never from
41
- // a local copy: the hand-written pattern this replaced admitted
42
- // `mcp_<8..128 of [A-Za-z0-9_-]>`, which is wider than anything the
43
- // platform can mint, so a typo'd id reached the BFF instead of the user.
44
- if (!isId("mcp", args.id)) {
45
- throw new Error(`McpServer.fromId: id must match ${idPatternSource("mcp")}`);
46
- }
47
- this.kind = "workspace";
48
- this.id = args.id;
49
- // `name` and `url` are resolved server-side; populate placeholders so
50
- // type-level access never returns undefined, but mark the workspace
51
- // ref so callers can branch.
52
- this.name = "";
53
- this.url = "";
54
- this.transport = undefined;
55
- this.headers = undefined;
56
- return;
57
- }
58
- if (typeof args.name !== "string" || !args.name) {
59
- throw new Error("McpServer: name is required");
60
- }
61
- if (typeof args.url !== "string" || !args.url) {
62
- throw new Error("McpServer: url is required");
63
- }
64
- this.kind = "inline";
65
- this.id = undefined;
66
- this.name = args.name;
67
- this.url = args.url;
68
- this.transport = args.transport;
69
- this.headers = args.headers && Object.keys(args.headers).length > 0 ? { ...args.headers } : undefined;
70
- }
71
- /**
72
- * Inline remote MCP server reachable over HTTP(S) by URL. `transport`
73
- * defaults to the runtime's choice when omitted; pass it explicitly
74
- * to pin `"http"` (streamable) or `"sse"` (event-stream). Stdio is
75
- * not supported — see {@link rejectStdioMcpShape}.
76
- */
77
- static remote(args) {
78
- return new McpServer({ kind: "inline", ...args });
79
- }
80
- /**
81
- * Reference a workspace-persistent MCP server by id. The BFF
82
- * resolves the ref to inline `{name, url}` when the session is created using
83
- * the row from `workspace_mcp_servers`. Auth still arrives inline at
84
- * the call site — pass it in `secrets.mcpServers[<workspace-name>]`.
85
- */
86
- static fromId(id) {
87
- return new McpServer({ kind: "workspace", id });
88
- }
89
- /** Wire shape for the non-secret `submission.mcpServers` entry. */
90
- toSubmissionEntry() {
91
- if (this.kind === "workspace") {
92
- return { kind: "workspace", id: this.id };
93
- }
94
- return this.transport
95
- ? { name: this.name, transport: this.transport, url: this.url }
96
- : { name: this.name, url: this.url };
97
- }
98
- /**
99
- * Wire shape for the `secrets.mcpServers` entry, or `undefined`
100
- * when no headers were provided. Returned headers are a defensive
101
- * copy.
102
- *
103
- * Workspace refs never emit a secret entry from the SDK — the
104
- * caller knows the resolved `name` (from the dashboard or from a
105
- * prior list call) and supplies the headers under that name
106
- * directly on the `secrets.mcpServers[]` array. Mixing SDK-side
107
- * auth into a workspace ref's `name` would create a name/auth
108
- * mismatch the BFF can't validate.
109
- */
110
- toSecretEntry() {
111
- if (this.kind === "workspace" || !this.headers) {
112
- return undefined;
113
- }
114
- return { name: this.name, url: this.url, headers: { ...this.headers } };
115
- }
116
- }
117
- //# sourceMappingURL=mcp-server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,IAAI,EACJ,mBAAmB,EAIpB,MAAM,kBAAkB,CAAC;AAc1B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,SAAS;IACX,IAAI,CAAyB;IAC7B,IAAI,CAAS;IACb,GAAG,CAAS;IACZ,SAAS,CAAiC;IAC1C,EAAE,CAAqB;IACvB,OAAO,CAA+C;IAE/D,oFAAoF;IACpF,YAAY,IAOX;QACC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,+DAA+D;QAC/D,oEAAoE;QACpE,gDAAgD;QAChD,mBAAmB,CAAC,IAA0C,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,yEAAyE;YACzE,gEAAgE;YAChE,oEAAoE;YACpE,yEAAyE;YACzE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,mCAAmC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC/E,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;YACxB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YAClB,sEAAsE;YACtE,oEAAoE;YACpE,6BAA6B;YAC7B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,OAAO;QACT,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACxG,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,IAKb;QACC,OAAO,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,EAAU;QACtB,OAAO,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,mEAAmE;IACnE,iBAAiB;QACf,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,EAAG,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC,SAAS;YACnB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;YAC/D,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,aAAa;QACX,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;IAC1E,CAAC;CACF"}
package/dist/node-fs.d.ts DELETED
@@ -1,29 +0,0 @@
1
- import type { BundleMeta } from "./bundle.js";
2
- import { type IgnoreOptions } from "./node-walk.js";
3
- /**
4
- * Fidelity-aware read of a local skill/tool directory into an in-memory files map
5
- * plus its bundle metadata. Delegates to the shared {@link walkDirectory} (the
6
- * SAME fidelity walk `File.fromPath` uses), so skills/tools now honor `.aexignore`
7
- * + the always-on defaults (`.git/`, `node_modules/`, …), capture executable bits
8
- * + symlinks into `meta` (destined for the `.aexmeta.json` sidecar), and never
9
- * silently vanish a non-regular file (surfaced in `dropped`).
10
- *
11
- * INVARIANT: for a directory with NO exec bits, NO symlinks, and NO ignored paths,
12
- * `meta` is empty → the downstream bundler emits NO sidecar, so the bundle bytes
13
- * are byte-identical to the pre-fidelity `readDirectoryAsFiles` output (dedup
14
- * continuity). Only metadata (or an `.aexignore`/ignored path) changes the bytes.
15
- *
16
- * Bun/Node filesystem runtimes only. Browser callers pass a pre-built files map to
17
- * `bundleSkillFiles` / `bundleToolFiles` directly and never reach this module.
18
- */
19
- export interface DirectoryBundle {
20
- /** Regular-file bytes, keyed by forward-slash bundle-relative path. */
21
- readonly files: Record<string, Uint8Array>;
22
- /** Exec bits + symlinks → the `.aexmeta.json` sidecar (empty ⇒ no sidecar emitted). */
23
- readonly meta: BundleMeta;
24
- /** Non-regular files skipped (FIFO/socket/device) — never silently vanished. Sorted. */
25
- readonly dropped: readonly string[];
26
- /** Count of paths pruned by the ignore layers (`.aexignore` + defaults). */
27
- readonly ignoredCount: number;
28
- }
29
- export declare function readDirectoryWithFidelity(rootDir: string, ignore?: IgnoreOptions): Promise<DirectoryBundle>;
package/dist/node-fs.js DELETED
@@ -1,19 +0,0 @@
1
- import { readFile } from "node:fs/promises";
2
- import { walkDirectory } from "./node-walk.js";
3
- export async function readDirectoryWithFidelity(rootDir, ignore) {
4
- if (typeof rootDir !== "string" || !rootDir) {
5
- throw new Error("readDirectoryWithFidelity: rootDir is required");
6
- }
7
- const walk = await walkDirectory(rootDir, ignore);
8
- const files = {};
9
- for (const entry of walk.entries) {
10
- files[entry.rel] = new Uint8Array(await readFile(entry.absPath));
11
- }
12
- return {
13
- files,
14
- meta: { exec: walk.exec, symlinks: walk.symlinks },
15
- dropped: walk.dropped,
16
- ignoredCount: walk.ignoredCount
17
- };
18
- }
19
- //# sourceMappingURL=node-fs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-fs.js","sourceRoot":"","sources":["../src/node-fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAsB,MAAM,gBAAgB,CAAC;AA6BnE,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,OAAe,EAAE,MAAsB;IACrF,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,KAAK,GAA+B,EAAE,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO;QACL,KAAK;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;QAClD,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,YAAY,EAAE,IAAI,CAAC,YAAY;KAChC,CAAC;AACJ,CAAC"}
@@ -1,69 +0,0 @@
1
- /**
2
- * Node/Bun-only directory walk with fidelity capture + `.aexignore` filtering.
3
- *
4
- * Shared by `File.fromPath` (customer files) and `readDirectoryWithFidelity`
5
- * (skills/tools). Captures, in ONE deterministic walk:
6
- * - regular files (bytes),
7
- * - executable bits (`mode & 0o111` → normalised 0o755 bucket, listed in `exec`),
8
- * - symlinks (raw `readlink` target, verbatim — the SDK captures faithfully; the
9
- * container restore decides whether a target may be recreated),
10
- * - dropped non-regular files (FIFO / socket / char / block device) — never
11
- * silently vanished, surfaced in `dropped`.
12
- *
13
- * Ignore semantics are gitignore-compatible via the `ignore` package: always-on
14
- * built-in {@link DEFAULT_IGNORES} (`.git/`, `node_modules/`, …), `.gitignore`
15
- * honored only when opted in, root `.aexignore` on by default and highest
16
- * precedence, plus programmatic `extraPatterns`. The ignored SET is a pure
17
- * function of the layered patterns + the sorted path list, so the resulting
18
- * bundle is deterministic. An ignored directory is pruned wholesale (never
19
- * descended) — `node_modules` is never walked.
20
- *
21
- * Node-only: imports `node:fs` + `ignore`. Browser callers pass pre-built maps to
22
- * the bundlers and never reach this module.
23
- */
24
- import { type BundleSymlink } from "./_contracts/index.js";
25
- /** Caller-facing ignore controls, threaded from `File.fromPath` / `Tool.fromPath` / skill factories. */
26
- export interface IgnoreOptions {
27
- /** Apply the always-on built-in {@link DEFAULT_IGNORES}. Default true. */
28
- readonly useDefaults?: boolean;
29
- /** Also honor the root `.gitignore`. Default false (least-surprise: no silent data loss). */
30
- readonly useGitignore?: boolean;
31
- /** Honor the root `.aexignore`. Default true. */
32
- readonly useAexignore?: boolean;
33
- /** Extra patterns appended LAST (highest precedence). */
34
- readonly extraPatterns?: readonly string[];
35
- }
36
- /**
37
- * Always-on ignore defaults (unless `useDefaults:false`): VCS metadata, dependency
38
- * caches, editor/OS cruft, plus the two aex control files (`.aexignore` and the
39
- * reserved sidecar). `.gitignore` itself is real repo content and is NOT excluded.
40
- */
41
- export declare const DEFAULT_IGNORES: readonly string[];
42
- export interface WalkedEntry {
43
- /** Forward-slash bundle-relative path. */
44
- readonly rel: string;
45
- /** Absolute on-disk path (for lazy reads on the streaming path). */
46
- readonly absPath: string;
47
- /** Raw byte size from `stat` (drives the small-vs-streaming path decision). */
48
- readonly size: number;
49
- }
50
- export interface WalkResult {
51
- /** Regular-file descriptors (bytes NOT yet read), globally sorted by `rel`. */
52
- readonly entries: WalkedEntry[];
53
- /** Bundle-relative paths that restore executable (0o755). Sorted. */
54
- readonly exec: string[];
55
- /** Captured symlinks (raw target). Sorted by path. */
56
- readonly symlinks: BundleSymlink[];
57
- /** Non-regular files skipped (FIFO/socket/device), for a non-silent summary. Sorted. */
58
- readonly dropped: string[];
59
- /** Count of files/dirs excluded by the ignore layers (surfaced, not silent). */
60
- readonly ignoredCount: number;
61
- /** Sum of `entries[i].size` — the total raw input size. */
62
- readonly totalSize: number;
63
- }
64
- /**
65
- * Walk `rootDir`, capturing files + fidelity metadata + applying the ignore
66
- * layers. Deterministic: each directory level is read then processed in sorted
67
- * order, and the returned metadata arrays are sorted.
68
- */
69
- export declare function walkDirectory(rootDir: string, options?: IgnoreOptions): Promise<WalkResult>;
package/dist/node-walk.js DELETED
@@ -1,151 +0,0 @@
1
- /**
2
- * Node/Bun-only directory walk with fidelity capture + `.aexignore` filtering.
3
- *
4
- * Shared by `File.fromPath` (customer files) and `readDirectoryWithFidelity`
5
- * (skills/tools). Captures, in ONE deterministic walk:
6
- * - regular files (bytes),
7
- * - executable bits (`mode & 0o111` → normalised 0o755 bucket, listed in `exec`),
8
- * - symlinks (raw `readlink` target, verbatim — the SDK captures faithfully; the
9
- * container restore decides whether a target may be recreated),
10
- * - dropped non-regular files (FIFO / socket / char / block device) — never
11
- * silently vanished, surfaced in `dropped`.
12
- *
13
- * Ignore semantics are gitignore-compatible via the `ignore` package: always-on
14
- * built-in {@link DEFAULT_IGNORES} (`.git/`, `node_modules/`, …), `.gitignore`
15
- * honored only when opted in, root `.aexignore` on by default and highest
16
- * precedence, plus programmatic `extraPatterns`. The ignored SET is a pure
17
- * function of the layered patterns + the sorted path list, so the resulting
18
- * bundle is deterministic. An ignored directory is pruned wholesale (never
19
- * descended) — `node_modules` is never walked.
20
- *
21
- * Node-only: imports `node:fs` + `ignore`. Browser callers pass pre-built maps to
22
- * the bundlers and never reach this module.
23
- */
24
- import { readFile, readdir, readlink, stat } from "node:fs/promises";
25
- import { join, posix, relative, sep } from "node:path";
26
- import ignore from "ignore";
27
- import { MAX_SYMLINK_TARGET_LENGTH, RESERVED_META_ENTRY } from "./_contracts/index.js";
28
- /**
29
- * Always-on ignore defaults (unless `useDefaults:false`): VCS metadata, dependency
30
- * caches, editor/OS cruft, plus the two aex control files (`.aexignore` and the
31
- * reserved sidecar). `.gitignore` itself is real repo content and is NOT excluded.
32
- */
33
- export const DEFAULT_IGNORES = [
34
- ".git/",
35
- ".hg/",
36
- ".svn/",
37
- "node_modules/",
38
- "__pycache__/",
39
- "*.pyc",
40
- "*.pyo",
41
- ".DS_Store",
42
- "Thumbs.db"
43
- ];
44
- /** aex control files always excluded from bundle content (regardless of `useDefaults`). */
45
- const CONTROL_IGNORES = [".aexignore", RESERVED_META_ENTRY];
46
- /** Read a root-level ignore control file's patterns (CRLF-normalised), or [] when absent. */
47
- async function readIgnoreFile(rootDir, name) {
48
- try {
49
- const raw = await readFile(join(rootDir, name), "utf8");
50
- return raw.replace(/\r\n/g, "\n").split("\n");
51
- }
52
- catch (error) {
53
- if (isErrno(error, "ENOENT"))
54
- return [];
55
- throw error;
56
- }
57
- }
58
- function isErrno(error, code) {
59
- return error !== null && typeof error === "object" && "code" in error && error.code === code;
60
- }
61
- /** Build the layered ignore matcher (last layer wins, git semantics). */
62
- async function buildIgnore(rootDir, options) {
63
- const ig = ignore();
64
- if (options?.useDefaults !== false)
65
- ig.add([...DEFAULT_IGNORES]);
66
- ig.add([...CONTROL_IGNORES]);
67
- if (options?.useGitignore === true)
68
- ig.add(await readIgnoreFile(rootDir, ".gitignore"));
69
- if (options?.useAexignore !== false)
70
- ig.add(await readIgnoreFile(rootDir, ".aexignore"));
71
- if (options?.extraPatterns && options.extraPatterns.length > 0)
72
- ig.add([...options.extraPatterns]);
73
- return ig;
74
- }
75
- function toPosixRel(rootDir, full) {
76
- const rel = relative(rootDir, full);
77
- return sep === "/" ? rel : rel.split(sep).join(posix.sep);
78
- }
79
- /**
80
- * Walk `rootDir`, capturing files + fidelity metadata + applying the ignore
81
- * layers. Deterministic: each directory level is read then processed in sorted
82
- * order, and the returned metadata arrays are sorted.
83
- */
84
- export async function walkDirectory(rootDir, options) {
85
- const ig = await buildIgnore(rootDir, options);
86
- const entries = [];
87
- const exec = [];
88
- const symlinks = [];
89
- const dropped = [];
90
- let ignoredCount = 0;
91
- let totalSize = 0;
92
- const visit = async (currentDir) => {
93
- const dirents = await readdir(currentDir, { withFileTypes: true });
94
- // Sort each level for a deterministic ignored-set + walk order.
95
- dirents.sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0));
96
- for (const dirent of dirents) {
97
- const full = join(currentDir, dirent.name);
98
- const rel = toPosixRel(rootDir, full);
99
- if (dirent.isSymbolicLink()) {
100
- if (ig.ignores(rel)) {
101
- ignoredCount += 1;
102
- continue;
103
- }
104
- const target = await readlink(full);
105
- if (target.includes("\0")) {
106
- throw new Error(`File.fromPath: symlink ${JSON.stringify(rel)} target contains a NUL byte`);
107
- }
108
- if (target.length > MAX_SYMLINK_TARGET_LENGTH) {
109
- throw new Error(`File.fromPath: symlink ${JSON.stringify(rel)} target exceeds ${MAX_SYMLINK_TARGET_LENGTH} bytes`);
110
- }
111
- symlinks.push({ path: rel, target });
112
- continue;
113
- }
114
- if (dirent.isDirectory()) {
115
- // Directory pruning (git-correct + fast): an ignored dir is never descended.
116
- if (ig.ignores(`${rel}/`)) {
117
- ignoredCount += 1;
118
- continue;
119
- }
120
- await visit(full);
121
- continue;
122
- }
123
- if (!dirent.isFile()) {
124
- // FIFO / socket / char / block device — skipped, never silently vanished.
125
- dropped.push(rel);
126
- continue;
127
- }
128
- if (ig.ignores(rel)) {
129
- ignoredCount += 1;
130
- continue;
131
- }
132
- const st = await stat(full);
133
- entries.push({ rel, absPath: full, size: st.size });
134
- totalSize += st.size;
135
- if ((st.mode & 0o111) !== 0)
136
- exec.push(rel);
137
- }
138
- };
139
- await visit(rootDir);
140
- // Global lexicographic order (per-level sort is NOT globally sorted across the
141
- // tree, e.g. `a.txt` vs `a/b.txt`), matching the canonical zip entry order.
142
- entries.sort((a, b) => byString(a.rel, b.rel));
143
- exec.sort(byString);
144
- symlinks.sort((a, b) => byString(a.path, b.path));
145
- dropped.sort(byString);
146
- return { entries, exec, symlinks, dropped, ignoredCount, totalSize };
147
- }
148
- function byString(a, b) {
149
- return a < b ? -1 : a > b ? 1 : 0;
150
- }
151
- //# sourceMappingURL=node-walk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-walk.js","sourceRoot":"","sources":["../src/node-walk.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Return the last non-trailing segment of either a POSIX- or Windows-shaped
3
- * path without applying host-specific path semantics.
4
- */
5
- export declare function crossPlatformBasename(path: string): string;
@@ -1,9 +0,0 @@
1
- /**
2
- * Return the last non-trailing segment of either a POSIX- or Windows-shaped
3
- * path without applying host-specific path semantics.
4
- */
5
- export function crossPlatformBasename(path) {
6
- const normalised = path.replace(/\\/g, "/").replace(/\/+$/, "");
7
- return normalised.split("/").at(-1) ?? "";
8
- }
9
- //# sourceMappingURL=path-basename.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"path-basename.js","sourceRoot":"","sources":["../src/path-basename.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChE,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC"}