@modelprofile.com/flexharness 9.3.1 → 9.5.0
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_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.flexharness.d.ts +39 -2
- package/dist_ts/classes.flexharness.js +451 -30
- package/dist_ts/errors.d.ts +5 -0
- package/dist_ts/errors.js +10 -1
- package/dist_ts/interfaces.d.ts +128 -0
- package/dist_ts/interfaces.js +19 -1
- package/dist_ts/utils.json.d.ts +5 -0
- package/dist_ts/utils.json.js +34 -1
- package/dist_ts/utils.sessionimport.d.ts +26 -0
- package/dist_ts/utils.sessionimport.js +241 -0
- package/dist_ts/utils.validation.d.ts +2 -1
- package/dist_ts/utils.validation.js +14 -1
- package/package.json +3 -3
- package/readme.md +107 -2
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.flexharness.ts +557 -25
- package/ts/errors.ts +11 -0
- package/ts/interfaces.ts +146 -1
- package/ts/readme.md +107 -2
- package/ts/utils.json.ts +37 -0
- package/ts/utils.sessionimport.ts +327 -0
- package/ts/utils.validation.ts +16 -0
package/dist_ts/errors.d.ts
CHANGED
|
@@ -15,6 +15,11 @@ export declare class FlexHarnessNotFoundError extends FlexHarnessError {
|
|
|
15
15
|
export declare class FlexHarnessSessionBusyError extends FlexHarnessError {
|
|
16
16
|
constructor(sessionId: string, reason?: string);
|
|
17
17
|
}
|
|
18
|
+
/** An operation would change the history or model context of an imported, read-only session. */
|
|
19
|
+
export declare class FlexHarnessImportedSessionError extends FlexHarnessError {
|
|
20
|
+
readonly sessionId: string;
|
|
21
|
+
constructor(sessionId: string);
|
|
22
|
+
}
|
|
18
23
|
export declare class FlexHarnessSlashCommandUnavailableError extends FlexHarnessError {
|
|
19
24
|
readonly commandName: string;
|
|
20
25
|
readonly unavailableReason: string;
|
package/dist_ts/errors.js
CHANGED
|
@@ -35,6 +35,15 @@ export class FlexHarnessSessionBusyError extends FlexHarnessError {
|
|
|
35
35
|
this.name = 'FlexHarnessSessionBusyError';
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
+
/** An operation would change the history or model context of an imported, read-only session. */
|
|
39
|
+
export class FlexHarnessImportedSessionError extends FlexHarnessError {
|
|
40
|
+
sessionId;
|
|
41
|
+
constructor(sessionId) {
|
|
42
|
+
super('FLEX_SESSION_READ_ONLY', `Session "${sessionId}" is an imported conversation and is read-only.`);
|
|
43
|
+
this.name = 'FlexHarnessImportedSessionError';
|
|
44
|
+
this.sessionId = sessionId;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
38
47
|
export class FlexHarnessSlashCommandUnavailableError extends FlexHarnessError {
|
|
39
48
|
commandName;
|
|
40
49
|
unavailableReason;
|
|
@@ -159,4 +168,4 @@ export function modelLimitErrorInfo(error) {
|
|
|
159
168
|
export function errorMessage(error) {
|
|
160
169
|
return error instanceof Error ? error.message : String(error);
|
|
161
170
|
}
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBR3hDLE1BQU0sb0JBQW9CLEdBQTRDO0lBQ3BFLFdBQVcsRUFBRSxrQkFBa0I7SUFDL0IsVUFBVSxFQUFFLGlCQUFpQjtDQUM5QixDQUFDO0FBRUYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLEtBQUs7SUFDekIsSUFBSSxDQUFTO0lBRTdCLFlBQVksSUFBWSxFQUFFLE9BQWUsRUFBRSxPQUFzQjtRQUMvRCxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGdCQUFnQjtJQUM5RCxZQUFZLE9BQWUsRUFBRSxPQUFzQjtRQUNqRCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxJQUFJLEdBQUcsNEJBQTRCLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGdCQUFnQjtJQUMxRDtRQUNFLEtBQUssQ0FBQyxhQUFhLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsSUFBSSxHQUFHLHdCQUF3QixDQUFDO0lBQ3ZDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxnQkFBZ0I7SUFDNUQsWUFBWSxRQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsUUFBUSxLQUFLLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsSUFBSSxHQUFHLDBCQUEwQixDQUFD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
|
package/dist_ts/interfaces.d.ts
CHANGED
|
@@ -136,7 +136,113 @@ export interface IFlexSession {
|
|
|
136
136
|
parentToolCallId?: string;
|
|
137
137
|
agent?: string;
|
|
138
138
|
depth?: number;
|
|
139
|
+
/** Set only on a session the staged session import created; such a session is read-only. */
|
|
140
|
+
origin?: IFlexSessionOrigin;
|
|
141
|
+
}
|
|
142
|
+
/** The position of an imported session when one source conversation was split into several sessions. */
|
|
143
|
+
export interface IFlexSessionImportPart {
|
|
144
|
+
/** Zero-based position of this session among the parts. */
|
|
145
|
+
index: number;
|
|
146
|
+
/** The number of parts the source was split into. */
|
|
147
|
+
count: number;
|
|
148
|
+
}
|
|
149
|
+
/** What an import caller states about the source of the history it imports. */
|
|
150
|
+
export interface IFlexSessionImportSource {
|
|
151
|
+
/** The kind of source, for example `claude-code-transcript`. */
|
|
152
|
+
source: string;
|
|
153
|
+
/** The source's own identifier of the conversation. */
|
|
154
|
+
sourceId: string;
|
|
155
|
+
/** The caller's digest of the source content; a changed source has a changed digest. */
|
|
156
|
+
digest: string;
|
|
157
|
+
part?: IFlexSessionImportPart;
|
|
158
|
+
/** Source-specific metadata, for example the source working directory or what the conversion lost. */
|
|
159
|
+
details?: IJsonObject;
|
|
160
|
+
}
|
|
161
|
+
/** Where an imported session's history came from. */
|
|
162
|
+
export interface IFlexSessionOrigin extends IFlexSessionImportSource {
|
|
163
|
+
kind: 'import';
|
|
164
|
+
/** When FlexHarness committed the import. */
|
|
165
|
+
importedAt: string;
|
|
166
|
+
}
|
|
167
|
+
/** The imported parent session, run and tool call an imported child session belongs to. */
|
|
168
|
+
export interface IFlexSessionImportParent {
|
|
169
|
+
sessionId: string;
|
|
170
|
+
runId: string;
|
|
171
|
+
toolCallId: string;
|
|
172
|
+
agent: string;
|
|
139
173
|
}
|
|
174
|
+
export interface IFlexBeginSessionImportOptions {
|
|
175
|
+
/** Caller-chosen and deterministic, so a repeated import finds the earlier one. */
|
|
176
|
+
sessionId: string;
|
|
177
|
+
title?: string;
|
|
178
|
+
/** When the source conversation started, as `Date.prototype.toISOString()` renders it. */
|
|
179
|
+
createdAt: string;
|
|
180
|
+
/** When the source conversation last changed; defaults to `createdAt`. */
|
|
181
|
+
updatedAt?: string;
|
|
182
|
+
origin: IFlexSessionImportSource;
|
|
183
|
+
parent?: IFlexSessionImportParent;
|
|
184
|
+
}
|
|
185
|
+
export interface IFlexSessionImportHandle {
|
|
186
|
+
importId: string;
|
|
187
|
+
scopeId: string;
|
|
188
|
+
sessionId: string;
|
|
189
|
+
}
|
|
190
|
+
export interface IFlexSessionImportStarted {
|
|
191
|
+
status: 'started';
|
|
192
|
+
handle: IFlexSessionImportHandle;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* A session with the same source, source id and part already exists. `already_imported` means its
|
|
196
|
+
* digest equals the requested one; `digest_mismatch` means the source changed since that import.
|
|
197
|
+
*/
|
|
198
|
+
export interface IFlexSessionImportExisting {
|
|
199
|
+
status: 'already_imported' | 'digest_mismatch';
|
|
200
|
+
session: IFlexSession;
|
|
201
|
+
}
|
|
202
|
+
export type TFlexBeginSessionImportResult = IFlexSessionImportStarted | IFlexSessionImportExisting;
|
|
203
|
+
/** One imported run: a user message and the assistant message that answered it. */
|
|
204
|
+
export interface IFlexImportedRun {
|
|
205
|
+
user: IFlexMessage;
|
|
206
|
+
assistant: IFlexMessage;
|
|
207
|
+
}
|
|
208
|
+
export interface IFlexSessionImportProgress {
|
|
209
|
+
runs: number;
|
|
210
|
+
messages: number;
|
|
211
|
+
bytes: number;
|
|
212
|
+
}
|
|
213
|
+
export interface IFlexSessionImportLimits {
|
|
214
|
+
/** Staged imports open at once in one FlexHarness. */
|
|
215
|
+
maxOpenImports?: number;
|
|
216
|
+
/** Messages in one imported session, two per run. */
|
|
217
|
+
maxMessagesPerSession?: number;
|
|
218
|
+
/** JSON bytes of all messages of one imported session. */
|
|
219
|
+
maxSessionBytes?: number;
|
|
220
|
+
/** JSON bytes of the runs one `appendImportedRuns()` call carries. */
|
|
221
|
+
maxPageBytes?: number;
|
|
222
|
+
/**
|
|
223
|
+
* Milliseconds a staged import may stay without an `appendImportedRuns()` call. An expired
|
|
224
|
+
* import is discarded as if it were aborted, which frees its slot and its staged memory.
|
|
225
|
+
*/
|
|
226
|
+
stagedImportIdleTimeoutMs?: number;
|
|
227
|
+
}
|
|
228
|
+
/** JSON bytes of one imported message; a larger message could not be read back whole. */
|
|
229
|
+
export declare const FLEX_SESSION_IMPORT_MAX_MESSAGE_BYTES: number;
|
|
230
|
+
export declare const FLEX_SESSION_IMPORT_MAX_DETAILS_BYTES: number;
|
|
231
|
+
export declare const FLEX_SESSION_IMPORT_MAX_DEPTH = 8;
|
|
232
|
+
export declare const FLEX_SESSION_IMPORT_DEFAULT_LIMITS: Readonly<{
|
|
233
|
+
maxOpenImports: 2;
|
|
234
|
+
maxMessagesPerSession: 2048;
|
|
235
|
+
maxSessionBytes: number;
|
|
236
|
+
maxPageBytes: number;
|
|
237
|
+
stagedImportIdleTimeoutMs: number;
|
|
238
|
+
}>;
|
|
239
|
+
export declare const FLEX_SESSION_IMPORT_MAXIMUM_LIMITS: Readonly<{
|
|
240
|
+
maxOpenImports: 64;
|
|
241
|
+
maxMessagesPerSession: 20000;
|
|
242
|
+
maxSessionBytes: number;
|
|
243
|
+
maxPageBytes: number;
|
|
244
|
+
stagedImportIdleTimeoutMs: number;
|
|
245
|
+
}>;
|
|
140
246
|
export interface IFlexCreateSessionOptions {
|
|
141
247
|
sessionId?: string;
|
|
142
248
|
sessionGenerationId?: string;
|
|
@@ -779,7 +885,28 @@ export interface IFlexAgentContextInvocation<TScope = unknown> {
|
|
|
779
885
|
readonly storageKey: string;
|
|
780
886
|
readonly sessionId: string;
|
|
781
887
|
}
|
|
888
|
+
/**
|
|
889
|
+
* The options a `contextCompactor` receives. `resolvedModel` and `modelHint` state the model the
|
|
890
|
+
* compacted work was dispatched on; when both are absent nothing dispatched states one and the
|
|
891
|
+
* host chooses the compaction model.
|
|
892
|
+
*/
|
|
782
893
|
export interface IFlexAgentContextCompactionOptions<TScope = unknown> extends plugins.IAgentContextCompactionOptions, IFlexAgentContextInvocation<TScope> {
|
|
894
|
+
/**
|
|
895
|
+
* Set when `reason` is `'context-overflow'`: the model the run whose context overflowed resolved
|
|
896
|
+
* and generates with, as `IFlexModelResolver.resolveModel()` returned it for that run. A
|
|
897
|
+
* delegated run's overflow carries the delegated run's own model.
|
|
898
|
+
*/
|
|
899
|
+
readonly resolvedModel?: Readonly<IFlexResolvedModel>;
|
|
900
|
+
/**
|
|
901
|
+
* Set when `reason` is `'manual'` and the compaction was requested with a model hint: the
|
|
902
|
+
* `modelHint` of the `/compact` slash command's execution options or of `compactSession()`.
|
|
903
|
+
* Resolve it as the model resolver resolves a prompt's `modelHint`.
|
|
904
|
+
*/
|
|
905
|
+
readonly modelHint?: string;
|
|
906
|
+
}
|
|
907
|
+
export interface IFlexCompactSessionOptions {
|
|
908
|
+
/** The model hint the compactor receives as `modelHint`. */
|
|
909
|
+
modelHint?: string;
|
|
783
910
|
}
|
|
784
911
|
export type TFlexAgentContextCompactor<TScope = unknown> = (messages: Parameters<plugins.TAgentContextCompactor>[0], events: Parameters<plugins.TAgentContextCompactor>[1], options: IFlexAgentContextCompactionOptions<TScope>) => ReturnType<plugins.TAgentContextCompactor>;
|
|
785
912
|
export interface IFlexAgentSessionPolicy<TScope = unknown> {
|
|
@@ -821,6 +948,7 @@ export interface IFlexHarnessOptions<TScope> {
|
|
|
821
948
|
callbackLimits?: IFlexCallbackLimits;
|
|
822
949
|
promptQueueLimits?: IFlexPromptQueueLimits;
|
|
823
950
|
reversionLimits?: IFlexReversionLimits;
|
|
951
|
+
sessionImportLimits?: IFlexSessionImportLimits;
|
|
824
952
|
/**
|
|
825
953
|
* Bounds each turn-reversion maintenance operation. Falls back to
|
|
826
954
|
* agentSessionPolicy.generationLeaseCleanupTimeoutMs, then 30 seconds.
|
package/dist_ts/interfaces.js
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
/** JSON bytes of one imported message; a larger message could not be read back whole. */
|
|
2
|
+
export const FLEX_SESSION_IMPORT_MAX_MESSAGE_BYTES = 480 * 1024;
|
|
3
|
+
export const FLEX_SESSION_IMPORT_MAX_DETAILS_BYTES = 16 * 1024;
|
|
4
|
+
export const FLEX_SESSION_IMPORT_MAX_DEPTH = 8;
|
|
5
|
+
export const FLEX_SESSION_IMPORT_DEFAULT_LIMITS = Object.freeze({
|
|
6
|
+
maxOpenImports: 2,
|
|
7
|
+
maxMessagesPerSession: 2048,
|
|
8
|
+
maxSessionBytes: 64 * 1024 * 1024,
|
|
9
|
+
maxPageBytes: 1024 * 1024,
|
|
10
|
+
stagedImportIdleTimeoutMs: 5 * 60 * 1000,
|
|
11
|
+
});
|
|
12
|
+
export const FLEX_SESSION_IMPORT_MAXIMUM_LIMITS = Object.freeze({
|
|
13
|
+
maxOpenImports: 64,
|
|
14
|
+
maxMessagesPerSession: 20_000,
|
|
15
|
+
maxSessionBytes: 256 * 1024 * 1024,
|
|
16
|
+
maxPageBytes: 1536 * 1024,
|
|
17
|
+
stagedImportIdleTimeoutMs: 60 * 60 * 1000,
|
|
18
|
+
});
|
|
1
19
|
export const FLEX_PROJECT_MANAGEMENT_SCHEMA_VERSION = 1;
|
|
2
20
|
export const FLEX_SESSION_GENERATION_ID_MAX_BYTES = 128;
|
|
3
21
|
export const FLEX_SESSION_GENERATION_COHORT_MAX_ENTRIES = 2048;
|
|
@@ -27,4 +45,4 @@ export const FLEX_REVERSION_MAX_AFFECTED_WORKSPACES = 64;
|
|
|
27
45
|
export const FLEX_REVERSION_WORKSPACE_ID_MAX_BYTES = 512;
|
|
28
46
|
export const FLEX_REVERSION_WORKSPACE_LABEL_MAX_BYTES = 2048;
|
|
29
47
|
export const FLEX_REVERSION_REASON_CODE_MAX_BYTES = 128;
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaVJBLHlGQUF5RjtBQUN6RixNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLHFDQUFxQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDL0QsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsQ0FBQyxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDOUQsY0FBYyxFQUFFLENBQUM7SUFDakIscUJBQXFCLEVBQUUsSUFBSTtJQUMzQixlQUFlLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJO0lBQ2pDLFlBQVksRUFBRSxJQUFJLEdBQUcsSUFBSTtJQUN6Qix5QkFBeUIsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUk7Q0FDekMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM5RCxjQUFjLEVBQUUsRUFBRTtJQUNsQixxQkFBcUIsRUFBRSxNQUFNO0lBQzdCLGVBQWUsRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUk7SUFDbEMsWUFBWSxFQUFFLElBQUksR0FBRyxJQUFJO0lBQ3pCLHlCQUF5QixFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSTtDQUMxQyxDQUFDLENBQUM7QUF3YUgsTUFBTSxDQUFDLE1BQU0sc0NBQXNDLEdBQUcsQ0FBVSxDQUFDO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUFHLEdBQUcsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSwwQ0FBMEMsR0FBRyxJQUFJLENBQUM7QUErQi9ELE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDMUQsWUFBWSxFQUFFLENBQUMsR0FBRyxJQUFJO0lBQ3RCLGtCQUFrQixFQUFFLEdBQUcsR0FBRyxJQUFJO0lBQzlCLG1CQUFtQixFQUFFLENBQUMsR0FBRyxJQUFJO0lBQzdCLGNBQWMsRUFBRSxHQUFHO0lBQ25CLFFBQVEsRUFBRSxHQUFHO0lBQ2IsYUFBYSxFQUFFLElBQUk7SUFDbkIsZ0JBQWdCLEVBQUUsSUFBSSxHQUFHLElBQUk7Q0FDOUIsQ0FBQyxDQUFDO0FBK0xILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDekQsaUJBQWlCLEVBQUUsR0FBRztJQUN0QixXQUFXLEVBQUUsR0FBRztJQUNoQixpQkFBaUIsRUFBRSxJQUFJO0lBQ3ZCLDJCQUEyQixFQUFFLElBQUk7Q0FDbEMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN6RCxpQkFBaUIsRUFBRSxJQUFJO0lBQ3ZCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGlCQUFpQixFQUFFLE1BQU07SUFDekIsMkJBQTJCLEVBQUUsTUFBTTtDQUNwQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO0FBQzdELE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxHQUFHLEVBQUUsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyxHQUFHLENBQUM7QUFDekQsTUFBTSxDQUFDLE1BQU0sd0NBQXdDLEdBQUcsSUFBSSxDQUFDO0FBQzdELE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUFHLEdBQUcsQ0FBQyJ9
|
package/dist_ts/utils.json.d.ts
CHANGED
|
@@ -2,6 +2,11 @@ import type { IFlexJsonLimits, IFlexPermissionSnapshot, IFlexProjectionSnapshotV
|
|
|
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
|
+
/**
|
|
6
|
+
* Asserts the exact stored shape of one public message: its keys, part kinds and field types.
|
|
7
|
+
* Throws `FlexHarnessStoreFormatError`.
|
|
8
|
+
*/
|
|
9
|
+
export declare function assertFlexMessageRecord(value: unknown, path: string): void;
|
|
5
10
|
export declare function assertFlexScopeSnapshot(value: unknown): asserts value is IFlexScopeSnapshot;
|
|
6
11
|
export declare function assertFlexProjectionSnapshotV1(value: unknown): asserts value is IFlexProjectionSnapshotV1;
|
|
7
12
|
export declare function assertFlexProjectionSnapshotV2(value: unknown): asserts value is IFlexProjectionSnapshotV2;
|