@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.
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxLQUFLO0lBQ3pCLElBQUksQ0FBUztJQUU3QixZQUFZLElBQVksRUFBRSxPQUFlLEVBQUUsT0FBc0I7UUFDL0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLGtCQUFrQixDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxnQkFBZ0I7SUFDOUQsWUFBWSxPQUFlLEVBQUUsT0FBc0I7UUFDakQsS0FBSyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSSxHQUFHLDRCQUE0QixDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBZ0I7SUFDMUQ7UUFDRSxLQUFLLENBQUMsYUFBYSxFQUFFLDBCQUEwQixDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLElBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0JBQWdCO0lBQzVELFlBQVksUUFBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLFFBQVEsS0FBSyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLElBQUksR0FBRywwQkFBMEIsQ0FBQztJQUN6QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsZ0JBQWdCO0lBQy9ELFlBQVksU0FBaUIsRUFBRSxNQUFNLEdBQUcsMkJBQTJCO1FBQ2pFLEtBQUssQ0FBQyxtQkFBbUIsRUFB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
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxLQUFLO0lBQ3pCLElBQUksQ0FBUztJQUU3QixZQUFZLElBQVksRUFBRSxPQUFlLEVBQUUsT0FBc0I7UUFDL0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLGtCQUFrQixDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxnQkFBZ0I7SUFDOUQsWUFBWSxPQUFlLEVBQUUsT0FBc0I7UUFDakQsS0FBSyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSSxHQUFHLDRCQUE0QixDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBZ0I7SUFDMUQ7UUFDRSxLQUFLLENBQUMsYUFBYSxFQUFFLDBCQUEwQixDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLElBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0JBQWdCO0lBQzVELFlBQVksUUFBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLFFBQVEsS0FBSyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLElBQUksR0FBRywwQkFBMEIsQ0FBQztJQUN6QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsZ0JBQWdCO0lBQy9ELFlBQVksU0FBaUIsRUFBRSxNQUFNLEdBQUcsMkJBQTJCO1FBQ2pFLEtBQUssQ0FBQyxtQkFBbUIsRUFB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
@@ -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 TFlexAgentRunOptions = plugins.IAgentRunOptions;
7
+ export type TFlexAgentSessionOptions = plugins.IAgentSessionOptions;
8
8
  export type TFlexAgentRunResult = plugins.IAgentRunResult;
9
- export type TFlexAgentRunner = (options: TFlexAgentRunOptions) => Promise<TFlexAgentRunResult>;
10
- export type TFlexAgentModel = TFlexAgentRunOptions['model'];
11
- export type TFlexAgentPrompt = TFlexAgentRunOptions['prompt'];
12
- export type TFlexAgentModelMessage = NonNullable<TFlexAgentRunOptions['messages']>[number];
13
- export type TFlexAgentToolSet = NonNullable<TFlexAgentRunOptions['tools']>;
14
- export type TFlexAgentProviderOptions = TFlexAgentRunOptions['providerOptions'];
15
- export type TFlexAgentCacheSetting = TFlexAgentRunOptions['cache'];
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 IFlexStoredSessionSnapshot {
205
- session: IFlexSession;
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
- modelHistory: TJsonValue[];
208
- rememberedPermissionKeys: string[];
233
+ stagedTerminals: IFlexTerminalProjection[];
209
234
  }
210
- export interface IFlexHarnessSnapshot {
235
+ export interface IFlexPermissionSnapshot {
211
236
  schemaVersion: 1;
212
237
  revision: number;
213
- sessions: IFlexStoredSessionSnapshot[];
238
+ rememberedPermissionKeys: string[];
214
239
  }
215
- export interface IFlexHarnessStore {
216
- load(storageKey: string): Promise<IFlexHarnessSnapshot | undefined>;
217
- save(storageKey: string, snapshot: IFlexHarnessSnapshot, expectedRevision: number): Promise<void>;
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' | 'runner' | 'toolExecution' | 'toolCallback' | 'toolCleanup' | 'persistence';
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
- store?: IFlexHarnessStore;
241
- runner?: TFlexAgentRunner;
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;
@@ -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 { runAgent } from '@push.rocks/smartagent';
6
- export { runAgent };
7
- export type { IAgentRunOptions, IAgentRunResult, } from '@push.rocks/smartagent';
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';
@@ -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 { runAgent } from '@push.rocks/smartagent';
8
- export { runAgent };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sS0FBSyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkMsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFFbEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFFNUIsb0JBQW9CO0FBQ3BCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMifQ==
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=
@@ -1,8 +1,10 @@
1
- import type { IFlexHarnessSnapshot, IFlexJsonLimits, TFlexAgentModelMessage, TJsonValue } from './interfaces.js';
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 assertFlexHarnessSnapshot(value: unknown): asserts value is IFlexHarnessSnapshot;
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[];