@memberjunction/core-entities-server 6.2.0-edge.3 → 6.2.0-edge.5

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 (72) hide show
  1. package/dist/custom/MJAIAgentSessionEntityServer.server.d.ts +47 -0
  2. package/dist/custom/MJAIAgentSessionEntityServer.server.d.ts.map +1 -0
  3. package/dist/custom/MJAIAgentSessionEntityServer.server.js +101 -0
  4. package/dist/custom/MJAIAgentSessionEntityServer.server.js.map +1 -0
  5. package/dist/custom/MJAIPromptRunEntityServer.server.d.ts +32 -1
  6. package/dist/custom/MJAIPromptRunEntityServer.server.d.ts.map +1 -1
  7. package/dist/custom/MJAIPromptRunEntityServer.server.js +96 -31
  8. package/dist/custom/MJAIPromptRunEntityServer.server.js.map +1 -1
  9. package/dist/custom/MJApplicationEntityServer.server.js +5 -3
  10. package/dist/custom/MJApplicationEntityServer.server.js.map +1 -1
  11. package/dist/custom/MJArtifactVersionEntityServer.server.js +2 -2
  12. package/dist/custom/MJArtifactVersionEntityServer.server.js.map +1 -1
  13. package/dist/custom/MJConversationDetailEntityServer.server.d.ts +16 -3
  14. package/dist/custom/MJConversationDetailEntityServer.server.d.ts.map +1 -1
  15. package/dist/custom/MJConversationDetailEntityServer.server.js +62 -5
  16. package/dist/custom/MJConversationDetailEntityServer.server.js.map +1 -1
  17. package/dist/custom/MJDataContextItemEntityServer.server.d.ts +33 -0
  18. package/dist/custom/MJDataContextItemEntityServer.server.d.ts.map +1 -0
  19. package/dist/custom/MJDataContextItemEntityServer.server.js +84 -0
  20. package/dist/custom/MJDataContextItemEntityServer.server.js.map +1 -0
  21. package/dist/custom/MJFileEntityServer.server.d.ts +45 -0
  22. package/dist/custom/MJFileEntityServer.server.d.ts.map +1 -0
  23. package/dist/custom/MJFileEntityServer.server.js +101 -0
  24. package/dist/custom/MJFileEntityServer.server.js.map +1 -0
  25. package/dist/custom/MJQueryEntityServer.server.d.ts +5 -1
  26. package/dist/custom/MJQueryEntityServer.server.d.ts.map +1 -1
  27. package/dist/custom/MJQueryEntityServer.server.js +11 -6
  28. package/dist/custom/MJQueryEntityServer.server.js.map +1 -1
  29. package/dist/custom/MJQuerySQLEntityServer.server.js +3 -3
  30. package/dist/custom/MJQuerySQLEntityServer.server.js.map +1 -1
  31. package/dist/custom/MJRowLevelSecurityFilterEntityServer.server.d.ts +26 -14
  32. package/dist/custom/MJRowLevelSecurityFilterEntityServer.server.d.ts.map +1 -1
  33. package/dist/custom/MJRowLevelSecurityFilterEntityServer.server.js +57 -32
  34. package/dist/custom/MJRowLevelSecurityFilterEntityServer.server.js.map +1 -1
  35. package/dist/custom/MJUserRoutineEntityServer.server.d.ts.map +1 -1
  36. package/dist/custom/MJUserRoutineEntityServer.server.js +12 -3
  37. package/dist/custom/MJUserRoutineEntityServer.server.js.map +1 -1
  38. package/dist/custom/MJUserViewEntityServer.server.d.ts +26 -0
  39. package/dist/custom/MJUserViewEntityServer.server.d.ts.map +1 -1
  40. package/dist/custom/MJUserViewEntityServer.server.js +74 -4
  41. package/dist/custom/MJUserViewEntityServer.server.js.map +1 -1
  42. package/dist/custom/MJVectorIndexEntityServer.server.d.ts +96 -7
  43. package/dist/custom/MJVectorIndexEntityServer.server.d.ts.map +1 -1
  44. package/dist/custom/MJVectorIndexEntityServer.server.js +276 -37
  45. package/dist/custom/MJVectorIndexEntityServer.server.js.map +1 -1
  46. package/dist/custom/query-extraction/pipeline.d.ts.map +1 -1
  47. package/dist/custom/query-extraction/pipeline.js +56 -5
  48. package/dist/custom/query-extraction/pipeline.js.map +1 -1
  49. package/dist/custom/query-extraction/types.d.ts +3 -0
  50. package/dist/custom/query-extraction/types.d.ts.map +1 -1
  51. package/dist/custom/rowFilterValidation.d.ts +47 -2
  52. package/dist/custom/rowFilterValidation.d.ts.map +1 -1
  53. package/dist/custom/rowFilterValidation.js +122 -11
  54. package/dist/custom/rowFilterValidation.js.map +1 -1
  55. package/dist/custom/rubrics/versionPublish.d.ts.map +1 -1
  56. package/dist/custom/rubrics/versionPublish.js +7 -5
  57. package/dist/custom/rubrics/versionPublish.js.map +1 -1
  58. package/dist/custom/sessionConfigGuard.d.ts +70 -0
  59. package/dist/custom/sessionConfigGuard.d.ts.map +1 -0
  60. package/dist/custom/sessionConfigGuard.js +125 -0
  61. package/dist/custom/sessionConfigGuard.js.map +1 -0
  62. package/dist/custom/template-extraction/pipeline.d.ts +6 -1
  63. package/dist/custom/template-extraction/pipeline.d.ts.map +1 -1
  64. package/dist/custom/template-extraction/pipeline.js +15 -6
  65. package/dist/custom/template-extraction/pipeline.js.map +1 -1
  66. package/dist/custom/template-extraction/types.d.ts +1 -1
  67. package/dist/custom/template-extraction/types.d.ts.map +1 -1
  68. package/dist/index.d.ts +4 -0
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +4 -0
  71. package/dist/index.js.map +1 -1
  72. package/package.json +30 -30
@@ -4,20 +4,50 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ var MJVectorIndexEntityServer_1;
7
8
  import { BaseEntity, LogError, LogStatus, RunView } from "@memberjunction/core";
8
9
  import { RegisterClass, MJGlobal } from "@memberjunction/global";
9
10
  import { MJVectorIndexEntity } from "@memberjunction/core-entities";
10
11
  import { VectorDBBase } from "@memberjunction/ai-vectordb";
11
12
  import { GetAIAPIKey } from "@memberjunction/ai";
13
+ import { AIEmbeddingRunner } from "@memberjunction/ai-prompts";
12
14
  import { AIEngineBase } from "@memberjunction/ai-engine-base";
15
+ /** The distance metrics a provider index can be created with. */
16
+ const VALID_METRICS = ['cosine', 'euclidean', 'dotproduct'];
17
+ /** Raised by {@link MJVectorIndexEntityServer.withTimeout}, so a hung provider is told apart from one that refused. */
18
+ class ProvisionTimeoutError extends Error {
19
+ }
13
20
  /**
14
21
  * Server-side VectorIndex entity that syncs with the vector database provider.
15
22
  * On create: calls vectorDB.CreateIndex() to provision the index in the provider (e.g., Pinecone).
16
23
  * On delete: calls vectorDB.DeleteIndex() to remove the index from the provider.
24
+ *
25
+ * Provisioning is DETACHED from the save that triggers it: the save returns once the metadata row is
26
+ * written, and the provider call runs afterwards (see {@link Save}). That call is bounded by
27
+ * {@link CREATE_INDEX_TIMEOUT_MS}: past it the hook stops waiting and records `timed-out`. The provider
28
+ * call itself is abandoned, not cancelled (there is no cancellation handle), so the bound limits how
29
+ * long this record's provisioning stays open, not the provider's work.
30
+ * Pinecone's createIndex returns as soon as the request is accepted (we never pass waitUntilReady),
31
+ * so the bound only ever trips on a hung connection, not on a slow index build.
32
+ *
33
+ * Whatever the outcome, it is written onto the row's `ProviderConfig` as a {@link VectorIndexProvisionState}.
17
34
  */
18
35
  let MJVectorIndexEntityServer = class MJVectorIndexEntityServer extends MJVectorIndexEntity {
36
+ static { MJVectorIndexEntityServer_1 = this; }
37
+ /** Upper bound on one provider CreateIndex call. */
38
+ static { this.CREATE_INDEX_TIMEOUT_MS = 60_000; }
39
+ /** Upper bound on the one embedding call that learns a model's width (see resolveDimensions). */
40
+ static { this.DIMENSION_PROBE_TIMEOUT_MS = 30_000; }
41
+ /** Width used only when the record has none and the probe cannot answer (OpenAI text-embedding-3-small). */
42
+ static { this.DEFAULT_DIMENSIONS = 1536; }
43
+ /** The one string embedded to learn a model's width; its content is irrelevant, only the vector's length is read. */
44
+ static { this.DIMENSION_PROBE_TEXT = 'dimension probe'; }
19
45
  /**
20
46
  * After saving, if this is a new record, create the index in the provider.
47
+ * The provider call is deliberately NOT awaited: the client only needs the metadata row, and the
48
+ * request that triggered the save (an "Auto" index from the UI, or the Config page) must not wait
49
+ * on the provider. Save() never throws over provisioning; the outcome is recorded on the row's
50
+ * `ProviderConfig` instead (see {@link createIndexInProvider}).
21
51
  */
22
52
  async Save(options) {
23
53
  const isNew = this.IsSaved === false;
@@ -61,13 +91,63 @@ let MJVectorIndexEntityServer = class MJVectorIndexEntityServer extends MJVector
61
91
  return sanitized;
62
92
  }
63
93
  /**
64
- * Create the index in the vector database provider.
94
+ * The detached half of {@link Save}: provision, then write the outcome onto the row.
95
+ *
96
+ * Before this, a provider that refused (`success: false`), threw, or never answered reached only
97
+ * the server log, and the committed row looked exactly like one with an index behind it. The
98
+ * row's `ProviderConfig` now says which of the {@link VectorIndexProvisionState}s it is in.
99
+ *
100
+ * Keep this name: the integration suite's content-vectorization fixture stubs it by name to keep
101
+ * the provider out of the run.
65
102
  */
66
103
  async createIndexInProvider() {
104
+ let outcome;
105
+ try {
106
+ outcome = await this.provisionIndexInProvider();
107
+ }
108
+ catch (error) {
109
+ const reason = error instanceof Error ? error.message : String(error);
110
+ // A driver that throws rather than returning `success: false` is the same verdict; a call
111
+ // that outlived the bound is not, because the provider may still finish it.
112
+ outcome = { state: error instanceof ProvisionTimeoutError ? 'timed-out' : 'failed', reason };
113
+ }
114
+ await this.recordProvisionState(outcome);
115
+ switch (outcome.state) {
116
+ case 'failed':
117
+ LogError(`Vector index "${this.Name}" was NOT created in the vector database provider: ` +
118
+ `${outcome.reason ?? 'the provider reported a failure with no message'}. ` +
119
+ `Recorded provisionState "failed" on the record; delete it and recreate it once the provider is reachable.`);
120
+ break;
121
+ case 'timed-out':
122
+ LogError(`Vector index "${this.Name}": ${outcome.reason ?? 'the provider did not answer in time'}. ` +
123
+ `Recorded provisionState "timed-out" on the record.`);
124
+ break;
125
+ case 'unprovisioned':
126
+ case 'not-applicable':
127
+ LogStatus(`Vector index "${this.Name}": provisionState "${outcome.state}" (${outcome.reason ?? 'no detail'})`);
128
+ break;
129
+ }
130
+ }
131
+ /**
132
+ * Create the index in the vector database provider and report what happened.
133
+ *
134
+ * Returns rather than logs, so {@link createIndexInProvider} records every outcome the same way.
135
+ * Throws only when the driver throws or the call times out; the caller classifies both.
136
+ */
137
+ async provisionIndexInProvider() {
67
138
  const vectorDB = await this.getVectorDBInstance();
68
139
  if (!vectorDB) {
69
- LogError(`Cannot create index: no VectorDB instance for database ${this.VectorDatabaseID}`);
70
- return;
140
+ // getVectorDBInstance() has already logged the specific reason.
141
+ return {
142
+ state: 'unprovisioned',
143
+ reason: `No vector DB driver instance could be built for VectorDatabaseID ${this.VectorDatabaseID} in this process`,
144
+ };
145
+ }
146
+ if (vectorDB.ManagesIndexes === false) {
147
+ return {
148
+ state: 'not-applicable',
149
+ reason: 'This vector database driver owns no index objects; this record is the whole index definition',
150
+ };
71
151
  }
72
152
  // Sanitize the index name for the provider (e.g., Pinecone requires lowercase, no spaces)
73
153
  const sanitizedName = this.sanitizeIndexName(this.Name);
@@ -76,8 +156,8 @@ let MJVectorIndexEntityServer = class MJVectorIndexEntityServer extends MJVector
76
156
  }
77
157
  const params = {
78
158
  id: sanitizedName,
79
- dimension: this.resolveDimensions(),
80
- metric: 'cosine',
159
+ dimension: await this.resolveDimensions(),
160
+ metric: this.resolveMetric(),
81
161
  additionalParams: {
82
162
  serverless: {
83
163
  cloud: 'aws',
@@ -86,19 +166,13 @@ let MJVectorIndexEntityServer = class MJVectorIndexEntityServer extends MJVector
86
166
  }
87
167
  };
88
168
  LogStatus(`Creating index "${sanitizedName}" in vector DB provider...`);
89
- try {
90
- const result = await vectorDB.CreateIndex(params);
91
- if (result.success) {
92
- LogStatus(`Index "${sanitizedName}" created successfully in provider`);
93
- await this.saveProviderMetadata(result.data, params, sanitizedName);
94
- }
95
- else {
96
- LogError(`Provider returned error creating index "${sanitizedName}": ${result.message}`);
97
- }
98
- }
99
- catch (error) {
100
- LogError(`Exception while creating index "${sanitizedName}" in vector DB provider`, undefined, error);
169
+ const result = await MJVectorIndexEntityServer_1.withTimeout(vectorDB.CreateIndex(params), MJVectorIndexEntityServer_1.CREATE_INDEX_TIMEOUT_MS, `CreateIndex("${sanitizedName}")`);
170
+ if (!result.success) {
171
+ return { state: 'failed', reason: result.message || 'the provider reported a failure with no message' };
101
172
  }
173
+ LogStatus(`Index "${sanitizedName}" created successfully in provider`);
174
+ await this.saveProviderMetadata(result.data, params, sanitizedName);
175
+ return { state: 'provisioned' };
102
176
  }
103
177
  /**
104
178
  * Delete the index from the vector database provider.
@@ -109,6 +183,11 @@ let MJVectorIndexEntityServer = class MJVectorIndexEntityServer extends MJVector
109
183
  LogError(`Cannot delete index: no VectorDB instance for database ${this.VectorDatabaseID}`);
110
184
  return;
111
185
  }
186
+ if (vectorDB.ManagesIndexes === false) {
187
+ // Nothing was ever provisioned, so there is nothing to remove. Asking anyway just
188
+ // produces an "unsupported" error log on every delete.
189
+ return;
190
+ }
112
191
  // Same rule every read path uses to address the index on its provider (ExternalID, else Name).
113
192
  // An index provisioned through Save() above always has ExternalID set to its sanitized name.
114
193
  const providerIndexName = AIEngineBase.Instance.GetProviderIndexName(this);
@@ -169,53 +248,213 @@ let MJVectorIndexEntityServer = class MJVectorIndexEntityServer extends MJVector
169
248
  * Resolve the embedding dimensions to create the provider index at.
170
249
  *
171
250
  * Prefers this index's own `Dimensions` column, which is where the operator states it and what the
172
- * embedding call already honors. Falling straight through to 1536 ignored that column entirely, so
173
- * an index for any other model was created at the wrong width — harmless with providers that don't
174
- * enforce it, and fatal with ones that do: a colocated SQL Server index is a `VECTOR(n)` column, and
175
- * inserting 384-dimension vectors into a `VECTOR(1536)` is rejected outright.
251
+ * embedding call already honors. When the record carries none (every index created from the UI:
252
+ * the Config page's Create Index and the "Vector Index: Auto" path both leave it null, and
253
+ * `MJ: AI Models` has no width column to copy from), the width is learned by embedding one short
254
+ * string with the index's own model and reading the vector's length. Every provider fixes the width
255
+ * at create time, so guessing it wrong gives an index the sync can never write to: a 384-dimension
256
+ * model's vectors are rejected by a `VECTOR(1536)` column or a 1536-wide Pinecone index outright.
176
257
  *
177
- * 1536 (OpenAI text-embedding-3-small) remains the fallback for records that never set it.
258
+ * 1536 (OpenAI text-embedding-3-small) remains the fallback only when the probe cannot run or
259
+ * fails, and the failure is logged so the width can be set by hand. A wrong fallback does not go
260
+ * unnoticed: the vectorize pipeline compares every returned vector against the index's width and
261
+ * refuses the batch before upserting it.
178
262
  */
179
- resolveDimensions() {
180
- return this.Dimensions ?? 1536;
263
+ async resolveDimensions() {
264
+ if (this.Dimensions) {
265
+ return this.Dimensions;
266
+ }
267
+ const probed = await this.probeModelDimensions();
268
+ if (probed === null) {
269
+ LogError(`Vector index "${this.Name}": could not learn the embedding width; creating the provider index at the ${MJVectorIndexEntityServer_1.DEFAULT_DIMENSIONS} fallback. Set Dimensions on the record if the model's width differs.`);
270
+ return MJVectorIndexEntityServer_1.DEFAULT_DIMENSIONS;
271
+ }
272
+ return probed;
273
+ }
274
+ /**
275
+ * Embed one short string with this index's embedding model and return the vector's length, or null
276
+ * when there is no model, no user context, or the call fails. `ModelID` is pinned so the answer
277
+ * comes from the model the index is for; the run row is skipped since this is not a real workload.
278
+ */
279
+ async probeModelDimensions() {
280
+ if (!this.EmbeddingModelID) {
281
+ LogError(`Vector index "${this.Name}" has no EmbeddingModelID; cannot probe its embedding width`);
282
+ return null;
283
+ }
284
+ if (!this.ContextCurrentUser) {
285
+ LogError(`Vector index "${this.Name}" has no context user; cannot probe its embedding width`);
286
+ return null;
287
+ }
288
+ try {
289
+ const result = await MJVectorIndexEntityServer_1.withTimeout(new AIEmbeddingRunner().RunEmbedding({
290
+ Texts: [MJVectorIndexEntityServer_1.DIMENSION_PROBE_TEXT],
291
+ ModelID: this.EmbeddingModelID,
292
+ ContextUser: this.ContextCurrentUser,
293
+ // The entity's data provider is the same object as its metadata provider; this is
294
+ // the cast BaseEntity itself uses wherever it needs the metadata view of it.
295
+ Provider: this.ProviderToUse,
296
+ SkipRunRecord: true,
297
+ Description: `Vector index "${this.Name}" dimension probe`,
298
+ }), MJVectorIndexEntityServer_1.DIMENSION_PROBE_TIMEOUT_MS, `Dimension probe for vector index "${this.Name}"`);
299
+ const width = result.Success ? result.Vectors?.[0]?.length ?? 0 : 0;
300
+ if (width <= 0) {
301
+ LogError(`Dimension probe for vector index "${this.Name}" returned no vector: ${result.ErrorMessage ?? 'empty result'}`);
302
+ return null;
303
+ }
304
+ LogStatus(`Vector index "${this.Name}": embedding width ${width} learned from model ${result.ModelName ?? this.EmbeddingModelID}`);
305
+ return width;
306
+ }
307
+ catch (error) {
308
+ LogError(`Dimension probe for vector index "${this.Name}" failed`, undefined, error);
309
+ return null;
310
+ }
311
+ }
312
+ /**
313
+ * Resolve the distance metric to request the provider index be created with.
314
+ *
315
+ * `Metric` on this row is what the operator asked for; `cosine` is the fallback. This used to be
316
+ * hardcoded to `cosine` at the call site, which made the `Metric` write-back a tautology: the
317
+ * column simply echoed a constant this file had chosen, so it could never disagree with the
318
+ * provider and could never tell you the provider had done something else.
319
+ */
320
+ resolveMetric() {
321
+ const stated = this.Metric?.trim().toLowerCase();
322
+ const match = VALID_METRICS.find((m) => m === stated);
323
+ if (stated && !match) {
324
+ LogError(`Vector index "${this.Name}" declares an unrecognized Metric "${this.Metric}"; requesting "cosine" instead. Valid values: ${VALID_METRICS.join(', ')}.`);
325
+ }
326
+ return match ?? 'cosine';
327
+ }
328
+ /**
329
+ * Resolve `work` or reject after `timeoutMs`, whichever comes first. The timer is cleared when the
330
+ * work settles, so a fast provider leaves nothing behind. On timeout the provider may still finish
331
+ * on its side; the record simply does not get its metadata written back, and the log says so.
332
+ */
333
+ static withTimeout(work, timeoutMs, label) {
334
+ return new Promise((resolve, reject) => {
335
+ const timer = setTimeout(() => {
336
+ reject(new ProvisionTimeoutError(`${label} timed out after ${timeoutMs}ms; the provider may still finish on its side, ` +
337
+ `but nothing it returns will be written back to the record`));
338
+ }, timeoutMs);
339
+ Promise.resolve(work).then((value) => { clearTimeout(timer); resolve(value); }, (error) => { clearTimeout(timer); reject(error); });
340
+ });
181
341
  }
182
342
  /**
183
343
  * After provider creates the index, save the returned metadata back to our record.
184
- * Stores ExternalID, Dimensions, Metric, and full provider config as JSON.
344
+ * Stores ExternalID, Dimensions, Metric, the provisioning state, and provider config as JSON.
345
+ *
346
+ * **Provider truth beats our request.** `Dimensions` and `Metric` are read off the provider's
347
+ * own response when it reports them, and only fall back to what we asked for. A provider is
348
+ * free to round, clamp or ignore a requested dimension, and the whole point of these two
349
+ * columns is to be checkable against the embeddings we later generate; a column that can
350
+ * only ever repeat our own request is not a check.
351
+ *
352
+ * A failed write-back is logged rather than recorded: the index exists, and the only way to
353
+ * record anything on the row is the same save that just failed.
185
354
  */
186
355
  async saveProviderMetadata(providerResult, params, sanitizedName) {
187
356
  try {
188
- // Save what we know from our params + whatever the provider returned
189
357
  this.ExternalID = sanitizedName; // The sanitized name used in the provider
190
- this.Dimensions = params.dimension;
191
- this.Metric = params.metric;
192
- // Store full provider response + our spec as JSON config
193
- const config = {};
358
+ this.Dimensions = this.readProviderDimension(providerResult) ?? params.dimension;
359
+ this.Metric = this.readProviderMetric(providerResult) ?? params.metric;
360
+ // Store full provider response + our spec as JSON config while preserving existing keys (e.g. namespaceField)
361
+ const extra = {};
194
362
  if (params.additionalParams) {
195
- config['spec'] = params.additionalParams;
363
+ extra['spec'] = params.additionalParams;
196
364
  }
197
365
  if (providerResult && typeof providerResult === 'object') {
198
366
  // Extract useful provider metadata (host, status, etc.)
199
367
  if ('host' in providerResult)
200
- config['host'] = providerResult['host'];
368
+ extra['host'] = providerResult['host'];
201
369
  if ('status' in providerResult)
202
- config['status'] = providerResult['status'];
370
+ extra['status'] = providerResult['status'];
203
371
  }
204
- this.ProviderConfig = JSON.stringify(config);
372
+ this.ProviderConfig = this.buildProviderConfig({ state: 'provisioned' }, extra);
205
373
  const saved = await super.Save();
206
374
  if (saved) {
207
375
  LogStatus(`Saved provider metadata for index "${this.Name}"`);
208
376
  }
209
377
  else {
210
- LogError(`Failed to save provider metadata for index "${this.Name}": ${this.LatestResult?.CompleteMessage}`);
378
+ LogError(this.writeBackFailureMessage(sanitizedName, this.LatestResult?.CompleteMessage ?? 'the record save returned false with no message'));
379
+ }
380
+ }
381
+ catch (error) {
382
+ LogError(this.writeBackFailureMessage(sanitizedName, error instanceof Error ? error.message : String(error)), undefined, error);
383
+ }
384
+ }
385
+ writeBackFailureMessage(sanitizedName, reason) {
386
+ return `Vector index "${this.Name}" WAS created in the vector database provider as "${sanitizedName}", but its ` +
387
+ `provider metadata could not be written back to the record: ${reason}. The index exists and the record ` +
388
+ `does not yet address it; set ExternalID to "${sanitizedName}" to reconcile them.`;
389
+ }
390
+ /** The provider's own dimension, when it reported a usable one. */
391
+ readProviderDimension(providerResult) {
392
+ const raw = providerResult?.['dimension'];
393
+ const value = typeof raw === 'number' ? raw : typeof raw === 'string' ? Number(raw) : NaN;
394
+ return Number.isFinite(value) && value > 0 ? value : null;
395
+ }
396
+ /** The provider's own metric, when it reported a recognized one. */
397
+ readProviderMetric(providerResult) {
398
+ const raw = providerResult?.['metric'];
399
+ if (typeof raw !== 'string') {
400
+ return null;
401
+ }
402
+ const normalized = raw.trim().toLowerCase();
403
+ return VALID_METRICS.find((m) => m === normalized) ?? null;
404
+ }
405
+ /**
406
+ * Write the provisioning outcome onto the row, so a row that has no index behind it says so
407
+ * instead of looking identical to one that does.
408
+ *
409
+ * Best-effort by construction: this runs after the caller's save has already returned, and a
410
+ * second failure here must not replace the original diagnosis with a save error.
411
+ */
412
+ async recordProvisionState(outcome) {
413
+ if (outcome.state === 'provisioned') {
414
+ return; // saveProviderMetadata already stamped it, along with the provider's values
415
+ }
416
+ try {
417
+ this.ProviderConfig = this.buildProviderConfig(outcome);
418
+ const saved = await super.Save();
419
+ if (!saved) {
420
+ LogError(`Could not record provisioning state "${outcome.state}" on vector index "${this.Name}": ${this.LatestResult?.CompleteMessage ?? 'save returned false'}`);
211
421
  }
212
422
  }
213
423
  catch (error) {
214
- LogError(`Error saving provider metadata for index "${this.Name}"`, undefined, error);
424
+ LogError(`Could not record provisioning state "${outcome.state}" on vector index "${this.Name}"`, undefined, error);
425
+ }
426
+ }
427
+ /**
428
+ * Merge the provisioning outcome into the existing `ProviderConfig` JSON bag, preserving any
429
+ * driver-specific keys already there (e.g. Pinecone's `namespaceField`).
430
+ */
431
+ buildProviderConfig(outcome, extra) {
432
+ let existing = {};
433
+ if (this.ProviderConfig) {
434
+ try {
435
+ const parsed = JSON.parse(this.ProviderConfig);
436
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
437
+ existing = parsed;
438
+ }
439
+ }
440
+ catch {
441
+ // A ProviderConfig we cannot parse is not something to preserve silently.
442
+ LogError(`Vector index "${this.Name}" has an unparseable ProviderConfig; it is being replaced.`);
443
+ }
444
+ }
445
+ const merged = { ...existing, ...(extra ?? {}) };
446
+ merged['provisionState'] = outcome.state;
447
+ merged['provisionCheckedAt'] = new Date().toISOString();
448
+ if (outcome.reason) {
449
+ merged['provisionMessage'] = outcome.reason;
450
+ }
451
+ else {
452
+ delete merged['provisionMessage'];
215
453
  }
454
+ return JSON.stringify(merged);
216
455
  }
217
456
  };
218
- MJVectorIndexEntityServer = __decorate([
457
+ MJVectorIndexEntityServer = MJVectorIndexEntityServer_1 = __decorate([
219
458
  RegisterClass(BaseEntity, 'MJ: Vector Indexes')
220
459
  ], MJVectorIndexEntityServer);
221
460
  export { MJVectorIndexEntityServer };
@@ -1 +1 @@
1
- {"version":3,"file":"MJVectorIndexEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJVectorIndexEntityServer.server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MJVectorIndexEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJVectorIndexEntityServer.server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/custom/query-extraction/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAiC,MAAM,SAAS,CAAC;AAgB/E;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B,YAAY,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,CAwB1F;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ3E"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/custom/query-extraction/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAiC,MAAM,SAAS,CAAC;AAkB/E;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B,YAAY,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,CAqB1F;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ3E"}
@@ -3,6 +3,8 @@ import { ResolveCompositionReferences, BuildPassthroughParams, MergePassthroughP
3
3
  import { RunLLMEnrichment, MergeParametersWithLLM } from "./enrich.js";
4
4
  import { SyncParameters, SyncFields, SyncEntities, SyncDependencies, RemoveAllRecords } from "./sync.js";
5
5
  import { QueryEngine } from "@memberjunction/core-entities";
6
+ import { LocalCacheManager } from "@memberjunction/core";
7
+ import { UUIDsEqual } from "@memberjunction/global";
6
8
  /**
7
9
  * Runs the full query extraction pipeline:
8
10
  * 1. PARSE — single-pass SQL analysis
@@ -18,12 +20,14 @@ export async function RunExtractionPipeline(ctx) {
18
20
  const parseResult = ParseQuerySQL(ctx.sql, ctx.platform);
19
21
  // ── STAGE 2: RESOLVE ──
20
22
  const resolveResult = resolve(ctx, parseResult);
21
- // ── STAGE 3: ENRICH (best-effort, non-fatal) ──
22
- const llmResult = await RunLLMEnrichment(ctx.sql, resolveResult.EntityMetadata, ctx.contextUser, ctx.metadataProvider);
23
+ // ── STAGE 3: ENRICH (best-effort, non-fatal; skipped on request, which merges like a failed call) ──
24
+ const llmResult = ctx.SkipAIEnrichment
25
+ ? null
26
+ : await RunLLMEnrichment(ctx.sql, resolveResult.EntityMetadata, ctx.contextUser, ctx.metadataProvider);
23
27
  // ── STAGE 4: MERGE ──
24
28
  const { finalParams, finalFields } = merge(resolveResult, llmResult, parseResult, ctx);
25
- // ── STAGE 5: SYNC (parallel DB writes) ──
26
- await sync(ctx, finalParams, finalFields, resolveResult);
29
+ // ── STAGE 5: SYNC (parallel DB writes, cache slots rewritten once at the end) ──
30
+ await runInEntityEventBatches(syncBatchOwners(ctx), () => sync(ctx, finalParams, finalFields, resolveResult));
27
31
  return {
28
32
  UsesTemplate: resolveResult.AllDeterministicParams.length > 0,
29
33
  };
@@ -82,6 +86,47 @@ function merge(resolveResult, llmResult, parseResult, ctx) {
82
86
  : null;
83
87
  return { finalParams, finalFields };
84
88
  }
89
+ /**
90
+ * The objects the sync stage's saves raise their events through. New rows use the pipeline's
91
+ * provider. Existing rows come from `QueryEngine`'s cache and keep whatever provider they were
92
+ * loaded or saved through: the engine's own, or, for a row an earlier request created, that
93
+ * request's provider instance. Each distinct one gets a batch, or its saves would rewrite and
94
+ * publish their slots one save at a time.
95
+ */
96
+ function syncBatchOwners(ctx) {
97
+ const engine = QueryEngine.Instance;
98
+ const owners = new Set([ctx.metadataProvider]);
99
+ if (engine.ProviderToUse) {
100
+ owners.add(engine.ProviderToUse);
101
+ }
102
+ if (engine.Loaded) {
103
+ const existingRows = [
104
+ ...engine.GetQueryParameters(ctx.queryID),
105
+ ...engine.GetQueryFields(ctx.queryID),
106
+ ...engine.QueryEntities.filter(e => UUIDsEqual(e.QueryID, ctx.queryID)),
107
+ ...engine.Dependencies.filter(d => UUIDsEqual(d.QueryID, ctx.queryID)),
108
+ ];
109
+ for (const row of existingRows) {
110
+ if (row.ProviderToUse) {
111
+ owners.add(row.ProviderToUse);
112
+ }
113
+ }
114
+ }
115
+ return [...owners];
116
+ }
117
+ /**
118
+ * Runs `work` inside an entity-event batch for every owner. Each row save would otherwise rewrite
119
+ * and publish its entity's whole shared cache slot (every field of every query, for Query Fields);
120
+ * in a batch each slot is rewritten once when the batch closes. When `work` fails the batch closes
121
+ * as failed and the touched slots are invalidated instead, so every server reloads them.
122
+ */
123
+ async function runInEntityEventBatches(owners, work) {
124
+ if (owners.length === 0) {
125
+ return work();
126
+ }
127
+ const [owner, ...rest] = owners;
128
+ return LocalCacheManager.Instance.RunInEntityEventBatch(owner, () => runInEntityEventBatches(rest, work));
129
+ }
85
130
  async function sync(ctx, finalParams, finalFields, resolveResult) {
86
131
  const syncPromises = [];
87
132
  // Parameters
@@ -106,7 +151,13 @@ async function sync(ctx, finalParams, finalFields, resolveResult) {
106
151
  }
107
152
  // Dependencies
108
153
  syncPromises.push(SyncDependencies(ctx.queryID, resolveResult.ResolvedCompositionRefs, ctx.contextUser, ctx.metadataProvider, ctx.runViewProvider, ctx.isSaved));
109
- await Promise.all(syncPromises);
154
+ // Wait for every write before failing, so the enclosing event batch closes after the last one
155
+ // instead of while some are still in flight.
156
+ const outcomes = await Promise.allSettled(syncPromises);
157
+ const failure = outcomes.find((o) => o.status === 'rejected');
158
+ if (failure) {
159
+ throw failure.reason;
160
+ }
110
161
  }
111
162
  /**
112
163
  * Supplements deterministic fields with richer descriptions from LLM output.
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/custom/query-extraction/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/custom/query-extraction/pipeline.ts"],"names":[],"mappings":"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"}
@@ -118,5 +118,8 @@ export interface QuerySyncContext {
118
118
  /** Caller-provided tested parameter sample values (paramName → sampleValue).
119
119
  * When present, these take highest priority over LLM-generated or heuristic sampleValues. */
120
120
  parameterHints?: Map<string, string>;
121
+ /** Skip the LLM enrichment stage, so the deterministic extraction alone decides parameters
122
+ * and fields (with heuristic descriptions). Set from the save's `SkipEntityAIActions`. */
123
+ SkipAIEnrichment?: boolean;
121
124
  }
122
125
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/custom/query-extraction/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/custom/query-extraction/types.ts"],"names":[],"mappings":"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"}