@axiom-lattice/gateway 4.10.2 → 5.0.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.
Files changed (33) hide show
  1. package/dist/{OrphanRecoveryRuntime-BEFILJMU.mjs → OrphanRecoveryRuntime-T4T5NOZU.mjs} +2 -2
  2. package/dist/{a2a-standard-PBYPNHOA.mjs → a2a-standard-3OZFXDCW.mjs} +1 -1
  3. package/dist/a2a-standard-3OZFXDCW.mjs.map +1 -0
  4. package/dist/{chunk-ZBTG3T7K.mjs → chunk-NZXKECNN.mjs} +4 -19
  5. package/dist/{chunk-ZBTG3T7K.mjs.map → chunk-NZXKECNN.mjs.map} +1 -1
  6. package/dist/embed/{embed-page-AgentDetailSideApp-2M4MLVQQ.js → embed-page-AgentDetailSideApp-XCP4LY7Y.js} +1 -1
  7. package/dist/embed/{embed-page-AgentGovernanceWorkbench-KEVBIQP6.js → embed-page-AgentGovernanceWorkbench-BBDKEIBI.js} +1 -1
  8. package/dist/embed/{embed-page-MessageGraph-PRBUQINR.js → embed-page-MessageGraph-D77CYFAG.js} +1 -1
  9. package/dist/embed/{embed-page-ReactChart-V6JJXCEV.js → embed-page-ReactChart-TBDJOTZ5.js} +1 -1
  10. package/dist/embed/{embed-page-SkillFlow-6LPE2VG3.js → embed-page-SkillFlow-NDAK3GAD.js} +1 -1
  11. package/dist/embed/{embed-page-TasksSideApp-OFZI54MF.js → embed-page-TasksSideApp-BVCIAE24.js} +5 -5
  12. package/dist/embed/{embed-page-TeamWorkspace-QSSAF3AA.js → embed-page-TeamWorkspace-JFEKNVFP.js} +1 -1
  13. package/dist/embed/{embed-page-TopologyRuntimeView-PHULW2NG.js → embed-page-TopologyRuntimeView-42TN76MK.js} +1 -1
  14. package/dist/embed/{embed-page-WorkflowAutomationView-LQS6H7X6.js → embed-page-WorkflowAutomationView-JLP4UHPP.js} +1 -1
  15. package/dist/embed/{embed-page-chunk-O44JEYLD.js → embed-page-chunk-2PFKLMTR.js} +5 -5
  16. package/dist/embed/{embed-page-chunk-IJ2YWGKU.js → embed-page-chunk-5NJ3O2GK.js} +1 -1
  17. package/dist/embed/{embed-page-chunk-D5EY6ASK.js → embed-page-chunk-GUSAII2D.js} +1 -1
  18. package/dist/embed/{embed-page-chunk-SSWDAKQU.js → embed-page-chunk-H64UEFHS.js} +1 -1
  19. package/dist/embed/{embed-page-chunk-PFCR6CFL.js → embed-page-chunk-I3OONX3N.js} +1 -1
  20. package/dist/embed/{embed-page-chunk-YNHKD2CY.js → embed-page-chunk-K2U3JD67.js} +1 -1
  21. package/dist/embed/{embed-page-chunk-7PNQFZMK.js → embed-page-chunk-YYDZ6ZBV.js} +307 -191
  22. package/dist/embed/{embed-page-en-PQZ2ZCEH.js → embed-page-en-GLT2HEZZ.js} +1 -1
  23. package/dist/embed/{embed-page-zh-D3EX4GW4.js → embed-page-zh-XMEJPDMF.js} +1 -1
  24. package/dist/embed/embed-page.js +1 -1
  25. package/dist/index.d.mts +20 -7
  26. package/dist/index.d.ts +20 -7
  27. package/dist/index.js +853 -736
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.mjs +420 -291
  30. package/dist/index.mjs.map +1 -1
  31. package/package.json +7 -7
  32. package/dist/a2a-standard-PBYPNHOA.mjs.map +0 -1
  33. /package/dist/{OrphanRecoveryRuntime-BEFILJMU.mjs.map → OrphanRecoveryRuntime-T4T5NOZU.mjs.map} +0 -0
@@ -1 +1 @@
1
- import"./embed-page-chunk-QBTAJ2YI.js";var e={"mcpapp.fallbackTitle":"MCP App","mcpapp.openInSideApp":"Open in side app","mcpapp.unavailable":"MCP App unavailable","mcpapp.unavailableDescription":"MCP Apps require the gateway sandbox to be served from a different origin than the console.","mcpapp.failedToLoad":"MCP App failed to load: {{error}}","mcpapp.resourceLoadFailed":"Failed to load MCP app resource","mcpapp.toolResultAlt":"tool result"},o={messages:e};export{o as default,e as messages};
1
+ import"./embed-page-chunk-QBTAJ2YI.js";var e={"mcpapp.fallbackTitle":"MCP App","mcpapp.openInSideApp":"Open in side app","mcpapp.unavailable":"MCP App unavailable","mcpapp.unavailableDescription":"MCP Apps require the gateway sandbox to be served from a different origin than the console.","mcpapp.failedToLoad":"MCP App failed to load: {{error}}","mcpapp.resourceLoadFailed":"Failed to load MCP app resource","mcpapp.toolResultAlt":"tool result","mcpapp.test.badge":"Plugin test","mcpapp.test.input":"Test input","mcpapp.test.result":"Result","mcpapp.test.data":"Data","mcpapp.test.ui":"UI"},t={messages:e};export{t as default,e as messages};
@@ -1 +1 @@
1
- import"./embed-page-chunk-QBTAJ2YI.js";var e={"mcpapp.fallbackTitle":"MCP App","mcpapp.openInSideApp":"\u5728\u4FA7\u680F\u4E2D\u6253\u5F00","mcpapp.unavailable":"MCP App \u4E0D\u53EF\u7528","mcpapp.unavailableDescription":"MCP App \u8981\u6C42\u7F51\u5173\u6C99\u7BB1\u4E0E\u63A7\u5236\u53F0\u7531\u4E0D\u540C\u6E90\uFF08origin\uFF09\u63D0\u4F9B\u670D\u52A1\u3002","mcpapp.failedToLoad":"MCP App \u52A0\u8F7D\u5931\u8D25\uFF1A{{error}}","mcpapp.resourceLoadFailed":"\u52A0\u8F7D MCP App \u8D44\u6E90\u5931\u8D25","mcpapp.toolResultAlt":"\u5DE5\u5177\u6267\u884C\u7ED3\u679C"},l={messages:e};export{l as default,e as messages};
1
+ import"./embed-page-chunk-QBTAJ2YI.js";var e={"mcpapp.fallbackTitle":"MCP App","mcpapp.openInSideApp":"\u5728\u4FA7\u680F\u4E2D\u6253\u5F00","mcpapp.unavailable":"MCP App \u4E0D\u53EF\u7528","mcpapp.unavailableDescription":"MCP App \u8981\u6C42\u7F51\u5173\u6C99\u7BB1\u4E0E\u63A7\u5236\u53F0\u7531\u4E0D\u540C\u6E90\uFF08origin\uFF09\u63D0\u4F9B\u670D\u52A1\u3002","mcpapp.failedToLoad":"MCP App \u52A0\u8F7D\u5931\u8D25\uFF1A{{error}}","mcpapp.resourceLoadFailed":"\u52A0\u8F7D MCP App \u8D44\u6E90\u5931\u8D25","mcpapp.toolResultAlt":"\u5DE5\u5177\u6267\u884C\u7ED3\u679C","mcpapp.test.badge":"\u63D2\u4EF6\u6D4B\u8BD5","mcpapp.test.input":"\u6D4B\u8BD5\u8F93\u5165","mcpapp.test.result":"\u6D4B\u8BD5\u7ED3\u679C","mcpapp.test.data":"Data","mcpapp.test.ui":"UI"},t={messages:e};export{t as default,e as messages};
@@ -1,4 +1,4 @@
1
- import{b as h}from"./embed-page-chunk-PFCR6CFL.js";import"./embed-page-chunk-7PNQFZMK.js";import"./embed-page-chunk-O44JEYLD.js";import{a as E}from"./embed-page-chunk-QV7QAJ4N.js";import"./embed-page-chunk-VW3NF5NT.js";import"./embed-page-chunk-QULNM5O2.js";import{a as b}from"./embed-page-chunk-MHGVD4EV.js";import"./embed-page-chunk-R5QL57JJ.js";import"./embed-page-chunk-QOWM3LMZ.js";import"./embed-page-chunk-EUOOO2LS.js";import"./embed-page-chunk-5JDQ456X.js";import{b as f}from"./embed-page-chunk-HYPA2PHA.js";import{c as z,f as l}from"./embed-page-chunk-QBTAJ2YI.js";var x=z(m=>{"use strict";var y=b();m.createRoot=y.createRoot,m.hydrateRoot=y.hydrateRoot;var te});var T=l(x()),M=l(b());var w="axiom-web-app-embed";var _=["axiom:hello","axiom:identity","axiom:send","axiom:config"];function R(e,t){return{source:w,version:1,type:e,payload:t}}var B=6,H=40,Q=500;function q(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<=H&&typeof t.text=="string"&&t.text.length>=1&&t.text.length<=Q}function G(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(t.length>=B)break;q(n)&&t.push({label:n.label,text:n.text})}return t}function C(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 a=G(t.quicks);(a.length>0||t.quicks.length===0)&&(n.quicks=a)}return n.welcome===void 0&&n.quicks===void 0?null:n}function A(e,t){if(typeof e!="object"||e===null)return null;let n=e;return n.source!==w||n.version!==1||typeof n.type!="string"||!t.includes(n.type)?null:{type:n.type,payload:n.payload}}var r=l(E()),S=/^[A-Za-z0-9._:@-]{1,128}$/,v="axiom-embed-root",k="axiom-embed-style",P=32768,j=`
1
+ import{b as h}from"./embed-page-chunk-I3OONX3N.js";import"./embed-page-chunk-YYDZ6ZBV.js";import"./embed-page-chunk-2PFKLMTR.js";import{a as E}from"./embed-page-chunk-QV7QAJ4N.js";import"./embed-page-chunk-VW3NF5NT.js";import"./embed-page-chunk-QULNM5O2.js";import{a as b}from"./embed-page-chunk-MHGVD4EV.js";import"./embed-page-chunk-R5QL57JJ.js";import"./embed-page-chunk-QOWM3LMZ.js";import"./embed-page-chunk-EUOOO2LS.js";import"./embed-page-chunk-5JDQ456X.js";import{b as f}from"./embed-page-chunk-HYPA2PHA.js";import{c as z,f as l}from"./embed-page-chunk-QBTAJ2YI.js";var x=z(m=>{"use strict";var y=b();m.createRoot=y.createRoot,m.hydrateRoot=y.hydrateRoot;var te});var T=l(x()),M=l(b());var w="axiom-web-app-embed";var _=["axiom:hello","axiom:identity","axiom:send","axiom:config"];function R(e,t){return{source:w,version:1,type:e,payload:t}}var B=6,H=40,Q=500;function q(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<=H&&typeof t.text=="string"&&t.text.length>=1&&t.text.length<=Q}function G(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(t.length>=B)break;q(n)&&t.push({label:n.label,text:n.text})}return t}function C(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 a=G(t.quicks);(a.length>0||t.quicks.length===0)&&(n.quicks=a)}return n.welcome===void 0&&n.quicks===void 0?null:n}function A(e,t){if(typeof e!="object"||e===null)return null;let n=e;return n.source!==w||n.version!==1||typeof n.type!="string"||!t.includes(n.type)?null:{type:n.type,payload:n.payload}}var r=l(E()),S=/^[A-Za-z0-9._:@-]{1,128}$/,v="axiom-embed-root",k="axiom-embed-style",P=32768,j=`
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
@@ -1,6 +1,7 @@
1
1
  import * as http from 'http';
2
2
  import { ProjectRoomMessage, ProjectBotMembership, ProjectMembership, TaskItem, ChannelAdapter, InboundMessage, Binding, BindingRegistry, ChannelInstallationStore, DispatchResult, ModelProviderStore, UserTenantLinkStore, LLMConfig, ModelProviderPublicEntry, TenantModelCatalog, CreateModelProviderRequest, UpdateModelProviderRequest, ModelDiscoveryResult, ModelProviderProbeRequest, ModelProviderProbeResult, ModelSelection, ProjectRoomEventScope, ProjectRoomBusinessEventDraft, ProjectRoomScopedBusinessEvent, ProjectRoomBusinessEvent, ProjectRoomEventSubscription, TaskStore, ProjectRoomStore, ProjectBotMembershipStore, ThreadStore, ProjectRoom, Thread, ProjectStore, TaskWorkItemStore, TenantStore, OutboxStore, A2AApiKeyStore, AssistantStore, A2AApiKeyEntry, A2AAuthContext, Assistant, OpenGrant, A2AApiKeyRecord, LoggerType, PinoFileOptions } from '@axiom-lattice/protocols';
3
- import { TrustedAgentMessageDispatcher, TrustedMessageOptions, TaskLifecycleListener, TaskLifecycleService, IMessageQueueStore, Agent, TaskRunRegistry } from '@axiom-lattice/core';
3
+ import { TrustedAgentMessageDispatcher, TrustedMessageOptions, TaskLifecycleListener, TaskLifecycleService, IMessageQueueStore, Agent, TaskLivenessProbe, TaskRunRegistry } from '@axiom-lattice/core';
4
+ export { TaskLivenessProbe } from '@axiom-lattice/core';
4
5
  import * as fastify from 'fastify';
5
6
  import { RouteGenericInterface, FastifyRequest, FastifyReply } from 'fastify';
6
7
 
@@ -157,6 +158,18 @@ declare class MessageRouter {
157
158
  dispatch(message: InboundMessage, options?: InternalMessageDispatchOptions): Promise<DispatchResult>;
158
159
  private dispatchInternal;
159
160
  private runMiddlewares;
161
+ /** 流式中途刷新的节流间隔与上限(微信单会话 30 条/分钟,留余量)。 */
162
+ private static readonly STREAM_CHUNK_INTERVAL_MS;
163
+ private static readonly MAX_STREAM_CHUNKS;
164
+ /**
165
+ * 消费 agent 的逐块输出,把**中途**内容推给支持流式的渠道适配器。
166
+ *
167
+ * @remarks
168
+ * 纯加法、best-effort:不抛错,也**不发最终内容** —— 最终由
169
+ * `reply:ready` → `sendStreamChunk({ done: true })` 收尾。未实现
170
+ * `sendStreamChunk` 的适配器不会走到这里,行为完全不变。
171
+ */
172
+ private streamAgentOutputToChannel;
160
173
  /**
161
174
  * Projects a pending HITL interrupt into the room as an independent bot message.
162
175
  *
@@ -1142,8 +1155,6 @@ declare class AgentTaskConsumer {
1142
1155
  trigger_agent_task(taskRequest: AgentTaskRequest): void;
1143
1156
  }
1144
1157
 
1145
- /** Cross-replica liveness probe: resolves true when a peer still owns the task's run. */
1146
- type TaskLivenessProbe = (task: TaskItem) => Promise<boolean>;
1147
1158
  /**
1148
1159
  * Builds a cross-replica task-liveness probe from the registered `"lease"` store.
1149
1160
  *
@@ -1151,11 +1162,13 @@ type TaskLivenessProbe = (task: TaskItem) => Promise<boolean>;
1151
1162
  * store is registered (a test-only path); with the default in-memory lease
1152
1163
  * store a probe is always returned (single-process safe because the in-memory
1153
1164
  * store has no peer).
1154
- * @remarks
1155
- * A task is considered live when EITHER lease is currently held:
1165
+ *
1166
+ * @remarks The detection itself lives in Core (`isTaskRunLeaseHeld`), shared with
1167
+ * the immediate executor's orphan-recovery precheck so the two cannot drift.
1168
+ * A task is considered live when EITHER lease is held:
1156
1169
  * - `task-run:<taskId>` — the immediate executor's run-lifetime lease, or
1157
1170
  * - `thread-run:<tenantId>:<ownerId>:<thread_id>` — the queue processor
1158
- * executing the task's run thread (dispatched workers run through this).
1171
+ * executing the task's run thread.
1159
1172
  *
1160
1173
  * Fail-safe: any lease-store error resolves `true`, so an unknown liveness
1161
1174
  * state never causes a live run to be converged as an orphan.
@@ -1605,4 +1618,4 @@ declare const LatticeGateway: {
1605
1618
  AgentTaskConsumer: typeof AgentTaskConsumer;
1606
1619
  };
1607
1620
 
1608
- export { A2AAuthService, A2A_KEY_CHANGED_TOPIC, type GatewayLoggerConfig, LatticeGateway, type LatticeGatewayConfig, MODEL_PROVIDER_CHANGED_TOPIC, ModelProviderService, type ModelProviderServiceDeps, type OrphanRecoveryRuntime, type OrphanRecoveryRuntimeDeps, ProjectRoomEventBroker, ROOM_EVENT_TOPIC, type RecoverTaskDeps, type RecoverTaskResult, type TaskLivenessProbe, createOrphanRecoveryRuntime, createRecoveryCallerDeps, createTaskRunLiveness, handleA2AKeyChanged, handleModelProviderChanged, ingestRoomEvent, parseEnvKeys, publishA2AKeyChanged, publishModelProviderChanged, publishRoomEvent, recoverTask, recoverTopCaller, resolveTopCaller, runOrphanRecovery };
1621
+ export { A2AAuthService, A2A_KEY_CHANGED_TOPIC, type GatewayLoggerConfig, LatticeGateway, type LatticeGatewayConfig, MODEL_PROVIDER_CHANGED_TOPIC, ModelProviderService, type ModelProviderServiceDeps, type OrphanRecoveryRuntime, type OrphanRecoveryRuntimeDeps, ProjectRoomEventBroker, ROOM_EVENT_TOPIC, type RecoverTaskDeps, type RecoverTaskResult, createOrphanRecoveryRuntime, createRecoveryCallerDeps, createTaskRunLiveness, handleA2AKeyChanged, handleModelProviderChanged, ingestRoomEvent, parseEnvKeys, publishA2AKeyChanged, publishModelProviderChanged, publishRoomEvent, recoverTask, recoverTopCaller, resolveTopCaller, runOrphanRecovery };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as http from 'http';
2
2
  import { ProjectRoomMessage, ProjectBotMembership, ProjectMembership, TaskItem, ChannelAdapter, InboundMessage, Binding, BindingRegistry, ChannelInstallationStore, DispatchResult, ModelProviderStore, UserTenantLinkStore, LLMConfig, ModelProviderPublicEntry, TenantModelCatalog, CreateModelProviderRequest, UpdateModelProviderRequest, ModelDiscoveryResult, ModelProviderProbeRequest, ModelProviderProbeResult, ModelSelection, ProjectRoomEventScope, ProjectRoomBusinessEventDraft, ProjectRoomScopedBusinessEvent, ProjectRoomBusinessEvent, ProjectRoomEventSubscription, TaskStore, ProjectRoomStore, ProjectBotMembershipStore, ThreadStore, ProjectRoom, Thread, ProjectStore, TaskWorkItemStore, TenantStore, OutboxStore, A2AApiKeyStore, AssistantStore, A2AApiKeyEntry, A2AAuthContext, Assistant, OpenGrant, A2AApiKeyRecord, LoggerType, PinoFileOptions } from '@axiom-lattice/protocols';
3
- import { TrustedAgentMessageDispatcher, TrustedMessageOptions, TaskLifecycleListener, TaskLifecycleService, IMessageQueueStore, Agent, TaskRunRegistry } from '@axiom-lattice/core';
3
+ import { TrustedAgentMessageDispatcher, TrustedMessageOptions, TaskLifecycleListener, TaskLifecycleService, IMessageQueueStore, Agent, TaskLivenessProbe, TaskRunRegistry } from '@axiom-lattice/core';
4
+ export { TaskLivenessProbe } from '@axiom-lattice/core';
4
5
  import * as fastify from 'fastify';
5
6
  import { RouteGenericInterface, FastifyRequest, FastifyReply } from 'fastify';
6
7
 
@@ -157,6 +158,18 @@ declare class MessageRouter {
157
158
  dispatch(message: InboundMessage, options?: InternalMessageDispatchOptions): Promise<DispatchResult>;
158
159
  private dispatchInternal;
159
160
  private runMiddlewares;
161
+ /** 流式中途刷新的节流间隔与上限(微信单会话 30 条/分钟,留余量)。 */
162
+ private static readonly STREAM_CHUNK_INTERVAL_MS;
163
+ private static readonly MAX_STREAM_CHUNKS;
164
+ /**
165
+ * 消费 agent 的逐块输出,把**中途**内容推给支持流式的渠道适配器。
166
+ *
167
+ * @remarks
168
+ * 纯加法、best-effort:不抛错,也**不发最终内容** —— 最终由
169
+ * `reply:ready` → `sendStreamChunk({ done: true })` 收尾。未实现
170
+ * `sendStreamChunk` 的适配器不会走到这里,行为完全不变。
171
+ */
172
+ private streamAgentOutputToChannel;
160
173
  /**
161
174
  * Projects a pending HITL interrupt into the room as an independent bot message.
162
175
  *
@@ -1142,8 +1155,6 @@ declare class AgentTaskConsumer {
1142
1155
  trigger_agent_task(taskRequest: AgentTaskRequest): void;
1143
1156
  }
1144
1157
 
1145
- /** Cross-replica liveness probe: resolves true when a peer still owns the task's run. */
1146
- type TaskLivenessProbe = (task: TaskItem) => Promise<boolean>;
1147
1158
  /**
1148
1159
  * Builds a cross-replica task-liveness probe from the registered `"lease"` store.
1149
1160
  *
@@ -1151,11 +1162,13 @@ type TaskLivenessProbe = (task: TaskItem) => Promise<boolean>;
1151
1162
  * store is registered (a test-only path); with the default in-memory lease
1152
1163
  * store a probe is always returned (single-process safe because the in-memory
1153
1164
  * store has no peer).
1154
- * @remarks
1155
- * A task is considered live when EITHER lease is currently held:
1165
+ *
1166
+ * @remarks The detection itself lives in Core (`isTaskRunLeaseHeld`), shared with
1167
+ * the immediate executor's orphan-recovery precheck so the two cannot drift.
1168
+ * A task is considered live when EITHER lease is held:
1156
1169
  * - `task-run:<taskId>` — the immediate executor's run-lifetime lease, or
1157
1170
  * - `thread-run:<tenantId>:<ownerId>:<thread_id>` — the queue processor
1158
- * executing the task's run thread (dispatched workers run through this).
1171
+ * executing the task's run thread.
1159
1172
  *
1160
1173
  * Fail-safe: any lease-store error resolves `true`, so an unknown liveness
1161
1174
  * state never causes a live run to be converged as an orphan.
@@ -1605,4 +1618,4 @@ declare const LatticeGateway: {
1605
1618
  AgentTaskConsumer: typeof AgentTaskConsumer;
1606
1619
  };
1607
1620
 
1608
- export { A2AAuthService, A2A_KEY_CHANGED_TOPIC, type GatewayLoggerConfig, LatticeGateway, type LatticeGatewayConfig, MODEL_PROVIDER_CHANGED_TOPIC, ModelProviderService, type ModelProviderServiceDeps, type OrphanRecoveryRuntime, type OrphanRecoveryRuntimeDeps, ProjectRoomEventBroker, ROOM_EVENT_TOPIC, type RecoverTaskDeps, type RecoverTaskResult, type TaskLivenessProbe, createOrphanRecoveryRuntime, createRecoveryCallerDeps, createTaskRunLiveness, handleA2AKeyChanged, handleModelProviderChanged, ingestRoomEvent, parseEnvKeys, publishA2AKeyChanged, publishModelProviderChanged, publishRoomEvent, recoverTask, recoverTopCaller, resolveTopCaller, runOrphanRecovery };
1621
+ export { A2AAuthService, A2A_KEY_CHANGED_TOPIC, type GatewayLoggerConfig, LatticeGateway, type LatticeGatewayConfig, MODEL_PROVIDER_CHANGED_TOPIC, ModelProviderService, type ModelProviderServiceDeps, type OrphanRecoveryRuntime, type OrphanRecoveryRuntimeDeps, ProjectRoomEventBroker, ROOM_EVENT_TOPIC, type RecoverTaskDeps, type RecoverTaskResult, createOrphanRecoveryRuntime, createRecoveryCallerDeps, createTaskRunLiveness, handleA2AKeyChanged, handleModelProviderChanged, ingestRoomEvent, parseEnvKeys, publishA2AKeyChanged, publishModelProviderChanged, publishRoomEvent, recoverTask, recoverTopCaller, resolveTopCaller, runOrphanRecovery };