@aexhq/sdk 0.38.1 → 0.40.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.
- package/README.md +23 -17
- package/dist/_contracts/api-key.d.ts +49 -0
- package/dist/_contracts/api-key.js +87 -0
- package/dist/_contracts/bundle-manifest.d.ts +86 -0
- package/dist/_contracts/bundle-manifest.js +157 -0
- package/dist/_contracts/error-codes.d.ts +26 -0
- package/dist/_contracts/error-codes.js +79 -0
- package/dist/_contracts/error-factory.d.ts +32 -0
- package/dist/_contracts/error-factory.js +142 -0
- package/dist/_contracts/event-envelope.d.ts +33 -10
- package/dist/_contracts/event-envelope.js +46 -10
- package/dist/_contracts/event-view.d.ts +123 -0
- package/dist/_contracts/event-view.js +120 -0
- package/dist/_contracts/http.js +12 -3
- package/dist/_contracts/index.d.ts +8 -4
- package/dist/_contracts/index.js +11 -7
- package/dist/_contracts/models.d.ts +15 -0
- package/dist/_contracts/models.js +33 -0
- package/dist/_contracts/operations.d.ts +70 -2
- package/dist/_contracts/operations.js +143 -7
- package/dist/_contracts/run-config.d.ts +35 -10
- package/dist/_contracts/run-config.js +17 -5
- package/dist/_contracts/run-record.d.ts +3 -2
- package/dist/_contracts/runtime-types.d.ts +148 -36
- package/dist/_contracts/runtime-types.js +33 -1
- package/dist/_contracts/sdk-errors.d.ts +61 -2
- package/dist/_contracts/sdk-errors.js +83 -3
- package/dist/_contracts/sdk-secrets.js +31 -6
- package/dist/_contracts/stable.d.ts +14 -0
- package/dist/_contracts/stable.js +14 -0
- package/dist/_contracts/status.d.ts +28 -1
- package/dist/_contracts/status.js +48 -3
- package/dist/_contracts/submission.d.ts +157 -14
- package/dist/_contracts/submission.js +319 -55
- package/dist/_contracts/suggest.d.ts +15 -0
- package/dist/_contracts/suggest.js +54 -0
- package/dist/asset-upload.d.ts +27 -1
- package/dist/asset-upload.js +219 -4
- package/dist/asset-upload.js.map +1 -1
- package/dist/bundle.d.ts +23 -14
- package/dist/bundle.js +39 -20
- package/dist/bundle.js.map +1 -1
- package/dist/canonical-zip.d.ts +68 -0
- package/dist/canonical-zip.js +307 -0
- package/dist/canonical-zip.js.map +1 -0
- package/dist/cli.mjs +1927 -326
- package/dist/cli.mjs.sha256 +1 -1
- package/dist/client.d.ts +273 -70
- package/dist/client.js +885 -335
- package/dist/client.js.map +1 -1
- package/dist/fetch-archive.js +14 -14
- package/dist/fetch-archive.js.map +1 -1
- package/dist/file.d.ts +33 -6
- package/dist/file.js +120 -54
- package/dist/file.js.map +1 -1
- package/dist/index.d.ts +23 -14
- package/dist/index.js +31 -14
- package/dist/index.js.map +1 -1
- package/dist/node-fs.d.ts +26 -9
- package/dist/node-fs.js +13 -38
- package/dist/node-fs.js.map +1 -1
- package/dist/node-walk.d.ts +69 -0
- package/dist/node-walk.js +146 -0
- package/dist/node-walk.js.map +1 -0
- package/dist/retry.d.ts +9 -13
- package/dist/retry.js +18 -17
- package/dist/retry.js.map +1 -1
- package/dist/skill.d.ts +151 -0
- package/dist/skill.js +298 -0
- package/dist/skill.js.map +1 -0
- package/dist/tool.d.ts +14 -2
- package/dist/tool.js +33 -7
- package/dist/tool.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/authentication.md +29 -5
- package/docs/billing.md +6 -0
- package/docs/concepts/agent-tools.md +11 -0
- package/docs/concepts/composition.md +3 -3
- package/docs/defaults.md +1 -0
- package/docs/errors.md +64 -4
- package/docs/events.md +84 -49
- package/docs/limits-and-quotas.md +24 -0
- package/docs/mcp.md +3 -2
- package/docs/networking.md +7 -1
- package/docs/outputs.md +36 -7
- package/docs/provider-runtime-capabilities.md +1 -1
- package/docs/quickstart.md +17 -7
- package/docs/run-config.md +3 -3
- package/docs/secrets.md +14 -0
- package/docs/skills.md +74 -44
- package/docs/vision-skills.md +3 -3
- package/examples/feature-tour.ts +4 -6
- package/examples/spike-settle-latency.ts +125 -0
- package/package.json +4 -3
- package/dist/_contracts/event-guards.d.ts +0 -67
- package/dist/_contracts/event-guards.js +0 -36
- package/dist/skill-tool.d.ts +0 -102
- package/dist/skill-tool.js +0 -190
- package/dist/skill-tool.js.map +0 -1
|
@@ -0,0 +1,69 @@
|
|
|
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>;
|
|
@@ -0,0 +1,146 @@
|
|
|
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 {
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/** Build the layered ignore matcher (last layer wins, git semantics). */
|
|
57
|
+
async function buildIgnore(rootDir, options) {
|
|
58
|
+
const ig = ignore();
|
|
59
|
+
if (options?.useDefaults !== false)
|
|
60
|
+
ig.add([...DEFAULT_IGNORES]);
|
|
61
|
+
ig.add([...CONTROL_IGNORES]);
|
|
62
|
+
if (options?.useGitignore === true)
|
|
63
|
+
ig.add(await readIgnoreFile(rootDir, ".gitignore"));
|
|
64
|
+
if (options?.useAexignore !== false)
|
|
65
|
+
ig.add(await readIgnoreFile(rootDir, ".aexignore"));
|
|
66
|
+
if (options?.extraPatterns && options.extraPatterns.length > 0)
|
|
67
|
+
ig.add([...options.extraPatterns]);
|
|
68
|
+
return ig;
|
|
69
|
+
}
|
|
70
|
+
function toPosixRel(rootDir, full) {
|
|
71
|
+
const rel = relative(rootDir, full);
|
|
72
|
+
return sep === "/" ? rel : rel.split(sep).join(posix.sep);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Walk `rootDir`, capturing files + fidelity metadata + applying the ignore
|
|
76
|
+
* layers. Deterministic: each directory level is read then processed in sorted
|
|
77
|
+
* order, and the returned metadata arrays are sorted.
|
|
78
|
+
*/
|
|
79
|
+
export async function walkDirectory(rootDir, options) {
|
|
80
|
+
const ig = await buildIgnore(rootDir, options);
|
|
81
|
+
const entries = [];
|
|
82
|
+
const exec = [];
|
|
83
|
+
const symlinks = [];
|
|
84
|
+
const dropped = [];
|
|
85
|
+
let ignoredCount = 0;
|
|
86
|
+
let totalSize = 0;
|
|
87
|
+
const visit = async (currentDir) => {
|
|
88
|
+
const dirents = await readdir(currentDir, { withFileTypes: true });
|
|
89
|
+
// Sort each level for a deterministic ignored-set + walk order.
|
|
90
|
+
dirents.sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0));
|
|
91
|
+
for (const dirent of dirents) {
|
|
92
|
+
const full = join(currentDir, dirent.name);
|
|
93
|
+
const rel = toPosixRel(rootDir, full);
|
|
94
|
+
if (dirent.isSymbolicLink()) {
|
|
95
|
+
if (ig.ignores(rel)) {
|
|
96
|
+
ignoredCount += 1;
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
const target = await readlink(full);
|
|
100
|
+
if (target.includes("\0")) {
|
|
101
|
+
throw new Error(`File.fromPath: symlink ${JSON.stringify(rel)} target contains a NUL byte`);
|
|
102
|
+
}
|
|
103
|
+
if (target.length > MAX_SYMLINK_TARGET_LENGTH) {
|
|
104
|
+
throw new Error(`File.fromPath: symlink ${JSON.stringify(rel)} target exceeds ${MAX_SYMLINK_TARGET_LENGTH} bytes`);
|
|
105
|
+
}
|
|
106
|
+
symlinks.push({ path: rel, target });
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
if (dirent.isDirectory()) {
|
|
110
|
+
// Directory pruning (git-correct + fast): an ignored dir is never descended.
|
|
111
|
+
if (ig.ignores(`${rel}/`)) {
|
|
112
|
+
ignoredCount += 1;
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
await visit(full);
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
if (!dirent.isFile()) {
|
|
119
|
+
// FIFO / socket / char / block device — skipped, never silently vanished.
|
|
120
|
+
dropped.push(rel);
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
if (ig.ignores(rel)) {
|
|
124
|
+
ignoredCount += 1;
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
const st = await stat(full);
|
|
128
|
+
entries.push({ rel, absPath: full, size: st.size });
|
|
129
|
+
totalSize += st.size;
|
|
130
|
+
if ((st.mode & 0o111) !== 0)
|
|
131
|
+
exec.push(rel);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
await visit(rootDir);
|
|
135
|
+
// Global lexicographic order (per-level sort is NOT globally sorted across the
|
|
136
|
+
// tree, e.g. `a.txt` vs `a/b.txt`), matching the canonical zip entry order.
|
|
137
|
+
entries.sort((a, b) => byString(a.rel, b.rel));
|
|
138
|
+
exec.sort(byString);
|
|
139
|
+
symlinks.sort((a, b) => byString(a.path, b.path));
|
|
140
|
+
dropped.sort(byString);
|
|
141
|
+
return { entries, exec, symlinks, dropped, ignoredCount, totalSize };
|
|
142
|
+
}
|
|
143
|
+
function byString(a, b) {
|
|
144
|
+
return a < b ? -1 : a > b ? 1 : 0;
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=node-walk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-walk.js","sourceRoot":"","sources":["../src/node-walk.ts"],"names":[],"mappings":"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"}
|
package/dist/retry.d.ts
CHANGED
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
* supplies it) an upstream {@link ProviderFault}. All other exhausted retries
|
|
20
20
|
* fall through to the transport's usual `AexApiError` / network rejection.
|
|
21
21
|
*/
|
|
22
|
-
import {
|
|
22
|
+
import { AexRateLimitError as AexRateLimitErrorBase, isRateLimited, type FetchLike } from "./_contracts/index.js";
|
|
23
|
+
export { isRateLimited };
|
|
23
24
|
/**
|
|
24
25
|
* HTTP statuses that are transient and worth retrying. The billable submits
|
|
25
26
|
* carry an idempotency key, so re-issuing them is safe. Everything not in this
|
|
@@ -104,16 +105,14 @@ export interface ProviderFault {
|
|
|
104
105
|
/** True when a {@link ProviderFault} represents a "back off and retry" signal. */
|
|
105
106
|
export declare function isThrottleFault(fault: ProviderFault): boolean;
|
|
106
107
|
/**
|
|
107
|
-
* Structured throttle error. Extends {@link
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
* `attempts`, `source`, and `providerFault`.
|
|
111
|
-
*
|
|
112
|
-
* available, redacted, on `.body`).
|
|
108
|
+
* Structured throttle error. Extends the contracts {@link AexRateLimitErrorBase}
|
|
109
|
+
* (the SINGLE rate-limit class the wire→exception factory also throws, so
|
|
110
|
+
* `isRateLimited` recognises BOTH — no split-brain) and enriches it with the
|
|
111
|
+
* retry-layer detail: `attempts`, `source`, and an upstream `providerFault`.
|
|
112
|
+
* `retryAfterMs` is inherited. The `message` is a fixed, non-leaky summary — it
|
|
113
|
+
* never echoes the raw error body (which is still available, redacted, on `.body`).
|
|
113
114
|
*/
|
|
114
|
-
export declare class AexRateLimitError extends
|
|
115
|
-
/** Milliseconds the server/provider asked us to wait, when known. */
|
|
116
|
-
readonly retryAfterMs?: number;
|
|
115
|
+
export declare class AexRateLimitError extends AexRateLimitErrorBase {
|
|
117
116
|
/** How many attempts were made before giving up. */
|
|
118
117
|
readonly attempts: number;
|
|
119
118
|
/** Whether the throttle came from the aex API plane or the upstream provider. */
|
|
@@ -130,8 +129,6 @@ export declare class AexRateLimitError extends AexApiError {
|
|
|
130
129
|
readonly message?: string;
|
|
131
130
|
});
|
|
132
131
|
}
|
|
133
|
-
/** Type guard for {@link AexRateLimitError}. */
|
|
134
|
-
export declare function isRateLimited(err: unknown): err is AexRateLimitError;
|
|
135
132
|
/**
|
|
136
133
|
* Best-effort parse of an unknown value into a {@link ProviderFault}. Tolerant
|
|
137
134
|
* of two shapes so the SDK consumes the runtime fault the moment it starts
|
|
@@ -159,4 +156,3 @@ export interface RetryDeps {
|
|
|
159
156
|
* an exhausted rate-limit/overloaded status, throws {@link AexRateLimitError}.
|
|
160
157
|
*/
|
|
161
158
|
export declare function withRetry(fetchImpl: FetchLike, retry: RetryOptions | false | undefined, deps?: RetryDeps): FetchLike;
|
|
162
|
-
export {};
|
package/dist/retry.js
CHANGED
|
@@ -19,7 +19,11 @@
|
|
|
19
19
|
* supplies it) an upstream {@link ProviderFault}. All other exhausted retries
|
|
20
20
|
* fall through to the transport's usual `AexApiError` / network rejection.
|
|
21
21
|
*/
|
|
22
|
-
import {
|
|
22
|
+
import { AexNetworkError, AexRateLimitError as AexRateLimitErrorBase, isRateLimited } from "./_contracts/index.js";
|
|
23
|
+
// The rate-limit guard is SINGLE-SOURCED in `@aexhq/contracts` (Wave 0 moved it
|
|
24
|
+
// there), so the wire→exception factory (`apiErrorFromResponse`) and this
|
|
25
|
+
// retry-layer error are recognised by the SAME `isRateLimited` — no split-brain.
|
|
26
|
+
export { isRateLimited };
|
|
23
27
|
/**
|
|
24
28
|
* HTTP statuses that are transient and worth retrying. The billable submits
|
|
25
29
|
* carry an idempotency key, so re-issuing them is safe. Everything not in this
|
|
@@ -94,16 +98,14 @@ export function isThrottleFault(fault) {
|
|
|
94
98
|
return THROTTLE_KINDS.has(fault.kind);
|
|
95
99
|
}
|
|
96
100
|
/**
|
|
97
|
-
* Structured throttle error. Extends {@link
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
* `attempts`, `source`, and `providerFault`.
|
|
101
|
-
*
|
|
102
|
-
* available, redacted, on `.body`).
|
|
101
|
+
* Structured throttle error. Extends the contracts {@link AexRateLimitErrorBase}
|
|
102
|
+
* (the SINGLE rate-limit class the wire→exception factory also throws, so
|
|
103
|
+
* `isRateLimited` recognises BOTH — no split-brain) and enriches it with the
|
|
104
|
+
* retry-layer detail: `attempts`, `source`, and an upstream `providerFault`.
|
|
105
|
+
* `retryAfterMs` is inherited. The `message` is a fixed, non-leaky summary — it
|
|
106
|
+
* never echoes the raw error body (which is still available, redacted, on `.body`).
|
|
103
107
|
*/
|
|
104
|
-
export class AexRateLimitError extends
|
|
105
|
-
/** Milliseconds the server/provider asked us to wait, when known. */
|
|
106
|
-
retryAfterMs;
|
|
108
|
+
export class AexRateLimitError extends AexRateLimitErrorBase {
|
|
107
109
|
/** How many attempts were made before giving up. */
|
|
108
110
|
attempts;
|
|
109
111
|
/** Whether the throttle came from the aex API plane or the upstream provider. */
|
|
@@ -111,19 +113,18 @@ export class AexRateLimitError extends AexApiError {
|
|
|
111
113
|
/** The upstream provider fault, when the throttle originated there. */
|
|
112
114
|
providerFault;
|
|
113
115
|
constructor(args) {
|
|
114
|
-
super(
|
|
116
|
+
super({
|
|
117
|
+
status: args.status,
|
|
118
|
+
message: args.message ?? defaultThrottleMessage(args),
|
|
119
|
+
body: args.body,
|
|
120
|
+
...(args.retryAfterMs !== undefined ? { retryAfterMs: args.retryAfterMs } : {})
|
|
121
|
+
});
|
|
115
122
|
this.attempts = args.attempts;
|
|
116
123
|
this.source = args.source ?? "api";
|
|
117
|
-
if (args.retryAfterMs !== undefined)
|
|
118
|
-
this.retryAfterMs = args.retryAfterMs;
|
|
119
124
|
if (args.providerFault !== undefined)
|
|
120
125
|
this.providerFault = args.providerFault;
|
|
121
126
|
}
|
|
122
127
|
}
|
|
123
|
-
/** Type guard for {@link AexRateLimitError}. */
|
|
124
|
-
export function isRateLimited(err) {
|
|
125
|
-
return err instanceof AexRateLimitError;
|
|
126
|
-
}
|
|
127
128
|
function defaultThrottleMessage(args) {
|
|
128
129
|
const who = args.source === "provider" ? "upstream provider" : "aex API";
|
|
129
130
|
const label = args.status === 529 ? "overloaded" : "rate limit reached";
|
package/dist/retry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"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"}
|
package/dist/skill.d.ts
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { type FetchLike, type SkillRef } 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 FIRST-CLASS, workspace-scoped, by-name bundle of instructional /
|
|
6
|
+
* executable content (`SKILL.md` at the bundle root plus any supporting files).
|
|
7
|
+
* It is DISTINCT from a {@link Tool}: skills are passed on the session's separate
|
|
8
|
+
* `skills:` input, not `tools:`, and a run gets a single `skills` meta-tool
|
|
9
|
+
* (list/load) rather than one load-tool per skill.
|
|
10
|
+
*
|
|
11
|
+
* Lifecycle mirrors `Secret` promotion, but keyed to a workspace name:
|
|
12
|
+
* - The `Skill.from*` factories read a bundle, lift `name` + `description` from
|
|
13
|
+
* the `SKILL.md` YAML frontmatter (an explicit `{ name }` overrides), and
|
|
14
|
+
* canonically zip + hash the bytes → a DRAFT skill.
|
|
15
|
+
* - `skill.upload(client)` UPSERTS the workspace skill by name: it stages the
|
|
16
|
+
* bytes to the content-addressed asset store (presign/finalize) and PUTs the
|
|
17
|
+
* registry entry. Identical bytes are a no-op. Returns an uploaded `Skill`
|
|
18
|
+
* whose wire ref is `{ kind:"skill", name }` (BY NAME — no assetId, no hash).
|
|
19
|
+
* - Passing a DRAFT skill in `skills:` auto-upserts it on submit (same
|
|
20
|
+
* ergonomic as a draft `Tool` / `File`).
|
|
21
|
+
*
|
|
22
|
+
* Binding is by name and mutable: a re-upload under the same name changes what
|
|
23
|
+
* every future run referencing that name sees.
|
|
24
|
+
*/
|
|
25
|
+
export declare class Skill {
|
|
26
|
+
#private;
|
|
27
|
+
/** Internal constructor. Use the `Skill.from*` factories. */
|
|
28
|
+
private constructor();
|
|
29
|
+
/** The wire ref: `{ kind:"skill", name }` once uploaded, or the draft shape before. */
|
|
30
|
+
get ref(): SkillRef | DraftSkillRef;
|
|
31
|
+
/** True for a local-bytes skill that has not been upserted to the workspace yet. */
|
|
32
|
+
get isDraft(): boolean;
|
|
33
|
+
get name(): string;
|
|
34
|
+
get description(): string;
|
|
35
|
+
/** Internal: the workspace name this instance already upserted, or undefined. */
|
|
36
|
+
get _cachedName(): string | undefined;
|
|
37
|
+
/** Internal: remember that this instance's bytes were upserted under `name`. */
|
|
38
|
+
_rememberUpload(name: string): void;
|
|
39
|
+
/**
|
|
40
|
+
* Read a local skill directory. It must contain `SKILL.md` at its root, whose
|
|
41
|
+
* YAML frontmatter supplies `description` and (unless `args.name` is given)
|
|
42
|
+
* `name`. When neither an explicit name nor a frontmatter name is present, the
|
|
43
|
+
* slugified directory basename is used.
|
|
44
|
+
*
|
|
45
|
+
* The directory is walked with FIDELITY (the same walk `File.fromPath` uses):
|
|
46
|
+
* `.aexignore` + the always-on defaults (`.git/`, `node_modules/`, …) prune the
|
|
47
|
+
* upload — so a skill dir carrying `node_modules` no longer ships it — and
|
|
48
|
+
* executable bits + symlinks are captured into a `.aexmeta.json` sidecar
|
|
49
|
+
* (emitted only when such metadata exists, so a pure-content skill dir stays
|
|
50
|
+
* byte-identical → dedup continuity). Bun/Node filesystem runtimes only.
|
|
51
|
+
*/
|
|
52
|
+
static fromDir(rootDir: string, args?: {
|
|
53
|
+
readonly name?: string;
|
|
54
|
+
readonly ignore?: IgnoreOptions;
|
|
55
|
+
}): Promise<Skill>;
|
|
56
|
+
/**
|
|
57
|
+
* Fetch a zip-archived skill from a URL. The archive is downloaded in the SDK
|
|
58
|
+
* process (caller-controlled URL — no SSRF surface), optionally integrity-checked
|
|
59
|
+
* against `sha256`, and reduced to the same files map as `Skill.fromDir` (a
|
|
60
|
+
* single wrapping top-level folder is stripped). It must expose `SKILL.md` at
|
|
61
|
+
* the root. The signed URL only needs to be valid for this call.
|
|
62
|
+
*/
|
|
63
|
+
static fromUrl(url: string, args?: {
|
|
64
|
+
readonly name?: string;
|
|
65
|
+
readonly sha256?: string;
|
|
66
|
+
readonly timeoutMs?: number;
|
|
67
|
+
readonly fetch?: FetchLike;
|
|
68
|
+
}): Promise<Skill>;
|
|
69
|
+
/**
|
|
70
|
+
* Build a draft skill from an in-memory files map (path -> string | bytes).
|
|
71
|
+
* Requires a root `SKILL.md`. Universal (no filesystem access). An optional
|
|
72
|
+
* `meta` (exec bits + symlinks) is threaded to the bundler for callers that
|
|
73
|
+
* carry fidelity metadata alongside a hand-built map; omit it and a plain map
|
|
74
|
+
* stays byte-identical to the pre-fidelity output.
|
|
75
|
+
*/
|
|
76
|
+
static fromFiles(args: {
|
|
77
|
+
readonly name?: string;
|
|
78
|
+
readonly files: SkillFiles;
|
|
79
|
+
readonly meta?: BundleMeta;
|
|
80
|
+
}): Promise<Skill>;
|
|
81
|
+
/** Convenience: build a single-file skill from a `SKILL.md` string. */
|
|
82
|
+
static fromContent(skillMd: string, args?: {
|
|
83
|
+
readonly name?: string;
|
|
84
|
+
}): Promise<Skill>;
|
|
85
|
+
/**
|
|
86
|
+
* Build a draft skill from an already-zipped bundle. The zip is unpacked to a
|
|
87
|
+
* files map (directory entries dropped), then re-canonicalised so a
|
|
88
|
+
* `fromBytes` skill and the identical `fromDir` / `fromFiles` skill dedup by
|
|
89
|
+
* content hash. Requires `SKILL.md` at the archive root.
|
|
90
|
+
*/
|
|
91
|
+
static fromBytes(args: {
|
|
92
|
+
readonly name?: string;
|
|
93
|
+
readonly zip: Uint8Array;
|
|
94
|
+
}): Promise<Skill>;
|
|
95
|
+
/**
|
|
96
|
+
* UPSERT this skill into the workspace registry by name and return an uploaded
|
|
97
|
+
* `Skill` whose ref is `{ kind:"skill", name }`. Two steps: stage the bytes to
|
|
98
|
+
* the content-addressed asset store (dedup makes identical bytes a no-op PUT),
|
|
99
|
+
* then PUT the registry entry (identical `contentHash` ⇒ server no-op). Reusing
|
|
100
|
+
* the SAME instance across submits skips both round-trips.
|
|
101
|
+
*
|
|
102
|
+
* Throws on an already-uploaded (non-draft) skill, mirroring `Tool.upload`.
|
|
103
|
+
*/
|
|
104
|
+
upload(client: SkillUploader): Promise<Skill>;
|
|
105
|
+
/**
|
|
106
|
+
* Internal: yield the draft's bytes + metadata so `client.run` / `openSession`
|
|
107
|
+
* can auto-upsert it. Non-consuming: a Skill is reusable across sessions — the
|
|
108
|
+
* first use caches the resolved name so later uses skip the round-trip. Returns
|
|
109
|
+
* undefined for an already-uploaded skill.
|
|
110
|
+
*/
|
|
111
|
+
_takeDraftBundle(): {
|
|
112
|
+
name: string;
|
|
113
|
+
description: string;
|
|
114
|
+
contentHash: string;
|
|
115
|
+
bytes: Uint8Array;
|
|
116
|
+
} | undefined;
|
|
117
|
+
toJSON(): SkillRef;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* SDK-internal draft marker. Never reaches the wire; `skill.upload` /
|
|
121
|
+
* `run` / `openSession` converts it to a by-name {@link SkillRef} once the bytes
|
|
122
|
+
* are upserted.
|
|
123
|
+
*/
|
|
124
|
+
export interface DraftSkillRef {
|
|
125
|
+
readonly kind: "draft";
|
|
126
|
+
readonly name: string;
|
|
127
|
+
readonly description: string;
|
|
128
|
+
readonly contentHash: string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Minimal client surface `skill.upload` needs to upsert a workspace skill.
|
|
132
|
+
* `Aex` satisfies it; defined structurally here so `skill.ts` does not import
|
|
133
|
+
* `client.ts` (which would be circular — `client.ts` imports `Skill`).
|
|
134
|
+
*/
|
|
135
|
+
export interface SkillUploader {
|
|
136
|
+
_uploadAsset(args: {
|
|
137
|
+
readonly bytes: Uint8Array;
|
|
138
|
+
readonly hash: string;
|
|
139
|
+
readonly contentType?: string;
|
|
140
|
+
}): Promise<{
|
|
141
|
+
readonly assetId: string;
|
|
142
|
+
}>;
|
|
143
|
+
_upsertSkill(args: {
|
|
144
|
+
readonly name: string;
|
|
145
|
+
readonly contentHash: string;
|
|
146
|
+
readonly description: string;
|
|
147
|
+
readonly sizeBytes: number;
|
|
148
|
+
}): Promise<{
|
|
149
|
+
readonly updated: boolean;
|
|
150
|
+
}>;
|
|
151
|
+
}
|