@axiom-lattice/gateway 4.9.0 → 4.9.1

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 (33) hide show
  1. package/dist/{chunk-NPHK4SZ6.mjs → chunk-FGSFOXIX.mjs} +2 -2
  2. package/dist/{chunk-73QZQQOT.mjs → chunk-MWWLJMYN.mjs} +3 -2
  3. package/dist/chunk-MWWLJMYN.mjs.map +1 -0
  4. package/dist/embed/{embed-page-AgentDetailSideApp-BVJK7WIS.js → embed-page-AgentDetailSideApp-UMITWVYQ.js} +1 -1
  5. package/dist/embed/{embed-page-AgentGovernanceWorkbench-L2YHPRNE.js → embed-page-AgentGovernanceWorkbench-UD7RE7PT.js} +1 -1
  6. package/dist/embed/{embed-page-MessageGraph-JOQ46UE2.js → embed-page-MessageGraph-XQWKYDUB.js} +1 -1
  7. package/dist/embed/{embed-page-ReactChart-I5AYTSII.js → embed-page-ReactChart-LW3GWMY2.js} +1 -1
  8. package/dist/embed/{embed-page-SkillFlow-YLB5XPFH.js → embed-page-SkillFlow-X3D346DE.js} +1 -1
  9. package/dist/embed/{embed-page-TasksSideApp-QLJVB7UK.js → embed-page-TasksSideApp-SUMX2GJF.js} +1 -1
  10. package/dist/embed/{embed-page-TeamWorkspace-BZZEAYSB.js → embed-page-TeamWorkspace-QMIX2TP2.js} +1 -1
  11. package/dist/embed/{embed-page-TopologyRuntimeView-FRA3AXQQ.js → embed-page-TopologyRuntimeView-ZP6NWNS7.js} +1 -1
  12. package/dist/embed/{embed-page-WorkflowAutomationView-D745PK3W.js → embed-page-WorkflowAutomationView-4HD3ISK6.js} +1 -1
  13. package/dist/embed/{embed-page-chunk-FVMSMU4J.js → embed-page-chunk-3VIEL6KL.js} +1 -1
  14. package/dist/embed/{embed-page-chunk-4WBAN7QL.js → embed-page-chunk-MFFCCHGW.js} +158 -158
  15. package/dist/embed/{embed-page-chunk-M2PV36MX.js → embed-page-chunk-QCKYIPFY.js} +1 -1
  16. package/dist/embed/{embed-page-chunk-P5PFV3N7.js → embed-page-chunk-QGAGZMX2.js} +1 -1
  17. package/dist/embed/{embed-page-chunk-FWGNJMXD.js → embed-page-chunk-SX7YO5JA.js} +1 -1
  18. package/dist/embed/{embed-page-chunk-WMLR2GQK.js → embed-page-chunk-T7XXE35M.js} +1 -1
  19. package/dist/embed/{embed-page-chunk-K5YYUAPL.js → embed-page-chunk-YAJUWBF2.js} +1 -1
  20. package/dist/embed/embed-page.js +1 -1
  21. package/dist/index.d.mts +48 -3
  22. package/dist/index.d.ts +48 -3
  23. package/dist/index.js +621 -442
  24. package/dist/index.js.map +1 -1
  25. package/dist/index.mjs +327 -146
  26. package/dist/index.mjs.map +1 -1
  27. package/dist/{open-UVKMONVE.mjs → open-FJ3BY3CL.mjs} +3 -3
  28. package/dist/{open-exposure-27ESFWTB.mjs → open-exposure-OX5NKWDG.mjs} +3 -3
  29. package/package.json +3 -3
  30. package/dist/chunk-73QZQQOT.mjs.map +0 -1
  31. /package/dist/{chunk-NPHK4SZ6.mjs.map → chunk-FGSFOXIX.mjs.map} +0 -0
  32. /package/dist/{open-UVKMONVE.mjs.map → open-FJ3BY3CL.mjs.map} +0 -0
  33. /package/dist/{open-exposure-27ESFWTB.mjs.map → open-exposure-OX5NKWDG.mjs.map} +0 -0
@@ -1,4 +1,4 @@
1
- import{$a as v,Ya as L,_a as I,cb as M,db as b,k as R,m as B,ra as O}from"./embed-page-chunk-4WBAN7QL.js";import{a as P}from"./embed-page-chunk-MB65DZAX.js";import{Fa as C,La as $,Z as N,va as S}from"./embed-page-chunk-FZRTVFHF.js";import{a as V}from"./embed-page-chunk-4BKXE5ON.js";import{e as w}from"./embed-page-chunk-6Y3UYJ6Z.js";var m=w(V());function X(t,o){if(t.parentId&&t.parentId!==t.id&&o.has(t.parentId))return t.parentId;for(let c of t.dependencies??[])if(c!==t.id&&o.has(c))return c}function D(t,o){let u=o?.hideCompleted??!1?t.filter(e=>!b(e.status)):t,g=new Map(u.map(e=>[e.id,e])),d=new Map;for(let e of u)d.set(e.id,X(e,g));let r=new Set;for(let e of d.keys()){if(r.has(e))continue;let l=new Map,p=e,h=0;for(;p!==void 0&&!r.has(p)&&!l.has(p);)l.set(p,h),h+=1,p=d.get(p);if(p!==void 0&&l.has(p)){let y=l.get(p);for(let[i,f]of l)f>=y&&r.add(i)}}for(let e of r)d.set(e,void 0);let x=new Map;for(let e of u)x.set(e.id,[]);for(let e of u){let l=d.get(e.id);l!==void 0&&x.get(l).push(e.id)}let s=e=>({task:g.get(e),children:(x.get(e)??[]).map(s)});return u.filter(e=>d.get(e.id)===void 0).map(e=>s(e.id))}var n=w(P()),{Text:z}=$,Y=16,q=3,J=O(({css:t,token:o})=>({root:t`
1
+ import{$a as v,Ya as L,_a as I,cb as M,db as b,k as R,m as B,ra as O}from"./embed-page-chunk-MFFCCHGW.js";import{a as P}from"./embed-page-chunk-MB65DZAX.js";import{Fa as C,La as $,Z as N,va as S}from"./embed-page-chunk-FZRTVFHF.js";import{a as V}from"./embed-page-chunk-4BKXE5ON.js";import{e as w}from"./embed-page-chunk-6Y3UYJ6Z.js";var m=w(V());function X(t,o){if(t.parentId&&t.parentId!==t.id&&o.has(t.parentId))return t.parentId;for(let c of t.dependencies??[])if(c!==t.id&&o.has(c))return c}function D(t,o){let u=o?.hideCompleted??!1?t.filter(e=>!b(e.status)):t,g=new Map(u.map(e=>[e.id,e])),d=new Map;for(let e of u)d.set(e.id,X(e,g));let r=new Set;for(let e of d.keys()){if(r.has(e))continue;let l=new Map,p=e,h=0;for(;p!==void 0&&!r.has(p)&&!l.has(p);)l.set(p,h),h+=1,p=d.get(p);if(p!==void 0&&l.has(p)){let y=l.get(p);for(let[i,f]of l)f>=y&&r.add(i)}}for(let e of r)d.set(e,void 0);let x=new Map;for(let e of u)x.set(e.id,[]);for(let e of u){let l=d.get(e.id);l!==void 0&&x.get(l).push(e.id)}let s=e=>({task:g.get(e),children:(x.get(e)??[]).map(s)});return u.filter(e=>d.get(e.id)===void 0).map(e=>s(e.id))}var n=w(P()),{Text:z}=$,Y=16,q=3,J=O(({css:t,token:o})=>({root:t`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  height: 100%;
@@ -1,4 +1,4 @@
1
- import{b as f}from"./embed-page-chunk-M2PV36MX.js";import"./embed-page-chunk-4WBAN7QL.js";import"./embed-page-chunk-WMLR2GQK.js";import{a as b}from"./embed-page-chunk-MB65DZAX.js";import"./embed-page-chunk-VW3NF5NT.js";import"./embed-page-chunk-5JDQ456X.js";import"./embed-page-chunk-6KCBXVIT.js";import{a as g}from"./embed-page-chunk-FZRTVFHF.js";import"./embed-page-chunk-4BKXE5ON.js";import"./embed-page-chunk-IX4WLWCY.js";import"./embed-page-chunk-EUOOO2LS.js";import{b as U,e as s}from"./embed-page-chunk-6Y3UYJ6Z.js";var h=U(d=>{"use strict";var E=g();d.createRoot=E.createRoot,d.hydrateRoot=E.hydrateRoot;var ee});var T=s(h()),k=s(g());var y="axiom-web-app-embed";var x=["axiom:hello","axiom:identity","axiom:send","axiom:config"];function w(e,t){return{source:y,version:1,type:e,payload:t}}var N=6,z=40,B=500;function H(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e,n=Object.keys(t);return n.length!==2||!n.includes("label")||!n.includes("text")?!1:typeof t.label=="string"&&t.label.length>=1&&t.label.length<=z&&typeof t.text=="string"&&t.text.length>=1&&t.text.length<=B}function Q(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(t.length>=N)break;H(n)&&t.push({label:n.label,text:n.text})}return t}function _(e){if(typeof e!="object"||e===null)return null;let t=e,n={};if(typeof t.welcome=="string"&&t.welcome.length>0&&(n.welcome=t.welcome),Array.isArray(t.quicks)){let r=Q(t.quicks);(r.length>0||t.quicks.length===0)&&(n.quicks=r)}return n.welcome===void 0&&n.quicks===void 0?null:n}function R(e,t){if(typeof e!="object"||e===null)return null;let n=e;return n.source!==y||n.version!==1||typeof n.type!="string"||!t.includes(n.type)?null:{type:n.type,payload:n.payload}}var p=s(b()),P=/^[A-Za-z0-9._:@-]{1,128}$/,q="Open this chat from the host page embed to start chatting.",v="axiom-embed-root",C="axiom-embed-style",A=32768,G=`
1
+ import{b as f}from"./embed-page-chunk-QCKYIPFY.js";import"./embed-page-chunk-MFFCCHGW.js";import"./embed-page-chunk-T7XXE35M.js";import{a as b}from"./embed-page-chunk-MB65DZAX.js";import"./embed-page-chunk-VW3NF5NT.js";import"./embed-page-chunk-5JDQ456X.js";import"./embed-page-chunk-6KCBXVIT.js";import{a as g}from"./embed-page-chunk-FZRTVFHF.js";import"./embed-page-chunk-4BKXE5ON.js";import"./embed-page-chunk-IX4WLWCY.js";import"./embed-page-chunk-EUOOO2LS.js";import{b as U,e as s}from"./embed-page-chunk-6Y3UYJ6Z.js";var h=U(d=>{"use strict";var E=g();d.createRoot=E.createRoot,d.hydrateRoot=E.hydrateRoot;var ee});var T=s(h()),k=s(g());var y="axiom-web-app-embed";var x=["axiom:hello","axiom:identity","axiom:send","axiom:config"];function w(e,t){return{source:y,version:1,type:e,payload:t}}var N=6,z=40,B=500;function H(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e,n=Object.keys(t);return n.length!==2||!n.includes("label")||!n.includes("text")?!1:typeof t.label=="string"&&t.label.length>=1&&t.label.length<=z&&typeof t.text=="string"&&t.text.length>=1&&t.text.length<=B}function Q(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(t.length>=N)break;H(n)&&t.push({label:n.label,text:n.text})}return t}function _(e){if(typeof e!="object"||e===null)return null;let t=e,n={};if(typeof t.welcome=="string"&&t.welcome.length>0&&(n.welcome=t.welcome),Array.isArray(t.quicks)){let r=Q(t.quicks);(r.length>0||t.quicks.length===0)&&(n.quicks=r)}return n.welcome===void 0&&n.quicks===void 0?null:n}function R(e,t){if(typeof e!="object"||e===null)return null;let n=e;return n.source!==y||n.version!==1||typeof n.type!="string"||!t.includes(n.type)?null:{type:n.type,payload:n.payload}}var p=s(b()),P=/^[A-Za-z0-9._:@-]{1,128}$/,q="Open this chat from the host page embed to start chatting.",v="axiom-embed-root",C="axiom-embed-style",A=32768,G=`
2
2
  html, body, #${v} { height: 100%; margin: 0; }
3
3
  .axiom-embed-fill { height: 100% !important; min-height: 0 !important; }
4
4
  .axiom-embed-card { display: flex; align-items: center; justify-content: center; height: 100%; margin: 0; font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-size: 14px; color: #64748b; padding: 24px; box-sizing: border-box; text-align: center; }
package/dist/index.d.mts CHANGED
@@ -709,6 +709,26 @@ interface ProjectTaskExecutionOptions {
709
709
  /** Queue message id factory; defaults to `randomUUID`. */
710
710
  idFactory?: () => string;
711
711
  }
712
+ /**
713
+ * Optional resume command threaded into the queued trusted run message.
714
+ *
715
+ * @remarks Only honored for `resume`-mode dispatch of an interrupted task:
716
+ * a paused LangGraph worker needs `Command(resume)` to continue the same run.
717
+ * A `start` (pending) or restart dispatch never attaches it, even when a
718
+ * caller passes options.
719
+ */
720
+ interface ProjectTaskResumeOptions {
721
+ command?: {
722
+ resume: unknown;
723
+ };
724
+ /**
725
+ * Optional status guard evaluated against the same single `requireTask` read
726
+ * that routes the dispatch, closing the race where a task flips between a
727
+ * caller's status check and dispatch (which would otherwise restart without
728
+ * the command and discard the answers).
729
+ */
730
+ expectedStatus?: TaskItem["status"];
731
+ }
712
732
  /** Collaborators required to validate, dispatch, recover, and settle Project Task executions. */
713
733
  interface ProjectTaskExecutionDependencies {
714
734
  tasks: TaskStore;
@@ -726,6 +746,20 @@ interface ProjectTaskExecutionDependencies {
726
746
  projectId: string;
727
747
  assistantId: string;
728
748
  }) => Promise<unknown>;
749
+ /**
750
+ * Optional gateway hook: a task thread paused with a durable interruption.
751
+ *
752
+ * @remarks Best-effort and fire-and-forget: it never blocks or alters
753
+ * settlement. It may fire more than once for the same interrupt (the
754
+ * `message:interrupted` event path and the recovery path), so consumers must
755
+ * dedupe using the correlation key derived from `messageId`.
756
+ */
757
+ onTaskInterrupted?: (input: {
758
+ task: TaskItem;
759
+ thread: Thread;
760
+ messageId: string;
761
+ state: unknown;
762
+ }) => void | Promise<void>;
729
763
  }
730
764
  /** Input for recovering exactly one persisted Project Task queue execution. */
731
765
  interface RecoverProjectTaskExecutionInput {
@@ -763,7 +797,7 @@ declare class ProjectTaskExecutionService {
763
797
  tenantId: string;
764
798
  taskId: string;
765
799
  actor?: string;
766
- }, signal?: AbortSignal): Promise<ProjectTaskRunOutcome>;
800
+ }, signal?: AbortSignal, options?: ProjectTaskResumeOptions): Promise<ProjectTaskRunOutcome>;
767
801
  /** Clears the durable interruption and loads the exact resumed task. */
768
802
  private prepareResume;
769
803
  /**
@@ -772,6 +806,7 @@ declare class ProjectTaskExecutionService {
772
806
  *
773
807
  * @param input Tenant, task identity, and optional command actor.
774
808
  * @param signal Optional cancellation signal for the armed settlement.
809
+ * @param options Optional resume command carried into the queued run message.
775
810
  * @returns The settled run outcome.
776
811
  * @remarks `start` semantics: make this task run. `pending` starts,
777
812
  * `interrupted` resumes, `failed` retries, and `completed`/`cancelled`
@@ -779,17 +814,19 @@ declare class ProjectTaskExecutionService {
779
814
  * conflict. This is a record transition plus an application-layer side
780
815
  * effect; the kernel only records the status change. `actor` attributes the
781
816
  * start/resume/retry/reopen transition and defaults to the system actor.
817
+ * `options.command` is only carried on an interrupted-task resume.
782
818
  */
783
819
  dispatch(input: {
784
820
  tenantId: string;
785
821
  taskId: string;
786
822
  actor?: string;
787
- }, signal?: AbortSignal): Promise<ProjectTaskRunOutcome>;
823
+ }, signal?: AbortSignal, options?: ProjectTaskResumeOptions): Promise<ProjectTaskRunOutcome>;
788
824
  /**
789
825
  * Dispatches a Project Task without awaiting its settlement.
790
826
  *
791
827
  * @param input Tenant, task identity, and optional command actor.
792
828
  * @param signal Optional cancellation signal for the pre-run transition.
829
+ * @param options Optional resume command carried into the queued run message.
793
830
  * @returns The `in_progress` task snapshot and whether the run was queued.
794
831
  * @remarks Intended for command HTTP handlers that must release the Project
795
832
  * mutation mutex immediately: the armed settlement keeps running in the
@@ -801,7 +838,7 @@ declare class ProjectTaskExecutionService {
801
838
  tenantId: string;
802
839
  taskId: string;
803
840
  actor?: string;
804
- }, signal?: AbortSignal): Promise<{
841
+ }, signal?: AbortSignal, options?: ProjectTaskResumeOptions): Promise<{
805
842
  task: TaskItem;
806
843
  queued: boolean;
807
844
  }>;
@@ -854,6 +891,14 @@ declare class ProjectTaskExecutionService {
854
891
  private compensateCancellation;
855
892
  private reloadTask;
856
893
  private settleInterruptedEvent;
894
+ /**
895
+ * Fire-and-forget best-effort projection of a durable interruption.
896
+ *
897
+ * @remarks Never awaited and never allowed to affect settlement. The state is
898
+ * resolved lazily so a missing/undefined event state only triggers a thread
899
+ * read when the hook is actually wired.
900
+ */
901
+ private emitInterrupted;
857
902
  /** Reads the paused thread snapshot when no interrupt event payload is available (recovery). */
858
903
  private readInterruptedThreadState;
859
904
  /**
package/dist/index.d.ts CHANGED
@@ -709,6 +709,26 @@ interface ProjectTaskExecutionOptions {
709
709
  /** Queue message id factory; defaults to `randomUUID`. */
710
710
  idFactory?: () => string;
711
711
  }
712
+ /**
713
+ * Optional resume command threaded into the queued trusted run message.
714
+ *
715
+ * @remarks Only honored for `resume`-mode dispatch of an interrupted task:
716
+ * a paused LangGraph worker needs `Command(resume)` to continue the same run.
717
+ * A `start` (pending) or restart dispatch never attaches it, even when a
718
+ * caller passes options.
719
+ */
720
+ interface ProjectTaskResumeOptions {
721
+ command?: {
722
+ resume: unknown;
723
+ };
724
+ /**
725
+ * Optional status guard evaluated against the same single `requireTask` read
726
+ * that routes the dispatch, closing the race where a task flips between a
727
+ * caller's status check and dispatch (which would otherwise restart without
728
+ * the command and discard the answers).
729
+ */
730
+ expectedStatus?: TaskItem["status"];
731
+ }
712
732
  /** Collaborators required to validate, dispatch, recover, and settle Project Task executions. */
713
733
  interface ProjectTaskExecutionDependencies {
714
734
  tasks: TaskStore;
@@ -726,6 +746,20 @@ interface ProjectTaskExecutionDependencies {
726
746
  projectId: string;
727
747
  assistantId: string;
728
748
  }) => Promise<unknown>;
749
+ /**
750
+ * Optional gateway hook: a task thread paused with a durable interruption.
751
+ *
752
+ * @remarks Best-effort and fire-and-forget: it never blocks or alters
753
+ * settlement. It may fire more than once for the same interrupt (the
754
+ * `message:interrupted` event path and the recovery path), so consumers must
755
+ * dedupe using the correlation key derived from `messageId`.
756
+ */
757
+ onTaskInterrupted?: (input: {
758
+ task: TaskItem;
759
+ thread: Thread;
760
+ messageId: string;
761
+ state: unknown;
762
+ }) => void | Promise<void>;
729
763
  }
730
764
  /** Input for recovering exactly one persisted Project Task queue execution. */
731
765
  interface RecoverProjectTaskExecutionInput {
@@ -763,7 +797,7 @@ declare class ProjectTaskExecutionService {
763
797
  tenantId: string;
764
798
  taskId: string;
765
799
  actor?: string;
766
- }, signal?: AbortSignal): Promise<ProjectTaskRunOutcome>;
800
+ }, signal?: AbortSignal, options?: ProjectTaskResumeOptions): Promise<ProjectTaskRunOutcome>;
767
801
  /** Clears the durable interruption and loads the exact resumed task. */
768
802
  private prepareResume;
769
803
  /**
@@ -772,6 +806,7 @@ declare class ProjectTaskExecutionService {
772
806
  *
773
807
  * @param input Tenant, task identity, and optional command actor.
774
808
  * @param signal Optional cancellation signal for the armed settlement.
809
+ * @param options Optional resume command carried into the queued run message.
775
810
  * @returns The settled run outcome.
776
811
  * @remarks `start` semantics: make this task run. `pending` starts,
777
812
  * `interrupted` resumes, `failed` retries, and `completed`/`cancelled`
@@ -779,17 +814,19 @@ declare class ProjectTaskExecutionService {
779
814
  * conflict. This is a record transition plus an application-layer side
780
815
  * effect; the kernel only records the status change. `actor` attributes the
781
816
  * start/resume/retry/reopen transition and defaults to the system actor.
817
+ * `options.command` is only carried on an interrupted-task resume.
782
818
  */
783
819
  dispatch(input: {
784
820
  tenantId: string;
785
821
  taskId: string;
786
822
  actor?: string;
787
- }, signal?: AbortSignal): Promise<ProjectTaskRunOutcome>;
823
+ }, signal?: AbortSignal, options?: ProjectTaskResumeOptions): Promise<ProjectTaskRunOutcome>;
788
824
  /**
789
825
  * Dispatches a Project Task without awaiting its settlement.
790
826
  *
791
827
  * @param input Tenant, task identity, and optional command actor.
792
828
  * @param signal Optional cancellation signal for the pre-run transition.
829
+ * @param options Optional resume command carried into the queued run message.
793
830
  * @returns The `in_progress` task snapshot and whether the run was queued.
794
831
  * @remarks Intended for command HTTP handlers that must release the Project
795
832
  * mutation mutex immediately: the armed settlement keeps running in the
@@ -801,7 +838,7 @@ declare class ProjectTaskExecutionService {
801
838
  tenantId: string;
802
839
  taskId: string;
803
840
  actor?: string;
804
- }, signal?: AbortSignal): Promise<{
841
+ }, signal?: AbortSignal, options?: ProjectTaskResumeOptions): Promise<{
805
842
  task: TaskItem;
806
843
  queued: boolean;
807
844
  }>;
@@ -854,6 +891,14 @@ declare class ProjectTaskExecutionService {
854
891
  private compensateCancellation;
855
892
  private reloadTask;
856
893
  private settleInterruptedEvent;
894
+ /**
895
+ * Fire-and-forget best-effort projection of a durable interruption.
896
+ *
897
+ * @remarks Never awaited and never allowed to affect settlement. The state is
898
+ * resolved lazily so a missing/undefined event state only triggers a thread
899
+ * read when the hook is actually wired.
900
+ */
901
+ private emitInterrupted;
857
902
  /** Reads the paused thread snapshot when no interrupt event payload is available (recovery). */
858
903
  private readInterruptedThreadState;
859
904
  /**