@aexhq/sdk 0.40.9 → 0.40.10

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.
@@ -224,12 +224,12 @@ export declare function download(http: HttpClient, runId: string): Promise<Uint8
224
224
  export declare function downloadOutputs(http: HttpClient, runId: string, options?: OutputTransferOptions): Promise<Uint8Array>;
225
225
  /**
226
226
  * Download only the event archive (the `events` namespace). Always includes
227
- * typed `events.jsonl`.
227
+ * typed `events.jsonl` plus `manifest.json`.
228
228
  */
229
229
  export declare function downloadEvents(http: HttpClient, runId: string): Promise<Uint8Array>;
230
230
  /**
231
231
  * Download only the run record (the `metadata` namespace) as a zip
232
- * containing `run.json`.
232
+ * containing `run.json` plus `manifest.json`.
233
233
  */
234
234
  export declare function downloadMetadata(http: HttpClient, runId: string): Promise<Uint8Array>;
235
235
  export declare function submitRun(http: HttpClient, request: PlatformRunSubmissionInput): Promise<Run>;
@@ -980,19 +980,35 @@ export async function downloadOutputs(http, runId, options) {
980
980
  }
981
981
  /**
982
982
  * Download only the event archive (the `events` namespace). Always includes
983
- * typed `events.jsonl`.
983
+ * typed `events.jsonl` plus `manifest.json`.
984
984
  */
985
985
  export async function downloadEvents(http, runId) {
986
986
  const events = await listRunEvents(http, runId);
987
- return zipEntries([jsonlEntry("events.jsonl", events)]);
987
+ return zipEntries([
988
+ jsonlEntry("events.jsonl", events),
989
+ jsonEntry("manifest.json", {
990
+ runId,
991
+ namespace: "events",
992
+ files: [{ path: "events.jsonl", role: "typed_events", status: "present", recordCount: events.length }],
993
+ errors: []
994
+ })
995
+ ]);
988
996
  }
989
997
  /**
990
998
  * Download only the run record (the `metadata` namespace) as a zip
991
- * containing `run.json`.
999
+ * containing `run.json` plus `manifest.json`.
992
1000
  */
993
1001
  export async function downloadMetadata(http, runId) {
994
1002
  const run = await getRun(http, runId);
995
- return zipEntries([jsonEntry("run.json", run)]);
1003
+ return zipEntries([
1004
+ jsonEntry("run.json", run),
1005
+ jsonEntry("manifest.json", {
1006
+ runId,
1007
+ namespace: "metadata",
1008
+ files: [{ path: "run.json", role: "run_metadata", status: "present" }],
1009
+ errors: []
1010
+ })
1011
+ ]);
996
1012
  }
997
1013
  function zipEntries(entries) {
998
1014
  assertRunRecordArchivePublicSafeV1(entries);
package/dist/cli.mjs CHANGED
@@ -3816,11 +3816,27 @@ async function downloadOutputs(http, runId, options) {
3816
3816
  }
3817
3817
  async function downloadEvents(http, runId) {
3818
3818
  const events = await listRunEvents(http, runId);
3819
- return zipEntries([jsonlEntry("events.jsonl", events)]);
3819
+ return zipEntries([
3820
+ jsonlEntry("events.jsonl", events),
3821
+ jsonEntry("manifest.json", {
3822
+ runId,
3823
+ namespace: "events",
3824
+ files: [{ path: "events.jsonl", role: "typed_events", status: "present", recordCount: events.length }],
3825
+ errors: []
3826
+ })
3827
+ ]);
3820
3828
  }
3821
3829
  async function downloadMetadata(http, runId) {
3822
3830
  const run = await getRun(http, runId);
3823
- return zipEntries([jsonEntry("run.json", run)]);
3831
+ return zipEntries([
3832
+ jsonEntry("run.json", run),
3833
+ jsonEntry("manifest.json", {
3834
+ runId,
3835
+ namespace: "metadata",
3836
+ files: [{ path: "run.json", role: "run_metadata", status: "present" }],
3837
+ errors: []
3838
+ })
3839
+ ]);
3824
3840
  }
3825
3841
  function zipEntries(entries) {
3826
3842
  assertRunRecordArchivePublicSafeV1(entries);
@@ -1 +1 @@
1
- eb3b73297a9e0ef272eefa66f60dc4a13da741cb24a809c7558de2ee5d4d3555 cli.mjs
1
+ feca3311d49affc9dd305e9c1a8da4faee1c604662ebb34abc142c8f1276635c cli.mjs
package/dist/version.d.ts CHANGED
@@ -6,4 +6,4 @@
6
6
  *
7
7
  * Used by the (future) User-Agent header on outbound SDK requests.
8
8
  */
9
- export declare const SDK_VERSION = "0.40.9";
9
+ export declare const SDK_VERSION = "0.40.10";
package/dist/version.js CHANGED
@@ -6,5 +6,5 @@
6
6
  *
7
7
  * Used by the (future) User-Agent header on outbound SDK requests.
8
8
  */
9
- export const SDK_VERSION = "0.40.9";
9
+ export const SDK_VERSION = "0.40.10";
10
10
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC"}
package/docs/outputs.md CHANGED
@@ -38,8 +38,8 @@ A session's downloadable content is organised into three logical namespaces, eac
38
38
  | Namespace | What it holds | Verb | CLI |
39
39
  | --- | --- | --- | --- |
40
40
  | `outputs` | The session's real deliverables. | `session.outputs().download()` | `download <id> --only outputs` |
41
- | `events` | Typed event-channel records (`events.jsonl`). | `session.events().download()` | `download <id> --only events` |
42
- | `metadata` | The session record (`run.json`). | `session.downloadMetadata()` | `download <id> --only metadata` |
41
+ | `events` | Typed event-channel records (`events.jsonl`) plus a namespace manifest. | `session.events().download()` | `download <id> --only events` |
42
+ | `metadata` | The session record (`run.json`) plus a namespace manifest. | `session.downloadMetadata()` | `download <id> --only metadata` |
43
43
 
44
44
  Platform diagnostics are stored outside the public archive under `runs/<runId>/internal/logs/` for internal/admin access only. They are not exposed by the SDK download helpers or the public CLI.
45
45
 
@@ -66,7 +66,7 @@ manifest.json # RunRecordManifestV1
66
66
  | `outputs[]` | `{ id, filename, sizeBytes?, contentType? }` — one row per file successfully written under `outputs/`. |
67
67
  | `errors[]` | `{ namespace, id, filename, message }` — per-artifact byte fetches that failed during assembly. Best-effort: a failure records an entry here and is skipped from the tree rather than aborting the whole zip. |
68
68
 
69
- The single-namespace verbs return the same per-file bytes at the zip root (e.g. `session.outputs().download()` -> `report.txt` + a `manifest.json`; `session.events().download()` -> `events.jsonl`).
69
+ The single-namespace verbs return the same per-file bytes at the zip root (e.g. `session.outputs().download()` -> `report.txt` + `manifest.json`; `session.events().download()` -> `events.jsonl` + `manifest.json`; `session.downloadMetadata()` -> `run.json` + `manifest.json`).
70
70
 
71
71
  ## Downloading one output
72
72
 
@@ -253,7 +253,7 @@ Capture notes:
253
253
 
254
254
  ## Runs without explicit `outputs.allowedDirs`
255
255
 
256
- Metadata still gets the full treatment. aex captures every regular file the run created or modified outside mandatory platform excludes. A run that produces no files still returns a zip with `run.json`, `events.jsonl`, and an empty `outputs/` directory (manifest `outputs: []`).
256
+ Metadata still gets the full treatment. aex captures every regular file the run created or modified outside mandatory platform excludes. A run that produces no files still returns a whole-session zip with `metadata/run.json`, `events/events.jsonl`, and `manifest.json` (manifest `outputs: []`).
257
257
 
258
258
  ## Mid-session download semantics
259
259
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aexhq/sdk",
3
- "version": "0.40.9",
3
+ "version": "0.40.10",
4
4
  "description": "TypeScript SDK for running autonomous agent sessions across providers (Anthropic, OpenAI, DeepSeek, Gemini, Mistral) behind one interface.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {