@sema-agent/client-core 0.108.0 → 0.110.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.
Files changed (179) hide show
  1. package/CHANGELOG.md +294 -0
  2. package/README.md +77 -40
  3. package/dist/adapt/arms.js +41 -13
  4. package/dist/adapt/textStream.d.ts +2 -0
  5. package/dist/adapt/textStream.js +37 -16
  6. package/dist/adapter/activeRunSelfHeal.js +1 -1
  7. package/dist/adapter/downstream/eventToSdkMessage.js +11 -5
  8. package/dist/agentSession/engineAgentRegistryRead.js +2 -0
  9. package/dist/bashExitReading.d.ts +12 -0
  10. package/dist/bashExitReading.js +44 -0
  11. package/dist/checkpointRowVerdict.d.ts +1 -1
  12. package/dist/checkpointRowVerdict.js +4 -2
  13. package/dist/compensations.js +1 -1
  14. package/dist/declared/supportFloorDeclared.js +1 -1
  15. package/dist/displayUntrusted.js +132 -14
  16. package/dist/engineAgentAbsence.d.ts +2 -0
  17. package/dist/engineAgentAbsence.js +28 -0
  18. package/dist/engineErrorCodes.d.ts +7 -0
  19. package/dist/engineErrorCodes.js +7 -0
  20. package/dist/engineHealthFacts.d.ts +26 -0
  21. package/dist/engineHealthFacts.js +63 -4
  22. package/dist/engineInlineTaskStats.d.ts +4 -3
  23. package/dist/engineInlineTaskStats.js +18 -2
  24. package/dist/engineNoticeCodes.d.ts +138 -0
  25. package/dist/engineNoticeCodes.js +662 -55
  26. package/dist/engineRepoint.d.ts +140 -0
  27. package/dist/engineRepoint.js +285 -0
  28. package/dist/engineRowRef.js +2 -0
  29. package/dist/engineSessionMessages.d.ts +2 -1
  30. package/dist/engineSessionMessages.js +5 -0
  31. package/dist/errorSupplementRoles.js +5 -1
  32. package/dist/fleet/fleetProjection.js +3 -2
  33. package/dist/fleetTaskDesc.js +3 -3
  34. package/dist/generated/engineFactTables.d.ts +3 -0
  35. package/dist/generated/engineFactTables.js +18 -0
  36. package/dist/generated/engineNoticeTables.js +3 -0
  37. package/dist/generated/sdkFactTables.d.ts +1 -0
  38. package/dist/generated/sdkFactTables.js +4 -0
  39. package/dist/hitl/approvalAskers.d.ts +6 -0
  40. package/dist/hitl/approvalAskers.js +30 -0
  41. package/dist/hitl/approvalCardReasons.js +25 -4
  42. package/dist/hitl/approvalRequestFrameReading.d.ts +21 -0
  43. package/dist/hitl/approvalRequestFrameReading.js +90 -0
  44. package/dist/hitl/approvalResolution.d.ts +8 -1
  45. package/dist/hitl/approvalResolution.js +4 -0
  46. package/dist/hitl/approvalsFeed.js +1 -1
  47. package/dist/hitl/askGateWire.js +0 -2
  48. package/dist/hitl/askParkRowRouting.js +5 -2
  49. package/dist/hitl/automaticAnswerVerdict.d.ts +5 -2
  50. package/dist/hitl/automaticAnswerVerdict.js +18 -4
  51. package/dist/hitl/decisionConflict.d.ts +2 -1
  52. package/dist/hitl/decisionConflict.js +10 -4
  53. package/dist/hitl/decisionRefusal.js +1 -0
  54. package/dist/hitl/decisionSend.d.ts +3 -0
  55. package/dist/hitl/decisionSend.js +29 -11
  56. package/dist/hitl/editedApprovalAcceptance.d.ts +25 -0
  57. package/dist/hitl/editedApprovalAcceptance.js +26 -0
  58. package/dist/hitl/frameRouter.js +13 -19
  59. package/dist/hitl/gateLedger.d.ts +0 -4
  60. package/dist/hitl/gateLedger.js +0 -19
  61. package/dist/hitl/hitlBridge.d.ts +5 -0
  62. package/dist/hitl/hitlBridge.js +13 -9
  63. package/dist/hitl/hitlHostSurface.d.ts +1 -0
  64. package/dist/hitl/hitlHostSurface.js +7 -2
  65. package/dist/hitl/hostWithdrawal.d.ts +15 -0
  66. package/dist/hitl/hostWithdrawal.js +38 -0
  67. package/dist/hitl/livePendingAsk.js +17 -16
  68. package/dist/hitl/localAllowRule.js +2 -1
  69. package/dist/hitl/noAllowCause.d.ts +1 -1
  70. package/dist/hitl/noAllowCause.js +4 -2
  71. package/dist/hitl/parkExpiryJudgements.js +26 -1
  72. package/dist/hitl/parkOwnership.d.ts +2 -0
  73. package/dist/hitl/parkOwnership.js +48 -8
  74. package/dist/hitl/parkResolver.js +32 -16
  75. package/dist/hitl/parkedUnresumable.d.ts +13 -0
  76. package/dist/hitl/parkedUnresumable.js +80 -0
  77. package/dist/hitl/permissionRuleScope.d.ts +4 -0
  78. package/dist/hitl/permissionRuleScope.js +31 -0
  79. package/dist/hitl/persistedRulesWire.d.ts +2 -0
  80. package/dist/hitl/persistedRulesWire.js +13 -12
  81. package/dist/hitl/planReviewWire.js +14 -4
  82. package/dist/hitl/sessionAllowRoute.js +5 -4
  83. package/dist/hitl/sessionPolicyWire.js +6 -4
  84. package/dist/hitl/standingRows.d.ts +2 -5
  85. package/dist/hitl/standingRows.js +30 -15
  86. package/dist/hitl/toolApprovalWire.d.ts +42 -9
  87. package/dist/hitl/toolApprovalWire.js +267 -44
  88. package/dist/hooksWireCaps.js +35 -4
  89. package/dist/hostSettingsSource.js +2 -0
  90. package/dist/hostTurnSettings.d.ts +10 -4
  91. package/dist/hostTurnSettings.js +112 -5
  92. package/dist/i18n/messages.en.d.ts +251 -0
  93. package/dist/i18n/messages.en.js +254 -2
  94. package/dist/i18n/messages.zh.js +264 -2
  95. package/dist/index.d.ts +48 -12
  96. package/dist/index.js +29 -7
  97. package/dist/inheritEnvCapability.js +2 -0
  98. package/dist/inputAuthor.d.ts +16 -0
  99. package/dist/inputAuthor.js +44 -0
  100. package/dist/interruptRefusalNote.d.ts +2 -0
  101. package/dist/interruptRefusalNote.js +17 -0
  102. package/dist/liveModelCatalog.d.ts +2 -0
  103. package/dist/liveModelCatalog.js +21 -7
  104. package/dist/liveQuestionStore.d.ts +4 -1
  105. package/dist/liveQuestionStore.js +12 -3
  106. package/dist/localEngineJudge.d.ts +75 -0
  107. package/dist/localEngineJudge.js +242 -0
  108. package/dist/localEngineOccupancy.d.ts +88 -0
  109. package/dist/localEngineOccupancy.js +269 -0
  110. package/dist/localEngineSeatReading.d.ts +29 -0
  111. package/dist/localEngineSeatReading.js +294 -0
  112. package/dist/localEngineSpawn.d.ts +113 -0
  113. package/dist/localEngineSpawn.js +486 -0
  114. package/dist/localEngineStep.d.ts +286 -0
  115. package/dist/localEngineStep.js +1086 -0
  116. package/dist/localEngineStopLadder.d.ts +29 -0
  117. package/dist/localEngineStopLadder.js +139 -0
  118. package/dist/localEngineSwapCard.d.ts +43 -0
  119. package/dist/localEngineSwapCard.js +205 -0
  120. package/dist/localEngineTiming.d.ts +8 -0
  121. package/dist/localEngineTiming.js +8 -0
  122. package/dist/mcpEngineLeg.d.ts +3 -0
  123. package/dist/mcpEngineLeg.js +38 -1
  124. package/dist/mcpPanel.js +2 -0
  125. package/dist/mcpReconnect.d.ts +9 -1
  126. package/dist/mcpReconnect.js +132 -20
  127. package/dist/mcpWireCaps.js +2 -2
  128. package/dist/memoryEntriesWire.d.ts +1 -1
  129. package/dist/memoryEntriesWire.js +5 -0
  130. package/dist/modelCapabilityProbe.js +4 -3
  131. package/dist/modsFace.d.ts +8 -1
  132. package/dist/modsFace.js +27 -0
  133. package/dist/noticePresentation.d.ts +2 -0
  134. package/dist/noticePresentation.js +79 -1
  135. package/dist/notifications.d.ts +17 -6
  136. package/dist/notifications.js +67 -19
  137. package/dist/ownKey.d.ts +5 -0
  138. package/dist/ownKey.js +8 -1
  139. package/dist/peerFrames.d.ts +40 -2
  140. package/dist/peerFrames.js +158 -3
  141. package/dist/pluginHooksWire.d.ts +2 -1
  142. package/dist/pluginHooksWire.js +56 -1
  143. package/dist/replayBody.js +10 -2
  144. package/dist/request/taskRequest.d.ts +5 -0
  145. package/dist/request/taskRequest.js +138 -21
  146. package/dist/resumeRefusalCopy.d.ts +1 -3
  147. package/dist/resumeRefusalCopy.js +2 -1
  148. package/dist/retryStatus.d.ts +2 -2
  149. package/dist/retryStatus.js +2 -0
  150. package/dist/ruleReadings.js +1 -1
  151. package/dist/seam.d.ts +24 -2
  152. package/dist/seam.js +15 -2
  153. package/dist/seatContract.d.ts +125 -10
  154. package/dist/seatContract.js +373 -7
  155. package/dist/sessionBackground.js +4 -1
  156. package/dist/sessionBackgroundHandoff.js +2 -1
  157. package/dist/sessionEngine.d.ts +2 -0
  158. package/dist/sessionEngine.js +111 -0
  159. package/dist/sessionMemoryStatus.d.ts +2 -1
  160. package/dist/sessionSyncFileHistory.d.ts +4 -0
  161. package/dist/sessionSyncFileHistory.js +28 -0
  162. package/dist/sseIdleTriage.d.ts +13 -1
  163. package/dist/sseIdleTriage.js +24 -6
  164. package/dist/subagent/engineSubagentTail.js +6 -0
  165. package/dist/subagentContentStore.d.ts +12 -0
  166. package/dist/subagentContentStore.js +72 -11
  167. package/dist/terminalStatuses.d.ts +1 -0
  168. package/dist/terminalStatuses.js +4 -1
  169. package/dist/toolResult.js +18 -5
  170. package/dist/turnFailurePresentation.js +9 -2
  171. package/dist/typePins.d.ts +11 -0
  172. package/dist/usageAnalytics.d.ts +17 -0
  173. package/dist/usageAnalytics.js +44 -2
  174. package/dist/wireFailureShape.d.ts +22 -5
  175. package/dist/wireFailureShape.js +47 -26
  176. package/dist/wireRefusalCopy.d.ts +31 -1
  177. package/dist/wireRefusalCopy.js +167 -2
  178. package/docs/INTEGRATION-CLIENTS.md +3269 -21
  179. package/package.json +5 -5
@@ -3,7 +3,9 @@ import type { PermissionMode } from "./permissionWireCaps.js";
3
3
  import type { ChromeArmKind, LaneProof } from "./seam.js";
4
4
  import type { SeatTurnFailure } from "./turnFailurePresentation.js";
5
5
  import type { QuestionAnswer } from "./liveQuestionStore.js";
6
- import type { ToolApprovalDelegation } from "./hitl/toolApprovalWire.js";
6
+ import type { ApprovalInputSource, ToolApprovalDelegation } from "./hitl/toolApprovalWire.js";
7
+ import type { ApprovalRequestedBy } from "./hitl/approvalAskers.js";
8
+ import type { ApprovalRequestFrameUnreadableWhy } from "./hitl/approvalRequestFrameReading.js";
7
9
  import type { ApprovalMandateWord } from "./gateVocabulary.js";
8
10
  import type { ModelApiWord } from "./model/providerPresets.js";
9
11
  import type { LiveModelCatalog } from "./liveModelCatalog.js";
@@ -12,10 +14,14 @@ import { type ProbeVerdictWord } from "./modelCapabilityProbe.js";
12
14
  import type { SubagentContentEvent } from "./subagentContentStore.js";
13
15
  import type { DeviceEnrollTokenOutcome, DeviceListOutcome, DeviceRebindOutcome, DeviceRevokeOutcome, DeviceSessionBindingOutcome, DeviceTransport, DeviceUnarmed, DeviceUnreadable } from "./deviceRebind.js";
14
16
  import type { McpPanelView } from "./mcpPanel.js";
17
+ import type { WiringManifestModView } from "./adapter/downstream/eventToSdkMessage.js";
15
18
  import type { McpToolToggleKey } from "./mcpToolToggles.js";
16
19
  import { type ThinkingLatchEvent, type ThinkingLatchRowWord } from "./thinkingLatchWords.js";
17
20
  import type { SessionRowPatchFields, SessionRowUnreadable } from "./sessionRowTag.js";
18
21
  import { type SessionEngineKind, type SessionEngineView } from "./sessionEngine.js";
22
+ import type { ParkedUnresumableRow } from "./hitl/parkedUnresumable.js";
23
+ import { type EngineSwapCard } from "./localEngineSwapCard.js";
24
+ import type { ToolPermissionSettledElsewhere } from "./hitl/approvalResolution.js";
19
25
  export interface SeatValidationFailure {
20
26
  reason: string;
21
27
  field?: string;
@@ -56,6 +62,7 @@ export interface LocalSessionRecord {
56
62
  thinkingLatch?: ThinkingLatchRowWord;
57
63
  engine?: SessionEngineView;
58
64
  executionLane?: string;
65
+ parkedUnresumable?: readonly ParkedUnresumableRow[];
59
66
  }
60
67
  export declare const TOOL_PERMISSION_REQUEST_ID_DOMAINS: readonly ["live:", "durable:", "question:", "elicit:", "plan:"];
61
68
  export type ToolPermissionRequestIdDomain = (typeof TOOL_PERMISSION_REQUEST_ID_DOMAINS)[number];
@@ -84,6 +91,12 @@ export interface ToolPermissionRequest {
84
91
  askClass?: string;
85
92
  classes?: readonly string[];
86
93
  sessionRow?: true;
94
+ probeReason?: string;
95
+ probeCause?: object;
96
+ feedbackCapable?: true;
97
+ requestedBy?: ApprovalRequestedBy;
98
+ frameReading?: ApprovalRequestFrameUnreadableWhy;
99
+ inputSource?: ApprovalInputSource;
87
100
  }
88
101
  declare const SEAT_EVENT_TYPE_TUPLE: readonly ["start", "close", "session_updated", "message", "stream_event", "chrome_event", "error", "tool_permission_resolved", "subagent_content"];
89
102
  export type SeatEventType = (typeof SEAT_EVENT_TYPE_TUPLE)[number];
@@ -106,6 +119,8 @@ declare const CHROME_ARM_SEAT_ROUTE: {
106
119
  readonly compaction_started: "seat";
107
120
  readonly compaction_outcome: "seat";
108
121
  readonly engine_notice: "seat";
122
+ readonly subagent_alias: "seat";
123
+ readonly session_box_notice: "seat";
109
124
  readonly workflow_notification_enqueue: "host";
110
125
  readonly plan_review_park: "host";
111
126
  readonly approval_request: "host";
@@ -201,7 +216,7 @@ export type SeatStreamReading = {
201
216
  };
202
217
  export declare function seatStreamDeltaMessage(event: SeatStreamDeltaSource, ids: SeatStreamDeltaIds): SeatStreamEventMessage | undefined;
203
218
  export declare function readSeatStreamDelta(message: object): SeatStreamReading;
204
- export declare const SEAT_CAPABILITY_NAMES: readonly ["pickFolder", "rewind", "recents", "patchSession", "devices", "engineTarget", "onboard", "mcpToolToggles", "thinkingLatch", "computerUseSwitch", "engineModeDefaultOnly", "seatActions"];
219
+ export declare const SEAT_CAPABILITY_NAMES: readonly ["pickFolder", "rewind", "recents", "patchSession", "devices", "engineTarget", "onboard", "mcpToolToggles", "thinkingLatch", "computerUseSwitch", "engineModeDefaultOnly", "seatActions", "notificationLevels", "modsView"];
205
220
  export type SeatCapabilityName = (typeof SEAT_CAPABILITY_NAMES)[number];
206
221
  export interface SeatCapabilitiesState {
207
222
  pickFolder?: boolean;
@@ -216,6 +231,8 @@ export interface SeatCapabilitiesState {
216
231
  computerUseSwitch?: boolean;
217
232
  engineModeDefaultOnly?: boolean;
218
233
  seatActions?: boolean;
234
+ notificationLevels?: boolean;
235
+ modsView?: boolean;
219
236
  }
220
237
  export type SeatCapabilityReading = {
221
238
  readonly kind: "reported";
@@ -281,6 +298,9 @@ export declare const SEAT_TURN_SETTINGS_ORIGINS: Readonly<{
281
298
  outputStyle: Readonly<{
282
299
  hostSupplied: "settings.outputStyle";
283
300
  }>;
301
+ env: Readonly<{
302
+ hostSupplied: "settings.env";
303
+ }>;
284
304
  }>;
285
305
  export interface SeatRewindIntent {
286
306
  mode: RewindMode;
@@ -344,6 +364,7 @@ export interface ToolPermissionDecision {
344
364
  answer?: QuestionAnswer;
345
365
  updatedInput?: unknown;
346
366
  remember?: "session";
367
+ feedback?: string;
347
368
  }
348
369
  export interface EipcStoreClient<T> {
349
370
  getState(): Promise<T>;
@@ -379,6 +400,9 @@ export interface StopAck {
379
400
  export interface OkAck {
380
401
  ok: boolean;
381
402
  }
403
+ export interface ToolPermissionAck extends OkAck {
404
+ settledElsewhere?: ToolPermissionSettledElsewhere;
405
+ }
382
406
  export interface SessionsState {
383
407
  sessions: LocalSessionRecord[];
384
408
  }
@@ -478,9 +502,40 @@ export type SeatLocalMcpReading = {
478
502
  readAt: string;
479
503
  restartRequired?: true;
480
504
  };
505
+ export declare const LOCAL_ENGINE_DOWN_REASONS: readonly ["lock-unavailable", "spawn-failed", "spawn-refused", "stop-failed", "crash-loop", "high-water-unreadable", "principal-unknown"];
506
+ export type LocalEngineDownReason = (typeof LOCAL_ENGINE_DOWN_REASONS)[number];
507
+ export declare const LOCAL_ENGINE_WAITING_REASONS: readonly ["starting", "dormant", "draining", "unanswered", "peer"];
508
+ export type LocalEngineWaitingReason = (typeof LOCAL_ENGINE_WAITING_REASONS)[number];
509
+ export type LocalEngineSeatReading = {
510
+ phase: "waiting";
511
+ why: LocalEngineWaitingReason;
512
+ unverifiable?: true;
513
+ } | {
514
+ phase: "attached";
515
+ } | {
516
+ phase: "pending";
517
+ serving: boolean;
518
+ card?: EngineSwapCard;
519
+ } | {
520
+ phase: "swapping";
521
+ mode: "idle" | "forced";
522
+ } | {
523
+ phase: "down";
524
+ reason: LocalEngineDownReason;
525
+ } | {
526
+ phase: "behind";
527
+ running: string;
528
+ own: string;
529
+ upgrade: "available" | "unavailable";
530
+ };
531
+ export declare const ENGINE_SWAP_ANSWER_OUTCOMES: readonly ["started", "stale-card", "nothing-pending"];
532
+ export type EngineSwapAnswerOutcome = (typeof ENGINE_SWAP_ANSWER_OUTCOMES)[number];
533
+ export declare const SELF_UPGRADE_OUTCOMES: readonly ["started", "unavailable"];
534
+ export type SelfUpgradeOutcome = (typeof SELF_UPGRADE_OUTCOMES)[number];
481
535
  export interface EngineTargetLocal {
482
536
  lastBootError?: string;
483
537
  mcp?: SeatLocalMcpReading;
538
+ lifecycle: LocalEngineSeatReading;
484
539
  }
485
540
  export interface EngineTargetState {
486
541
  mode: "local" | "cloud";
@@ -611,6 +666,9 @@ export interface OnboardProvidersResult {
611
666
  }
612
667
  export declare const checkOnboardEntryRequest: (v: unknown) => SeatValidation;
613
668
  export declare const checkOnboardApplyRequest: (v: unknown) => SeatValidation;
669
+ export interface SessionModsView {
670
+ readonly rows: readonly WiringManifestModView[];
671
+ }
614
672
  export declare const checkMcpToolToggleKey: (v: unknown) => SeatValidation;
615
673
  export interface McpToolTogglesResult {
616
674
  off: McpToolToggleKey[];
@@ -651,6 +709,33 @@ export type SetComputerUsePlan = {
651
709
  readonly reason: Exclude<ComputerUseRefusalReason, "write-failed">;
652
710
  };
653
711
  export declare function planSetComputerUse(request: {} | null | undefined, lockedByEnv: boolean): SetComputerUsePlan;
712
+ export declare const NOTIFICATION_LEVEL_TYPES: readonly ["permission", "question", "idle"];
713
+ export type NotificationLevelType = (typeof NOTIFICATION_LEVEL_TYPES)[number];
714
+ export declare const NOTIFICATION_LEVELS: readonly ["off", "badge", "banner"];
715
+ export type NotificationLevel = (typeof NOTIFICATION_LEVELS)[number];
716
+ export declare const NOTIFICATION_LEVEL_REFUSAL_REASONS: readonly ["invalid-request", "unsupported-level", "write-failed"];
717
+ export type NotificationLevelRefusalReason = (typeof NOTIFICATION_LEVEL_REFUSAL_REASONS)[number];
718
+ export interface NotificationLevelsState {
719
+ levels: Record<NotificationLevelType, NotificationLevel>;
720
+ supported: NotificationLevel[];
721
+ }
722
+ export type SetNotificationLevelResult = {
723
+ ok: true;
724
+ state: NotificationLevelsState;
725
+ } | {
726
+ ok: false;
727
+ reason: NotificationLevelRefusalReason;
728
+ state: NotificationLevelsState;
729
+ };
730
+ export type SetNotificationLevelPlan = {
731
+ readonly kind: "apply";
732
+ readonly type: NotificationLevelType;
733
+ readonly level: NotificationLevel;
734
+ } | {
735
+ readonly kind: "refused";
736
+ readonly reason: Exclude<NotificationLevelRefusalReason, "write-failed">;
737
+ };
738
+ export declare function planSetNotificationLevel(type: {} | null | undefined, level: {} | null | undefined, supported: readonly NotificationLevel[]): SetNotificationLevelPlan;
654
739
  export declare const SEAT_ACTION_NAMES: readonly ["new-project", "prefill-composer"];
655
740
  export type SeatActionName = (typeof SEAT_ACTION_NAMES)[number];
656
741
  export type SeatAction = {
@@ -682,7 +767,7 @@ export interface LocalSessionsApi {
682
767
  sendMessage(req: SendMessageRequest): Promise<SendMessageAck>;
683
768
  interrupt(req: SessionScopedRequest): Promise<InterruptAck>;
684
769
  stop(req: SessionScopedRequest): Promise<StopAck>;
685
- respondToToolPermission(req: ToolPermissionDecision): Promise<OkAck>;
770
+ respondToToolPermission(req: ToolPermissionDecision): Promise<ToolPermissionAck>;
686
771
  cancelQueuedMessage(sessionId: string, userMessageUuid: string): Promise<boolean>;
687
772
  reorderQueuedMessage(sessionId: string, userMessageUuid: string, targetUserMessageUuid: string): Promise<boolean>;
688
773
  promoteQueuedMessage(sessionId: string, userMessageUuid: string): Promise<boolean>;
@@ -708,6 +793,8 @@ export interface LocalSessionsApi {
708
793
  connectCloudEngine(req: CloudEngineConnectRequest): Promise<CloudConnectResult>;
709
794
  configureCloudEngine(req: CloudEngineConfigureRequest): Promise<CloudConnectResult>;
710
795
  clearCloudEngine(): Promise<EngineTargetResult>;
796
+ answerEngineSwap(choice: "force" | "wait", fingerprint: string): Promise<EngineSwapAnswerOutcome>;
797
+ beginSelfUpgrade(): Promise<SelfUpgradeOutcome>;
711
798
  listOnboardProviders(): Promise<OnboardProvidersResult>;
712
799
  probeOnboardEntry(req: OnboardEntryRequest): Promise<OnboardProbeResult>;
713
800
  applyOnboardEntry(req: OnboardApplyRequest): Promise<OnboardApplyResult>;
@@ -717,7 +804,10 @@ export interface LocalSessionsApi {
717
804
  setThinkingLatch(req: SetThinkingLatchRequest): Promise<OkAck>;
718
805
  getComputerUse(): Promise<ComputerUseState>;
719
806
  setComputerUse(req: SetComputerUseRequest): Promise<SetComputerUseResult>;
807
+ getNotificationLevels(): Promise<NotificationLevelsState>;
808
+ setNotificationLevel(type: NotificationLevelType, level: NotificationLevel): Promise<SetNotificationLevelResult>;
720
809
  claimSeatActions(req: SeatActionsClaim): Promise<OkAck>;
810
+ readSessionMods(sessionId: string): Promise<SessionModsView | DeviceUnreadable | DeviceUnarmed>;
721
811
  onEvent(cb: (ev: LocalSessionEvent) => void): () => void;
722
812
  onToolPermissionRequest(cb: (req: ToolPermissionRequest) => void): () => void;
723
813
  onSeatAction(cb: (action: SeatAction) => void): () => void;
@@ -728,6 +818,7 @@ export interface LocalSessionsApi {
728
818
  engineTargetStateStore: EipcStoreClient<EngineTargetState>;
729
819
  }
730
820
  export declare function isLocalSessionRecord(s: unknown): s is LocalSessionRecord;
821
+ export declare function readSeatParkedUnresumable(record: object): readonly ParkedUnresumableRow[] | undefined;
731
822
  export declare function isToolPermissionRequest(r: unknown): r is ToolPermissionRequest;
732
823
  export declare function readSeatSubagentContent(event: object): SubagentContentEvent | undefined;
733
824
  export declare function isLocalSessionEvent(v: unknown): v is LocalSessionEvent;
@@ -765,13 +856,14 @@ export declare function isSetThinkingLatchRequest(v: unknown): v is SetThinkingL
765
856
  export declare const checkStartSessionOptions: (v: unknown) => SeatValidation;
766
857
  export declare const checkSeatResourceScope: (v: unknown) => SeatValidation;
767
858
  export declare function isSendMessageAck(v: unknown): v is SendMessageAck;
859
+ export declare function readToolPermissionSettledElsewhere(ack: object | null | undefined): ToolPermissionSettledElsewhere | undefined;
768
860
  export declare const LOCAL_SESSIONS_SPEC: EipcServiceSpec;
769
- export declare const SEAT_METHOD_NAMES: readonly ["start", "sendMessage", "interrupt", "stop", "respondToToolPermission", "cancelQueuedMessage", "reorderQueuedMessage", "promoteQueuedMessage", "setFocusedSession", "setModel", "getTranscript", "searchSessions", "uploadAttachment", "listModels", "applyModelConfig", "pickFolder", "listRecentFolders", "noteRecentFolder", "patchSession", "listDevices", "readSessionBinding", "rebindSession", "issueEnrollToken", "revokeDevice", "setEngineMode", "startCloudLogin", "cancelCloudLogin", "connectCloudEngine", "configureCloudEngine", "clearCloudEngine", "listOnboardProviders", "probeOnboardEntry", "applyOnboardEntry", "readSessionMcpPanel", "listMcpToolToggles", "setMcpToolToggle", "setThinkingLatch", "getComputerUse", "setComputerUse", "claimSeatActions", "onEvent", "onToolPermissionRequest", "onSeatAction"];
861
+ export declare const SEAT_METHOD_NAMES: readonly ["start", "sendMessage", "interrupt", "stop", "respondToToolPermission", "cancelQueuedMessage", "reorderQueuedMessage", "promoteQueuedMessage", "setFocusedSession", "setModel", "getTranscript", "searchSessions", "uploadAttachment", "listModels", "applyModelConfig", "pickFolder", "listRecentFolders", "noteRecentFolder", "patchSession", "listDevices", "readSessionBinding", "rebindSession", "issueEnrollToken", "revokeDevice", "setEngineMode", "startCloudLogin", "cancelCloudLogin", "connectCloudEngine", "configureCloudEngine", "clearCloudEngine", "answerEngineSwap", "beginSelfUpgrade", "listOnboardProviders", "probeOnboardEntry", "applyOnboardEntry", "readSessionMcpPanel", "listMcpToolToggles", "setMcpToolToggle", "setThinkingLatch", "getComputerUse", "setComputerUse", "getNotificationLevels", "setNotificationLevel", "claimSeatActions", "readSessionMods", "onEvent", "onToolPermissionRequest", "onSeatAction"];
770
862
  export declare const SEAT_STORE_PROPS: readonly ["sessionsStateStore", "focusedSessionStateStore", "settingsStateStore", "seatCapabilitiesStateStore", "engineTargetStateStore"];
771
863
  export declare const SEAT_EVENT_METHOD_NAMES: readonly ["onEvent", "onToolPermissionRequest", "onSeatAction"];
772
864
  export declare const LOCAL_SESSION_EVENT_KEYS: readonly ["type", "sessionId", "message", "error", "errorCategory", "code", "session", "userMessageUuid", "requestId", "outcome", "parked", "chrome", "_sema_turnFailure", "subagentContent"];
773
- export declare const TOOL_PERMISSION_REQUEST_KEYS: readonly ["requestId", "sessionId", "toolName", "toolCallId", "input", "message", "toctouBinding", "createdAtMs", "governanceForced", "delegation", "mandated", "mandate", "origin", "ruleOffersAbsence", "askClass", "classes", "sessionRow"];
774
- export declare const LOCAL_SESSION_RECORD_KEYS: readonly ["sessionId", "engineSessionId", "model", "title", "cwd", "isRunning", "createdAt", "lastActivityAt", "queuedMessages", "parked", "pinned", "rowTag", "unreadable", "thinkingLatch", "engine", "executionLane"];
865
+ export declare const TOOL_PERMISSION_REQUEST_KEYS: readonly ["requestId", "sessionId", "toolName", "toolCallId", "input", "message", "toctouBinding", "createdAtMs", "governanceForced", "delegation", "mandated", "mandate", "origin", "ruleOffersAbsence", "askClass", "classes", "sessionRow", "probeReason", "probeCause", "feedbackCapable", "requestedBy", "frameReading", "inputSource"];
866
+ export declare const LOCAL_SESSION_RECORD_KEYS: readonly ["sessionId", "engineSessionId", "model", "title", "cwd", "isRunning", "createdAt", "lastActivityAt", "queuedMessages", "parked", "pinned", "rowTag", "unreadable", "thinkingLatch", "engine", "executionLane", "parkedUnresumable"];
775
867
  export declare const SEND_MESSAGE_REQUEST_KEYS: readonly ["sessionId", "text", "model", "userMessageUuid", "permissionMode", "attachmentIds", "reasoningEffort", "retainBackgroundProcesses", "forwardSubagentEvents", "retainSubagentSessions", "settings", "scenario", "rewind"];
776
868
  export declare const SEAT_SEND_MESSAGE_KEY_ORIGINS: {
777
869
  readonly sessionId: {
@@ -815,13 +907,13 @@ export declare const SEAT_SEND_MESSAGE_KEY_ORIGINS: {
815
907
  readonly taskRequestKeys: readonly ["resumeAt", "resumeAtMode", "restoreFiles", "rewindFilesTo"];
816
908
  };
817
909
  };
818
- export declare const TOOL_PERMISSION_DECISION_KEYS: readonly ["sessionId", "requestId", "decision", "answer", "updatedInput", "remember"];
910
+ export declare const TOOL_PERMISSION_DECISION_KEYS: readonly ["sessionId", "requestId", "decision", "answer", "updatedInput", "remember", "feedback"];
819
911
  export declare const START_SESSION_OPTION_KEYS: readonly ["model", "title", "cwd", "excludeTools", "engine"];
820
912
  export declare const SEAT_VALIDATOR_KEY_COVERAGE: {
821
913
  readonly LocalSessionRecord: {
822
914
  readonly guard: "isLocalSessionRecord";
823
915
  readonly check: (v: unknown) => SeatValidation;
824
- readonly validated: readonly ["sessionId", "engineSessionId", "model", "title", "cwd", "isRunning", "createdAt", "lastActivityAt", "queuedMessages", "parked", "pinned", "rowTag", "unreadable", "thinkingLatch", "engine", "executionLane"];
916
+ readonly validated: readonly ["sessionId", "engineSessionId", "model", "title", "cwd", "isRunning", "createdAt", "lastActivityAt", "queuedMessages", "parked", "pinned", "rowTag", "unreadable", "thinkingLatch", "engine", "executionLane", "parkedUnresumable"];
825
917
  readonly unchecked: readonly [];
826
918
  };
827
919
  readonly ToolPermissionRequest: {
@@ -855,9 +947,27 @@ export declare const SEAT_VALIDATOR_KEY_COVERAGE: {
855
947
  }, {
856
948
  readonly key: "sessionRow";
857
949
  readonly why: "放宽方向的展示位(CC-699),判官在过境口 toolPermissionRequestAskBits(card, requestId):卡上「本会话放行」判官 standingRowsOf 的会话行同一前提 ∧ 本请求 requestId 的域带得走(live: / durable:),严格 true 才上座、永不铸 false;座位门不设第二判官,理由同 mandated(为一个展示位拒掉整条 request = 把安全 ask 丢给引擎 TTL deny)。消费端 `=== true` 才渲「本会话放行」,其余(缺席 / 坏形)一律不渲 —— 缺席是闭合失败,不是「没说就照渲」。不经过境口自铸座位请求的宿主拿不到这一位,座位卡就不给那一档。";
950
+ }, {
951
+ readonly key: "feedbackCapable";
952
+ readonly why: "放宽方向的展示位(CC-585),判官在过境口 toolPermissionRequestAskBits(card, requestId):卡判官 answerCarriage(card) 答 model(卡带耐久待决行腿的正向事实 parkRow)∧ 本请求 requestId 的域恰是 durable:(只有 /decide 收放行反馈位),严格 true 才上座、永不铸 false;座位门不设第二判官,理由同 sessionRow(为一个展示位拒掉整条 request = 把安全 ask 丢给引擎 TTL deny)。消费端 `=== true` 才渲「Yes + 告诉 agent 下一步」那一格输入,其余(缺席 / 坏形)一律不渲 —— 缺席是闭合失败。不经过境口自铸座位请求的宿主拿不到这一位,座位卡就不给那一格。";
858
953
  }, {
859
954
  readonly key: "ruleOffersAbsence";
860
955
  readonly why: "喂强制判据口 approvalIsMandated 的位(CC-203;寄存行那条腿的强制只以缺席词 mandated 表达),按开集读(非空串原文字节、词表不校);权威窄读在卡口与过境口,座位门不设第二判官,理由同 mandated。坏形读成缺席 ⇒ 这一路不判强制(放宽方向:寄存行上的强制就丢了;另两路 mandated / mandate 照判);表外串只是不等于 mandated。不经过境口自铸座位请求的宿主要自己按同一把窄读。";
956
+ }, {
957
+ readonly key: "probeReason";
958
+ readonly why: "展示位(CC-1316),权威窄读在过境口 toolPermissionRequestAskBits,与「为什么问」那一句的读口 askProbeReasonDetail 同一个读点(自有数据属性、取值器不执行;串且去两端空白后非空才在场,原文字节);座位门不设第二判官,理由同 mandated(为一个展示位拒掉整条 request = 把安全 ask 丢给引擎 TTL deny)。坏形读成缺席 ⇒ 卡上不显示这一句,不改决断;缺席不是「没有原因」。不经过境口自铸座位请求的宿主要自己按同一把窄读。";
959
+ }, {
960
+ readonly key: "probeCause";
961
+ readonly why: "展示位(CC-1316),与 probeReason 同一对、同一个读点;载体层判(自有数据属性、非 null 非数组对象)才在场,同一引用原样搬运,内部成员不校(成员的窄读归 askProbeReasonDetail / probeCauseRowsOf);座位门不设第二判官,理由同 probeReason。坏形读成缺席 ⇒ 不显示因由行,不改决断。两位按键隔离:一位读不出不连坐另一位。";
962
+ }, {
963
+ readonly key: "requestedBy";
964
+ readonly why: "展示位(CC-1341),权威窄读在过境口 toolPermissionRequestAskBits,读点是卡口的唯一载体级读口 approvalRequestedByOf(载体顶层的自有数据属性、取值器不执行;kind 恰 extension 且 name 非空串才在场,出冻结的新铸副本);原始耐久待决行不读(上游不在行上铸这一位);座位门不设第二判官,理由同 mandated(为一个展示位拒掉整条 request = 把安全 ask 丢给引擎 TTL deny)。坏形读成缺席 ⇒ 卡上不显示发起者行,不改决断;缺席不是「模型发起」。不经过境口自铸座位请求的宿主要自己按同一把窄读。";
965
+ }, {
966
+ readonly key: "frameReading";
967
+ readonly why: "展示位(CC-1345),权威窄读在过境口 toolPermissionRequestAskBits,读点是包内唯一读口 cardPayloadReadingOf(卡上 cardPayloadUnreadable 严格 true ∧ cardPayloadUnreadableWhy 是判因闭集三词之一才在场;卡面通用卡第一行按因选句同读它);座位门不设第二判官,理由同 mandated(为一个展示位拒掉整条 request = 把安全 ask 丢给引擎 TTL deny)。表外词 / 游离判因词 / 判因未知读成缺席 ⇒ 卡上回落不分因的原句,不改决断;缺席不是「帧读得出」。不经过境口自铸座位请求的宿主要自己按同一把窄读。";
968
+ }, {
969
+ readonly key: "inputSource";
970
+ readonly why: "展示位(CC-1366),权威窄读在过境口 toolPermissionRequestAskBits,读点是包内唯一窄读 approvalInputSourceOf(载体顶层的自有数据属性、取值器不执行;闭集 record / stream 两词精确字节才在场);来源位本身只有一个铸点(卡入参读法的读数 → 位),过境口只抄卡上已铸的位、不拿 input 重判来源,原始帧 / 原始耐久待决行直交恒缺席;座位门不设第二判官,理由同 mandated(为一个展示位拒掉整条 request = 把安全 ask 丢给引擎 TTL deny)。表外词 / 近义词 / 非串读成缺席 ⇒ 壳按来源不明处置,不改决断;缺席不是 record。不经过境口自铸座位请求的宿主要自己按同一把窄读。";
861
971
  }];
862
972
  };
863
973
  readonly LocalSessionEvent: {
@@ -954,6 +1064,11 @@ export declare const SEAT_VALIDATOR_KEY_COVERAGE: {
954
1064
  readonly validated: readonly ["ok"];
955
1065
  readonly unchecked: readonly [];
956
1066
  };
1067
+ readonly ToolPermissionAck: {
1068
+ readonly check: (v: unknown) => SeatValidation;
1069
+ readonly validated: readonly ["ok", "settledElsewhere"];
1070
+ readonly unchecked: readonly [];
1071
+ };
957
1072
  readonly GetTranscriptResult: {
958
1073
  readonly check: (v: unknown) => SeatValidation;
959
1074
  readonly validated: readonly ["sessionId", "messages"];
@@ -981,7 +1096,7 @@ export declare const SEAT_VALIDATOR_KEY_COVERAGE: {
981
1096
  };
982
1097
  readonly SeatCapabilitiesState: {
983
1098
  readonly check: (v: unknown) => SeatValidation;
984
- readonly validated: readonly ["pickFolder", "rewind", "recents", "patchSession", "devices", "engineTarget", "onboard", "mcpToolToggles", "thinkingLatch", "computerUseSwitch", "engineModeDefaultOnly", "seatActions"];
1099
+ readonly validated: readonly ["pickFolder", "rewind", "recents", "patchSession", "devices", "engineTarget", "onboard", "mcpToolToggles", "thinkingLatch", "computerUseSwitch", "engineModeDefaultOnly", "seatActions", "notificationLevels", "modsView"];
985
1100
  readonly unchecked: readonly [];
986
1101
  };
987
1102
  readonly RecentFoldersResult: {
@@ -1021,7 +1136,7 @@ export declare const SEAT_VALIDATOR_KEY_COVERAGE: {
1021
1136
  };
1022
1137
  };
1023
1138
  export declare const SEAT_VALIDATOR_COVERAGE_EXEMPT: readonly [...{
1024
- label: "DeviceListOutcome" | "DeviceSessionBindingOutcome" | "DeviceRebindOutcome" | "DeviceEnrollTokenOutcome" | "DeviceRevokeOutcome" | "SeatDeviceRebindRequest" | "SeatDeviceRevokeRequest" | "EngineTargetState" | "EngineTargetResult" | "CloudLoginStart" | "CloudLoginCancelAck" | "CloudConnectResult" | "CloudLoginRequest" | "CloudEngineConnectRequest" | "CloudEngineConfigureRequest" | "OnboardProvidersResult" | "OnboardProbeResult" | "OnboardApplyResult" | "OnboardEntryRequest" | "OnboardApplyRequest" | "McpToolTogglesResult" | "McpToolToggleKey" | "ComputerUseState" | "SetComputerUseResult" | "SetComputerUseRequest" | "SeatAction";
1139
+ label: "DeviceListOutcome" | "DeviceSessionBindingOutcome" | "DeviceRebindOutcome" | "DeviceEnrollTokenOutcome" | "DeviceRevokeOutcome" | "SeatDeviceRebindRequest" | "SeatDeviceRevokeRequest" | "EngineTargetState" | "EngineTargetResult" | "CloudLoginStart" | "CloudLoginCancelAck" | "CloudConnectResult" | "CloudLoginRequest" | "CloudEngineConnectRequest" | "CloudEngineConfigureRequest" | "OnboardProvidersResult" | "OnboardProbeResult" | "OnboardApplyResult" | "OnboardEntryRequest" | "OnboardApplyRequest" | "McpToolTogglesResult" | "McpToolToggleKey" | "ComputerUseState" | "SetComputerUseResult" | "SetComputerUseRequest" | "NotificationLevelsState" | "SetNotificationLevelResult" | "SeatAction" | "EngineSwapAnswerOutcome" | "SelfUpgradeOutcome" | "SessionModsResult";
1025
1140
  check: (v: unknown) => SeatValidation;
1026
1141
  why: string;
1027
1142
  }[], {