@aexhq/sdk 0.13.7 → 0.13.9

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 (51) hide show
  1. package/README.md +14 -14
  2. package/dist/_contracts/connection-ticket.d.ts +8 -7
  3. package/dist/_contracts/connection-ticket.js +20 -14
  4. package/dist/_contracts/event-envelope.d.ts +17 -18
  5. package/dist/_contracts/event-envelope.js +10 -11
  6. package/dist/_contracts/managed-key.d.ts +27 -1
  7. package/dist/_contracts/managed-key.js +75 -4
  8. package/dist/_contracts/operations.d.ts +9 -20
  9. package/dist/_contracts/operations.js +33 -82
  10. package/dist/_contracts/proxy-protocol.d.ts +35 -2
  11. package/dist/_contracts/proxy-protocol.js +34 -1
  12. package/dist/_contracts/run-artifacts.d.ts +12 -10
  13. package/dist/_contracts/run-artifacts.js +13 -11
  14. package/dist/_contracts/run-config.d.ts +7 -0
  15. package/dist/_contracts/run-config.js +93 -24
  16. package/dist/_contracts/run-custody.d.ts +3 -3
  17. package/dist/_contracts/run-custody.js +5 -5
  18. package/dist/_contracts/run-record.d.ts +5 -17
  19. package/dist/_contracts/run-record.js +4 -15
  20. package/dist/_contracts/run-retention.d.ts +2 -2
  21. package/dist/_contracts/run-retention.js +3 -3
  22. package/dist/_contracts/run-unit.d.ts +4 -5
  23. package/dist/_contracts/runner-event.d.ts +7 -8
  24. package/dist/_contracts/runner-event.js +7 -8
  25. package/dist/_contracts/side-effect-audit.d.ts +2 -2
  26. package/dist/_contracts/side-effect-audit.js +3 -3
  27. package/dist/_contracts/stable.d.ts +1 -1
  28. package/dist/_contracts/stable.js +1 -1
  29. package/dist/_contracts/submission.d.ts +5 -6
  30. package/dist/_contracts/submission.js +1 -1
  31. package/dist/cli.mjs +127 -127
  32. package/dist/cli.mjs.sha256 +1 -1
  33. package/dist/client.d.ts +7 -57
  34. package/dist/client.js +624 -167
  35. package/dist/client.js.map +1 -1
  36. package/dist/index.d.ts +3 -3
  37. package/dist/index.js +2 -2
  38. package/dist/index.js.map +1 -1
  39. package/dist/version.d.ts +1 -1
  40. package/dist/version.js +1 -1
  41. package/docs/cleanup.md +4 -4
  42. package/docs/credentials.md +5 -5
  43. package/docs/events.md +5 -5
  44. package/docs/outputs.md +23 -25
  45. package/docs/product-boundaries.md +5 -5
  46. package/docs/provider-runtime-capabilities.md +1 -1
  47. package/docs/quickstart.md +12 -12
  48. package/docs/run-config.md +1 -1
  49. package/docs/run-record.md +6 -9
  50. package/docs/skills.md +23 -25
  51. package/package.json +2 -2
@@ -4,9 +4,9 @@ title: Run record
4
4
 
5
5
  # Run record
6
6
 
7
- The run record is the durable product primitive for one run id. It is the public-safe bundle of status metadata, the non-secret submission snapshot when available, typed events, captured outputs, platform diagnostics, and manifest entries for custody and cost telemetry.
7
+ The run record is the durable product primitive for one run id. It is the public-safe bundle of status metadata, the non-secret submission snapshot when available, typed events, captured outputs, and manifest entries for custody and cost telemetry.
8
8
 
9
- `client.download(runId)` and `aex download <run-id>` return a zip with this layout:
9
+ `aex.download(runId)` and `aex download <run-id>` return a zip with this layout:
10
10
 
11
11
  ```text
12
12
  manifest.json
@@ -14,10 +14,7 @@ metadata/run.json
14
14
  metadata/submission.json # when a public-safe submission snapshot is returned by the read API
15
15
  metadata/cost.json # when public cost telemetry is returned by the read API
16
16
  events/events.jsonl
17
- events/logs.jsonl # when the event API serves channel=log
18
- events/all.jsonl # when the event API serves channel=all
19
17
  outputs/<captured deliverable files>
20
- logs/<platform diagnostic files>
21
18
  ```
22
19
 
23
20
  `manifest.json` is versioned as `RunRecordManifestV1`:
@@ -27,13 +24,13 @@ logs/<platform diagnostic files>
27
24
  | `schemaVersion` | `aex.run-record.manifest.v1`. |
28
25
  | `runRecordSchemaVersion` | `aex.run-record.v1`. |
29
26
  | `runId` | The run the archive was assembled for. |
30
- | `namespaces[]` | The documented top-level namespaces: `metadata`, `events`, `outputs`, `logs`. |
27
+ | `namespaces[]` | The documented top-level namespaces: `metadata`, `events`, `outputs`. |
31
28
  | `files[]` | Inventory of expected and present files with `namespace`, `path`, `role`, and `status`. |
32
- | `outputs[]` / `logs[]` | Compatibility aliases for present captured artifacts. |
29
+ | `outputs[]` | Compatibility alias for present captured output artifacts. |
33
30
  | `errors[]` | Per-artifact byte fetch failures during archive assembly. |
34
31
 
35
- Current v1 downloads always include `metadata/run.json` and `events/events.jsonl`. `events/events.jsonl` contains typed event-channel records only; log-channel or full-stream exports are not mixed into that file. The client also probes the existing event API opt-ins and includes `events/logs.jsonl` / `events/all.jsonl` when `?channel=log` / `?channel=all` prove those streams are available. Older deployments that do not serve those channel reads keep the manifest entries as `unavailable`.
32
+ Current v1 downloads always include `metadata/run.json` and `events/events.jsonl`. `events/events.jsonl` contains typed event-channel records only; internal diagnostics and full internal streams are not mixed into that file.
36
33
 
37
34
  `metadata/submission.json` is present only when the run read shape includes a public-safe submission snapshot. `metadata/cost.json` is present only when the run read shape includes public `costTelemetry`; otherwise cost stays `pending`. `metadata/custody.json` remains `pending` until the custody manifest writer and public read surface land. `events/manifest.json` remains `unavailable` in this client-side slice because there is no public coordinator-manifest download route.
38
35
 
39
- The record boundary is public-safe. It must not contain provider API keys, runner bearers, workspace tokens, signed URLs, raw provider response bodies, R2 object keys, Vault ids, raw query strings, or secret-shaped values. Credentials are supplied per run and vaulted separately for the run lifetime.
36
+ The record boundary is public-safe. It must not contain provider API keys, runner bearers, workspace tokens, signed URLs, raw provider response bodies, object-store keys, Vault ids, raw query strings, secret-shaped values, or internal diagnostic files. Credentials are supplied per run and vaulted separately for the run lifetime.
package/docs/skills.md CHANGED
@@ -18,20 +18,18 @@ Skill inputs accepted by the platform:
18
18
  persist on aex as workspace skills with auto-suffixed names,
19
19
  one row per submission (see "Inline supply" below).
20
20
 
21
- **Routing at session create:** bundles that contain `SKILL.md` at the
22
- bundle root are registered with Anthropic's Skills API
23
- (`POST /v1/skills`) and surface to the agent as auto-discoverable
24
- skills. Bundles without `SKILL.md` mount under
25
- `/mnt/session/uploads/aex/assets/<skl_id>/<rel-path>` in the agent
26
- container the agent reads them by explicit path reference in the
27
- prompt.
28
-
29
- The platform also mounts the `aex` CLI at
30
- `/mnt/session/uploads/aex/aex` and a per-run manifest at
31
- `/mnt/session/uploads/aex/index.json` on **every** run. Skills
32
- invoke the managed HTTP proxy via
33
- `node /mnt/session/uploads/aex/aex proxy …` — see
34
- `credentials.md` for the policy/auth model.
21
+ **How skills reach the agent:** every skill bundle is materialized into
22
+ the run's workspace under `skills/<name>/` before the first agent turn.
23
+ A bundle's `SKILL.md` is composed into the agent's instructions, so the
24
+ agent is told the skill exists and what it does without the model having
25
+ to discover it. Bundles without `SKILL.md` are still mounted as files at
26
+ `skills/<name>/`, but nothing prompts the agent to read them reference
27
+ them explicitly from the prompt or your `AGENTS.md`.
28
+
29
+ The platform also mounts the `aex` CLI and a per-run manifest into the
30
+ workspace on **every** run. Skills invoke the managed HTTP proxy via the
31
+ mounted CLI (`aex proxy …`) — see `credentials.md` for the policy/auth
32
+ model.
35
33
 
36
34
  ## Inline supply at `submitRun`
37
35
 
@@ -40,20 +38,20 @@ build an **unstaged** `Skill`. The instance carries the canonicalised
40
38
  zip bytes and the `sha256:<hex>` content hash:
41
39
 
42
40
  ```ts
43
- import { AexClient, Skill } from "@aexhq/sdk";
41
+ import { AgentExecutor, Skill } from "@aexhq/sdk";
44
42
 
45
- const client = new AexClient({ apiToken });
43
+ const aex = new AgentExecutor({ apiToken });
46
44
 
47
- await client.submitRun({
45
+ await aex.submitRun({
48
46
  model, prompt,
49
47
  skills: [await Skill.fromFiles({ name: "rules", files })],
50
48
  secrets: { anthropic: { apiKey } }
51
49
  });
52
50
  ```
53
51
 
54
- `client.submitRun` walks the `skills` array, sends a multipart body
52
+ `aex.submitRun` walks the `skills` array, sends a multipart body
55
53
  alongside the JSON submission, and materializes the bytes to
56
- content-addressable, workspace-scoped R2 storage before the run lands.
54
+ content-addressable, workspace-scoped asset storage before the run lands.
57
55
  The BFF re-canonicalises the bundle, verifies the advisory hash, and
58
56
  persists it as a workspace skill — but with an **auto-suffixed name**
59
57
  (`rules-x8q7lk2`) so repeated supplies of the same logical skill across
@@ -79,11 +77,11 @@ rules-az3lkmt
79
77
 
80
78
  Same prefix, different suffix. Each is a real workspace skill — you
81
79
  can list, get, download, and delete it through the regular
82
- `client.skills.*` verbs.
80
+ `aex.skills.*` verbs.
83
81
 
84
82
  ### Deletion semantics
85
83
 
86
- Soft-deleting a skill (`client.skills.delete(skl_id)` or the
84
+ Soft-deleting a skill (`aex.skills.delete(skl_id)` or the
87
85
  dashboard's Delete button) marks the row tombstoned. Existing runs
88
86
  that pinned a snapshot of the skill keep working — they read from
89
87
  `run_skill_snapshots` which preserves the name, hash, size, and
@@ -103,11 +101,11 @@ bundle skill bytes with it. Host the skill yourself as a **zip archive**
103
101
  URL — e.g. an S3 presigned URL:
104
102
 
105
103
  ```ts
106
- import { AexClient, Skill } from "@aexhq/sdk";
104
+ import { AgentExecutor, Skill } from "@aexhq/sdk";
107
105
 
108
- const client = new AexClient({ apiToken });
106
+ const aex = new AgentExecutor({ apiToken });
109
107
 
110
- await client.submitRun({
108
+ await aex.submitRun({
111
109
  model, prompt,
112
110
  skills: [
113
111
  await Skill.fromUrl(signedUrl, { name: "rules", sha256: "sha256:<hex>" })
@@ -125,7 +123,7 @@ produce the **same canonical asset** and dedup against each other.
125
123
  - The archive must contain `SKILL.md` at its root, or inside a single
126
124
  top-level folder, which is stripped automatically. Anything else is
127
125
  rejected with an error listing the archive's actual top-level entries.
128
- - The signed URL only needs to be valid **for this call**. `client.submitRun`
126
+ - The signed URL only needs to be valid **for this call**. `aex.submitRun`
129
127
  snapshots the bytes into the run immediately, so the URL can expire
130
128
  afterwards with no effect on the run.
131
129
  - `sha256` is an optional source-integrity check on the downloaded archive
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aexhq/sdk",
3
- "version": "0.13.7",
3
+ "version": "0.13.9",
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": {
@@ -26,7 +26,7 @@
26
26
  "examples"
27
27
  ],
28
28
  "devDependencies": {
29
- "@aexhq/contracts": "0.13.7"
29
+ "@aexhq/contracts": "0.13.9"
30
30
  },
31
31
  "engines": {
32
32
  "node": ">=20"