@cef-ai/cli 0.5.1 → 1.1.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 +28 -11
- package/dist/build/esbuild-plugin.d.ts +19 -27
- package/dist/build/esbuild-plugin.d.ts.map +1 -1
- package/dist/build/esbuild-plugin.js +19 -48
- package/dist/build/esbuild-plugin.js.map +1 -1
- package/dist/build/manifest.d.ts +16 -10
- package/dist/build/manifest.d.ts.map +1 -1
- package/dist/build/manifest.js +11 -1
- package/dist/build/manifest.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +81 -37
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/inspect.d.ts +9 -6
- package/dist/commands/inspect.d.ts.map +1 -1
- package/dist/commands/inspect.js +29 -32
- package/dist/commands/inspect.js.map +1 -1
- package/dist/commands/typegen.d.ts.map +1 -1
- package/dist/commands/typegen.js +5 -2
- package/dist/commands/typegen.js.map +1 -1
- package/dist/lib/jcs.d.ts +10 -2
- package/dist/lib/jcs.d.ts.map +1 -1
- package/dist/lib/jcs.js +6 -43
- package/dist/lib/jcs.js.map +1 -1
- package/dist/typegen/augment.d.ts +3 -5
- package/dist/typegen/augment.d.ts.map +1 -1
- package/dist/typegen/augment.js +24 -12
- package/dist/typegen/augment.js.map +1 -1
- package/dist/typegen/fetch.d.ts +10 -1
- package/dist/typegen/fetch.d.ts.map +1 -1
- package/dist/typegen/fetch.js +17 -5
- package/dist/typegen/fetch.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# @cef-ai/cli
|
|
2
2
|
|
|
3
3
|
`cef` — build, typegen, and inspect agents from the command line. Mirrors
|
|
4
|
-
the
|
|
5
|
-
carry the routing table the
|
|
4
|
+
the Agent Runtime contract (ADR-001): bundles install a flat handler map at
|
|
5
|
+
`globalThis.__handlers`, manifests carry the routing table the orchestrator
|
|
6
|
+
reads.
|
|
6
7
|
|
|
7
8
|
## Install
|
|
8
9
|
|
|
@@ -17,9 +18,9 @@ invoke it via `pnpm exec cef <subcommand>`.
|
|
|
17
18
|
|
|
18
19
|
| Subcommand | Status | Description |
|
|
19
20
|
| --- | --- | --- |
|
|
20
|
-
| `cef build` | shipped | Lint the agent entry, bundle with esbuild (
|
|
21
|
+
| `cef build` | shipped | Lint the agent entry, bundle with esbuild (the bundle imports the SDK runtime shims and installs `globalThis.__handlers`), emit `dist/<agentId>/{bundle.js,manifest.json}`. |
|
|
21
22
|
| `cef typegen` | shipped | Generate `.cef/generated.d.ts` (declaration-merged `KnownEventTypes`) and refresh `cef.lock.json`. |
|
|
22
|
-
| `cef inspect <agentDir>` | shipped | Read a built `manifest.json`, run the bundle in `node:vm`, and report the
|
|
23
|
+
| `cef inspect <agentDir>` | shipped | Read a built `manifest.json`, run the bundle in `node:vm`, and report the handler names exposed on `__handlers` plus any routing targets the manifest references but the bundle doesn't expose. |
|
|
23
24
|
| `cef test` | stub | Placeholder — use `vitest` directly with `@cef-ai/testing` until the integrated runner lands. |
|
|
24
25
|
| `cef publish` | stub | Placeholder — pending the Marketplace API. |
|
|
25
26
|
| `cef dev` | stub | Placeholder — pending the packaged platform image. |
|
|
@@ -29,12 +30,26 @@ invoke it via `pnpm exec cef <subcommand>`.
|
|
|
29
30
|
```
|
|
30
31
|
dist/
|
|
31
32
|
<agentId>/
|
|
32
|
-
bundle.js # IIFE that
|
|
33
|
-
|
|
34
|
-
#
|
|
35
|
-
#
|
|
33
|
+
bundle.js # IIFE that installs globalThis.__handlers — a flat map
|
|
34
|
+
# of handler functions the runtime dispatches as
|
|
35
|
+
# __handlers[name](event, context). Event handlers are
|
|
36
|
+
# keyed "<engagementId>::<method>"; lifecycle hooks under
|
|
37
|
+
# the fixed keys onStart / onClose.
|
|
38
|
+
manifest.json # AgentManifest body — bundle embedded inline; each
|
|
39
|
+
# engagement carries handles{eventType -> handlerName}
|
|
40
|
+
# (namespaced) and hooks[] ("start"/"close"). Identity /
|
|
41
|
+
# signature fields are blank until `cef publish` signs.
|
|
36
42
|
```
|
|
37
43
|
|
|
44
|
+
The handler-name namespacing (`<engagementId>::<method>`) keeps the flat
|
|
45
|
+
`__handlers` map collision-free when multiple engagements declare a method
|
|
46
|
+
of the same name; the orchestrator returns these strings verbatim from
|
|
47
|
+
`HandlerFor`, so AR looks them up directly. Lifecycle hooks are NOT
|
|
48
|
+
namespaced — the orchestrator hardcodes `onStart` / `onClose` — so a method
|
|
49
|
+
name may be reused as an event handler across engagements, but only one
|
|
50
|
+
engagement per agent may own each lifecycle hook (`cef build` errors on a
|
|
51
|
+
collision).
|
|
52
|
+
|
|
38
53
|
`cef typegen` reads `cef.config.ts` (and `publishes` declarations) and
|
|
39
54
|
writes `.cef/generated.d.ts`, populating `KnownEventTypes` so authors
|
|
40
55
|
get string-literal autocompletion on `@OnEvent` and `ctx.publish`. The
|
|
@@ -68,7 +83,9 @@ const inspected = await cefInspect({
|
|
|
68
83
|
agentDir: "dist/echo",
|
|
69
84
|
print: false,
|
|
70
85
|
});
|
|
71
|
-
|
|
86
|
+
for (const e of inspected.engagements) {
|
|
87
|
+
console.log(e.id, e.handles, e.hooks, e.exposedMethods, e.missingMethods);
|
|
88
|
+
}
|
|
72
89
|
```
|
|
73
90
|
|
|
74
91
|
## Build-time lints
|
|
@@ -85,8 +102,8 @@ warnings agree with CI failures.
|
|
|
85
102
|
- `ctx.models.X` member must reference a declared model alias.
|
|
86
103
|
- Imports must not target the banned module list (Node built-ins like
|
|
87
104
|
`fs`, `net`, `http`, `child_process`, plus sync DB / network npm
|
|
88
|
-
packages). Agents
|
|
89
|
-
`globalThis.crypto` (WebCrypto) replaces `node:crypto`.
|
|
105
|
+
packages). Agents use the global `fetch` for HTTP and `ctx.cubby` for
|
|
106
|
+
state; `globalThis.crypto` (WebCrypto) replaces `node:crypto`.
|
|
90
107
|
|
|
91
108
|
The full banned-module list and rationale live in `agent-sdk.md` §7.
|
|
92
109
|
|
|
@@ -1,32 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Bundle-shape constants shared between the wrapper renderer and the
|
|
3
|
+
* metadata-extraction step in `commands/build.ts`.
|
|
3
4
|
*
|
|
4
|
-
* Contract (
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* Contract (AR ADR-001): the bundle exposes a FLAT handler map at
|
|
6
|
+
* `globalThis.__handlers` — one function per handler name — which the Agent
|
|
7
|
+
* Runtime dispatches against as `globalThis.__handlers[name](event,
|
|
8
|
+
* context)`. There is no engagement registry on the global surface and no
|
|
9
|
+
* `__cefAgent` (AR carries no consumer-specific vocabulary).
|
|
9
10
|
*
|
|
10
|
-
* The
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* intermediate `__cefBundle` global so the runtime sandbox sees a clean
|
|
17
|
-
* surface with only `__cefAgent` set.
|
|
18
|
-
*
|
|
19
|
-
* The footer does NOT assert per-class decorator presence — that check moved
|
|
20
|
-
* to build-time (`bundleAgent`), where the error message can name the
|
|
21
|
-
* specific engagement id. The footer only fails when the wrapper export is
|
|
22
|
-
* structurally missing, which is a build-pipeline bug rather than a user
|
|
23
|
-
* error.
|
|
24
|
-
*/
|
|
25
|
-
export declare const IIFE_FOOTER: string;
|
|
26
|
-
/**
|
|
27
|
-
* Global name esbuild uses to expose the bundled module's exports. Kept in
|
|
28
|
-
* sync with {@link IIFE_FOOTER} above so callers can wire both pieces from
|
|
29
|
-
* a single source of truth.
|
|
11
|
+
* The generated wrapper imports each engagement class plus
|
|
12
|
+
* `registerHandlers` from `@cef-ai/agent-sdk/runtime` and calls it at
|
|
13
|
+
* top-level; running the bundled IIFE installs `globalThis.__handlers`
|
|
14
|
+
* (and, non-enumerably, `__handlers.__engagements` — the decorator metadata
|
|
15
|
+
* the manifest emitter reads back). No esbuild footer is needed: the
|
|
16
|
+
* registration is the wrapper's own top-level side effect.
|
|
30
17
|
*/
|
|
31
|
-
|
|
18
|
+
/** Import specifier for the in-bundle runtime shim layer. */
|
|
19
|
+
export declare const RUNTIME_IMPORT_SPECIFIER = "@cef-ai/agent-sdk/runtime";
|
|
20
|
+
/** The global the runtime installs and AR dispatches against. */
|
|
21
|
+
export declare const HANDLERS_GLOBAL = "__handlers";
|
|
22
|
+
/** Non-enumerable property on the handler map carrying build-time metadata. */
|
|
23
|
+
export declare const ENGAGEMENTS_META_PROP = "__engagements";
|
|
32
24
|
//# sourceMappingURL=esbuild-plugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esbuild-plugin.d.ts","sourceRoot":"","sources":["../../src/build/esbuild-plugin.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"esbuild-plugin.d.ts","sourceRoot":"","sources":["../../src/build/esbuild-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,6DAA6D;AAC7D,eAAO,MAAM,wBAAwB,8BAA8B,CAAC;AAEpE,iEAAiE;AACjE,eAAO,MAAM,eAAe,eAAe,CAAC;AAE5C,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,kBAAkB,CAAC"}
|
|
@@ -1,53 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Bundle-shape constants shared between the wrapper renderer and the
|
|
3
|
+
* metadata-extraction step in `commands/build.ts`.
|
|
3
4
|
*
|
|
4
|
-
* Contract (
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* Contract (AR ADR-001): the bundle exposes a FLAT handler map at
|
|
6
|
+
* `globalThis.__handlers` — one function per handler name — which the Agent
|
|
7
|
+
* Runtime dispatches against as `globalThis.__handlers[name](event,
|
|
8
|
+
* context)`. There is no engagement registry on the global surface and no
|
|
9
|
+
* `__cefAgent` (AR carries no consumer-specific vocabulary).
|
|
9
10
|
*
|
|
10
|
-
* The
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* intermediate `__cefBundle` global so the runtime sandbox sees a clean
|
|
17
|
-
* surface with only `__cefAgent` set.
|
|
18
|
-
*
|
|
19
|
-
* The footer does NOT assert per-class decorator presence — that check moved
|
|
20
|
-
* to build-time (`bundleAgent`), where the error message can name the
|
|
21
|
-
* specific engagement id. The footer only fails when the wrapper export is
|
|
22
|
-
* structurally missing, which is a build-pipeline bug rather than a user
|
|
23
|
-
* error.
|
|
24
|
-
*/
|
|
25
|
-
export const IIFE_FOOTER = `
|
|
26
|
-
;(function () {
|
|
27
|
-
var classes = (typeof globalThis.__cefBundle !== "undefined" && globalThis.__cefBundle.engagements)
|
|
28
|
-
? globalThis.__cefBundle.engagements
|
|
29
|
-
: null;
|
|
30
|
-
if (!classes) {
|
|
31
|
-
throw new Error("@cef-ai/agent-sdk: bundle has no engagements (export const engagements missing from wrapper)");
|
|
32
|
-
}
|
|
33
|
-
var instances = {};
|
|
34
|
-
var ids = Object.keys(classes);
|
|
35
|
-
for (var i = 0; i < ids.length; i++) {
|
|
36
|
-
var id = ids[i];
|
|
37
|
-
var Cls = classes[id];
|
|
38
|
-
if (!Cls) {
|
|
39
|
-
throw new Error("@cef-ai/agent-sdk: engagement \\"" + id + "\\" has no class export");
|
|
40
|
-
}
|
|
41
|
-
instances[id] = new Cls();
|
|
42
|
-
}
|
|
43
|
-
globalThis.__cefAgent = { engagements: instances };
|
|
44
|
-
try { delete globalThis.__cefBundle; } catch (_) { globalThis.__cefBundle = undefined; }
|
|
45
|
-
})();
|
|
46
|
-
`.trim();
|
|
47
|
-
/**
|
|
48
|
-
* Global name esbuild uses to expose the bundled module's exports. Kept in
|
|
49
|
-
* sync with {@link IIFE_FOOTER} above so callers can wire both pieces from
|
|
50
|
-
* a single source of truth.
|
|
11
|
+
* The generated wrapper imports each engagement class plus
|
|
12
|
+
* `registerHandlers` from `@cef-ai/agent-sdk/runtime` and calls it at
|
|
13
|
+
* top-level; running the bundled IIFE installs `globalThis.__handlers`
|
|
14
|
+
* (and, non-enumerably, `__handlers.__engagements` — the decorator metadata
|
|
15
|
+
* the manifest emitter reads back). No esbuild footer is needed: the
|
|
16
|
+
* registration is the wrapper's own top-level side effect.
|
|
51
17
|
*/
|
|
52
|
-
|
|
18
|
+
/** Import specifier for the in-bundle runtime shim layer. */
|
|
19
|
+
export const RUNTIME_IMPORT_SPECIFIER = "@cef-ai/agent-sdk/runtime";
|
|
20
|
+
/** The global the runtime installs and AR dispatches against. */
|
|
21
|
+
export const HANDLERS_GLOBAL = "__handlers";
|
|
22
|
+
/** Non-enumerable property on the handler map carrying build-time metadata. */
|
|
23
|
+
export const ENGAGEMENTS_META_PROP = "__engagements";
|
|
53
24
|
//# sourceMappingURL=esbuild-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esbuild-plugin.js","sourceRoot":"","sources":["../../src/build/esbuild-plugin.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"esbuild-plugin.js","sourceRoot":"","sources":["../../src/build/esbuild-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,6DAA6D;AAC7D,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAA2B,CAAC;AAEpE,iEAAiE;AACjE,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAE5C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,eAAe,CAAC"}
|
package/dist/build/manifest.d.ts
CHANGED
|
@@ -8,15 +8,17 @@ import type { AgentCard, JSONSchema, Targeting } from "./load-config.js";
|
|
|
8
8
|
* handlerName, per `prototype.md` §"AgentManifest.Engagements");
|
|
9
9
|
* - aggregates `events` keys + caller-provided `publishes` into the
|
|
10
10
|
* top-level derived unions;
|
|
11
|
-
* -
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* - derives the engagement's `hooks` (`"start"` / `"close"`) from which
|
|
12
|
+
* lifecycle methods are present, so the orchestrator knows to dispatch
|
|
13
|
+
* the synthetic `__start__` / `__close__` events. The method names
|
|
14
|
+
* themselves are not emitted — the runtime exposes lifecycle handlers
|
|
15
|
+
* under the fixed keys `onStart` / `onClose`.
|
|
14
16
|
*/
|
|
15
17
|
export interface ManifestEngagementInput {
|
|
16
18
|
id: string;
|
|
17
19
|
goal?: string;
|
|
18
20
|
events: Record<string, string>;
|
|
19
|
-
/**
|
|
21
|
+
/** Which lifecycle hooks the engagement declares; drives `hooks[]`. */
|
|
20
22
|
lifecycle: {
|
|
21
23
|
start?: string;
|
|
22
24
|
close?: string;
|
|
@@ -89,17 +91,21 @@ export interface InlinedCubby {
|
|
|
89
91
|
}>;
|
|
90
92
|
}
|
|
91
93
|
/**
|
|
92
|
-
* Per-engagement slice of the emitted manifest
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
94
|
+
* Per-engagement slice of the emitted manifest. `handles` is a map
|
|
95
|
+
* (eventType → handlerName); `hooks` is the opt-in lifecycle set
|
|
96
|
+
* (`"start"` / `"close"`).
|
|
97
|
+
*
|
|
98
|
+
* `hooks` is load-bearing: the orchestrator's `HandlerFor` dispatches the
|
|
99
|
+
* synthetic `__start__` / `__close__` events only when the engagement
|
|
100
|
+
* declares the corresponding hook here (marketplace `Engagement.HasHook`),
|
|
101
|
+
* then invokes the fixed handler names `onStart` / `onClose`. Per-engagement
|
|
102
|
+
* `publishes` are still carried at the agent level only.
|
|
98
103
|
*/
|
|
99
104
|
export interface ManifestEngagement {
|
|
100
105
|
id: string;
|
|
101
106
|
goal: string;
|
|
102
107
|
handles: Record<string, string>;
|
|
108
|
+
hooks: string[];
|
|
103
109
|
}
|
|
104
110
|
/** Settings declaration as emitted into the manifest. */
|
|
105
111
|
export type ManifestSetting = NonNullable<ManifestConfigInput["settings"]>[number];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/build/manifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/build/manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/build/manifest.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { handlerKey } from "@cef-ai/agent-sdk/runtime";
|
|
3
4
|
import { parseDuration } from "./duration.js";
|
|
4
5
|
const EMPTY_CARD = { name: "", description: "" };
|
|
5
6
|
/** Default idle timeout — author-facing string; see `AgentConfig.idleTimeout`. */
|
|
@@ -53,15 +54,24 @@ export async function buildManifest(input) {
|
|
|
53
54
|
const manifestEngagements = sortedEngagements.map((e) => {
|
|
54
55
|
const handles = {};
|
|
55
56
|
for (const type of Object.keys(e.events).sort()) {
|
|
56
|
-
|
|
57
|
+
// Namespaced per engagement so the flat __handlers map stays
|
|
58
|
+
// collision-free; the orchestrator returns this verbatim from
|
|
59
|
+
// HandlerFor and AR looks it up. Must match runtime `handlerKey`.
|
|
60
|
+
handles[type] = handlerKey(e.id, e.events[type]);
|
|
57
61
|
allHandles.add(type);
|
|
58
62
|
}
|
|
59
63
|
for (const t of e.publishes)
|
|
60
64
|
allPublishes.add(t);
|
|
65
|
+
const hooks = [];
|
|
66
|
+
if (e.lifecycle.start)
|
|
67
|
+
hooks.push("start");
|
|
68
|
+
if (e.lifecycle.close)
|
|
69
|
+
hooks.push("close");
|
|
61
70
|
return {
|
|
62
71
|
id: e.id,
|
|
63
72
|
goal: e.goal ?? "",
|
|
64
73
|
handles,
|
|
74
|
+
hooks,
|
|
65
75
|
};
|
|
66
76
|
});
|
|
67
77
|
const cubbies = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/build/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/build/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AA6BA;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,KAAK,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;AAgOD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,QAAQ,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CA6FlF"}
|
package/dist/commands/build.js
CHANGED
|
@@ -3,8 +3,7 @@ import fs from "node:fs/promises";
|
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import vm from "node:vm";
|
|
5
5
|
import * as esbuild from "esbuild";
|
|
6
|
-
import {
|
|
7
|
-
import { ESBUILD_GLOBAL_NAME, IIFE_FOOTER, } from "../build/esbuild-plugin.js";
|
|
6
|
+
import { ENGAGEMENTS_META_PROP, HANDLERS_GLOBAL, RUNTIME_IMPORT_SPECIFIER, } from "../build/esbuild-plugin.js";
|
|
8
7
|
import { lintAgentSource } from "../build/lints.js";
|
|
9
8
|
import { flattenAgents, loadConfig, normalizeEngagements, } from "../build/load-config.js";
|
|
10
9
|
import { emitManifest, } from "../build/manifest.js";
|
|
@@ -36,33 +35,81 @@ async function findNodeModulesParent(start) {
|
|
|
36
35
|
}
|
|
37
36
|
/**
|
|
38
37
|
* Generate the temporary wrapper module that imports each engagement's
|
|
39
|
-
* default export
|
|
40
|
-
* this wrapper as
|
|
41
|
-
*
|
|
42
|
-
*
|
|
38
|
+
* default export plus the SDK's `registerHandlers`, and calls it at
|
|
39
|
+
* top-level. esbuild bundles this wrapper as an IIFE; running the bundle
|
|
40
|
+
* installs `globalThis.__handlers` (the flat handler map AR dispatches
|
|
41
|
+
* against) — see esbuild-plugin.ts for the contract.
|
|
43
42
|
*
|
|
44
43
|
* Imports use absolute file paths so resolution doesn't depend on the
|
|
45
|
-
* wrapper's directory
|
|
44
|
+
* wrapper's directory; the runtime import is a bare specifier resolved
|
|
45
|
+
* against the `node_modules` ancestor the wrapper is placed under.
|
|
46
46
|
*/
|
|
47
|
-
function renderWrapperSource(engagements) {
|
|
47
|
+
function renderWrapperSource(engagements, modelRefs) {
|
|
48
48
|
const importLines = engagements
|
|
49
49
|
.map((e, i) => `import _e${i} from ${JSON.stringify(e.entry)};`)
|
|
50
50
|
.join("\n");
|
|
51
51
|
const mapBody = engagements
|
|
52
52
|
.map((e, i) => ` ${JSON.stringify(e.id)}: _e${i}`)
|
|
53
53
|
.join(",\n");
|
|
54
|
-
|
|
54
|
+
// Bake the resolved alias → ModelRef map into the bundle so `ctx.models`
|
|
55
|
+
// knows each model's identity without the orchestrator carrying it.
|
|
56
|
+
const options = `{ models: ${JSON.stringify(modelRefs)} }`;
|
|
57
|
+
return (`import { registerHandlers } from ${JSON.stringify(RUNTIME_IMPORT_SPECIFIER)};\n` +
|
|
58
|
+
`${importLines}\n` +
|
|
59
|
+
`registerHandlers({\n${mapBody}\n}, ${options});\n`);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Resolve a `defineAgent({ models })` value into a {@link ModelRef}. Models
|
|
63
|
+
* are declared as DDC `model.json` URLs (e.g.
|
|
64
|
+
* `https://<host>/<bucket>/models/<name>/<version>/model.json`); the bucket /
|
|
65
|
+
* name / version are parsed out here, once, at build time — the runtime never
|
|
66
|
+
* parses a URL. `name` / `version` are validated by `cef typegen` against the
|
|
67
|
+
* fetched `model.json`.
|
|
68
|
+
*/
|
|
69
|
+
function parseModelRef(alias, declared) {
|
|
70
|
+
let pathname;
|
|
71
|
+
try {
|
|
72
|
+
pathname = new URL(declared).pathname;
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
throw new Error(`[@cef-ai/cli] model "${alias}": value must be a DDC model.json URL, got "${declared}"`);
|
|
76
|
+
}
|
|
77
|
+
// Expected path: /<bucket>/models/<name>/<version>/model.json
|
|
78
|
+
const parts = pathname.split("/").filter(Boolean);
|
|
79
|
+
const file = parts[parts.length - 1] ?? "";
|
|
80
|
+
if (parts.length < 5 || parts[1] !== "models" || !file.endsWith("model.json")) {
|
|
81
|
+
throw new Error(`[@cef-ai/cli] model "${alias}": expected a DDC model.json URL ` +
|
|
82
|
+
`(.../<bucket>/models/<name>/<version>/model.json), got "${declared}"`);
|
|
83
|
+
}
|
|
84
|
+
const bucket = Number(parts[0]);
|
|
85
|
+
if (!Number.isInteger(bucket)) {
|
|
86
|
+
throw new Error(`[@cef-ai/cli] model "${alias}": bucket segment "${parts[0]}" is not an integer in "${declared}"`);
|
|
87
|
+
}
|
|
88
|
+
return { bucket, name: parts[2], version: parts[3] };
|
|
89
|
+
}
|
|
90
|
+
/** Resolve all of an agent's declared models into the baked ref map. */
|
|
91
|
+
function resolveModelRefs(models) {
|
|
92
|
+
const out = {};
|
|
93
|
+
for (const [alias, declared] of Object.entries(models ?? {})) {
|
|
94
|
+
out[alias] = parseModelRef(alias, declared);
|
|
95
|
+
}
|
|
96
|
+
return out;
|
|
55
97
|
}
|
|
56
98
|
/**
|
|
57
99
|
* Bundle one agent's engagement set into `<outDir>/<agentId>/bundle.js`.
|
|
58
100
|
*
|
|
59
101
|
* The flow is:
|
|
60
|
-
* 1. Render a temp wrapper that
|
|
61
|
-
*
|
|
62
|
-
* 2. Run esbuild on the wrapper (IIFE
|
|
63
|
-
* 3. Execute the bundle in a fresh `vm` context
|
|
64
|
-
*
|
|
65
|
-
*
|
|
102
|
+
* 1. Render a temp wrapper that imports every engagement class + the SDK
|
|
103
|
+
* runtime's `registerHandlers` and calls it.
|
|
104
|
+
* 2. Run esbuild on the wrapper (IIFE; the runtime shims are inlined).
|
|
105
|
+
* 3. Execute the bundle in a fresh `vm` context — `registerHandlers`
|
|
106
|
+
* installs `globalThis.__handlers` and records the per-engagement
|
|
107
|
+
* decorator metadata on its non-enumerable `__engagements` property,
|
|
108
|
+
* which we read back for the manifest. Handler-key collisions across
|
|
109
|
+
* engagements throw here, surfacing as a build error.
|
|
110
|
+
*
|
|
111
|
+
* Constructors are NOT run at build time (the runtime instantiates per
|
|
112
|
+
* invocation), so they may have side effects.
|
|
66
113
|
*
|
|
67
114
|
* Decorators are still TC39-stage-2 syntax in our SDK, so we feed esbuild
|
|
68
115
|
* a `tsconfigRaw` that turns on `experimentalDecorators` regardless of
|
|
@@ -83,7 +130,8 @@ async function bundleAgent(args) {
|
|
|
83
130
|
const cacheDir = path.join(nmParent, "node_modules", ".cef", "build-cache");
|
|
84
131
|
await fs.mkdir(cacheDir, { recursive: true });
|
|
85
132
|
const wrapperPath = path.join(cacheDir, `wrapper-${agent.id}-${process.pid}-${crypto.randomBytes(6).toString("hex")}.ts`);
|
|
86
|
-
|
|
133
|
+
const modelRefs = resolveModelRefs(agent.models);
|
|
134
|
+
await fs.writeFile(wrapperPath, renderWrapperSource(engagements, modelRefs), "utf8");
|
|
87
135
|
try {
|
|
88
136
|
await esbuild.build({
|
|
89
137
|
entryPoints: [wrapperPath],
|
|
@@ -91,9 +139,7 @@ async function bundleAgent(args) {
|
|
|
91
139
|
format: "iife",
|
|
92
140
|
target: "es2022",
|
|
93
141
|
platform: "neutral",
|
|
94
|
-
globalName: ESBUILD_GLOBAL_NAME,
|
|
95
142
|
outfile: bundlePath,
|
|
96
|
-
footer: { js: IIFE_FOOTER },
|
|
97
143
|
logLevel: "silent",
|
|
98
144
|
// Inline everything; the runtime sandbox has no module loader.
|
|
99
145
|
external: [],
|
|
@@ -111,9 +157,9 @@ async function bundleAgent(args) {
|
|
|
111
157
|
await fs.unlink(wrapperPath).catch(() => { });
|
|
112
158
|
}
|
|
113
159
|
// Read the metadata back by executing the bundle in a fresh vm sandbox.
|
|
114
|
-
//
|
|
115
|
-
//
|
|
116
|
-
//
|
|
160
|
+
// registerHandlers installs globalThis.__handlers and records the
|
|
161
|
+
// per-engagement decorator metadata on its non-enumerable __engagements
|
|
162
|
+
// property. A handler-key collision across engagements throws here.
|
|
117
163
|
const bundleSource = await fs.readFile(bundlePath, "utf8");
|
|
118
164
|
const sandbox = { console };
|
|
119
165
|
sandbox.globalThis = sandbox;
|
|
@@ -122,28 +168,26 @@ async function bundleAgent(args) {
|
|
|
122
168
|
}
|
|
123
169
|
catch (e) {
|
|
124
170
|
const msg = e?.message ?? String(e);
|
|
125
|
-
throw new Error(`[@cef-ai/cli] agent "${agent.id}" threw while
|
|
126
|
-
`Constructors must be side-effect-free for cef build to read decorator metadata. ` +
|
|
171
|
+
throw new Error(`[@cef-ai/cli] agent "${agent.id}": bundle threw while registering handlers. ` +
|
|
127
172
|
`Original error: ${msg}`);
|
|
128
173
|
}
|
|
129
|
-
const
|
|
130
|
-
|
|
131
|
-
|
|
174
|
+
const handlers = sandbox[HANDLERS_GLOBAL];
|
|
175
|
+
const buildMeta = handlers?.[ENGAGEMENTS_META_PROP];
|
|
176
|
+
if (!handlers || !buildMeta) {
|
|
177
|
+
throw new Error(`[@cef-ai/cli] agent "${agent.id}": bundle did not install globalThis.${HANDLERS_GLOBAL} ` +
|
|
178
|
+
`(is @cef-ai/agent-sdk/runtime resolvable and registerHandlers called?)`);
|
|
132
179
|
}
|
|
180
|
+
const byId = new Map();
|
|
181
|
+
for (const m of buildMeta)
|
|
182
|
+
byId.set(m.id, m);
|
|
133
183
|
const metas = new Map();
|
|
134
184
|
for (const e of engagements) {
|
|
135
|
-
const
|
|
136
|
-
if (!
|
|
137
|
-
throw new Error(`[@cef-ai/cli] engagement "${e.id}" in agent "${agent.id}": not
|
|
138
|
-
|
|
139
|
-
const meta = inst.constructor[ENGAGEMENT_METADATA];
|
|
140
|
-
if (!meta) {
|
|
141
|
-
throw new Error(`[@cef-ai/cli] engagement "${e.id}" in agent "${agent.id}": class has no @OnEvent/@OnStart/@OnClose/@Engagement decorators`);
|
|
142
|
-
}
|
|
143
|
-
if (meta.id !== undefined && meta.id !== e.id) {
|
|
144
|
-
throw new Error(`[@cef-ai/cli] engagement "${e.id}" in agent "${agent.id}": @Engagement decorator declares id "${meta.id}" but config declares "${e.id}"`);
|
|
185
|
+
const m = byId.get(e.id);
|
|
186
|
+
if (!m) {
|
|
187
|
+
throw new Error(`[@cef-ai/cli] engagement "${e.id}" in agent "${agent.id}": not registered by the bundle ` +
|
|
188
|
+
`(missing @OnEvent/@OnStart/@OnClose/@Engagement decorators?)`);
|
|
145
189
|
}
|
|
146
|
-
metas.set(e.id,
|
|
190
|
+
metas.set(e.id, { id: m.id, goal: m.goal, events: m.events, lifecycle: m.lifecycle });
|
|
147
191
|
}
|
|
148
192
|
const stat = await fs.stat(bundlePath);
|
|
149
193
|
return { bundlePath, bundleBytes: stat.size, metas };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAKnC,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAGL,aAAa,EACb,UAAU,EACV,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,YAAY,GAEb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAyB1D;;;;;;;GAOG;AACH,KAAK,UAAU,qBAAqB,CAAC,KAAa;IAChD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;YAC3D,IAAI,IAAI,CAAC,WAAW,EAAE;gBAAE,OAAO,GAAG,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAChC,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,mBAAmB,CAC1B,WAAmC,EACnC,SAAmC;IAEnC,MAAM,WAAW,GAAG,WAAW;SAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;SAC/D,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,OAAO,GAAG,WAAW;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;SAClD,IAAI,CAAC,KAAK,CAAC,CAAC;IACf,yEAAyE;IACzE,oEAAoE;IACpE,MAAM,OAAO,GAAG,aAAa,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;IAC3D,OAAO,CACL,oCAAoC,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,KAAK;QACjF,GAAG,WAAW,IAAI;QAClB,uBAAuB,OAAO,QAAQ,OAAO,MAAM,CACpD,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,KAAa,EAAE,QAAgB;IACpD,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,wBAAwB,KAAK,+CAA+C,QAAQ,GAAG,CACxF,CAAC;IACJ,CAAC;IACD,8DAA8D;IAC9D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,KAAK,CACb,wBAAwB,KAAK,mCAAmC;YAC9D,2DAA2D,QAAQ,GAAG,CACzE,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,wBAAwB,KAAK,sBAAsB,KAAK,CAAC,CAAC,CAAC,2BAA2B,QAAQ,GAAG,CAClG,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC;AACzD,CAAC;AAED,wEAAwE;AACxE,SAAS,gBAAgB,CAAC,MAA0C;IAClE,MAAM,GAAG,GAA6B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,KAAK,UAAU,WAAW,CAAC,IAK1B;IAKC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjD,wEAAwE;IACxE,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,2DAA2D,SAAS,8BAA8B,CACnG,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC5E,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAC3B,QAAQ,EACR,WAAW,KAAK,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CACjF,CAAC;IACF,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IAErF,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,KAAK,CAAC;YAClB,WAAW,EAAE,CAAC,WAAW,CAAC;YAC1B,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,QAAQ;YAClB,+DAA+D;YAC/D,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;gBAC1B,eAAe,EAAE;oBACf,sBAAsB,EAAE,IAAI;oBAC5B,MAAM,EAAE,QAAQ;oBAChB,uBAAuB,EAAE,KAAK;iBAC/B;aACF,CAAC;YACF,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,wEAAwE;IACxE,kEAAkE;IAClE,wEAAwE;IACxE,oEAAoE;IACpE,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC3D,MAAM,OAAO,GAA4B,EAAE,OAAO,EAAE,CAAC;IACrD,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC;IAC7B,IAAI,CAAC;QACH,EAAE,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAI,CAAW,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,wBAAwB,KAAK,CAAC,EAAE,8CAA8C;YAC5E,mBAAmB,GAAG,EAAE,CAC3B,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,CAE3B,CAAC;IACd,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC,qBAAqB,CAAC,CAAC;IACpD,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,wBAAwB,KAAK,CAAC,EAAE,wCAAwC,eAAe,GAAG;YACxF,wEAAwE,CAC3E,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAA+B,CAAC;IACpD,KAAK,MAAM,CAAC,IAAI,SAAS;QAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAE7C,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,IAAI,KAAK,CACb,6BAA6B,CAAC,CAAC,EAAE,eAAe,KAAK,CAAC,EAAE,kCAAkC;gBACxF,8DAA8D,CACjE,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB,EAAE;IACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU;QAChC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC;QACpC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE3C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAErC,MAAM,MAAM,GAA6B,EAAE,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAE3D,qEAAqE;QACrE,mEAAmE;QACnE,oEAAoE;QACpE,gDAAgD;QAChD,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAClC,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAC1C,CAAC;QACF,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC3D,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,eAAe,CAAC;gBACjC,SAAS,EAAE,CAAC,CAAC,KAAK;gBAClB,oBAAoB;gBACpB,oBAAoB;aACrB,CAAC,CAAC;YACH,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QACzD,CAAC;QAED,wEAAwE;QACxE,qEAAqE;QACrE,+CAA+C;QAC/C,MAAM,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAAC;YACtC,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAC;QAEH,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC;YAC3D,KAAK;YACL,WAAW;YACX,SAAS;YACT,MAAM;SACP,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAA8B,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACxE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;YAC9B,MAAM,KAAK,GAA4B;gBACrC,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;gBACzB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;gBAC/B,SAAS,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE;aAClD,CAAC;YACF,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACpD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;QAClE,MAAM,YAAY,CAAC,YAAY,EAAE;YAC/B,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,UAAU;YACV,WAAW,EAAE,gBAAgB;YAC7B,MAAM,EAAE;gBACN,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;gBAC5C,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,YAAY,EAAE,KAAK,CAAC,YAAY;aACjC;YACD,SAAS;YACT,SAAS;SACV,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,UAAU;YACV,YAAY;YACZ,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC"}
|
|
@@ -14,9 +14,11 @@ export interface InspectEngagement {
|
|
|
14
14
|
goal?: string;
|
|
15
15
|
/** eventType → handlerName, copied from `manifest.engagements[i].handles`. */
|
|
16
16
|
handles: Record<string, string>;
|
|
17
|
-
/**
|
|
17
|
+
/** Lifecycle hooks the engagement opts into (`"start"` / `"close"`). */
|
|
18
|
+
hooks: string[];
|
|
19
|
+
/** Handler names this engagement references that ARE present on `__handlers`. */
|
|
18
20
|
exposedMethods: string[];
|
|
19
|
-
/**
|
|
21
|
+
/** Handler names referenced by manifest routing that are missing from `__handlers`. */
|
|
20
22
|
missingMethods: string[];
|
|
21
23
|
}
|
|
22
24
|
export interface CefInspectResult {
|
|
@@ -37,10 +39,11 @@ export interface CefInspectResult {
|
|
|
37
39
|
*
|
|
38
40
|
* Reads `<agentDir>/manifest.json` for the per-engagement routing tables
|
|
39
41
|
* and executes `<agentDir>/bundle.js` in a fresh `node:vm` context to
|
|
40
|
-
* enumerate the
|
|
41
|
-
* `globalThis.
|
|
42
|
-
*
|
|
43
|
-
*
|
|
42
|
+
* enumerate the handler functions actually exposed on
|
|
43
|
+
* `globalThis.__handlers` (the flat map AR dispatches against). Cross-checks
|
|
44
|
+
* that every handler name the manifest references — each engagement's
|
|
45
|
+
* `handles` values plus the lifecycle handlers (`onStart` / `onClose`)
|
|
46
|
+
* implied by its `hooks` — is present as a function in the bundle.
|
|
44
47
|
*
|
|
45
48
|
* Pure exploration: no files are written, no network. Safe to run on any
|
|
46
49
|
* `dist/<agentId>/` directory.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,iFAAiF;IACjF,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,
|
|
1
|
+
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,wEAAwE;IACxE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,iFAAiF;IACjF,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,uFAAuF;IACvF,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE;QACR,oCAAoC;QACpC,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,SAAS,EAAE,SAAS,CAAC;KACtB,CAAC;IACF,WAAW,EAAE,iBAAiB,EAAE,CAAC;CAClC;AAsBD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CA+D3B"}
|
package/dist/commands/inspect.js
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import vm from "node:vm";
|
|
4
|
+
/** Fixed lifecycle handler keys the runtime exposes (orchestrator constants). */
|
|
5
|
+
const LIFECYCLE_HANDLER = { start: "onStart", close: "onClose" };
|
|
4
6
|
/**
|
|
5
7
|
* Inspect a built agent directory.
|
|
6
8
|
*
|
|
7
9
|
* Reads `<agentDir>/manifest.json` for the per-engagement routing tables
|
|
8
10
|
* and executes `<agentDir>/bundle.js` in a fresh `node:vm` context to
|
|
9
|
-
* enumerate the
|
|
10
|
-
* `globalThis.
|
|
11
|
-
*
|
|
12
|
-
*
|
|
11
|
+
* enumerate the handler functions actually exposed on
|
|
12
|
+
* `globalThis.__handlers` (the flat map AR dispatches against). Cross-checks
|
|
13
|
+
* that every handler name the manifest references — each engagement's
|
|
14
|
+
* `handles` values plus the lifecycle handlers (`onStart` / `onClose`)
|
|
15
|
+
* implied by its `hooks` — is present as a function in the bundle.
|
|
13
16
|
*
|
|
14
17
|
* Pure exploration: no files are written, no network. Safe to run on any
|
|
15
18
|
* `dist/<agentId>/` directory.
|
|
@@ -20,41 +23,32 @@ export async function cefInspect(opts) {
|
|
|
20
23
|
const bundlePath = path.join(agentDir, "bundle.js");
|
|
21
24
|
const manifest = JSON.parse(await fs.readFile(manifestPath, "utf8"));
|
|
22
25
|
const bundle = await fs.readFile(bundlePath, "utf8");
|
|
23
|
-
// Run the bundle in an isolated context.
|
|
24
|
-
//
|
|
26
|
+
// Run the bundle in an isolated context. Its top-level registerHandlers
|
|
27
|
+
// call installs the flat handler map at globalThis.__handlers.
|
|
25
28
|
const sandbox = { console };
|
|
26
29
|
sandbox.globalThis = sandbox;
|
|
27
30
|
vm.runInNewContext(bundle, sandbox);
|
|
28
|
-
const
|
|
29
|
-
const
|
|
31
|
+
const handlers = sandbox.__handlers;
|
|
32
|
+
const exposedSet = new Set(handlers
|
|
33
|
+
? Object.keys(handlers).filter((k) => typeof handlers[k] === "function")
|
|
34
|
+
: []);
|
|
30
35
|
const engagements = (manifest.engagements ?? []).map((e) => {
|
|
31
|
-
const inst = instances[e.id];
|
|
32
|
-
const exposedMethods = [];
|
|
33
|
-
if (inst) {
|
|
34
|
-
const seen = new Set();
|
|
35
|
-
let proto = Object.getPrototypeOf(inst);
|
|
36
|
-
while (proto && Object.getPrototypeOf(proto) !== null) {
|
|
37
|
-
for (const k of Object.getOwnPropertyNames(proto)) {
|
|
38
|
-
if (k === "constructor")
|
|
39
|
-
continue;
|
|
40
|
-
if (typeof inst[k] === "function") {
|
|
41
|
-
seen.add(k);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
proto = Object.getPrototypeOf(proto);
|
|
45
|
-
}
|
|
46
|
-
exposedMethods.push(...[...seen].sort());
|
|
47
|
-
}
|
|
48
|
-
const exposedSet = new Set(exposedMethods);
|
|
49
|
-
const missingMethods = [];
|
|
50
36
|
const handles = e.handles ?? {};
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
37
|
+
const hooks = e.hooks ?? [];
|
|
38
|
+
// Handler names this engagement references: event handlers + the fixed
|
|
39
|
+
// lifecycle handler keys implied by its hooks.
|
|
40
|
+
const referenced = new Set(Object.values(handles));
|
|
41
|
+
for (const hook of hooks) {
|
|
42
|
+
const fixed = LIFECYCLE_HANDLER[hook];
|
|
43
|
+
if (fixed)
|
|
44
|
+
referenced.add(fixed);
|
|
54
45
|
}
|
|
46
|
+
const exposedMethods = [...referenced].filter((n) => exposedSet.has(n)).sort();
|
|
47
|
+
const missingMethods = [...referenced].filter((n) => !exposedSet.has(n)).sort();
|
|
55
48
|
const out = {
|
|
56
49
|
id: e.id,
|
|
57
50
|
handles,
|
|
51
|
+
hooks,
|
|
58
52
|
exposedMethods,
|
|
59
53
|
missingMethods,
|
|
60
54
|
};
|
|
@@ -77,7 +71,7 @@ export async function cefInspect(opts) {
|
|
|
77
71
|
engagements,
|
|
78
72
|
};
|
|
79
73
|
if (print)
|
|
80
|
-
printInspectResult(result,
|
|
74
|
+
printInspectResult(result, handlers !== undefined);
|
|
81
75
|
return result;
|
|
82
76
|
}
|
|
83
77
|
function printInspectResult(r, hasInstance) {
|
|
@@ -98,6 +92,9 @@ function printInspectResult(r, hasInstance) {
|
|
|
98
92
|
for (const [type, handlerName] of handleEntries) {
|
|
99
93
|
console.log(` - ${type} -> ${handlerName}`);
|
|
100
94
|
}
|
|
95
|
+
if (e.hooks.length > 0) {
|
|
96
|
+
console.log(` hooks: ${JSON.stringify(e.hooks)}`);
|
|
97
|
+
}
|
|
101
98
|
}
|
|
102
99
|
console.log("");
|
|
103
100
|
console.log(`## handles: ${JSON.stringify(m.handles)}`);
|
|
@@ -113,7 +110,7 @@ function printInspectResult(r, hasInstance) {
|
|
|
113
110
|
console.log("");
|
|
114
111
|
console.log("## Bundle methods per engagement");
|
|
115
112
|
if (!hasInstance) {
|
|
116
|
-
console.log(" (no
|
|
113
|
+
console.log(" (no __handlers set - bundle did not initialise)");
|
|
117
114
|
return;
|
|
118
115
|
}
|
|
119
116
|
for (const e of r.engagements) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typegen.d.ts","sourceRoot":"","sources":["../../src/commands/typegen.ts"],"names":[],"mappings":"AAqBA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;CACtB;AAiDD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,UAAU,CAC9B,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"typegen.d.ts","sourceRoot":"","sources":["../../src/commands/typegen.ts"],"names":[],"mappings":"AAqBA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;CACtB;AAiDD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,UAAU,CAC9B,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAwJ3B"}
|
package/dist/commands/typegen.js
CHANGED
|
@@ -138,11 +138,14 @@ export async function cefTypegen(opts = {}) {
|
|
|
138
138
|
}
|
|
139
139
|
newLock.models[alias] = entry;
|
|
140
140
|
if (parsed && typeof parsed === "object") {
|
|
141
|
+
// DDC `model.json` carries the I/O JSON Schemas under `schema.inputs`
|
|
142
|
+
// / `schema.outputs`. Fall back to top-level `input` / `output` for
|
|
143
|
+
// older/hand-written fixtures.
|
|
141
144
|
const m = parsed;
|
|
142
145
|
modelSpecs.push({
|
|
143
146
|
alias,
|
|
144
|
-
input: m.input ?? { type: "object" },
|
|
145
|
-
output: m.output ?? { type: "object" },
|
|
147
|
+
input: m.schema?.inputs ?? m.input ?? { type: "object" },
|
|
148
|
+
output: m.schema?.outputs ?? m.output ?? { type: "object" },
|
|
146
149
|
});
|
|
147
150
|
}
|
|
148
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typegen.js","sourceRoot":"","sources":["../../src/commands/typegen.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"typegen.js","sourceRoot":"","sources":["../../src/commands/typegen.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/jcs.d.ts
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* RFC 8785 JSON Canonicalization Scheme (JCS).
|
|
3
|
+
*
|
|
4
|
+
* Re-exported from `@cef-ai/transport`, which wraps the same `canonicalize` npm
|
|
5
|
+
* package the marketplace API uses and is byte-compatible with the wallet-api
|
|
6
|
+
* Go `canonjson` oracle. Keeping one canonicalizer across the suite is what
|
|
7
|
+
* keeps `cef publish` signatures verifiable server-side; this module stays so
|
|
8
|
+
* existing `cef publish` call sites import `lib/jcs.js` unchanged.
|
|
9
|
+
*/
|
|
10
|
+
export { canonicalize, canonicalizeBytes } from "@cef-ai/transport";
|
|
3
11
|
//# sourceMappingURL=jcs.d.ts.map
|
package/dist/lib/jcs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jcs.d.ts","sourceRoot":"","sources":["../../src/lib/jcs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jcs.d.ts","sourceRoot":"","sources":["../../src/lib/jcs.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/lib/jcs.js
CHANGED
|
@@ -1,48 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* RFC 8785 JSON Canonicalization Scheme (JCS).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* marketplace API uses
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* `lib/jcs.
|
|
9
|
-
*
|
|
10
|
-
* RFC 8785 leaves the encoding of non-finite numbers / BigInt undefined; we
|
|
11
|
-
* reject them up front rather than rely on the package's silent coercion,
|
|
12
|
-
* matching the marketplace's behaviour.
|
|
4
|
+
* Re-exported from `@cef-ai/transport`, which wraps the same `canonicalize` npm
|
|
5
|
+
* package the marketplace API uses and is byte-compatible with the wallet-api
|
|
6
|
+
* Go `canonjson` oracle. Keeping one canonicalizer across the suite is what
|
|
7
|
+
* keeps `cef publish` signatures verifiable server-side; this module stays so
|
|
8
|
+
* existing `cef publish` call sites import `lib/jcs.js` unchanged.
|
|
13
9
|
*/
|
|
14
|
-
|
|
15
|
-
export function canonicalize(value) {
|
|
16
|
-
assertJcsCompatible(value);
|
|
17
|
-
const out = canonicalizePkg(value);
|
|
18
|
-
if (out === undefined) {
|
|
19
|
-
throw new TypeError("JCS: canonicalize() returned undefined");
|
|
20
|
-
}
|
|
21
|
-
return out;
|
|
22
|
-
}
|
|
23
|
-
export function canonicalizeBytes(value) {
|
|
24
|
-
return new TextEncoder().encode(canonicalize(value));
|
|
25
|
-
}
|
|
26
|
-
function assertJcsCompatible(value) {
|
|
27
|
-
if (typeof value === "number") {
|
|
28
|
-
if (!Number.isFinite(value)) {
|
|
29
|
-
throw new TypeError(`JCS: non-finite number ${String(value)}`);
|
|
30
|
-
}
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
if (typeof value === "bigint") {
|
|
34
|
-
throw new TypeError("JCS: bigint not supported by RFC 8785");
|
|
35
|
-
}
|
|
36
|
-
if (Array.isArray(value)) {
|
|
37
|
-
for (const item of value)
|
|
38
|
-
assertJcsCompatible(item);
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
if (value !== null && typeof value === "object") {
|
|
42
|
-
for (const v of Object.values(value)) {
|
|
43
|
-
if (v !== undefined)
|
|
44
|
-
assertJcsCompatible(v);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
10
|
+
export { canonicalize, canonicalizeBytes } from "@cef-ai/transport";
|
|
48
11
|
//# sourceMappingURL=jcs.js.map
|
package/dist/lib/jcs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jcs.js","sourceRoot":"","sources":["../../src/lib/jcs.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"jcs.js","sourceRoot":"","sources":["../../src/lib/jcs.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -47,11 +47,9 @@ export declare function pascalCase(s: string): string;
|
|
|
47
47
|
* 3. `export interface <PascalCasedEventType> { ... }` per peer-published
|
|
48
48
|
* event that carries a JSON schema.
|
|
49
49
|
* 4. `declare module "@cef-ai/agent-sdk"` block augmenting `KnownEventTypes`
|
|
50
|
-
* with `"<event_type>": <PascalCasedEventType>` entries
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* deferred to a follow-up — the agent-sdk surface for that needs a
|
|
54
|
-
* `KnownModels` map analogous to `KnownEventTypes`, which doesn't exist yet.
|
|
50
|
+
* with `"<event_type>": <PascalCasedEventType>` entries, and `KnownModels`
|
|
51
|
+
* with `"<alias>": ModelHandle<<Alias>Input, <Alias>Output>` entries so
|
|
52
|
+
* `ctx.models.<alias>` is typed end-to-end.
|
|
55
53
|
*/
|
|
56
54
|
export declare function buildGeneratedDts(models: ModelSpec[], peers: PeerSpec[]): Promise<string>;
|
|
57
55
|
//# sourceMappingURL=augment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"augment.d.ts","sourceRoot":"","sources":["../../src/typegen/augment.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACtD;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAO5C;AAED
|
|
1
|
+
{"version":3,"file":"augment.d.ts","sourceRoot":"","sources":["../../src/typegen/augment.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACtD;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAO5C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EAAE,EACnB,KAAK,EAAE,QAAQ,EAAE,GAChB,OAAO,CAAC,MAAM,CAAC,CAgEjB"}
|
package/dist/typegen/augment.js
CHANGED
|
@@ -33,15 +33,20 @@ export function pascalCase(s) {
|
|
|
33
33
|
* 3. `export interface <PascalCasedEventType> { ... }` per peer-published
|
|
34
34
|
* event that carries a JSON schema.
|
|
35
35
|
* 4. `declare module "@cef-ai/agent-sdk"` block augmenting `KnownEventTypes`
|
|
36
|
-
* with `"<event_type>": <PascalCasedEventType>` entries
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* deferred to a follow-up — the agent-sdk surface for that needs a
|
|
40
|
-
* `KnownModels` map analogous to `KnownEventTypes`, which doesn't exist yet.
|
|
36
|
+
* with `"<event_type>": <PascalCasedEventType>` entries, and `KnownModels`
|
|
37
|
+
* with `"<alias>": ModelHandle<<Alias>Input, <Alias>Output>` entries so
|
|
38
|
+
* `ctx.models.<alias>` is typed end-to-end.
|
|
41
39
|
*/
|
|
42
40
|
export async function buildGeneratedDts(models, peers) {
|
|
43
41
|
const sections = [HEADER];
|
|
44
|
-
//
|
|
42
|
+
// `KnownModels` entries reference `ModelHandle`; import it so the generated
|
|
43
|
+
// module-augmentation resolves regardless of scoping. (Importing from the
|
|
44
|
+
// module we then augment in the same file is the canonical pattern.)
|
|
45
|
+
if (models.length > 0) {
|
|
46
|
+
sections.push(`import type { ModelHandle } from "@cef-ai/agent-sdk";`);
|
|
47
|
+
}
|
|
48
|
+
// 1. Per-model I/O interfaces (+ collect KnownModels entries).
|
|
49
|
+
const knownModels = [];
|
|
45
50
|
if (models.length > 0) {
|
|
46
51
|
sections.push("// ---- Models ----");
|
|
47
52
|
for (const m of models) {
|
|
@@ -50,6 +55,7 @@ export async function buildGeneratedDts(models, peers) {
|
|
|
50
55
|
const outputTs = await schemaToTsInterface(`${base}Output`, m.output);
|
|
51
56
|
sections.push(inputTs);
|
|
52
57
|
sections.push(outputTs);
|
|
58
|
+
knownModels.push({ alias: m.alias, base });
|
|
53
59
|
}
|
|
54
60
|
}
|
|
55
61
|
// 2. Per-peer-event payload interfaces + collect KnownEventTypes entries.
|
|
@@ -71,16 +77,22 @@ export async function buildGeneratedDts(models, peers) {
|
|
|
71
77
|
}
|
|
72
78
|
}
|
|
73
79
|
}
|
|
74
|
-
// 3. Module augmentation
|
|
80
|
+
// 3. Module augmentation blocks (KnownEventTypes + KnownModels).
|
|
81
|
+
const augmentations = [];
|
|
75
82
|
if (knownEvents.length > 0) {
|
|
76
83
|
const lines = knownEvents
|
|
77
84
|
.map(({ eventType, tsName }) => ` ${JSON.stringify(eventType)}: ${tsName};`)
|
|
78
85
|
.join("\n");
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}`)
|
|
86
|
+
augmentations.push(` interface KnownEventTypes {\n${lines}\n }`);
|
|
87
|
+
}
|
|
88
|
+
if (knownModels.length > 0) {
|
|
89
|
+
const lines = knownModels
|
|
90
|
+
.map(({ alias, base }) => ` ${JSON.stringify(alias)}: ModelHandle<${base}Input, ${base}Output>;`)
|
|
91
|
+
.join("\n");
|
|
92
|
+
augmentations.push(` interface KnownModels {\n${lines}\n }`);
|
|
93
|
+
}
|
|
94
|
+
if (augmentations.length > 0) {
|
|
95
|
+
sections.push(`declare module "@cef-ai/agent-sdk" {\n${augmentations.join("\n\n")}\n}`);
|
|
84
96
|
}
|
|
85
97
|
return sections.join("\n\n") + "\n";
|
|
86
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"augment.js","sourceRoot":"","sources":["../../src/typegen/augment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AA2BxD,MAAM,MAAM,GAAG;;CAEd,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,CAAS;IAClC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACnC,MAAM,MAAM,GAAG,KAAK;SACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAClD,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AACvD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"augment.js","sourceRoot":"","sources":["../../src/typegen/augment.ts"],"names":[],"mappings":"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"}
|
package/dist/typegen/fetch.d.ts
CHANGED
|
@@ -15,9 +15,18 @@ export interface FetchResult {
|
|
|
15
15
|
integrity: string;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
|
-
* GET
|
|
18
|
+
* GET a declared artefact URL and validate the response. Used by `cef typegen`
|
|
19
19
|
* to fetch model and peer-agent manifests declared in `cef.config.ts`.
|
|
20
20
|
*
|
|
21
|
+
* The declared value may be either the full artefact URL (e.g. a DDC
|
|
22
|
+
* `model.json` URL `.../<bucket>/models/<name>/<version>/model.json`, the
|
|
23
|
+
* contract `cef build`'s `parseModelRef` enforces) or a base URL that the
|
|
24
|
+
* artefact lives under (e.g. a peer-agent marketplace base). When the URL
|
|
25
|
+
* already ends with `<suffix>` it is fetched as-is; otherwise `<suffix>` is
|
|
26
|
+
* appended so a bare base still resolves. This keeps the model contract
|
|
27
|
+
* (full `model.json` URL) and the peer-agent base convention working
|
|
28
|
+
* through the same fetch path without double-appending `/model.json`.
|
|
29
|
+
*
|
|
21
30
|
* - Redirects are followed transparently (Node's built-in `fetch` does this
|
|
22
31
|
* by default with `redirect: "follow"`).
|
|
23
32
|
* - Content-Type is required to include `json` — anything else (HTML
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/typegen/fetch.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/typegen/fetch.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,YAAY,GAAG,eAAe,GACrC,OAAO,CAAC,WAAW,CAAC,CAkCtB"}
|
package/dist/typegen/fetch.js
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import crypto from "node:crypto";
|
|
2
2
|
/**
|
|
3
|
-
* GET
|
|
3
|
+
* GET a declared artefact URL and validate the response. Used by `cef typegen`
|
|
4
4
|
* to fetch model and peer-agent manifests declared in `cef.config.ts`.
|
|
5
5
|
*
|
|
6
|
+
* The declared value may be either the full artefact URL (e.g. a DDC
|
|
7
|
+
* `model.json` URL `.../<bucket>/models/<name>/<version>/model.json`, the
|
|
8
|
+
* contract `cef build`'s `parseModelRef` enforces) or a base URL that the
|
|
9
|
+
* artefact lives under (e.g. a peer-agent marketplace base). When the URL
|
|
10
|
+
* already ends with `<suffix>` it is fetched as-is; otherwise `<suffix>` is
|
|
11
|
+
* appended so a bare base still resolves. This keeps the model contract
|
|
12
|
+
* (full `model.json` URL) and the peer-agent base convention working
|
|
13
|
+
* through the same fetch path without double-appending `/model.json`.
|
|
14
|
+
*
|
|
6
15
|
* - Redirects are followed transparently (Node's built-in `fetch` does this
|
|
7
16
|
* by default with `redirect: "follow"`).
|
|
8
17
|
* - Content-Type is required to include `json` — anything else (HTML
|
|
@@ -12,10 +21,13 @@ import crypto from "node:crypto";
|
|
|
12
21
|
* message so the CLI surfaces the failing URL to the author.
|
|
13
22
|
*/
|
|
14
23
|
export async function fetchJson(baseUrl, suffix) {
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
|
|
24
|
+
// If the declared URL already points at the artefact, use it verbatim;
|
|
25
|
+
// otherwise treat it as a base and append `<suffix>`. `new URL(rel, base)`
|
|
26
|
+
// requires the base to end with `/` for the path to be appended rather
|
|
27
|
+
// than replacing the last segment.
|
|
28
|
+
const url = baseUrl.endsWith(`/${suffix}`)
|
|
29
|
+
? baseUrl
|
|
30
|
+
: new URL(suffix, baseUrl.endsWith("/") ? baseUrl : baseUrl + "/").href;
|
|
19
31
|
const res = await fetch(url, { redirect: "follow" });
|
|
20
32
|
if (!res.ok) {
|
|
21
33
|
throw new Error(`[cef typegen] fetch ${url} → ${res.status}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/typegen/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAmBjC
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/typegen/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAmBjC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAe,EACf,MAAsC;IAEtC,uEAAuE;IACvE,2EAA2E;IAC3E,uEAAuE;IACvE,mCAAmC;IACnC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC;QACxC,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;IAE1E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,uBAAuB,GAAG,6BAA6B,EAAE,GAAG,CAC7D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,uBAAuB,GAAG,oBAAqB,GAAa,CAAC,OAAO,EAAE,CACvE,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GACb,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAExE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC;AAC3D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cef-ai/cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@noble/ed25519": "^2.1.0",
|
|
18
18
|
"@noble/hashes": "^2.2.0",
|
|
19
|
-
"canonicalize": "^3.0.0",
|
|
20
19
|
"commander": "^12.0.0",
|
|
21
20
|
"esbuild": "^0.21.0",
|
|
22
21
|
"json-schema-to-typescript": "^14.0.0",
|
|
23
22
|
"typescript": "^5.4.0",
|
|
24
|
-
"@cef-ai/agent-sdk": "
|
|
23
|
+
"@cef-ai/agent-sdk": "1.1.0",
|
|
24
|
+
"@cef-ai/transport": "1.0.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "^20.11.0",
|