@axiom-lattice/gateway 4.10.0 → 4.10.2

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 (34) hide show
  1. package/dist/chunk-GXZFO3VU.mjs +42 -0
  2. package/dist/chunk-GXZFO3VU.mjs.map +1 -0
  3. package/dist/embed/{embed-page-AgentDetailSideApp-GH3XNS5A.js → embed-page-AgentDetailSideApp-2M4MLVQQ.js} +1 -1
  4. package/dist/embed/{embed-page-AgentGovernanceWorkbench-AXHLZTUG.js → embed-page-AgentGovernanceWorkbench-KEVBIQP6.js} +1 -1
  5. package/dist/embed/{embed-page-MessageGraph-HLLPBTLQ.js → embed-page-MessageGraph-PRBUQINR.js} +1 -1
  6. package/dist/embed/{embed-page-ReactChart-46EYPRQ7.js → embed-page-ReactChart-V6JJXCEV.js} +1 -1
  7. package/dist/embed/{embed-page-SkillFlow-NMUDTNTY.js → embed-page-SkillFlow-6LPE2VG3.js} +1 -1
  8. package/dist/embed/{embed-page-TasksSideApp-DOCKHJCF.js → embed-page-TasksSideApp-OFZI54MF.js} +1 -1
  9. package/dist/embed/{embed-page-TeamWorkspace-LXOIMYRW.js → embed-page-TeamWorkspace-QSSAF3AA.js} +1 -1
  10. package/dist/embed/{embed-page-TopologyRuntimeView-DT7XXEK2.js → embed-page-TopologyRuntimeView-PHULW2NG.js} +1 -1
  11. package/dist/embed/{embed-page-WorkflowAutomationView-ONAY4RTM.js → embed-page-WorkflowAutomationView-LQS6H7X6.js} +1 -1
  12. package/dist/embed/{embed-page-chunk-OY4CDWED.js → embed-page-chunk-7PNQFZMK.js} +7 -7
  13. package/dist/embed/{embed-page-chunk-F7G2DME5.js → embed-page-chunk-D5EY6ASK.js} +1 -1
  14. package/dist/embed/{embed-page-chunk-JQSBSZMP.js → embed-page-chunk-IJ2YWGKU.js} +1 -1
  15. package/dist/embed/{embed-page-chunk-H4W4NDIY.js → embed-page-chunk-O44JEYLD.js} +7 -7
  16. package/dist/embed/embed-page-chunk-PFCR6CFL.js +2 -0
  17. package/dist/embed/{embed-page-chunk-RA35MUYW.js → embed-page-chunk-SSWDAKQU.js} +1 -1
  18. package/dist/embed/{embed-page-chunk-LGZUYB7B.js → embed-page-chunk-YNHKD2CY.js} +1 -1
  19. package/dist/embed/embed-page.js +1 -1
  20. package/dist/index.d.mts +15 -1
  21. package/dist/index.d.ts +15 -1
  22. package/dist/index.js +54 -20
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.mjs +47 -17
  25. package/dist/index.mjs.map +1 -1
  26. package/dist/{open-FJ3BY3CL.mjs → open-GNBMCHYA.mjs} +4 -39
  27. package/dist/open-GNBMCHYA.mjs.map +1 -0
  28. package/dist/{open-files-V3R2BFTV.mjs → open-files-FS5AN6Q6.mjs} +4 -4
  29. package/dist/openRateLimiter-XEOL3A5G.mjs +8 -0
  30. package/dist/openRateLimiter-XEOL3A5G.mjs.map +1 -0
  31. package/package.json +4 -4
  32. package/dist/embed/embed-page-chunk-NR2PTMJ6.js +0 -2
  33. package/dist/open-FJ3BY3CL.mjs.map +0 -1
  34. /package/dist/{open-files-V3R2BFTV.mjs.map → open-files-FS5AN6Q6.mjs.map} +0 -0
package/dist/index.mjs CHANGED
@@ -16170,11 +16170,16 @@ var ModelProviderService = class {
16170
16170
  )
16171
16171
  }));
16172
16172
  if (models.length === 0) {
16173
- for (const modelKey2 of this.deps.registry.listRegistered(
16173
+ for (const { modelKey: modelKey2, config } of this.deps.registry.listRegistered(
16174
16174
  PHASE1_REGISTRY_TENANT
16175
16175
  )) {
16176
16176
  models.push({
16177
16177
  modelKey: modelKey2,
16178
+ // Carry the registered config's name, the way `GET /api/models` did.
16179
+ // Without it these rows have nothing to render but the registry key —
16180
+ // which is how the deployment's `default` alias came to be offered as
16181
+ // a model literally called "default".
16182
+ displayName: config.displayName || config.model || modelKey2,
16178
16183
  providerId: "",
16179
16184
  providerName: "registered",
16180
16185
  source: "registered",
@@ -16238,7 +16243,7 @@ var ModelProviderService = class {
16238
16243
  const provider = await this.deps.providerStore.getProviderById(tenantId, providerId2);
16239
16244
  if (!provider) {
16240
16245
  const prefix = `${providerId2}/`;
16241
- for (const modelKey2 of this.deps.registry.listRegistered(tenantId)) {
16246
+ for (const { modelKey: modelKey2 } of this.deps.registry.listRegistered(tenantId)) {
16242
16247
  if (modelKey2.startsWith(prefix)) {
16243
16248
  this.deps.registry.remove(tenantId, modelKey2);
16244
16249
  }
@@ -16247,7 +16252,7 @@ var ModelProviderService = class {
16247
16252
  }
16248
16253
  const models = await this.deps.providerStore.listModels(tenantId, providerId2);
16249
16254
  const current = new Set(models.map((model) => toModelKey(providerId2, model.modelId)));
16250
- for (const modelKey2 of this.deps.registry.listRegistered(tenantId)) {
16255
+ for (const { modelKey: modelKey2 } of this.deps.registry.listRegistered(tenantId)) {
16251
16256
  if (modelKey2.startsWith(`${providerId2}/`) && !current.has(modelKey2)) {
16252
16257
  this.deps.registry.remove(tenantId, modelKey2);
16253
16258
  }
@@ -23248,7 +23253,15 @@ var registerLatticeRoutes = (app2, channelDeps, options = {}) => {
23248
23253
  register: (tenantId, modelKey2, config) => modelLatticeManager3.registerLatticeWithTenant(tenantId, modelKey2, config),
23249
23254
  has: (tenantId, modelKey2) => modelLatticeManager3.hasLatticeWithTenant(tenantId, modelKey2),
23250
23255
  remove: (tenantId, modelKey2) => modelLatticeManager3.removeLatticeWithTenant(tenantId, modelKey2),
23251
- listRegistered: (tenantId) => modelLatticeManager3.getLatticeKeysByTenant(tenantId),
23256
+ listRegistered: (tenantId) => (
23257
+ // The config comes along so the catalog can name these rows: a bare
23258
+ // registry key is not something to offer a user. Same call the legacy
23259
+ // `GET /api/models` made.
23260
+ modelLatticeManager3.getAllLatticesByTenant(tenantId).map((lattice) => ({
23261
+ modelKey: lattice.key,
23262
+ config: lattice.client.getConfig()
23263
+ }))
23264
+ ),
23252
23265
  forgetTenantDefaultMiss: (tenantId) => modelLatticeManager3.forgetTenantDefaultMiss(tenantId)
23253
23266
  },
23254
23267
  onChanged: (tenantId, providerId2) => broadcastModelProviderChanged(tenantId, providerId2)
@@ -25321,6 +25334,7 @@ function createAuditLoggerMiddleware() {
25321
25334
  import { setBindingRegistry, setMenuRegistry, setEvalRunService } from "@axiom-lattice/core";
25322
25335
 
25323
25336
  // src/channels/wecom/WecomChannelAdapter.ts
25337
+ import { randomUUID as randomUUID26 } from "crypto";
25324
25338
  import { z as z12 } from "zod";
25325
25339
  import * as WecomAiBot from "@wecom/aibot-node-sdk";
25326
25340
 
@@ -25397,8 +25411,12 @@ var wecomChannelAdapter = {
25397
25411
  return;
25398
25412
  }
25399
25413
  connection.client.reply(replyTarget.rawTarget.frame, {
25400
- msgtype: "text",
25401
- text: { content: message.text }
25414
+ msgtype: "stream",
25415
+ stream: {
25416
+ id: randomUUID26(),
25417
+ finish: true,
25418
+ content: message.text
25419
+ }
25402
25420
  });
25403
25421
  },
25404
25422
  resolveThreadId(message, binding) {
@@ -25568,7 +25586,7 @@ var configureSwagger = async (app2, customSwaggerConfig, customSwaggerUiConfig)
25568
25586
  };
25569
25587
 
25570
25588
  // src/services/agent_task_consumer.ts
25571
- import { randomUUID as randomUUID26 } from "crypto";
25589
+ import { randomUUID as randomUUID27 } from "crypto";
25572
25590
  import { eventBus as eventBus3, AGENT_TASK_EVENT, agentInstanceManager as agentInstanceManager7, QueueMode as QueueMode2 } from "@axiom-lattice/core";
25573
25591
  import { resolveRunScope } from "@axiom-lattice/protocols";
25574
25592
  var handleAgentTask = async (taskRequest, retryCount = 0) => {
@@ -25592,7 +25610,7 @@ var handleAgentTask = async (taskRequest, retryCount = 0) => {
25592
25610
  const agent = agentInstanceManager7.getAgent({ assistant_id, thread_id, tenant_id, workspace_id: scope.workspaceId, project_id: scope.projectId, custom_run_config: runConfig });
25593
25611
  if (callback_event) {
25594
25612
  const callbackEvent = callback_event;
25595
- const messageId = typeof input?.id === "string" && input.id !== "" ? input.id : randomUUID26();
25613
+ const messageId = typeof input?.id === "string" && input.id !== "" ? input.id : randomUUID27();
25596
25614
  let settled = false;
25597
25615
  const subscriptions = [];
25598
25616
  const dispose = () => {
@@ -25946,7 +25964,7 @@ import {
25946
25964
  snapshotExactArray as snapshotExactArray3,
25947
25965
  snapshotExactRecord as snapshotExactRecord15
25948
25966
  } from "@axiom-lattice/protocols";
25949
- import { randomUUID as randomUUID27 } from "crypto";
25967
+ import { randomUUID as randomUUID28 } from "crypto";
25950
25968
  var BindingNotFoundError = class extends Error {
25951
25969
  constructor(message) {
25952
25970
  super(message);
@@ -26268,7 +26286,7 @@ var MessageRouter = class {
26268
26286
  }
26269
26287
  if (!threadId) {
26270
26288
  const threadStore = getStoreLattice28("default", "thread").store;
26271
- const newThreadId = randomUUID27();
26289
+ const newThreadId = randomUUID28();
26272
26290
  console.log({
26273
26291
  event: "dispatch:thread:create",
26274
26292
  agentId,
@@ -26314,7 +26332,7 @@ var MessageRouter = class {
26314
26332
  workspace_id: binding?.workspaceId || "",
26315
26333
  project_id: binding?.projectId || ""
26316
26334
  });
26317
- const inputMessageId = randomUUID27();
26335
+ const inputMessageId = randomUUID28();
26318
26336
  const replyTarget = internalRoom ? correlatedRoomReplyTarget(message.replyTarget, inputMessageId) : message.replyTarget;
26319
26337
  const replyAdapter = replyTarget ? this.adapterRegistry.get(replyTarget.adapterChannel) : void 0;
26320
26338
  if (options.trustedMessageOptions && (!this.trustedDispatcher || !replyTarget || !replyAdapter)) {
@@ -26617,7 +26635,7 @@ async function prepareProjectTaskRuntime(runtime, log2) {
26617
26635
  import { setPluginDeploymentService } from "@axiom-lattice/core";
26618
26636
 
26619
26637
  // src/services/plugins/PluginDeploymentService.ts
26620
- import { randomUUID as randomUUID28 } from "crypto";
26638
+ import { randomUUID as randomUUID29 } from "crypto";
26621
26639
  import {
26622
26640
  PLUGIN_HOST_DIR,
26623
26641
  PluginDeploymentRuntimeRegistry
@@ -26761,7 +26779,7 @@ var PluginDeploymentService = class {
26761
26779
  const failedAt = this.nowIso();
26762
26780
  await this.store.upsert(
26763
26781
  this.buildRecord({
26764
- id: existing?.id ?? randomUUID28(),
26782
+ id: existing?.id ?? randomUUID29(),
26765
26783
  tenantId,
26766
26784
  pluginType,
26767
26785
  pluginVersion: manifest.version,
@@ -26783,7 +26801,7 @@ var PluginDeploymentService = class {
26783
26801
  );
26784
26802
  }
26785
26803
  const record = this.buildRecord({
26786
- id: existing?.id ?? randomUUID28(),
26804
+ id: existing?.id ?? randomUUID29(),
26787
26805
  tenantId,
26788
26806
  pluginType,
26789
26807
  pluginVersion: manifest.version,
@@ -27985,13 +28003,14 @@ var start = async (config) => {
27985
28003
  });
27986
28004
  }
27987
28005
  try {
27988
- const { registerOpenRoutes } = await import("./open-FJ3BY3CL.mjs");
28006
+ const { registerOpenRoutes } = await import("./open-GNBMCHYA.mjs");
27989
28007
  const { registerOpenSessionRoutes } = await import("./open-session-2Y7XJJW2.mjs");
27990
28008
  const { registerOpenCatalogRoutes } = await import("./open-catalog-SZQ435AY.mjs");
27991
- const { registerOpenFilesRoutes } = await import("./open-files-V3R2BFTV.mjs");
28009
+ const { registerOpenFilesRoutes } = await import("./open-files-FS5AN6Q6.mjs");
27992
28010
  const { registerOpenAuditRoutes } = await import("./open-audit-UJ3NXCGW.mjs");
27993
28011
  const { registerOpenExposureRoutes } = await import("./open-exposure-OX5NKWDG.mjs");
27994
28012
  const { openLattice } = await import("./openLattice-Q6M5S6CY.mjs");
28013
+ const { OpenRateLimiter } = await import("./openRateLimiter-XEOL3A5G.mjs");
27995
28014
  const { createKbProvider } = await import("./kbProvider-2D6DZ34N.mjs");
27996
28015
  const { createOpenSandboxProvider } = await import("./sandboxProvider-FILMFVIM.mjs");
27997
28016
  const { createAgentProvider } = await import("./agentProvider-X4FVQPKW.mjs");
@@ -28011,7 +28030,18 @@ var start = async (config) => {
28011
28030
  })
28012
28031
  );
28013
28032
  await registerExposedPluginTools();
28014
- registerOpenRoutes(app);
28033
+ const openRateLimitPerMinute = Number(
28034
+ process.env.OPEN_RATE_LIMIT_PER_MINUTE
28035
+ );
28036
+ const openAgentRateLimitPerMinute = Number(
28037
+ process.env.OPEN_AGENT_RATE_LIMIT_PER_MINUTE
28038
+ );
28039
+ registerOpenRoutes(app, {
28040
+ rateLimiter: new OpenRateLimiter({
28041
+ ...Number.isFinite(openRateLimitPerMinute) && openRateLimitPerMinute > 0 ? { defaultPerMinute: openRateLimitPerMinute } : {},
28042
+ ...Number.isFinite(openAgentRateLimitPerMinute) && openAgentRateLimitPerMinute > 0 ? { agentPerMinute: openAgentRateLimitPerMinute } : {}
28043
+ })
28044
+ });
28015
28045
  registerOpenSessionRoutes(app);
28016
28046
  registerOpenCatalogRoutes(app);
28017
28047
  registerOpenFilesRoutes(app);