@sema-agent/client-core 0.110.0 → 0.112.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 (243) hide show
  1. package/CHANGELOG.md +244 -0
  2. package/README.md +59 -18
  3. package/dist/abortableSleep.d.ts +7 -0
  4. package/dist/abortableSleep.js +37 -0
  5. package/dist/adapt/arms.js +25 -4
  6. package/dist/adapt/toolCards.d.ts +3 -1
  7. package/dist/adapt/toolCards.js +4 -2
  8. package/dist/adapter/activeRunSelfHeal.d.ts +39 -0
  9. package/dist/adapter/activeRunSelfHeal.js +171 -3
  10. package/dist/adapter/downstream/eventToSdkMessage.js +10 -10
  11. package/dist/adapter/downstream/terminalToSdkResult.d.ts +2 -0
  12. package/dist/adapter/downstream/terminalToSdkResult.js +11 -0
  13. package/dist/adapter/runStream.d.ts +5 -0
  14. package/dist/adapter/runStream.js +15 -3
  15. package/dist/agentSession/engineSessionBackgroundStop.js +2 -2
  16. package/dist/attachmentRoute.d.ts +20 -0
  17. package/dist/attachmentRoute.js +39 -0
  18. package/dist/attachmentsWireCaps.js +1 -1
  19. package/dist/builtinOutputStyles.d.ts +12 -0
  20. package/dist/builtinOutputStyles.js +147 -0
  21. package/dist/checkpointRowVerdict.d.ts +3 -0
  22. package/dist/checkpointRowVerdict.js +14 -1
  23. package/dist/compactionStatus.d.ts +9 -0
  24. package/dist/compactionStatus.js +29 -5
  25. package/dist/consoleCaPin.d.ts +136 -0
  26. package/dist/consoleCaPin.js +827 -0
  27. package/dist/controlRouter.js +2 -1
  28. package/dist/coreValuePorts.d.ts +39 -1
  29. package/dist/coreValuePorts.js +10 -0
  30. package/dist/decideReceipt.d.ts +2 -1
  31. package/dist/deviceRebind.js +3 -3
  32. package/dist/displayUntrusted.d.ts +1 -0
  33. package/dist/displayUntrusted.js +6 -0
  34. package/dist/effectiveFacts.d.ts +9 -0
  35. package/dist/effectiveFacts.js +33 -0
  36. package/dist/engineAddress.d.ts +1 -0
  37. package/dist/engineAddress.js +4 -1
  38. package/dist/engineCredentialRelease.d.ts +54 -0
  39. package/dist/engineCredentialRelease.js +146 -0
  40. package/dist/engineErrorCodes.d.ts +1 -0
  41. package/dist/engineErrorCodes.js +1 -0
  42. package/dist/engineHealthProbeVerdict.d.ts +24 -0
  43. package/dist/engineHealthProbeVerdict.js +123 -0
  44. package/dist/engineNoticeCodes.js +5 -7
  45. package/dist/engineRepoint.d.ts +12 -5
  46. package/dist/engineRepoint.js +44 -19
  47. package/dist/engineRowRef.d.ts +3 -0
  48. package/dist/engineRowRef.js +11 -1
  49. package/dist/engineSwapCrossing.d.ts +57 -0
  50. package/dist/engineSwapCrossing.js +297 -0
  51. package/dist/engineUnavailable.d.ts +45 -0
  52. package/dist/engineUnavailable.js +496 -0
  53. package/dist/engineUrl.js +4 -2
  54. package/dist/eventLeg.js +3 -3
  55. package/dist/gateFailureCodes.js +2 -2
  56. package/dist/generated/sdkFactTables.d.ts +2 -1
  57. package/dist/generated/sdkFactTables.js +14 -0
  58. package/dist/generated/settingsSchemaFns.d.ts +1 -0
  59. package/dist/generated/settingsSchemaFns.js +3 -0
  60. package/dist/generated/settingsSchemaHooksClassifier.js +38 -9
  61. package/dist/generated/settingsSchemaTables.d.ts +56 -0
  62. package/dist/generated/settingsSchemaTables.js +19 -0
  63. package/dist/generated/settingsSchemaTypes.d.ts +23 -13
  64. package/dist/generated/settingsSchemaUrlShape.d.ts +1 -0
  65. package/dist/generated/settingsSchemaUrlShape.js +17 -0
  66. package/dist/hitl/approvalDelivery.d.ts +1 -0
  67. package/dist/hitl/approvalDelivery.js +1 -1
  68. package/dist/hitl/approvalResolution.d.ts +1 -1
  69. package/dist/hitl/approvalResolution.js +2 -1
  70. package/dist/hitl/askGateWire.js +5 -6
  71. package/dist/hitl/decisionRefusal.d.ts +6 -0
  72. package/dist/hitl/decisionRefusal.js +19 -10
  73. package/dist/hitl/decisionRefusalCarrier.d.ts +3 -0
  74. package/dist/hitl/decisionRefusalCarrier.js +348 -0
  75. package/dist/hitl/decisionSend.d.ts +7 -0
  76. package/dist/hitl/decisionSend.js +34 -12
  77. package/dist/hitl/editedApprovalAcceptance.js +1 -1
  78. package/dist/hitl/elicitationRefusal.d.ts +4 -0
  79. package/dist/hitl/elicitationRefusal.js +23 -0
  80. package/dist/hitl/frameRouter.d.ts +2 -2
  81. package/dist/hitl/frameRouter.js +8 -15
  82. package/dist/hitl/gateIdentity.d.ts +5 -0
  83. package/dist/hitl/gateIdentity.js +23 -0
  84. package/dist/hitl/hitlBridge.d.ts +6 -0
  85. package/dist/hitl/hitlBridge.js +10 -4
  86. package/dist/hitl/hitlHostSurface.d.ts +2 -1
  87. package/dist/hitl/hitlHostSurface.js +7 -2
  88. package/dist/hitl/localAllowRedemption.d.ts +70 -0
  89. package/dist/hitl/localAllowRedemption.js +276 -0
  90. package/dist/hitl/parkOwnership.js +2 -1
  91. package/dist/hitl/parkResolver.js +14 -4
  92. package/dist/hitl/persistedRulesWire.d.ts +16 -0
  93. package/dist/hitl/persistedRulesWire.js +70 -0
  94. package/dist/hitl/planReviewWire.d.ts +3 -0
  95. package/dist/hitl/planReviewWire.js +23 -6
  96. package/dist/hitl/policyDenyCause.d.ts +1 -1
  97. package/dist/hitl/policyDenyCause.js +1 -1
  98. package/dist/hitl/resumeRunningCard.d.ts +1 -0
  99. package/dist/hitl/resumeRunningCard.js +1 -0
  100. package/dist/hitl/screenCardCarriers.d.ts +15 -0
  101. package/dist/hitl/screenCardCarriers.js +41 -0
  102. package/dist/hitl/screenDecisionCards.d.ts +98 -0
  103. package/dist/hitl/screenDecisionCards.js +363 -0
  104. package/dist/hitl/sessionPolicyWire.js +2 -2
  105. package/dist/hitl/standingRows.d.ts +6 -2
  106. package/dist/hitl/standingRows.js +27 -2
  107. package/dist/hitl/toolApprovalWire.d.ts +30 -8
  108. package/dist/hitl/toolApprovalWire.js +264 -121
  109. package/dist/hooksReaderGenerations.js +1 -1
  110. package/dist/hooksWireCaps.js +3 -3
  111. package/dist/hostSettingNoticeArm.d.ts +3 -0
  112. package/dist/hostSettingNoticeArm.js +12 -0
  113. package/dist/hostTurnSettings.d.ts +3 -0
  114. package/dist/hostTurnSettings.js +38 -5
  115. package/dist/humanTurnRead.js +11 -1
  116. package/dist/i18n/messages.en.d.ts +292 -0
  117. package/dist/i18n/messages.en.js +298 -7
  118. package/dist/i18n/messages.zh.js +316 -6
  119. package/dist/i18n/translate.d.ts +3 -0
  120. package/dist/i18n/translate.js +78 -10
  121. package/dist/i18n/zh.d.ts +1 -0
  122. package/dist/i18n/zh.js +1 -0
  123. package/dist/index.d.ts +71 -20
  124. package/dist/index.js +44 -13
  125. package/dist/interactiveHalt.js +2 -1
  126. package/dist/interactiveInterrupt.js +20 -2
  127. package/dist/liveModelCatalog.d.ts +4 -0
  128. package/dist/liveModelCatalog.js +12 -3
  129. package/dist/localConfig/documents.d.ts +61 -0
  130. package/dist/localConfig/documents.js +51 -0
  131. package/dist/localConfig/kernel.d.ts +149 -0
  132. package/dist/localConfig/kernel.js +597 -0
  133. package/dist/localConfig/mcp/edit.d.ts +161 -0
  134. package/dist/localConfig/mcp/edit.js +846 -0
  135. package/dist/localConfig/mcp/servers.d.ts +165 -0
  136. package/dist/localConfig/mcp/servers.js +776 -0
  137. package/dist/localConfig/mcp/views.d.ts +170 -0
  138. package/dist/localConfig/mcp/views.js +429 -0
  139. package/dist/localConfig/modelPool.d.ts +262 -0
  140. package/dist/localConfig/modelPool.js +1489 -0
  141. package/dist/localConfig/modelPoolWords.d.ts +13 -0
  142. package/dist/localConfig/modelPoolWords.js +20 -0
  143. package/dist/localConfig/receiptShape.d.ts +7 -0
  144. package/dist/localConfig/receiptShape.js +135 -0
  145. package/dist/localConfig/settingsWrite.d.ts +127 -0
  146. package/dist/localConfig/settingsWrite.js +237 -0
  147. package/dist/localConfig/skills.d.ts +124 -0
  148. package/dist/localConfig/skills.js +397 -0
  149. package/dist/localConfig/skillsWords.d.ts +10 -0
  150. package/dist/localConfig/skillsWords.js +5 -0
  151. package/dist/localEngineSeatReading.d.ts +2 -2
  152. package/dist/localEngineSeatReading.js +5 -3
  153. package/dist/localEngineSpawn.d.ts +0 -7
  154. package/dist/localEngineSpawn.js +0 -92
  155. package/dist/localEngineStep.d.ts +2 -2
  156. package/dist/localEngineStep.js +2 -0
  157. package/dist/mcpProbeWire.js +2 -1
  158. package/dist/mcpReconnect.js +3 -3
  159. package/dist/mcpWireCaps.js +1 -1
  160. package/dist/memoryVerbsWire.js +3 -2
  161. package/dist/model/engineModelWords.d.ts +3 -0
  162. package/dist/model/engineModelWords.js +13 -0
  163. package/dist/model/onboardJudgement.d.ts +14 -4
  164. package/dist/model/onboardJudgement.js +91 -139
  165. package/dist/model/subagentModelWord.d.ts +21 -2
  166. package/dist/model/subagentModelWord.js +100 -29
  167. package/dist/modelCapabilityProbe.js +3 -40
  168. package/dist/modelConfigGapNotice.d.ts +20 -0
  169. package/dist/modelConfigGapNotice.js +102 -0
  170. package/dist/modsKernelIdentity.js +2 -47
  171. package/dist/notifications.d.ts +19 -0
  172. package/dist/notifications.js +114 -12
  173. package/dist/ownKey.d.ts +7 -0
  174. package/dist/ownKey.js +71 -8
  175. package/dist/pendingUserRow.d.ts +4 -0
  176. package/dist/pendingUserRow.js +16 -0
  177. package/dist/permissionsDeclaration.d.ts +3 -1
  178. package/dist/permissionsDeclaration.js +33 -9
  179. package/dist/planReviewCardFacts.d.ts +3 -0
  180. package/dist/planReviewCardFacts.js +52 -2
  181. package/dist/pluginHooksWire.d.ts +9 -1
  182. package/dist/pluginHooksWire.js +40 -6
  183. package/dist/printToolResultFrame.js +4 -2
  184. package/dist/promptBlockedCopy.js +12 -7
  185. package/dist/promptSuggestionBatch.d.ts +7 -0
  186. package/dist/promptSuggestionBatch.js +9 -0
  187. package/dist/promptSuggestionsTail.d.ts +39 -0
  188. package/dist/promptSuggestionsTail.js +116 -0
  189. package/dist/request/taskRequest.js +10 -6
  190. package/dist/requestCoordinate.d.ts +1 -0
  191. package/dist/requestCoordinate.js +13 -0
  192. package/dist/resumeRefusalCopy.d.ts +3 -1
  193. package/dist/resumeRefusalCopy.js +12 -4
  194. package/dist/rewindArchiveReading.js +4 -4
  195. package/dist/runCancelContext.d.ts +2 -1
  196. package/dist/runCancelContext.js +1 -0
  197. package/dist/runLedgerSnapshot.js +3 -3
  198. package/dist/runPermissionModeSwitch.js +3 -4
  199. package/dist/scenarioRefusal.js +11 -13
  200. package/dist/scenarioSkills.js +11 -6
  201. package/dist/seam.d.ts +16 -2
  202. package/dist/seam.js +10 -0
  203. package/dist/seatContract.d.ts +259 -9
  204. package/dist/seatContract.js +444 -15
  205. package/dist/sessionCostReading.d.ts +70 -0
  206. package/dist/sessionCostReading.js +150 -0
  207. package/dist/sessionHooksRoster.d.ts +4 -0
  208. package/dist/sessionHooksRoster.js +158 -0
  209. package/dist/sessionIdSegment.d.ts +1 -0
  210. package/dist/sessionIdSegment.js +4 -1
  211. package/dist/sessionMemoryErase.js +2 -1
  212. package/dist/sessionMemoryStatus.js +2 -2
  213. package/dist/sessionReadRedaction.d.ts +7 -0
  214. package/dist/sessionReadRedaction.js +26 -0
  215. package/dist/sessionSyncFileHistory.js +8 -9
  216. package/dist/settingsHooksSalvage.js +2 -1
  217. package/dist/sha256Bytes.d.ts +1 -0
  218. package/dist/sha256Bytes.js +46 -0
  219. package/dist/skillOverrideChain.d.ts +83 -0
  220. package/dist/skillOverrideChain.js +378 -0
  221. package/dist/skillsWireCaps.d.ts +3 -0
  222. package/dist/skillsWireCaps.js +16 -1
  223. package/dist/sseIdleTriage.js +2 -1
  224. package/dist/storeDurabilityWord.d.ts +15 -0
  225. package/dist/storeDurabilityWord.js +18 -0
  226. package/dist/storePostureCapability.d.ts +7 -3
  227. package/dist/storePostureCapability.js +69 -39
  228. package/dist/subagent/engineSubagentResume.js +2 -2
  229. package/dist/subagent/engineSubagentTail.js +2 -1
  230. package/dist/subagentContentStore.d.ts +11 -0
  231. package/dist/subagentContentStore.js +28 -2
  232. package/dist/toolResult.d.ts +1 -0
  233. package/dist/toolResult.js +2 -0
  234. package/dist/turnFailurePresentation.js +4 -10
  235. package/dist/userAttachmentEnvelope.d.ts +2 -1
  236. package/dist/userAttachmentEnvelope.js +10 -0
  237. package/dist/wireErrorTriage.js +2 -1
  238. package/dist/wireFailureShape.d.ts +4 -0
  239. package/dist/wireFailureShape.js +141 -19
  240. package/dist/wireRefusalCopy.d.ts +6 -5
  241. package/dist/wireRefusalCopy.js +49 -92
  242. package/docs/INTEGRATION-CLIENTS.md +2718 -17
  243. package/package.json +7 -3
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export * from './seam.js';
2
2
  export * from './workflow.js';
3
- export { _resetEngineTaskNotificationForTest, _resetNotificationQueuePortForTest, _setWatcherTimingForTest, _tickWatchOnceForTest, classifyHookFailureFrame, classifyHookNoticeFrame, deriveNotificationResidualLines, dropQueuedNotificationsForRun, enqueueBgChildNotification, enqueueEngineWorkflowNotification, enqueuePlanReviewOutcome, HOOK_NOTICE_WARN_PREFIX, hookNoticeLastCheckText, installBgTaskStatusProbe, installNotificationQueuePort, installWorkflowRunReader, isEngineWorkflowNotified, isHookNoticeFrame, isOwnWorkflowRun, isTaskNotificationObjective, isWorkflowCompletionCardEnqueued, listOwnWorkflowRuns, markEngineWorkflowNotified, normalizeTaskNotification, noteOwnWorkflowRun, noteWorkflowCompletionCardEnqueued, notificationDropCounters, notificationQueuePortMisses, outstandingAbandonedCount, outstandingBgTaskPrompt, outstandingDeliverableWorkflowCount, outstandingWorkflowCount, parseTranscriptNotificationSeeds, readTaskNotificationXml, registerOutstandingBgTask, registerOutstandingWorkflowRun, renderTaskNotificationXml, splitApiErrorSupplement, subscribeOutstandingWorkflows, TASK_NOTIFICATION_TAG, taskNotificationDedupKey, taskNotificationDedupKeyFromWire, taskNotificationDeliverySupplement, workflowRunTerminalReadingOf, } from './notifications.js';
3
+ export { _resetEngineTaskNotificationForTest, _resetNotificationQueuePortForTest, _setWatcherTimingForTest, _tickWatchOnceForTest, classifyHookFailureFrame, classifyHookNoticeFrame, deriveNotificationResidualLines, dropQueuedNotificationsForRun, enqueueBgChildNotification, enqueueEngineWorkflowNotification, enqueuePlanReviewOutcome, HOOK_NOTICE_WARN_PREFIX, hookNoticeLastCheckText, installBgTaskStatusProbe, installNotificationQueuePort, installWorkflowRunReader, isEngineWorkflowNotified, isHookNoticeFrame, isOwnWorkflowRun, isTaskNotificationObjective, isWorkflowCompletionCardEnqueued, listOwnWorkflowRuns, markEngineWorkflowNotified, normalizeTaskNotification, noteOwnWorkflowRun, noteWorkflowCompletionCardEnqueued, notificationDropCounters, notificationQueuePortMisses, outstandingAbandonedCount, outstandingBgTaskPrompt, outstandingDeliverableWorkflowCount, outstandingWorkflowCount, parseTranscriptNotificationSeeds, readTaskNotificationXml, registerOutstandingBgTask, registerOutstandingWorkflowRun, renderTaskNotificationXml, splitApiErrorSupplement, subscribeOutstandingWorkflows, TASK_NOTIFICATION_TAG, taskNotificationDedupKey, taskNotificationDedupKeyFromWire, taskNotificationDeliverySupplement, workflowRunTerminalReadingOf, resupplyTruncatedSentence, } from './notifications.js';
4
4
  export * from './peerFrames.js';
5
5
  export * from './steering.js';
6
6
  export * from './retryStatus.js';
@@ -9,9 +9,10 @@ export * from './memorySpecWire.js';
9
9
  export * from './adapt.js';
10
10
  export * from './adapt/textSegmentAuthority.js';
11
11
  export * from './engineHttpTools.js';
12
+ export { classifyHealthProbe, healthAnswerClause, latestSegmentHealthAnswer } from './engineHealthProbeVerdict.js';
12
13
  export * from './sdkWireTransit.js';
13
14
  export { SEMA_SEGMENT_ID_KEY } from './adapt/textStream.js';
14
- export { engineRefOf, sameEngineRef, TRANSCRIPT_ROW_SIDECAR_KEYS } from './engineRowRef.js';
15
+ export { engineRefOf, sameEngineRef, SEMA_REFUSAL_NOTED_KEY, TRANSCRIPT_ROW_SIDECAR_KEYS } from './engineRowRef.js';
15
16
  export { isReplayMarked } from './replayBody.js';
16
17
  export { composeEventLeg, EVENT_LEG_KINDS, EVENT_LEG_TABLE, approvalFrameContextOf } from './eventLeg.js';
17
18
  export { frameBindingOf, inheritFrameBinding } from './frameBinding.js';
@@ -22,10 +23,13 @@ export * from './fleetAgentPanelProjection.js';
22
23
  export { reducePanelFrame, createPanelReduceState, PANEL_DELTA_OPS } from './panelReduce.js';
23
24
  export { _resetLiveQuestionStore, hasLocalQuestionResponder, hasQuestionOverlay, hasQuestionOverlayFor, onQuestionFrame, onQuestionFrameFor, publishQuestionFrame, publishQuestionFrameFor, registerLocalQuestionResponder, respondToQuestion, setQuestionRespond, } from './liveQuestionStore.js';
24
25
  export { withdrawParkQuestion, PARK_QUESTION_WITHDRAW_REFUSALS } from './hitl/hostWithdrawal.js';
26
+ export { SCREEN_CARD_KEEP_REASONS, ENGINE_GENERATION_CARD_PLAN_GOLDEN, approvalCardGateOf, approvalCardOriginOf, questionFrameGateOf, screenCardsHoldEngineDecision, engineGenerationCardPlan, engineGenerationCardRecheckDue, } from './hitl/screenDecisionCards.js';
27
+ export { questionFrameSourceGenerationOf } from './hitl/screenCardCarriers.js';
25
28
  export * from './engineInlineTaskStats.js';
26
29
  export * from './printToolResultFrame.js';
27
30
  export * from './printModelStatus.js';
28
31
  export * from './compactionStatus.js';
32
+ export { followUpPromptSuggestions, promptSuggestionsOnStream, PROMPT_SUGGESTIONS_TAIL_MAX_ATTEMPTS, PROMPT_SUGGESTIONS_TAIL_BUDGET_MS, } from './promptSuggestionsTail.js';
29
33
  export { __resetEngineCapsCacheForTests, engineCapNestedValue, engineCapState, engineCapString, engineCapsGeneration, engineCapsLandingOf, engineCapsSettled, engineCapTrue, engineCapValue, invalidateEngineCaps, invalidateEngineCapsAndReprobe, kickEngineCapsProbe, rotateEngineCapsProbe, } from './engineCapsCache.js';
30
34
  export { onEngineCapsChange } from './engineCapsChange.js';
31
35
  export * from './sqlEngineCapability.js';
@@ -46,6 +50,7 @@ export * from './credentialPlaneCapability.js';
46
50
  export * from './mcpReconnect.js';
47
51
  export * from './hitl/parkExpiryJudgements.js';
48
52
  export * from './usageAnalytics.js';
53
+ export * from './sessionCostReading.js';
49
54
  export * from './leaderConflict.js';
50
55
  export * from './runTerminal.js';
51
56
  export { CORE_SEMA_TASK_TERMINAL_STATUSES, CORE_TASK_NOTIFICATION_TERMINAL_STATUSES, CORE_TERMINAL_CAUSE_KINDS, SDK_FLEET_TASK_TERMINAL_STATUSES, SDK_PARKED_RUN_STATUSES, SDK_RUN_TERMINAL_STATUSES, ccTaskTerminalStatusOf, isCoreSemaTaskTerminal, isCoreTaskNotificationTerminal, isCoreTaskNotificationTerminalNotSuccess, isCoreTerminalCauseKind, isSdkFleetTaskTerminal, isSdkFleetTaskTerminalNotSuccess, isSdkRunParked, isSdkRunTerminal, isSdkRunTerminalNotSuccess, } from './terminalStatuses.js';
@@ -66,6 +71,7 @@ export * from './skillToolListsCapability.js';
66
71
  export * from './steerPriorityCapability.js';
67
72
  export * from './permissionModesCapability.js';
68
73
  export * from './approvalDecidedByCapability.js';
74
+ export { sessionReadRedactionOf } from './sessionReadRedaction.js';
69
75
  export * from './outputStyleSeatCapability.js';
70
76
  export * from './permissionModeWriteCapability.js';
71
77
  export { setRunPermissionMode, runPermissionModeSwitchLine } from './runPermissionModeSwitch.js';
@@ -81,11 +87,13 @@ export { readModsDeploymentPackages } from './engineHealthFacts.js';
81
87
  export { localEngineAnchorOf, localEnginePlanDriftOf, judgeLocalEngine, localEngineLaneOf, localEngineVerdictSentence } from './localEngineJudge.js';
82
88
  export { countClientRegistry, fleetBackgroundLiveOf, localEngineSelfOf, localEngineRegistryStatusOf, localEngineIdle, localEngineDemandOf, localEngineExitFate, localEngineExitFateSentence, } from './localEngineOccupancy.js';
83
89
  export { LOCAL_ENGINE_SWAP_CAUSES, localEngineSwapAutoable, engineSwapCardOf, engineSwapCardText } from './localEngineSwapCard.js';
84
- export { LOCAL_ENGINE_SPAWN_ENV, LOCAL_ENGINE_HOST_BITS, LOCAL_ENGINE_SPAWN_SHAPE, localEngineOperatorSingleUserOf, localEngineSpawnEnv, localEngineSeedEnv, localEnginePrincipalOf, localEnginePrincipalSentence, engineBootRefusalOf, engineBootRefusalSentence, localEngineFirstShareSentence, } from './localEngineSpawn.js';
90
+ export { LOCAL_ENGINE_SPAWN_ENV, LOCAL_ENGINE_HOST_BITS, LOCAL_ENGINE_SPAWN_SHAPE, localEngineOperatorSingleUserOf, localEngineSpawnEnv, localEngineSeedEnv, localEnginePrincipalOf, localEnginePrincipalSentence, localEngineFirstShareSentence, } from './localEngineSpawn.js';
91
+ export { ENGINE_UNAVAILABLE_REASONS, ENGINE_INSTALL_SHAPES, ENGINE_BOOT_REFUSAL_CODES, engineBootRefusalOf, engineBootRefusalSentence, engineUnavailableLine, } from './engineUnavailable.js';
85
92
  export { LOCAL_ENGINE_STOP_LADDER, stopLadderStep } from './localEngineStopLadder.js';
86
93
  export { LOCAL_ENGINE_INITIAL_STATE, LOCAL_ENGINE_FAIL_CODES, localEngineStep, engineSwapAnswerOutcomeOf } from './localEngineStep.js';
87
94
  export { LOCAL_ENGINE_TIMING } from './localEngineTiming.js';
88
95
  export { localEngineSeatReadingOf, localEngineSeatSentence, localEngineNoticeText, localEngineFailText, engineTargetLocalOf, engineRestartOutcomeOf, } from './localEngineSeatReading.js';
96
+ export { ENGINE_DRAIN_CLASSES, engineSwapCrossingVerdict, parkedToolApprovalsBySession, engineSwapCrossingText } from './engineSwapCrossing.js';
89
97
  export { transportFailureScene } from './engineWireFor.js';
90
98
  export { engineUrlTransportVerdict, normalizeEngineBaseUrl } from './engineUrl.js';
91
99
  export { submitStreamWithBoundedReopen } from './submitReopen.js';
@@ -110,6 +118,7 @@ export { preemptReceiptLine } from './preemptWire.js';
110
118
  export { readSteerReceipt } from './steerReceipt.js';
111
119
  export * from './sseIdleTriage.js';
112
120
  export * from './engineWireSdk.js';
121
+ export { engineCredentialReleaseVerdictOf, makeLocalEngineWireClient, ENGINE_CREDENTIAL_WITHHOLD_REASONS } from './engineCredentialRelease.js';
113
122
  export * from './classifierVerdictWire.js';
114
123
  export { stripSystemReminderBlocks, unwrapSystemReminder } from './systemReminderTag.js';
115
124
  export { findSystemReminderOpenTag } from './systemReminderTag.js';
@@ -148,6 +157,7 @@ export * from './webSearchWireCaps.js';
148
157
  export * from './liveModelCatalog.js';
149
158
  export * from './modelBudgetRule.js';
150
159
  export * from './modelIdentityResolvability.js';
160
+ export * from './modelConfigGapNotice.js';
151
161
  export * from './sessionModelLatch.js';
152
162
  export * from './modelSwitchFallback.js';
153
163
  export * from './effortWire.js';
@@ -205,6 +215,7 @@ export { engineWireTarget, engineWireTargetFor, installEngineWireTarget, install
205
215
  export * from './principalWire.js';
206
216
  export * from './wireErrorTriage.js';
207
217
  export { WIRE_FAILURE_UNRENDERABLE_TEXT, wireFailureCoreOf, wireFailureTextsOf } from './wireFailureShape.js';
218
+ export { errnoCode, thrownSlotOf } from './wireFailureShape.js';
208
219
  export { guardedRead, readOwnDataFiniteNumber, readOwnDataNonEmptyString } from './ownKey.js';
209
220
  export { contextUsageReadingOf } from './ownKey.js';
210
221
  export { TURN_FAILURE_CATEGORIES, turnFailurePresentation } from './turnFailurePresentation.js';
@@ -217,7 +228,8 @@ export { SEMA_TOOL_HISTORY_ACCEPTED_KEY, classifyToolHistoryMismatch, readToolHi
217
228
  export { toolHistoryBadTurnSentence } from './toolHistoryBadTurn.js';
218
229
  export { deviceFlowPollingPlan } from './deviceFlowPolling.js';
219
230
  export { createPromptDeliveryLedger, promptKnownUndelivered, withoutUndeliveredPrompts } from './promptDelivery.js';
220
- export { mintUserAttachmentEnvelope } from './userAttachmentEnvelope.js';
231
+ export { mintUserAttachmentEnvelope, showAttachmentName } from './userAttachmentEnvelope.js';
232
+ export { showAttachmentNameCc } from './userAttachmentEnvelope.js';
221
233
  export { encodeHumanTurn, deliveredUuidsOf, imageSentOnUnknownVision, otherBodyBytesOf } from './humanTurn.js';
222
234
  export { batchCompatible, planQueuedDelivery, humanTurnCapsOf, humanTextForKeywordScan, selfHealSteerEligible } from './queuedDelivery.js';
223
235
  export { SUBMISSION_SURFACES, SUBMISSION_ORIGINS, SUBMISSION_TOOLS, SUBMISSION_KINDS, submissionProvenanceOf, submissionIdentityOf, requestLaneOf, submissionOriginOf, } from './request/submissionIdentity.js';
@@ -226,6 +238,7 @@ export { taskNotificationAdmissionOf } from './taskNotificationAdmission.js';
226
238
  export { resultErrorCodeInTextOf } from './resultFrameKeys.js';
227
239
  export { humanTurnRefusalSentence, humanTurnDegradedSentence, printImageVisionSentence } from './humanTurnSentences.js';
228
240
  export { observedUserAttachmentSeat, projectUserAttachmentSeatCapability, userAttachmentSeatAdmits } from './userAttachmentSeat.js';
241
+ export { attachmentRouteOf, attachmentWithheldReasonText, attachmentLocalCopyNote, ATTACHMENT_ROUTE_LEGS, TOOLS_LOCATIONS } from './attachmentRoute.js';
229
242
  export { scenarioRefusalFromError, scenarioRefusalContent } from './scenarioRefusal.js';
230
243
  export { projectEngineSessionMessages } from './engineSessionMessages.js';
231
244
  export * from './resumeRefusalCopy.js';
@@ -245,9 +258,11 @@ export * from './detachWire.js';
245
258
  export * from './workflowMonitor.js';
246
259
  export * from './workflowClient.js';
247
260
  export * from './hooksWireCaps.js';
248
- export { ENGINE_FIRED_HOOK_EVENTS, PLUGIN_HOOK_DISPOSITIONS, PLUGIN_HOOK_REASONS, PLUGIN_HOOK_EXCLUSION_REASONS, SETTINGS_HOOK_DROP_REASONS, isEngineFiredHookEvent, pluginHookVerdictOf, pluginHookReasonText, settingsHookDropText, pluginHookExecutorLabel, hooksNotRunNotice, settingsHooksKeptLocally, pluginHooksKeptLocally, userPromptSubmitExecutorOf, } from './pluginHooksWire.js';
261
+ export { ENGINE_FIRED_HOOK_EVENTS, PLUGIN_HOOK_DISPOSITIONS, PLUGIN_HOOK_REASONS, PLUGIN_HOOK_EXCLUSION_REASONS, SETTINGS_HOOK_DROP_REASONS, isEngineFiredHookEvent, pluginHookVerdictOf, pluginHookReasonText, settingsHookDropText, pluginHookExecutorLabel, hooksNotRunNotice, settingsHooksKeptLocally, pluginHooksKeptLocally, userPromptSubmitExecutorOf, HOOK_ENTRY_TYPE_WORDS, } from './pluginHooksWire.js';
262
+ export { sessionHooksRosterOf } from './sessionHooksRoster.js';
249
263
  export { HTTP_POLICY_DROP_REASONS } from './httpHookPolicy.js';
250
264
  export { salvageSettingsHooksEntries, settingsHooksSalvageNotice, } from './settingsHooksSalvage.js';
265
+ export { hostSettingNoticeEventsOf } from './hostSettingNoticeArm.js';
251
266
  export { hostSettingsSelfCheck, HostSettingsRefused, HOST_SUPPLIED_KEYS, HOST_SETTING_CAUSES, HOST_SETTING_DISPOSITIONS, hostSettingsConsent, hostSettingsAcceptCurrent, } from './hostTurnSettings.js';
252
267
  export { hostSettingsSessionFollows, } from './hostSettingsSource.js';
253
268
  export { hookToolAliasesOf, canonicalHookToolName } from './hookToolAliases.js';
@@ -261,13 +276,13 @@ export * from './printInitToolFace.js';
261
276
  export * from './model/providerPresets.js';
262
277
  export { __setDecideTimeoutRetryBudgetForTests, backendDeny, DecideTransportRetryExhaustedError, findPendingForTask, HitlBridge, HitlSafetyError, isPlanReviewModeAfter, makeHitlCanUseTool, MAX_DENY_REASON_CHARS, PLAN_REVIEW_MODE_AFTER_WORDS, readDecideCurrentPending, readWireErrorCode, } from './hitl/hitlBridge.js';
263
278
  export * from './hitl/suspendedReopen.js';
264
- export { APPROVAL_RESOLUTION_LANES, APPROVAL_NOT_SENT_CAUSES, APPROVAL_UNSETTLED_CAUSES, APPROVAL_NOTE_RETRACTED_DETAIL, APPROVAL_NOTE_EDIT_REFUSED_DETAIL, isApprovalDecided, approvalNotSentCause, approvalUnsettledCause, approvalResolutionDetail, } from './hitl/approvalResolution.js';
279
+ export { APPROVAL_RESOLUTION_LANES, APPROVAL_NOT_SENT_CAUSES, APPROVAL_UNSETTLED_CAUSES, APPROVAL_NOTE_RETRACTED_DETAIL, APPROVAL_NOTE_EDIT_REFUSED_DETAIL, isApprovalDecided, approvalNotSentCause, approvalUnsettledCause, approvalResolutionDetail, toolPermissionSettledElsewhereOf, } from './hitl/approvalResolution.js';
265
280
  export { editedApprovalAcceptanceOf, editedApprovalRefusedLine, EDITED_APPROVAL_STATES, EDITED_APPROVAL_BASES } from './hitl/editedApprovalAcceptance.js';
266
281
  export { ENGINE_ABORT_TOOL_RESULT } from './hitl/frameRouter.js';
267
282
  export { toolEndOutputText } from './toolResultContent.js';
268
283
  export { toolOutputMediaAbsenceOf, toolOutputMediaAbsenceSentence } from './toolResultContent.js';
269
284
  export { _resetHitlHostSurfaceForTest, APPROVAL_PARKING_WARN_TEXT, approvalParkingNoticeText, CANCEL_DENY_BUDGET_MS, CANCEL_DENY_WARN_TEXT, EDIT_NOT_FORWARDED_WARN_TEXT, EDIT_REFUSED_ON_BLIND_ASK_WARN_TEXT, hitlHostSurfaceFor, hitlHostSurfaceMisses, hitlHostSurfaceMissesFor, installHitlHostSurface, installHitlHostSurfaceFor, observeCancelByDeny, REMEMBER_NOT_APPLIED_WARN_TEXT, REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT, RULE_NOT_SENT_REJECTED_WARN_TEXT, RULE_NOT_SENT_WARN_TEXT, surfaceEditRefusedOnBlindAsk, surfaceForCurrentSession, surfaceRememberNotApplied, } from './hitl/hitlHostSurface.js';
270
- export { APPROVAL_DENY_SETTLED_BY_WORDS, ASK_ORIGIN_WORDS, RESPOND_DECISIONS, RETRACTED_CARD_DECISION_KIND, RULE_OFFERS_ABSENCE_REASONS, RULE_OFFER_BATCH_MEMBER_KINDS, RULE_OFFER_MATCHES, RULE_OFFER_UNCOVERED_REASONS, TOOL_APPROVAL_FRAME_KEYS_MIRROR, WITHDRAWN_CARD_DECISION_KIND, __resetSettledApprovalsForTests, _resetApprovalCardPortForTest, allowNoteNotCarriedSentence, answerCarriage, answerPayloadFor, approvalBoundGrantsDetail, approvalCardFactsOfFrame, approvalCardFactsOfGeneric, approvalCardFactsOfV1, approvalCardFactsOfV1Frame, approvalCardPortFor, approvalCardPortMisses, approvalCardPortMissesFor, approvalIsMandated, approvalPriorCardsDetail, approvalSupersedesDetail, askProbeReasonDetail, claimApprovalCard, classifierNoRulingDetail, decisionAttributionKeyOf, hasApprovalCardPort, hasApprovalCardPortFor, installApprovalCardPort, installApprovalCardPortFor, isFromSubagent, isToolApprovalFrame, isToolApprovalGate, isToolApprovalRespondParkedRedeemed, isToolApprovalRespondReplayed, joinApprovalHolder, observeApprovalAnswerCommitted, readApprovalBoundGrants, readApprovalCardWord, readApprovalClassifierNoRuling, readApprovalDenySettledBy, readApprovalMandate, readApprovalRememberRefused, readBoundGrantEntry, readDenialLimitFallback, readRuleOfferSupply, readRuleOffers, readToolApprovalRespondAck, readToolApprovalRespondParking, rememberRefusalOf, structurallyEqual, surfaceApprovalCard, surfaceFsApprovalAndDecide, surfaceToolApprovalFrameAndRespond, toolNameIsFsWrite, toolNameIsShellExec, toolPermissionRequestAskBits } from './hitl/toolApprovalWire.js';
285
+ export { APPROVAL_DENY_SETTLED_BY_WORDS, ASK_ORIGIN_WORDS, RESPOND_DECISIONS, RETRACTED_CARD_DECISION_KIND, RULE_OFFERS_ABSENCE_REASONS, RULE_OFFER_BATCH_MEMBER_KINDS, RULE_OFFER_MATCHES, RULE_OFFER_UNCOVERED_REASONS, TOOL_APPROVAL_FRAME_KEYS_MIRROR, WITHDRAWN_CARD_DECISION_KIND, __resetSettledApprovalsForTests, _resetApprovalCardPortForTest, allowNoteNotCarriedSentence, answerCarriage, answerPayloadFor, approvalBoundGrantsDetail, approvalCardFactsOfFrame, approvalCardFactsOfGeneric, approvalCardFactsOfV1, approvalCardFactsOfV1Frame, approvalCardPortFor, approvalCardPortMisses, approvalCardPortMissesFor, approvalCardRequestOf, approvalIsMandated, approvalPriorCardsDetail, approvalSupersedesDetail, askProbeReasonDetail, claimApprovalCard, classifierNoRulingDetail, decisionAttributionKeyOf, hasApprovalCardPort, hasApprovalCardPortFor, installApprovalCardPort, installApprovalCardPortFor, isFromSubagent, isToolApprovalFrame, isToolApprovalGate, isToolApprovalRespondParkedRedeemed, isToolApprovalRespondReplayed, joinApprovalHolder, observeApprovalAnswerCommitted, readApprovalBoundGrants, readApprovalCardWord, readApprovalClassifierNoRuling, readApprovalDenySettledBy, readApprovalMandate, readApprovalRememberRefused, readBoundGrantEntry, readDenialLimitFallback, readRuleOfferSupply, readRuleOffers, readToolApprovalRespondAck, readToolApprovalRespondParking, rememberRefusalOf, structurallyEqual, surfaceApprovalCard, surfaceFsApprovalAndDecide, surfaceToolApprovalFrameAndRespond, toolApprovalReplayVerdictOf, toolNameIsFsWrite, toolNameIsShellExec, toolPermissionRequestAskBits } from './hitl/toolApprovalWire.js';
271
286
  export * from './hitl/approvalCardReading.js';
272
287
  export * from './hitl/approvalCardReasons.js';
273
288
  export { approvalRequestFrameReadingOf, APPROVAL_REQUEST_FRAME_UNREADABLE_WHYS } from './hitl/approvalRequestFrameReading.js';
@@ -283,8 +298,9 @@ export { planReviewCardNote } from './hitl/planReviewCard.js';
283
298
  export { readRunLedgerSnapshot } from './runLedgerSnapshot.js';
284
299
  export { decisionInFlightOf, decisionReadMark } from './hitl/decisionLedger.js';
285
300
  export { ASK_PARK_AUTO_REOPEN_BLOCKS, askParkAutoReopenBlockedContent, askParkAutoReopenBlockOf, askParkRefusalBlockOf, claimAskParkAutoReopenBlockNotice, clearAskParkAutoReopenBlocks, } from './hitl/askParkAutoReopenBlock.js';
286
- export { HITL_DECISION_FAMILIES, HITL_DECISION_NOT_APPLIED_CAUSES, HITL_DECISION_NOT_SENT_CAUSES, HITL_DECISION_UNCONFIRMED_CAUSES, sendHitlDecision, hitlDecisionOutcomeContent, toolPermissionSettledLine, } from './hitl/decisionSend.js';
287
- export { PLAN_REVIEW_QUESTION_ID_PREFIX, REOPEN_ID_TAIL, approvalCallKey, askGateQuestionId, planReviewQuestionId, liveFrameCallKey, armedKeyFromQuestionId, } from './hitl/gateIdentity.js';
301
+ export { HITL_DECISION_FAMILIES, HITL_DECISION_NOT_APPLIED_CAUSES, HITL_DECISION_NOT_SENT_CAUSES, HITL_DECISION_UNCONFIRMED_CAUSES, sendHitlDecision, hitlDecisionOutcomeContent, toolPermissionSettledLine, toolPermissionUnconfirmedOf, toolPermissionUnconfirmedLine, } from './hitl/decisionSend.js';
302
+ export { elicitationRefusedLine } from './hitl/elicitationRefusal.js';
303
+ export { PLAN_REVIEW_QUESTION_ID_PREFIX, REOPEN_ID_TAIL, approvalCallKey, askGateQuestionId, planReviewQuestionId, liveFrameCallKey, armedKeyFromQuestionId, SCREEN_CARD_ORIGINS, questionCardOriginOf, hostReopenQuestionId, hostRunChoiceQuestionId, } from './hitl/gateIdentity.js';
288
304
  export { _resetArmedGateRegistryForTest, _setGateArmedWaitMsForTest, clearArmedGate, gateArmedWaitMs, notePlanReviewAnswered, onGateArmed, planReviewArmedKey, registerArmedGate, registerArmedGateFor, registerArmedGateFromQuestionId, registerArmedGateFromQuestionIdFor, waitForGateArmed, wasGateArmed, wasGateArmedFor, } from './hitl/armedGateRegistry.js';
289
305
  export { askQuestionsFromPending, isHitlSafetyErrorLike, pendingRowIsOwnedByThisSession, pendingRowOwnershipOf, } from './hitl/parkOwnership.js';
290
306
  export * from './hitl/parkRowBirthWait.js';
@@ -296,6 +312,7 @@ export * from './slashCommandGate.js';
296
312
  export * from './mcpStatusSupersetKeys.js';
297
313
  export * from './hitl/persistedRulesWire.js';
298
314
  export * from './hitl/localAllowRule.js';
315
+ export { LOCAL_ALLOW_NOT_REDEEMABLE_REASONS, LOCAL_ALLOW_UNKNOWN_CAUSES, LOCAL_ALLOW_REDEMPTION_REFUSALS, LOCAL_ALLOW_REDEMPTION_UNAVAILABLE_CAUSES, LOCAL_ALLOW_REDEMPTION_UNKNOWN_CAUSES, localAllowRedeemability, redeemReadOnlyRuleOffer, } from './hitl/localAllowRedemption.js';
299
316
  export * from './hitl/sessionPolicyWire.js';
300
317
  export * from './hitl/sessionPolicyDeliverable.js';
301
318
  export { observedSessionRulesNamespaceForms } from './sessionRulesNamespaceFormsCapability.js';
@@ -310,6 +327,7 @@ export { classifyDecisionRefusal, liveAskPendingReading, decisionRefusalClosesOu
310
327
  export { decisionGrantChangedContent } from './hitl/decisionConflict.js';
311
328
  export { decideFailureNote } from './decideFailureNote.js';
312
329
  export { decisionAnswerInvalidContent } from './hitl/decisionConflict.js';
330
+ export { decisionRefusalCarrierOf } from './hitl/decisionRefusalCarrier.js';
313
331
  export { noAllowCauseOf } from './hitl/noAllowCause.js';
314
332
  export { policyDenyReason } from './hitl/frameRouter.js';
315
333
  export { readApprovalAllowRuleShadow, approvalAllowRuleShadowed, allowRuleShadowSentence, } from './hitl/allowRuleShadow.js';
@@ -339,12 +357,23 @@ export { mcpToolTogglesToExcludeTools } from './mcpToolToggles.js';
339
357
  export { readThinkingLatch, writeThinkingLatch, thinkingLatchView, thinkingLatchSentence, thinkingLatchRowWordOf, readSeatThinkingLatch } from './thinkingLatch.js';
340
358
  export { devicesFaceOf, devicesWritesAllowed, devicesFaceDetail } from './devicesFace.js';
341
359
  export { cloudLoginFailureOf, cloudLoginFailureText, engineTargetRefusalText, seatMcpReadingOf, watchEngineTarget } from './engineTargetSeat.js';
342
- export { KEY_SLOT_PREFIX, keyEnvNameForEntry, onboardBaseUrlProblem, onboardRefusalText, onboardWritePlan, onboardWriteVerdict, poolEntryNameOf, probeModelEndpoint, } from './model/onboardJudgement.js';
360
+ export { KEY_SLOT_PREFIX, keyEnvNameForEntry, onboardBaseUrlProblem, onboardRefusalText, onboardWriteVerdict, poolEntryNameOf, probeModelEndpoint, discoverEndpointModels, } from './model/onboardJudgement.js';
361
+ export { LOCAL_CONFIG_DOCUMENTS, globalStateFilePathOf } from './localConfig/documents.js';
362
+ export { LOCAL_CONFIG_UNREADABLE_CAUSES, LOCAL_CONFIG_REFUSALS, LOCAL_CONFIG_NOT_WRITTEN_CAUSES, LOCAL_CONFIG_UNAVAILABLE_CAUSES, LOCAL_CONFIG_UNKNOWN_CAUSES, LOCAL_CONFIG_APPLIES_ON, LOCAL_CONFIG_RESIDUES, LOCAL_CONFIG_STEP_ROLES, LOCAL_CONFIG_WRITE_PRECONDITIONS, LOCAL_CONFIG_DISCLOSURE_KINDS, localConfigAccess, applyLocalConfigIntent, previewLocalConfigIntent, localConfigReceiptSentence, localConfigResidueSentence, localConfigDisclosureSentence, } from './localConfig/kernel.js';
363
+ export { MODEL_POOL_EDIT_KINDS, MODEL_POOL_CHANNEL_SOURCES, MODEL_POOL_CREDENTIAL_KINDS, MODEL_POOL_COMPLETENESS, MODEL_POOL_MAX_BATCH, MODEL_POOL_PROBE_STATES, MODEL_POOL_DEFAULT_KEEP_REASONS, poolWritePlan, modelPoolIntentOf, editModelPoolWith, modelPoolViewOf, effectiveDefaultModelOf, defaultModelChoiceOf, modelPoolRowEditOf, channelProfilesOf, modelPoolEditOfSeat, onboardWritePlan, } from './localConfig/modelPool.js';
364
+ export { LOCAL_CONFIG_WRITE_INTENTS, SETTINGS_WRITE_KEYS, settingsWritePlan, settingsWriteStep } from './localConfig/settingsWrite.js';
365
+ export { MCP_SERVER_SCOPES, MCP_SERVER_ROW_STATES, MCP_SERVER_WITHHELD_CAUSES, mcpProjectChainOf, mcpPathWithinFence, expandMcpServerEntry, mcpServersReport } from './localConfig/mcp/servers.js';
366
+ export { MCP_SERVER_EDIT_OPS, applyMcpServerEdit } from './localConfig/mcp/edit.js';
367
+ export { mcpServerReportView, mcpServerEditOutcomeView, mcpServerEditSentence, probeMcpServerEdit, checkMcpServerEditRequest, checkMcpServerReportView, checkMcpServerEditOutcomeView, checkMcpServerProbeView, } from './localConfig/mcp/views.js';
368
+ export { SKILL_OVERRIDE_STATES, SKILL_ORIGINS, SKILL_OVERRIDE_LAYERS, SKILL_OVERRIDE_DECIDERS, SKILL_OVERRIDE_LOCK_SOURCES, skillOverrideEffectiveOf, skillOverrideLockOf, } from './skillOverrideChain.js';
369
+ export { SKILL_ROOT_LAYERS, SKILL_ROOT_KINDS, SKILLS_VIEW_EXCLUDED_REASONS, SKILLS_VIEW_LAYERS, SKILL_OVERRIDE_SCOPES } from './localConfig/skillsWords.js';
370
+ export { skillRootsOf, skillsViewOf, skillsSetEditOf, skillsClearEditOf, skillOverrideWritePlan, skillCreatePlan, skillRemovePlan, } from './localConfig/skills.js';
343
371
  export * from './agentSession/contract.js';
344
372
  export * from './agentSession/backgroundView.js';
345
373
  export { readAssistantInbox } from './assistantInbox.js';
346
374
  export { checkpointRowVerdictOf } from './checkpointRowVerdict.js';
347
375
  export { checkpointRowBarOf, checkpointRowBarSentence } from './checkpointRowVerdict.js';
376
+ export { decisionRefusalWayOutContent } from './checkpointRowVerdict.js';
348
377
  export { parkedUnresumableRowsOf, parkedUnresumableLine } from './hitl/parkedUnresumable.js';
349
378
  export { checkpointRequirementsDamagedOf } from './checkpointRowVerdict.js';
350
379
  export { READ_CREDENTIAL_NOT_ACCEPTED_NOTICE, isReadCredentialRefusal } from './readCredentialRefusal.js';
@@ -357,15 +386,14 @@ export * from './model/providerAuth.js';
357
386
  export * from './model/providerCatalog.js';
358
387
  export * from './model/tierVocabulary.js';
359
388
  export * from './model/catalogDefault.js';
360
- export { resolveSubagentModelWord, subagentModelWordProblemLine, } from './model/subagentModelWord.js';
389
+ export { resolveSubagentModelWord, subagentModelAdmissionLine, subagentModelAdmissionOf, subagentModelCallRefusalReason, subagentModelWordProblemLine, } from './model/subagentModelWord.js';
361
390
  export * from './model/modelSupplyRules.js';
362
391
  export * from './websearch/searchProviderPresets.js';
363
392
  export * from './env/localeGeo.js';
364
393
  export * from './env/localeTag.js';
365
394
  export * from './env/uiLanguage.js';
366
395
  export { EN_MESSAGES } from './i18n/messages.en.js';
367
- export { ZH_MESSAGES } from './i18n/messages.zh.js';
368
- export { createMissLedger, createTranslator, DATA_FACE_LANGUAGE, msg, renderMessage, translate, uiMissLedger, } from './i18n/translate.js';
396
+ export { createMissLedger, createTranslator, DATA_FACE_LANGUAGE, installMessageCatalog, msg, renderMessage, translate, uiMissLedger, } from './i18n/translate.js';
369
397
  export * from './ruleRemovalConsequence.js';
370
398
  export { engineCredentialRequirementOf } from './engineCredentialRequirement.js';
371
399
  export { credentialProvenance, CREDENTIAL_ATTACH_WORDS } from './credentialProvenance.js';
@@ -385,3 +413,6 @@ export { sessionEngineBindingFor, commitSessionEngine, readSessionEngine, sessio
385
413
  export { foldSessionPlacement } from './deviceRebind.js';
386
414
  export { repointEngine, deviceHelloReadingOf, engineRepointVerdictOf, engineRepointMessageOf } from './engineRepoint.js';
387
415
  export { repointSessionEngine } from './sessionEngine.js';
416
+ export { PENDING_USER_ROW_ID_PREFIX, pendingUserRowIdOf, pendingUserRowUuidOf, isPendingUserRowId } from './pendingUserRow.js';
417
+ export { BUILTIN_OUTPUT_STYLES, builtinOutputStyleOf } from './builtinOutputStyles.js';
418
+ export { CA_PIN_LIMITS, readCenterAddress, trustOriginOf, caFingerprintsOf, caFingerprintOfDer, caFingerprintDisplay, readCaBootstrapBody, caBootstrapOpen, caBootstrapStep, caPinRefusalSentence, } from './consoleCaPin.js';
@@ -1,5 +1,6 @@
1
+ import { INTERRUPT_NOTHING_IN_FLIGHT } from './engineErrorCodes.js';
1
2
  export const RUN_LEVEL_STOP_ERROR_CODES = Object.freeze([
2
- 'interrupt.nothing_in_flight',
3
+ INTERRUPT_NOTHING_IN_FLIGHT,
3
4
  ]);
4
5
  const RUN_LEVEL_STOP_STATUS = 409;
5
6
  function enginePointsToRunLevelStop(outcome) {
@@ -1,6 +1,17 @@
1
1
  import { atMostOnceVerdictOf } from './atMostOnce.js';
2
2
  import { readOwnDataValue } from './ownKey.js';
3
3
  import { noteInteractiveStopRequested, ownSlotOf } from './sessionBackground.js';
4
+ function isLocalBodyShapeRefusal(e) {
5
+ if (e === null || typeof e !== 'object')
6
+ return false;
7
+ try {
8
+ const d = Object.getOwnPropertyDescriptor(e, 'errorCode');
9
+ return d !== undefined && Object.hasOwn(d, 'value') && d.value === 'request.body_shape';
10
+ }
11
+ catch {
12
+ return false;
13
+ }
14
+ }
4
15
  function guardedSlot(e, key) {
5
16
  if (e === null || (typeof e !== 'object' && typeof e !== 'function'))
6
17
  return undefined;
@@ -59,10 +70,17 @@ export async function fireInteractiveInterrupt(runs, taskId, opts = {}) {
59
70
  };
60
71
  let receipt;
61
72
  try {
62
- receipt = await verb.call(runs, taskId, undefined, callOpts);
73
+ receipt = await verb.call(runs, taskId, callOpts);
63
74
  }
64
75
  catch (e) {
65
- return outcomeOfFailure(e);
76
+ if (!isLocalBodyShapeRefusal(e))
77
+ return outcomeOfFailure(e);
78
+ try {
79
+ receipt = await verb.call(runs, taskId, undefined, callOpts);
80
+ }
81
+ catch (e2) {
82
+ return outcomeOfFailure(e2);
83
+ }
66
84
  }
67
85
  const turnCut = turnCutOf(receipt);
68
86
  return { kind: 'halted', ...(turnCut !== undefined ? { turnCut } : {}) };
@@ -9,6 +9,7 @@ export interface LiveModelInfo {
9
9
  routePairing?: string;
10
10
  supportedEffortLevels?: string[];
11
11
  contextWindow?: number;
12
+ contextWindowSource?: string;
12
13
  maxOutputTokens?: number;
13
14
  atMentionable?: boolean;
14
15
  compat?: LiveModelCompat;
@@ -24,6 +25,7 @@ export interface LiveModelCatalog {
24
25
  candidateRejected?: unknown;
25
26
  modelPlane?: {} | null;
26
27
  aliases?: {} | null;
28
+ unreadableRows?: number;
27
29
  }
28
30
  export declare function setLiveModelCatalog(next: LiveModelCatalog | null): void;
29
31
  export declare function setLiveModelCatalogRefresher(fn: (() => Promise<LiveModelCatalog | null>) | null): void;
@@ -177,6 +179,7 @@ export interface LiveModelRowView {
177
179
  readonly provider?: string;
178
180
  readonly reasoning?: boolean;
179
181
  readonly contextWindow?: number;
182
+ readonly contextWindowSource?: ContextWindowSource;
180
183
  readonly maxOutputTokens?: number;
181
184
  readonly isDefault: boolean;
182
185
  readonly vision: ImageVision;
@@ -185,5 +188,6 @@ export interface LiveModelRowView {
185
188
  readonly atMention: AtMentionReading;
186
189
  readonly compat: ModelCompatReading;
187
190
  }
191
+ export type ContextWindowSource = 'declared' | 'assumed' | 'unknown';
188
192
  export declare function liveModelRowsOf(catalog?: LiveModelCatalog | null): readonly LiveModelRowView[] | null;
189
193
  export {};
@@ -2,7 +2,7 @@ import { appendOwnElement, readOwnDataValue } from './ownKey.js';
2
2
  import { frozenJsonCopyOf, liveDefaultModelCopy, liveModelRowCopy } from './model/liveCatalogShape.js';
3
3
  import { msg, renderMessage } from './i18n/translate.js';
4
4
  import { quoteUntrustedForSentence } from './displayUntrusted.js';
5
- import { CC_TIER_ALIASES, TIER_ORDER } from './model/tierVocabulary.js';
5
+ import { engineModelWordKindOf } from './model/engineModelWords.js';
6
6
  let catalog = null;
7
7
  let refresher = null;
8
8
  export function setLiveModelCatalog(next) {
@@ -171,7 +171,7 @@ export function liveDefaultModelName() {
171
171
  return d.kind === 'listed' ? d.name : d.kind === 'not_listed' ? d.id : null;
172
172
  }
173
173
  function isReservedModelWord(word) {
174
- return word === 'default' || TIER_ORDER.includes(word) || Object.hasOwn(CC_TIER_ALIASES, word);
174
+ return engineModelWordKindOf(word) !== undefined;
175
175
  }
176
176
  function droppedDisabledNamed(dropped, name) {
177
177
  if (dropped.kind !== 'reported')
@@ -179,6 +179,9 @@ function droppedDisabledNamed(dropped, name) {
179
179
  return dropped.entries.some((e) => e.identity !== undefined && e.identity.enabled === false && (e.identity.name === name || e.identity.id === name));
180
180
  }
181
181
  function catalogIncomplete(cat, rows, dropped) {
182
+ const carried = ownDataOf(cat, 'unreadableRows');
183
+ if (typeof carried === 'number' && Number.isFinite(carried) && carried > 0)
184
+ return true;
182
185
  const models = ownDataOf(cat, 'models');
183
186
  const n = Array.isArray(models) ? ownDataOf(models, 'length') : undefined;
184
187
  if (typeof n === 'number' && Number.isSafeInteger(n) && n > rows.length)
@@ -588,6 +591,8 @@ export function readLiveModelCatalog(body) {
588
591
  models.push(row);
589
592
  }
590
593
  const out = { models: Object.freeze(models) };
594
+ if (unreadableRows > 0)
595
+ out.unreadableRows = unreadableRows;
591
596
  let defaultModelMalformed = false;
592
597
  if (defaultModelKey.present && defaultModelKey.value !== undefined) {
593
598
  const dm = liveDefaultModelCopy(defaultModelKey.value);
@@ -744,6 +749,10 @@ export function modelCompatOf(model, catalog = getLiveModelCatalog()) {
744
749
  }
745
750
  }
746
751
  const positiveFinite = (v) => (typeof v === 'number' && Number.isFinite(v) && v > 0 ? v : undefined);
752
+ function contextWindowSourceOfRow(row) {
753
+ const v = ownDataOf(row, 'contextWindowSource');
754
+ return v === 'declared' || v === 'assumed' ? v : 'unknown';
755
+ }
747
756
  export function liveModelRowsOf(catalog = getLiveModelCatalog()) {
748
757
  try {
749
758
  if (catalog === null || typeof catalog !== 'object' || Array.isArray(catalog))
@@ -769,7 +778,7 @@ export function liveModelRowsOf(catalog = getLiveModelCatalog()) {
769
778
  ...(id !== undefined ? { id } : {}),
770
779
  ...(provider !== undefined ? { provider } : {}),
771
780
  ...(reasoning !== 'unknown' ? { reasoning: reasoning === 'yes' } : {}),
772
- ...(contextWindow !== undefined ? { contextWindow } : {}),
781
+ ...(contextWindow !== undefined ? { contextWindow, contextWindowSource: contextWindowSourceOfRow(row) } : {}),
773
782
  ...(maxOutputTokens !== undefined ? { maxOutputTokens } : {}),
774
783
  isDefault: def.kind === 'listed' && def.name === name,
775
784
  vision: imageVisionOf(name, catalog),
@@ -0,0 +1,61 @@
1
+ export declare const LOCAL_CONFIG_DOCUMENTS: readonly [Readonly<{
2
+ readonly name: "userSettings";
3
+ readonly template: "{configHome}/settings.json";
4
+ readonly schema: "units";
5
+ readonly lockRank: "userSettings";
6
+ readonly heat: "hot";
7
+ }>, Readonly<{
8
+ readonly name: "projectSettings";
9
+ readonly template: "{project}/.sema/settings.json";
10
+ readonly schema: "units";
11
+ readonly lockRank: "projectSettings";
12
+ readonly heat: "cold";
13
+ }>, Readonly<{
14
+ readonly name: "localSettings";
15
+ readonly template: "{project}/.sema/settings.local.json";
16
+ readonly schema: "units";
17
+ readonly lockRank: "localSettings";
18
+ readonly heat: "hot";
19
+ }>, Readonly<{
20
+ readonly name: "globalConfig";
21
+ readonly template: "{configHome}/.sema{oauthSuffix}.json";
22
+ readonly schema: "requested";
23
+ readonly lockRank: "globalConfig";
24
+ readonly heat: "hot";
25
+ }>, Readonly<{
26
+ readonly name: "projectMcp";
27
+ readonly template: "{project}/.mcp.json";
28
+ readonly schema: "requested";
29
+ readonly lockRank: "projectMcp";
30
+ readonly heat: "cold";
31
+ }>, Readonly<{
32
+ readonly name: "models";
33
+ readonly template: "{configHome}/config.d/models.json";
34
+ readonly schema: "whole";
35
+ readonly lockRank: "models";
36
+ readonly heat: "cold";
37
+ }>, Readonly<{
38
+ readonly name: "deploymentMcp";
39
+ readonly template: "{configHome}/config.d/mcp.json";
40
+ readonly schema: "whole";
41
+ readonly lockRank: null;
42
+ readonly heat: "cold";
43
+ }>, Readonly<{
44
+ readonly name: "policySettings";
45
+ readonly template: "{managed}/managed-settings.json";
46
+ readonly schema: "units";
47
+ readonly lockRank: null;
48
+ readonly heat: "cold";
49
+ }>];
50
+ export type LocalConfigDocument = (typeof LOCAL_CONFIG_DOCUMENTS)[number];
51
+ export type LocalConfigDocumentName = LocalConfigDocument['name'];
52
+ export type LocalConfigWritableDocumentName = Extract<LocalConfigDocument, {
53
+ readonly lockRank: string;
54
+ }>['name'];
55
+ export declare function localConfigDocumentOf<V>(name: V): LocalConfigDocument | undefined;
56
+ export declare function isWritableLocalConfigDocument<V>(name: V): name is V & LocalConfigWritableDocumentName;
57
+ export interface GlobalStateFilePlace {
58
+ readonly configHome: string;
59
+ readonly oauthSuffix?: string;
60
+ }
61
+ export declare function globalStateFilePathOf(place: GlobalStateFilePlace): string | undefined;
@@ -0,0 +1,51 @@
1
+ export const LOCAL_CONFIG_DOCUMENTS = Object.freeze([
2
+ Object.freeze({ name: 'userSettings', template: '{configHome}/settings.json', schema: 'units', lockRank: 'userSettings', heat: 'hot' }),
3
+ Object.freeze({ name: 'projectSettings', template: '{project}/.sema/settings.json', schema: 'units', lockRank: 'projectSettings', heat: 'cold' }),
4
+ Object.freeze({ name: 'localSettings', template: '{project}/.sema/settings.local.json', schema: 'units', lockRank: 'localSettings', heat: 'hot' }),
5
+ Object.freeze({ name: 'globalConfig', template: '{configHome}/.sema{oauthSuffix}.json', schema: 'requested', lockRank: 'globalConfig', heat: 'hot' }),
6
+ Object.freeze({ name: 'projectMcp', template: '{project}/.mcp.json', schema: 'requested', lockRank: 'projectMcp', heat: 'cold' }),
7
+ Object.freeze({ name: 'models', template: '{configHome}/config.d/models.json', schema: 'whole', lockRank: 'models', heat: 'cold' }),
8
+ Object.freeze({ name: 'deploymentMcp', template: '{configHome}/config.d/mcp.json', schema: 'whole', lockRank: null, heat: 'cold' }),
9
+ Object.freeze({ name: 'policySettings', template: '{managed}/managed-settings.json', schema: 'units', lockRank: null, heat: 'cold' }),
10
+ ]);
11
+ export function localConfigDocumentOf(name) {
12
+ if (typeof name !== 'string')
13
+ return undefined;
14
+ return LOCAL_CONFIG_DOCUMENTS.find((d) => d.name === name);
15
+ }
16
+ export function isWritableLocalConfigDocument(name) {
17
+ const row = localConfigDocumentOf(name);
18
+ return row !== undefined && row.lockRank !== null;
19
+ }
20
+ const OAUTH_SUFFIX_RE = /^(?:-[a-z0-9]+)*$/;
21
+ export function globalStateFilePathOf(place) {
22
+ try {
23
+ if (typeof place !== 'object' || place === null)
24
+ return undefined;
25
+ const homeDesc = Object.getOwnPropertyDescriptor(place, 'configHome');
26
+ const home = homeDesc !== undefined && Object.hasOwn(homeDesc, 'value') ? homeDesc.value : undefined;
27
+ if (typeof home !== 'string' || home.length === 0 || home.includes('\u0000'))
28
+ return undefined;
29
+ const suffixDesc = Object.getOwnPropertyDescriptor(place, 'oauthSuffix');
30
+ if (suffixDesc !== undefined && !Object.hasOwn(suffixDesc, 'value'))
31
+ return undefined;
32
+ const suffix = suffixDesc === undefined || suffixDesc.value === undefined ? '' : suffixDesc.value;
33
+ if (typeof suffix !== 'string' || !OAUTH_SUFFIX_RE.test(suffix))
34
+ return undefined;
35
+ const sep = home.includes('\\') && !home.includes('/') ? '\\' : '/';
36
+ const row = LOCAL_CONFIG_DOCUMENTS.find((d) => d.name === 'globalConfig');
37
+ if (row === undefined)
38
+ return undefined;
39
+ const slot = '{configHome}/';
40
+ if (!row.template.startsWith(slot))
41
+ return undefined;
42
+ const rest = row.template.slice(slot.length).replace('{oauthSuffix}', suffix);
43
+ let base = home;
44
+ while (base.length > 1 && (base.endsWith('/') || base.endsWith('\\')))
45
+ base = base.slice(0, -1);
46
+ return base === '/' || base === '\\' ? `${base}${rest}` : `${base}${sep}${rest}`;
47
+ }
48
+ catch {
49
+ return undefined;
50
+ }
51
+ }
@@ -0,0 +1,149 @@
1
+ import type { SettingsDocument } from '../host.js';
2
+ import type { UiLanguage } from '../env/uiLanguage.js';
3
+ import { type LocalConfigDocumentName, type LocalConfigWritableDocumentName } from './documents.js';
4
+ export declare const LOCAL_CONFIG_UNREADABLE_CAUSES: readonly ["bad_json", "bad_shape", "io"];
5
+ export type LocalConfigUnreadableCause = (typeof LOCAL_CONFIG_UNREADABLE_CAUSES)[number];
6
+ export type LocalConfigFileReading = {
7
+ readonly status: 'loaded';
8
+ readonly doc: SettingsDocument;
9
+ readonly revision: string;
10
+ } | {
11
+ readonly status: 'absent';
12
+ } | {
13
+ readonly status: 'unreadable';
14
+ readonly cause: LocalConfigUnreadableCause;
15
+ } | {
16
+ readonly status: 'outside_fence';
17
+ };
18
+ export type LocalConfigFilesReading = {
19
+ readonly [D in LocalConfigDocumentName]?: LocalConfigFileReading;
20
+ };
21
+ export declare const LOCAL_CONFIG_REFUSALS: readonly ["invalid_request", "scope_unreadable", "scope_unwritable", "untrusted_folder", "policy_denied", "not_found", "already_exists", "lock_busy", "lock_failed", "changed_during_write", "write_failed", "not_written", "name_unusable", "name_reserved", "mcp_entry_invalid", "ambiguous_scope", "credentials_need_reentry", "base_conflict", "skill_locked_by_higher_layer", "skill_managed_by_plugin", "skill_locked_by_author", "skill_name_unstorable", "entry_in_use", "credential_unpaired", "env_catalog_present", "probe_failed", "probe_unverified"];
22
+ export type LocalConfigRefusal = (typeof LOCAL_CONFIG_REFUSALS)[number];
23
+ export declare const LOCAL_CONFIG_NOT_WRITTEN_CAUSES: readonly ["lock_busy", "lock_failed", "changed_during_write", "write_failed"];
24
+ export type LocalConfigNotWrittenCause = (typeof LOCAL_CONFIG_NOT_WRITTEN_CAUSES)[number];
25
+ export declare const LOCAL_CONFIG_UNAVAILABLE_CAUSES: readonly ["engine_is_remote", "not_single_user", "config_home_unpinned", "domain_not_hosted"];
26
+ export type LocalConfigUnavailableCause = (typeof LOCAL_CONFIG_UNAVAILABLE_CAUSES)[number];
27
+ export declare const LOCAL_CONFIG_UNKNOWN_CAUSES: readonly ["commit_unconfirmed", "report_unreadable"];
28
+ export type LocalConfigUnknownCause = (typeof LOCAL_CONFIG_UNKNOWN_CAUSES)[number];
29
+ export declare const LOCAL_CONFIG_APPLIES_ON: readonly ["next_turn", "engine_reload", "next_engine_start"];
30
+ export type LocalConfigAppliesOn = (typeof LOCAL_CONFIG_APPLIES_ON)[number];
31
+ export declare const LOCAL_CONFIG_RESIDUES: readonly ["orphan_key_slot", "legacy_tier_groups_left"];
32
+ export type LocalConfigResidue = (typeof LOCAL_CONFIG_RESIDUES)[number];
33
+ export declare const LOCAL_CONFIG_DISCLOSURE_KINDS: readonly ["decided_by", "shadowed_by", "tier_group_overridden"];
34
+ export type LocalConfigDisclosureKind = (typeof LOCAL_CONFIG_DISCLOSURE_KINDS)[number];
35
+ export interface LocalConfigDisclosure {
36
+ readonly kind: LocalConfigDisclosureKind;
37
+ readonly layer?: LocalConfigDocumentName;
38
+ readonly detail?: string;
39
+ }
40
+ export declare const LOCAL_CONFIG_STEP_ROLES: readonly ["prepare", "effect", "cleanup"];
41
+ export type LocalConfigStepRole = (typeof LOCAL_CONFIG_STEP_ROLES)[number];
42
+ export type LocalConfigReceipt = {
43
+ readonly kind: 'applied';
44
+ readonly appliesOn: LocalConfigAppliesOn;
45
+ readonly changed: boolean;
46
+ readonly residue?: readonly LocalConfigResidue[];
47
+ readonly disclosures?: readonly LocalConfigDisclosure[];
48
+ } | {
49
+ readonly kind: 'refused';
50
+ readonly reason: LocalConfigRefusal;
51
+ readonly detail?: string;
52
+ readonly residue?: readonly LocalConfigResidue[];
53
+ } | {
54
+ readonly kind: 'unavailable';
55
+ readonly cause: LocalConfigUnavailableCause;
56
+ } | {
57
+ readonly kind: 'unknown';
58
+ readonly cause: LocalConfigUnknownCause;
59
+ readonly residue?: readonly LocalConfigResidue[];
60
+ };
61
+ export type LocalConfigPreview = {
62
+ readonly kind: 'preview';
63
+ readonly appliesOn: LocalConfigAppliesOn;
64
+ readonly changed: boolean;
65
+ readonly writes: readonly LocalConfigWritableDocumentName[];
66
+ readonly disclosures?: readonly LocalConfigDisclosure[];
67
+ } | Extract<LocalConfigReceipt, {
68
+ readonly kind: 'refused' | 'unavailable';
69
+ }>;
70
+ export declare const LOCAL_CONFIG_WRITE_PRECONDITIONS: readonly ["shared_path_lock", "lock_loss_returned", "writers_joined", "shared_rank", "global_state_migrated", "targets_bound_by_host", "write_route"];
71
+ export type LocalConfigWritePrecondition = (typeof LOCAL_CONFIG_WRITE_PRECONDITIONS)[number];
72
+ export interface LocalConfigHostFacts {
73
+ readonly engine: 'local' | 'cloud';
74
+ readonly tenancy: 'single_user' | 'multi_tenant';
75
+ readonly configHomePinned?: boolean;
76
+ readonly route: 'host' | 'seat_proxy' | 'bff_direct';
77
+ readonly targetsBoundByHost?: boolean;
78
+ readonly sharedPathLock?: boolean;
79
+ readonly lockLossReturned?: boolean;
80
+ readonly writersJoined?: boolean;
81
+ readonly sharedRanks?: readonly string[];
82
+ readonly globalStateMigrated?: boolean;
83
+ }
84
+ export type LocalConfigAccessRequest = {
85
+ readonly access: 'read';
86
+ } | {
87
+ readonly access: 'write';
88
+ readonly docs: readonly LocalConfigDocumentName[];
89
+ };
90
+ export type LocalConfigAccess = {
91
+ readonly ok: true;
92
+ } | {
93
+ readonly ok: false;
94
+ readonly cause: LocalConfigUnavailableCause;
95
+ readonly missing: readonly LocalConfigWritePrecondition[];
96
+ };
97
+ export declare function localConfigAccess(facts: LocalConfigHostFacts, request: LocalConfigAccessRequest): LocalConfigAccess;
98
+ export interface LocalConfigTransactStep {
99
+ readonly lock: readonly LocalConfigWritableDocumentName[];
100
+ readonly snapshot: readonly LocalConfigDocumentName[];
101
+ }
102
+ export interface LocalConfigFileWrite {
103
+ readonly doc: LocalConfigWritableDocumentName;
104
+ readonly next: SettingsDocument;
105
+ readonly expectRevision: string | null;
106
+ }
107
+ export type LocalConfigCommitReport = 'committed' | 'no_write' | {
108
+ readonly notCommitted: LocalConfigNotWrittenCause | undefined;
109
+ };
110
+ export interface LocalConfigStorePort {
111
+ read(docs: readonly LocalConfigDocumentName[]): LocalConfigFilesReading | Promise<LocalConfigFilesReading>;
112
+ transact(step: LocalConfigTransactStep, build: (fresh: LocalConfigFilesReading) => LocalConfigFileWrite | undefined): Promise<LocalConfigCommitReport>;
113
+ }
114
+ export interface LocalConfigStepInput {
115
+ readonly fresh: LocalConfigFilesReading;
116
+ readonly carried: SettingsDocument;
117
+ readonly mode: 'commit' | 'preview';
118
+ }
119
+ export type LocalConfigStepPlan = {
120
+ readonly kind: 'write';
121
+ readonly next: SettingsDocument;
122
+ readonly carry?: SettingsDocument;
123
+ readonly disclose?: readonly LocalConfigDisclosure[];
124
+ } | {
125
+ readonly kind: 'unchanged';
126
+ readonly carry?: SettingsDocument;
127
+ readonly disclose?: readonly LocalConfigDisclosure[];
128
+ } | {
129
+ readonly kind: 'refuse';
130
+ readonly reason: LocalConfigRefusal;
131
+ readonly detail?: string;
132
+ };
133
+ export interface LocalConfigStep {
134
+ readonly doc: LocalConfigWritableDocumentName;
135
+ readonly role: LocalConfigStepRole;
136
+ readonly residue?: LocalConfigResidue;
137
+ readonly lock?: readonly LocalConfigWritableDocumentName[];
138
+ readonly snapshot?: readonly LocalConfigDocumentName[];
139
+ readonly plan: (input: LocalConfigStepInput) => LocalConfigStepPlan;
140
+ }
141
+ export interface LocalConfigIntent {
142
+ readonly appliesOn: LocalConfigAppliesOn;
143
+ readonly steps: readonly LocalConfigStep[];
144
+ }
145
+ export declare function applyLocalConfigIntent(intent: LocalConfigIntent, store: LocalConfigStorePort, facts: LocalConfigHostFacts): Promise<LocalConfigReceipt>;
146
+ export declare function previewLocalConfigIntent(intent: LocalConfigIntent, store: LocalConfigStorePort, facts: LocalConfigHostFacts): Promise<LocalConfigPreview>;
147
+ export declare function localConfigReceiptSentence(receipt: LocalConfigReceipt | LocalConfigPreview, lang?: UiLanguage): string;
148
+ export declare function localConfigDisclosureSentence(disclosure: LocalConfigDisclosure, lang?: UiLanguage): string | undefined;
149
+ export declare function localConfigResidueSentence(residue: LocalConfigResidue, lang?: UiLanguage): string | undefined;