@sema-agent/client-core 0.99.0 → 0.101.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 (374) hide show
  1. package/CHANGELOG.md +572 -0
  2. package/README.md +174 -114
  3. package/dist/adapt/arms.js +109 -50
  4. package/dist/adapt/panelTasks.d.ts +2 -1
  5. package/dist/adapt/panelTasks.js +32 -9
  6. package/dist/adapt/textStream.d.ts +1 -1
  7. package/dist/adapt/textStream.js +58 -32
  8. package/dist/adapt/toolCards.js +9 -8
  9. package/dist/adapt.js +7 -1
  10. package/dist/adapter/activeRunSelfHeal.d.ts +31 -2
  11. package/dist/adapter/activeRunSelfHeal.js +162 -13
  12. package/dist/adapter/downstream/eventToSdkMessage.d.ts +25 -6
  13. package/dist/adapter/downstream/eventToSdkMessage.js +157 -20
  14. package/dist/adapter/downstream/terminalToSdkResult.d.ts +60 -1
  15. package/dist/adapter/downstream/terminalToSdkResult.js +219 -39
  16. package/dist/adapter/downstream/wiringManifestView.d.ts +3 -1
  17. package/dist/adapter/downstream/wiringManifestView.js +1 -0
  18. package/dist/adapter/runStream.d.ts +4 -4
  19. package/dist/adapter/runStream.js +184 -42
  20. package/dist/adapter/types.d.ts +2 -0
  21. package/dist/agentsWireCaps.d.ts +9 -7
  22. package/dist/agentsWireCaps.js +101 -17
  23. package/dist/approvalDecidedByCapability.js +2 -2
  24. package/dist/approvalFrameFamilies.d.ts +33 -0
  25. package/dist/approvalFrameFamilies.js +120 -0
  26. package/dist/approvalsStreamLiveCapability.js +2 -2
  27. package/dist/attachmentsWireCaps.js +41 -13
  28. package/dist/callerCwdCapability.js +2 -2
  29. package/dist/centerWiringCapability.js +2 -2
  30. package/dist/clockReading.d.ts +2 -0
  31. package/dist/clockReading.js +4 -0
  32. package/dist/cloudConfigWireCaps.d.ts +28 -5
  33. package/dist/cloudConfigWireCaps.js +334 -103
  34. package/dist/compactionStatus.d.ts +34 -0
  35. package/dist/compactionStatus.js +196 -0
  36. package/dist/coreValuePorts.d.ts +12 -2
  37. package/dist/coreValuePorts.js +9 -0
  38. package/dist/decideFailureNote.js +8 -6
  39. package/dist/decideReceipt.js +2 -2
  40. package/dist/deviceExecutorManagementCapability.js +2 -2
  41. package/dist/deviceFlowPolling.js +1 -1
  42. package/dist/disableSkillsWire.d.ts +1 -1
  43. package/dist/disableSkillsWire.js +4 -3
  44. package/dist/displayUntrusted.d.ts +1 -0
  45. package/dist/displayUntrusted.js +215 -13
  46. package/dist/engineAgentPanelStore.d.ts +7 -4
  47. package/dist/engineCapReader.js +1 -1
  48. package/dist/engineConfigDrift.js +1 -1
  49. package/dist/engineErrorCodes.d.ts +23 -6
  50. package/dist/engineErrorCodes.js +36 -11
  51. package/dist/engineGenerationConvergence.d.ts +39 -0
  52. package/dist/engineGenerationConvergence.js +95 -0
  53. package/dist/engineGenerationPort.d.ts +61 -0
  54. package/dist/engineGenerationPort.js +144 -0
  55. package/dist/engineHealthFacts.d.ts +23 -0
  56. package/dist/engineHealthFacts.js +92 -0
  57. package/dist/engineIdentity.d.ts +4 -0
  58. package/dist/engineIdentity.js +11 -0
  59. package/dist/engineNoticeCodes.d.ts +2 -5
  60. package/dist/engineRowRef.js +4 -0
  61. package/dist/engineSessionMessages.js +2 -2
  62. package/dist/engineToolDirectory.d.ts +3 -0
  63. package/dist/engineToolDirectory.js +6 -4
  64. package/dist/engineWireFor.d.ts +99 -0
  65. package/dist/engineWireFor.js +248 -6
  66. package/dist/engineWireTarget.d.ts +1 -0
  67. package/dist/engineWireTarget.js +8 -0
  68. package/dist/env/uiLanguage.js +1 -1
  69. package/dist/errorSupplementRoles.d.ts +3 -0
  70. package/dist/errorSupplementRoles.js +37 -0
  71. package/dist/eventLeg.d.ts +1 -7
  72. package/dist/eventLeg.js +7 -8
  73. package/dist/executionLaneCapability.js +2 -2
  74. package/dist/fileHistoryCaptureCapability.d.ts +0 -3
  75. package/dist/fileHistoryCaptureCapability.js +3 -7
  76. package/dist/finalVerifyWire.d.ts +6 -3
  77. package/dist/finalVerifyWire.js +6 -23
  78. package/dist/flagInput.d.ts +4 -0
  79. package/dist/flagInput.js +24 -0
  80. package/dist/fleet/fleetLedger.js +5 -2
  81. package/dist/fleet/fleetProjection.d.ts +1 -0
  82. package/dist/fleet/fleetProjection.js +15 -2
  83. package/dist/gateVocabulary.js +3 -0
  84. package/dist/generated/engineFactTables.d.ts +7 -2
  85. package/dist/generated/engineFactTables.js +79 -0
  86. package/dist/generated/engineNoticeTables.js +15 -0
  87. package/dist/generated/settingsSchemaActiveTiers.d.ts +1 -0
  88. package/dist/generated/settingsSchemaActiveTiers.js +14 -0
  89. package/dist/generated/settingsSchemaCallerTextEcho.d.ts +1 -0
  90. package/dist/generated/settingsSchemaCallerTextEcho.js +8 -0
  91. package/dist/generated/settingsSchemaControlAndBidi.d.ts +1 -0
  92. package/dist/generated/settingsSchemaControlAndBidi.js +8 -0
  93. package/dist/generated/settingsSchemaDefaultModel.d.ts +11 -0
  94. package/dist/generated/settingsSchemaDefaultModel.js +25 -0
  95. package/dist/generated/settingsSchemaFns.d.ts +66 -0
  96. package/dist/generated/settingsSchemaFns.js +38 -0
  97. package/dist/generated/settingsSchemaMcpRequestEntry.d.ts +1 -0
  98. package/dist/generated/settingsSchemaMcpRequestEntry.js +156 -0
  99. package/dist/generated/settingsSchemaSafetyMergeSpec.d.ts +1 -0
  100. package/dist/generated/settingsSchemaSafetyMergeSpec.js +95 -0
  101. package/dist/generated/settingsSchemaSettingsSources.d.ts +1 -0
  102. package/dist/generated/settingsSchemaSettingsSources.js +58 -0
  103. package/dist/generated/settingsSchemaTables.d.ts +3 -0
  104. package/dist/generated/settingsSchemaTables.js +18 -0
  105. package/dist/generated/settingsSchemaTypes.d.ts +28 -0
  106. package/dist/generated/settingsSchemaUrlPattern.d.ts +1 -0
  107. package/dist/generated/settingsSchemaUrlPattern.js +183 -0
  108. package/dist/headlessPermissionModeWire.d.ts +18 -2
  109. package/dist/headlessPermissionModeWire.js +30 -19
  110. package/dist/hitl/allowRuleShadow.js +9 -7
  111. package/dist/hitl/approvalCardReading.d.ts +3 -0
  112. package/dist/hitl/approvalCardReading.js +17 -0
  113. package/dist/hitl/approvalCardReasons.js +2 -2
  114. package/dist/hitl/approvalCompleteParked.js +1 -1
  115. package/dist/hitl/approvalDelivery.d.ts +87 -0
  116. package/dist/hitl/approvalDelivery.js +193 -0
  117. package/dist/hitl/approvalHolds.d.ts +14 -0
  118. package/dist/hitl/approvalHolds.js +41 -0
  119. package/dist/hitl/approvalResolution.d.ts +11 -0
  120. package/dist/hitl/approvalResolution.js +50 -11
  121. package/dist/hitl/askClassPair.d.ts +8 -2
  122. package/dist/hitl/askClassPair.js +31 -4
  123. package/dist/hitl/askParkAutoReopenBlock.d.ts +30 -0
  124. package/dist/hitl/askParkAutoReopenBlock.js +117 -0
  125. package/dist/hitl/askParkRowRouting.js +4 -1
  126. package/dist/hitl/attributionLadder.d.ts +62 -0
  127. package/dist/hitl/attributionLadder.js +138 -0
  128. package/dist/hitl/automaticAnswerVerdict.d.ts +6 -1
  129. package/dist/hitl/automaticAnswerVerdict.js +46 -11
  130. package/dist/hitl/crashConverged.js +2 -2
  131. package/dist/hitl/decisionConflict.d.ts +6 -2
  132. package/dist/hitl/decisionConflict.js +24 -9
  133. package/dist/hitl/decisionLedger.d.ts +55 -0
  134. package/dist/hitl/decisionLedger.js +156 -0
  135. package/dist/hitl/decisionRefusal.d.ts +21 -10
  136. package/dist/hitl/decisionRefusal.js +100 -55
  137. package/dist/hitl/decisionSend.d.ts +116 -0
  138. package/dist/hitl/decisionSend.js +563 -0
  139. package/dist/hitl/frameRouter.d.ts +1 -0
  140. package/dist/hitl/frameRouter.js +9 -2
  141. package/dist/hitl/hitlBridge.d.ts +18 -6
  142. package/dist/hitl/hitlBridge.js +59 -43
  143. package/dist/hitl/livePendingAsk.js +4 -3
  144. package/dist/hitl/noAllowCause.js +1 -1
  145. package/dist/hitl/parkResolver.js +3 -2
  146. package/dist/hitl/persistedRulesWire.js +1 -0
  147. package/dist/hitl/planReviewWire.d.ts +4 -0
  148. package/dist/hitl/planReviewWire.js +104 -106
  149. package/dist/hitl/resumeRunningCard.d.ts +3 -2
  150. package/dist/hitl/resumeRunningCard.js +17 -11
  151. package/dist/hitl/sessionPolicyDeliverable.d.ts +5 -2
  152. package/dist/hitl/sessionPolicyDeliverable.js +65 -35
  153. package/dist/hitl/sessionPolicyWire.d.ts +13 -3
  154. package/dist/hitl/sessionPolicyWire.js +81 -16
  155. package/dist/hitl/standingRows.js +1 -1
  156. package/dist/hitl/toolApprovalWire.d.ts +9 -10
  157. package/dist/hitl/toolApprovalWire.js +103 -151
  158. package/dist/hookMatcherVerdict.d.ts +2 -0
  159. package/dist/hookMatcherVerdict.js +12 -0
  160. package/dist/hooksCompactTransition.d.ts +19 -0
  161. package/dist/hooksCompactTransition.js +41 -0
  162. package/dist/hooksWireCaps.d.ts +1 -1
  163. package/dist/hooksWireCaps.js +202 -203
  164. package/dist/host.d.ts +1 -14
  165. package/dist/host.js +0 -8
  166. package/dist/hostCallbackGuard.d.ts +1 -0
  167. package/dist/hostCallbackGuard.js +1 -1
  168. package/dist/hostSettingsSource.d.ts +172 -0
  169. package/dist/hostSettingsSource.js +675 -0
  170. package/dist/hostTurnSettings.d.ts +114 -19
  171. package/dist/hostTurnSettings.js +966 -68
  172. package/dist/httpHookPolicy.d.ts +37 -0
  173. package/dist/httpHookPolicy.js +176 -0
  174. package/dist/humanTurn.d.ts +4 -2
  175. package/dist/humanTurn.js +40 -10
  176. package/dist/humanTurnRead.js +4 -3
  177. package/dist/humanTurnSentences.d.ts +10 -0
  178. package/dist/humanTurnSentences.js +74 -0
  179. package/dist/i18n/messages.en.d.ts +313 -0
  180. package/dist/i18n/messages.en.js +326 -13
  181. package/dist/i18n/messages.zh.js +341 -13
  182. package/dist/i18n/translate.js +3 -3
  183. package/dist/index.d.ts +85 -15
  184. package/dist/index.js +53 -12
  185. package/dist/inheritEnvCapability.d.ts +4 -1
  186. package/dist/inheritEnvCapability.js +38 -17
  187. package/dist/inheritEnvWire.d.ts +2 -1
  188. package/dist/inheritEnvWire.js +11 -5
  189. package/dist/injectionLaneNotice.d.ts +5 -0
  190. package/dist/injectionLaneNotice.js +46 -0
  191. package/dist/interactiveToolsWire.d.ts +4 -2
  192. package/dist/interactiveToolsWire.js +5 -5
  193. package/dist/jsonFaithful.d.ts +20 -0
  194. package/dist/jsonFaithful.js +152 -0
  195. package/dist/limitsWire.d.ts +7 -2
  196. package/dist/limitsWire.js +19 -13
  197. package/dist/liveInitToolFace.d.ts +6 -1
  198. package/dist/liveInitToolFace.js +5 -3
  199. package/dist/liveModelCatalog.d.ts +22 -0
  200. package/dist/liveModelCatalog.js +132 -18
  201. package/dist/mcpPanel.js +3 -1
  202. package/dist/mcpProbeCapability.js +2 -2
  203. package/dist/mcpReconnect.js +2 -2
  204. package/dist/mcpStatusSupersetKeys.d.ts +24 -0
  205. package/dist/mcpStatusSupersetKeys.js +45 -0
  206. package/dist/mcpToolToggles.d.ts +6 -0
  207. package/dist/mcpToolToggles.js +47 -0
  208. package/dist/mcpWireCaps.d.ts +48 -4
  209. package/dist/mcpWireCaps.js +338 -99
  210. package/dist/mcpWireTransport.d.ts +4 -0
  211. package/dist/mcpWireTransport.js +18 -0
  212. package/dist/memoryComplianceCapability.js +2 -2
  213. package/dist/memoryOriginCapability.js +2 -2
  214. package/dist/model/catalogDefault.d.ts +24 -0
  215. package/dist/model/catalogDefault.js +4 -0
  216. package/dist/model/liveCatalogShape.js +5 -4
  217. package/dist/model/modelsPolicy.js +4 -3
  218. package/dist/model/onboardJudgement.d.ts +1 -0
  219. package/dist/model/onboardJudgement.js +1 -1
  220. package/dist/model/subagentModelWord.js +2 -2
  221. package/dist/modelCapabilityProbe.d.ts +2 -1
  222. package/dist/modelCapabilityProbe.js +16 -15
  223. package/dist/modelIdentityResolvability.d.ts +12 -1
  224. package/dist/modelIdentityResolvability.js +69 -28
  225. package/dist/modsKernelIdentity.d.ts +10 -0
  226. package/dist/modsKernelIdentity.js +103 -0
  227. package/dist/modsKernelTransit.d.ts +8 -0
  228. package/dist/modsKernelTransit.js +6 -0
  229. package/dist/notifications.d.ts +30 -12
  230. package/dist/notifications.js +241 -53
  231. package/dist/outputStyleSeatCapability.js +2 -2
  232. package/dist/ownKey.d.ts +37 -0
  233. package/dist/ownKey.js +238 -2
  234. package/dist/panelReduce.d.ts +5 -0
  235. package/dist/panelReduce.js +45 -13
  236. package/dist/panelStateHolder.d.ts +1 -0
  237. package/dist/panelStateHolder.js +10 -1
  238. package/dist/peerFrames.d.ts +1 -1
  239. package/dist/peerFrames.js +6 -2
  240. package/dist/peerLaneCapability.js +2 -2
  241. package/dist/permissionModesCapability.js +4 -4
  242. package/dist/permissionRuleIssue.d.ts +2 -1
  243. package/dist/permissionRuleIssue.js +24 -21
  244. package/dist/permissionRulesWriteCapability.js +2 -2
  245. package/dist/permissionsAllowGrantCapability.js +2 -2
  246. package/dist/permissionsDeclaration.d.ts +43 -4
  247. package/dist/permissionsDeclaration.js +102 -35
  248. package/dist/pluginHooksWire.d.ts +20 -4
  249. package/dist/pluginHooksWire.js +101 -60
  250. package/dist/prepareRefusal.d.ts +9 -0
  251. package/dist/prepareRefusal.js +90 -0
  252. package/dist/printInitToolFace.js +2 -2
  253. package/dist/printModelStatus.js +1 -1
  254. package/dist/projectMemory.d.ts +32 -0
  255. package/dist/projectMemory.js +70 -0
  256. package/dist/promptBlockedCopy.d.ts +2 -1
  257. package/dist/promptBlockedCopy.js +2 -1
  258. package/dist/promptDelivery.d.ts +23 -3
  259. package/dist/promptDelivery.js +169 -30
  260. package/dist/providerRejection.d.ts +19 -1
  261. package/dist/providerRejection.js +75 -4
  262. package/dist/queuedDelivery.d.ts +48 -0
  263. package/dist/queuedDelivery.js +233 -0
  264. package/dist/reattachWindow.d.ts +94 -0
  265. package/dist/reattachWindow.js +127 -0
  266. package/dist/request/printNotification.d.ts +1 -1
  267. package/dist/request/printNotification.js +5 -1
  268. package/dist/request/submissionIdentity.d.ts +37 -0
  269. package/dist/request/submissionIdentity.js +65 -0
  270. package/dist/request/taskRequest.d.ts +22 -14
  271. package/dist/request/taskRequest.js +312 -202
  272. package/dist/resultFrameKeys.d.ts +1 -0
  273. package/dist/resultFrameKeys.js +4 -1
  274. package/dist/resumeRefusalCopy.d.ts +3 -1
  275. package/dist/resumeRefusalCopy.js +22 -4
  276. package/dist/retryStatus.d.ts +26 -0
  277. package/dist/retryStatus.js +133 -28
  278. package/dist/rewindArchiveCapability.js +2 -2
  279. package/dist/rewindEngineAction.d.ts +2 -0
  280. package/dist/rewindEngineAction.js +23 -1
  281. package/dist/rowKind.d.ts +36 -0
  282. package/dist/rowKind.js +97 -0
  283. package/dist/ruleCompileVerdict.d.ts +18 -0
  284. package/dist/ruleCompileVerdict.js +67 -2
  285. package/dist/ruleReadings.d.ts +58 -0
  286. package/dist/ruleReadings.js +132 -0
  287. package/dist/ruleRefusalSentence.d.ts +8 -0
  288. package/dist/ruleRefusalSentence.js +64 -0
  289. package/dist/runCancelContext.d.ts +0 -1
  290. package/dist/runCancelContext.js +1 -2
  291. package/dist/runTerminal.d.ts +5 -0
  292. package/dist/runTerminal.js +52 -17
  293. package/dist/sandboxWire.d.ts +3 -2
  294. package/dist/sandboxWire.js +59 -27
  295. package/dist/scenarioRefusal.d.ts +2 -1
  296. package/dist/scenarioRefusal.js +6 -6
  297. package/dist/scenarioSkills.d.ts +20 -0
  298. package/dist/scenarioSkills.js +72 -0
  299. package/dist/scenarioWire.d.ts +5 -2
  300. package/dist/scenarioWire.js +9 -9
  301. package/dist/sealedKeyCapability.js +2 -2
  302. package/dist/seam.d.ts +26 -9
  303. package/dist/seam.js +44 -4
  304. package/dist/seatContract.d.ts +62 -9
  305. package/dist/seatContract.js +70 -25
  306. package/dist/selfOrchestrationDenial.js +1 -1
  307. package/dist/sessionPolicyCapability.js +2 -2
  308. package/dist/sessionRulesChildrenReadLive.d.ts +6 -0
  309. package/dist/sessionRulesChildrenReadLive.js +5 -0
  310. package/dist/sessionRulesNamespaceFormsCapability.d.ts +12 -0
  311. package/dist/sessionRulesNamespaceFormsCapability.js +29 -0
  312. package/dist/sessionSyncFileHistoryCapability.js +2 -2
  313. package/dist/settingsCredentialKeyPaths.d.ts +8 -0
  314. package/dist/settingsCredentialKeyPaths.js +274 -0
  315. package/dist/settingsHooksSalvage.d.ts +1 -0
  316. package/dist/settingsHooksSalvage.js +7 -1
  317. package/dist/settingsLayerAdmission.d.ts +4 -0
  318. package/dist/settingsLayerAdmission.js +16 -0
  319. package/dist/skillToolListsCapability.js +6 -5
  320. package/dist/skillsWireCaps.d.ts +14 -3
  321. package/dist/skillsWireCaps.js +48 -18
  322. package/dist/slashCommandGate.d.ts +24 -0
  323. package/dist/slashCommandGate.js +74 -0
  324. package/dist/slashCommandTable.d.ts +14 -0
  325. package/dist/slashCommandTable.js +99 -0
  326. package/dist/sqlEngineCapability.js +2 -2
  327. package/dist/steerPriorityCapability.js +2 -2
  328. package/dist/storePostureCapability.js +2 -2
  329. package/dist/subagent/agentStateDetail.js +1 -1
  330. package/dist/subagent/engineDelegatedPrompt.d.ts +9 -0
  331. package/dist/subagent/engineDelegatedPrompt.js +38 -7
  332. package/dist/subagent/engineRowStopGate.js +2 -2
  333. package/dist/subagent/engineSubagentResume.js +3 -3
  334. package/dist/subagent/engineTaskHandleWire.d.ts +1 -0
  335. package/dist/subagent/engineTaskHandleWire.js +10 -0
  336. package/dist/subagentContentStore.d.ts +1 -0
  337. package/dist/subagentContentStore.js +135 -27
  338. package/dist/submitFailure.d.ts +8 -0
  339. package/dist/submitFailure.js +17 -0
  340. package/dist/supportFloor.d.ts +1 -0
  341. package/dist/supportFloor.js +7 -0
  342. package/dist/terminationIntent.d.ts +55 -0
  343. package/dist/terminationIntent.js +352 -0
  344. package/dist/toolHistoryMismatch.d.ts +8 -0
  345. package/dist/toolHistoryMismatch.js +37 -6
  346. package/dist/toolResult.d.ts +13 -3
  347. package/dist/toolResult.js +158 -9
  348. package/dist/toolResultContent.d.ts +13 -0
  349. package/dist/toolResultContent.js +82 -7
  350. package/dist/toolRoster.d.ts +18 -0
  351. package/dist/toolRoster.js +64 -0
  352. package/dist/toolsFlagNames.d.ts +8 -0
  353. package/dist/toolsFlagNames.js +110 -0
  354. package/dist/turnFailurePresentation.js +41 -96
  355. package/dist/usageLimitAutoResume.d.ts +74 -0
  356. package/dist/usageLimitAutoResume.js +227 -0
  357. package/dist/userAttachmentEnvelope.js +1 -1
  358. package/dist/userAttachmentSeat.js +5 -5
  359. package/dist/userInvokedSkillsCapability.js +2 -2
  360. package/dist/webSearchBackendCapability.js +2 -2
  361. package/dist/wireErrorTriage.js +99 -50
  362. package/dist/wireFailureShape.d.ts +25 -1
  363. package/dist/wireFailureShape.js +92 -5
  364. package/dist/wireRefusalCopy.d.ts +75 -18
  365. package/dist/wireRefusalCopy.js +532 -148
  366. package/dist/wiringFleetDoctor.d.ts +3 -0
  367. package/dist/wiringFleetDoctor.js +21 -0
  368. package/dist/workflow.d.ts +2 -1
  369. package/dist/workflow.js +38 -1
  370. package/dist/workflowClient.d.ts +2 -7
  371. package/dist/workflowsJournalCapability.js +2 -2
  372. package/dist/writeProtectionCapability.js +2 -2
  373. package/docs/INTEGRATION-CLIENTS.md +1013 -190
  374. package/package.json +15 -4
@@ -3,10 +3,13 @@ import { eventSeq } from '../adapter/types.js';
3
3
  import { hostLog } from '../host.js';
4
4
  import { invokeHostCallbackIsolated } from '../hostCallbackGuard.js';
5
5
  import { abortableSleep } from '../abortableSleep.js';
6
- import { ownDataField, readOwnDataValue } from '../ownKey.js';
7
- import { PROTOCOL_ERROR_NAME, THROWN_SLOT_UNREADABLE, protocolErrorNameReading, readBlockedBy, readThrownSlot, thrownIsInstanceOf, wireFailureTextsOf } from '../wireFailureShape.js';
6
+ import { attemptTimeoutOnChain, causeSlotReadOf, transportChainReading } from '../engineWireFor.js';
7
+ import { guardedRead, ownDataField, readOwnDataValue } from '../ownKey.js';
8
+ import { PROTOCOL_ERROR_NAME, isSlotCarrier, protocolErrorNameReading, readBlockedBy, readThrownSlot, thrownIsInstanceOf, wireFailureTextsOf } from '../wireFailureShape.js';
8
9
  import { APPROVAL_BINDING_MISMATCH, CHECKPOINT_INVALID_OUTCOME, RESUME_POLICY_FOLD_CODE } from '../engineErrorCodes.js';
9
10
  import { suspendedReopenOf } from './suspendedReopen.js';
11
+ import { closeDecisionOp, decisionLedgerKeysOf, openDecisionOp } from './decisionLedger.js';
12
+ import { askParkBlockGeneration, noteAskParkDecideSettled } from './askParkAutoReopenBlock.js';
10
13
  export const DEFAULT_DENY_REASON = 'The user rejected this tool use';
11
14
  export const MAX_DENY_REASON_CHARS = 4096;
12
15
  export function denyReasonForWire(reason, tag) {
@@ -52,6 +55,30 @@ export class HitlSafetyError extends Error {
52
55
  this.name = 'HitlSafetyError';
53
56
  }
54
57
  }
58
+ export function refusalCarrierOf(err, localCodeRead, answeredLayer = false, causeRead, headRead) {
59
+ if (!isSlotCarrier(err))
60
+ return { carrier: err };
61
+ const head = headRead ?? safetyStopHeadOf(err, localCodeRead);
62
+ if (!head.named)
63
+ return { carrier: err };
64
+ const read = answeredLayer ? undefined : (causeRead ?? causeSlotReadOf(err));
65
+ const cause = read !== undefined && read.presence === 'present' ? read.value : undefined;
66
+ const carrier = isSlotCarrier(cause) ? cause : err;
67
+ return head.local !== undefined ? { local: head.local, carrier } : { carrier };
68
+ }
69
+ export function safetyStopNamed(err) {
70
+ return isSlotCarrier(err) && guardedRead(() => ownDataField(err, 'name')) === 'HitlSafetyError';
71
+ }
72
+ export function safetyStopHeadOf(err, localCodeRead, namedRead) {
73
+ if (!isSlotCarrier(err))
74
+ return { named: false };
75
+ if (!(namedRead ?? safetyStopNamed(err)))
76
+ return { named: false };
77
+ const own = (k) => guardedRead(() => ownDataField(err, k));
78
+ const code = localCodeRead !== undefined ? localCodeRead.value : own('code');
79
+ const local = typeof code === 'string' && GATE_FAILURE_CODES.includes(code) ? code : undefined;
80
+ return local !== undefined ? { named: true, local } : { named: true };
81
+ }
55
82
  export function hitlSafetyCodeOf(e) {
56
83
  if (!thrownIsInstanceOf(e, HitlSafetyError))
57
84
  return undefined;
@@ -69,12 +96,12 @@ void _gateCurrentPendingReadonlyPin;
69
96
  export function readDecideCurrentPending(e) {
70
97
  if (e === null || e === undefined)
71
98
  return undefined;
72
- const raw = readThrownSlot(e, 'currentPending');
99
+ const raw = readThrownSlot(e, 'currentPending', 'data');
73
100
  if (typeof raw !== 'object' || raw === null)
74
101
  return undefined;
75
- const toolName = readThrownSlot(raw, 'toolName');
76
- const boundCallId = readThrownSlot(raw, 'boundCallId');
77
- const boundInputHash = readThrownSlot(raw, 'boundInputHash');
102
+ const toolName = readThrownSlot(raw, 'toolName', 'data');
103
+ const boundCallId = readThrownSlot(raw, 'boundCallId', 'data');
104
+ const boundInputHash = readThrownSlot(raw, 'boundInputHash', 'data');
78
105
  if (typeof toolName !== 'string' || toolName.length === 0)
79
106
  return undefined;
80
107
  if (typeof boundCallId !== 'string' || boundCallId.length === 0)
@@ -129,36 +156,8 @@ export function __setDecideTimeoutRetryBudgetForTests(ms) {
129
156
  function decideTimeoutRetryBudgetMs() {
130
157
  return decideTimeoutRetryBudgetOverrideMs ?? DECIDE_TIMEOUT_RETRY_TOTAL_BUDGET_MS;
131
158
  }
132
- function isDecideAttemptTimeout(e, depth = 0) {
133
- if (depth > 3 || e === null || typeof e !== 'object')
134
- return false;
135
- if (readThrownSlot(e, 'name') === 'TimeoutError')
136
- return true;
137
- return isDecideAttemptTimeout(readThrownSlot(e, 'cause'), depth + 1);
138
- }
139
- const TRANSIENT_NETWORK_CODES = new Set([
140
- 'ECONNREFUSED', 'ECONNRESET', 'ETIMEDOUT', 'EPIPE', 'EAI_AGAIN',
141
- 'ENETUNREACH', 'EHOSTUNREACH', 'ECONNABORTED',
142
- 'UND_ERR_CONNECT_TIMEOUT', 'UND_ERR_HEADERS_TIMEOUT', 'UND_ERR_BODY_TIMEOUT', 'UND_ERR_SOCKET',
143
- ]);
144
- function isTransientDecideTransportFailure(e, depth = 0) {
145
- if (depth > 3 || e === null || typeof e !== 'object')
146
- return false;
147
- if (thrownIsInstanceOf(e, HitlSafetyError))
148
- return false;
149
- const status = readThrownSlot(e, 'status', 'data');
150
- if (status === THROWN_SLOT_UNREADABLE || typeof status === 'number')
151
- return false;
152
- const name = readThrownSlot(e, 'name');
153
- if (name === 'TimeoutError' || name === 'AbortError')
154
- return true;
155
- const code = readThrownSlot(e, 'code', 'data');
156
- if (typeof code === 'string' && TRANSIENT_NETWORK_CODES.has(code))
157
- return true;
158
- const message = readThrownSlot(e, 'message');
159
- if (typeof message === 'string' && message.toLowerCase().includes('fetch failed'))
160
- return true;
161
- return isTransientDecideTransportFailure(readThrownSlot(e, 'cause'), depth + 1);
159
+ function isTransientDecideTransportFailure(e) {
160
+ return transportChainReading(e, 'retry', (layer) => thrownIsInstanceOf(layer, HitlSafetyError)) === 'transient';
162
161
  }
163
162
  export class DecideTransportRetryExhaustedError extends Error {
164
163
  attempts;
@@ -172,6 +171,7 @@ class DecideSpan {
172
171
  owner;
173
172
  observer;
174
173
  identity;
174
+ ledgerOp;
175
175
  attempts = 0;
176
176
  ok = false;
177
177
  retryExhausted = false;
@@ -189,21 +189,26 @@ class DecideSpan {
189
189
  return mine === undefined || (mine.sessionId === identity.sessionId && mine.boundCallId === identity.boundCallId);
190
190
  }
191
191
  async run(identity, send) {
192
- if (this.observer !== undefined && this.identity === undefined) {
192
+ if (this.identity === undefined) {
193
193
  this.identity = identity;
194
- notifyDecideObserver(this.observer, Object.freeze({ ...this.identity, phase: 'start' }));
194
+ this.ledgerOp = openDecideLedgerOp(identity);
195
+ if (this.observer !== undefined)
196
+ notifyDecideObserver(this.observer, Object.freeze({ ...this.identity, phase: 'start' }));
195
197
  }
196
198
  this.inFlight++;
197
199
  const tally = { attempts: 0 };
200
+ const blockGen = askParkBlockGeneration(identity.sessionId);
198
201
  try {
199
202
  const r = await send(tally);
200
203
  this.ok = true;
201
204
  this.retryExhausted = false;
205
+ noteAskParkDecideSettled(identity, blockGen, { ok: true });
202
206
  return r;
203
207
  }
204
208
  catch (e) {
205
209
  this.ok = false;
206
210
  this.retryExhausted = thrownIsInstanceOf(e, DecideTransportRetryExhaustedError);
211
+ noteAskParkDecideSettled(identity, blockGen, { ok: false, error: e });
207
212
  throw e;
208
213
  }
209
214
  finally {
@@ -224,11 +229,16 @@ class DecideSpan {
224
229
  if (this.ended)
225
230
  return;
226
231
  this.ended = true;
232
+ if (this.ledgerOp !== undefined)
233
+ closeDecisionOp(this.ledgerOp, 'package');
227
234
  if (this.observer === undefined || this.identity === undefined)
228
235
  return;
229
236
  notifyDecideObserver(this.observer, Object.freeze({ ...this.identity, phase: 'end', ok: this.ok, attempts: this.attempts, retryExhausted: this.retryExhausted }));
230
237
  }
231
238
  }
239
+ function openDecideLedgerOp(identity) {
240
+ return openDecisionOp('tool_approval', decisionLedgerKeysOf({ taskId: identity.taskId, callId: identity.boundCallId }), 'posting', true);
241
+ }
232
242
  function wireOptsOf(opts) {
233
243
  if (opts === undefined || opts.operation === undefined)
234
244
  return opts;
@@ -408,23 +418,29 @@ export class HitlBridge {
408
418
  }
409
419
  const observer = this.decideObserver;
410
420
  const tally = { attempts: 0 };
411
- if (observer === undefined)
412
- return this.decideRawAttempts(sessionId, decision, opts, tally);
413
421
  const identity = this.decideIdentityOf(sessionId, decision);
414
- notifyDecideObserver(observer, Object.freeze({ ...identity, phase: 'start' }));
422
+ const ledgerOp = openDecideLedgerOp(identity);
423
+ const blockGen = askParkBlockGeneration(identity.sessionId);
424
+ if (observer !== undefined)
425
+ notifyDecideObserver(observer, Object.freeze({ ...identity, phase: 'start' }));
415
426
  let ok = false;
416
427
  let retryExhausted = false;
417
428
  try {
418
429
  const r = await this.decideRawAttempts(sessionId, decision, opts, tally);
419
430
  ok = true;
431
+ noteAskParkDecideSettled(identity, blockGen, { ok: true });
420
432
  return r;
421
433
  }
422
434
  catch (e) {
423
435
  retryExhausted = thrownIsInstanceOf(e, DecideTransportRetryExhaustedError);
436
+ noteAskParkDecideSettled(identity, blockGen, { ok: false, error: e });
424
437
  throw e;
425
438
  }
426
439
  finally {
427
- notifyDecideObserver(observer, Object.freeze({ ...identity, phase: 'end', ok, attempts: tally.attempts, retryExhausted }));
440
+ closeDecisionOp(ledgerOp, 'package');
441
+ if (observer !== undefined) {
442
+ notifyDecideObserver(observer, Object.freeze({ ...identity, phase: 'end', ok, attempts: tally.attempts, retryExhausted }));
443
+ }
428
444
  }
429
445
  }
430
446
  decideIdentityOf(sessionId, decision) {
@@ -461,7 +477,7 @@ export class HitlBridge {
461
477
  throw e;
462
478
  if (!isTransientDecideTransportFailure(e) || callerAborted())
463
479
  throw e;
464
- if (isDecideAttemptTimeout(e)) {
480
+ if (attemptTimeoutOnChain(e)) {
465
481
  if (attempts >= DECIDE_TIMEOUT_MIN_ATTEMPTS && Date.now() - startedAt >= decideTimeoutRetryBudgetMs()) {
466
482
  throw new DecideTransportRetryExhaustedError(attempts, wireFailureTextsOf(e).reason);
467
483
  }
@@ -1,3 +1,4 @@
1
+ import { appendOwnElement } from '../ownKey.js';
1
2
  import { readRequiresRealApproval } from './approvalCardReading.js';
2
3
  import { THROWN_SLOT_UNREADABLE, readThrownSlot } from '../wireFailureShape.js';
3
4
  import { isToolApprovalFrame, surfaceToolApprovalFrameAndRespond, } from './toolApprovalWire.js';
@@ -14,9 +15,9 @@ function snapshotMembers(raw) {
14
15
  const out = [];
15
16
  for (let i = 0; i < length; i++) {
16
17
  const d = Object.getOwnPropertyDescriptor(raw, i);
17
- if (d === undefined || !('value' in d))
18
+ if (d === undefined || !Object.hasOwn(d, 'value'))
18
19
  return undefined;
19
- out.push(d.value);
20
+ appendOwnElement(out, d.value);
20
21
  }
21
22
  return raw.length === length ? out : undefined;
22
23
  }
@@ -26,7 +27,7 @@ export function readLivePendingRows(body) {
26
27
  const field = Object.getOwnPropertyDescriptor(body, 'livePending');
27
28
  if (field === undefined)
28
29
  return 'livePending' in body ? { kind: 'malformed' } : { kind: 'not_reported' };
29
- if (!('value' in field))
30
+ if (!Object.hasOwn(field, 'value'))
30
31
  return { kind: 'malformed' };
31
32
  const raw = field.value;
32
33
  if (raw === undefined)
@@ -4,7 +4,7 @@ function ladderSays(ladder, key) {
4
4
  return false;
5
5
  try {
6
6
  const d = Object.getOwnPropertyDescriptor(ladder, key);
7
- return d !== undefined && 'value' in d && d.value === true;
7
+ return d !== undefined && Object.hasOwn(d, 'value') && d.value === true;
8
8
  }
9
9
  catch {
10
10
  return false;
@@ -1,6 +1,6 @@
1
1
  import { putOwnKey, readOwnDataValue } from '../ownKey.js';
2
2
  import { HitlBridge, NO_QUESTION_OVERLAY_REASON, findPendingForTask, isNoDecisionSurfaceReason, } from './hitlBridge.js';
3
- import { approvalResolutionDetail, resolutionOfDecisionFailure } from './approvalResolution.js';
3
+ import { approvalResolutionDetail, directSafetyStopOf, resolutionOfDecisionFailure } from './approvalResolution.js';
4
4
  import { readDecisionRefusalAsk } from './decisionRefusal.js';
5
5
  import { publishQuestionFrame, registerLocalQuestionResponder, hasQuestionOverlay, } from '../liveQuestionStore.js';
6
6
  import { hostLog } from '../host.js';
@@ -136,9 +136,10 @@ async function surfaceGateAndDecide(deps, taskId, askArgsByCall, signal, parkGat
136
136
  return { kind: 'decided', ...at, decision: 'deny', ...(declinedReceipt !== undefined ? { receipt: declinedReceipt } : {}) };
137
137
  }
138
138
  catch (e) {
139
+ const directStop = directSafetyStopOf(e);
139
140
  const failureTexts = wireFailureTextsOf(e);
140
141
  hostLog('debug', `liveHitlAskWire: decide failed: ${failureTexts.log}`);
141
- return resolutionOfDecisionFailure(e, { lane: 'ask', route: 'ask_decide', gatedCallId, detail: `decide failed: ${failureTexts.reason}${decideFailureNote(e, attemptedDecision)}` });
142
+ return resolutionOfDecisionFailure(e, { lane: 'ask', route: 'ask_decide', gatedCallId, detail: `decide failed: ${failureTexts.reason}${decideFailureNote(e, attemptedDecision)}`, ...(directStop !== undefined ? { directStop } : {}) });
142
143
  }
143
144
  }
144
145
  function argsByCallOf(led) {
@@ -207,6 +207,7 @@ const PERSISTED_RULE_MATCH_KEYS = Object.freeze({
207
207
  name_prefix: 'rules.match.namePrefix',
208
208
  host: 'rules.match.host',
209
209
  subdomain: 'rules.match.subdomain',
210
+ pattern: 'rules.match.pattern',
210
211
  });
211
212
  export function persistedRuleMatchLabel(ruleOrMatch, lang) {
212
213
  const word = typeof ruleOrMatch === 'string' ? ruleOrMatch : ownSlot(ruleOrMatch, 'match');
@@ -43,6 +43,9 @@ export interface PlanReviewQuestionIdReading {
43
43
  }
44
44
  export declare function planReviewTaskIdFromQuestionId(questionId: {} | null | undefined): PlanReviewQuestionIdReading | undefined;
45
45
  export declare function planReviewOfferedModeOf(card: string | PlanReviewCardLike): PlanReviewOfferedMode;
46
+ export declare function planReviewShownLabelsOf(questionId: {} | null | undefined): readonly string[] | undefined;
47
+ export declare function planReviewAnswerChoiceOf(questionId: {} | null | undefined, answer: QuestionAnswer | null | undefined): PlanReviewChoice | 'dismissed';
48
+ export declare function planReviewAnswerDecisionOf(questionId: {} | null | undefined, answer: QuestionAnswer | null | undefined): 'approve' | 'reject' | 'dismissed';
46
49
  export interface ArmPlanReviewOptions {
47
50
  submittedInPlanMode?: boolean;
48
51
  readGateInstanceKeys?: PlanReviewGateInstanceReader;
@@ -56,6 +59,7 @@ export interface PlanReviewOutcomeMeta {
56
59
  dispatchNo: number;
57
60
  decision: 'approve' | 'reject';
58
61
  effect: PlanReviewDecisionEffect;
62
+ cause?: 'stored_form_unsupported';
59
63
  }
60
64
  export declare function planReviewOutcomeTail(taskId: string, decision: 'approve' | 'reject', effect: PlanReviewDecisionEffect, cause?: 'stored_form_unsupported'): string;
61
65
  export type PlanReviewWireClient = {