@axiom-lattice/core 2.1.75 → 2.1.76
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.
- package/README.md +93 -110
- package/dist/index.d.mts +38 -24
- package/dist/index.d.ts +38 -24
- package/dist/index.js +140 -74
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +139 -74
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -2319,24 +2319,6 @@ var InMemoryThreadMessageQueueStore = class {
|
|
|
2319
2319
|
}
|
|
2320
2320
|
}
|
|
2321
2321
|
}
|
|
2322
|
-
async markCompleted(messageId) {
|
|
2323
|
-
for (const messages of this.messages.values()) {
|
|
2324
|
-
const message = messages.find((msg) => msg.id === messageId);
|
|
2325
|
-
if (message) {
|
|
2326
|
-
message.status = "completed";
|
|
2327
|
-
return;
|
|
2328
|
-
}
|
|
2329
|
-
}
|
|
2330
|
-
}
|
|
2331
|
-
async clearCompletedMessages(threadId) {
|
|
2332
|
-
const messages = this.messages.get(threadId);
|
|
2333
|
-
if (messages) {
|
|
2334
|
-
const filtered = messages.filter(
|
|
2335
|
-
(msg) => msg.status !== "completed"
|
|
2336
|
-
);
|
|
2337
|
-
this.messages.set(threadId, filtered);
|
|
2338
|
-
}
|
|
2339
|
-
}
|
|
2340
2322
|
async resetProcessingToPending(threadId) {
|
|
2341
2323
|
const messages = this.messages.get(threadId);
|
|
2342
2324
|
if (!messages) {
|
|
@@ -3225,7 +3207,6 @@ var SqlDatabaseManager = class _SqlDatabaseManager {
|
|
|
3225
3207
|
constructor() {
|
|
3226
3208
|
this.databases = /* @__PURE__ */ new Map();
|
|
3227
3209
|
this.defaultDatabaseKeys = /* @__PURE__ */ new Map();
|
|
3228
|
-
this.configStore = null;
|
|
3229
3210
|
}
|
|
3230
3211
|
/**
|
|
3231
3212
|
* Get the singleton instance
|
|
@@ -3285,16 +3266,9 @@ var SqlDatabaseManager = class _SqlDatabaseManager {
|
|
|
3285
3266
|
}
|
|
3286
3267
|
this.defaultDatabaseKeys.set(tenantId, key);
|
|
3287
3268
|
}
|
|
3288
|
-
/**
|
|
3289
|
-
* Set the configuration store for on-demand database loading
|
|
3290
|
-
* @param store - The database configuration store
|
|
3291
|
-
*/
|
|
3292
|
-
setConfigStore(store) {
|
|
3293
|
-
this.configStore = store;
|
|
3294
|
-
}
|
|
3295
3269
|
/**
|
|
3296
3270
|
* Get a database by key for a specific tenant
|
|
3297
|
-
* If database is not registered
|
|
3271
|
+
* If database is not registered, tries to load from the store lattice
|
|
3298
3272
|
* @param tenantId - Tenant identifier (required)
|
|
3299
3273
|
* @param key - Database key (optional, uses default if not provided)
|
|
3300
3274
|
* @returns ISqlDatabase instance
|
|
@@ -3312,8 +3286,10 @@ var SqlDatabaseManager = class _SqlDatabaseManager {
|
|
|
3312
3286
|
return database;
|
|
3313
3287
|
}
|
|
3314
3288
|
}
|
|
3315
|
-
|
|
3316
|
-
const
|
|
3289
|
+
try {
|
|
3290
|
+
const { store } = getStoreLattice("default", "database");
|
|
3291
|
+
const configStore = store;
|
|
3292
|
+
const configEntry = await configStore.getConfigByKey(tenantId, dbKey);
|
|
3317
3293
|
if (configEntry) {
|
|
3318
3294
|
this.registerDatabase(tenantId, dbKey, configEntry.config);
|
|
3319
3295
|
if (!this.defaultDatabaseKeys.has(tenantId)) {
|
|
@@ -3327,6 +3303,7 @@ var SqlDatabaseManager = class _SqlDatabaseManager {
|
|
|
3327
3303
|
}
|
|
3328
3304
|
}
|
|
3329
3305
|
}
|
|
3306
|
+
} catch {
|
|
3330
3307
|
}
|
|
3331
3308
|
if (!tenantDbs) {
|
|
3332
3309
|
throw new Error(`No databases registered for tenant '${tenantId}'`);
|
|
@@ -4436,6 +4413,7 @@ var MetricsServerManager = class _MetricsServerManager {
|
|
|
4436
4413
|
this.clients = /* @__PURE__ */ new Map();
|
|
4437
4414
|
this.configs = /* @__PURE__ */ new Map();
|
|
4438
4415
|
this.defaultServerKeys = /* @__PURE__ */ new Map();
|
|
4416
|
+
this._loadingPromise = null;
|
|
4439
4417
|
}
|
|
4440
4418
|
/**
|
|
4441
4419
|
* Get the singleton instance
|
|
@@ -4446,6 +4424,32 @@ var MetricsServerManager = class _MetricsServerManager {
|
|
|
4446
4424
|
}
|
|
4447
4425
|
return _MetricsServerManager.instance;
|
|
4448
4426
|
}
|
|
4427
|
+
/**
|
|
4428
|
+
* Ensure configurations are loaded from the store lattice.
|
|
4429
|
+
* Uses a promise-lock to prevent concurrent loads.
|
|
4430
|
+
*/
|
|
4431
|
+
async _ensureLoaded() {
|
|
4432
|
+
if (this.clients.size > 0) {
|
|
4433
|
+
return;
|
|
4434
|
+
}
|
|
4435
|
+
if (this._loadingPromise) {
|
|
4436
|
+
return this._loadingPromise;
|
|
4437
|
+
}
|
|
4438
|
+
this._loadingPromise = (async () => {
|
|
4439
|
+
try {
|
|
4440
|
+
const { store } = getStoreLattice("default", "metrics");
|
|
4441
|
+
const configStore = store;
|
|
4442
|
+
const configs = await configStore.getAllConfigsWithoutTenant();
|
|
4443
|
+
for (const entry of configs) {
|
|
4444
|
+
const tenantId = entry.tenantId || "default";
|
|
4445
|
+
this.registerServer(tenantId, entry.key, entry.config);
|
|
4446
|
+
}
|
|
4447
|
+
} finally {
|
|
4448
|
+
this._loadingPromise = null;
|
|
4449
|
+
}
|
|
4450
|
+
})();
|
|
4451
|
+
return this._loadingPromise;
|
|
4452
|
+
}
|
|
4449
4453
|
/**
|
|
4450
4454
|
* Get or create tenant clients map
|
|
4451
4455
|
*/
|
|
@@ -4514,7 +4518,8 @@ var MetricsServerManager = class _MetricsServerManager {
|
|
|
4514
4518
|
* @param tenantId - Tenant identifier
|
|
4515
4519
|
* @param key - Server key (optional, uses default if not provided)
|
|
4516
4520
|
*/
|
|
4517
|
-
getClient(tenantId, key) {
|
|
4521
|
+
async getClient(tenantId, key) {
|
|
4522
|
+
await this._ensureLoaded();
|
|
4518
4523
|
const tenantClients = this.clients.get(tenantId);
|
|
4519
4524
|
if (!tenantClients) {
|
|
4520
4525
|
throw new Error(`No metrics servers registered for tenant '${tenantId}'`);
|
|
@@ -4534,7 +4539,8 @@ var MetricsServerManager = class _MetricsServerManager {
|
|
|
4534
4539
|
* @param tenantId - Tenant identifier
|
|
4535
4540
|
* @param key - Server key (optional, uses default if not provided)
|
|
4536
4541
|
*/
|
|
4537
|
-
getConfig(tenantId, key) {
|
|
4542
|
+
async getConfig(tenantId, key) {
|
|
4543
|
+
await this._ensureLoaded();
|
|
4538
4544
|
const tenantConfigs = this.configs.get(tenantId);
|
|
4539
4545
|
if (!tenantConfigs) {
|
|
4540
4546
|
throw new Error(`No metrics servers registered for tenant '${tenantId}'`);
|
|
@@ -4562,7 +4568,8 @@ var MetricsServerManager = class _MetricsServerManager {
|
|
|
4562
4568
|
* Get all registered metrics server keys with their types for a tenant
|
|
4563
4569
|
* @param tenantId - Tenant identifier
|
|
4564
4570
|
*/
|
|
4565
|
-
getServerKeys(tenantId) {
|
|
4571
|
+
async getServerKeys(tenantId) {
|
|
4572
|
+
await this._ensureLoaded();
|
|
4566
4573
|
const tenantConfigs = this.configs.get(tenantId);
|
|
4567
4574
|
if (!tenantConfigs) {
|
|
4568
4575
|
return [];
|
|
@@ -4629,20 +4636,6 @@ var MetricsServerManager = class _MetricsServerManager {
|
|
|
4629
4636
|
this.registerServer(tenantId, entry.key, entry.config);
|
|
4630
4637
|
}
|
|
4631
4638
|
}
|
|
4632
|
-
/**
|
|
4633
|
-
* Load all metrics server configurations from a store
|
|
4634
|
-
* across all tenants and register them with this manager
|
|
4635
|
-
*
|
|
4636
|
-
* @param store - The metrics server configuration store
|
|
4637
|
-
* @deprecated Use loadConfigsFromStore with specific tenant instead
|
|
4638
|
-
*/
|
|
4639
|
-
async loadAllConfigsFromStore(store) {
|
|
4640
|
-
const configs = await store.getAllConfigsWithoutTenant();
|
|
4641
|
-
for (const entry of configs) {
|
|
4642
|
-
const tenantId = entry.tenantId || "default";
|
|
4643
|
-
this.registerServer(tenantId, entry.key, entry.config);
|
|
4644
|
-
}
|
|
4645
|
-
}
|
|
4646
4639
|
};
|
|
4647
4640
|
var metricsServerManager = MetricsServerManager.getInstance();
|
|
4648
4641
|
|
|
@@ -4661,7 +4654,7 @@ ${serverKeys.map(
|
|
|
4661
4654
|
async (_input, _exeConfig) => {
|
|
4662
4655
|
try {
|
|
4663
4656
|
const tenantId = getTenantIdFromConfig2(_exeConfig, getTenantId2);
|
|
4664
|
-
const servers = metricsServerManager.getServerKeys(tenantId);
|
|
4657
|
+
const servers = await metricsServerManager.getServerKeys(tenantId);
|
|
4665
4658
|
if (servers.length === 0) {
|
|
4666
4659
|
return "No metrics servers registered.";
|
|
4667
4660
|
}
|
|
@@ -4700,7 +4693,7 @@ ${serverKeys.map(
|
|
|
4700
4693
|
const tenantId = getTenantIdFromConfig2(_exeConfig, getTenantId2);
|
|
4701
4694
|
let effectiveServerKeys = serverKeys;
|
|
4702
4695
|
if (connectAll) {
|
|
4703
|
-
effectiveServerKeys = metricsServerManager.getServerKeys(tenantId).map((s) => s.key);
|
|
4696
|
+
effectiveServerKeys = (await metricsServerManager.getServerKeys(tenantId)).map((s) => s.key);
|
|
4704
4697
|
}
|
|
4705
4698
|
const filteredServerKeys = filterServerKeysByTenant(effectiveServerKeys, tenantId);
|
|
4706
4699
|
const runConfig = _exeConfig?.configurable?.runConfig || {};
|
|
@@ -4723,12 +4716,12 @@ To view all available data sources, please clear the current selection or reopen
|
|
|
4723
4716
|
const allDataSources = [];
|
|
4724
4717
|
for (const serverKey of filteredServerKeys) {
|
|
4725
4718
|
try {
|
|
4726
|
-
const config = metricsServerManager.getConfig(tenantId, serverKey);
|
|
4719
|
+
const config = await metricsServerManager.getConfig(tenantId, serverKey);
|
|
4727
4720
|
if (config.type !== "semantic") {
|
|
4728
4721
|
console.warn(`Server "${serverKey}" is not a semantic metrics server, skipping.`);
|
|
4729
4722
|
continue;
|
|
4730
4723
|
}
|
|
4731
|
-
const client = metricsServerManager.getClient(tenantId, serverKey);
|
|
4724
|
+
const client = await metricsServerManager.getClient(tenantId, serverKey);
|
|
4732
4725
|
const dataSources = await client.getDataSources();
|
|
4733
4726
|
const selectedIds = config.selectedDataSources || [];
|
|
4734
4727
|
const filteredDataSources = selectedIds.length > 0 ? dataSources.filter((ds) => selectedIds.includes(String(ds.id))) : dataSources;
|
|
@@ -4819,7 +4812,7 @@ ${serverKeys.map(
|
|
|
4819
4812
|
const tenantId = getTenantIdFromConfig2(_exeConfig, getTenantId2);
|
|
4820
4813
|
let effectiveServerKeys = serverKeys;
|
|
4821
4814
|
if (connectAll) {
|
|
4822
|
-
effectiveServerKeys = metricsServerManager.getServerKeys(tenantId).map((s) => s.key);
|
|
4815
|
+
effectiveServerKeys = (await metricsServerManager.getServerKeys(tenantId)).map((s) => s.key);
|
|
4823
4816
|
}
|
|
4824
4817
|
const filteredServerKeys = filterServerKeysByTenant(effectiveServerKeys, tenantId);
|
|
4825
4818
|
const runConfig = _exeConfig?.configurable?.runConfig || {};
|
|
@@ -4831,11 +4824,11 @@ ${serverKeys.map(
|
|
|
4831
4824
|
if (!filteredServerKeys.includes(serverKey)) {
|
|
4832
4825
|
return `Error: serverKey "${serverKey}" is not available for tenant "${tenantId}". Available servers: [${filteredServerKeys.join(", ")}]`;
|
|
4833
4826
|
}
|
|
4834
|
-
const config = metricsServerManager.getConfig(tenantId, serverKey);
|
|
4827
|
+
const config = await metricsServerManager.getConfig(tenantId, serverKey);
|
|
4835
4828
|
if (config.type !== "semantic") {
|
|
4836
4829
|
return `Error: Server "${serverKey}" is not a semantic metrics server. This tool only works with semantic servers.`;
|
|
4837
4830
|
}
|
|
4838
|
-
const client = metricsServerManager.getClient(tenantId, serverKey);
|
|
4831
|
+
const client = await metricsServerManager.getClient(tenantId, serverKey);
|
|
4839
4832
|
const targetDatasourceIds = datasourceIds && datasourceIds.length > 0 ? datasourceIds : metricsDataSource?.datasourceId ? [metricsDataSource.datasourceId] : client.getSelectedDataSources();
|
|
4840
4833
|
if (targetDatasourceIds.length === 0) {
|
|
4841
4834
|
return `Error: No data sources specified and no default data sources configured for server "${serverKey}".`;
|
|
@@ -4977,7 +4970,7 @@ ${serverKeys.map(
|
|
|
4977
4970
|
const tenantId = getTenantIdFromConfig2(_exeConfig, getTenantId2);
|
|
4978
4971
|
let effectiveServerKeys = serverKeys;
|
|
4979
4972
|
if (connectAll) {
|
|
4980
|
-
effectiveServerKeys = metricsServerManager.getServerKeys(tenantId).map((s) => s.key);
|
|
4973
|
+
effectiveServerKeys = (await metricsServerManager.getServerKeys(tenantId)).map((s) => s.key);
|
|
4981
4974
|
}
|
|
4982
4975
|
const filteredServerKeys = filterServerKeysByTenant(effectiveServerKeys, tenantId);
|
|
4983
4976
|
const runConfig = _exeConfig?.configurable?.runConfig || {};
|
|
@@ -4993,11 +4986,11 @@ ${serverKeys.map(
|
|
|
4993
4986
|
if (!metricName) {
|
|
4994
4987
|
return "Error: metricName parameter is required.";
|
|
4995
4988
|
}
|
|
4996
|
-
const config = metricsServerManager.getConfig(tenantId, serverKey);
|
|
4989
|
+
const config = await metricsServerManager.getConfig(tenantId, serverKey);
|
|
4997
4990
|
if (config.type !== "semantic") {
|
|
4998
4991
|
return `Error: Server "${serverKey}" is not a semantic metrics server. This tool only works with semantic servers.`;
|
|
4999
4992
|
}
|
|
5000
|
-
const client = metricsServerManager.getClient(tenantId, serverKey);
|
|
4993
|
+
const client = await metricsServerManager.getClient(tenantId, serverKey);
|
|
5001
4994
|
const targetDatasourceIds = datasourceId ? [datasourceId] : client.getSelectedDataSources();
|
|
5002
4995
|
if (targetDatasourceIds.length === 0) {
|
|
5003
4996
|
return `Error: No datasourceId specified and no default data sources configured for server "${serverKey}".`;
|
|
@@ -5213,7 +5206,7 @@ ${serverKeys.map(
|
|
|
5213
5206
|
const tenantId = getTenantIdFromConfig2(_exeConfig, getTenantId2);
|
|
5214
5207
|
let effectiveServerKeys = serverKeys;
|
|
5215
5208
|
if (connectAll) {
|
|
5216
|
-
effectiveServerKeys = metricsServerManager.getServerKeys(tenantId).map((s) => s.key);
|
|
5209
|
+
effectiveServerKeys = (await metricsServerManager.getServerKeys(tenantId)).map((s) => s.key);
|
|
5217
5210
|
}
|
|
5218
5211
|
const filteredServerKeys = filterServerKeysByTenant(effectiveServerKeys, tenantId);
|
|
5219
5212
|
const runConfig = _exeConfig?.configurable?.runConfig || {};
|
|
@@ -5232,11 +5225,11 @@ ${serverKeys.map(
|
|
|
5232
5225
|
if (!metrics || metrics.length === 0) {
|
|
5233
5226
|
return "Error: metrics parameter is required (at least one metric name).";
|
|
5234
5227
|
}
|
|
5235
|
-
const config = metricsServerManager.getConfig(tenantId, serverKey);
|
|
5228
|
+
const config = await metricsServerManager.getConfig(tenantId, serverKey);
|
|
5236
5229
|
if (config.type !== "semantic") {
|
|
5237
5230
|
return `Error: Server "${serverKey}" is not a semantic metrics server. This tool only works with semantic servers.`;
|
|
5238
5231
|
}
|
|
5239
|
-
const client = metricsServerManager.getClient(tenantId, serverKey);
|
|
5232
|
+
const client = await metricsServerManager.getClient(tenantId, serverKey);
|
|
5240
5233
|
const semanticFilters = (filters || []).map((f) => ({
|
|
5241
5234
|
dimension: f.dimension,
|
|
5242
5235
|
operator: f.operator,
|
|
@@ -5294,7 +5287,7 @@ ${serverKeys.map(
|
|
|
5294
5287
|
const tenantId = getTenantIdFromConfig2(_exeConfig, getTenantId2);
|
|
5295
5288
|
let effectiveServerKeys = serverKeys;
|
|
5296
5289
|
if (connectAll) {
|
|
5297
|
-
effectiveServerKeys = metricsServerManager.getServerKeys(tenantId).map((s) => s.key);
|
|
5290
|
+
effectiveServerKeys = (await metricsServerManager.getServerKeys(tenantId)).map((s) => s.key);
|
|
5298
5291
|
}
|
|
5299
5292
|
const filteredServerKeys = filterServerKeysByTenant(effectiveServerKeys, tenantId);
|
|
5300
5293
|
const runConfig = _exeConfig?.configurable?.runConfig || {};
|
|
@@ -5306,11 +5299,11 @@ ${serverKeys.map(
|
|
|
5306
5299
|
if (!filteredServerKeys.includes(serverKey)) {
|
|
5307
5300
|
return `Error: serverKey "${serverKey}" is not available for tenant "${tenantId}". Available servers: [${filteredServerKeys.join(", ")}]`;
|
|
5308
5301
|
}
|
|
5309
|
-
const config = metricsServerManager.getConfig(tenantId, serverKey);
|
|
5302
|
+
const config = await metricsServerManager.getConfig(tenantId, serverKey);
|
|
5310
5303
|
if (config.type !== "semantic") {
|
|
5311
5304
|
return `Error: Server "${serverKey}" is not a semantic metrics server. This tool only works with semantic servers.`;
|
|
5312
5305
|
}
|
|
5313
|
-
const client = metricsServerManager.getClient(tenantId, serverKey);
|
|
5306
|
+
const client = await metricsServerManager.getClient(tenantId, serverKey);
|
|
5314
5307
|
const targetDatasourceIds = datasourceIds && datasourceIds.length > 0 ? datasourceIds : metricsDataSource?.datasourceId ? [metricsDataSource.datasourceId] : client.getSelectedDataSources();
|
|
5315
5308
|
if (targetDatasourceIds.length === 0) {
|
|
5316
5309
|
return `Error: No data sources specified and no default data sources configured for server "${serverKey}".`;
|
|
@@ -5399,7 +5392,7 @@ ${serverKeys.map(
|
|
|
5399
5392
|
const tenantId = getTenantIdFromConfig2(_exeConfig, getTenantId2);
|
|
5400
5393
|
let effectiveServerKeys = serverKeys;
|
|
5401
5394
|
if (connectAll) {
|
|
5402
|
-
effectiveServerKeys = metricsServerManager.getServerKeys(tenantId).map((s) => s.key);
|
|
5395
|
+
effectiveServerKeys = (await metricsServerManager.getServerKeys(tenantId)).map((s) => s.key);
|
|
5403
5396
|
}
|
|
5404
5397
|
const filteredServerKeys = filterServerKeysByTenant(effectiveServerKeys, tenantId);
|
|
5405
5398
|
const runConfig = _exeConfig?.configurable?.runConfig || {};
|
|
@@ -5415,11 +5408,11 @@ ${serverKeys.map(
|
|
|
5415
5408
|
if (!tableName) {
|
|
5416
5409
|
return "Error: tableName parameter is required.";
|
|
5417
5410
|
}
|
|
5418
|
-
const config = metricsServerManager.getConfig(tenantId, serverKey);
|
|
5411
|
+
const config = await metricsServerManager.getConfig(tenantId, serverKey);
|
|
5419
5412
|
if (config.type !== "semantic") {
|
|
5420
5413
|
return `Error: Server "${serverKey}" is not a semantic metrics server. This tool only works with semantic servers.`;
|
|
5421
5414
|
}
|
|
5422
|
-
const client = metricsServerManager.getClient(tenantId, serverKey);
|
|
5415
|
+
const client = await metricsServerManager.getClient(tenantId, serverKey);
|
|
5423
5416
|
const targetDatasourceIds = datasourceId ? [datasourceId] : client.getSelectedDataSources();
|
|
5424
5417
|
if (targetDatasourceIds.length === 0) {
|
|
5425
5418
|
return `Error: No datasourceId specified and no default data sources configured for server "${serverKey}".`;
|
|
@@ -5539,7 +5532,7 @@ ${serverKeys.map(
|
|
|
5539
5532
|
const tenantId = getTenantIdFromConfig2(_exeConfig, getTenantId2);
|
|
5540
5533
|
let effectiveServerKeys = serverKeys;
|
|
5541
5534
|
if (connectAll) {
|
|
5542
|
-
effectiveServerKeys = metricsServerManager.getServerKeys(tenantId).map((s) => s.key);
|
|
5535
|
+
effectiveServerKeys = (await metricsServerManager.getServerKeys(tenantId)).map((s) => s.key);
|
|
5543
5536
|
}
|
|
5544
5537
|
const filteredServerKeys = filterServerKeysByTenant(effectiveServerKeys, tenantId);
|
|
5545
5538
|
const runConfig = _exeConfig?.configurable?.runConfig || {};
|
|
@@ -5558,11 +5551,11 @@ ${serverKeys.map(
|
|
|
5558
5551
|
if (!customSql || customSql.trim().length === 0) {
|
|
5559
5552
|
return "Error: customSql parameter is required and cannot be empty.";
|
|
5560
5553
|
}
|
|
5561
|
-
const config = metricsServerManager.getConfig(tenantId, serverKey);
|
|
5554
|
+
const config = await metricsServerManager.getConfig(tenantId, serverKey);
|
|
5562
5555
|
if (config.type !== "semantic") {
|
|
5563
5556
|
return `Error: Server "${serverKey}" is not a semantic metrics server. This tool only works with semantic servers.`;
|
|
5564
5557
|
}
|
|
5565
|
-
const client = metricsServerManager.getClient(tenantId, serverKey);
|
|
5558
|
+
const client = await metricsServerManager.getClient(tenantId, serverKey);
|
|
5566
5559
|
const result = await client.executeSqlQuery({
|
|
5567
5560
|
datasourceId,
|
|
5568
5561
|
customSql,
|
|
@@ -12122,7 +12115,7 @@ var Agent = class {
|
|
|
12122
12115
|
command: p.command,
|
|
12123
12116
|
custom_run_config: p.custom_run_config ?? queueMessageData.custom_run_config
|
|
12124
12117
|
}, signal);
|
|
12125
|
-
await this.queueStore?.
|
|
12118
|
+
await this.queueStore?.removeMessage(p.id);
|
|
12126
12119
|
const runStatus = await this.getRunStatus();
|
|
12127
12120
|
const state = await this.getCurrentState();
|
|
12128
12121
|
if (runStatus === "interrupted" /* INTERRUPTED */) {
|
|
@@ -12164,7 +12157,8 @@ var Agent = class {
|
|
|
12164
12157
|
error: error instanceof Error ? error.message : String(error),
|
|
12165
12158
|
timestamp: /* @__PURE__ */ new Date()
|
|
12166
12159
|
});
|
|
12167
|
-
|
|
12160
|
+
await this.queueStore?.removeMessage(p.id);
|
|
12161
|
+
continue;
|
|
12168
12162
|
}
|
|
12169
12163
|
}
|
|
12170
12164
|
}
|
|
@@ -12200,7 +12194,7 @@ var Agent = class {
|
|
|
12200
12194
|
const runStatus = await this.getRunStatus();
|
|
12201
12195
|
const state = await this.getCurrentState();
|
|
12202
12196
|
for (const p of remainingPendings) {
|
|
12203
|
-
await this.queueStore?.
|
|
12197
|
+
await this.queueStore?.removeMessage(p.id);
|
|
12204
12198
|
if (runStatus === "interrupted" /* INTERRUPTED */) {
|
|
12205
12199
|
this.publish("message:interrupted", {
|
|
12206
12200
|
type: "message:interrupted",
|
|
@@ -12242,8 +12236,8 @@ var Agent = class {
|
|
|
12242
12236
|
error: error instanceof Error ? error.message : String(error),
|
|
12243
12237
|
timestamp: /* @__PURE__ */ new Date()
|
|
12244
12238
|
});
|
|
12239
|
+
await this.queueStore?.removeMessage(p.id);
|
|
12245
12240
|
}
|
|
12246
|
-
throw error;
|
|
12247
12241
|
}
|
|
12248
12242
|
} else if (this.queueMode.mode === "followup" /* FOLLOWUP */) {
|
|
12249
12243
|
for (const p of remainingPendings) {
|
|
@@ -12271,7 +12265,7 @@ var Agent = class {
|
|
|
12271
12265
|
input,
|
|
12272
12266
|
custom_run_config: p.custom_run_config ?? queueMessageData.custom_run_config
|
|
12273
12267
|
}, signal);
|
|
12274
|
-
await this.queueStore?.
|
|
12268
|
+
await this.queueStore?.removeMessage(p.id);
|
|
12275
12269
|
const runStatus = await this.getRunStatus();
|
|
12276
12270
|
const state = await this.getCurrentState();
|
|
12277
12271
|
if (runStatus === "interrupted" /* INTERRUPTED */) {
|
|
@@ -12313,7 +12307,8 @@ var Agent = class {
|
|
|
12313
12307
|
error: error instanceof Error ? error.message : String(error),
|
|
12314
12308
|
timestamp: /* @__PURE__ */ new Date()
|
|
12315
12309
|
});
|
|
12316
|
-
|
|
12310
|
+
await this.queueStore?.removeMessage(p.id);
|
|
12311
|
+
continue;
|
|
12317
12312
|
}
|
|
12318
12313
|
}
|
|
12319
12314
|
}
|
|
@@ -17934,6 +17929,75 @@ function mergeAgentConfig(parent, child) {
|
|
|
17934
17929
|
return merged;
|
|
17935
17930
|
}
|
|
17936
17931
|
|
|
17932
|
+
// src/store_lattice/configureStores.ts
|
|
17933
|
+
var _disposables = [];
|
|
17934
|
+
var _cleanupRegistered = false;
|
|
17935
|
+
function registerSignalCleanup() {
|
|
17936
|
+
if (_cleanupRegistered) return;
|
|
17937
|
+
_cleanupRegistered = true;
|
|
17938
|
+
for (const sig of ["SIGINT", "SIGTERM"]) {
|
|
17939
|
+
process.once(sig, async () => {
|
|
17940
|
+
for (const s of _disposables) {
|
|
17941
|
+
if (s.dispose) await s.dispose();
|
|
17942
|
+
}
|
|
17943
|
+
});
|
|
17944
|
+
}
|
|
17945
|
+
}
|
|
17946
|
+
async function initAndRegister(store, localDisposables) {
|
|
17947
|
+
const initStore = store;
|
|
17948
|
+
if (typeof initStore.initialize === "function" && initStore.initialize.length === 0) {
|
|
17949
|
+
await initStore.initialize();
|
|
17950
|
+
}
|
|
17951
|
+
const dispStore = store;
|
|
17952
|
+
if (typeof dispStore.dispose === "function") {
|
|
17953
|
+
localDisposables.push(dispStore);
|
|
17954
|
+
}
|
|
17955
|
+
}
|
|
17956
|
+
async function configureStores(stores, options = {}) {
|
|
17957
|
+
const localDisposables = [];
|
|
17958
|
+
const { schedule, checkpoint, ...regularStores } = stores;
|
|
17959
|
+
for (const [type, store] of Object.entries(regularStores)) {
|
|
17960
|
+
await initAndRegister(store, localDisposables);
|
|
17961
|
+
if (storeLatticeManager.hasLattice("default", type)) {
|
|
17962
|
+
storeLatticeManager.removeLattice("default", type);
|
|
17963
|
+
}
|
|
17964
|
+
storeLatticeManager.registerLattice("default", type, store);
|
|
17965
|
+
}
|
|
17966
|
+
if (schedule !== void 0) {
|
|
17967
|
+
await initAndRegister(schedule, localDisposables);
|
|
17968
|
+
const scheduleConfig = {
|
|
17969
|
+
name: "Default Scheduler",
|
|
17970
|
+
description: "Auto-configured schedule storage",
|
|
17971
|
+
type: "postgres",
|
|
17972
|
+
storage: schedule
|
|
17973
|
+
};
|
|
17974
|
+
registerScheduleLattice("default", scheduleConfig);
|
|
17975
|
+
}
|
|
17976
|
+
if (checkpoint !== void 0) {
|
|
17977
|
+
MemoryLatticeManager.getInstance().removeCheckpointSaver("default");
|
|
17978
|
+
registerCheckpointSaver("default", checkpoint);
|
|
17979
|
+
}
|
|
17980
|
+
if (options.customStores) {
|
|
17981
|
+
for (const [type, store] of Object.entries(options.customStores)) {
|
|
17982
|
+
await initAndRegister(store, localDisposables);
|
|
17983
|
+
const t = type;
|
|
17984
|
+
if (storeLatticeManager.hasLattice("default", t)) {
|
|
17985
|
+
storeLatticeManager.removeLattice("default", t);
|
|
17986
|
+
}
|
|
17987
|
+
storeLatticeManager.registerLattice("default", t, store);
|
|
17988
|
+
}
|
|
17989
|
+
}
|
|
17990
|
+
if (options.autoDisposeStores) {
|
|
17991
|
+
registerSignalCleanup();
|
|
17992
|
+
_disposables.push(...localDisposables);
|
|
17993
|
+
}
|
|
17994
|
+
return async () => {
|
|
17995
|
+
for (const s of localDisposables.reverse()) {
|
|
17996
|
+
if (s.dispose) await s.dispose();
|
|
17997
|
+
}
|
|
17998
|
+
};
|
|
17999
|
+
}
|
|
18000
|
+
|
|
17937
18001
|
// src/store_lattice/SandboxSkillStore.ts
|
|
17938
18002
|
function parseFrontmatter2(content) {
|
|
17939
18003
|
const frontmatterRegex = /^---\s*\n([\s\S]*?)\n---\s*\n?([\s\S]*)$/;
|
|
@@ -22541,6 +22605,7 @@ export {
|
|
|
22541
22605
|
checkEmptyContent,
|
|
22542
22606
|
clearEncryptionKeyCache,
|
|
22543
22607
|
computeSandboxName,
|
|
22608
|
+
configureStores,
|
|
22544
22609
|
createAgentTeam,
|
|
22545
22610
|
createExecuteSqlQueryTool,
|
|
22546
22611
|
createFileData,
|