@oomol-lab/open-flow 0.1.0-beta.40 → 0.1.0-beta.41

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.
Files changed (51) hide show
  1. package/README.md +9 -0
  2. package/dist/browser/{createResourceDialog-BOrW62JW.js → createResourceDialog-DmJk4LsF.js} +28 -29
  3. package/dist/browser/dist-BhV15xlT.js +300 -0
  4. package/dist/browser/flow-authoring-node.d.ts +4 -1
  5. package/dist/browser/flow-authoring.js +7 -10
  6. package/dist/browser/flow-change.d.ts +3 -15
  7. package/dist/browser/flow-change.js +1 -2
  8. package/dist/browser/{editorComponent-0skblWYk.js → flowChanges-Rb1Nz-ph.js} +34187 -15646
  9. package/dist/browser/{flowRunInputEditorStore-Bgb5vSeS.js → flowRunInputEditorStore-rVbwoTfN.js} +1 -1
  10. package/dist/browser/{flowWorkspace-DJzQVVtZ.js → flowWorkspace-B04ZIbVq.js} +38861 -39243
  11. package/dist/browser/licenses.md +16 -0
  12. package/dist/browser/{markdownContent-D2oHGWc6.js → markdownContent-DP6aYNZN.js} +17 -17
  13. package/dist/browser/markdownContent-DPkwZqaL.js +44588 -0
  14. package/dist/browser/preview.css +2 -0
  15. package/dist/browser/preview.css.d.ts +1 -0
  16. package/dist/browser/preview.d.ts +15 -0
  17. package/dist/browser/preview.js +88010 -0
  18. package/dist/browser/theme.css +7 -1
  19. package/dist/browser/{typeScriptSession-v9Pb3G6d.js → typeScriptSession-By_yez_b.js} +1 -1
  20. package/dist/browser/ui.css +1 -1
  21. package/dist/browser/ui.js +3903 -1421
  22. package/dist/browser/workbench-contract.d.ts +21 -12
  23. package/dist/browser/workbench.css +1 -1
  24. package/dist/browser/workbench.d.ts +3 -1
  25. package/dist/browser/workbench.js +1174 -1848
  26. package/dist/browser/workbenchSelect-Bq6KHpKx.js +16033 -0
  27. package/dist/common/control-api-conformance.js +2606 -2540
  28. package/dist/common/control-api.d.ts +18 -10
  29. package/dist/common/control-api.js +2428 -2381
  30. package/dist/common/control-requests.js +4 -8
  31. package/dist/common/flow-encoding.js +1 -2
  32. package/dist/common/flow-graph.d.ts +1 -1
  33. package/dist/common/flow-promptTemplate.d.ts +4 -0
  34. package/dist/common/flow-schema.d.ts +1 -0
  35. package/dist/common/flow-semantics.d.ts +2 -1
  36. package/dist/common/flow-semantics.js +2780 -2770
  37. package/dist/common/integration-trigger.js +724 -721
  38. package/dist/common/mcp.js +789 -739
  39. package/dist/common/poll-trigger.js +40 -37
  40. package/dist/common/provider-triggers.js +611 -608
  41. package/dist/common/providerIconSprite.d.ts +25 -0
  42. package/dist/common/runtime-contract.js +2 -1
  43. package/dist/common/scheduler.d.ts +2 -0
  44. package/dist/common/scheduler.js +1585 -1549
  45. package/dist/common/webhook-trigger.js +1 -2
  46. package/dist/index.d.ts +19 -0
  47. package/package.json +9 -1
  48. package/dist/browser/flowChanges-3o9Vs_1I.js +0 -10137
  49. package/dist/browser/inputValues-DkDT6u0o.js +0 -43
  50. package/dist/browser/lite-BA96NG4M.js +0 -8549
  51. package/dist/browser/workbenchSelect-B5zXyaaX.js +0 -6423
@@ -7228,8 +7228,7 @@ var uf = K(J([q({
7228
7228
  kind: X("agent"),
7229
7229
  code: bd().optional(),
7230
7230
  model: Z,
7231
- prompt: Tf,
7232
- system: Z,
7231
+ prompt: Z,
7233
7232
  maxRounds: gd(),
7234
7233
  tools: K(q({
7235
7234
  id: Z,
@@ -7635,35 +7634,39 @@ function Kf(e) {
7635
7634
  }
7636
7635
  var qf = /* @__PURE__ */ new WeakMap();
7637
7636
  function Jf(e, t) {
7638
- if (typeof t == "boolean") return t;
7637
+ return Yf(e, t).length == 0;
7638
+ }
7639
+ function Yf(e, t) {
7640
+ if (typeof t == "boolean") return t ? [] : ["The schema does not allow any value."];
7639
7641
  let n = Kf(t);
7640
- if (n == null || n.properties != null && Kf(n.properties) == null) return !1;
7642
+ if (n == null || n.properties != null && Kf(n.properties) == null) return ["Invalid output schema."];
7641
7643
  try {
7642
7644
  let t = qf.get(n);
7643
7645
  if (t == null) {
7644
7646
  let e = typeof n.$schema == "string" ? n.$schema : "", r = e.includes("draft-04") ? "4" : e.includes("draft-07") ? "7" : e.includes("2020-12") ? "2020-12" : "2019-09";
7645
7647
  t = new xe(structuredClone(n), r), qf.set(n, t);
7646
7648
  }
7647
- return t.validate(e).valid;
7649
+ let r = t.validate(e);
7650
+ return r.valid ? [] : r.errors.map((e) => `${e.instanceLocation || "/"}: ${e.error}`);
7648
7651
  } catch {
7649
- return !1;
7652
+ return ["Output schema validation failed."];
7650
7653
  }
7651
7654
  }
7652
7655
  //#endregion
7653
7656
  //#region src/trigger/common/config.ts
7654
- function Yf(t, n) {
7657
+ function Xf(t, n) {
7655
7658
  return e(n[t.handle], t.value);
7656
7659
  }
7657
- function Xf(e, t) {
7658
- return Object.fromEntries(e.flatMap((e) => "handle" in e ? [[e.handle, Yf(e, t) ?? null]] : []));
7659
- }
7660
7660
  function Zf(e, t) {
7661
+ return Object.fromEntries(e.flatMap((e) => "handle" in e ? [[e.handle, Xf(e, t) ?? null]] : []));
7662
+ }
7663
+ function Qf(e, t) {
7661
7664
  let n = e.filter((e) => "handle" in e), r = new Set(n.map((e) => e.handle));
7662
7665
  if (r.size !== n.length) throw TypeError("Trigger config has duplicate input handles.");
7663
7666
  let i = Object.keys(t).find((e) => !r.has(e));
7664
7667
  if (i != null) throw TypeError(`Unknown Trigger config input "${i}".`);
7665
7668
  let a = Object.fromEntries(n.map((e) => {
7666
- let n = Yf(e, t) ?? null;
7669
+ let n = Xf(e, t) ?? null;
7667
7670
  if (!(n === null && e.nullable) && !Jf(n, e.jsonSchema)) throw TypeError(`Trigger config input "${e.handle}" does not match its declared schema.`);
7668
7671
  return [e.handle, n];
7669
7672
  }));
@@ -7672,32 +7675,32 @@ function Zf(e, t) {
7672
7675
  }
7673
7676
  //#endregion
7674
7677
  //#region src/trigger/common/poll.ts
7675
- var Qf = new TextEncoder(), $f = 65536, ep = 1024, tp = 100;
7676
- function np(e) {
7678
+ var $f = new TextEncoder(), ep = 65536, tp = 1024, np = 100;
7679
+ function rp(e) {
7677
7680
  return { events: e.map((e) => e.payload) };
7678
7681
  }
7679
- var rp = class extends Error {
7682
+ var ip = class extends Error {
7680
7683
  constructor(...e) {
7681
7684
  super(...e), this.name = "PollConnectionError";
7682
7685
  }
7683
- }, ip = class extends Error {
7686
+ }, ap = class extends Error {
7684
7687
  constructor(...e) {
7685
7688
  super(...e), this.name = "PermanentPollError";
7686
7689
  }
7687
- }, ap = class extends Error {
7690
+ }, op = class extends Error {
7688
7691
  constructor(...e) {
7689
7692
  super(...e), this.name = "TransientPollError";
7690
7693
  }
7691
7694
  };
7692
- async function op(e, t, n, r) {
7695
+ async function sp(e, t, n, r) {
7693
7696
  if (!Number.isSafeInteger(r) || r <= 0) throw RangeError("Poll continuation page must be a positive integer.");
7694
- return await up(`${e}\0${t}\0${n}\0${r}`);
7697
+ return await dp(`${e}\0${t}\0${n}\0${r}`);
7695
7698
  }
7696
- async function sp(e, t, n) {
7697
- if (Qf.encode(n).byteLength > 1024) throw RangeError("Poll event dedupe key exceeds 1024 bytes.");
7698
- return await up(`${e}\0${t}\0${n}`);
7699
+ async function cp(e, t, n) {
7700
+ if ($f.encode(n).byteLength > 1024) throw RangeError("Poll event dedupe key exceeds 1024 bytes.");
7701
+ return await dp(`${e}\0${t}\0${n}`);
7699
7702
  }
7700
- var cp = {
7703
+ var lp = {
7701
7704
  config: { source: "primary" },
7702
7705
  connectionId: "connection-primary",
7703
7706
  publishedAt: "2026-08-21T00:00:30.000Z",
@@ -7706,9 +7709,9 @@ var cp = {
7706
7709
  unit: "minute",
7707
7710
  value: 1
7708
7711
  }]
7709
- }, lp = [
7712
+ }, up = [
7710
7713
  {
7711
- fixture: cp,
7714
+ fixture: lp,
7712
7715
  name: "baselines every continuation page before becoming healthy",
7713
7716
  async verify(e) {
7714
7717
  await e.tick("2026-08-21T00:01:00.000Z", [{
@@ -7724,7 +7727,7 @@ var cp = {
7724
7727
  dedupeKey: "old-2",
7725
7728
  payload: { value: "old-2" }
7726
7729
  }]
7727
- }]), dp(await e.state(), {
7730
+ }]), fp(await e.state(), {
7728
7731
  calls: 2,
7729
7732
  checkpoint: { cursor: "baseline-2" },
7730
7733
  health: "healthy",
@@ -7733,7 +7736,7 @@ var cp = {
7733
7736
  }
7734
7737
  },
7735
7738
  {
7736
- fixture: cp,
7739
+ fixture: lp,
7737
7740
  name: "batches fresh page events and suppresses duplicate identities",
7738
7741
  async verify(e) {
7739
7742
  await e.tick("2026-08-21T00:01:00.000Z", [{
@@ -7757,7 +7760,7 @@ var cp = {
7757
7760
  }]), await e.tick("2026-08-21T00:03:00.000Z", [{
7758
7761
  checkpoint: { cursor: "last" },
7759
7762
  events: [t]
7760
- }]), dp(await e.state(), {
7763
+ }]), fp(await e.state(), {
7761
7764
  calls: 3,
7762
7765
  checkpoint: { cursor: "last" },
7763
7766
  health: "healthy",
@@ -7766,7 +7769,7 @@ var cp = {
7766
7769
  }
7767
7770
  },
7768
7771
  {
7769
- fixture: cp,
7772
+ fixture: lp,
7770
7773
  name: "replays a completed root across restart without polling again",
7771
7774
  async verify(e) {
7772
7775
  await e.tick("2026-08-21T00:01:00.000Z", [{
@@ -7778,7 +7781,7 @@ var cp = {
7778
7781
  dedupeKey: "event-1",
7779
7782
  payload: { value: "first" }
7780
7783
  }]
7781
- }]), await e.restart(), await e.replayLast(), dp(await e.state(), {
7784
+ }]), await e.restart(), await e.replayLast(), fp(await e.state(), {
7782
7785
  calls: 2,
7783
7786
  checkpoint: { cursor: "event" },
7784
7787
  health: "healthy",
@@ -7787,13 +7790,13 @@ var cp = {
7787
7790
  }
7788
7791
  },
7789
7792
  {
7790
- fixture: cp,
7793
+ fixture: lp,
7791
7794
  name: "preserves an unchanged checkpoint and baselines changed semantics",
7792
7795
  async verify(e) {
7793
7796
  await e.tick("2026-08-21T00:01:00.000Z", [{
7794
7797
  checkpoint: { cursor: "baseline" },
7795
7798
  events: []
7796
- }]), await e.republish("2026-08-21T00:01:30.000Z"), dp(await e.state(), {
7799
+ }]), await e.republish("2026-08-21T00:01:30.000Z"), fp(await e.state(), {
7797
7800
  calls: 1,
7798
7801
  checkpoint: { cursor: "baseline" },
7799
7802
  health: "healthy",
@@ -7804,7 +7807,7 @@ var cp = {
7804
7807
  dedupeKey: "old-secondary",
7805
7808
  payload: { value: "old" }
7806
7809
  }]
7807
- }]), dp(await e.state(), {
7810
+ }]), fp(await e.state(), {
7808
7811
  calls: 2,
7809
7812
  checkpoint: { cursor: "secondary-baseline" },
7810
7813
  health: "healthy",
@@ -7812,7 +7815,7 @@ var cp = {
7812
7815
  }, "Changed publication state"), await e.retire("2026-08-21T00:02:30.000Z"), await e.tick("2026-08-21T00:03:00.000Z", [{
7813
7816
  checkpoint: { cursor: "retired" },
7814
7817
  events: []
7815
- }]), dp(await e.state(), {
7818
+ }]), fp(await e.state(), {
7816
7819
  calls: 2,
7817
7820
  checkpoint: { cursor: "secondary-baseline" },
7818
7821
  health: "healthy",
@@ -7821,12 +7824,12 @@ var cp = {
7821
7824
  }
7822
7825
  }
7823
7826
  ];
7824
- async function up(e) {
7825
- let t = new Uint8Array(await crypto.subtle.digest("SHA-256", Qf.encode(e)));
7827
+ async function dp(e) {
7828
+ let t = new Uint8Array(await crypto.subtle.digest("SHA-256", $f.encode(e)));
7826
7829
  return `sha256:${Array.from(t, (e) => e.toString(16).padStart(2, "0")).join("")}`;
7827
7830
  }
7828
- function dp(e, t, n) {
7831
+ function fp(e, t, n) {
7829
7832
  if (JSON.stringify(e) != JSON.stringify(t)) throw Error(`${n}: expected ${JSON.stringify(t)}, received ${JSON.stringify(e)}.`);
7830
7833
  }
7831
7834
  //#endregion
7832
- export { ip as PermanentPollError, rp as PollConnectionError, ap as TransientPollError, np as eventsPollOutputs, $f as maximumPollCheckpointBytes, ep as maximumPollDedupeKeyBytes, tp as maximumPollEventsPerPage, lp as pollConformanceCases, op as pollPageClaimId, sp as providerEventId, Zf as resolveTriggerConfig, Xf as triggerConfigValues };
7835
+ export { ap as PermanentPollError, ip as PollConnectionError, op as TransientPollError, rp as eventsPollOutputs, ep as maximumPollCheckpointBytes, tp as maximumPollDedupeKeyBytes, np as maximumPollEventsPerPage, up as pollConformanceCases, sp as pollPageClaimId, cp as providerEventId, Qf as resolveTriggerConfig, Zf as triggerConfigValues };