@dexto/core 1.6.27 → 1.7.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 (79) hide show
  1. package/dist/agent/DextoAgent.d.ts +3 -3
  2. package/dist/agent/DextoAgent.d.ts.map +1 -1
  3. package/dist/agent/schemas.cjs +5 -5
  4. package/dist/agent/schemas.d.ts +69 -980
  5. package/dist/agent/schemas.d.ts.map +1 -1
  6. package/dist/agent/schemas.js +5 -5
  7. package/dist/approval/schemas.cjs +6 -6
  8. package/dist/approval/schemas.d.ts +316 -1292
  9. package/dist/approval/schemas.d.ts.map +1 -1
  10. package/dist/approval/schemas.js +6 -6
  11. package/dist/approval/session-approval-store.cjs +1 -1
  12. package/dist/approval/session-approval-store.d.ts +12 -30
  13. package/dist/approval/session-approval-store.d.ts.map +1 -1
  14. package/dist/approval/session-approval-store.js +1 -1
  15. package/dist/llm/formatters/vercel.cjs +43 -29
  16. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  17. package/dist/llm/formatters/vercel.js +49 -30
  18. package/dist/llm/providers/local/schemas.d.ts +102 -262
  19. package/dist/llm/providers/local/schemas.d.ts.map +1 -1
  20. package/dist/llm/registry/index.d.ts +5 -3
  21. package/dist/llm/registry/index.d.ts.map +1 -1
  22. package/dist/llm/registry/models.generated.cjs +967 -201
  23. package/dist/llm/registry/models.generated.d.ts +317 -27
  24. package/dist/llm/registry/models.generated.d.ts.map +1 -1
  25. package/dist/llm/registry/models.generated.js +967 -201
  26. package/dist/llm/resolver.cjs +0 -1
  27. package/dist/llm/resolver.d.ts.map +1 -1
  28. package/dist/llm/resolver.js +0 -1
  29. package/dist/llm/schemas.d.ts +95 -199
  30. package/dist/llm/schemas.d.ts.map +1 -1
  31. package/dist/logger/default-logger-factory.d.ts +28 -256
  32. package/dist/logger/default-logger-factory.d.ts.map +1 -1
  33. package/dist/logger/v2/schemas.d.ts +18 -120
  34. package/dist/logger/v2/schemas.d.ts.map +1 -1
  35. package/dist/mcp/schemas.cjs +4 -4
  36. package/dist/mcp/schemas.d.ts +77 -270
  37. package/dist/mcp/schemas.d.ts.map +1 -1
  38. package/dist/mcp/schemas.js +4 -4
  39. package/dist/memory/schemas.d.ts +37 -117
  40. package/dist/memory/schemas.d.ts.map +1 -1
  41. package/dist/prompts/schemas.d.ts +46 -190
  42. package/dist/prompts/schemas.d.ts.map +1 -1
  43. package/dist/resources/schemas.d.ts +14 -68
  44. package/dist/resources/schemas.d.ts.map +1 -1
  45. package/dist/runtime/host-runtime.d.ts +1 -5
  46. package/dist/runtime/host-runtime.d.ts.map +1 -1
  47. package/dist/session/history/database.cjs +37 -54
  48. package/dist/session/history/database.d.ts +3 -18
  49. package/dist/session/history/database.d.ts.map +1 -1
  50. package/dist/session/history/database.js +37 -54
  51. package/dist/session/schemas.d.ts +1 -7
  52. package/dist/session/schemas.d.ts.map +1 -1
  53. package/dist/systemPrompt/schemas.cjs +2 -10
  54. package/dist/systemPrompt/schemas.d.ts +53 -343
  55. package/dist/systemPrompt/schemas.d.ts.map +1 -1
  56. package/dist/systemPrompt/schemas.js +2 -10
  57. package/dist/telemetry/schemas.cjs +1 -1
  58. package/dist/telemetry/schemas.d.ts +9 -44
  59. package/dist/telemetry/schemas.d.ts.map +1 -1
  60. package/dist/telemetry/schemas.js +1 -1
  61. package/dist/tools/schemas.cjs +1 -1
  62. package/dist/tools/schemas.d.ts +19 -62
  63. package/dist/tools/schemas.d.ts.map +1 -1
  64. package/dist/tools/schemas.js +1 -1
  65. package/dist/tools/session-tool-preferences-store.d.ts +3 -9
  66. package/dist/tools/session-tool-preferences-store.d.ts.map +1 -1
  67. package/dist/utils/result.cjs +11 -8
  68. package/dist/utils/result.d.ts +6 -6
  69. package/dist/utils/result.d.ts.map +1 -1
  70. package/dist/utils/result.js +12 -9
  71. package/dist/utils/schema.cjs +6 -2
  72. package/dist/utils/schema.d.ts +2 -7
  73. package/dist/utils/schema.d.ts.map +1 -1
  74. package/dist/utils/schema.js +6 -2
  75. package/dist/utils/zod-schema-converter.cjs +66 -66
  76. package/dist/utils/zod-schema-converter.d.ts +3 -2
  77. package/dist/utils/zod-schema-converter.d.ts.map +1 -1
  78. package/dist/utils/zod-schema-converter.js +66 -66
  79. package/package.json +4 -5
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/session/history/database.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,uBAAwB,YAAW,2BAA2B;IAanE,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ;IAbpB,OAAO,CAAC,MAAM,CAAS;IAGvB,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,YAAY,CAA8B;IAGlD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAO;gBAGjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,EAC1B,MAAM,EAAE,MAAM;IAKZ,UAAU,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IA2DxC,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCpD,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCtD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BnC;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB5B;;;OAGG;YACW,OAAO;IA+CrB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,cAAc;CAGzB"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/session/history/database.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,uBAAwB,YAAW,2BAA2B;IAanE,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ;IAbpB,OAAO,CAAC,MAAM,CAAS;IAGvB,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,cAAc,CAAsC;IAC5D,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,YAAY,CAA8B;IAGlD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAO;gBAGjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,EAC1B,MAAM,EAAE,MAAM;IAKZ,UAAU,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAyDxC,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCpD,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCtD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAkBd,mBAAmB;IAgCjC,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,cAAc;CAGzB"}
@@ -11,7 +11,7 @@ class DatabaseHistoryProvider {
11
11
  logger;
12
12
  // Cache state
13
13
  cache = null;
14
- dirty = false;
14
+ pendingUpdates = /* @__PURE__ */ new Map();
15
15
  flushTimer = null;
16
16
  flushPromise = null;
17
17
  // Flush configuration
@@ -27,25 +27,25 @@ class DatabaseHistoryProvider {
27
27
  `DatabaseHistoryProvider: Session ${this.sessionId} hit message limit (${limit}), history may be truncated`
28
28
  );
29
29
  }
30
- const seen = /* @__PURE__ */ new Set();
30
+ const seenIndexes = /* @__PURE__ */ new Map();
31
31
  this.cache = [];
32
32
  let duplicateCount = 0;
33
33
  for (const msg of rawMessages) {
34
- if (msg.id && seen.has(msg.id)) {
34
+ const seenIndex = msg.id ? seenIndexes.get(msg.id) : void 0;
35
+ if (seenIndex !== void 0) {
35
36
  duplicateCount++;
37
+ this.cache[seenIndex] = msg;
36
38
  continue;
37
39
  }
38
40
  if (msg.id) {
39
- seen.add(msg.id);
41
+ seenIndexes.set(msg.id, this.cache.length);
40
42
  }
41
43
  this.cache.push(msg);
42
44
  }
43
45
  if (duplicateCount > 0) {
44
46
  this.logger.warn(
45
- `DatabaseHistoryProvider: Found ${duplicateCount} duplicate messages for session ${this.sessionId}, deduped to ${this.cache.length}`
47
+ `DatabaseHistoryProvider: Found ${duplicateCount} duplicate message updates for session ${this.sessionId}, deduped to ${this.cache.length}`
46
48
  );
47
- this.dirty = true;
48
- this.scheduleFlush();
49
49
  } else {
50
50
  this.logger.debug(
51
51
  `DatabaseHistoryProvider: Loaded ${this.cache.length} messages for session ${this.sessionId}`
@@ -103,10 +103,14 @@ class DatabaseHistoryProvider {
103
103
  if (this.cache === null) {
104
104
  await this.getHistory();
105
105
  }
106
- const index = this.cache.findIndex((m) => m.id === message.id);
106
+ const cache = this.cache;
107
+ if (cache === null) {
108
+ return;
109
+ }
110
+ const index = cache.findIndex((m) => m.id === message.id);
107
111
  if (index !== -1) {
108
- this.cache[index] = message;
109
- this.dirty = true;
112
+ cache[index] = message;
113
+ this.pendingUpdates.set(message.id, message);
110
114
  this.scheduleFlush();
111
115
  this.logger.debug(
112
116
  `DatabaseHistoryProvider: Updated message ${message.id} in cache for session ${this.sessionId}`
@@ -120,7 +124,7 @@ class DatabaseHistoryProvider {
120
124
  async clearHistory() {
121
125
  this.cancelPendingFlush();
122
126
  this.cache = [];
123
- this.dirty = false;
127
+ this.pendingUpdates.clear();
124
128
  const key = this.getMessagesKey();
125
129
  try {
126
130
  await this.database.delete(key);
@@ -137,67 +141,49 @@ class DatabaseHistoryProvider {
137
141
  );
138
142
  }
139
143
  }
140
- /**
141
- * Flush any pending updates to the database.
142
- * Should be called at turn boundaries to ensure durability.
143
- */
144
144
  async flush() {
145
145
  if (this.flushPromise) {
146
146
  await this.flushPromise;
147
- return;
148
147
  }
149
148
  this.cancelPendingFlush();
150
- if (!this.dirty || !this.cache) {
151
- return;
152
- }
153
- this.flushPromise = this.doFlush();
154
- try {
155
- await this.flushPromise;
156
- } finally {
157
- this.flushPromise = null;
149
+ while (this.pendingUpdates.size > 0) {
150
+ this.flushPromise = this.flushPendingUpdates();
151
+ try {
152
+ await this.flushPromise;
153
+ } finally {
154
+ this.flushPromise = null;
155
+ }
158
156
  }
159
157
  }
160
- /**
161
- * Internal flush implementation.
162
- * Writes entire cache to DB (delete + re-append all).
163
- */
164
- async doFlush() {
165
- if (!this.dirty || !this.cache) {
166
- return;
167
- }
158
+ async flushPendingUpdates() {
168
159
  const key = this.getMessagesKey();
169
- const snapshot = [...this.cache];
170
- const messageCount = snapshot.length;
160
+ const updates = [...this.pendingUpdates.values()];
161
+ this.pendingUpdates.clear();
171
162
  this.logger.debug(
172
- `DatabaseHistoryProvider: FLUSH START key=${key} snapshotSize=${messageCount} ids=[${snapshot.map((m) => m.id).join(",")}]`
163
+ `DatabaseHistoryProvider: FLUSH UPDATES key=${key} count=${updates.length} ids=[${updates.map((m) => m.id).join(",")}]`
173
164
  );
165
+ let failedIndex = updates.length;
174
166
  try {
175
- await this.database.delete(key);
176
- this.logger.debug(`DatabaseHistoryProvider: FLUSH DELETED key=${key}`);
177
- for (const msg of snapshot) {
178
- await this.database.append(key, msg);
179
- }
180
- this.logger.debug(
181
- `DatabaseHistoryProvider: FLUSH REAPPENDED key=${key} count=${messageCount}`
182
- );
183
- if (!this.flushTimer) {
184
- this.dirty = false;
167
+ for (const [index, message] of updates.entries()) {
168
+ failedIndex = index;
169
+ await this.database.append(key, message);
185
170
  }
186
171
  } catch (error) {
172
+ for (const message of updates.slice(failedIndex)) {
173
+ if (message.id && !this.pendingUpdates.has(message.id)) {
174
+ this.pendingUpdates.set(message.id, message);
175
+ }
176
+ }
187
177
  this.logger.error(
188
- `DatabaseHistoryProvider: Error flushing messages for session ${this.sessionId}: ${error instanceof Error ? error.message : String(error)}`
178
+ `DatabaseHistoryProvider: Error flushing message updates for session ${this.sessionId}: ${error instanceof Error ? error.message : String(error)}`
189
179
  );
190
180
  throw SessionError.storageFailed(
191
181
  this.sessionId,
192
- "flush messages",
182
+ "flush message updates",
193
183
  error instanceof Error ? error.message : String(error)
194
184
  );
195
185
  }
196
186
  }
197
- /**
198
- * Schedule a debounced flush.
199
- * Batches rapid updateMessage() calls into a single DB write.
200
- */
201
187
  scheduleFlush() {
202
188
  if (this.flushTimer) {
203
189
  return;
@@ -208,9 +194,6 @@ class DatabaseHistoryProvider {
208
194
  });
209
195
  }, DatabaseHistoryProvider.FLUSH_DELAY_MS);
210
196
  }
211
- /**
212
- * Cancel any pending scheduled flush.
213
- */
214
197
  cancelPendingFlush() {
215
198
  if (this.flushTimer) {
216
199
  clearTimeout(this.flushTimer);
@@ -2,13 +2,7 @@ import { z } from 'zod';
2
2
  export declare const SessionConfigSchema: z.ZodObject<{
3
3
  maxSessions: z.ZodDefault<z.ZodNumber>;
4
4
  sessionTTL: z.ZodDefault<z.ZodNumber>;
5
- }, "strict", z.ZodTypeAny, {
6
- maxSessions: number;
7
- sessionTTL: number;
8
- }, {
9
- maxSessions?: number | undefined;
10
- sessionTTL?: number | undefined;
11
- }>;
5
+ }, z.core.$strict>;
12
6
  export type SessionConfig = z.input<typeof SessionConfigSchema>;
13
7
  export type ValidatedSessionConfig = z.output<typeof SessionConfigSchema>;
14
8
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/session/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;EAgBiB,CAAC;AAElD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/session/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;kBAgBiB,CAAC;AAElD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -74,22 +74,14 @@ const FileContributorSchema = BaseContributorSchema.extend({
74
74
  includeMetadata: import_zod.z.boolean().optional().default(false).describe(
75
75
  "Whether to include file metadata (size, modification time) in the context"
76
76
  )
77
- }).strict().optional().default({})
77
+ }).strict().optional().prefault({})
78
78
  }).strict();
79
79
  const ContributorConfigSchema = import_zod.z.discriminatedUnion(
80
80
  "type",
81
81
  // The field to discriminate on
82
82
  [StaticContributorSchema, DynamicContributorSchema, FileContributorSchema],
83
83
  {
84
- // Optional: Custom error message for invalid discriminator
85
- errorMap: (issue, ctx) => {
86
- if (issue.code === import_zod.z.ZodIssueCode.invalid_union_discriminator) {
87
- return {
88
- message: `Invalid contributor type. Expected 'static', 'dynamic', or 'file'. Note: memory contributors are now configured via the top-level 'memories' config.`
89
- };
90
- }
91
- return { message: ctx.defaultError };
92
- }
84
+ error: `Invalid contributor type. Expected 'static', 'dynamic', or 'file'. Note: memory contributors are now configured via the top-level 'memories' config.`
93
85
  }
94
86
  ).describe(
95
87
  "Configuration for a system prompt contributor. Type 'static' requires 'content', type 'dynamic' requires 'source', type 'file' requires 'files'."