@vauban-org/agent-sdk 0.17.3 → 0.17.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"run-step-persistence.d.ts","sourceRoot":"","sources":["../../../src/orchestration/ooda/run-step-persistence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,aAAa,CAAC;IACpB,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAiC7B;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA2B/B;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,IAAI,CAAC,CAcf"}
1
+ {"version":3,"file":"run-step-persistence.d.ts","sourceRoot":"","sources":["../../../src/orchestration/ooda/run-step-persistence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAqBhD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,aAAa,CAAC;IACpB,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAiC7B;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA4B/B;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,IAAI,CAAC,CAcf"}
@@ -14,7 +14,22 @@
14
14
  *
15
15
  * @public
16
16
  */
17
- import { computeLeafHash } from "@vauban-org/proof-core";
17
+ let _computeLeafHash = null;
18
+ async function getComputeLeafHash() {
19
+ if (_computeLeafHash !== null)
20
+ return _computeLeafHash;
21
+ try {
22
+ const mod = await import("@vauban-org/proof-core");
23
+ _computeLeafHash = mod.computeLeafHash;
24
+ }
25
+ catch {
26
+ // proof-core not installed (optional peer) — fall back to sync node:crypto SHA-256
27
+ const { createHash } = await import("node:crypto");
28
+ _computeLeafHash = (payload) => createHash("sha256").update(JSON.stringify(payload)).digest("hex");
29
+ }
30
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
31
+ return _computeLeafHash;
32
+ }
18
33
  /**
19
34
  * Insert a `run_step` row in `pending` state and return the freshly
20
35
  * minted UUID. Caller is responsible for finishing it via
@@ -62,6 +77,7 @@ export async function completeRunStep(db, stepId, payload) {
62
77
  Array.isArray(payload)) {
63
78
  throw new Error("[ooda] completeRunStep: payload must be a plain object");
64
79
  }
80
+ const computeLeafHash = await getComputeLeafHash();
65
81
  const leafHash = computeLeafHash(payload);
66
82
  await db.query(`UPDATE run_step
67
83
  SET status = 'done',
@@ -1 +1 @@
1
- {"version":3,"file":"run-step-persistence.js","sourceRoot":"","sources":["../../../src/orchestration/ooda/run-step-persistence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAazD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAY,EACZ,KAAa,EACb,KAAyB;IAEzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAK,KAAK,CAAC,SAAoB,GAAG,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAExD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,KAAK,CACxB;;;;kBAIc,EACd;QACE,KAAK;QACL,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,YAAY,IAAI,IAAI;QAC1B,KAAK,CAAC,IAAI;QACV,KAAK,CAAC,KAAK;QACX,WAAW;KACZ,CACF,CAAC;IAEF,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAY,EACZ,MAAc,EACd,OAAgC;IAEhC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IACD,IACE,OAAO,KAAK,IAAI;QAChB,OAAO,OAAO,KAAK,QAAQ;QAC3B,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EACtB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAE1C,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;oBAKgB,EAChB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAC5C,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EAAY,EACZ,MAAc,EACd,KAAY;IAEZ,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEvE,MAAM,EAAE,CAAC,KAAK,CACZ;;;;oBAIgB,EAChB,CAAC,MAAM,EAAE,OAAO,CAAC,CAClB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"run-step-persistence.js","sourceRoot":"","sources":["../../../src/orchestration/ooda/run-step-persistence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,IAAI,gBAAgB,GAAsB,IAAI,CAAC;AAE/C,KAAK,UAAU,kBAAkB;IAC/B,IAAI,gBAAgB,KAAK,IAAI;QAAE,OAAO,gBAAgB,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAoC,CAAC;QACtF,gBAAgB,GAAG,GAAG,CAAC,eAAe,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,mFAAmF;QACnF,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACnD,gBAAgB,GAAG,CAAC,OAAO,EAAE,EAAE,CAC7B,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC;IACD,oEAAoE;IACpE,OAAO,gBAAiB,CAAC;AAC3B,CAAC;AAWD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAY,EACZ,KAAa,EACb,KAAyB;IAEzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAK,KAAK,CAAC,SAAoB,GAAG,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAExD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,KAAK,CACxB;;;;kBAIc,EACd;QACE,KAAK;QACL,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,YAAY,IAAI,IAAI;QAC1B,KAAK,CAAC,IAAI;QACV,KAAK,CAAC,KAAK;QACX,WAAW;KACZ,CACF,CAAC;IAEF,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAY,EACZ,MAAc,EACd,OAAgC;IAEhC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IACD,IACE,OAAO,KAAK,IAAI;QAChB,OAAO,OAAO,KAAK,QAAQ;QAC3B,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EACtB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,kBAAkB,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAE1C,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;oBAKgB,EAChB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAC5C,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EAAY,EACZ,MAAc,EACd,KAAY;IAEZ,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEvE,MAAM,EAAE,CAAC,KAAK,CACZ;;;;oBAIgB,EAChB,CAAC,MAAM,EAAE,OAAO,CAAC,CAClB,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vauban-org/agent-sdk",
3
- "version": "0.17.3",
3
+ "version": "0.17.4",
4
4
  "description": "Vauban agent primitives: loop, budget, routing, HITL, permissions, tracking, durable execution",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -15,10 +15,28 @@
15
15
  * @public
16
16
  */
17
17
 
18
- import { computeLeafHash } from "@vauban-org/proof-core";
19
18
  import type { DbClient } from "../../tracking/agent-run-tracker.js";
20
19
  import type { OODAPhaseKind } from "./types.js";
21
20
 
21
+ // Lazy singleton — proof-core is an optional peerDep; SHA-256 fallback when absent
22
+ type LeafHashFn = (payload: Record<string, unknown>) => string;
23
+ let _computeLeafHash: LeafHashFn | null = null;
24
+
25
+ async function getComputeLeafHash(): Promise<LeafHashFn> {
26
+ if (_computeLeafHash !== null) return _computeLeafHash;
27
+ try {
28
+ const mod = await import("@vauban-org/proof-core") as { computeLeafHash: LeafHashFn };
29
+ _computeLeafHash = mod.computeLeafHash;
30
+ } catch {
31
+ // proof-core not installed (optional peer) — fall back to sync node:crypto SHA-256
32
+ const { createHash } = await import("node:crypto");
33
+ _computeLeafHash = (payload) =>
34
+ createHash("sha256").update(JSON.stringify(payload)).digest("hex");
35
+ }
36
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
37
+ return _computeLeafHash!;
38
+ }
39
+
22
40
  export interface InsertRunStepInput {
23
41
  type: OODAPhaseKind;
24
42
  /** Human-readable phase tag (e.g. "observe", "orient", "decide", "act"). */
@@ -97,6 +115,7 @@ export async function completeRunStep(
97
115
  throw new Error("[ooda] completeRunStep: payload must be a plain object");
98
116
  }
99
117
 
118
+ const computeLeafHash = await getComputeLeafHash();
100
119
  const leafHash = computeLeafHash(payload);
101
120
 
102
121
  await db.query(