@modelprofile.com/flexharness 2.1.0 → 3.0.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/changelog.md +66 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.flexharness.d.ts +86 -30
- package/dist_ts/classes.flexharness.js +2593 -1131
- package/dist_ts/classes.stores.d.ts +19 -20
- package/dist_ts/classes.stores.js +968 -75
- package/dist_ts/errors.d.ts +5 -0
- package/dist_ts/errors.js +11 -1
- package/dist_ts/interfaces.d.ts +130 -23
- package/dist_ts/plugins.d.ts +3 -3
- package/dist_ts/plugins.js +3 -3
- package/dist_ts/utils.json.d.ts +4 -2
- package/dist_ts/utils.json.js +283 -140
- package/dist_ts/utils.prompt.d.ts +1 -2
- package/dist_ts/utils.prompt.js +3 -26
- package/dist_ts_migration/index.d.ts +1 -0
- package/dist_ts_migration/index.js +2 -0
- package/dist_ts_migration/v3_legacyflexharness.d.ts +17 -0
- package/dist_ts_migration/v3_legacyflexharness.js +426 -0
- package/package.json +17 -3
- package/readme.hints.md +13 -11
- package/readme.md +94 -27
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.flexharness.ts +2966 -1421
- package/ts/classes.stores.ts +1226 -97
- package/ts/errors.ts +20 -0
- package/ts/interfaces.ts +168 -22
- package/ts/plugins.ts +46 -3
- package/ts/utils.json.ts +341 -154
- package/ts/utils.prompt.ts +6 -27
- package/ts_migration/index.ts +1 -0
- package/ts_migration/v3_legacyflexharness.ts +620 -0
package/dist_ts/errors.d.ts
CHANGED
|
@@ -39,6 +39,11 @@ export declare class FlexHarnessStoreConflictError extends FlexHarnessError {
|
|
|
39
39
|
export declare class FlexHarnessStoreFormatError extends FlexHarnessError {
|
|
40
40
|
constructor(message: string, options?: ErrorOptions);
|
|
41
41
|
}
|
|
42
|
+
export declare class FlexHarnessStoreCommitUncertainError extends FlexHarnessError {
|
|
43
|
+
readonly path: string;
|
|
44
|
+
readonly operation: 'write' | 'delete-file' | 'delete-directory';
|
|
45
|
+
constructor(path: string, operation: 'write' | 'delete-file' | 'delete-directory', options: ErrorOptions);
|
|
46
|
+
}
|
|
42
47
|
export declare class FlexHarnessRunError extends AggregateError {
|
|
43
48
|
readonly code = "FLEX_RUN_FAILED";
|
|
44
49
|
constructor(errors: unknown[]);
|
package/dist_ts/errors.js
CHANGED
|
@@ -78,6 +78,16 @@ export class FlexHarnessStoreFormatError extends FlexHarnessError {
|
|
|
78
78
|
this.name = 'FlexHarnessStoreFormatError';
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
|
+
export class FlexHarnessStoreCommitUncertainError extends FlexHarnessError {
|
|
82
|
+
path;
|
|
83
|
+
operation;
|
|
84
|
+
constructor(path, operation, options) {
|
|
85
|
+
super('FLEX_STORE_COMMIT_UNCERTAIN', `Store ${operation} at "${path}" may have committed but could not be durably confirmed.`, options);
|
|
86
|
+
this.name = 'FlexHarnessStoreCommitUncertainError';
|
|
87
|
+
this.path = path;
|
|
88
|
+
this.operation = operation;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
81
91
|
export class FlexHarnessRunError extends AggregateError {
|
|
82
92
|
code = 'FLEX_RUN_FAILED';
|
|
83
93
|
constructor(errors) {
|
|
@@ -108,4 +118,4 @@ export function errorToInfo(error) {
|
|
|
108
118
|
export function errorMessage(error) {
|
|
109
119
|
return error instanceof Error ? error.message : String(error);
|
|
110
120
|
}
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxLQUFLO0lBQ3pCLElBQUksQ0FBUztJQUU3QixZQUFZLElBQVksRUFBRSxPQUFlLEVBQUUsT0FBc0I7UUFDL0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLGtCQUFrQixDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxnQkFBZ0I7SUFDOUQsWUFBWSxPQUFlLEVBQUUsT0FBc0I7UUFDakQsS0FBSyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSSxHQUFHLDRCQUE0QixDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBZ0I7SUFDMUQ7UUFDRSxLQUFLLENBQUMsYUFBYSxFQUFFLDBCQUEwQixDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLElBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0JBQWdCO0lBQzVELFlBQVksUUFBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLFFBQVEsS0FBSyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLElBQUksR0FBRywwQkFBMEIsQ0FBQztJQUN6QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsZ0JBQWdCO0lBQy9ELFlBQVksU0FBaUIsRUFBRSxNQUFNLEdBQUcsMkJBQTJCO1FBQ2pFLEtBQUssQ0FBQyxtQkFBbUIsRUFB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
|
package/dist_ts/interfaces.d.ts
CHANGED
|
@@ -4,16 +4,15 @@ export interface IJsonObject {
|
|
|
4
4
|
[key: string]: TJsonValue;
|
|
5
5
|
}
|
|
6
6
|
export type TJsonValue = TJsonPrimitive | IJsonObject | TJsonValue[];
|
|
7
|
-
export type
|
|
7
|
+
export type TFlexAgentSessionOptions = plugins.IAgentSessionOptions;
|
|
8
8
|
export type TFlexAgentRunResult = plugins.IAgentRunResult;
|
|
9
|
-
export type
|
|
10
|
-
export type
|
|
11
|
-
export type
|
|
12
|
-
export type
|
|
13
|
-
export type
|
|
14
|
-
export type
|
|
15
|
-
export type
|
|
16
|
-
export type TFlexAgentToolCallFinishEvent = Parameters<NonNullable<TFlexAgentRunOptions['onToolCallFinish']>>[0];
|
|
9
|
+
export type TFlexAgentModel = NonNullable<TFlexAgentSessionOptions['model']>;
|
|
10
|
+
export type TFlexAgentPrompt = Parameters<plugins.IAgentSession['beginGeneration']>[0];
|
|
11
|
+
export type TFlexAgentModelMessage = ReturnType<plugins.IAgentSession['getModelMessages']>[number];
|
|
12
|
+
export type TFlexAgentToolSet = NonNullable<TFlexAgentSessionOptions['tools']>;
|
|
13
|
+
export type TFlexAgentProviderOptions = TFlexAgentSessionOptions['providerOptions'];
|
|
14
|
+
export type TFlexAgentCacheSetting = TFlexAgentSessionOptions['cache'];
|
|
15
|
+
export type TFlexAgentToolCallFinishEvent = Parameters<NonNullable<TFlexAgentSessionOptions['onToolCallFinish']>>[0];
|
|
17
16
|
export interface IFlexTextPromptPart {
|
|
18
17
|
type: 'text';
|
|
19
18
|
text: string;
|
|
@@ -45,7 +44,7 @@ export interface IFlexModelIdentity {
|
|
|
45
44
|
displayName?: string;
|
|
46
45
|
variant?: string;
|
|
47
46
|
}
|
|
48
|
-
export type TFlexActivityStatus = 'idle' | 'running' | 'waiting_permission' | 'failed' | 'cancelled';
|
|
47
|
+
export type TFlexActivityStatus = 'idle' | 'scheduled' | 'running' | 'waiting_permission' | 'failed' | 'cancelled';
|
|
49
48
|
export type TFlexMessageStatus = 'streaming' | 'completed' | 'failed' | 'cancelled';
|
|
50
49
|
export type TFlexToolPartStatus = 'running' | 'completed' | 'failed' | 'cancelled';
|
|
51
50
|
export type TFlexAttachmentSource = 'inline-base64' | 'data-url' | 'remote-url';
|
|
@@ -137,6 +136,12 @@ export interface IFlexPromptAdmission {
|
|
|
137
136
|
runId: string;
|
|
138
137
|
completion: Promise<IFlexPromptResult>;
|
|
139
138
|
}
|
|
139
|
+
export interface IFlexSchedulePromptOptions extends IFlexPromptOptions {
|
|
140
|
+
debounceMs?: number;
|
|
141
|
+
}
|
|
142
|
+
export interface IFlexScheduledPromptAdmission extends IFlexPromptAdmission {
|
|
143
|
+
scheduleKey: string;
|
|
144
|
+
}
|
|
140
145
|
export interface IFlexMessagePageOptions {
|
|
141
146
|
limit?: number;
|
|
142
147
|
before?: string;
|
|
@@ -201,20 +206,67 @@ export interface IFlexToolHandle {
|
|
|
201
206
|
export interface IFlexToolProvider<TScope> {
|
|
202
207
|
provideTools(context: IFlexToolProviderContext<TScope>): Promise<IFlexToolHandle | undefined> | IFlexToolHandle | undefined;
|
|
203
208
|
}
|
|
204
|
-
export interface
|
|
205
|
-
|
|
209
|
+
export interface IFlexSessionTombstone {
|
|
210
|
+
sessionId: string;
|
|
211
|
+
deletedAt: string;
|
|
212
|
+
}
|
|
213
|
+
export interface IFlexScopeSnapshot {
|
|
214
|
+
schemaVersion: 1;
|
|
215
|
+
revision: number;
|
|
216
|
+
sessions: IFlexSession[];
|
|
217
|
+
tombstones: IFlexSessionTombstone[];
|
|
218
|
+
}
|
|
219
|
+
export interface IFlexTerminalProjection {
|
|
220
|
+
runId: string;
|
|
221
|
+
status: 'completed' | 'failed' | 'cancelled';
|
|
222
|
+
userMessage: IFlexMessage;
|
|
223
|
+
assistantMessage: IFlexMessage;
|
|
224
|
+
model?: IFlexModelIdentity;
|
|
225
|
+
usage?: IFlexUsage;
|
|
226
|
+
finishReason?: string;
|
|
227
|
+
steps?: number;
|
|
228
|
+
}
|
|
229
|
+
export interface IFlexProjectionSnapshot {
|
|
230
|
+
schemaVersion: 1;
|
|
231
|
+
revision: number;
|
|
206
232
|
messages: IFlexMessage[];
|
|
207
|
-
|
|
208
|
-
rememberedPermissionKeys: string[];
|
|
233
|
+
stagedTerminals: IFlexTerminalProjection[];
|
|
209
234
|
}
|
|
210
|
-
export interface
|
|
235
|
+
export interface IFlexPermissionSnapshot {
|
|
211
236
|
schemaVersion: 1;
|
|
212
237
|
revision: number;
|
|
213
|
-
|
|
238
|
+
rememberedPermissionKeys: string[];
|
|
214
239
|
}
|
|
215
|
-
export interface
|
|
216
|
-
load(storageKey: string): Promise<
|
|
217
|
-
save(storageKey: string, snapshot:
|
|
240
|
+
export interface IFlexScopeStore {
|
|
241
|
+
load(storageKey: string): Promise<IFlexScopeSnapshot | undefined>;
|
|
242
|
+
save(storageKey: string, snapshot: IFlexScopeSnapshot, expectedRevision: number): Promise<void>;
|
|
243
|
+
}
|
|
244
|
+
export interface IFlexProjectionStore {
|
|
245
|
+
load(storageKey: string, sessionId: string): Promise<IFlexProjectionSnapshot | undefined>;
|
|
246
|
+
save(storageKey: string, sessionId: string, snapshot: IFlexProjectionSnapshot, expectedRevision: number): Promise<void>;
|
|
247
|
+
deleteSession(storageKey: string, sessionId: string): Promise<void>;
|
|
248
|
+
}
|
|
249
|
+
export interface IFlexPermissionStore {
|
|
250
|
+
load(storageKey: string, sessionId: string): Promise<IFlexPermissionSnapshot | undefined>;
|
|
251
|
+
save(storageKey: string, sessionId: string, snapshot: IFlexPermissionSnapshot, expectedRevision: number): Promise<void>;
|
|
252
|
+
deleteSession(storageKey: string, sessionId: string): Promise<void>;
|
|
253
|
+
}
|
|
254
|
+
export interface IFlexAgentEventStoreProvider {
|
|
255
|
+
getStore(storageKey: string, sessionId: string): Promise<plugins.IAgentEventStoreV2> | plugins.IAgentEventStoreV2;
|
|
256
|
+
releaseSession?(storageKey: string, sessionId: string): Promise<void> | void;
|
|
257
|
+
deleteSession(storageKey: string, sessionId: string): Promise<void>;
|
|
258
|
+
}
|
|
259
|
+
export interface IFlexToolJobStoreProvider {
|
|
260
|
+
getStore(storageKey: string, sessionId: string): Promise<plugins.IToolJobStore> | plugins.IToolJobStore;
|
|
261
|
+
releaseSession?(storageKey: string, sessionId: string): Promise<void> | void;
|
|
262
|
+
deleteSession(storageKey: string, sessionId: string): Promise<void>;
|
|
263
|
+
}
|
|
264
|
+
export interface IFlexHarnessStores {
|
|
265
|
+
scopes: IFlexScopeStore;
|
|
266
|
+
projections: IFlexProjectionStore;
|
|
267
|
+
permissions: IFlexPermissionStore;
|
|
268
|
+
agentEvents: IFlexAgentEventStoreProvider;
|
|
269
|
+
jobs: IFlexToolJobStoreProvider;
|
|
218
270
|
}
|
|
219
271
|
export interface IFlexJsonLimits {
|
|
220
272
|
maxDepth?: number;
|
|
@@ -225,7 +277,7 @@ export interface IFlexCallbackLimits {
|
|
|
225
277
|
maxOutputBytes?: number;
|
|
226
278
|
maxParts?: number;
|
|
227
279
|
}
|
|
228
|
-
export type TFlexExternalErrorSource = 'modelResolver' | 'toolProvider' | '
|
|
280
|
+
export type TFlexExternalErrorSource = 'modelResolver' | 'toolProvider' | 'toolExecution' | 'toolCallback' | 'toolCleanup' | 'agentSession' | 'persistence';
|
|
229
281
|
export interface IFlexExternalErrorContext {
|
|
230
282
|
source: TFlexExternalErrorSource;
|
|
231
283
|
scopeId: string;
|
|
@@ -233,16 +285,71 @@ export interface IFlexExternalErrorContext {
|
|
|
233
285
|
runId: string;
|
|
234
286
|
}
|
|
235
287
|
export type TFlexExternalErrorProjector = (error: unknown, context: IFlexExternalErrorContext) => IFlexErrorInfo;
|
|
288
|
+
export interface IFlexExecutionContextProviderContext<TScope> {
|
|
289
|
+
scopeId: string;
|
|
290
|
+
scope: TScope;
|
|
291
|
+
storageKey: string;
|
|
292
|
+
sessionId: string;
|
|
293
|
+
jobStore: plugins.IToolJobStore;
|
|
294
|
+
}
|
|
295
|
+
export interface IFlexExecutionContextHandle {
|
|
296
|
+
context: plugins.IToolExecutionContext;
|
|
297
|
+
close?(): Promise<void> | void;
|
|
298
|
+
}
|
|
299
|
+
export interface IFlexExecutionContextProvider<TScope> {
|
|
300
|
+
provideExecutionContext(context: IFlexExecutionContextProviderContext<TScope>): Promise<IFlexExecutionContextHandle | undefined> | IFlexExecutionContextHandle | undefined;
|
|
301
|
+
}
|
|
302
|
+
export interface IFlexAgentSessionPolicy {
|
|
303
|
+
contextBuilder?: plugins.TAgentContextBuilder;
|
|
304
|
+
contextCompactor?: plugins.TAgentContextCompactor;
|
|
305
|
+
eventRetention?: TFlexAgentSessionOptions['eventRetention'];
|
|
306
|
+
changeListenerTimeoutMs?: number;
|
|
307
|
+
maxPendingSessionChanges?: number;
|
|
308
|
+
generationLeaseCleanupTimeoutMs?: number;
|
|
309
|
+
maxArchivedTransactionTombstones?: number;
|
|
310
|
+
maxContextOverflowRetries?: number;
|
|
311
|
+
}
|
|
236
312
|
export interface IFlexHarnessOptions<TScope> {
|
|
237
313
|
scopeResolver: IFlexScopeResolver<TScope>;
|
|
238
314
|
modelResolver: IFlexModelResolver<TScope>;
|
|
239
315
|
toolProvider?: IFlexToolProvider<TScope>;
|
|
240
|
-
|
|
241
|
-
|
|
316
|
+
executionContextProvider?: IFlexExecutionContextProvider<TScope>;
|
|
317
|
+
stores?: IFlexHarnessStores;
|
|
318
|
+
agentSessionPolicy?: IFlexAgentSessionPolicy;
|
|
242
319
|
toolOutputLimits?: IFlexJsonLimits;
|
|
243
320
|
callbackLimits?: IFlexCallbackLimits;
|
|
244
321
|
externalErrorProjector?: TFlexExternalErrorProjector;
|
|
245
322
|
}
|
|
323
|
+
export interface IFlexUncertainToolExecution {
|
|
324
|
+
intentId: string;
|
|
325
|
+
generationId: string;
|
|
326
|
+
toolCallId: string;
|
|
327
|
+
toolName: string;
|
|
328
|
+
input: TJsonValue;
|
|
329
|
+
timestamp: string;
|
|
330
|
+
}
|
|
331
|
+
export type TFlexToolExecutionReconciliation = {
|
|
332
|
+
resolution: 'executed';
|
|
333
|
+
output: TJsonValue;
|
|
334
|
+
} | {
|
|
335
|
+
resolution: 'not-executed' | 'abandoned-unknown';
|
|
336
|
+
error?: string;
|
|
337
|
+
};
|
|
338
|
+
export interface IFlexBackgroundExecution {
|
|
339
|
+
executionId: string;
|
|
340
|
+
type: string;
|
|
341
|
+
state: 'running' | 'finished' | 'failed' | 'aborted';
|
|
342
|
+
exitCode?: number | null;
|
|
343
|
+
startedAt?: string;
|
|
344
|
+
updatedAt?: string;
|
|
345
|
+
finishedAt?: string;
|
|
346
|
+
}
|
|
347
|
+
export interface IFlexEventArchiveMetadata {
|
|
348
|
+
archiveId: string;
|
|
349
|
+
sessionId: string;
|
|
350
|
+
createdAt: string;
|
|
351
|
+
eventCount: number;
|
|
352
|
+
}
|
|
246
353
|
export interface IFlexEventBase {
|
|
247
354
|
readonly eventId: string;
|
|
248
355
|
readonly sequence: number;
|
|
@@ -263,7 +370,7 @@ export interface IFlexSessionDeletedEvent extends IFlexEventBase {
|
|
|
263
370
|
readonly session: IFlexSession;
|
|
264
371
|
}
|
|
265
372
|
export interface IFlexRunStartedEvent extends IFlexEventBase {
|
|
266
|
-
readonly type: 'run.started';
|
|
373
|
+
readonly type: 'run.started' | 'run.scheduled';
|
|
267
374
|
readonly runId: string;
|
|
268
375
|
readonly messageId: string;
|
|
269
376
|
readonly session: IFlexSession;
|
package/dist_ts/plugins.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ import * as crypto from 'node:crypto';
|
|
|
2
2
|
import * as fs from 'node:fs/promises';
|
|
3
3
|
import * as path from 'node:path';
|
|
4
4
|
export { crypto, fs, path };
|
|
5
|
-
import {
|
|
6
|
-
export {
|
|
7
|
-
export type {
|
|
5
|
+
import { AgentEventStoreConflictError, AgentSession, buildModelMessages, ToolJobStoreConflictError, createAgentEvent, getAgentGenerationTransactions, modelMessagesToAgentEvents, validateAgentEventArchiveV2, validateAgentEventSnapshotV2 } from '@push.rocks/smartagent';
|
|
6
|
+
export { AgentEventStoreConflictError, AgentSession, buildModelMessages, ToolJobStoreConflictError, createAgentEvent, getAgentGenerationTransactions, modelMessagesToAgentEvents, validateAgentEventArchiveV2, validateAgentEventSnapshotV2, };
|
|
7
|
+
export type { IAgentEventArchiveV2, IAgentEventSnapshotV2, IAgentEventStoreV2, IAgentGenerateResult, IAgentGenerationHandle, IAgentGenerationLease, IAgentRunResult, IAgentSession, IAgentSessionOptions, IAgentRuntimeEventPayload, IGenerationBegunEvent, IGenerationExecutionCompletedEvent, IGenerationExecutionStartedEvent, IGenerationOutcomeEvent, IToolExecutionContext, IToolExecutionIntentEvent, IToolJobSnapshot, IToolJobState, IToolJobStore, TAgentContextBuilder, TAgentContextCompactor, TAgentEvent, TAgentGenerationOutcome, TAgentToolCallFinishEvent, TAgentToolExecutionReconciliationOptions, } from '@push.rocks/smartagent';
|
package/dist_ts/plugins.js
CHANGED
|
@@ -4,6 +4,6 @@ import * as fs from 'node:fs/promises';
|
|
|
4
4
|
import * as path from 'node:path';
|
|
5
5
|
export { crypto, fs, path };
|
|
6
6
|
// @push.rocks scope
|
|
7
|
-
import {
|
|
8
|
-
export {
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
import { AgentEventStoreConflictError, AgentSession, buildModelMessages, ToolJobStoreConflictError, createAgentEvent, getAgentGenerationTransactions, modelMessagesToAgentEvents, validateAgentEventArchiveV2, validateAgentEventSnapshotV2, } from '@push.rocks/smartagent';
|
|
8
|
+
export { AgentEventStoreConflictError, AgentSession, buildModelMessages, ToolJobStoreConflictError, createAgentEvent, getAgentGenerationTransactions, modelMessagesToAgentEvents, validateAgentEventArchiveV2, validateAgentEventSnapshotV2, };
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sS0FBSyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkMsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFFbEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFFNUIsb0JBQW9CO0FBQ3BCLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIsZ0JBQWdCLEVBQ2hCLDhCQUE4QixFQUM5QiwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLDRCQUE0QixHQUM3QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIsZ0JBQWdCLEVBQ2hCLDhCQUE4QixFQUM5QiwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLDRCQUE0QixHQUM3QixDQUFDIn0=
|
package/dist_ts/utils.json.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IFlexJsonLimits, IFlexPermissionSnapshot, IFlexProjectionSnapshot, IFlexScopeSnapshot, TFlexAgentModelMessage, TJsonValue } from './interfaces.js';
|
|
2
2
|
export declare function resolveJsonLimits(limits?: IFlexJsonLimits): Required<IFlexJsonLimits>;
|
|
3
3
|
export declare function normalizeJsonValue(value: unknown, limits?: IFlexJsonLimits): TJsonValue;
|
|
4
4
|
export declare function assertJsonSerializable(value: unknown, path?: string): void;
|
|
5
|
-
export declare function
|
|
5
|
+
export declare function assertFlexScopeSnapshot(value: unknown): asserts value is IFlexScopeSnapshot;
|
|
6
|
+
export declare function assertFlexProjectionSnapshot(value: unknown): asserts value is IFlexProjectionSnapshot;
|
|
7
|
+
export declare function assertFlexPermissionSnapshot(value: unknown): asserts value is IFlexPermissionSnapshot;
|
|
6
8
|
export declare function cloneSerializable<T>(value: T): T;
|
|
7
9
|
export declare function deepFreeze<T>(value: T): T;
|
|
8
10
|
export declare function serializeAgentMessages(messages: TFlexAgentModelMessage[]): TFlexAgentModelMessage[];
|