@oneie/sdk 0.14.3 → 0.14.5

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.
@@ -0,0 +1,208 @@
1
+ /**
2
+ * validateContract — deterministic validator for WORK-AST contracts.
3
+ *
4
+ * Closed structure, open leaves: node heads, step kinds, verbs, enums and
5
+ * binding NAMES are locked to the schema-generated grammar (work-contract-grammar.json,
6
+ * see scripts/generate-work-grammar.ts); binding VALUES are free variables.
7
+ * Pure function — no IO, no clock, no randomness. Same input → same output, always.
8
+ */
9
+ import rawGrammar from "./work-contract-grammar.json" with { type: "json" };
10
+ function toSetRecord(rec) {
11
+ return Object.fromEntries(Object.entries(rec).map(([k, v]) => [k, new Set(v)]));
12
+ }
13
+ // GRAMMAR — the generated JSON, hydrated into the Set-bearing shape validateContract expects.
14
+ export const GRAMMAR = {
15
+ stepKinds: new Set(rawGrammar.stepKinds),
16
+ verbs: new Set(rawGrammar.verbs),
17
+ enums: toSetRecord(rawGrammar.enums),
18
+ owns: toSetRecord(rawGrammar.owns),
19
+ configKeys: toSetRecord(rawGrammar.configKeys),
20
+ receivers: new Set(rawGrammar.receivers),
21
+ facts: rawGrammar.facts,
22
+ limits: rawGrammar.limits,
23
+ };
24
+ export const hydrateScope = (w) => ({ agent: w.agent, workspace: w.workspace, granted: new Set(w.granted) });
25
+ const isNode = (a) => Array.isArray(a);
26
+ const str = (a) => (typeof a === "string" ? a : undefined);
27
+ // capability each node head requires — the authority lane
28
+ const CAPABILITY = {
29
+ workflow: () => "workflow:define",
30
+ step: (n) => `step:${str(n[1]) ?? "?"}`,
31
+ lifecycle: () => "lifecycle:move",
32
+ mark: () => "track:mark",
33
+ warn: () => "track:warn",
34
+ signal: (n) => {
35
+ const to = n.filter(isNode).find((c) => c[0] === "to");
36
+ return `signal:${str(to?.[1]) ?? "?"}`;
37
+ },
38
+ };
39
+ export function validateContract(contract, grammar = GRAMMAR, scope) {
40
+ const errors = [];
41
+ const denied = [];
42
+ const capabilities = new Set();
43
+ const stepIds = new Set();
44
+ let nodes = 0;
45
+ if (!isNode(contract) || contract[0] !== "contract")
46
+ return { kind: "dissolved", errors: ["root must be (contract …)"] };
47
+ // pass 1 — collect declared step ids so {{ref}} holes can be dataflow-checked
48
+ const collectIds = (n) => {
49
+ if (!isNode(n))
50
+ return;
51
+ if (n[0] === "step" && typeof n[2] === "string")
52
+ stepIds.add(n[2]);
53
+ n.forEach(collectIds);
54
+ };
55
+ collectIds(contract);
56
+ const walk = (n, depth, path) => {
57
+ if (!isNode(n))
58
+ return;
59
+ nodes++;
60
+ if (nodes > grammar.limits.maxNodes) {
61
+ errors.push(`node ceiling ${grammar.limits.maxNodes} exceeded`);
62
+ return;
63
+ }
64
+ if (depth > grammar.limits.maxDepth) {
65
+ errors.push(`${path}: depth ceiling ${grammar.limits.maxDepth} exceeded`);
66
+ return;
67
+ }
68
+ const head = n[0];
69
+ switch (head) {
70
+ case "contract":
71
+ case "meta":
72
+ case "edges":
73
+ case "track":
74
+ break; // structural containers — children validated below
75
+ case "workflow": {
76
+ if (!str(n[1]))
77
+ errors.push(`${path}: workflow needs a name`);
78
+ const steps = n.filter(isNode).filter((c) => c[0] === "step");
79
+ if (steps.length > grammar.limits.maxFanout)
80
+ errors.push(`${path}: fan-out ${steps.length} > ceiling ${grammar.limits.maxFanout}`);
81
+ break;
82
+ }
83
+ case "step": {
84
+ const kind = str(n[1]);
85
+ if (!kind || !grammar.stepKinds.has(kind)) {
86
+ errors.push(`${path}: step kind "${kind}" not in locked set [${[...grammar.stepKinds].join(" ")}]`);
87
+ break;
88
+ }
89
+ if (!str(n[2]))
90
+ errors.push(`${path}: step needs an id`);
91
+ const config = n.filter(isNode).find((c) => c[0] === "config");
92
+ for (const binding of (config?.filter(isNode) ?? [])) {
93
+ const key = binding[0];
94
+ if (!grammar.configKeys[kind]?.has(key))
95
+ errors.push(`${path}: "${key}" is not a schema-owned config key for step-kind "${kind}"`);
96
+ // VALUE is a free variable — but a {{ref}} hole must point at a declared step
97
+ const v = str(binding[1]);
98
+ const ref = v?.match(/\{\{(\w+)\./)?.[1];
99
+ if (ref && !stepIds.has(ref))
100
+ errors.push(`${path}: {{${ref}.…}} references undeclared step "${ref}"`);
101
+ }
102
+ break;
103
+ }
104
+ case "edge": {
105
+ const [from, to] = [str(n[1]), str(n[2])];
106
+ if (!from || !stepIds.has(from))
107
+ errors.push(`${path}: edge source "${from}" is not a declared step`);
108
+ if (!to || !stepIds.has(to))
109
+ errors.push(`${path}: edge target "${to}" is not a declared step`);
110
+ break; // (when …) value is a free variable → path.edge-condition
111
+ }
112
+ case "lifecycle": {
113
+ // lifecycle stage is a D1 tag (`lifecycle:<stage>`), not a TypeQL @values enum —
114
+ // a free leaf binding like config values; only presence is structural here.
115
+ const to = n.filter(isNode).find((c) => c[0] === "to");
116
+ const stage = str(to?.[1]);
117
+ if (!stage)
118
+ errors.push(`${path}: lifecycle needs a "to" stage`);
119
+ break;
120
+ }
121
+ case "mark":
122
+ case "warn": {
123
+ if (!grammar.verbs.has(head))
124
+ errors.push(`${path}: "${head}" not a locked verb`);
125
+ const w = n[2];
126
+ if (typeof w === "number" && (w < 0 || w > 2))
127
+ errors.push(`${path}: weight ${w} out of clamp [0,2]`);
128
+ break;
129
+ }
130
+ case "signal": {
131
+ const to = n.filter(isNode).find((c) => c[0] === "to");
132
+ const receiver = str(to?.[1]);
133
+ if (!receiver || !grammar.receivers.has(receiver))
134
+ errors.push(`${path}: receiver "${receiver}" not in registry`);
135
+ break;
136
+ }
137
+ default:
138
+ // heads not named by the grammar are leaf bindings inside known containers
139
+ // ONLY if their parent allowed them (handled above); a top-level unknown dissolves
140
+ if (["actor", "to", "from", "config", "when", "path", "payload"].includes(head))
141
+ break;
142
+ errors.push(`${path}: unknown head "${head}" — not a schema terminal`);
143
+ }
144
+ // authority lane — well-formed but out of scope → denied, with role-aware reason
145
+ const cap = CAPABILITY[head]?.(n);
146
+ if (cap) {
147
+ capabilities.add(cap);
148
+ if (!scope.granted.has(cap))
149
+ denied.push(`${head} requires "${cap}" — not granted to ${scope.agent} in ${scope.workspace}`);
150
+ }
151
+ // config/meta subtrees are leaf bindings — validated by their parent, never walked as nodes
152
+ if (head !== "config" && head !== "meta")
153
+ n.forEach((c, i) => walk(c, depth + 1, `${path}/${head}[${i}]`));
154
+ };
155
+ walk(contract, 0, "");
156
+ // ── pass 3: fact-flow — the ordering lane ────────────────────────────────
157
+ // A step validates only if every fact it requires is provided by an
158
+ // ancestor in the workflow DAG. Ordering is proven, not hoped for.
159
+ for (const wf of contract.filter(isNode).filter((c) => c[0] === "workflow")) {
160
+ const steps = new Map(); // id → fact-signature key
161
+ for (const s of wf.filter(isNode).filter((c) => c[0] === "step")) {
162
+ const [kind, id] = [str(s[1]), str(s[2])];
163
+ if (!kind || !id)
164
+ continue;
165
+ const config = s.filter(isNode).find((c) => c[0] === "config");
166
+ const skill = str((config?.filter(isNode) ?? []).find((b) => b[0] === "skill")?.[1]);
167
+ steps.set(id, kind === "skill" && skill ? `skill:${skill}` : kind);
168
+ }
169
+ const parents = new Map();
170
+ const edgesNode = wf.filter(isNode).find((c) => c[0] === "edges");
171
+ for (const e of (edgesNode?.filter(isNode) ?? [])) {
172
+ const [from, to] = [str(e[1]), str(e[2])];
173
+ if (from && to)
174
+ parents.set(to, [...(parents.get(to) ?? []), from]);
175
+ }
176
+ const ancestors = (id) => {
177
+ const seen = new Set();
178
+ const stack = [...(parents.get(id) ?? [])];
179
+ while (stack.length) {
180
+ const p = stack.pop();
181
+ if (seen.has(p))
182
+ continue;
183
+ seen.add(p);
184
+ stack.push(...(parents.get(p) ?? []));
185
+ }
186
+ return seen;
187
+ };
188
+ for (const [id, key] of steps) {
189
+ if (ancestors(id).has(id)) {
190
+ errors.push(`workflow "${str(wf[1])}": cycle through step "${id}"`);
191
+ continue;
192
+ }
193
+ const required = grammar.facts[key]?.requires ?? [];
194
+ if (!required.length)
195
+ continue;
196
+ const available = new Set([...ancestors(id)].flatMap((a) => grammar.facts[steps.get(a) ?? ""]?.provides ?? []));
197
+ const missing = required.filter((f) => !available.has(f));
198
+ if (missing.length)
199
+ errors.push(`step "${id}" (${key}) requires facts [${required.join(", ")}] — missing upstream: [${missing.join(", ")}]`);
200
+ }
201
+ }
202
+ if (errors.length)
203
+ return { kind: "dissolved", errors };
204
+ if (denied.length)
205
+ return { kind: "denied", reasons: denied };
206
+ return { kind: "ok", nodes, capabilities: [...capabilities].sort() };
207
+ }
208
+ //# sourceMappingURL=work-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-contract.js","sourceRoot":"","sources":["../src/work-contract.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneie/sdk",
3
- "version": "0.14.3",
3
+ "version": "0.14.5",
4
4
  "description": "ONE substrate SDK — signals, units, persist, launch handoff.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -35,6 +35,10 @@
35
35
  "import": "./dist/templates.js"
36
36
  },
37
37
  "./telemetry": "./dist/telemetry.js",
38
+ "./wallet": {
39
+ "types": "./dist/wallet.d.ts",
40
+ "import": "./dist/wallet.js"
41
+ },
38
42
  "./schemas": {
39
43
  "types": "./dist/schemas.d.ts",
40
44
  "import": "./dist/schemas.js"
@@ -43,6 +47,10 @@
43
47
  "types": "./dist/receivers.d.ts",
44
48
  "import": "./dist/receivers.js"
45
49
  },
50
+ "./work-contract": {
51
+ "types": "./dist/work-contract.d.ts",
52
+ "import": "./dist/work-contract.js"
53
+ },
46
54
  "./meta": {
47
55
  "types": "./dist/meta.d.ts",
48
56
  "import": "./dist/meta.js"
@@ -110,6 +118,10 @@
110
118
  "directory": "sdk"
111
119
  },
112
120
  "dependencies": {
121
+ "@noble/curves": "^2.2.0",
122
+ "@noble/hashes": "^2.2.0",
123
+ "@scure/base": "^2.2.0",
124
+ "@scure/bip39": "^2.2.0",
113
125
  "better-auth": "^1.6.11",
114
126
  "zod": "^4.3.6"
115
127
  }