@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.
- package/README.md +14 -14
- package/dist/_contracts/connection-ticket.d.ts +8 -7
- package/dist/_contracts/connection-ticket.js +20 -14
- package/dist/_contracts/event-envelope.d.ts +17 -18
- package/dist/_contracts/event-envelope.js +10 -11
- package/dist/_contracts/managed-key.d.ts +27 -1
- package/dist/_contracts/managed-key.js +75 -4
- package/dist/_contracts/operations.d.ts +9 -20
- package/dist/_contracts/operations.js +33 -82
- package/dist/_contracts/proxy-protocol.d.ts +35 -2
- package/dist/_contracts/proxy-protocol.js +34 -1
- package/dist/_contracts/run-artifacts.d.ts +12 -10
- package/dist/_contracts/run-artifacts.js +13 -11
- package/dist/_contracts/run-config.d.ts +7 -0
- package/dist/_contracts/run-config.js +93 -24
- package/dist/_contracts/run-custody.d.ts +3 -3
- package/dist/_contracts/run-custody.js +5 -5
- package/dist/_contracts/run-record.d.ts +5 -17
- package/dist/_contracts/run-record.js +4 -15
- package/dist/_contracts/run-retention.d.ts +2 -2
- package/dist/_contracts/run-retention.js +3 -3
- package/dist/_contracts/run-unit.d.ts +4 -5
- package/dist/_contracts/runner-event.d.ts +7 -8
- package/dist/_contracts/runner-event.js +7 -8
- package/dist/_contracts/side-effect-audit.d.ts +2 -2
- package/dist/_contracts/side-effect-audit.js +3 -3
- package/dist/_contracts/stable.d.ts +1 -1
- package/dist/_contracts/stable.js +1 -1
- package/dist/_contracts/submission.d.ts +5 -6
- package/dist/_contracts/submission.js +1 -1
- package/dist/cli.mjs +127 -127
- package/dist/cli.mjs.sha256 +1 -1
- package/dist/client.d.ts +7 -57
- package/dist/client.js +624 -167
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/cleanup.md +4 -4
- package/docs/credentials.md +5 -5
- package/docs/events.md +5 -5
- package/docs/outputs.md +23 -25
- package/docs/product-boundaries.md +5 -5
- package/docs/provider-runtime-capabilities.md +1 -1
- package/docs/quickstart.md +12 -12
- package/docs/run-config.md +1 -1
- package/docs/run-record.md +6 -9
- package/docs/skills.md +23 -25
- package/package.json +2 -2
package/docs/run-record.md
CHANGED
|
@@ -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,
|
|
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
|
-
`
|
|
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
|
|
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[]`
|
|
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;
|
|
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,
|
|
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
|
-
**
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
prompt.
|
|
28
|
-
|
|
29
|
-
The platform also mounts the `aex` CLI
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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 {
|
|
41
|
+
import { AgentExecutor, Skill } from "@aexhq/sdk";
|
|
44
42
|
|
|
45
|
-
const
|
|
43
|
+
const aex = new AgentExecutor({ apiToken });
|
|
46
44
|
|
|
47
|
-
await
|
|
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
|
-
`
|
|
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
|
|
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
|
-
`
|
|
80
|
+
`aex.skills.*` verbs.
|
|
83
81
|
|
|
84
82
|
### Deletion semantics
|
|
85
83
|
|
|
86
|
-
Soft-deleting a skill (`
|
|
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 {
|
|
104
|
+
import { AgentExecutor, Skill } from "@aexhq/sdk";
|
|
107
105
|
|
|
108
|
-
const
|
|
106
|
+
const aex = new AgentExecutor({ apiToken });
|
|
109
107
|
|
|
110
|
-
await
|
|
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**. `
|
|
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.
|
|
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.
|
|
29
|
+
"@aexhq/contracts": "0.13.9"
|
|
30
30
|
},
|
|
31
31
|
"engines": {
|
|
32
32
|
"node": ">=20"
|