@axiom-lattice/gateway 5.0.0 → 6.0.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/README.md +0 -2
  2. package/dist/{sandboxOpenCredentialProvider-USIU7Z7H.mjs → chunk-GL7RV5L3.mjs} +29 -59
  3. package/dist/chunk-GL7RV5L3.mjs.map +1 -0
  4. package/dist/embed/{embed-page-AgentDetailSideApp-XCP4LY7Y.js → embed-page-AgentDetailSideApp-JYVZKSUU.js} +1 -1
  5. package/dist/embed/embed-page-AgentGovernanceWorkbench-SD2EHW2B.js +1 -0
  6. package/dist/embed/{embed-page-MessageGraph-D77CYFAG.js → embed-page-MessageGraph-GLQXKAVC.js} +1 -1
  7. package/dist/embed/{embed-page-ReactChart-TBDJOTZ5.js → embed-page-ReactChart-74MHCE2K.js} +1 -1
  8. package/dist/embed/{embed-page-TasksSideApp-BVCIAE24.js → embed-page-TasksSideApp-DA4LUTMD.js} +1 -1
  9. package/dist/embed/{embed-page-TeamWorkspace-JFEKNVFP.js → embed-page-TeamWorkspace-DUB3L6V6.js} +1 -1
  10. package/dist/embed/{embed-page-TopologyRuntimeView-42TN76MK.js → embed-page-TopologyRuntimeView-NFBHAICN.js} +1 -1
  11. package/dist/embed/{embed-page-WorkflowAutomationView-JLP4UHPP.js → embed-page-WorkflowAutomationView-43YGTXGF.js} +1 -1
  12. package/dist/embed/{embed-page-chunk-K2U3JD67.js → embed-page-chunk-BVSC3MSO.js} +1 -1
  13. package/dist/embed/{embed-page-chunk-5NJ3O2GK.js → embed-page-chunk-C4ZV4IXK.js} +2 -2
  14. package/dist/embed/{embed-page-chunk-I3OONX3N.js → embed-page-chunk-DWIBLGBW.js} +1 -1
  15. package/dist/embed/{embed-page-chunk-H64UEFHS.js → embed-page-chunk-GKHIPXZ2.js} +1 -1
  16. package/dist/embed/{embed-page-chunk-YYDZ6ZBV.js → embed-page-chunk-P477ZTUO.js} +5 -5
  17. package/dist/embed/{embed-page-chunk-GUSAII2D.js → embed-page-chunk-UHH575CK.js} +1 -1
  18. package/dist/embed/embed-page.js +1 -1
  19. package/dist/index.js +426 -621
  20. package/dist/index.js.map +1 -1
  21. package/dist/index.mjs +68 -285
  22. package/dist/index.mjs.map +1 -1
  23. package/dist/{open-GNBMCHYA.mjs → open-MDC4VCR7.mjs} +18 -1
  24. package/dist/open-MDC4VCR7.mjs.map +1 -0
  25. package/dist/{resources-2L3KSUUU.mjs → resources-DAU5ZIPB.mjs} +2 -17
  26. package/dist/resources-DAU5ZIPB.mjs.map +1 -0
  27. package/dist/sandboxOpenCredentialProvider-AT227D4N.mjs +66 -0
  28. package/dist/sandboxOpenCredentialProvider-AT227D4N.mjs.map +1 -0
  29. package/package.json +4 -4
  30. package/dist/embed/embed-page-AgentGovernanceWorkbench-BBDKEIBI.js +0 -5
  31. package/dist/open-GNBMCHYA.mjs.map +0 -1
  32. package/dist/resources-2L3KSUUU.mjs.map +0 -1
  33. package/dist/sandboxOpenCredentialProvider-USIU7Z7H.mjs.map +0 -1
package/dist/index.mjs CHANGED
@@ -1,3 +1,7 @@
1
+ import {
2
+ invalidateAgentReflectionCache,
3
+ invalidatePluginReflectionCache
4
+ } from "./chunk-GL7RV5L3.mjs";
1
5
  import {
2
6
  getContentTypeFromFilename,
3
7
  getFilenameFromPath,
@@ -772,11 +776,7 @@ async function getAssistantStats(request, reply) {
772
776
  const assistantMap = /* @__PURE__ */ new Map();
773
777
  codeConfiguredAssistants.forEach((a) => assistantMap.set(a.id, a));
774
778
  storedAssistants.forEach((a) => assistantMap.set(a.id, a));
775
- const userId = getUserId(request);
776
- const assistants = Array.from(assistantMap.values()).filter((a) => {
777
- if (!a.ownerUserId) return true;
778
- return a.ownerUserId === userId;
779
- });
779
+ const assistants = Array.from(assistantMap.values());
780
780
  const threadStore = getStoreLattice("default", "thread").store;
781
781
  const evalStore = getStoreLattice("default", "eval").store;
782
782
  const now = Date.now();
@@ -1812,201 +1812,6 @@ async function resumeScheduledTask(request, reply) {
1812
1812
  }
1813
1813
  }
1814
1814
 
1815
- // src/config.ts
1816
- var ConfigService = class {
1817
- constructor() {
1818
- this.config = this.loadFromEnv();
1819
- }
1820
- /**
1821
- * Load configuration from environment variables
1822
- */
1823
- loadFromEnv() {
1824
- return {
1825
- port: process.env.PORT ? Number(process.env.PORT) : void 0,
1826
- queueServiceType: process.env.QUEUE_SERVICE_TYPE,
1827
- redisUrl: process.env.REDIS_URL,
1828
- redisPassword: process.env.REDIS_PASSWORD,
1829
- queueName: process.env.QUEUE_NAME
1830
- };
1831
- }
1832
- /**
1833
- * Update configuration from JSON object
1834
- * This will update both the internal config and process.env
1835
- */
1836
- updateConfig(jsonConfig) {
1837
- for (const [key, value] of Object.entries(jsonConfig)) {
1838
- if (value !== null && value !== void 0) {
1839
- if (typeof value === "object" && !Array.isArray(value)) {
1840
- for (const [nestedKey, nestedValue] of Object.entries(value)) {
1841
- const envKey = `${key.toUpperCase()}_${nestedKey.toUpperCase()}`;
1842
- process.env[envKey] = String(nestedValue);
1843
- }
1844
- } else {
1845
- process.env[key.toUpperCase()] = String(value);
1846
- }
1847
- }
1848
- }
1849
- this.config = this.loadFromEnv();
1850
- this.config = this.deepMerge(this.config, jsonConfig);
1851
- }
1852
- /**
1853
- * Deep merge two objects
1854
- */
1855
- deepMerge(target, source) {
1856
- const output = { ...target };
1857
- if (this.isObject(target) && this.isObject(source)) {
1858
- Object.keys(source).forEach((key) => {
1859
- if (this.isObject(source[key])) {
1860
- if (!(key in target)) {
1861
- Object.assign(output, { [key]: source[key] });
1862
- } else {
1863
- output[key] = this.deepMerge(target[key], source[key]);
1864
- }
1865
- } else {
1866
- Object.assign(output, { [key]: source[key] });
1867
- }
1868
- });
1869
- }
1870
- return output;
1871
- }
1872
- /**
1873
- * Check if value is a plain object
1874
- */
1875
- isObject(item) {
1876
- return item && typeof item === "object" && !Array.isArray(item);
1877
- }
1878
- /**
1879
- * Get current configuration
1880
- */
1881
- getConfig() {
1882
- return { ...this.config };
1883
- }
1884
- };
1885
- var configService = new ConfigService();
1886
-
1887
- // src/services/queue_service.ts
1888
- import {
1889
- queueLatticeManager,
1890
- registerQueueLattice,
1891
- getQueueLattice
1892
- } from "@axiom-lattice/core";
1893
- import { QueueType } from "@axiom-lattice/protocols";
1894
- import { RedisQueueClient } from "@axiom-lattice/queue-redis";
1895
- var DEFAULT_QUEUE_KEY = "default";
1896
- var queueServiceType = process.env.QUEUE_SERVICE_TYPE || "memory";
1897
- var setQueueServiceType = (type) => {
1898
- queueServiceType = type;
1899
- console.log(`Queue service type set to: ${type}`);
1900
- const queueName = process.env.QUEUE_NAME || "tasks";
1901
- const config = {
1902
- name: "Default Queue Service",
1903
- description: `Default ${type} queue service`,
1904
- type: type === "redis" ? QueueType.REDIS : QueueType.MEMORY,
1905
- queueName,
1906
- options: type === "redis" ? {
1907
- redisUrl: process.env.REDIS_URL,
1908
- redisPassword: process.env.REDIS_PASSWORD
1909
- } : void 0
1910
- };
1911
- if (queueLatticeManager.hasLattice(DEFAULT_QUEUE_KEY)) {
1912
- queueLatticeManager.removeLattice(DEFAULT_QUEUE_KEY);
1913
- }
1914
- let client;
1915
- if (type === "redis") {
1916
- client = new RedisQueueClient(queueName, {
1917
- redisUrl: process.env.REDIS_URL,
1918
- redisPassword: process.env.REDIS_PASSWORD
1919
- });
1920
- }
1921
- registerQueueLattice(DEFAULT_QUEUE_KEY, config, client);
1922
- };
1923
- var getQueueServiceType = () => {
1924
- return queueServiceType;
1925
- };
1926
- var getQueueService = () => {
1927
- if (!queueLatticeManager.hasLattice(DEFAULT_QUEUE_KEY)) {
1928
- setQueueServiceType(queueServiceType);
1929
- }
1930
- return getQueueLattice(DEFAULT_QUEUE_KEY);
1931
- };
1932
- var popAgentTaskFromQueue = async () => {
1933
- const queue = getQueueService();
1934
- const result = await queue.pop();
1935
- return result;
1936
- };
1937
-
1938
- // src/controllers/config.ts
1939
- async function updateConfig(request, reply) {
1940
- try {
1941
- const { config: jsonConfig } = request.body;
1942
- if (!jsonConfig || typeof jsonConfig !== "object") {
1943
- return reply.status(400).send({
1944
- success: false,
1945
- error: "Invalid configuration: config must be an object"
1946
- });
1947
- }
1948
- configService.updateConfig(jsonConfig);
1949
- const warnings = [];
1950
- const requiresRestart = [];
1951
- if (jsonConfig.port !== void 0) {
1952
- requiresRestart.push("PORT");
1953
- warnings.push("Port change requires server restart to take effect");
1954
- }
1955
- if (jsonConfig.queueServiceType) {
1956
- setQueueServiceType(jsonConfig.queueServiceType);
1957
- }
1958
- if ((jsonConfig.redisUrl || jsonConfig.redisPassword) && (process.env.QUEUE_SERVICE_TYPE === "redis" || jsonConfig.queueServiceType === "redis")) {
1959
- const currentType = jsonConfig.queueServiceType || process.env.QUEUE_SERVICE_TYPE || "memory";
1960
- if (currentType === "redis") {
1961
- setQueueServiceType("redis");
1962
- }
1963
- }
1964
- const updatedConfig = configService.getConfig();
1965
- const safeConfig = {
1966
- ...updatedConfig,
1967
- redisPassword: updatedConfig.redisPassword ? "***" : updatedConfig.redisPassword
1968
- };
1969
- return reply.send({
1970
- success: true,
1971
- message: "Configuration updated successfully",
1972
- data: safeConfig,
1973
- warnings: warnings.length > 0 ? warnings : void 0,
1974
- requiresRestart: requiresRestart.length > 0 ? requiresRestart : void 0
1975
- });
1976
- } catch (error) {
1977
- console.error("Failed to update configuration", {
1978
- error: error.message,
1979
- stack: error.stack
1980
- });
1981
- return reply.status(500).send({
1982
- success: false,
1983
- error: error.message || "Failed to update configuration"
1984
- });
1985
- }
1986
- }
1987
- async function getConfig(request, reply) {
1988
- try {
1989
- const currentConfig = configService.getConfig();
1990
- const safeConfig = {
1991
- ...currentConfig,
1992
- redisPassword: currentConfig.redisPassword ? "***" : currentConfig.redisPassword
1993
- };
1994
- return reply.send({
1995
- success: true,
1996
- data: safeConfig
1997
- });
1998
- } catch (error) {
1999
- console.error("Failed to get configuration", {
2000
- error: error.message,
2001
- stack: error.stack
2002
- });
2003
- return reply.status(500).send({
2004
- success: false,
2005
- error: error.message || "Failed to get configuration"
2006
- });
2007
- }
2008
- }
2009
-
2010
1815
  // src/controllers/models.ts
2011
1816
  import { registerModelLattice, modelLatticeManager } from "@axiom-lattice/core";
2012
1817
  async function getModels(request, reply) {
@@ -2122,6 +1927,59 @@ async function updateModels(request, reply) {
2122
1927
 
2123
1928
  // src/services/multiReplicaReadiness.ts
2124
1929
  import { getStoreLattice as getStoreLattice3 } from "@axiom-lattice/core";
1930
+
1931
+ // src/services/queue_service.ts
1932
+ import {
1933
+ queueLatticeManager,
1934
+ registerQueueLattice,
1935
+ getQueueLattice
1936
+ } from "@axiom-lattice/core";
1937
+ import { QueueType } from "@axiom-lattice/protocols";
1938
+ import { RedisQueueClient } from "@axiom-lattice/queue-redis";
1939
+ var DEFAULT_QUEUE_KEY = "default";
1940
+ var queueServiceType = process.env.QUEUE_SERVICE_TYPE || "memory";
1941
+ var setQueueServiceType = (type) => {
1942
+ queueServiceType = type;
1943
+ console.log(`Queue service type set to: ${type}`);
1944
+ const queueName = process.env.QUEUE_NAME || "tasks";
1945
+ const config = {
1946
+ name: "Default Queue Service",
1947
+ description: `Default ${type} queue service`,
1948
+ type: type === "redis" ? QueueType.REDIS : QueueType.MEMORY,
1949
+ queueName,
1950
+ options: type === "redis" ? {
1951
+ redisUrl: process.env.REDIS_URL,
1952
+ redisPassword: process.env.REDIS_PASSWORD
1953
+ } : void 0
1954
+ };
1955
+ if (queueLatticeManager.hasLattice(DEFAULT_QUEUE_KEY)) {
1956
+ queueLatticeManager.removeLattice(DEFAULT_QUEUE_KEY);
1957
+ }
1958
+ let client;
1959
+ if (type === "redis") {
1960
+ client = new RedisQueueClient(queueName, {
1961
+ redisUrl: process.env.REDIS_URL,
1962
+ redisPassword: process.env.REDIS_PASSWORD
1963
+ });
1964
+ }
1965
+ registerQueueLattice(DEFAULT_QUEUE_KEY, config, client);
1966
+ };
1967
+ var getQueueServiceType = () => {
1968
+ return queueServiceType;
1969
+ };
1970
+ var getQueueService = () => {
1971
+ if (!queueLatticeManager.hasLattice(DEFAULT_QUEUE_KEY)) {
1972
+ setQueueServiceType(queueServiceType);
1973
+ }
1974
+ return getQueueLattice(DEFAULT_QUEUE_KEY);
1975
+ };
1976
+ var popAgentTaskFromQueue = async () => {
1977
+ const queue = getQueueService();
1978
+ const result = await queue.pop();
1979
+ return result;
1980
+ };
1981
+
1982
+ // src/services/multiReplicaReadiness.ts
2125
1983
  var SHARED_STORE_KINDS = [
2126
1984
  "lease",
2127
1985
  "outbox",
@@ -4826,77 +4684,6 @@ var triggerAgentTaskSchema = {
4826
4684
  }
4827
4685
  }
4828
4686
  };
4829
- var updateConfigSchema = {
4830
- description: "Update gateway configuration",
4831
- tags: ["Configuration"],
4832
- summary: "Update Configuration",
4833
- body: {
4834
- type: "object",
4835
- properties: {
4836
- config: {
4837
- type: "object",
4838
- description: "Configuration object to update",
4839
- properties: {
4840
- port: { type: "number", description: "Server port" },
4841
- queueServiceType: {
4842
- type: "string",
4843
- enum: ["memory", "redis"],
4844
- description: "Queue service type"
4845
- },
4846
- redisUrl: { type: "string", description: "Redis URL" },
4847
- redisPassword: { type: "string", description: "Redis password" },
4848
- queueName: { type: "string", description: "Queue name" }
4849
- }
4850
- }
4851
- },
4852
- required: ["config"]
4853
- },
4854
- response: {
4855
- 200: {
4856
- type: "object",
4857
- properties: {
4858
- success: { type: "boolean" },
4859
- message: { type: "string" },
4860
- data: { type: "object" }
4861
- }
4862
- },
4863
- 400: {
4864
- type: "object",
4865
- properties: {
4866
- success: { type: "boolean" },
4867
- error: { type: "string" }
4868
- }
4869
- },
4870
- 500: {
4871
- type: "object",
4872
- properties: {
4873
- success: { type: "boolean" },
4874
- error: { type: "string" }
4875
- }
4876
- }
4877
- }
4878
- };
4879
- var getConfigSchema = {
4880
- description: "Get current gateway configuration",
4881
- tags: ["Configuration"],
4882
- summary: "Get Configuration",
4883
- response: {
4884
- 200: {
4885
- type: "object",
4886
- properties: {
4887
- success: { type: "boolean" },
4888
- data: { type: "object" }
4889
- }
4890
- },
4891
- 500: {
4892
- type: "object",
4893
- properties: {
4894
- success: { type: "boolean" },
4895
- error: { type: "string" }
4896
- }
4897
- }
4898
- }
4899
- };
4900
4687
  var getHealthSchema = {
4901
4688
  description: "Health check endpoint for monitoring and load balancer checks",
4902
4689
  tags: ["Health"],
@@ -23547,16 +23334,6 @@ var registerLatticeRoutes = (app2, channelDeps, options = {}) => {
23547
23334
  "/api/assistants/:assistantId/threads/:threadId",
23548
23335
  deleteThread
23549
23336
  );
23550
- app2.get(
23551
- "/api/config",
23552
- { schema: getConfigSchema },
23553
- getConfig
23554
- );
23555
- app2.put(
23556
- "/api/config",
23557
- { schema: updateConfigSchema },
23558
- updateConfig
23559
- );
23560
23337
  app2.get("/api/models", getModels);
23561
23338
  app2.put("/api/models", updateModels);
23562
23339
  app2.get("/api/tools", getToolConfigs);
@@ -28129,7 +27906,7 @@ var start = async (config) => {
28129
27906
  });
28130
27907
  }
28131
27908
  try {
28132
- const { registerOpenRoutes } = await import("./open-GNBMCHYA.mjs");
27909
+ const { registerOpenRoutes } = await import("./open-MDC4VCR7.mjs");
28133
27910
  const { registerOpenSessionRoutes } = await import("./open-session-2Y7XJJW2.mjs");
28134
27911
  const { registerOpenCatalogRoutes } = await import("./open-catalog-SZQ435AY.mjs");
28135
27912
  const { registerOpenFilesRoutes } = await import("./open-files-FS5AN6Q6.mjs");
@@ -28180,7 +27957,7 @@ var start = async (config) => {
28180
27957
  });
28181
27958
  }
28182
27959
  try {
28183
- const { registerGatewaySandboxOpenCredentialProvider } = await import("./sandboxOpenCredentialProvider-USIU7Z7H.mjs");
27960
+ const { registerGatewaySandboxOpenCredentialProvider } = await import("./sandboxOpenCredentialProvider-AT227D4N.mjs");
28184
27961
  registerGatewaySandboxOpenCredentialProvider((error) => {
28185
27962
  logger7.warn("sandbox open-credential provider failed", { error });
28186
27963
  });
@@ -28239,7 +28016,7 @@ var start = async (config) => {
28239
28016
  }
28240
28017
  }
28241
28018
  try {
28242
- const { ResourceController } = await import("./resources-2L3KSUUU.mjs");
28019
+ const { ResourceController } = await import("./resources-DAU5ZIPB.mjs");
28243
28020
  const sharedResourceStore = getStoreLattice30("default", "sharedResource").store;
28244
28021
  const cache = new TokenCache();
28245
28022
  const resourceController = new ResourceController({
@@ -28301,7 +28078,11 @@ var start = async (config) => {
28301
28078
  [ROOM_EVENT_TOPIC]: async (payload) => {
28302
28079
  if (projectRoomRealtimeRuntime) ingestRoomEvent(payload, projectRoomRealtimeRuntime.broker);
28303
28080
  },
28304
- "assistant-changed": (payload) => handleAssistantChanged(payload, (tenantId) => agentLatticeManager5.initializeStoredAssistantsForTenant(tenantId)),
28081
+ "assistant-changed": (payload) => handleAssistantChanged(payload, async (tenantId) => {
28082
+ await agentLatticeManager5.initializeStoredAssistantsForTenant(tenantId);
28083
+ invalidateAgentReflectionCache(tenantId);
28084
+ invalidatePluginReflectionCache(tenantId);
28085
+ }),
28305
28086
  [A2A_KEY_CHANGED_TOPIC]: (payload) => handleA2AKeyChanged(payload, () => refreshStoreKeyMap()),
28306
28087
  [MCP_CONFIG_CHANGED_TOPIC]: (payload) => reconcileMcpConfigChange(payload, {
28307
28088
  store: getStoreLattice30("default", "mcp").store,
@@ -28312,6 +28093,8 @@ var start = async (config) => {
28312
28093
  const tenantId = payload?.tenantId;
28313
28094
  if (typeof tenantId === "string" && tenantId.length > 0) {
28314
28095
  getSandboxPluginCatalog3().invalidate(tenantId);
28096
+ invalidatePluginReflectionCache(tenantId);
28097
+ invalidateAgentReflectionCache(tenantId);
28315
28098
  await getMcpUiResourceResolver()?.invalidateTenantPlugins(tenantId);
28316
28099
  }
28317
28100
  },