@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.
- package/dist/agent/DextoAgent.d.ts +3 -3
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/schemas.cjs +5 -5
- package/dist/agent/schemas.d.ts +69 -980
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +5 -5
- package/dist/approval/schemas.cjs +6 -6
- package/dist/approval/schemas.d.ts +316 -1292
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +6 -6
- package/dist/approval/session-approval-store.cjs +1 -1
- package/dist/approval/session-approval-store.d.ts +12 -30
- package/dist/approval/session-approval-store.d.ts.map +1 -1
- package/dist/approval/session-approval-store.js +1 -1
- package/dist/llm/formatters/vercel.cjs +43 -29
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +49 -30
- package/dist/llm/providers/local/schemas.d.ts +102 -262
- package/dist/llm/providers/local/schemas.d.ts.map +1 -1
- package/dist/llm/registry/index.d.ts +5 -3
- package/dist/llm/registry/index.d.ts.map +1 -1
- package/dist/llm/registry/models.generated.cjs +967 -201
- package/dist/llm/registry/models.generated.d.ts +317 -27
- package/dist/llm/registry/models.generated.d.ts.map +1 -1
- package/dist/llm/registry/models.generated.js +967 -201
- package/dist/llm/resolver.cjs +0 -1
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +0 -1
- package/dist/llm/schemas.d.ts +95 -199
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/logger/default-logger-factory.d.ts +28 -256
- package/dist/logger/default-logger-factory.d.ts.map +1 -1
- package/dist/logger/v2/schemas.d.ts +18 -120
- package/dist/logger/v2/schemas.d.ts.map +1 -1
- package/dist/mcp/schemas.cjs +4 -4
- package/dist/mcp/schemas.d.ts +77 -270
- package/dist/mcp/schemas.d.ts.map +1 -1
- package/dist/mcp/schemas.js +4 -4
- package/dist/memory/schemas.d.ts +37 -117
- package/dist/memory/schemas.d.ts.map +1 -1
- package/dist/prompts/schemas.d.ts +46 -190
- package/dist/prompts/schemas.d.ts.map +1 -1
- package/dist/resources/schemas.d.ts +14 -68
- package/dist/resources/schemas.d.ts.map +1 -1
- package/dist/runtime/host-runtime.d.ts +1 -5
- package/dist/runtime/host-runtime.d.ts.map +1 -1
- package/dist/session/history/database.cjs +37 -54
- package/dist/session/history/database.d.ts +3 -18
- package/dist/session/history/database.d.ts.map +1 -1
- package/dist/session/history/database.js +37 -54
- package/dist/session/schemas.d.ts +1 -7
- package/dist/session/schemas.d.ts.map +1 -1
- package/dist/systemPrompt/schemas.cjs +2 -10
- package/dist/systemPrompt/schemas.d.ts +53 -343
- package/dist/systemPrompt/schemas.d.ts.map +1 -1
- package/dist/systemPrompt/schemas.js +2 -10
- package/dist/telemetry/schemas.cjs +1 -1
- package/dist/telemetry/schemas.d.ts +9 -44
- package/dist/telemetry/schemas.d.ts.map +1 -1
- package/dist/telemetry/schemas.js +1 -1
- package/dist/tools/schemas.cjs +1 -1
- package/dist/tools/schemas.d.ts +19 -62
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +1 -1
- package/dist/tools/session-tool-preferences-store.d.ts +3 -9
- package/dist/tools/session-tool-preferences-store.d.ts.map +1 -1
- package/dist/utils/result.cjs +11 -8
- package/dist/utils/result.d.ts +6 -6
- package/dist/utils/result.d.ts.map +1 -1
- package/dist/utils/result.js +12 -9
- package/dist/utils/schema.cjs +6 -2
- package/dist/utils/schema.d.ts +2 -7
- package/dist/utils/schema.d.ts.map +1 -1
- package/dist/utils/schema.js +6 -2
- package/dist/utils/zod-schema-converter.cjs +66 -66
- package/dist/utils/zod-schema-converter.d.ts +3 -2
- package/dist/utils/zod-schema-converter.d.ts.map +1 -1
- package/dist/utils/zod-schema-converter.js +66 -66
- 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,
|
|
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
|
-
|
|
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
|
|
30
|
+
const seenIndexes = /* @__PURE__ */ new Map();
|
|
31
31
|
this.cache = [];
|
|
32
32
|
let duplicateCount = 0;
|
|
33
33
|
for (const msg of rawMessages) {
|
|
34
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
109
|
-
this.
|
|
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.
|
|
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
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
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
|
|
170
|
-
|
|
160
|
+
const updates = [...this.pendingUpdates.values()];
|
|
161
|
+
this.pendingUpdates.clear();
|
|
171
162
|
this.logger.debug(
|
|
172
|
-
`DatabaseHistoryProvider: FLUSH
|
|
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
|
-
|
|
176
|
-
|
|
177
|
-
|
|
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
|
|
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
|
|
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
|
-
},
|
|
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
|
|
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().
|
|
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
|
-
|
|
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'."
|