@tangle-network/braid 0.2.2 → 0.3.1

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 (713) hide show
  1. package/README.md +256 -152
  2. package/THIRD_PARTY_LICENSES.json +8 -0
  3. package/THIRD_PARTY_NOTICES.md +5 -3
  4. package/dist/adapters/analysis/eval-analyst.d.ts.map +1 -1
  5. package/dist/adapters/analysis/eval-analyst.js +27 -7
  6. package/dist/adapters/analysis/eval-analyst.js.map +1 -1
  7. package/dist/adapters/analysis/managed-analysis-runtime.d.ts +3 -1
  8. package/dist/adapters/analysis/managed-analysis-runtime.d.ts.map +1 -1
  9. package/dist/adapters/analysis/managed-analysis-runtime.js +10 -2
  10. package/dist/adapters/analysis/managed-analysis-runtime.js.map +1 -1
  11. package/dist/adapters/analysis/python-runner.js +3 -3
  12. package/dist/adapters/analysis/python-runner.js.map +1 -1
  13. package/dist/adapters/analysis/question-analyst.d.ts +4 -4
  14. package/dist/adapters/analysis/question-analyst.d.ts.map +1 -1
  15. package/dist/adapters/analysis/question-analyst.js +192 -10
  16. package/dist/adapters/analysis/question-analyst.js.map +1 -1
  17. package/dist/adapters/analysis/runtime-model-owner.d.ts.map +1 -1
  18. package/dist/adapters/analysis/runtime-model-owner.js +19 -15
  19. package/dist/adapters/analysis/runtime-model-owner.js.map +1 -1
  20. package/dist/adapters/analysis/runtime-retained-model-call.d.ts.map +1 -1
  21. package/dist/adapters/analysis/runtime-retained-model-call.js +20 -8
  22. package/dist/adapters/analysis/runtime-retained-model-call.js.map +1 -1
  23. package/dist/adapters/analysis/trace-analysis-adapter.d.ts.map +1 -1
  24. package/dist/adapters/analysis/trace-analysis-adapter.js +17 -8
  25. package/dist/adapters/analysis/trace-analysis-adapter.js.map +1 -1
  26. package/dist/adapters/connections/aws-nitro-root-g1.d.ts +11 -0
  27. package/dist/adapters/connections/aws-nitro-root-g1.d.ts.map +1 -0
  28. package/dist/adapters/connections/aws-nitro-root-g1.js +24 -0
  29. package/dist/adapters/connections/aws-nitro-root-g1.js.map +1 -0
  30. package/dist/adapters/connections/cli-bridge-model-validation.d.ts +3 -1
  31. package/dist/adapters/connections/cli-bridge-model-validation.d.ts.map +1 -1
  32. package/dist/adapters/connections/cli-bridge-model-validation.js +11 -4
  33. package/dist/adapters/connections/cli-bridge-model-validation.js.map +1 -1
  34. package/dist/adapters/connections/nitro-confidential-attestation.d.ts +36 -0
  35. package/dist/adapters/connections/nitro-confidential-attestation.d.ts.map +1 -0
  36. package/dist/adapters/connections/nitro-confidential-attestation.js +255 -0
  37. package/dist/adapters/connections/nitro-confidential-attestation.js.map +1 -0
  38. package/dist/adapters/connections/production-connection-credentials.d.ts +6 -0
  39. package/dist/adapters/connections/production-connection-credentials.d.ts.map +1 -1
  40. package/dist/adapters/connections/production-connection-credentials.js +46 -2
  41. package/dist/adapters/connections/production-connection-credentials.js.map +1 -1
  42. package/dist/adapters/connections/production-connection-health.d.ts.map +1 -1
  43. package/dist/adapters/connections/production-connection-health.js +9 -4
  44. package/dist/adapters/connections/production-connection-health.js.map +1 -1
  45. package/dist/adapters/connections/production-connection-providers.d.ts +13 -0
  46. package/dist/adapters/connections/production-connection-providers.d.ts.map +1 -1
  47. package/dist/adapters/connections/production-connection-providers.js +59 -3
  48. package/dist/adapters/connections/production-connection-providers.js.map +1 -1
  49. package/dist/adapters/connections/production-connection-types.d.ts +10 -3
  50. package/dist/adapters/connections/production-connection-types.d.ts.map +1 -1
  51. package/dist/adapters/connections/production-connection-types.js.map +1 -1
  52. package/dist/adapters/connections/production-connections.d.ts +4 -2
  53. package/dist/adapters/connections/production-connections.d.ts.map +1 -1
  54. package/dist/adapters/connections/production-connections.js +2 -1
  55. package/dist/adapters/connections/production-connections.js.map +1 -1
  56. package/dist/adapters/connections/tangle-router-client.d.ts +20 -0
  57. package/dist/adapters/connections/tangle-router-client.d.ts.map +1 -0
  58. package/dist/adapters/connections/tangle-router-client.js +33 -0
  59. package/dist/adapters/connections/tangle-router-client.js.map +1 -0
  60. package/dist/adapters/runtime/abortable.d.ts +3 -0
  61. package/dist/adapters/runtime/abortable.d.ts.map +1 -0
  62. package/dist/adapters/runtime/abortable.js +12 -0
  63. package/dist/adapters/runtime/abortable.js.map +1 -0
  64. package/dist/adapters/runtime/agent-runtime-execution.d.ts +5 -0
  65. package/dist/adapters/runtime/agent-runtime-execution.d.ts.map +1 -1
  66. package/dist/adapters/runtime/agent-runtime-execution.js +75 -23
  67. package/dist/adapters/runtime/agent-runtime-execution.js.map +1 -1
  68. package/dist/adapters/runtime/cli-bridge-context-transfer.d.ts +13 -0
  69. package/dist/adapters/runtime/cli-bridge-context-transfer.d.ts.map +1 -0
  70. package/dist/adapters/runtime/cli-bridge-context-transfer.js +39 -0
  71. package/dist/adapters/runtime/cli-bridge-context-transfer.js.map +1 -0
  72. package/dist/adapters/runtime/cli-bridge-retained-execution.d.ts +3 -1
  73. package/dist/adapters/runtime/cli-bridge-retained-execution.d.ts.map +1 -1
  74. package/dist/adapters/runtime/cli-bridge-retained-execution.js +4 -0
  75. package/dist/adapters/runtime/cli-bridge-retained-execution.js.map +1 -1
  76. package/dist/adapters/runtime/cli-bridge-retained-run.d.ts.map +1 -1
  77. package/dist/adapters/runtime/cli-bridge-retained-run.js +28 -6
  78. package/dist/adapters/runtime/cli-bridge-retained-run.js.map +1 -1
  79. package/dist/adapters/runtime/lazy-execution.d.ts +49 -0
  80. package/dist/adapters/runtime/lazy-execution.d.ts.map +1 -0
  81. package/dist/adapters/runtime/lazy-execution.js +111 -0
  82. package/dist/adapters/runtime/lazy-execution.js.map +1 -0
  83. package/dist/adapters/runtime/mode-routing-execution.d.ts +27 -3
  84. package/dist/adapters/runtime/mode-routing-execution.d.ts.map +1 -1
  85. package/dist/adapters/runtime/mode-routing-execution.js +25 -0
  86. package/dist/adapters/runtime/mode-routing-execution.js.map +1 -1
  87. package/dist/adapters/runtime/native-interactive-run-broker.d.ts.map +1 -1
  88. package/dist/adapters/runtime/native-interactive-run-broker.js +1 -10
  89. package/dist/adapters/runtime/native-interactive-run-broker.js.map +1 -1
  90. package/dist/adapters/runtime/prepared-execution.d.ts +2 -2
  91. package/dist/adapters/runtime/prepared-execution.d.ts.map +1 -1
  92. package/dist/adapters/runtime/production-backend-common.d.ts +3 -1
  93. package/dist/adapters/runtime/production-backend-common.d.ts.map +1 -1
  94. package/dist/adapters/runtime/production-backend-common.js +7 -0
  95. package/dist/adapters/runtime/production-backend-common.js.map +1 -1
  96. package/dist/adapters/runtime/production-cli-bridge-backend.d.ts +9 -0
  97. package/dist/adapters/runtime/production-cli-bridge-backend.d.ts.map +1 -1
  98. package/dist/adapters/runtime/production-cli-bridge-backend.js +61 -27
  99. package/dist/adapters/runtime/production-cli-bridge-backend.js.map +1 -1
  100. package/dist/adapters/runtime/production-tangle-inference-backend.d.ts.map +1 -1
  101. package/dist/adapters/runtime/production-tangle-inference-backend.js +3 -2
  102. package/dist/adapters/runtime/production-tangle-inference-backend.js.map +1 -1
  103. package/dist/adapters/runtime/production-tangle-sandbox-backend.d.ts +8 -2
  104. package/dist/adapters/runtime/production-tangle-sandbox-backend.d.ts.map +1 -1
  105. package/dist/adapters/runtime/production-tangle-sandbox-backend.js +78 -12
  106. package/dist/adapters/runtime/production-tangle-sandbox-backend.js.map +1 -1
  107. package/dist/adapters/runtime/retained-execution-contract.d.ts +8 -4
  108. package/dist/adapters/runtime/retained-execution-contract.d.ts.map +1 -1
  109. package/dist/adapters/runtime/retained-execution-projection.d.ts +5 -5
  110. package/dist/adapters/runtime/retained-execution-projection.d.ts.map +1 -1
  111. package/dist/adapters/runtime/retained-execution-projection.js +8 -3
  112. package/dist/adapters/runtime/retained-execution-projection.js.map +1 -1
  113. package/dist/adapters/runtime/retained-execution-state.d.ts.map +1 -1
  114. package/dist/adapters/runtime/retained-execution-state.js +5 -0
  115. package/dist/adapters/runtime/retained-execution-state.js.map +1 -1
  116. package/dist/adapters/runtime/retained-execution-stream.d.ts +6 -1
  117. package/dist/adapters/runtime/retained-execution-stream.d.ts.map +1 -1
  118. package/dist/adapters/runtime/retained-execution-stream.js +47 -10
  119. package/dist/adapters/runtime/retained-execution-stream.js.map +1 -1
  120. package/dist/adapters/runtime/retained-execution.d.ts +24 -0
  121. package/dist/adapters/runtime/retained-execution.d.ts.map +1 -1
  122. package/dist/adapters/runtime/retained-execution.js +102 -20
  123. package/dist/adapters/runtime/retained-execution.js.map +1 -1
  124. package/dist/adapters/runtime/retained-native-continuation.d.ts +14 -0
  125. package/dist/adapters/runtime/retained-native-continuation.d.ts.map +1 -0
  126. package/dist/adapters/runtime/retained-native-continuation.js +110 -0
  127. package/dist/adapters/runtime/retained-native-continuation.js.map +1 -0
  128. package/dist/adapters/runtime/supervisor-control.d.ts +39 -11
  129. package/dist/adapters/runtime/supervisor-control.d.ts.map +1 -1
  130. package/dist/adapters/runtime/supervisor-control.js +115 -25
  131. package/dist/adapters/runtime/supervisor-control.js.map +1 -1
  132. package/dist/adapters/runtime/tangle-retained-execution.d.ts +5 -1
  133. package/dist/adapters/runtime/tangle-retained-execution.d.ts.map +1 -1
  134. package/dist/adapters/runtime/tangle-retained-execution.js +8 -1
  135. package/dist/adapters/runtime/tangle-retained-execution.js.map +1 -1
  136. package/dist/adapters/runtime/tangle-retained-interactive-contract.d.ts +2 -0
  137. package/dist/adapters/runtime/tangle-retained-interactive-contract.d.ts.map +1 -1
  138. package/dist/adapters/runtime/tangle-retained-interactive-contract.js +9 -0
  139. package/dist/adapters/runtime/tangle-retained-interactive-contract.js.map +1 -1
  140. package/dist/adapters/runtime/tangle-retained-interactive-execution.d.ts +5 -1
  141. package/dist/adapters/runtime/tangle-retained-interactive-execution.d.ts.map +1 -1
  142. package/dist/adapters/runtime/tangle-retained-interactive-execution.js +20 -3
  143. package/dist/adapters/runtime/tangle-retained-interactive-execution.js.map +1 -1
  144. package/dist/adapters/runtime/tangle-retained-run.d.ts +4 -2
  145. package/dist/adapters/runtime/tangle-retained-run.d.ts.map +1 -1
  146. package/dist/adapters/runtime/tangle-retained-run.js +110 -13
  147. package/dist/adapters/runtime/tangle-retained-run.js.map +1 -1
  148. package/dist/adapters/storage/sqlite-crypto.d.ts.map +1 -1
  149. package/dist/adapters/storage/sqlite-crypto.js +9 -1
  150. package/dist/adapters/storage/sqlite-crypto.js.map +1 -1
  151. package/dist/adapters/storage/storage-validation.d.ts +1 -1
  152. package/dist/adapters/storage/storage-validation.d.ts.map +1 -1
  153. package/dist/adapters/storage/storage-validation.js +2 -1
  154. package/dist/adapters/storage/storage-validation.js.map +1 -1
  155. package/dist/adapters/tui/application-ui-controller.d.ts.map +1 -1
  156. package/dist/adapters/tui/application-ui-controller.js +38 -5
  157. package/dist/adapters/tui/application-ui-controller.js.map +1 -1
  158. package/dist/adapters/tui/ui-capabilities.d.ts +2 -1
  159. package/dist/adapters/tui/ui-capabilities.d.ts.map +1 -1
  160. package/dist/adapters/tui/ui-capabilities.js +79 -31
  161. package/dist/adapters/tui/ui-capabilities.js.map +1 -1
  162. package/dist/adapters/tui/ui-command-dispatch.d.ts.map +1 -1
  163. package/dist/adapters/tui/ui-command-dispatch.js +15 -5
  164. package/dist/adapters/tui/ui-command-dispatch.js.map +1 -1
  165. package/dist/adapters/tui/ui-conversation-dispatch.d.ts +1 -1
  166. package/dist/adapters/tui/ui-conversation-dispatch.d.ts.map +1 -1
  167. package/dist/adapters/tui/ui-conversation-dispatch.js +83 -7
  168. package/dist/adapters/tui/ui-conversation-dispatch.js.map +1 -1
  169. package/dist/adapters/tui/ui-core-dispatch.d.ts.map +1 -1
  170. package/dist/adapters/tui/ui-core-dispatch.js +28 -4
  171. package/dist/adapters/tui/ui-core-dispatch.js.map +1 -1
  172. package/dist/adapters/tui/ui-entity-details.d.ts.map +1 -1
  173. package/dist/adapters/tui/ui-entity-details.js +26 -4
  174. package/dist/adapters/tui/ui-entity-details.js.map +1 -1
  175. package/dist/adapters/tui/ui-fixtures.d.ts +1 -1
  176. package/dist/adapters/tui/ui-fixtures.d.ts.map +1 -1
  177. package/dist/adapters/tui/ui-fixtures.js +41 -11
  178. package/dist/adapters/tui/ui-fixtures.js.map +1 -1
  179. package/dist/adapters/tui/ui-headless-dispatch.d.ts.map +1 -1
  180. package/dist/adapters/tui/ui-headless-dispatch.js +25 -7
  181. package/dist/adapters/tui/ui-headless-dispatch.js.map +1 -1
  182. package/dist/adapters/tui/ui-intelligence-dispatch.d.ts +2 -0
  183. package/dist/adapters/tui/ui-intelligence-dispatch.d.ts.map +1 -1
  184. package/dist/adapters/tui/ui-intelligence-dispatch.js +124 -26
  185. package/dist/adapters/tui/ui-intelligence-dispatch.js.map +1 -1
  186. package/dist/adapters/tui/ui-projection.d.ts +4 -2
  187. package/dist/adapters/tui/ui-projection.d.ts.map +1 -1
  188. package/dist/adapters/tui/ui-projection.js +94 -26
  189. package/dist/adapters/tui/ui-projection.js.map +1 -1
  190. package/dist/adapters/tui/ui-semantic-state.d.ts.map +1 -1
  191. package/dist/adapters/tui/ui-semantic-state.js +78 -21
  192. package/dist/adapters/tui/ui-semantic-state.js.map +1 -1
  193. package/dist/adapters/tui/ui-view-model.d.ts +1 -1
  194. package/dist/adapters/tui/ui-view-model.d.ts.map +1 -1
  195. package/dist/adapters/tui/ui-view-model.js +48 -6
  196. package/dist/adapters/tui/ui-view-model.js.map +1 -1
  197. package/dist/app/analysis-lifecycle.d.ts +3 -1
  198. package/dist/app/analysis-lifecycle.d.ts.map +1 -1
  199. package/dist/app/analysis-lifecycle.js +64 -2
  200. package/dist/app/analysis-lifecycle.js.map +1 -1
  201. package/dist/app/analysis-service.d.ts.map +1 -1
  202. package/dist/app/analysis-service.js +3 -2
  203. package/dist/app/analysis-service.js.map +1 -1
  204. package/dist/app/analysis-types.d.ts +2 -1
  205. package/dist/app/analysis-types.d.ts.map +1 -1
  206. package/dist/app/analysis-types.js.map +1 -1
  207. package/dist/app/application-interaction-actions.d.ts +6 -1
  208. package/dist/app/application-interaction-actions.d.ts.map +1 -1
  209. package/dist/app/application-interaction-actions.js +23 -9
  210. package/dist/app/application-interaction-actions.js.map +1 -1
  211. package/dist/app/application-lifecycle.d.ts +1 -0
  212. package/dist/app/application-lifecycle.d.ts.map +1 -1
  213. package/dist/app/application-lifecycle.js +2 -1
  214. package/dist/app/application-lifecycle.js.map +1 -1
  215. package/dist/app/application-options.d.ts +3 -1
  216. package/dist/app/application-options.d.ts.map +1 -1
  217. package/dist/app/application-port-builder.d.ts +1 -0
  218. package/dist/app/application-port-builder.d.ts.map +1 -1
  219. package/dist/app/application-port-builder.js +10 -1
  220. package/dist/app/application-port-builder.js.map +1 -1
  221. package/dist/app/application-port-runtime.d.ts +1 -0
  222. package/dist/app/application-port-runtime.d.ts.map +1 -1
  223. package/dist/app/application-port-runtime.js +1 -0
  224. package/dist/app/application-port-runtime.js.map +1 -1
  225. package/dist/app/application-ports.d.ts +18 -4
  226. package/dist/app/application-ports.d.ts.map +1 -1
  227. package/dist/app/application-runtime-wiring.d.ts.map +1 -1
  228. package/dist/app/application-runtime-wiring.js +23 -1
  229. package/dist/app/application-runtime-wiring.js.map +1 -1
  230. package/dist/app/application-support.d.ts +2 -1
  231. package/dist/app/application-support.d.ts.map +1 -1
  232. package/dist/app/application-support.js +29 -8
  233. package/dist/app/application-support.js.map +1 -1
  234. package/dist/app/application-transition.d.ts.map +1 -1
  235. package/dist/app/application-transition.js +9 -6
  236. package/dist/app/application-transition.js.map +1 -1
  237. package/dist/app/application-types.d.ts +6 -0
  238. package/dist/app/application-types.d.ts.map +1 -1
  239. package/dist/app/application.d.ts +7 -2
  240. package/dist/app/application.d.ts.map +1 -1
  241. package/dist/app/application.js +121 -12
  242. package/dist/app/application.js.map +1 -1
  243. package/dist/app/automation-actions.d.ts +7 -2
  244. package/dist/app/automation-actions.d.ts.map +1 -1
  245. package/dist/app/automation-actions.js +24 -19
  246. package/dist/app/automation-actions.js.map +1 -1
  247. package/dist/app/composition-options.d.ts +27 -0
  248. package/dist/app/composition-options.d.ts.map +1 -0
  249. package/dist/app/composition-options.js +2 -0
  250. package/dist/app/composition-options.js.map +1 -0
  251. package/dist/app/composition.d.ts +4 -58
  252. package/dist/app/composition.d.ts.map +1 -1
  253. package/dist/app/composition.js +14 -108
  254. package/dist/app/composition.js.map +1 -1
  255. package/dist/app/confidential-workspace-fork.d.ts +7 -0
  256. package/dist/app/confidential-workspace-fork.d.ts.map +1 -0
  257. package/dist/app/confidential-workspace-fork.js +26 -0
  258. package/dist/app/confidential-workspace-fork.js.map +1 -0
  259. package/dist/app/configuration-session.d.ts +9 -3
  260. package/dist/app/configuration-session.d.ts.map +1 -1
  261. package/dist/app/configuration-session.js +44 -2
  262. package/dist/app/configuration-session.js.map +1 -1
  263. package/dist/app/connection-errors.d.ts +1 -1
  264. package/dist/app/connection-errors.d.ts.map +1 -1
  265. package/dist/app/connection-errors.js.map +1 -1
  266. package/dist/app/connections.d.ts.map +1 -1
  267. package/dist/app/connections.js +21 -0
  268. package/dist/app/connections.js.map +1 -1
  269. package/dist/app/conversation-branch-effects.d.ts +12 -0
  270. package/dist/app/conversation-branch-effects.d.ts.map +1 -0
  271. package/dist/app/conversation-branch-effects.js +820 -0
  272. package/dist/app/conversation-branch-effects.js.map +1 -0
  273. package/dist/app/conversation-branches.d.ts +1 -0
  274. package/dist/app/conversation-branches.d.ts.map +1 -1
  275. package/dist/app/conversation-branches.js +171 -26
  276. package/dist/app/conversation-branches.js.map +1 -1
  277. package/dist/app/conversation-composition.d.ts +4 -0
  278. package/dist/app/conversation-composition.d.ts.map +1 -1
  279. package/dist/app/conversation-composition.js +3 -0
  280. package/dist/app/conversation-composition.js.map +1 -1
  281. package/dist/app/conversation-context.d.ts +17 -0
  282. package/dist/app/conversation-context.d.ts.map +1 -1
  283. package/dist/app/conversation-context.js +299 -0
  284. package/dist/app/conversation-context.js.map +1 -1
  285. package/dist/app/conversation-import-builder.d.ts.map +1 -1
  286. package/dist/app/conversation-import-builder.js +1 -2
  287. package/dist/app/conversation-import-builder.js.map +1 -1
  288. package/dist/app/conversation-lifecycle.d.ts.map +1 -1
  289. package/dist/app/conversation-lifecycle.js +1 -3
  290. package/dist/app/conversation-lifecycle.js.map +1 -1
  291. package/dist/app/conversation-support.d.ts +0 -1
  292. package/dist/app/conversation-support.d.ts.map +1 -1
  293. package/dist/app/conversation-support.js +0 -5
  294. package/dist/app/conversation-support.js.map +1 -1
  295. package/dist/app/conversation-types.d.ts +36 -3
  296. package/dist/app/conversation-types.d.ts.map +1 -1
  297. package/dist/app/conversations.d.ts +1 -1
  298. package/dist/app/conversations.d.ts.map +1 -1
  299. package/dist/app/default-profiles.d.ts +4 -0
  300. package/dist/app/default-profiles.d.ts.map +1 -0
  301. package/dist/app/default-profiles.js +16 -0
  302. package/dist/app/default-profiles.js.map +1 -0
  303. package/dist/app/durable-send.d.ts +1 -1
  304. package/dist/app/durable-send.d.ts.map +1 -1
  305. package/dist/app/durable-send.js +18 -11
  306. package/dist/app/durable-send.js.map +1 -1
  307. package/dist/app/interaction-controller.d.ts.map +1 -1
  308. package/dist/app/interaction-controller.js +78 -39
  309. package/dist/app/interaction-controller.js.map +1 -1
  310. package/dist/app/interaction-response-replay.d.ts +9 -2
  311. package/dist/app/interaction-response-replay.d.ts.map +1 -1
  312. package/dist/app/interaction-response-replay.js +11 -4
  313. package/dist/app/interaction-response-replay.js.map +1 -1
  314. package/dist/app/legacy-cancel.js +1 -1
  315. package/dist/app/legacy-cancel.js.map +1 -1
  316. package/dist/app/production-composition.d.ts +6 -1
  317. package/dist/app/production-composition.d.ts.map +1 -1
  318. package/dist/app/production-composition.js +77 -4
  319. package/dist/app/production-composition.js.map +1 -1
  320. package/dist/app/profile-selection.d.ts.map +1 -1
  321. package/dist/app/profile-selection.js +12 -2
  322. package/dist/app/profile-selection.js.map +1 -1
  323. package/dist/app/provider-values.d.ts.map +1 -1
  324. package/dist/app/provider-values.js +16 -3
  325. package/dist/app/provider-values.js.map +1 -1
  326. package/dist/app/run-admission-context.d.ts +3 -0
  327. package/dist/app/run-admission-context.d.ts.map +1 -0
  328. package/dist/app/run-admission-context.js +74 -0
  329. package/dist/app/run-admission-context.js.map +1 -0
  330. package/dist/app/run-admission-continuation.d.ts +1 -0
  331. package/dist/app/run-admission-continuation.d.ts.map +1 -1
  332. package/dist/app/run-admission-continuation.js +26 -14
  333. package/dist/app/run-admission-continuation.js.map +1 -1
  334. package/dist/app/run-admission-dispatch.d.ts.map +1 -1
  335. package/dist/app/run-admission-dispatch.js +60 -16
  336. package/dist/app/run-admission-dispatch.js.map +1 -1
  337. package/dist/app/run-admission-receipt.d.ts.map +1 -1
  338. package/dist/app/run-admission-receipt.js +8 -2
  339. package/dist/app/run-admission-receipt.js.map +1 -1
  340. package/dist/app/run-admission-request.d.ts.map +1 -1
  341. package/dist/app/run-admission-request.js +19 -0
  342. package/dist/app/run-admission-request.js.map +1 -1
  343. package/dist/app/run-admission-validation.d.ts +3 -3
  344. package/dist/app/run-admission-validation.d.ts.map +1 -1
  345. package/dist/app/run-admission-validation.js +33 -30
  346. package/dist/app/run-admission-validation.js.map +1 -1
  347. package/dist/app/run-continuation.d.ts +10 -7
  348. package/dist/app/run-continuation.d.ts.map +1 -1
  349. package/dist/app/run-continuation.js +31 -17
  350. package/dist/app/run-continuation.js.map +1 -1
  351. package/dist/app/run-controls.d.ts.map +1 -1
  352. package/dist/app/run-controls.js +21 -13
  353. package/dist/app/run-controls.js.map +1 -1
  354. package/dist/app/run-event-mapper.d.ts +7 -1
  355. package/dist/app/run-event-mapper.d.ts.map +1 -1
  356. package/dist/app/run-event-mapper.js +31 -15
  357. package/dist/app/run-event-mapper.js.map +1 -1
  358. package/dist/app/run-execution-snapshot.d.ts +8 -2
  359. package/dist/app/run-execution-snapshot.d.ts.map +1 -1
  360. package/dist/app/run-execution-snapshot.js +13 -1
  361. package/dist/app/run-execution-snapshot.js.map +1 -1
  362. package/dist/app/run-execution.d.ts.map +1 -1
  363. package/dist/app/run-execution.js +78 -12
  364. package/dist/app/run-execution.js.map +1 -1
  365. package/dist/app/run-final-recovery.d.ts +34 -0
  366. package/dist/app/run-final-recovery.d.ts.map +1 -0
  367. package/dist/app/run-final-recovery.js +132 -0
  368. package/dist/app/run-final-recovery.js.map +1 -0
  369. package/dist/app/run-ingestion.js +26 -7
  370. package/dist/app/run-ingestion.js.map +1 -1
  371. package/dist/app/run-ledger.d.ts +1 -1
  372. package/dist/app/run-ledger.d.ts.map +1 -1
  373. package/dist/app/run-ledger.js +2 -4
  374. package/dist/app/run-ledger.js.map +1 -1
  375. package/dist/app/run-recovery-context.d.ts.map +1 -1
  376. package/dist/app/run-recovery-context.js +8 -1
  377. package/dist/app/run-recovery-context.js.map +1 -1
  378. package/dist/app/run-replay.d.ts +5 -2
  379. package/dist/app/run-replay.d.ts.map +1 -1
  380. package/dist/app/run-replay.js +23 -7
  381. package/dist/app/run-replay.js.map +1 -1
  382. package/dist/app/run-status.d.ts +9 -1
  383. package/dist/app/run-status.d.ts.map +1 -1
  384. package/dist/app/run-status.js +61 -10
  385. package/dist/app/run-status.js.map +1 -1
  386. package/dist/app/run-stream-sanitizer.d.ts +21 -0
  387. package/dist/app/run-stream-sanitizer.d.ts.map +1 -0
  388. package/dist/app/run-stream-sanitizer.js +73 -0
  389. package/dist/app/run-stream-sanitizer.js.map +1 -0
  390. package/dist/app/shutdown-controller.d.ts +1 -1
  391. package/dist/app/shutdown-controller.d.ts.map +1 -1
  392. package/dist/app/shutdown-controller.js +25 -15
  393. package/dist/app/shutdown-controller.js.map +1 -1
  394. package/dist/app/storage-journal-support.d.ts +1 -1
  395. package/dist/app/storage-journal-support.d.ts.map +1 -1
  396. package/dist/app/storage-journal-support.js +8 -2
  397. package/dist/app/storage-journal-support.js.map +1 -1
  398. package/dist/app/supervisor-projection.d.ts +8 -0
  399. package/dist/app/supervisor-projection.d.ts.map +1 -1
  400. package/dist/app/supervisor-projection.js +14 -0
  401. package/dist/app/supervisor-projection.js.map +1 -1
  402. package/dist/app/supervisor-service.d.ts +6 -5
  403. package/dist/app/supervisor-service.d.ts.map +1 -1
  404. package/dist/app/supervisor-service.js +10 -6
  405. package/dist/app/supervisor-service.js.map +1 -1
  406. package/dist/app/workspace-request.d.ts +3 -0
  407. package/dist/app/workspace-request.d.ts.map +1 -0
  408. package/dist/app/workspace-request.js +2 -0
  409. package/dist/app/workspace-request.js.map +1 -0
  410. package/dist/bin/args.d.ts +1 -1
  411. package/dist/bin/args.d.ts.map +1 -1
  412. package/dist/bin/args.js +4 -2
  413. package/dist/bin/args.js.map +1 -1
  414. package/dist/bin/braid-runtime.d.ts.map +1 -1
  415. package/dist/bin/braid-runtime.js +3 -17
  416. package/dist/bin/braid-runtime.js.map +1 -1
  417. package/dist/bin/fixture-application.d.ts +9 -0
  418. package/dist/bin/fixture-application.d.ts.map +1 -0
  419. package/dist/bin/fixture-application.js +36 -0
  420. package/dist/bin/fixture-application.js.map +1 -0
  421. package/dist/bin/interface-runner.d.ts.map +1 -1
  422. package/dist/bin/interface-runner.js +3 -0
  423. package/dist/bin/interface-runner.js.map +1 -1
  424. package/dist/bin/interface-state-recorder.d.ts.map +1 -1
  425. package/dist/bin/interface-state-recorder.js +6 -2
  426. package/dist/bin/interface-state-recorder.js.map +1 -1
  427. package/dist/bin/native-interactive-actions.d.ts +1 -1
  428. package/dist/bin/native-interactive-actions.d.ts.map +1 -1
  429. package/dist/bin/native-interactive-actions.js +123 -24
  430. package/dist/bin/native-interactive-actions.js.map +1 -1
  431. package/dist/bin/production-application.d.ts.map +1 -1
  432. package/dist/bin/production-application.js +3 -0
  433. package/dist/bin/production-application.js.map +1 -1
  434. package/dist/bin/production-setup-credentials.d.ts.map +1 -1
  435. package/dist/bin/production-setup-credentials.js +6 -2
  436. package/dist/bin/production-setup-credentials.js.map +1 -1
  437. package/dist/bin/production-setup-discovery.d.ts.map +1 -1
  438. package/dist/bin/production-setup-discovery.js +3 -0
  439. package/dist/bin/production-setup-discovery.js.map +1 -1
  440. package/dist/bin/production-setup-persistence.d.ts.map +1 -1
  441. package/dist/bin/production-setup-persistence.js +4 -0
  442. package/dist/bin/production-setup-persistence.js.map +1 -1
  443. package/dist/bin/production-setup-types.d.ts +5 -0
  444. package/dist/bin/production-setup-types.d.ts.map +1 -1
  445. package/dist/bin/production-setup-validation.d.ts.map +1 -1
  446. package/dist/bin/production-setup-validation.js +19 -1
  447. package/dist/bin/production-setup-validation.js.map +1 -1
  448. package/dist/bin/production-startup.d.ts +2 -0
  449. package/dist/bin/production-startup.d.ts.map +1 -1
  450. package/dist/bin/production-startup.js +19 -0
  451. package/dist/bin/production-startup.js.map +1 -1
  452. package/dist/domain/bounded-structured.d.ts.map +1 -1
  453. package/dist/domain/bounded-structured.js +19 -0
  454. package/dist/domain/bounded-structured.js.map +1 -1
  455. package/dist/domain/connection-removal.d.ts +1 -1
  456. package/dist/domain/connection-removal.d.ts.map +1 -1
  457. package/dist/domain/connection-removal.js +3 -2
  458. package/dist/domain/connection-removal.js.map +1 -1
  459. package/dist/domain/entities-core.d.ts +19 -1
  460. package/dist/domain/entities-core.d.ts.map +1 -1
  461. package/dist/domain/entities-core.js +2 -0
  462. package/dist/domain/entities-core.js.map +1 -1
  463. package/dist/domain/entities-interactions.d.ts +9 -0
  464. package/dist/domain/entities-interactions.d.ts.map +1 -1
  465. package/dist/domain/events-legacy.d.ts +5 -0
  466. package/dist/domain/events-legacy.d.ts.map +1 -1
  467. package/dist/domain/events.d.ts +15 -0
  468. package/dist/domain/events.d.ts.map +1 -1
  469. package/dist/domain/events.js +13 -2
  470. package/dist/domain/events.js.map +1 -1
  471. package/dist/domain/interaction-identity.d.ts +4 -0
  472. package/dist/domain/interaction-identity.d.ts.map +1 -0
  473. package/dist/domain/interaction-identity.js +7 -0
  474. package/dist/domain/interaction-identity.js.map +1 -0
  475. package/dist/domain/invariants-base.d.ts +7 -0
  476. package/dist/domain/invariants-base.d.ts.map +1 -1
  477. package/dist/domain/invariants-base.js +106 -0
  478. package/dist/domain/invariants-base.js.map +1 -1
  479. package/dist/domain/invariants-profile.d.ts.map +1 -1
  480. package/dist/domain/invariants-profile.js +73 -1
  481. package/dist/domain/invariants-profile.js.map +1 -1
  482. package/dist/domain/invariants-retained-admission.d.ts +1 -0
  483. package/dist/domain/invariants-retained-admission.d.ts.map +1 -1
  484. package/dist/domain/invariants-retained-admission.js +12 -1
  485. package/dist/domain/invariants-retained-admission.js.map +1 -1
  486. package/dist/domain/invariants-run.d.ts.map +1 -1
  487. package/dist/domain/invariants-run.js +32 -4
  488. package/dist/domain/invariants-run.js.map +1 -1
  489. package/dist/domain/invariants-state.d.ts +1 -1
  490. package/dist/domain/invariants-state.d.ts.map +1 -1
  491. package/dist/domain/invariants-state.js +26 -0
  492. package/dist/domain/invariants-state.js.map +1 -1
  493. package/dist/domain/legacy-interaction-snapshot.d.ts.map +1 -1
  494. package/dist/domain/legacy-interaction-snapshot.js +95 -29
  495. package/dist/domain/legacy-interaction-snapshot.js.map +1 -1
  496. package/dist/domain/materialized-state-snapshot.d.ts.map +1 -1
  497. package/dist/domain/materialized-state-snapshot.js +33 -4
  498. package/dist/domain/materialized-state-snapshot.js.map +1 -1
  499. package/dist/domain/materialized-state.d.ts +5 -0
  500. package/dist/domain/materialized-state.d.ts.map +1 -1
  501. package/dist/domain/receipts.d.ts +3 -0
  502. package/dist/domain/receipts.d.ts.map +1 -1
  503. package/dist/domain/receipts.js +6 -0
  504. package/dist/domain/receipts.js.map +1 -1
  505. package/dist/domain/redaction.d.ts +1 -0
  506. package/dist/domain/redaction.d.ts.map +1 -1
  507. package/dist/domain/redaction.js +43 -2
  508. package/dist/domain/redaction.js.map +1 -1
  509. package/dist/domain/reducer-conversation-events.d.ts +1 -1
  510. package/dist/domain/reducer-conversation-events.d.ts.map +1 -1
  511. package/dist/domain/reducer-conversation-events.js +9 -6
  512. package/dist/domain/reducer-conversation-events.js.map +1 -1
  513. package/dist/domain/reducer-domain-events.d.ts +1 -1
  514. package/dist/domain/reducer-domain-events.d.ts.map +1 -1
  515. package/dist/domain/reducer-domain-events.js +30 -0
  516. package/dist/domain/reducer-domain-events.js.map +1 -1
  517. package/dist/domain/reducer-helpers.d.ts +6 -3
  518. package/dist/domain/reducer-helpers.d.ts.map +1 -1
  519. package/dist/domain/reducer-helpers.js +9 -9
  520. package/dist/domain/reducer-helpers.js.map +1 -1
  521. package/dist/domain/reducer-interactions.d.ts.map +1 -1
  522. package/dist/domain/reducer-interactions.js +31 -16
  523. package/dist/domain/reducer-interactions.js.map +1 -1
  524. package/dist/domain/reducer-legacy.d.ts +1 -1
  525. package/dist/domain/reducer-legacy.d.ts.map +1 -1
  526. package/dist/domain/reducer-legacy.js +8 -4
  527. package/dist/domain/reducer-legacy.js.map +1 -1
  528. package/dist/domain/reducer-lifecycle.d.ts +1 -1
  529. package/dist/domain/reducer-lifecycle.d.ts.map +1 -1
  530. package/dist/domain/reducer-lifecycle.js +35 -30
  531. package/dist/domain/reducer-lifecycle.js.map +1 -1
  532. package/dist/domain/reducer-replay.d.ts.map +1 -1
  533. package/dist/domain/reducer-replay.js +4 -4
  534. package/dist/domain/reducer-replay.js.map +1 -1
  535. package/dist/domain/reducer-run-graph.d.ts.map +1 -1
  536. package/dist/domain/reducer-run-graph.js +2 -1
  537. package/dist/domain/reducer-run-graph.js.map +1 -1
  538. package/dist/domain/reducer-runtime.d.ts.map +1 -1
  539. package/dist/domain/reducer-runtime.js +22 -11
  540. package/dist/domain/reducer-runtime.js.map +1 -1
  541. package/dist/domain/reducer-support.js +1 -1
  542. package/dist/domain/reducer-support.js.map +1 -1
  543. package/dist/domain/run-contracts.d.ts +5 -9
  544. package/dist/domain/run-contracts.d.ts.map +1 -1
  545. package/dist/domain/runtime-projection.d.ts +5 -0
  546. package/dist/domain/runtime-projection.d.ts.map +1 -1
  547. package/dist/domain/runtime-projection.js.map +1 -1
  548. package/dist/domain/secret-sanitizer.d.ts +14 -0
  549. package/dist/domain/secret-sanitizer.d.ts.map +1 -1
  550. package/dist/domain/secret-sanitizer.js +93 -11
  551. package/dist/domain/secret-sanitizer.js.map +1 -1
  552. package/dist/domain/state.d.ts +23 -1
  553. package/dist/domain/state.d.ts.map +1 -1
  554. package/dist/domain/state.js +60 -0
  555. package/dist/domain/state.js.map +1 -1
  556. package/dist/domain/terminal-sanitizer.d.ts +1 -0
  557. package/dist/domain/terminal-sanitizer.d.ts.map +1 -1
  558. package/dist/domain/terminal-sanitizer.js +35 -10
  559. package/dist/domain/terminal-sanitizer.js.map +1 -1
  560. package/dist/domain/workspace-request.d.ts +11 -0
  561. package/dist/domain/workspace-request.d.ts.map +1 -0
  562. package/dist/domain/workspace-request.js +86 -0
  563. package/dist/domain/workspace-request.js.map +1 -0
  564. package/dist/eval/execution.d.ts +1 -1
  565. package/dist/eval/execution.d.ts.map +1 -1
  566. package/dist/eval/execution.js +6 -2
  567. package/dist/eval/execution.js.map +1 -1
  568. package/dist/eval/product-path.d.ts.map +1 -1
  569. package/dist/eval/product-path.js +4 -2
  570. package/dist/eval/product-path.js.map +1 -1
  571. package/dist/index.d.ts +6 -2
  572. package/dist/index.d.ts.map +1 -1
  573. package/dist/index.js +2 -0
  574. package/dist/index.js.map +1 -1
  575. package/dist/ports/execution.d.ts +44 -6
  576. package/dist/ports/execution.d.ts.map +1 -1
  577. package/dist/ports/execution.js +10 -0
  578. package/dist/ports/execution.js.map +1 -1
  579. package/dist/startup/durable-runtime.d.ts +36 -1
  580. package/dist/startup/durable-runtime.d.ts.map +1 -1
  581. package/dist/startup/durable-runtime.js +135 -1
  582. package/dist/startup/durable-runtime.js.map +1 -1
  583. package/dist/testing/supervision-fixture.d.ts +32 -0
  584. package/dist/testing/supervision-fixture.d.ts.map +1 -0
  585. package/dist/testing/supervision-fixture.js +115 -0
  586. package/dist/testing/supervision-fixture.js.map +1 -0
  587. package/dist/testing/supervision-ui-fixture.d.ts +4 -0
  588. package/dist/testing/supervision-ui-fixture.d.ts.map +1 -0
  589. package/dist/testing/supervision-ui-fixture.js +74 -0
  590. package/dist/testing/supervision-ui-fixture.js.map +1 -0
  591. package/dist/version.d.ts.map +1 -1
  592. package/dist/version.js +3 -1
  593. package/dist/version.js.map +1 -1
  594. package/dist/views/headless/protocol.d.ts +1 -1
  595. package/dist/views/headless/protocol.d.ts.map +1 -1
  596. package/dist/views/headless/rpc-parser.d.ts.map +1 -1
  597. package/dist/views/headless/rpc-parser.js +57 -5
  598. package/dist/views/headless/rpc-parser.js.map +1 -1
  599. package/dist/views/headless/rpc.d.ts.map +1 -1
  600. package/dist/views/headless/rpc.js +28 -14
  601. package/dist/views/headless/rpc.js.map +1 -1
  602. package/dist/views/shared/analysis-presentation.d.ts.map +1 -1
  603. package/dist/views/shared/analysis-presentation.js +42 -4
  604. package/dist/views/shared/analysis-presentation.js.map +1 -1
  605. package/dist/views/shared/command-registry.js +5 -5
  606. package/dist/views/shared/command-registry.js.map +1 -1
  607. package/dist/views/shared/duration.d.ts.map +1 -1
  608. package/dist/views/shared/duration.js +3 -1
  609. package/dist/views/shared/duration.js.map +1 -1
  610. package/dist/views/shared/headless-commands.d.ts +1 -1
  611. package/dist/views/shared/headless-commands.d.ts.map +1 -1
  612. package/dist/views/shared/headless-commands.js +13 -2
  613. package/dist/views/shared/headless-commands.js.map +1 -1
  614. package/dist/views/shared/intents.d.ts +6 -0
  615. package/dist/views/shared/intents.d.ts.map +1 -1
  616. package/dist/views/shared/models.d.ts +54 -0
  617. package/dist/views/shared/models.d.ts.map +1 -1
  618. package/dist/views/shared/models.js.map +1 -1
  619. package/dist/views/shared/native-interactive-actions.d.ts +19 -0
  620. package/dist/views/shared/native-interactive-actions.d.ts.map +1 -1
  621. package/dist/views/shared/run-selection.d.ts +11 -0
  622. package/dist/views/shared/run-selection.d.ts.map +1 -0
  623. package/dist/views/shared/run-selection.js +26 -0
  624. package/dist/views/shared/run-selection.js.map +1 -0
  625. package/dist/views/shared/semantic-activity.d.ts.map +1 -1
  626. package/dist/views/shared/semantic-activity.js +4 -1
  627. package/dist/views/shared/semantic-activity.js.map +1 -1
  628. package/dist/views/shared/semantic-projection.d.ts.map +1 -1
  629. package/dist/views/shared/semantic-projection.js +146 -1
  630. package/dist/views/shared/semantic-projection.js.map +1 -1
  631. package/dist/views/tui/activity-browser.d.ts +6 -2
  632. package/dist/views/tui/activity-browser.d.ts.map +1 -1
  633. package/dist/views/tui/activity-browser.js +50 -5
  634. package/dist/views/tui/activity-browser.js.map +1 -1
  635. package/dist/views/tui/command-palette.d.ts.map +1 -1
  636. package/dist/views/tui/command-palette.js +1 -0
  637. package/dist/views/tui/command-palette.js.map +1 -1
  638. package/dist/views/tui/configuration-wizard-presentation.d.ts +2 -1
  639. package/dist/views/tui/configuration-wizard-presentation.d.ts.map +1 -1
  640. package/dist/views/tui/configuration-wizard-presentation.js +45 -4
  641. package/dist/views/tui/configuration-wizard-presentation.js.map +1 -1
  642. package/dist/views/tui/configuration-wizard.d.ts.map +1 -1
  643. package/dist/views/tui/configuration-wizard.js +60 -65
  644. package/dist/views/tui/configuration-wizard.js.map +1 -1
  645. package/dist/views/tui/conversation-overlay-actions.d.ts.map +1 -1
  646. package/dist/views/tui/conversation-overlay-actions.js +8 -0
  647. package/dist/views/tui/conversation-overlay-actions.js.map +1 -1
  648. package/dist/views/tui/conversation-overlay-helpers.d.ts +0 -1
  649. package/dist/views/tui/conversation-overlay-helpers.d.ts.map +1 -1
  650. package/dist/views/tui/conversation-overlay-helpers.js +2 -5
  651. package/dist/views/tui/conversation-overlay-helpers.js.map +1 -1
  652. package/dist/views/tui/entity-browser-layout.js +9 -4
  653. package/dist/views/tui/entity-browser-layout.js.map +1 -1
  654. package/dist/views/tui/entity-browser.d.ts +2 -0
  655. package/dist/views/tui/entity-browser.d.ts.map +1 -1
  656. package/dist/views/tui/entity-browser.js +5 -0
  657. package/dist/views/tui/entity-browser.js.map +1 -1
  658. package/dist/views/tui/execution-target.d.ts.map +1 -1
  659. package/dist/views/tui/execution-target.js +6 -3
  660. package/dist/views/tui/execution-target.js.map +1 -1
  661. package/dist/views/tui/fork-preview.d.ts.map +1 -1
  662. package/dist/views/tui/fork-preview.js +10 -0
  663. package/dist/views/tui/fork-preview.js.map +1 -1
  664. package/dist/views/tui/profile-compatibility.js +2 -2
  665. package/dist/views/tui/profile-compatibility.js.map +1 -1
  666. package/dist/views/tui/selector.d.ts +10 -0
  667. package/dist/views/tui/selector.d.ts.map +1 -1
  668. package/dist/views/tui/selector.js +61 -2
  669. package/dist/views/tui/selector.js.map +1 -1
  670. package/dist/views/tui/setup-stage-rendering.d.ts +23 -0
  671. package/dist/views/tui/setup-stage-rendering.d.ts.map +1 -0
  672. package/dist/views/tui/setup-stage-rendering.js +60 -0
  673. package/dist/views/tui/setup-stage-rendering.js.map +1 -0
  674. package/dist/views/tui/supervisor-actions.d.ts +19 -0
  675. package/dist/views/tui/supervisor-actions.d.ts.map +1 -0
  676. package/dist/views/tui/supervisor-actions.js +59 -0
  677. package/dist/views/tui/supervisor-actions.js.map +1 -0
  678. package/dist/views/tui/terminal-app.d.ts.map +1 -1
  679. package/dist/views/tui/terminal-app.js +3 -0
  680. package/dist/views/tui/terminal-app.js.map +1 -1
  681. package/dist/views/tui/terminal-chrome.d.ts +1 -1
  682. package/dist/views/tui/terminal-chrome.d.ts.map +1 -1
  683. package/dist/views/tui/terminal-chrome.js +54 -4
  684. package/dist/views/tui/terminal-chrome.js.map +1 -1
  685. package/dist/views/tui/terminal-command-controller.d.ts.map +1 -1
  686. package/dist/views/tui/terminal-command-controller.js +10 -5
  687. package/dist/views/tui/terminal-command-controller.js.map +1 -1
  688. package/dist/views/tui/terminal-identity.js +1 -1
  689. package/dist/views/tui/terminal-identity.js.map +1 -1
  690. package/dist/views/tui/terminal-input-controller.d.ts.map +1 -1
  691. package/dist/views/tui/terminal-input-controller.js +26 -4
  692. package/dist/views/tui/terminal-input-controller.js.map +1 -1
  693. package/dist/views/tui/terminal-overlays.d.ts +2 -0
  694. package/dist/views/tui/terminal-overlays.d.ts.map +1 -1
  695. package/dist/views/tui/terminal-overlays.js +15 -0
  696. package/dist/views/tui/terminal-overlays.js.map +1 -1
  697. package/dist/views/tui/terminal-surface-overlays.d.ts +4 -0
  698. package/dist/views/tui/terminal-surface-overlays.d.ts.map +1 -1
  699. package/dist/views/tui/terminal-surface-overlays.js +243 -1
  700. package/dist/views/tui/terminal-surface-overlays.js.map +1 -1
  701. package/dist/views/tui/workspace-request-form.d.ts +19 -0
  702. package/dist/views/tui/workspace-request-form.d.ts.map +1 -0
  703. package/dist/views/tui/workspace-request-form.js +204 -0
  704. package/dist/views/tui/workspace-request-form.js.map +1 -0
  705. package/dist/views/tui/workspace-request-presentation.d.ts +4 -0
  706. package/dist/views/tui/workspace-request-presentation.d.ts.map +1 -0
  707. package/dist/views/tui/workspace-request-presentation.js +39 -0
  708. package/dist/views/tui/workspace-request-presentation.js.map +1 -0
  709. package/dist/views/tui/workspace-request-workflow.d.ts +17 -0
  710. package/dist/views/tui/workspace-request-workflow.d.ts.map +1 -0
  711. package/dist/views/tui/workspace-request-workflow.js +27 -0
  712. package/dist/views/tui/workspace-request-workflow.js.map +1 -0
  713. package/package.json +20 -13
package/README.md CHANGED
@@ -1,56 +1,112 @@
1
1
  <div align="center">
2
2
  <h1>Braid</h1>
3
- <p><strong>One AgentProfile. Any supported coding runner.</strong></p>
3
+ <p><strong>One coding-agent profile across Pi, Codex, and OpenCode, on your machine or in a Tangle cloud sandbox.</strong></p>
4
4
  <p>
5
5
  <a href="https://github.com/tangle-network/braid/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/tangle-network/braid/actions/workflows/ci.yml/badge.svg"></a>
6
6
  <a href="LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/license-MIT-7aa2f7"></a>
7
7
  </p>
8
8
  </div>
9
9
 
10
- Braid is one durable terminal for coding agents.
10
+ Braid is a terminal client for coding agents.
11
11
 
12
- A portable [`AgentProfile`](https://github.com/tangle-network/agent-sdk/tree/main/packages/agent-interface) selects the runner, model, instructions, tools, and permissions.
12
+ A portable [`AgentProfile`](https://github.com/tangle-network/agent-sdk/tree/main/packages/agent-interface) defines one agent's identity, instructions, model, runner preference, tools, and permissions.
13
13
 
14
- Braid sends every turn through [`agent-runtime`](https://github.com/tangle-network/agent-runtime), then keeps the transcript, branches, approvals, activity, graph, and trace analysis together.
14
+ Braid sends each turn through [`agent-runtime`](https://github.com/tangle-network/agent-runtime) and keeps the conversation, branches, runs, interactions, and usage records together.
15
+ Choose a local runner through CLI Bridge, Tangle inference, or a Tangle Sandbox for each turn.
15
16
 
16
- ![Historical Braid recording through Local CLI Bridge and Claude Code](artifacts/demo/braid-live.gif)
17
+ Braid is a terminal client, not another agent loop.
17
18
 
18
- The checked-in recording and [capture manifest](artifacts/demo/braid-live.json) are historical Braid `0.1.3` evidence from Local CLI Bridge and Claude Code `opus`.
19
+ <img alt="Braid terminal opening a conversation fork preview" src="artifacts/verification/w6/80x24-fork-preview.gif">
19
20
 
20
- They are not the current `0.2.0` Pi release claim.
21
+ The terminal capture above is a deterministic conversation fixture from a packed 0.3.0 development build.
22
+ It does not show a live runner or cloud call.
23
+ The [launch comparison](docs/launch/comparison.md) separates live runner and cloud proofs from fixture captures.
21
24
 
22
- A fresh public recording requires a packed `0.2.0` Braid binary, a ready Pi backend, and measured usage from the exact run.
25
+ The [component design map](docs/components/README.md) links each visible surface to its owning contract and source component.
23
26
 
24
27
  ## Install
25
28
 
26
29
  Braid requires Node.js 22.19 or newer.
27
30
 
28
- Current validated release targets are Linux x64 and macOS arm64.
29
-
30
- The package rejects Windows installation until encrypted state meets the required path-race boundary there.
31
+ The published package currently targets Linux and macOS.
31
32
 
32
33
  ```bash
33
34
  npm install --global @tangle-network/braid
35
+ ```
36
+
37
+ Braid runs an `AgentProfile` from your workspace.
38
+ A clean workspace has none, so create one before the first run:
39
+
40
+ ```bash
41
+ mkdir -p .braid
42
+ cat > .braid/profile.json <<'EOF'
43
+ {
44
+ "name": "Coding agent",
45
+ "harness": "opencode",
46
+ "model": { "provider": "tangle-router", "default": "tangle-router/glm-5.3" },
47
+ "prompt": { "instructions": ["Inspect the repository before changing it."] }
48
+ }
49
+ EOF
34
50
  braid
35
51
  ```
36
52
 
37
- The first-run flow selects an AgentProfile and a connection.
53
+ Braid also reads `braid.profile.json`, or any file passed with `--profile <path>`.
54
+ The first-run flow selects that `AgentProfile` and a connection.
55
+
56
+ A connection supplies transport and credential references.
57
+
58
+ Credential values stay in the operating-system credential facility or their bounded response path.
59
+
60
+ For a local runner, install and start [CLI Bridge](https://github.com/drewstone/cli-bridge#install) in another terminal.
61
+ Sign in to each runner you want to use, then choose **Local CLI Bridge** during Braid setup.
62
+ For example, from the CLI Bridge checkout:
63
+
64
+ ```bash
65
+ pnpm install
66
+ BRIDGE_BACKENDS=codex,opencode pnpm start
67
+ ```
68
+
69
+ Braid connects to the default local service at `http://127.0.0.1:3344`; it does not start the runners.
70
+ Pi on Linux also needs bubblewrap and `PI_EXECUTOR=host BRIDGE_JAIL_MODE=fs-jail BRIDGE_BACKENDS=pi` ([CLI Bridge requirements](https://github.com/drewstone/cli-bridge#install)).
71
+
72
+ For Tangle inference or a Tangle Sandbox, [create a Tangle account and key](https://sandbox.tangle.tools/?utm_source=github&utm_medium=readme&utm_campaign=braid-0.3.0&ref=braid).
73
+ Enter the key in setup, or provide it to Braid through `BRAID_TANGLE_AUTH`:
74
+
75
+ ```bash
76
+ export BRAID_TANGLE_AUTH=YOUR_TANGLE_KEY
77
+ braid
78
+ ```
38
79
 
39
- No runner-specific Braid configuration is required.
80
+ First-run setup creates an ephemeral sandbox connection.
81
+ It deletes its environment after one turn.
82
+ To use `/detach` and `/reconnect`, set that connection's `providerOptions` to `{"lifecycle":"retained","idleTtlSeconds":1800}` in your workspace's `.braid/config.json` before starting a run.
40
83
 
41
- For a live terminal walkthrough, run the local CLI Bridge capture.
84
+ Use these launch forms when needed:
42
85
 
43
86
  ```bash
44
- pnpm capture:demo:live
87
+ braid --inline # keep normal terminal scrollback
88
+ braid --plain # readable non-interactive output
89
+ braid rpc # JSON Lines control interface
90
+ braid --conversation <id> # open a durable Braid conversation
45
91
  ```
46
92
 
47
- The capture routes a human prompt through Pi and records the measured result.
93
+ `--profile`, `--connection`, `--runner`, `--model`, and `--effort` select defaults for the opened or new branch.
48
94
 
49
- It requires a configured local CLI Bridge and a real provider credential.
95
+ They do not rewrite the profile source.
50
96
 
51
- ## How it works
97
+ ## Operating model
52
98
 
53
- The core path is deliberately small.
99
+ The profile defines who the agent is.
100
+
101
+ The connection defines where requests go and which credentials they use.
102
+
103
+ The runner defines which coding program executes one run.
104
+
105
+ The SDK field `harness` stores that runner preference.
106
+
107
+ Braid owns the user-visible conversation graph, durable event journal, branch choices, interaction decisions, activity views, and terminal/headless presentation.
108
+
109
+ The execution route is:
54
110
 
55
111
  ```text
56
112
  AgentProfile + user turn
@@ -61,27 +117,21 @@ AgentProfile + user turn
61
117
  ▼
62
118
  agent-runtime
63
119
  │
64
- ├── CLI Bridge ── Pi · Codex · Claude Code · Kimi Code · OpenCode · other runners
120
+ ├── CLI Bridge ── selected local runner
65
121
  ├── Tangle inference
66
- └── Tangle sandbox ── remote workspace and environment lifecycle
122
+ └── Tangle sandbox ── remote workspace
67
123
  │
68
124
  ▼
69
125
  normalized events, receipts, activity, and final output
70
126
  ```
71
127
 
72
- Braid does not implement an agent loop, spawn runner processes directly, parse private runner output, or invent another profile format.
128
+ Braid does not launch runner processes directly, parse private runner output, materialize profile files, schedule sandboxes, run trace judges, or implement billing.
73
129
 
74
- A concrete local route is `AgentProfile` with `harness: 'pi'` → Braid admission → `agent-runtime` → a CLI Bridge connection → Pi → normalized events back to Braid.
130
+ An admitted run stores an immutable profile snapshot, effective runner, model, reasoning effort, configured output limits, connection, provider session, environment, and capability snapshot.
75
131
 
76
- ## AgentProfile is the configuration unit
132
+ Configured limits are not measured usage.
77
133
 
78
- `AgentProfile` is the canonical portable definition of one agent.
79
-
80
- It can contain the profile name, instructions, model hints, preferred runner, tools, permissions, resources, skills, MCP connections, modes, hooks, and subagent definitions.
81
-
82
- The `harness` field in the SDK is a runner preference.
83
-
84
- Braid displays that preference as `runner` so the profile remains the agent identity while the execution route remains replaceable.
134
+ This is the shape of a profile using the current routed model example:
85
135
 
86
136
  ```ts
87
137
  import type { AgentProfile } from '@tangle-network/agent-interface'
@@ -91,11 +141,8 @@ const profile: AgentProfile = {
91
141
  harness: 'pi',
92
142
  model: {
93
143
  provider: 'tangle-router',
94
- default: 'tangle-router/glm-5.2',
144
+ default: 'tangle-router/glm-5.3',
95
145
  reasoningEffort: 'high',
96
- maxVisibleOutputTokens: 16_384,
97
- maxReasoningTokens: 32_768,
98
- maxTotalOutputTokens: 49_152,
99
146
  },
100
147
  prompt: {
101
148
  instructions: [
@@ -108,193 +155,256 @@ const profile: AgentProfile = {
108
155
  }
109
156
  ```
110
157
 
111
- A connection supplies transport and credential references.
158
+ ## Parallel work: Work Strip, activity, and focus
112
159
 
113
- The run binds the exact profile snapshot, selected connection, effective runner, model, reasoning effort, three configured output limits, and execution environment before dispatch.
160
+ Braid admits one run per conversation branch at a time.
114
161
 
115
- Visible output, reasoning output, and total output limits are separate configured dimensions.
162
+ Different branches and conversations can stream concurrently while each branch preserves its own turn order.
116
163
 
117
- Reasoning effort controls the requested thinking tier when the selected route supports it.
164
+ Inputs for an active run queue by default.
118
165
 
119
- Configured limits never stand in for measured usage.
166
+ `/queue <text>` always adds the next turn.
120
167
 
121
- ### Example effective run receipt
168
+ `/steer <text>` sends live steering only when that run reports steering support.
122
169
 
123
- The main shell and activity details keep these values together without confusing configuration with provider evidence.
170
+ `Alt+S` switches between queue and steer when both actions are available.
124
171
 
125
- The following values illustrate the shape of one receipt and are not a live run result.
172
+ The Work Strip appears when at least two active, queued, waiting, or detached work items need attention.
126
173
 
127
- | Field | Example value |
128
- | --- | --- |
129
- | Profile | `Release engineer` |
130
- | Runner | `pi` |
131
- | Model | `tangle-router/glm-5.2` |
132
- | Reasoning | `high` |
133
- | Max visible output | `16,384 tokens` |
134
- | Max reasoning output | `32,768 tokens` |
135
- | Max total output | `49,152 tokens` |
136
- | Connection | `Local CLI Bridge` |
137
- | Execution location | `local workspace through CLI Bridge` |
138
- | Environment | `local process; sandbox fields not applicable` |
174
+ Each item shows its branch, state, runner and model, pending interaction count, and available actions.
139
175
 
140
- When the route is a Tangle sandbox, Braid shows the environment lifecycle and the resources, placement, and machine details that the provider actually reports.
176
+ Standard terminals show up to three items, wide terminals show up to eight, and narrow terminals show one bounded count with `/activity to switch`.
141
177
 
142
- It labels requested, verified, sampled, estimated, and unavailable values separately.
178
+ `/activity` opens a full-screen browser instead of adding a permanent side panel.
143
179
 
144
- It never fills an unreported IP address, CPU allocation, RAM value, GPU lease, storage value, or cost with a guess.
180
+ `Tab` cycles `all`, `runs`, `analyses`, and `workers` scopes.
145
181
 
146
- ## One activity view, three kinds of work
182
+ In the `runs` scope, `Enter` opens details and focuses controls for that exact run.
147
183
 
148
- Braid keeps direct turns, trace analyses, and runtime workers distinct.
184
+ Changing focus does not pause, cancel, detach, or reassign another run.
149
185
 
150
- | Activity | What it means | Usage and control |
151
- | --- | --- | --- |
152
- | Turn | A user message admitted to the selected runner | Direct model, tool, latency, and cost values for that run |
153
- | Analysis | A separate `agent-eval` execution over a frozen run or branch | Its own analyst profile, model, tokens, latency, cost, citations, and cancellation |
154
- | Worker | A runtime-owned child under a supervisor | Its own status and usage when reported, with parent binding and control capability |
186
+ Controls carry the selected run identifier, so a background run cannot receive a focus-dependent action by accident.
155
187
 
156
- The activity browser can show all three in one timeline while preserving their separate totals.
188
+ Direct turns, trace analyses, supervisors, and workers remain separate activity records with separate usage totals.
157
189
 
158
- An unbound supervisor remains workspace activity and is not silently attributed to the current turn.
190
+ An unbound supervisor remains workspace activity and is not attributed to the current turn.
159
191
 
160
- Missing provider values remain unknown instead of becoming zero.
192
+ ## Continue, branch, and fork
161
193
 
162
- ## Trace analysis commands
194
+ ### Native continuation
163
195
 
164
- These commands inspect or compare recorded work rather than sending another ordinary prompt to the active coding runner.
196
+ An ordinary follow-up uses the exact provider session only when the current branch tip has the same profile and connection, the provider reports session continuation, and the provider proves the recorded message boundary with retry-safe request identity.
165
197
 
166
- | Command | Meaning |
167
- | --- | --- |
168
- | `/ask <question>` | Ask one free-form question about a selected frozen run or branch and return cited findings. |
169
- | `/analyze <recipe>` | Run a named recipe such as `failure`, `cost`, `tools`, or `improvement` through `agent-eval`. |
170
- | `/compare <left> <right>` | Freeze two run or branch sources, show their measured asymmetries, and create a paired comparison. |
198
+ Only the new user input is submitted because the provider session remains authoritative for its native context.
171
199
 
172
- `/ask` does not append a message to the analyzed branch.
200
+ If the provider cannot prove that boundary, Braid does not submit to the native session.
173
201
 
174
- Each analysis has its own run identity, source digest, analyst profile, model, budget, usage, latency, cost, completeness, and citations.
202
+ Choose a fresh provider session with an explicit portable context transfer when that provider supports it.
175
203
 
176
- The standard Braid install includes `uv` for `/ask`.
204
+ The transfer lists included, omitted, and transformed parts and requires acceptance when it changes the context.
177
205
 
178
- On first use, `uv` downloads a managed Python 3.12 runtime and runs `agent-eval-rpc[dspy]==0.145.15` in an isolated cached environment.
206
+ `--conversation <id>` attaches to Braid's durable record and recorded run bindings.
179
207
 
180
- Set `BRAID_PYTHON` only when an operator must use a preinstalled compatible environment instead.
208
+ It does not take over an arbitrary native runner process.
181
209
 
182
- Findings remain separate until the user explicitly sends selected findings to a branch or forks from the analysis.
210
+ `/interactive <prompt>` and `/attach [run-id]` are separate native-terminal operations.
183
211
 
184
- ## Interactive and headless modes
212
+ They require an interactive TUI and a retained provider session with native terminal support.
185
213
 
186
- Interactive mode is the full-screen terminal experience with a multiline composer, streaming transcript, selectors, and focused overlays.
214
+ ### Conversation operations
187
215
 
188
- Use inline mode when preserving normal terminal scrollback matters.
216
+ `/branch [message]` creates a new branch at a message boundary in the same conversation.
189
217
 
190
- ```bash
191
- braid
192
- braid --inline
193
- ```
218
+ It uses a new provider session and keeps the current environment shared.
194
219
 
195
- Headless mode is the same application core behind JSON Lines commands and state records.
220
+ Pending interactions and queued work after the boundary are not inherited.
196
221
 
197
- ```bash
198
- braid rpc
199
- ```
222
+ `/clone` creates a separate conversation from the active branch tip with new conversation, branch, and execution identities.
200
223
 
201
- Use plain mode for a readable non-interactive event stream without terminal control sequences.
224
+ It may retain a reference to the same workspace, but it does not copy provider process memory.
202
225
 
203
- ```bash
204
- braid --plain
205
- ```
226
+ `/fork` opens a provenance preview before creating a branch.
206
227
 
207
- The terminal and JSONL interfaces share command parsing, capability checks, operation identifiers, reducers, persistence, execution ports, and view projections.
228
+ The preview shows the transcript boundary, profile, run overrides, provider session, environment, checkpoint, working-tree state, queued input, and pending interactions.
208
229
 
209
- Headless clients can send, queue, steer, cancel, detach, reconnect, reconcile, inspect state, inspect activity, run analysis, compare sources, and export records through the versioned protocol.
230
+ The default is a conversation-only fork with a new provider session and shared environment.
210
231
 
211
- Mutating headless requests carry stable operation identifiers so a retry can be recognized instead of dispatched twice.
232
+ `/fork --runner <name>` creates a cross-runner handoff with a new provider session and explicit portable context.
212
233
 
213
- ## Attach, resume, and sandboxes
234
+ Hidden process memory, runner-specific todos, opaque tool state, and opaque tool identifiers do not transfer.
214
235
 
215
- Opening Braid with `--conversation <id>` attaches the interface to a durable Braid conversation and its recorded run bindings.
236
+ `/fork --workspace` requests a real provider checkpoint and destination environment.
216
237
 
217
- That operation restores Braid's journal and view state; it does not claim to take over an arbitrary native runner process.
238
+ It is available only when the provider reports retry-safe checkpoint and fork operations, lookup by idempotency key, and explicit cleanup.
218
239
 
219
- Braid reconnects a non-terminal run from the last committed event cursor only when the selected provider can prove replay or status.
240
+ The source environment remains unchanged, and a failed fork does not destroy its checkpoint or source.
220
241
 
221
- If the provider cannot prove the live state, Braid displays detached, incomplete, expired, unauthorized, or unknown rather than calling the run completed.
242
+ The destination environment is not assumed to include external services, browser sessions, secrets, network connections, or provider process memory.
222
243
 
223
- Continuing a compatible native provider session requires provider evidence that its context boundary matches Braid's recorded message boundary.
244
+ ## Interactions and secrets
224
245
 
225
- Changing runners creates a new provider session with an explicit portable-context handoff.
246
+ An interaction is a provider request with a stable identifier, kind, prompt, subject, timeout, allowed outcomes, and canonical `answerSpec`.
226
247
 
227
- It does not claim to transfer hidden process memory, runner-specific todos, opaque tool state, or native session internals.
248
+ Known kinds include questions, permissions, and plans.
228
249
 
229
- A Tangle sandbox connection provides an isolated remote workspace and reports only the lifecycle, replay, control, and resource capabilities that the current provider proves.
250
+ Unknown kinds render through the generic answer specification and fail closed if Braid cannot validate a response.
230
251
 
231
- Braid shows those capabilities and their receipts through the same activity and graph surfaces.
252
+ `/approve [scope]` accepts an allowed response.
232
253
 
233
- New Tangle Sandbox connections default to one ephemeral cloud turn and delete that environment after the turn.
254
+ `/reject [feedback]` declines it when the schema accepts feedback.
234
255
 
235
- Retained lifecycle is an explicit connection configuration option with a bounded idle limit.
256
+ The terminal validates text, number, boolean, select, and secret answers before dispatch.
236
257
 
237
- Before retained execution creates a sandbox, Braid requires exact control plus provider-backed lookup for an unacknowledged dispatch.
258
+ Permission controls expose only scopes declared by the provider.
238
259
 
239
- The current provider reports both, so a fresh Braid process can recover before or after the six-field reference commits.
260
+ Secret answers are masked and sent only through the bounded response path.
240
261
 
241
- Native follow-up turns remain disabled until the provider also proves that its context boundary matches Braid's recorded boundary.
262
+ They are excluded from history, profiles, SQLite, logs, snapshots, screenshots, and trace artifacts.
242
263
 
243
- Checkpoint, environment fork, and interaction response remain unavailable until the shared provider reports and proves those operations.
264
+ `/automate` manages scoped non-secret response rules.
244
265
 
245
- The user can inspect the requested and verified execution location, but provider-private machine details remain unavailable when they are not reported.
266
+ An answer specification containing a secret field cannot create or match an automation rule.
246
267
 
247
- On 2026-08-15, the default retained production cohort passed 3 of 3 Braid runs through OpenCode, GLM 5.2, and Tangle Sandbox at two-way concurrency.
268
+ Concurrent interactions remain attached to their source runs and display in stable arrival order.
248
269
 
249
- Each proof killed the first Braid process, reconnected once, continued in the same provider session, cancelled a later turn, replayed the same cancellation, and rejected changed input.
270
+ Response retries reuse the same operation identifier and never answer twice.
250
271
 
251
- All three exact sandboxes were confirmed deleted, and the account's active Sandbox count returned to its starting value.
272
+ ## Trace analysis
252
273
 
253
- Individual proof duration was 82.3 seconds minimum, 89.0 seconds median, and 96.2 seconds maximum.
274
+ Trace analysis reads a frozen run or branch record in a separate execution.
254
275
 
255
- Six completed turns reported 9,231 input tokens, 1,992 output tokens, and $0 provider cost; token and cost data were unavailable for three cancelled turns.
276
+ It does not send a question to the active agent and does not append a message to the analyzed branch.
256
277
 
257
- The provider exposed cgroup v2 memory samples with a 2,048 MB limit and 630–633 MB peak use.
278
+ ```text
279
+ /ask <question> cited free-form question about the last eligible source
280
+ /analyze failure,cost,tools run selected named recipes
281
+ /analyze all run every available trace analyst
282
+ /compare <left> <right> compare two frozen sources
283
+ ```
284
+
285
+ `/ask` uses the last completed or failed run unless a source is selected explicitly.
286
+
287
+ Each analysis records its source digest, analyst profile, model, recipe, progress, findings, citations, completeness, usage, latency, cost, and cancellation state.
288
+
289
+ The analysis activity scope uses `p` to promote a supported cited finding and `x` to cancel active analysis.
290
+
291
+ Promotion creates an explicit attachment or a branch fork; it never changes the source implicitly.
292
+
293
+ Comparisons show every measured field and asymmetry before any semantic interpretation.
294
+
295
+ ## Runtime supervisors and workers
296
+
297
+ `/activity` reads runtime-owned supervisor snapshots through the shared Runtime API.
298
+
299
+ It does not read `.agent/supervisor` files or infer identity from display text, timestamps, or row order.
300
+
301
+ In the `workers` scope, `r` refreshes the snapshot, `s` opens a worker steering prompt, `x` requests cancellation, and `a` attaches to a running worker's retained terminal when available.
258
302
 
259
- Machine identity, IP address, effective CPU and storage, placement, region, and per-sandbox cost remained unavailable because the provider did not report them.
303
+ Worker steering sends the exact runtime worker identifier with a stable operation identifier and displays a queued or acknowledged effect.
260
304
 
261
- The earlier ephemeral stress proof completed 20 of 20 Braid turns at four-way concurrency.
305
+ Worker cancellation and supervisor cancellation use runtime-owned idempotent operations and display the acknowledged effect and terminated descendants when reported.
262
306
 
263
- All 20 remote environments were unique and confirmed deleted, while the account's active Sandbox count returned from four to four.
307
+ Worker attachment resolves the projected Braid supervisor and worker to exact Runtime identifiers, then claims the retained interactive handle for that worker.
264
308
 
265
- See the [ephemeral proof artifact](artifacts/verification/live/tangle-sandbox-braid-execution-stress-production-20260812.json) for every earlier run, token receipt, latency, environment observation, and cleanup result.
309
+ It is available only in the interactive TUI when the selected worker is running and its provider exposes a retained terminal binding.
310
+
311
+ That worker action is different from `/attach [run-id]`, which targets a retained native terminal session.
312
+
313
+ When the runtime cannot acknowledge a control, Braid leaves the result queued or unknown.
314
+
315
+ It never displays delivered steering or cancellation without the matching runtime effect.
316
+
317
+ ## Capability-aware commands
318
+
319
+ Braid asks the active provider and Runtime for capabilities before it enables an action.
320
+
321
+ Unavailable commands remain searchable and explain the exact missing capability.
322
+
323
+ Common reasons include:
324
+
325
+ | Action | Exact reason shown when the condition applies |
326
+ | --- | --- |
327
+ | Worker steer | `There is no running supervised worker to steer` |
328
+ | Worker cancel | `There is no running supervised worker to cancel` |
329
+ | Supervisor cancel | `There is no running supervisor to cancel` |
330
+ | Worker attach without an interactive TUI | `Worker terminals require an interactive TUI` |
331
+ | Worker attach without a running worker | `There is no running supervised worker to attach` |
332
+ | Worker attach with a stale selection | `The selected worker is not running` |
333
+ | Worker attach with a missing target | `The selected worker is not present under the selected supervisor` |
334
+ | Worker attach without a retained binding | `The worker has no retained terminal binding` |
335
+ | Worker attach without provider support | `The worker provider cannot attach a terminal` |
336
+ | Worker attach without a configured provider | `Select the worker's Tangle Sandbox connection first` |
337
+ | Native terminal | `Select a retained Tangle Sandbox connection with native terminal support` |
338
+ | Native session attach | `No retained native session is available` |
339
+ | Interaction response | `Interaction response is not exposed by the current runtime adapter` |
340
+ | Provider cancellation | `The current runtime does not acknowledge provider cancellation` |
341
+ | Live steering | `The current runtime does not report steering support` |
342
+ | Queued input | `The current runtime does not report queued input support` |
266
343
 
267
- The [verification record](docs/08-verification.md#current-core-path-observations) keeps the full results, limits, and tracked platform work.
344
+ A missing capability never becomes a simulated success.
268
345
 
269
- ## Commands users reach for first
346
+ ## Tangle Sandbox lifecycle
347
+
348
+ New Tangle Sandbox connections default to one ephemeral cloud turn and delete the environment after the turn.
349
+
350
+ Retained execution is an explicit connection choice.
351
+
352
+ Braid requires exact retained-run control and provider-backed lookup before it creates a retained environment, so restart can recover an uncommitted dispatch.
353
+
354
+ The provider reports lifecycle, replay, control, interaction, continuation, workspace, placement, resource, and usage capabilities per run.
355
+
356
+ Braid shows requested, verified, sampled, estimated, and unavailable values separately.
357
+
358
+ It never guesses machine identity, IP address, effective resources, storage, or cost when the provider does not report them.
359
+
360
+ ## Commands at a glance
270
361
 
271
362
  | Need | Command or key |
272
363
  | --- | --- |
273
- | Select the agent and route | `/profile`, `/connection`, `/runner`, `/model`, `/effort` |
274
- | Inspect execution | `/activity`, `F2`, `/export` |
275
- | Navigate the work graph | `/graph`, `/fork`, `/branch`, `/clone` |
276
- | Answer or automate a request | `/approve`, `/reject`, `/automate` |
277
- | Control active work | `/queue`, `/steer`, `/cancel` |
364
+ | Select profile and route | `/profile`, `/connection`, `/runner`, `/model`, `/effort` |
365
+ | Open activity and focus a run | `/activity`, `F2`, `Enter` on a run row |
366
+ | Navigate conversation work | `/graph`, `/branch`, `/clone`, `/fork` |
367
+ | Answer an interaction | `/approve`, `/reject`, `/automate` |
368
+ | Queue, steer, or cancel a run | `/queue`, `/steer`, `/cancel` |
369
+ | Detach and recover retained work | `/detach`, `/reconnect`, `/reconcile` |
370
+ | Use a native terminal | `/interactive`, `/attach` |
371
+ | Analyze or compare work | `/ask`, `/analyze`, `/compare` |
278
372
  | Drive Braid from another process | `braid rpc` |
279
373
 
280
- Commands remain searchable when a provider does not support them.
374
+ Run `/help [query]` for the complete command and key registry.
375
+
376
+ The command palette uses the same capability explanations as direct invocation.
377
+
378
+ ## Headless mode
281
379
 
282
- An unavailable command explains the missing capability instead of pretending that the operation succeeded.
380
+ `braid rpc` exposes JSON Lines commands over the same application core as the terminal.
283
381
 
284
- ## What Braid owns
382
+ Headless clients can inspect state, send, queue, steer, cancel, detach, reconnect, reconcile, respond to interactions, manage automation, branch, clone, fork, analyze, compare, inspect activity, control workers, and export records.
383
+
384
+ Worker terminal attachment remains an interactive-TUI action.
385
+
386
+ Mutating requests carry stable operation identifiers, so retries can be recognized instead of dispatched twice.
387
+
388
+ Plain output and headless state contain no terminal control sequences.
389
+
390
+ ## Ownership and safety boundaries
285
391
 
286
392
  | Boundary | Owner |
287
393
  | --- | --- |
288
- | Portable agent definition and compatibility facts | `agent-interface` |
289
- | Run admission, lifecycle, normalized events, and runtime control | `agent-runtime` |
394
+ | Portable agent definition and compatibility helpers | `agent-interface` |
395
+ | Run admission, lifecycle, normalized events, replay, and runtime control | `agent-runtime` |
290
396
  | Local runner process and native profile materialization | CLI Bridge |
291
- | Tangle inference and remote workspace lifecycle | Tangle provider and sandbox packages |
397
+ | Inference and remote workspace lifecycle | Tangle provider and sandbox packages |
292
398
  | Trace analysis and paired comparison | `agent-eval` |
293
- | Conversation journal, branches, graph, approvals, projections, and terminal/headless interfaces | Braid |
399
+ | Conversation journal, branches, graph, interactions, projections, and interfaces | Braid |
400
+
401
+ Components render immutable view models and emit typed intents.
294
402
 
295
- Braid adapts these contracts through narrow ports.
403
+ Controllers own workflows, cancellation, event reduction, and side effects through ports.
296
404
 
297
- It does not duplicate execution, authentication, provider parsing, sandbox scheduling, trace judging, or billing logic.
405
+ Untrusted terminal content is sanitized before rendering, and OSC control sequences are suppressed by default.
406
+
407
+ No credential value, secret interaction answer, provider-private state, or raw secret-bearing trace enters a profile, SQLite record, log, snapshot, screenshot, or export.
298
408
 
299
409
  ## Development and proof
300
410
 
@@ -304,27 +414,21 @@ pnpm check
304
414
  pnpm capture:visual
305
415
  ```
306
416
 
307
- `pnpm check` covers formatting, linting, types, dependency boundaries, attribution, licenses, automated tests, live checks, and release checks configured by the repository.
308
-
309
- When a ready Pi backend is configured, `pnpm capture:visual` drives the packed CLI through a pseudo-terminal and records terminal state evidence plus a live Pi and CLI Bridge product capture.
417
+ `pnpm check` runs the repository's formatting, lint, type, boundary, dependency, attribution, license, test, live, and release checks.
310
418
 
311
- The checked-in W6 state captures prove rendering and keyboard paths.
312
-
313
- A successful product capture is the evidence for the live Pi, CLI Bridge, inference route, and sandbox run.
419
+ `pnpm capture:visual` records terminal state at 40×12, 80×24, 120×40, and 200×60 and exercises the keyboard path.
314
420
 
315
421
  The [verification plan](docs/08-verification.md) defines the required live, headless, terminal, security, installation, and release evidence.
316
422
 
317
423
  The [delivery plan](docs/09-delivery-plan.md) records dependency order and completion criteria.
318
424
 
319
- The [product contract](docs/01-product-contract.md), [experience specification](docs/02-experience-specification.md), and [architecture](docs/03-architecture.md) define the user-visible and ownership boundaries.
425
+ The [product contract](docs/01-product-contract.md), [experience specification](docs/02-experience-specification.md), [runtime contracts](docs/04-runtime-contracts.md), and [conversation/fork/analysis contract](docs/06-conversations-forks-and-analysis.md) define the behavior and ownership boundaries.
320
426
 
321
427
  ## Open-source foundation
322
428
 
323
429
  Braid uses the MIT-licensed [`@earendil-works/pi-tui`](https://www.npmjs.com/package/@earendil-works/pi-tui) package for terminal rendering and input primitives.
324
430
 
325
- Its interaction design takes narrow, application-level patterns from [Pi](https://github.com/earendil-works/pi), [OpenCode](https://github.com/anomalyco/opencode), and [Codex](https://github.com/openai/codex) without copying their agent loops, session stores, authentication systems, provider adapters, or model registries.
326
-
327
- See the [renderer decision](docs/decisions/001-pi-tui-renderer.md), [runtime boundary](docs/decisions/002-runtime-boundary.md), [upstream strategy](docs/10-upstream-strategy.md), and [third-party notices](THIRD_PARTY_NOTICES.md) for the exact reuse boundary.
431
+ See the [renderer decision](docs/decisions/001-pi-tui-renderer.md), [runtime boundary](docs/decisions/002-runtime-boundary.md), [upstream strategy](docs/10-upstream-strategy.md), and [third-party notices](THIRD_PARTY_NOTICES.md) for the reuse boundary.
328
432
 
329
433
  ## License
330
434
 
@@ -77,6 +77,10 @@
77
77
  "license": "MIT",
78
78
  "name": "@tangle-network/sandbox"
79
79
  },
80
+ {
81
+ "license": "Apache-2.0",
82
+ "name": "@tangle-network/tcloud-attestation"
83
+ },
80
84
  {
81
85
  "license": "MIT",
82
86
  "name": "@types/proper-lockfile"
@@ -213,6 +217,10 @@
213
217
  "license": "ISC",
214
218
  "name": "signal-exit"
215
219
  },
220
+ {
221
+ "license": "BSD-3-Clause",
222
+ "name": "smol-toml"
223
+ },
216
224
  {
217
225
  "license": "CC-BY-3.0",
218
226
  "name": "spdx-exceptions"