@oneie/sdk 0.9.0 → 0.10.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 +3 -0
- package/dist/auth.d.ts +1 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +2 -0
- package/dist/auth.js.map +1 -1
- package/dist/brain.d.ts +36 -0
- package/dist/brain.d.ts.map +1 -0
- package/dist/brain.js +99 -0
- package/dist/brain.js.map +1 -0
- package/dist/client.d.ts +27 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +36 -1
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/meta.d.ts +45 -0
- package/dist/meta.d.ts.map +1 -0
- package/dist/meta.js +44 -0
- package/dist/meta.js.map +1 -0
- package/dist/openapi.d.ts +27 -0
- package/dist/openapi.d.ts.map +1 -0
- package/dist/openapi.js +62 -0
- package/dist/openapi.js.map +1 -0
- package/dist/receivers.d.ts +743 -0
- package/dist/receivers.d.ts.map +1 -0
- package/dist/receivers.js +626 -0
- package/dist/receivers.js.map +1 -0
- package/dist/soul.d.ts +10 -0
- package/dist/soul.d.ts.map +1 -0
- package/dist/soul.js +31 -0
- package/dist/soul.js.map +1 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/types.d.ts +13 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +18 -1
package/dist/meta.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { RECEIVERS, RECIPES } from "./receivers.js";
|
|
3
|
+
/**
|
|
4
|
+
* Project the catalog to agent-facing rows, scoped to what the caller may call.
|
|
5
|
+
* `canCall(auth)` decides per receiver — the service passes a predicate built
|
|
6
|
+
* from the caller's role; omitted ⇒ everything is visible.
|
|
7
|
+
*/
|
|
8
|
+
export function metaCatalog(opts = {}) {
|
|
9
|
+
const canCall = opts.canCall ?? (() => true);
|
|
10
|
+
return Object.values(RECEIVERS)
|
|
11
|
+
.filter((r) => canCall(r.auth))
|
|
12
|
+
.map((r) => ({
|
|
13
|
+
receiver: r.receiver,
|
|
14
|
+
summary: r.summary,
|
|
15
|
+
effect: r.effect,
|
|
16
|
+
auth: r.auth,
|
|
17
|
+
cost: r.cost,
|
|
18
|
+
reversible: r.reversible,
|
|
19
|
+
settles: r.settles,
|
|
20
|
+
simulatable: r.simulatable,
|
|
21
|
+
idempotent: r.idempotent,
|
|
22
|
+
version: r.version,
|
|
23
|
+
deprecated: r.deprecated,
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
/** The ordered receiver sequence for a goal — what `meta:catalog?goal=` returns. */
|
|
27
|
+
export function metaRecipe(goal) {
|
|
28
|
+
return { goal, recipe: RECIPES[goal] };
|
|
29
|
+
}
|
|
30
|
+
/** One receiver's request + response as JSON Schema — read before calling. */
|
|
31
|
+
export function metaSchema(receiver) {
|
|
32
|
+
const r = RECEIVERS[receiver];
|
|
33
|
+
return {
|
|
34
|
+
receiver: r.receiver,
|
|
35
|
+
summary: r.summary,
|
|
36
|
+
request: z.toJSONSchema(r.request),
|
|
37
|
+
response: z.toJSONSchema(r.response),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/** A role-scoping predicate: low-privilege callers can't see owner-only receivers. */
|
|
41
|
+
export function ownerOnly(auth) {
|
|
42
|
+
return auth !== undefined && /^(manage_|mint_)/.test(auth);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=meta.js.map
|
package/dist/meta.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../src/meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAsC,MAAM,gBAAgB,CAAC;AAyBxF;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,OAA4D,EAAE;IACxF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,UAAU,EAAE,CAAC,CAAC,UAAU;KACzB,CAAC,CAAC,CAAC;AACR,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,UAAU,CAAC,IAAgB;IACzC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AACzC,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,UAAU,CAAC,QAAsB;IAM/C,MAAM,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC9B,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;QAClC,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,SAAS,CAAC,IAAwB;IAChD,OAAO,IAAI,KAAK,SAAS,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAPI generation (C7) — the spec stops lying. The `/signal/{receiver}` and
|
|
3
|
+
* `/ask/{receiver}` request bodies used to carry an opaque "receiver-defined"
|
|
4
|
+
* payload; here we derive a real `oneOf` over every receiver's request schema
|
|
5
|
+
* (via `z.toJSONSchema`), each member tagged with the agent-ergonomic metadata
|
|
6
|
+
* as `x-` extensions. Pure functions — the CLI (`scripts/generate-openapi.ts`)
|
|
7
|
+
* does the file I/O. See `plans/agent-first-spec.md`.
|
|
8
|
+
*/
|
|
9
|
+
export declare const RECEIVER_REGION_BEGIN = " # BEGIN generated:receivers \u2014 bun run generate:openapi (do not edit by hand)";
|
|
10
|
+
export declare const RECEIVER_REGION_END = " # END generated:receivers";
|
|
11
|
+
/**
|
|
12
|
+
* The `ReceiverPayload` schema — a `oneOf` over every receiver's request, each
|
|
13
|
+
* member titled by receiver name + summary, with cost/reversibility/settlement
|
|
14
|
+
* as `x-` extensions an agent reads to budget before calling.
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildReceiverPayload(): {
|
|
17
|
+
oneOf: Array<Record<string, unknown>>;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* The exact YAML region injected between the markers. JSON is valid YAML
|
|
21
|
+
* (flow style), so one deterministic line keeps regeneration byte-stable —
|
|
22
|
+
* the CI drift gate (`generate && git diff --exit-code`) stays clean.
|
|
23
|
+
*/
|
|
24
|
+
export declare function generatedRegion(): string;
|
|
25
|
+
/** Replace the marked region in an openapi.yaml string. Throws if markers are absent. */
|
|
26
|
+
export declare function injectRegion(yaml: string): string;
|
|
27
|
+
//# sourceMappingURL=openapi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,eAAO,MAAM,qBAAqB,0FACkD,CAAC;AACrF,eAAO,MAAM,mBAAmB,kCAAkC,CAAC;AAEnE;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI;IAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,CAmBhF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAGxC;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOjD"}
|
package/dist/openapi.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { RECEIVERS } from "./receivers.js";
|
|
3
|
+
/**
|
|
4
|
+
* OpenAPI generation (C7) — the spec stops lying. The `/signal/{receiver}` and
|
|
5
|
+
* `/ask/{receiver}` request bodies used to carry an opaque "receiver-defined"
|
|
6
|
+
* payload; here we derive a real `oneOf` over every receiver's request schema
|
|
7
|
+
* (via `z.toJSONSchema`), each member tagged with the agent-ergonomic metadata
|
|
8
|
+
* as `x-` extensions. Pure functions — the CLI (`scripts/generate-openapi.ts`)
|
|
9
|
+
* does the file I/O. See `plans/agent-first-spec.md`.
|
|
10
|
+
*/
|
|
11
|
+
export const RECEIVER_REGION_BEGIN = " # BEGIN generated:receivers — bun run generate:openapi (do not edit by hand)";
|
|
12
|
+
export const RECEIVER_REGION_END = " # END generated:receivers";
|
|
13
|
+
/**
|
|
14
|
+
* The `ReceiverPayload` schema — a `oneOf` over every receiver's request, each
|
|
15
|
+
* member titled by receiver name + summary, with cost/reversibility/settlement
|
|
16
|
+
* as `x-` extensions an agent reads to budget before calling.
|
|
17
|
+
*/
|
|
18
|
+
export function buildReceiverPayload() {
|
|
19
|
+
const oneOf = Object.values(RECEIVERS).map((r) => {
|
|
20
|
+
const schema = z.toJSONSchema(r.request);
|
|
21
|
+
delete schema["$schema"];
|
|
22
|
+
const member = {
|
|
23
|
+
title: r.receiver,
|
|
24
|
+
description: r.summary,
|
|
25
|
+
...schema,
|
|
26
|
+
"x-effect": r.effect,
|
|
27
|
+
};
|
|
28
|
+
if (r.cost !== undefined)
|
|
29
|
+
member["x-cost"] = r.cost;
|
|
30
|
+
if (r.reversible !== undefined)
|
|
31
|
+
member["x-reversible"] = r.reversible;
|
|
32
|
+
if (r.settles !== undefined)
|
|
33
|
+
member["x-settles"] = r.settles;
|
|
34
|
+
if (r.simulatable !== undefined)
|
|
35
|
+
member["x-simulatable"] = r.simulatable;
|
|
36
|
+
if (r.idempotent !== undefined)
|
|
37
|
+
member["x-idempotent"] = r.idempotent;
|
|
38
|
+
if (r.auth !== undefined)
|
|
39
|
+
member["x-auth"] = r.auth;
|
|
40
|
+
return member;
|
|
41
|
+
});
|
|
42
|
+
return { oneOf };
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The exact YAML region injected between the markers. JSON is valid YAML
|
|
46
|
+
* (flow style), so one deterministic line keeps regeneration byte-stable —
|
|
47
|
+
* the CI drift gate (`generate && git diff --exit-code`) stays clean.
|
|
48
|
+
*/
|
|
49
|
+
export function generatedRegion() {
|
|
50
|
+
const payload = JSON.stringify(buildReceiverPayload());
|
|
51
|
+
return `${RECEIVER_REGION_BEGIN}\n ReceiverPayload: ${payload}\n${RECEIVER_REGION_END}`;
|
|
52
|
+
}
|
|
53
|
+
/** Replace the marked region in an openapi.yaml string. Throws if markers are absent. */
|
|
54
|
+
export function injectRegion(yaml) {
|
|
55
|
+
const begin = yaml.indexOf(RECEIVER_REGION_BEGIN);
|
|
56
|
+
const end = yaml.indexOf(RECEIVER_REGION_END);
|
|
57
|
+
if (begin === -1 || end === -1) {
|
|
58
|
+
throw new Error("openapi.yaml is missing the generated:receivers markers");
|
|
59
|
+
}
|
|
60
|
+
return yaml.slice(0, begin) + generatedRegion() + yaml.slice(end + RECEIVER_REGION_END.length);
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=openapi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAChC,kFAAkF,CAAC;AACrF,MAAM,CAAC,MAAM,mBAAmB,GAAG,+BAA+B,CAAC;AAEnE;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/C,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAA4B,CAAC;QACpE,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;QACzB,MAAM,MAAM,GAA4B;YACtC,KAAK,EAAE,CAAC,CAAC,QAAQ;YACjB,WAAW,EAAE,CAAC,CAAC,OAAO;YACtB,GAAG,MAAM;YACT,UAAU,EAAE,CAAC,CAAC,MAAM;SACrB,CAAC;QACF,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;YAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACpD,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;YAAE,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;QACtE,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;YAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;QAC7D,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;YAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;QACzE,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;YAAE,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;QACtE,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;YAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACvD,OAAO,GAAG,qBAAqB,0BAA0B,OAAO,KAAK,mBAAmB,EAAE,CAAC;AAC7F,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9C,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,eAAe,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACjG,CAAC"}
|