@robota-sdk/agent-session 3.2.1 → 3.2.3
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 +17 -0
- package/dist/index.cjs +2 -2
- package/dist/index.d.cts +63 -65
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +63 -65
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/node.d.cts +12 -12
- package/dist/node.d.ts +12 -12
- package/dist/node.js.map +1 -1
- package/dist/session-claims-DB4Q00_J.js.map +1 -1
- package/package.json +6 -6
package/dist/index.d.cts
CHANGED
|
@@ -63,7 +63,7 @@ declare class FileSessionLogger implements ISessionLogger {
|
|
|
63
63
|
private readonly sink;
|
|
64
64
|
private readonly options;
|
|
65
65
|
private readonly registerExitFlush;
|
|
66
|
-
/** Buffered hot-path lines, per session file. Keyed by session id
|
|
66
|
+
/** Buffered hot-path lines, per session file. Keyed by session id. */
|
|
67
67
|
private readonly pending;
|
|
68
68
|
private pendingBytes;
|
|
69
69
|
constructor(sink: ISessionLogSink, options?: IFileSessionLoggerOptions);
|
|
@@ -142,19 +142,19 @@ interface ICommandSandboxApproval {
|
|
|
142
142
|
autoApproves(toolName: string, shellCommand: string): boolean;
|
|
143
143
|
}
|
|
144
144
|
/**
|
|
145
|
-
* Permission handler result (
|
|
145
|
+
* Permission handler result (the union is OWNED by `agent-interface-session` as
|
|
146
146
|
* `TPermissionResultValue`; this name is the session-layer alias, not a second declaration):
|
|
147
147
|
* - true: allow this invocation
|
|
148
148
|
* - false: deny this invocation
|
|
149
149
|
* - 'allow-session': allow this invocation and auto-approve the CONSENT SCOPE — the pattern
|
|
150
|
-
* `consentScopeFor` projects from this invocation's argument
|
|
150
|
+
* `consentScopeFor` projects from this invocation's argument, e.g. `Bash(git *)` —
|
|
151
151
|
* for the rest of the session
|
|
152
152
|
* - 'allow-project': allow this invocation and persist that same scope pattern to the project's
|
|
153
153
|
* local settings; the storage location is owned by the consuming layer (via `onProjectAllowTool`)
|
|
154
154
|
*/
|
|
155
155
|
type TPermissionResult = TPermissionResultValue;
|
|
156
156
|
/**
|
|
157
|
-
*
|
|
157
|
+
* Context a caller MAY attach to a permission ask beyond the call itself.
|
|
158
158
|
*
|
|
159
159
|
* `requester` says WHO is asking, when it is not the person's own turn — a background agent's tool
|
|
160
160
|
* call forwarded to the person, say — so a surface can show "Background agent X wants to …" instead
|
|
@@ -182,7 +182,7 @@ interface IPermissionEnforcerOptions {
|
|
|
182
182
|
cwd: string;
|
|
183
183
|
getPermissionMode: () => TPermissionMode;
|
|
184
184
|
config: {
|
|
185
|
-
/** `ask` patterns always ask, in every mode including bypassPermissions
|
|
185
|
+
/** `ask` patterns always ask, in every mode including bypassPermissions. */
|
|
186
186
|
permissions: {
|
|
187
187
|
allow: string[];
|
|
188
188
|
deny: string[];
|
|
@@ -209,7 +209,7 @@ interface IPermissionEnforcerOptions {
|
|
|
209
209
|
/** The host's canonical spelling of a directory; absent, a path is compared as written. */
|
|
210
210
|
canonicalizePath?: (path: string) => string;
|
|
211
211
|
/**
|
|
212
|
-
*
|
|
212
|
+
* The rules BEFORE any preset contributed.
|
|
213
213
|
*
|
|
214
214
|
* Supplied by the composition root, never derived here. `config.permissions` already carries the
|
|
215
215
|
* STARTUP preset's patterns, so capturing a base from it on the first live `/preset` would keep
|
|
@@ -244,13 +244,13 @@ interface IPermissionEnforcerOptions {
|
|
|
244
244
|
/** Called when the user selects "allow for project" — persists the tool pattern to project settings. */
|
|
245
245
|
onProjectAllowTool?: (toolName: string) => void;
|
|
246
246
|
/**
|
|
247
|
-
*
|
|
247
|
+
* A background/subagent task permission policy. It adds a ceiling (checked before bypass),
|
|
248
248
|
* an ask-everything flag and the task's own lists to the one evaluator, so `deny`/`preapproved`/
|
|
249
249
|
* `inherit-allowlist` still bind under a permissive mode. Absent → no policy constraints.
|
|
250
250
|
*/
|
|
251
251
|
permissionPolicy?: TBackgroundPermissionPolicy;
|
|
252
252
|
/**
|
|
253
|
-
*
|
|
253
|
+
* The task's OWN declared allow/deny rules (distinct from the parent session's `config.permissions`
|
|
254
254
|
* which `inherit-allowlist` inherits). `preapproved` consults these.
|
|
255
255
|
*/
|
|
256
256
|
taskPermissions?: {
|
|
@@ -291,7 +291,7 @@ interface ISessionOptions {
|
|
|
291
291
|
/** Terminal I/O for permission prompts */
|
|
292
292
|
terminal: ITerminalOutput;
|
|
293
293
|
/**
|
|
294
|
-
* The session's execution root. REQUIRED
|
|
294
|
+
* The session's execution root. REQUIRED.
|
|
295
295
|
*
|
|
296
296
|
* This field did not exist. `Session` read `process.cwd()` in its constructor and that ambient
|
|
297
297
|
* value became the session's identity everywhere it matters: every hook input,
|
|
@@ -311,7 +311,7 @@ interface ISessionOptions {
|
|
|
311
311
|
ask?: string[];
|
|
312
312
|
};
|
|
313
313
|
/**
|
|
314
|
-
*
|
|
314
|
+
* The permission rules BEFORE any preset contributed.
|
|
315
315
|
*
|
|
316
316
|
* Passed rather than inferred. `permissions` above already has the startup preset's patterns baked
|
|
317
317
|
* in, so an enforcer that captured its own base from it on the first live `/preset` would keep the
|
|
@@ -327,27 +327,27 @@ interface ISessionOptions {
|
|
|
327
327
|
/** Initial permission mode */
|
|
328
328
|
permissionMode?: TPermissionMode;
|
|
329
329
|
/**
|
|
330
|
-
*
|
|
330
|
+
* Background/subagent task permission policy. Resolved BEFORE the session-mode gate, so
|
|
331
331
|
* `deny`/`preapproved`/`inherit-allowlist` override even a permissive `permissionMode`. Absent on a normal
|
|
332
332
|
* interactive session (mode gate alone). Set by `createSubagentSession` from the spawn request.
|
|
333
333
|
*/
|
|
334
334
|
permissionPolicy?: TBackgroundPermissionPolicy;
|
|
335
|
-
/**
|
|
335
|
+
/** The task's OWN allow/deny lists (what `preapproved` consults; distinct from `permissions`). */
|
|
336
336
|
taskPermissions?: {
|
|
337
337
|
allow?: readonly string[];
|
|
338
338
|
deny?: readonly string[];
|
|
339
339
|
};
|
|
340
340
|
/**
|
|
341
|
-
* Injected "ask the user" port
|
|
341
|
+
* Injected "ask the user" port: forwarded into the agent config so model-invoked tools
|
|
342
342
|
* (AskUserQuestion) can solicit a structured answer. Absent in headless/automation sessions.
|
|
343
343
|
*/
|
|
344
344
|
ask?: IUserInteraction['ask'];
|
|
345
345
|
/** Default trust level — used to derive permissionMode if not given */
|
|
346
346
|
defaultTrustLevel?: 'safe' | 'moderate' | 'full';
|
|
347
|
-
/** Active preset id selected at startup (
|
|
347
|
+
/** Active preset id selected at startup (runtime state). Defaults to 'default'. */
|
|
348
348
|
activePresetId?: string;
|
|
349
349
|
/**
|
|
350
|
-
* Whether subagent dispatch is allowed for this session (
|
|
350
|
+
* Whether subagent dispatch is allowed for this session (runtime gate). Defaults to
|
|
351
351
|
* true (current behavior). Only meaningful when the agent runtime was built at assembly.
|
|
352
352
|
*/
|
|
353
353
|
enableParallelSubagents?: boolean;
|
|
@@ -448,7 +448,7 @@ interface ISessionOptions {
|
|
|
448
448
|
/** Name reported to the ConversationAgent agent config. Defaults to 'agent' if not provided. */
|
|
449
449
|
agentName?: string;
|
|
450
450
|
/**
|
|
451
|
-
* Request structured output from the provider for this session
|
|
451
|
+
* Request structured output from the provider for this session: the agent config's
|
|
452
452
|
* own shape (`json_schema` included), so a schema request reaches the provider intact.
|
|
453
453
|
*/
|
|
454
454
|
responseFormat?: IResponseFormatConfig;
|
|
@@ -458,11 +458,11 @@ interface ISessionOptions {
|
|
|
458
458
|
*/
|
|
459
459
|
effort?: TModelEffortSelection;
|
|
460
460
|
/**
|
|
461
|
-
*
|
|
461
|
+
* Sampling temperature and output cap, threaded to the agent config at CONSTRUCTION.
|
|
462
462
|
*
|
|
463
463
|
* The live `/preset` path has always applied both through `applyModelOptions`, and startup applied
|
|
464
464
|
* neither — so one session held two answers for the same preset depending on WHEN it was chosen,
|
|
465
|
-
* which is what `effort` did
|
|
465
|
+
* which is what `effort` once did. `maxOutputTokens` maps to the
|
|
466
466
|
* agent's `maxTokens` channel, the same name `applyModelOptions` already writes.
|
|
467
467
|
*/
|
|
468
468
|
temperature?: number;
|
|
@@ -480,13 +480,13 @@ interface ISessionRunOptions {
|
|
|
480
480
|
/** Cancellation belongs to this submission and remains linked until execution settles. */
|
|
481
481
|
signal?: AbortSignal;
|
|
482
482
|
/**
|
|
483
|
-
*
|
|
483
|
+
* A transient system-role block for THIS turn's provider request only. Never
|
|
484
484
|
* written to the conversation store.
|
|
485
485
|
*/
|
|
486
486
|
ephemeralSystemContext?: string;
|
|
487
487
|
/**
|
|
488
|
-
*
|
|
489
|
-
* Never an authorization input
|
|
488
|
+
* Display attribution for the stored user message — who drove this turn.
|
|
489
|
+
* Never an authorization input.
|
|
490
490
|
*/
|
|
491
491
|
driverId?: string;
|
|
492
492
|
/** Where this turn came from, stored beside `driverId` on the user message. Display only. */
|
|
@@ -537,7 +537,7 @@ type TSessionExecutionResult = {
|
|
|
537
537
|
//#endregion
|
|
538
538
|
//#region src/turn-claim.d.ts
|
|
539
539
|
/**
|
|
540
|
-
* Thrown when a turn is started on a session that is already running one.
|
|
540
|
+
* Thrown when a turn is started on a session that is already running one.
|
|
541
541
|
*
|
|
542
542
|
* A distinct type rather than a bare `Error`, because the point of giving the session a claim is to
|
|
543
543
|
* let consumers STOP maintaining their own busy flags — and a consumer that has to regex-match an
|
|
@@ -550,7 +550,7 @@ declare class SessionBusyError extends Error {
|
|
|
550
550
|
constructor(message: string);
|
|
551
551
|
}
|
|
552
552
|
/**
|
|
553
|
-
* The identity of the turn a session is currently running.
|
|
553
|
+
* The identity of the turn a session is currently running.
|
|
554
554
|
*
|
|
555
555
|
* A session used to express "is something running?" as a bare `AbortController | null` field that
|
|
556
556
|
* `run()` overwrote on entry. That field was doing three jobs at once — cancellation channel, busy
|
|
@@ -598,8 +598,8 @@ declare class TurnClaim {
|
|
|
598
598
|
* This does NOT release the claim, and that is deliberate. An earlier version cleared it here, so
|
|
599
599
|
* `isRunning()` answered `false` the instant `abort()` returned — while the aborted turn was still
|
|
600
600
|
* unwinding, still able to write history and finish tool calls. A new `run()` could then claim the
|
|
601
|
-
* session and interleave with it: exactly the two-turns-on-one-session defect
|
|
602
|
-
*
|
|
601
|
+
* session and interleave with it: exactly the two-turns-on-one-session defect the claim
|
|
602
|
+
* prevents, just moved behind the abort boundary. Review of the first draft caught it.
|
|
603
603
|
*
|
|
604
604
|
* A turn is not over when it is asked to stop; it is over when it has stopped. The claim is
|
|
605
605
|
* therefore held until the owning turn's `finally` releases it, and until then `isRunning()` says
|
|
@@ -655,10 +655,9 @@ declare class CompactionOrchestrator {
|
|
|
655
655
|
* Run compaction — summarize the conversation to free context space.
|
|
656
656
|
* @param provider - The AI provider to use for summarization
|
|
657
657
|
* @param history - The messages to summarise. Must not be empty: whether there is anything worth
|
|
658
|
-
* compacting is the caller's judgement, made before it commits to replacing the conversation
|
|
659
|
-
* (CORE-031).
|
|
658
|
+
* compacting is the caller's judgement, made before it commits to replacing the conversation.
|
|
660
659
|
* @param instructions - Optional focus instructions for the summary
|
|
661
|
-
* @param signal - The turn's cancellation signal
|
|
660
|
+
* @param signal - The turn's cancellation signal. Checked before the provider call
|
|
662
661
|
* and again after it: an abort throws rather than returning, so the caller's existing
|
|
663
662
|
* leave-history-untouched path covers a cancel as well as a failure.
|
|
664
663
|
* @param hookTraceEnv - The prompt's trace for PreCompact's command hooks, only inside a prompt
|
|
@@ -705,7 +704,7 @@ declare class PermissionEnforcer {
|
|
|
705
704
|
private readonly hookTypeExecutors;
|
|
706
705
|
private readonly transcriptPath?;
|
|
707
706
|
/**
|
|
708
|
-
*
|
|
707
|
+
* Consent is remembered as PATTERNS (`consentScopeFor`), not tool names, and read
|
|
709
708
|
* back through the gate's own matcher — approving one argument does not allow every argument.
|
|
710
709
|
*/
|
|
711
710
|
private readonly sessionAllowedTools;
|
|
@@ -743,7 +742,7 @@ declare class PermissionEnforcer {
|
|
|
743
742
|
private configuredRules;
|
|
744
743
|
/**
|
|
745
744
|
* Whether the model is shown this tool at all. A bare-name deny (`Tool`, `Tool(*)`, a name glob)
|
|
746
|
-
* removes it rather than offering it and refusing every call
|
|
745
|
+
* removes it rather than offering it and refusing every call. Read live, so a
|
|
747
746
|
* `/preset` that denies a tool hides it from the next round.
|
|
748
747
|
*/
|
|
749
748
|
isToolVisible(toolName: string): boolean;
|
|
@@ -754,14 +753,14 @@ declare class PermissionEnforcer {
|
|
|
754
753
|
private registerToolParameters;
|
|
755
754
|
/** Wrap all tools with permission checking */
|
|
756
755
|
wrapTools(tools: IToolWithEventService[]): IToolWithEventService[];
|
|
757
|
-
/** The consent patterns granted this session via "Allow always" — e.g. `Bash(git *)
|
|
756
|
+
/** The consent patterns granted this session via "Allow always" — e.g. `Bash(git *)`. */
|
|
758
757
|
getSessionAllowedTools(): string[];
|
|
759
|
-
/** The calls this session refused, most recent first
|
|
758
|
+
/** The calls this session refused, most recent first. */
|
|
760
759
|
getRecentDenials(): readonly IPermissionDenial[];
|
|
761
760
|
/** Clear all session-scoped allow rules. */
|
|
762
761
|
clearSessionAllowedTools(): void;
|
|
763
762
|
/**
|
|
764
|
-
* Replace the configured permission rules on a LIVE session
|
|
763
|
+
* Replace the configured permission rules on a LIVE session.
|
|
765
764
|
*
|
|
766
765
|
* The seam is this small because `checkPermission` reads `this.config.permissions` on every call
|
|
767
766
|
* rather than snapshotting it at construction — so the next call sees the new rules and nothing
|
|
@@ -773,7 +772,7 @@ declare class PermissionEnforcer {
|
|
|
773
772
|
* executes, so such a call has already passed its gate, and a gate is a decision at a point in
|
|
774
773
|
* time. There is also no rollback for a partially applied tool — a file already written stays
|
|
775
774
|
* written — so a revocation that cannot undo is a stop, not a denial. Building one would rest on
|
|
776
|
-
* the cancellation path, which
|
|
775
|
+
* the cancellation path, which is declared at several layers and not yet honoured by a running tool.
|
|
777
776
|
*
|
|
778
777
|
* A newly applied denial DOES outrank an earlier "always allow": `evaluatePermission` answers
|
|
779
778
|
* `deny` before `promptForApproval` — the only reader of `sessionAllowedTools` — is reached. That
|
|
@@ -796,8 +795,8 @@ declare class PermissionEnforcer {
|
|
|
796
795
|
allowedTools?: readonly string[];
|
|
797
796
|
deniedTools?: readonly string[];
|
|
798
797
|
}): void;
|
|
799
|
-
/** Evaluate permission for a tool call. `signal`
|
|
800
|
-
* cancelled approval denies. */
|
|
798
|
+
/** Evaluate permission for a tool call. `signal` cancels a pending approval; see
|
|
799
|
+
* `decideApproval` for why a cancelled approval denies. */
|
|
801
800
|
checkPermission(toolName: string, toolArgs: TToolArgs, signal?: AbortSignal, interaction?: IToolExecutionContext['permissionInteraction'], hookTraceEnv?: IToolExecutionContext['hookTraceEnv']): Promise<boolean>;
|
|
802
801
|
/**
|
|
803
802
|
* Decide an action that has `toolName`'s effect but does not run through that tool — a command
|
|
@@ -817,7 +816,7 @@ declare class PermissionEnforcer {
|
|
|
817
816
|
*/
|
|
818
817
|
private promptForApproval;
|
|
819
818
|
/**
|
|
820
|
-
*
|
|
819
|
+
* Fire the PermissionDecision hook (informational-only, non-blocking) via the shared
|
|
821
820
|
* `runHooks` path. Fire-and-forget — the result is never awaited or consulted, so it cannot gate the
|
|
822
821
|
* permission outcome. The sole blocking gate remains PreToolUse (`runPreToolGate`).
|
|
823
822
|
*/
|
|
@@ -844,11 +843,11 @@ declare abstract class SessionBase {
|
|
|
844
843
|
protected abstract model: string;
|
|
845
844
|
protected abstract systemMessage: string;
|
|
846
845
|
protected abstract messageCount: number;
|
|
847
|
-
/**
|
|
846
|
+
/** The session's execution root — owned here, with the check that it was supplied. */
|
|
848
847
|
protected readonly cwd: string;
|
|
849
848
|
protected constructor(cwd: string);
|
|
850
849
|
/**
|
|
851
|
-
*
|
|
850
|
+
* The turn currently running, and its owner. Was a bare `AbortController | null` that
|
|
852
851
|
* `run()` overwrote, which is why `abort()` and `isRunning()` below could answer about a turn that
|
|
853
852
|
* was not the one in flight. See `turn-claim.ts`.
|
|
854
853
|
*/
|
|
@@ -859,21 +858,21 @@ declare abstract class SessionBase {
|
|
|
859
858
|
setPermissionMode(mode: TPermissionMode): void;
|
|
860
859
|
/** Register a synchronous policy check at the single session-mode mutation boundary. */
|
|
861
860
|
addPermissionModeGuard(guard: (next: TPermissionMode) => void): () => void;
|
|
862
|
-
/** Read the active preset id (
|
|
861
|
+
/** Read the active preset id (runtime state). */
|
|
863
862
|
getActivePresetId(): string;
|
|
864
863
|
/**
|
|
865
864
|
* Set the active preset id. PURE STATE — this only records which preset is active;
|
|
866
865
|
* it does not re-apply any preset options (permission/model/persona). Higher layers
|
|
867
|
-
* own re-application
|
|
866
|
+
* own re-application.
|
|
868
867
|
*/
|
|
869
868
|
setActivePresetId(id: string): void;
|
|
870
|
-
/** Whether subagent dispatch is currently allowed for this session (
|
|
869
|
+
/** Whether subagent dispatch is currently allowed for this session (runtime gate). */
|
|
871
870
|
getParallelSubagentsEnabled(): boolean;
|
|
872
871
|
/** Toggle subagent dispatch live. Only effective if the agent runtime was built at assembly. */
|
|
873
872
|
setParallelSubagentsEnabled(enabled: boolean): void;
|
|
874
873
|
getSessionId(): string;
|
|
875
874
|
/**
|
|
876
|
-
* The session's execution root
|
|
875
|
+
* The session's execution root.
|
|
877
876
|
*
|
|
878
877
|
* Readable because a caller that derives something FROM the session — a fork, a subagent, a hook
|
|
879
878
|
* input — must be able to ask which root this session actually runs in. Re-deriving it from
|
|
@@ -891,7 +890,7 @@ declare abstract class SessionBase {
|
|
|
891
890
|
*/
|
|
892
891
|
updateSystemMessage(newMessage: string): void;
|
|
893
892
|
/**
|
|
894
|
-
* Re-apply model options to the live session (
|
|
893
|
+
* Re-apply model options to the live session (model/effort re-application seam).
|
|
895
894
|
*
|
|
896
895
|
* Propagates model/effort/temperature/maxOutputTokens to the agent via `agent.setModel` so the
|
|
897
896
|
* next call reflects them, and updates `this.model` to keep `getModelId()` accurate. The preset
|
|
@@ -911,7 +910,7 @@ declare abstract class SessionBase {
|
|
|
911
910
|
/**
|
|
912
911
|
* Re-apply the agent's identity label to a LIVE session.
|
|
913
912
|
*
|
|
914
|
-
*
|
|
913
|
+
* A preset's `agentName` reached the agent only at construction, so
|
|
915
914
|
* starting with a preset set the name while switching to the SAME preset mid-session left the old
|
|
916
915
|
* one — one preset with two answers, decided by when it was chosen.
|
|
917
916
|
*
|
|
@@ -923,7 +922,7 @@ declare abstract class SessionBase {
|
|
|
923
922
|
getMessageCount(): number;
|
|
924
923
|
/** Get tools that have been session-approved (via "Allow always" choice). */
|
|
925
924
|
/**
|
|
926
|
-
*
|
|
925
|
+
* Re-apply a preset's tool lists to the live enforcer.
|
|
927
926
|
*
|
|
928
927
|
* The BASE it composes onto is the session's configured rules minus whatever a previous preset
|
|
929
928
|
* contributed — which is why the enforcer keeps the original: an allowlist REPLACES the preset
|
|
@@ -936,7 +935,7 @@ declare abstract class SessionBase {
|
|
|
936
935
|
}): void;
|
|
937
936
|
/**
|
|
938
937
|
* The rules this session's gate reads right now — settings, preset lists and command auto-allows
|
|
939
|
-
* together — so a subagent inherits what the parent actually enforces
|
|
938
|
+
* together — so a subagent inherits what the parent actually enforces. Session-scoped
|
|
940
939
|
* "allow always" consent is not included: it was given for this session's context.
|
|
941
940
|
*/
|
|
942
941
|
getPermissionRules(): {
|
|
@@ -960,7 +959,7 @@ declare abstract class SessionBase {
|
|
|
960
959
|
* denial.
|
|
961
960
|
*/
|
|
962
961
|
retryPermissionDenial(index: number): IPermissionDenial | undefined;
|
|
963
|
-
/** The calls this session refused, most recent first
|
|
962
|
+
/** The calls this session refused, most recent first. */
|
|
964
963
|
getRecentPermissionDenials(): readonly IPermissionDenial[];
|
|
965
964
|
clearSessionAllowedTools(): void;
|
|
966
965
|
/** Abort the currently running execution. No-op if nothing is running. */
|
|
@@ -979,7 +978,7 @@ declare abstract class SessionBase {
|
|
|
979
978
|
} | undefined;
|
|
980
979
|
getModelId(): string;
|
|
981
980
|
/**
|
|
982
|
-
* The tool schemas the model is offered at the next request
|
|
981
|
+
* The tool schemas the model is offered at the next request.
|
|
983
982
|
*
|
|
984
983
|
* The offered set, not the registered one: a deferred tool that has not been loaded is absent,
|
|
985
984
|
* because it is absent from the request. `/context` reads this to report what the tool schemas
|
|
@@ -1009,7 +1008,7 @@ declare abstract class SessionBase {
|
|
|
1009
1008
|
declare class Session extends SessionBase {
|
|
1010
1009
|
protected readonly agent: ConversationAgent;
|
|
1011
1010
|
/**
|
|
1012
|
-
*
|
|
1011
|
+
* Session-owned observable event bus. Injected into the agent so tools (incl. the
|
|
1013
1012
|
* `FunctionTool` span-completion emit) publish here; the interactive turn subscribes to it to
|
|
1014
1013
|
* project per-operation spans onto session history. Exposed read-only via {@link getEventService}.
|
|
1015
1014
|
*/
|
|
@@ -1059,9 +1058,9 @@ declare class Session extends SessionBase {
|
|
|
1059
1058
|
private readonly transcriptPath;
|
|
1060
1059
|
constructor(options: ISessionOptions);
|
|
1061
1060
|
/**
|
|
1062
|
-
* @param options.ephemeralSystemContext
|
|
1061
|
+
* @param options.ephemeralSystemContext a transient system-role block included in this
|
|
1063
1062
|
* turn's model call only, never persisted to history (thin pass-through to agent-core `IRunOptions`).
|
|
1064
|
-
* REJECTS with `SessionBusyError` if a turn is in flight
|
|
1063
|
+
* REJECTS with `SessionBusyError` if a turn is in flight; see `turn-claim.ts`.
|
|
1065
1064
|
*/
|
|
1066
1065
|
run(message: string, rawInput?: string, options?: ISessionRunOptions): Promise<string>;
|
|
1067
1066
|
/** Run with durable approval requests instead of a live approval Promise. */
|
|
@@ -1109,15 +1108,15 @@ declare class Session extends SessionBase {
|
|
|
1109
1108
|
listRuntimeTools(): Promise<IToolSchema[]>;
|
|
1110
1109
|
invokeRuntimeTool(name: string, parameters: TToolParameters, options?: IRuntimeToolInvokeOptions): Promise<IToolExecutionResult>;
|
|
1111
1110
|
/**
|
|
1112
|
-
*
|
|
1111
|
+
* The session-owned observable event bus the agent's tools publish to. The interactive
|
|
1113
1112
|
* turn subscribes to it to collect span-completion events and project them onto session history.
|
|
1114
1113
|
*/
|
|
1115
1114
|
getEventService(): IEventService;
|
|
1116
1115
|
private log;
|
|
1117
1116
|
private persistSessionInternal;
|
|
1118
1117
|
/**
|
|
1119
|
-
* Gracefully end the session and fire SessionEnd hooks once — **best-effort** (
|
|
1120
|
-
*
|
|
1118
|
+
* Gracefully end the session and fire SessionEnd hooks once — **best-effort** (disposal
|
|
1119
|
+
* convention): never rejects, so `void session.shutdown()` cannot become an
|
|
1121
1120
|
* unhandled rejection. Step failures are recorded to the session log and remaining steps
|
|
1122
1121
|
* still run.
|
|
1123
1122
|
*/
|
|
@@ -1143,7 +1142,7 @@ declare function formatConversationEntries(history: readonly TUniversalMessage[]
|
|
|
1143
1142
|
//#endregion
|
|
1144
1143
|
//#region src/session-artifact.d.ts
|
|
1145
1144
|
/**
|
|
1146
|
-
*
|
|
1145
|
+
* The envelope type and its version constant are the codec's (`session-record-codec/`).
|
|
1147
1146
|
* They used to be declared here as `ISessionArtifact` and a local constant, which was a second name
|
|
1148
1147
|
* and a second number for one shape — the envelope the codec decodes and the envelope this module
|
|
1149
1148
|
* writes were always the same `{ schemaVersion, record }`. Nothing on disk changed when they were
|
|
@@ -1170,11 +1169,11 @@ declare function deserializeSessionArtifact(bytes: string): IInteractiveSessionR
|
|
|
1170
1169
|
//#endregion
|
|
1171
1170
|
//#region src/scrub-sensitive.d.ts
|
|
1172
1171
|
/**
|
|
1173
|
-
*
|
|
1172
|
+
* The single source of the sensitive-key redaction (SSOT).
|
|
1174
1173
|
*
|
|
1175
1174
|
* The recursive secret-key scrub used to live privately in `session-logger.ts`, logging-coupled and not exported.
|
|
1176
1175
|
* It is extracted here so exactly ONE definition of "which keys are sensitive" exists, consumed by BOTH the file
|
|
1177
|
-
* session logger (persistence-time redaction) and the
|
|
1176
|
+
* session logger (persistence-time redaction) and the share-artifact `redact` transform (an opt-in
|
|
1178
1177
|
* the app composes). This utility is a pure, mechanism-level key scrub only: it carries NO field/trust-boundary
|
|
1179
1178
|
* policy (which of `cwd`/`sandboxSnapshotId`/… to strip is an app decision) and is NEVER forced into the
|
|
1180
1179
|
* full-fidelity local round-trip.
|
|
@@ -1198,7 +1197,7 @@ declare function scrubSensitiveKeys<T>(value: T, redactedValue?: string): T;
|
|
|
1198
1197
|
//#endregion
|
|
1199
1198
|
//#region src/session-log-events.d.ts
|
|
1200
1199
|
/**
|
|
1201
|
-
*
|
|
1200
|
+
* Typed contract for session-log event names + replay keys (SSOT).
|
|
1202
1201
|
*
|
|
1203
1202
|
* `FileSessionLogger` owns the `{ schemaVersion, timestamp, sessionId, event }` JSONL envelope.
|
|
1204
1203
|
* This module owns its version and event vocabulary; `session-log-codec` validates each payload
|
|
@@ -1227,7 +1226,7 @@ declare const SESSION_LOG_EVENT: {
|
|
|
1227
1226
|
readonly providerResponseRaw: "provider_response_raw";
|
|
1228
1227
|
readonly providerResponseNormalized: "provider_response_normalized";
|
|
1229
1228
|
/**
|
|
1230
|
-
*
|
|
1229
|
+
* Which transport actually carried a structured-output schema on this request, and
|
|
1231
1230
|
* whether the schema had to be stated in the prompt instead. Diagnostic, not replay substrate — a
|
|
1232
1231
|
* replay answers a `provider_request` from its recorded response, and this line explains why that
|
|
1233
1232
|
* request looked the way it did.
|
|
@@ -1451,7 +1450,7 @@ declare function isSealedSessionUnreadableError(error: unknown): error is Sealed
|
|
|
1451
1450
|
//#endregion
|
|
1452
1451
|
//#region src/checkpoint-tree.d.ts
|
|
1453
1452
|
/**
|
|
1454
|
-
*
|
|
1453
|
+
* Neutral checkpoint tree (branching time-travel).
|
|
1455
1454
|
*
|
|
1456
1455
|
* A pure, I/O-free branch-tree over opaque checkpoint-node ids — git-for-a-session with no file I/O,
|
|
1457
1456
|
* no persistence, and no retention/prune policy. It lives beside the storage-neutral persistence
|
|
@@ -1541,14 +1540,13 @@ type TSessionRecordDecodeOutcome = {
|
|
|
1541
1540
|
* not decode the members it recognises, because a partially decoded session is the silent
|
|
1542
1541
|
* field-loss this codec replaces.
|
|
1543
1542
|
*
|
|
1544
|
-
* ONE concept, not two
|
|
1543
|
+
* ONE concept, not two: the envelope `{ schemaVersion, record }` and the record it
|
|
1545
1544
|
* wraps version together — a change to either shape bumps this number, and every consumer of the
|
|
1546
1545
|
* envelope reads it: the portable session artifact (`serializeSessionArtifact`) and the session
|
|
1547
1546
|
* store (`NodeSessionStore.save`, `WorkspaceSessionStore`). Two constants would let an envelope-only
|
|
1548
1547
|
* change reject records that are fine, and the two shapes have never moved apart. The constant is
|
|
1549
|
-
* therefore named for the pair it versions, not for its first consumer:
|
|
1550
|
-
*
|
|
1551
|
-
* duplicate TRANS-005 introduced, and #2185 renamed it here — prerelease, so no alias.
|
|
1548
|
+
* therefore named for the pair it versions, not for its first consumer: it replaces the
|
|
1549
|
+
* `SESSION_ARTIFACT_SCHEMA_VERSION` name, and there is no alias.
|
|
1552
1550
|
*
|
|
1553
1551
|
* Its DECLARATION lives here rather than beside the artifact functions because `session-artifact.ts`
|
|
1554
1552
|
* imports this module; declaring it there and importing it back would be a module cycle. The export
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/context-window-tracker.ts","../src/session-logger.ts","../src/auto-mode-gate.ts","../src/permission-types.ts","../src/session-types.ts","../src/session-resume.ts","../src/session-recoverable.ts","../src/turn-claim.ts","../src/compaction-orchestrator.ts","../src/permission-denial-log.ts","../src/permission-enforcer.ts","../src/session-base.ts","../src/session.ts","../src/consent-scope.ts","../src/conversation-transcript.ts","../src/session-artifact.ts","../src/scrub-sensitive.ts","../src/session-log-events.ts","../src/session-log-entry-types.ts","../src/session-log-codec/index.ts","../src/external-payload-resolution-contracts.ts","../src/external-payload-resolver.ts","../src/session-log-validation.ts","../src/session-log-replay.ts","../src/session-id.ts","../src/load-session-for-update.ts","../src/sealed-session-refusal.ts","../src/checkpoint-tree.ts","../src/session-record-codec/decode-outcome.ts","../src/session-record-codec/record-decoder.ts"],"mappings":";;;;;cAca;KAED;cAEC;UACH;UACA;mBACS;UACT;EAGN,YAAA,eACA,2BACA,uBAAuB;;EAQzB,mBAAmB;;EAcnB,kBAAkB,kBAAkB;;EAWpC,SAAS;;EAKT,2BAA2B;;EAK3B,wBAAwB,sBAAsB;;;;;;;;;;EAa9C,kBAAkB,SAAS;;EAK3B;;;;;;;;;;UCAe;;EAEf,IAAI,mBAAmB,eAAe,MAAM;;;;;;;EAO5C;;;;;;;;cASW,6BAA6B;mBAQrB;mBAPF;mBACA;;mBAEA;UACT;EAGW,YAAA,MAAM,iBACvB,UAAS;EAUX,IAAI,mBAAmB,eAAe,MAAM;;EAuC5C;UAkBQ;UAaA;UAIA;;cASG,+BAA+B;EAC1C;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/context-window-tracker.ts","../src/session-logger.ts","../src/auto-mode-gate.ts","../src/permission-types.ts","../src/session-types.ts","../src/session-resume.ts","../src/session-recoverable.ts","../src/turn-claim.ts","../src/compaction-orchestrator.ts","../src/permission-denial-log.ts","../src/permission-enforcer.ts","../src/session-base.ts","../src/session.ts","../src/consent-scope.ts","../src/conversation-transcript.ts","../src/session-artifact.ts","../src/scrub-sensitive.ts","../src/session-log-events.ts","../src/session-log-entry-types.ts","../src/session-log-codec/index.ts","../src/external-payload-resolution-contracts.ts","../src/external-payload-resolver.ts","../src/session-log-validation.ts","../src/session-log-replay.ts","../src/session-id.ts","../src/load-session-for-update.ts","../src/sealed-session-refusal.ts","../src/checkpoint-tree.ts","../src/session-record-codec/decode-outcome.ts","../src/session-record-codec/record-decoder.ts"],"mappings":";;;;;cAca;KAED;cAEC;UACH;UACA;mBACS;UACT;EAGN,YAAA,eACA,2BACA,uBAAuB;;EAQzB,mBAAmB;;EAcnB,kBAAkB,kBAAkB;;EAWpC,SAAS;;EAKT,2BAA2B;;EAK3B,wBAAwB,sBAAsB;;;;;;;;;;EAa9C,kBAAkB,SAAS;;EAK3B;;;;;;;;;;UCAe;;EAEf,IAAI,mBAAmB,eAAe,MAAM;;;;;;;EAO5C;;;;;;;;cASW,6BAA6B;mBAQrB;mBAPF;mBACA;;mBAEA;UACT;EAGW,YAAA,MAAM,iBACvB,UAAS;EAUX,IAAI,mBAAmB,eAAe,MAAM;;EAuC5C;UAkBQ;UAaA;UAIA;;cASG,+BAA+B;EAC1C;;;;;UCnMe;WACN;WACA,UAAU;WACV;;UAGM;WACN;;WAEA;;;;;;;UAQM;EACf,SAAS,MAAM,iBAAiB,SAAS,cAAc,QAAQ;;;cAIpD;cACA;;KAGD;WACG;;WACA;WAAwB;WAAyB;;WACjD;WAA2B;WAAyB;;cAMtD;mBAOkB;UANrB;UACA;UACA;;mBAES;EAEY,YAAA,YAAY;;EAGzC;;EAKA;;EAMA,WAAW,kBAAkB,UAAU;;EAKvC,UAAU,kBAAkB,UAAU;EAIhC,MAAM,MAAM,iBAAiB,SAAS,cAAc,QAAQ;;;;;UCtDnD;;;;;EAKf,aAAa,kBAAkB;;;;;;;;;;;;;KAcrB,oBAAoB;;;;;;;;;;;;;;UAef;WACN,YAAY;WACZ,SAAS;WACT;;;;;;KAOC,sBACV,kBACA,UAAU,WACV,UAAU,0BACP,QAAQ;UAEI;WACN,iBAAiB;EAC1B;EACA;EACA,yBAAyB;EACzB;;IAEE;MAAe;MAAiB;MAAgB;;IAChD,QAAQ;;;;;;EAMV,iBAAiB;;;;;;EAMjB;;;;;EAKA,qBAAqB;;EAErB,oBAAoB;;;;;;;;;;EAUpB;IAA0B;IAA0B;;EACpD,UAAU;EACV,oBAAoB;EACpB,uBACE,UAAU,iBACV,kBACA,UAAU,cACP,QAAQ;EACb,gBAAgB;EAChB,mBAAmB;IACjB;IACA;IACA,WAAW;IACX;IACA;IACA;IACA,kBAAkB;IAClB;;IAEA,OAAO;;;EAGT,4BAA4B;;EAE5B;;EAEA,sBAAsB;;;;;;EAMtB,mBAAmB;;;;;EAKnB;IAAoB;IAA2B;;;;;;EAK/C,uBAAuB;;;;;UC5GR;EACf,SAAS;;;UAIM;WACN,iBAAiB;;EAE1B,OAAO;;EAEP,sBAAsB;;;;;;EAMtB,kBAAkB,OAAO,4BAA4B;;EAErD,UAAU;;EAEV,oBAAoB;;EAEpB;;EAEA,UAAU;;;;;;;;;;;;;;EAcV;;EAEA;IAAgB;IAAiB;IAAgB;;;;;;;;;;;EAUjD;IAA0B;IAA0B;;EACpD,QAAQ;;EAER,iBAAiB;;;;;;EAMjB,mBAAmB;;EAEnB;IAAoB;IAA2B;;;;;;EAK/C,MAAM;;EAEN;;EAEA;;;;;EAKA;;EAEA;;EAEA;;EAEA;;EAEA,eAAe;;EAEf;;EAEA;;EAEA,oBAAoB;;EAEpB,iBAAiB;;EAEjB,uBAAuB;;EAEvB,sBAAsB;;EAEtB,eAAe;;EAEf,mBAAmB;;EAEnB,mBAAmB,OAAO;;EAE1B,qBACE,UAAU,iBACV,kBACA,UAAU,cACP,QAAQ;;EAEb,mBAAmB;IACjB;IACA;IACA,WAAW;IACX;IACA;IACA;IACA,kBAAkB;IAClB;;IAEA,OAAO;;;EAGT,aAAa;;EAEb,kBAAkB,OAAO;;EAEzB;;;;;;EAMA;;;;;;;;EAQA;;EAEA;;EAEA,uBAAuB;;EAEvB,gBAAgB;;EAEhB;;;;;;;EAOA,4BAA4B;;;;;;EAM5B;;;;;;EAMA,qBAAqB;;;;;;EAMrB,oBAAoB;;EAEpB;;;;;EAKA,iBAAiB;;;;;EAKjB,SAAS;;;;;;;;;EAST;EACA;;;;;;;;UASe;;EAEf,mBAAmB;;EAEnB,SAAS;;;;;EAKT;;;;;EAKA;;EAEA;;EAEA,aAAa;;;;;;EAMb;;EAEA,eAAe;;UAGA;WACN;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;;;KCjSC,wBAAwB,KAClC;;;UCSe,sCAAsC;EACrD,kBAAkB;;KAER,mCAAmC,wBAC7C,KAAK;KACK;EACN;EAAqB;;EACrB;EAAmB,mBAAmB;;;;;;;;;;;;cCb/B,yBAAyB;;WAE3B;EAEG,YAAA;;;;;;;;;;;;;;;;;;;;;cAyBD;UACH;UACA;UACA;;MAGJ,WAAW;;;;;;;;;;EAaf,SAAS;;;;;;;;EAqBT,QAAQ,YAAY;;;;;;;;;;;;;;;EAsBpB;EAIA;;;;;;;;;cCtEW,wBAAwB;EACvB,YAAA;;;;;;;;cAYD;UASI;EACf;EACA;EACA;EACA,QAAQ;EACR;;;;;;EAMA;;EAEA,4BAA4B;;cAGjB;mBACM;mBACA;UACT;mBACS;mBACA;mBACA;mBACA;EAEL,YAAA,SAAS;EAarB,SAAS;;;;;;;;;;;;;;;EAkBH,QACJ,UAAU,aACV,SAAS,qBACT,uBACA,SAAS,aACT,UAAS,iBACT,eAAe,qBACf,mBAAmB,oBAClB;;UA+FK;;;;;;;;;;;KCnME;UAEK;WACN;;WAEA;WACA,QAAQ;;WAER;;WAEA;;;;cC2DE;mBACM;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;;;;;mBAKA;;mBAEA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;;UAET;UACA;mBACS;EAEL,YAAA,SAAS;;;;;EA0CrB,UAAU,mBAAmB;;EAM7B;;EAMA;;;;;EAQA,mBAAmB,gBAAgB;;UAW3B;;;;;;EAqBR,cAAc;;;;;UAeN;;EAgBR,UAAU,OAAO,0BAA0B;;EAqC3C;;EAKA,6BAA6B;;EAK7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BA;IACE;IACA;IACA;;EASF,qBAAqB;IACnB;IACA;;;;EAeI,gBACJ,kBACA,UAAU,WACV,SAAS,aACT,cAAa,gDACb,eAAe,wCACd;;;;;;;EAYG,uBACJ,kBACA,gBAAgB,iBAChB,SAAS,cACR;;UA0BW;UAkCA;UAkFA;;;;;;UA6CA;;;;;;UAkEN;;UA8BA;;UASA;;;;uBCvoBY;WACX;8BACmB,OAAO;8BACP,oBAAoB;8BACpB,gBAAgB;8BAChB,wBAAwB;qBACjC,gBAAgB;qBAChB;qBACA;8BACS;8BACA,YAAY;8BACZ,aAAa;qBACtB;qBACA;qBACA;;qBAEA;YAEV,YAAa;;;;;;qBAQH,WAAS;mBACX;EAEjB,qBAAqB;;EAKrB,kBAAkB,MAAM;;EAMxB,uBAAuB,QAAQ,MAAM;;EAMrC;;;;;;EASA,kBAAkB;;EAKlB;;EAKA,4BAA4B;EAI5B;;;;;;;;EAWA;EAIA;;;;;;;;;EAYA,oBAAoB;;;;;;;;EAad,kBAAkB;IACtB;IACA,SAAS;IACT;IACA;MACE;YAkBM,eAAe;;EAOzB,kBAAkB;;EAiBZ,sBAAsB,GAAG,QAAQ,cAAc,iBAAiB,QAAQ,KAAK,QAAQ;;;;;;;;;;;EAoBrF,eAAe,eAAe;EAIpC,kBAAkB;EAIlB;;;;;;;;;;EAaA,qBAAqB;IACnB;IACA;;;;;;;EAUF;IAAwB;IAAiB;IAAgB;;EAKzD;;;;;;;EAUA,oBACE,kBACA,gBAAgB,iBAChB,SAAS,cACR;;YAKO,qBAAqB,MAAM;;;;;;EAWrC,sBAAsB,gBAAgB;;EAKtC,uCAAuC;EAIvC;;EAKA;EAIA;EAIA,mBAAmB;;EAKnB;EAIA,2BAA2B;EAI3B,wBAAwB;EAIxB,cAAc;EAId,kBAAkB;EAIlB;IAA0B;IAAqB;;EAc/C;;;;;;;;EAWA,yBAAyB;;EAKzB,eAAe;EAIf;;EAKA,gBAAgB,OAAO;;EAMvB,cACE,gDACA,iBACA;IAAY;IAAqB;;;;;;EAUnC,iBAAiB,KAAK;EAKtB;;;;;cCrRW,gBAAgB;qBACR,OAAO;;;;;;qBAMP,cAAc;qBACd,oBAAoB;qBACpB,gBAAgB;YACzB,gBAAgB;YAChB;YACA;qBACS;YACT,YAAY;qBACH,aAAa;YACtB;YACA;YACA;mBACO;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;qBACE,wBAAwB;mBAC1B;mBACA;;mBAEA;;UAET;UACA;;UAEA;UASA;cAEI;UAGJ;UAIA;;UAEA;;mBAES;EAEL,YAAA,SAAS;;;;;;EA0Ff,IAAI,iBAAiB,mBAAmB,UAAU,qBAAqB;;EAK7E,eACE,iBACA,SAAS,+BACT,oBACC,QAAQ;UAOG;;EA0DR,OAAO,SAAS,wBAAwB;;EAK9C,kBAAkB,SAAS,mCAAmC,QAAQ;UAIxD;;EAuDd,uBAAuB;;;;;;EASvB,wBAAwB;;EA+BxB;UASQ;EAOR,2BAA2B;;EAS3B,oBAAoB,UAAU;;EAqC9B;UASQ;UAuBA;;;;;;;;;;;;EA6BR,SAAS,gBAAgB,0BAA0B;;UAwB3C;;UAUM;EASR,oBAAoB,QAAQ;EAK5B,kBACJ,cACA,YAAY,iBACZ,UAAU,4BACT,QAAQ;;;;;EAUX,mBAAmB;UAIX;UAIA;;;;;;;EAsBR,SAAS,UAAS,0BAA+B;EAyCjD,aACE,aAAa,aACb,eACA,UAAU;EAcN,QACJ,uBACA,UAAS,iBACT,SAAS,aACT,mBAAmB,oBAClB;;UAaW;UAmBN;;;;;iBCtqBM,gBAAgB,kBAAkB,UAAU;;;;;;;;iBCW5C,0BAA0B,kBAAkB;;;;;;;;;;UCrC3C;;;;;;EAMf,UAAU,QAAQ,gCAA8B;;;;;;iBAwBlC,yBACd,QAAQ,6BACR,UAAS;;;;;iBAcK,2BAA2B,gBAAgB;;;;;;;;;;;;;;KCvE/C;;;;;;;cAUC,uBAAqB;;iBAIlB,eAAe;;;;;iBA+Bf,mBAAmB,GAAG,OAAO,GAAG,yBAAiD;;;;;;;;;;;;;;;;;cC1CpF;;cAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuDD,+BAA+B,gCAAgC;;UAG1D;WACN;WACA;WACA;YACC;;;UAIK;WACN;WACA;;;UAIM;WACN;WACA;;;iBAIK,kBAAkB,cAAc,sBAC9C,MAAM,iBACN,MAAM,QACL,QAAQ;EAAoB,OAAO;;;;UC1FrB,yBAAyB,eAAe;EACvD;EACA;EACA;EACA;;;;KCEU;KAEP,cAAc,cAAc,wBAAwB;EAAqB,OAAO;;KACzE,2BACP;EAAkD,UAAU;MAC5D;EAAsC;EAA4B,SAAS;MAC3E;EAAiD,SAAS;MAC1D;EAA4C,SAAS;MACrD;EAA2C;EAA0B;MACrE;EACC;EACA;MAED;EAAkC;EAAsB;KACzD,cACE,QACE;cAWK,8BAA8B;WAChC,MAAM;WACN,iBAAiB;WACjB;EAGP,YAAA,MAAM,4BACN,iBAAiB,6BACjB;IAAW;IAAwB;;;;iBA2BvB,wBACd,kBACA;EAAW;IACV;;;KC9ES;UAeK;WACN,SAAS;WACT;WACA;;UAGM;WACN;WACA;WACA;WACA;WACA;;cAGE,yCAAyC;WAC3C,MAAM;WACN,UAAU,SAAS;EAG1B,YAAA,MAAM,uCACN,iBACA,WAAU,2CACV;;;;;;;;iBCDY,kCACd,gBACA,SAAS;;;UClCM;EACf;EAOA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA,QAAQ;;iBAGM,gCACd,kBAAkB,qBACjB;;;UCbc;EACf;EACA;EACA;EACA;EACA,UAAU;EACV,SAAS;EACT;EACA;EACA;;KAGU,yBAAyB,KAAK;WAC/B,wBAAwB;;iBASnB,sBACd,QAAQ,mBACR,UAAS,yBACR;iBA6Ba,wBACd,kBAAkB,qBACjB;;;;;;;;;;iBCvCa,gBAAgB;;iBAKhB,oBAAoB;;;;;;;;;;;;;;iBCrBpB,qBACd,OAAO,4BACP,aACC;;;;;;;;KCbS;;;;;;;;;;;;;;;;;;;;cAsCC,qCAAqC;WACvC;WACA;WACA,QAAQ;EAEL,YAAA,mBAAmB,QAAQ;;;;;;iBAYzB,+BACd,iBACC,SAAS;;;;;;;;;;;;;;;;;UChDK;EACf;;EAEA;;cAGW;mBACM;;mBAEA;UACT;;;;;;;SAQD,UAAU,OAAO,mBAAmB,oBAAoB;;;;;EAuB/D,cAAc;;;;;EAgBd,KAAK;;EAOL,OAAO;;EAMP;;EAKA;;;;;;;EAcA,UAAU;;EAaV,IAAI;;MAKA;;;;;;;;;;;;KC7FM;WACG;WAA0B,QAAQ;;WAElC;WACA,iBAAiB;WACjB;;WAEA;WAAgC;WAA4C;;;;;;;;;;;;;;;;;;;;;;;;cCW9E;;UAGI;EACf;EACA,QAAQ;;;;;;;;;cAUG;;;;;;;iBAgCG,+BAA+B,iBAAiB;;;;;;;;iBAuChD,wCACd,iBACC"}
|