zidane-ui 9.1.1 → 9.1.4

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 (1074) hide show
  1. package/README.md +2 -0
  2. package/dist/adapters/index.js +1 -1
  3. package/dist/adapters/server-transcript-members.d.ts +1 -1
  4. package/dist/adapters/server-transcript-members.js +19 -1
  5. package/dist/app/ModalProvider.d.ts +3 -1
  6. package/dist/app/ModalProvider.js +15 -9
  7. package/dist/approvals/headless/index.js +1 -1
  8. package/dist/chat/HostTranscript.d.ts +3 -1
  9. package/dist/chat/HostTranscript.js +5 -3
  10. package/dist/chat/Transcript.js +1 -1
  11. package/dist/chat/composer/ComposerEditor.js +1 -1
  12. package/dist/chat/composer/index.js +1 -1
  13. package/dist/chat/composer/use-composer-stores.js +1 -1
  14. package/dist/chat/headless/block-runs.d.ts +57 -0
  15. package/dist/chat/headless/block-runs.js +123 -0
  16. package/dist/chat/headless/composer/index.js +2 -2
  17. package/dist/chat/headless/fixture-transcript.d.ts +6 -1
  18. package/dist/chat/headless/fixture-transcript.js +49 -0
  19. package/dist/chat/headless/host.d.ts +3 -0
  20. package/dist/chat/headless/index.d.ts +2 -1
  21. package/dist/chat/headless/index.js +11 -10
  22. package/dist/chat/headless/labels.d.ts +42 -0
  23. package/dist/chat/headless/labels.js +42 -0
  24. package/dist/chat/headless/session-list.d.ts +27 -0
  25. package/dist/chat/headless/sidebar/labels.d.ts +27 -0
  26. package/dist/chat/headless/streams/index.js +1 -1
  27. package/dist/chat/headless/streams/live-events.js +2 -1
  28. package/dist/chat/headless/streams/session-streams.js +2 -2
  29. package/dist/chat/headless/streams/store.js +2 -2
  30. package/dist/chat/headless/transcript/batch.d.ts +21 -1
  31. package/dist/chat/headless/transcript/batch.js +55 -10
  32. package/dist/chat/headless/transcript/collapse.js +18 -3
  33. package/dist/chat/headless/transcript/fold.js +26 -10
  34. package/dist/chat/headless/transcript/index.js +1 -1
  35. package/dist/chat/headless/transcript/rows.d.ts +7 -1
  36. package/dist/chat/index.d.ts +6 -1
  37. package/dist/chat/index.js +7 -2
  38. package/dist/chat/testing/contract.d.ts +6 -1
  39. package/dist/chat/testing/contract.js +30 -3
  40. package/dist/chat/transcript/AnsiText.d.ts +27 -0
  41. package/dist/chat/transcript/AnsiText.js +73 -0
  42. package/dist/chat/transcript/CodemodeScript.d.ts +33 -0
  43. package/dist/chat/transcript/CodemodeScript.js +212 -0
  44. package/dist/chat/transcript/LiveOutput.d.ts +21 -0
  45. package/dist/chat/transcript/LiveOutput.js +42 -0
  46. package/dist/chat/transcript/TranscriptRow.js +19 -2
  47. package/dist/chat/transcript/actions.d.ts +6 -0
  48. package/dist/chat/transcript/index.d.ts +6 -1
  49. package/dist/chat/transcript/index.js +6 -1
  50. package/dist/chat/transcript/markdown.js +9 -0
  51. package/dist/chat/transcript/renderers.d.ts +7 -0
  52. package/dist/chat/transcript/script-input.d.ts +17 -0
  53. package/dist/chat/transcript/script-input.js +16 -0
  54. package/dist/chat/transcript/shell-block-scope.d.ts +29 -0
  55. package/dist/chat/transcript/shell-block-scope.js +18 -0
  56. package/dist/chat/transcript/shell-block.d.ts +27 -0
  57. package/dist/chat/transcript/shell-block.js +306 -0
  58. package/dist/chat/transcript/tool-parts.d.ts +18 -6
  59. package/dist/chat/transcript/tool-parts.js +15 -5
  60. package/dist/chat/transcript/tool-payload.js +6 -3
  61. package/dist/chat/transcript/tool-row.js +155 -96
  62. package/dist/chat/transcript/user-bash.js +3 -2
  63. package/dist/code/HighlightedCode.js +3 -69
  64. package/dist/code/highlight-lines.d.ts +24 -0
  65. package/dist/code/highlight-lines.js +41 -0
  66. package/dist/code/use-highlighted-html.d.ts +5 -0
  67. package/dist/code/use-highlighted-html.js +75 -0
  68. package/dist/core.css +6 -2
  69. package/dist/dist/{index-CGbOWa7y.d.ts → index-WlE93Q6d.d.ts} +101 -3
  70. package/dist/extensions/ExtensionSettingsSidebar.js +19 -3
  71. package/dist/extensions/kit.d.ts +1 -1
  72. package/dist/git/BranchMenu.d.ts +1 -7
  73. package/dist/git/BranchMenu.js +17 -40
  74. package/dist/git/headless/labels.d.ts +0 -2
  75. package/dist/git/headless/labels.js +0 -2
  76. package/dist/index.d.ts +4 -3
  77. package/dist/index.js +2 -1
  78. package/dist/onboarding/demos/index.js +1 -1
  79. package/dist/onboarding/index.js +5 -5
  80. package/dist/onboarding/steps/ConnectStep.js +1 -1
  81. package/dist/onboarding/steps/ConnectorsStep.js +1 -1
  82. package/dist/onboarding/steps/ExtensionsStep.js +1 -1
  83. package/dist/onboarding/steps/ReadyStep.js +2 -2
  84. package/dist/onboarding/steps/SkillsStep.js +1 -1
  85. package/dist/onboarding/steps/connect/ProviderPanel.js +1 -1
  86. package/dist/session/headless/index.js +1 -1
  87. package/dist/settings/SettingsShell.d.ts +3 -1
  88. package/dist/settings/SettingsShell.js +15 -8
  89. package/dist/settings/headless/catalog.js +5 -0
  90. package/dist/settings/headless/layout.js +2 -1
  91. package/dist/settings/headless/registry.d.ts +2 -0
  92. package/dist/settings/headless/search.d.ts +1 -1
  93. package/dist/settings/sections/environments/EnvironmentsSection.js +1 -1
  94. package/dist/settings/sections/extensions/ExtensionsSection.js +2 -2
  95. package/dist/settings/sections/models/ModelRows.js +2 -2
  96. package/dist/settings/sections/models/model-test.js +1 -1
  97. package/dist/settings/sections/skills/SkillsSection.js +1 -1
  98. package/dist/styles.css +291 -2
  99. package/dist/terminal/TerminalProvider.d.ts +3 -1
  100. package/dist/terminal/TerminalProvider.js +5 -1
  101. package/dist/terminal/headless/store.d.ts +10 -0
  102. package/dist/terminal/headless/store.js +16 -0
  103. package/dist/terminal/index.d.ts +2 -2
  104. package/dist/terminal/index.js +2 -2
  105. package/dist/theme/runtime-icons.d.ts +50 -0
  106. package/dist/theme/runtime-icons.js +95 -0
  107. package/package.json +3 -6
  108. package/src/styles/primitives.css +5 -2
  109. package/src/styles/transcript.css +281 -0
  110. package/src/adapters/browser-appearance-host.ts +0 -51
  111. package/src/adapters/browser-keybindings-host.ts +0 -48
  112. package/src/adapters/browser-workspace-host.ts +0 -92
  113. package/src/adapters/closable-client.ts +0 -34
  114. package/src/adapters/extension-modules.ts +0 -360
  115. package/src/adapters/index.ts +0 -35
  116. package/src/adapters/live-events.ts +0 -6
  117. package/src/adapters/live.ts +0 -270
  118. package/src/adapters/run-host.ts +0 -238
  119. package/src/adapters/server-approvals-host.ts +0 -102
  120. package/src/adapters/server-client.ts +0 -15
  121. package/src/adapters/server-composer-host.ts +0 -459
  122. package/src/adapters/server-extensions-host.ts +0 -979
  123. package/src/adapters/server-files-host.ts +0 -287
  124. package/src/adapters/server-git-host.ts +0 -289
  125. package/src/adapters/server-host.ts +0 -489
  126. package/src/adapters/server-machines-host.ts +0 -283
  127. package/src/adapters/server-oauth-flow.ts +0 -133
  128. package/src/adapters/server-onboarding-host.ts +0 -363
  129. package/src/adapters/server-palette-host.ts +0 -134
  130. package/src/adapters/server-session-host.ts +0 -241
  131. package/src/adapters/server-settings-accounts.ts +0 -212
  132. package/src/adapters/server-settings-host.ts +0 -120
  133. package/src/adapters/server-settings-models.ts +0 -46
  134. package/src/adapters/server-settings-performance.ts +0 -58
  135. package/src/adapters/server-settings-sections.ts +0 -222
  136. package/src/adapters/server-sidebar-host.ts +0 -59
  137. package/src/adapters/server-terminal-host.ts +0 -124
  138. package/src/adapters/server-transcript-members.ts +0 -131
  139. package/src/adapters/sse-host.ts +0 -264
  140. package/src/adapters/sse-parser.ts +0 -82
  141. package/src/adapters/sse-protocol.ts +0 -118
  142. package/src/adapters/stream-pacer.ts +0 -122
  143. package/src/adapters/worker-host.ts +0 -192
  144. package/src/adapters/worker-protocol.ts +0 -97
  145. package/src/app/AppHostProvider.tsx +0 -135
  146. package/src/app/ModalProvider.tsx +0 -731
  147. package/src/app/headless/app-host.ts +0 -61
  148. package/src/app/headless/index.ts +0 -6
  149. package/src/app/headless/resource.ts +0 -444
  150. package/src/app/index.ts +0 -9
  151. package/src/app/testing/index.ts +0 -90
  152. package/src/app/useConfirm.tsx +0 -65
  153. package/src/app/useResource.ts +0 -30
  154. package/src/appearance/AppearanceProvider.tsx +0 -383
  155. package/src/appearance/apply.ts +0 -69
  156. package/src/appearance/headless/fixture-host.ts +0 -111
  157. package/src/appearance/headless/fonts.ts +0 -224
  158. package/src/appearance/headless/host.ts +0 -65
  159. package/src/appearance/headless/index.ts +0 -12
  160. package/src/appearance/headless/prefs.ts +0 -252
  161. package/src/appearance/headless/storage.ts +0 -127
  162. package/src/appearance/headless/zoom-commands.ts +0 -21
  163. package/src/appearance/index.ts +0 -11
  164. package/src/appearance/testing/contract.ts +0 -210
  165. package/src/appearance/testing/index.ts +0 -6
  166. package/src/approvals/ApprovalBar.tsx +0 -234
  167. package/src/approvals/ApprovalConcern.tsx +0 -33
  168. package/src/approvals/ApprovalShell.tsx +0 -69
  169. package/src/approvals/ApprovalsProvider.tsx +0 -110
  170. package/src/approvals/FileEditApproval.tsx +0 -310
  171. package/src/approvals/HunkPreviews.tsx +0 -225
  172. package/src/approvals/SafelistPanel.tsx +0 -149
  173. package/src/approvals/headless/fixture-host.ts +0 -73
  174. package/src/approvals/headless/fixtures.ts +0 -86
  175. package/src/approvals/headless/heads.ts +0 -81
  176. package/src/approvals/headless/host.ts +0 -80
  177. package/src/approvals/headless/index.ts +0 -12
  178. package/src/approvals/headless/labels.ts +0 -67
  179. package/src/approvals/headless/pending.ts +0 -91
  180. package/src/approvals/headless/preview.ts +0 -94
  181. package/src/approvals/headless/safelist.ts +0 -63
  182. package/src/approvals/index.ts +0 -13
  183. package/src/approvals/key-scope.ts +0 -33
  184. package/src/approvals/testing/contract.ts +0 -230
  185. package/src/approvals/testing/index.ts +0 -7
  186. package/src/brands/marks.ts +0 -298
  187. package/src/chat/ChatProvider.tsx +0 -60
  188. package/src/chat/DaemonOrb.tsx +0 -107
  189. package/src/chat/HostBadge.tsx +0 -71
  190. package/src/chat/HostStatusDot.tsx +0 -53
  191. package/src/chat/HostTranscript.tsx +0 -101
  192. package/src/chat/PdfPreview.tsx +0 -65
  193. package/src/chat/RunEstimateChip.tsx +0 -168
  194. package/src/chat/SessionFilterMenu.tsx +0 -397
  195. package/src/chat/SessionGroupHeader.tsx +0 -177
  196. package/src/chat/SessionHostHeader.tsx +0 -66
  197. package/src/chat/SessionList.tsx +0 -413
  198. package/src/chat/SessionListRow.tsx +0 -296
  199. package/src/chat/SessionStreamsProvider.tsx +0 -253
  200. package/src/chat/StatusDot.tsx +0 -128
  201. package/src/chat/TextPreview.tsx +0 -121
  202. package/src/chat/Throbber.tsx +0 -270
  203. package/src/chat/Transcript.tsx +0 -523
  204. package/src/chat/composer/AgentPicker.tsx +0 -155
  205. package/src/chat/composer/AgentPickerDialog.tsx +0 -99
  206. package/src/chat/composer/ApprovalDock.tsx +0 -64
  207. package/src/chat/composer/ArchivedBanner.tsx +0 -44
  208. package/src/chat/composer/AttachmentTiles.tsx +0 -211
  209. package/src/chat/composer/Composer.tsx +0 -500
  210. package/src/chat/composer/ComposerBadges.tsx +0 -339
  211. package/src/chat/composer/ComposerControls.tsx +0 -243
  212. package/src/chat/composer/ComposerEditor.tsx +0 -101
  213. package/src/chat/composer/ComposerHostProvider.tsx +0 -46
  214. package/src/chat/composer/ComposerShell.tsx +0 -129
  215. package/src/chat/composer/ContextBreakdown.tsx +0 -382
  216. package/src/chat/composer/ContextOrb.tsx +0 -176
  217. package/src/chat/composer/ConversationBadges.tsx +0 -168
  218. package/src/chat/composer/DockCard.tsx +0 -126
  219. package/src/chat/composer/EffortPickerDialog.tsx +0 -184
  220. package/src/chat/composer/HostComposer.tsx +0 -135
  221. package/src/chat/composer/HostContextOrb.tsx +0 -94
  222. package/src/chat/composer/HostModelChainList.tsx +0 -102
  223. package/src/chat/composer/HostPicker.tsx +0 -97
  224. package/src/chat/composer/HostPickers.tsx +0 -320
  225. package/src/chat/composer/ImageModelList.tsx +0 -151
  226. package/src/chat/composer/ModelChainList.tsx +0 -442
  227. package/src/chat/composer/ModelChainParts.tsx +0 -247
  228. package/src/chat/composer/ModelChainRow.tsx +0 -191
  229. package/src/chat/composer/ModelChainRows.tsx +0 -223
  230. package/src/chat/composer/ModelChainTooltip.tsx +0 -121
  231. package/src/chat/composer/ModelFacts.tsx +0 -204
  232. package/src/chat/composer/ModelOptionsPicker.tsx +0 -257
  233. package/src/chat/composer/ModelPicker.tsx +0 -513
  234. package/src/chat/composer/ModelPickerDialog.tsx +0 -99
  235. package/src/chat/composer/ModelProviderPills.tsx +0 -141
  236. package/src/chat/composer/PickerPill.tsx +0 -41
  237. package/src/chat/composer/ProjectMenu.tsx +0 -187
  238. package/src/chat/composer/PromptHistoryProvider.tsx +0 -214
  239. package/src/chat/composer/RetryPill.tsx +0 -47
  240. package/src/chat/composer/RunStatusChip.tsx +0 -150
  241. package/src/chat/composer/ScopeToggle.tsx +0 -94
  242. package/src/chat/composer/SelectTurnHint.tsx +0 -40
  243. package/src/chat/composer/SendButton.tsx +0 -89
  244. package/src/chat/composer/ServerScopeToggle.tsx +0 -188
  245. package/src/chat/composer/attachment-ingest.ts +0 -413
  246. package/src/chat/composer/attachments.tsx +0 -176
  247. package/src/chat/composer/badge-order.ts +0 -65
  248. package/src/chat/composer/composer-bus.ts +0 -317
  249. package/src/chat/composer/index.ts +0 -63
  250. package/src/chat/composer/load-composer-editor.ts +0 -25
  251. package/src/chat/composer/model-catalog.ts +0 -424
  252. package/src/chat/composer/model-list-layout.ts +0 -118
  253. package/src/chat/composer/prompt-history-nav.ts +0 -60
  254. package/src/chat/composer/scope-side.ts +0 -7
  255. package/src/chat/composer/suggestion-extension.ts +0 -113
  256. package/src/chat/composer/suggestions.tsx +0 -115
  257. package/src/chat/composer/use-agent-profiles.ts +0 -97
  258. package/src/chat/composer/use-cache-hints.ts +0 -93
  259. package/src/chat/composer/use-composer-stores.ts +0 -140
  260. package/src/chat/composer/use-draft-target.ts +0 -317
  261. package/src/chat/composer/use-new-session-defaults.ts +0 -201
  262. package/src/chat/composer/use-provider-ready-poll.ts +0 -35
  263. package/src/chat/composer/use-run-meter.ts +0 -140
  264. package/src/chat/composer/use-send-prompt.ts +0 -188
  265. package/src/chat/composer/use-session-meters.ts +0 -109
  266. package/src/chat/composer/use-sustained-work.ts +0 -74
  267. package/src/chat/composer/useAttachmentIngest.ts +0 -116
  268. package/src/chat/composer/useModelListSpy.ts +0 -19
  269. package/src/chat/headless/badge-refs.ts +0 -76
  270. package/src/chat/headless/chip-labels.ts +0 -40
  271. package/src/chat/headless/chip-settle.ts +0 -53
  272. package/src/chat/headless/chip-views.ts +0 -215
  273. package/src/chat/headless/composer/attachment-dedupe.ts +0 -50
  274. package/src/chat/headless/composer/commands.ts +0 -16
  275. package/src/chat/headless/composer/composer-sources.ts +0 -150
  276. package/src/chat/headless/composer/conversation-badges.ts +0 -227
  277. package/src/chat/headless/composer/draft-sync.ts +0 -199
  278. package/src/chat/headless/composer/editor-markdown.ts +0 -137
  279. package/src/chat/headless/composer/ghost-autocomplete.ts +0 -381
  280. package/src/chat/headless/composer/host-chrome.ts +0 -197
  281. package/src/chat/headless/composer/host.ts +0 -250
  282. package/src/chat/headless/composer/index.ts +0 -17
  283. package/src/chat/headless/composer/labels-chrome.ts +0 -83
  284. package/src/chat/headless/composer/labels-editor.ts +0 -44
  285. package/src/chat/headless/composer/labels.ts +0 -18
  286. package/src/chat/headless/composer/live-cost.ts +0 -67
  287. package/src/chat/headless/composer/model-knobs.ts +0 -179
  288. package/src/chat/headless/composer/model-names.ts +0 -145
  289. package/src/chat/headless/composer/model-picker-prefs.ts +0 -90
  290. package/src/chat/headless/composer/models.ts +0 -86
  291. package/src/chat/headless/composer/new-session-defaults.ts +0 -68
  292. package/src/chat/headless/composer/prompt-suggestions.ts +0 -72
  293. package/src/chat/headless/composer/remember-model-pick.ts +0 -132
  294. package/src/chat/headless/composer/run-meter.ts +0 -228
  295. package/src/chat/headless/composer-modes.ts +0 -170
  296. package/src/chat/headless/draft-scope.ts +0 -136
  297. package/src/chat/headless/draft-target.ts +0 -87
  298. package/src/chat/headless/extension-sources.ts +0 -64
  299. package/src/chat/headless/file-chip.ts +0 -175
  300. package/src/chat/headless/fixture-host.ts +0 -294
  301. package/src/chat/headless/fixture-transcript.ts +0 -125
  302. package/src/chat/headless/fixtures/demo-transcript-all-kinds.ts +0 -233
  303. package/src/chat/headless/fixtures/demo-transcript.ts +0 -244
  304. package/src/chat/headless/host.ts +0 -264
  305. package/src/chat/headless/hosts.ts +0 -55
  306. package/src/chat/headless/index.ts +0 -31
  307. package/src/chat/headless/labels.ts +0 -373
  308. package/src/chat/headless/markdown-chunks.ts +0 -134
  309. package/src/chat/headless/path-resolver.ts +0 -178
  310. package/src/chat/headless/prompt-origin.ts +0 -90
  311. package/src/chat/headless/reference-store.ts +0 -285
  312. package/src/chat/headless/send-flow.ts +0 -347
  313. package/src/chat/headless/session-list.ts +0 -400
  314. package/src/chat/headless/sidebar/activity.ts +0 -179
  315. package/src/chat/headless/sidebar/badges.ts +0 -190
  316. package/src/chat/headless/sidebar/compaction.ts +0 -98
  317. package/src/chat/headless/sidebar/directory.ts +0 -1046
  318. package/src/chat/headless/sidebar/dot-state.ts +0 -36
  319. package/src/chat/headless/sidebar/environment.ts +0 -70
  320. package/src/chat/headless/sidebar/estimates.ts +0 -146
  321. package/src/chat/headless/sidebar/host.ts +0 -41
  322. package/src/chat/headless/sidebar/index.ts +0 -18
  323. package/src/chat/headless/sidebar/labels.ts +0 -161
  324. package/src/chat/headless/sidebar/notifications.ts +0 -61
  325. package/src/chat/headless/sidebar/pinned-projects.ts +0 -51
  326. package/src/chat/headless/sidebar/pinned-sessions.ts +0 -27
  327. package/src/chat/headless/sidebar/project-icons.ts +0 -116
  328. package/src/chat/headless/sidebar/query.ts +0 -621
  329. package/src/chat/headless/sidebar/rows.ts +0 -427
  330. package/src/chat/headless/sidebar/types.ts +0 -96
  331. package/src/chat/headless/sidebar/view.ts +0 -367
  332. package/src/chat/headless/site-icons.ts +0 -51
  333. package/src/chat/headless/smooth-stream.ts +0 -76
  334. package/src/chat/headless/store.ts +0 -62
  335. package/src/chat/headless/streams/actions.ts +0 -85
  336. package/src/chat/headless/streams/index.ts +0 -25
  337. package/src/chat/headless/streams/live-events.ts +0 -124
  338. package/src/chat/headless/streams/merge.ts +0 -60
  339. package/src/chat/headless/streams/pacer.ts +0 -189
  340. package/src/chat/headless/streams/prompt-previews.ts +0 -64
  341. package/src/chat/headless/streams/scheduler.ts +0 -36
  342. package/src/chat/headless/streams/selectors.ts +0 -76
  343. package/src/chat/headless/streams/session-streams.ts +0 -407
  344. package/src/chat/headless/streams/store.ts +0 -1107
  345. package/src/chat/headless/streams/transcript.ts +0 -41
  346. package/src/chat/headless/streams/types.ts +0 -84
  347. package/src/chat/headless/transcript/batch.ts +0 -429
  348. package/src/chat/headless/transcript/collapse.ts +0 -789
  349. package/src/chat/headless/transcript/fold-actions.ts +0 -269
  350. package/src/chat/headless/transcript/fold-attachments.ts +0 -78
  351. package/src/chat/headless/transcript/fold.ts +0 -382
  352. package/src/chat/headless/transcript/index.ts +0 -41
  353. package/src/chat/headless/transcript/nesting.ts +0 -73
  354. package/src/chat/headless/transcript/pairing.ts +0 -124
  355. package/src/chat/headless/transcript/rows.ts +0 -377
  356. package/src/chat/headless/transcript/run-failures.ts +0 -72
  357. package/src/chat/headless/transcript/select-stops.ts +0 -151
  358. package/src/chat/headless/transcript/tool-media.ts +0 -42
  359. package/src/chat/headless/transcript-host.ts +0 -180
  360. package/src/chat/headless/transcript-labels.ts +0 -12
  361. package/src/chat/headless/turn-labels.ts +0 -28
  362. package/src/chat/headless/turn-prompt.ts +0 -32
  363. package/src/chat/index.ts +0 -31
  364. package/src/chat/interactions/HostInteractions.tsx +0 -76
  365. package/src/chat/interactions/InboxPanel.tsx +0 -226
  366. package/src/chat/interactions/InteractionCard.tsx +0 -111
  367. package/src/chat/interactions/PlanCard.tsx +0 -186
  368. package/src/chat/interactions/QuestionField.tsx +0 -336
  369. package/src/chat/interactions/QuestionForm.tsx +0 -283
  370. package/src/chat/interactions/card-ui.tsx +0 -86
  371. package/src/chat/interactions/hooks.ts +0 -49
  372. package/src/chat/interactions/index.ts +0 -8
  373. package/src/chat/provider-color.ts +0 -71
  374. package/src/chat/rich-composer/MentionList.tsx +0 -238
  375. package/src/chat/rich-composer/RichComposer.tsx +0 -1071
  376. package/src/chat/rich-composer/badge-decorations.ts +0 -157
  377. package/src/chat/rich-composer/composer-controls.tsx +0 -102
  378. package/src/chat/rich-composer/composer-extensions.ts +0 -388
  379. package/src/chat/rich-composer/composer-keys.ts +0 -416
  380. package/src/chat/rich-composer/ghost-plugin.ts +0 -89
  381. package/src/chat/rich-composer/index.ts +0 -3
  382. package/src/chat/rich-composer/mention-popover.ts +0 -336
  383. package/src/chat/rich-composer/slash-completion.ts +0 -143
  384. package/src/chat/rich-composer/use-composer-bus.ts +0 -57
  385. package/src/chat/rich-composer/use-composer-editor.ts +0 -216
  386. package/src/chat/rich-composer/use-composer-sources.ts +0 -90
  387. package/src/chat/rich-composer/use-draft-mirror.ts +0 -398
  388. package/src/chat/rich-composer/use-editor-handover.ts +0 -45
  389. package/src/chat/rich-composer/use-extension-composer.ts +0 -80
  390. package/src/chat/rich-composer/use-ghost-lifecycle.ts +0 -265
  391. package/src/chat/rich-composer/use-prompt-ghost.ts +0 -90
  392. package/src/chat/rich-composer/use-staged-attachments.ts +0 -65
  393. package/src/chat/sidebar/MainSessionRow.tsx +0 -102
  394. package/src/chat/sidebar/ProjectIcon.tsx +0 -399
  395. package/src/chat/sidebar/RowChips.tsx +0 -98
  396. package/src/chat/sidebar/SessionSidebar.tsx +0 -1039
  397. package/src/chat/sidebar/SidebarDecoration.tsx +0 -93
  398. package/src/chat/sidebar/SidebarFilterMenu.tsx +0 -270
  399. package/src/chat/sidebar/SidebarFooter.tsx +0 -244
  400. package/src/chat/sidebar/SidebarFrame.tsx +0 -154
  401. package/src/chat/sidebar/SidebarGroupHeader.tsx +0 -263
  402. package/src/chat/sidebar/SidebarHostProvider.tsx +0 -51
  403. package/src/chat/sidebar/SidebarRowView.tsx +0 -151
  404. package/src/chat/sidebar/SidebarSearchRow.tsx +0 -66
  405. package/src/chat/sidebar/SidebarSessionRow.tsx +0 -317
  406. package/src/chat/sidebar/SidebarToggleButton.tsx +0 -48
  407. package/src/chat/sidebar/SpaceSwitcher.tsx +0 -341
  408. package/src/chat/sidebar/SpacesSection.tsx +0 -259
  409. package/src/chat/sidebar/collapsed.ts +0 -61
  410. package/src/chat/sidebar/index.ts +0 -109
  411. package/src/chat/sidebar/session-menu.ts +0 -441
  412. package/src/chat/sidebar/sidebar-focus-hold.ts +0 -56
  413. package/src/chat/sidebar/sidebar-live.tsx +0 -666
  414. package/src/chat/sidebar/use-main-session.ts +0 -32
  415. package/src/chat/sidebar/useAgentNames.ts +0 -12
  416. package/src/chat/sidebar/useCompactionProgress.ts +0 -24
  417. package/src/chat/sidebar/usePinnedProjects.ts +0 -36
  418. package/src/chat/sidebar/useSaveViewAsSpace.ts +0 -42
  419. package/src/chat/sidebar/useSessionActivity.ts +0 -24
  420. package/src/chat/sidebar/useSessionBadges.ts +0 -26
  421. package/src/chat/sidebar/useSessionDirectoryView.ts +0 -128
  422. package/src/chat/sidebar/useSessionSearch.ts +0 -94
  423. package/src/chat/sidebar/useSidebarKeyboardNav.ts +0 -167
  424. package/src/chat/sidebar/useSidebarLabels.ts +0 -10
  425. package/src/chat/testing/composer.contract.ts +0 -508
  426. package/src/chat/testing/contract.ts +0 -634
  427. package/src/chat/testing/fixture-composer-chrome.ts +0 -159
  428. package/src/chat/testing/fixture-composer-host.ts +0 -147
  429. package/src/chat/testing/fixture-sidebar-host.ts +0 -99
  430. package/src/chat/testing/index.ts +0 -12
  431. package/src/chat/testing/sidebar.contract.ts +0 -196
  432. package/src/chat/transcript/BadgeMenu.tsx +0 -241
  433. package/src/chat/transcript/CardMarkdown.tsx +0 -102
  434. package/src/chat/transcript/ChipCard.tsx +0 -187
  435. package/src/chat/transcript/ChipCards.tsx +0 -100
  436. package/src/chat/transcript/DiffLines.tsx +0 -122
  437. package/src/chat/transcript/EarlierHistory.tsx +0 -136
  438. package/src/chat/transcript/EditDiffBlock.tsx +0 -176
  439. package/src/chat/transcript/FileChip.tsx +0 -361
  440. package/src/chat/transcript/ImageGenerationBlock.tsx +0 -239
  441. package/src/chat/transcript/InlineChipText.tsx +0 -57
  442. package/src/chat/transcript/InteractionToolBody.tsx +0 -211
  443. package/src/chat/transcript/LazyRow.tsx +0 -311
  444. package/src/chat/transcript/MermaidDiagram.tsx +0 -484
  445. package/src/chat/transcript/PromptEcho.tsx +0 -171
  446. package/src/chat/transcript/PromptOriginLabel.tsx +0 -44
  447. package/src/chat/transcript/ProseMarkdown.tsx +0 -168
  448. package/src/chat/transcript/ReferenceText.tsx +0 -198
  449. package/src/chat/transcript/SelectCursor.tsx +0 -118
  450. package/src/chat/transcript/SelectTurnHint.tsx +0 -81
  451. package/src/chat/transcript/SelectTurnProvider.tsx +0 -150
  452. package/src/chat/transcript/SubagentBlock.tsx +0 -224
  453. package/src/chat/transcript/TranscriptRow.tsx +0 -362
  454. package/src/chat/transcript/TranscriptSearch.tsx +0 -171
  455. package/src/chat/transcript/TurnMenu.tsx +0 -217
  456. package/src/chat/transcript/actions.tsx +0 -77
  457. package/src/chat/transcript/badges.tsx +0 -155
  458. package/src/chat/transcript/chip-details.ts +0 -169
  459. package/src/chat/transcript/chip-resolve.ts +0 -56
  460. package/src/chat/transcript/extension-renderers.tsx +0 -148
  461. package/src/chat/transcript/fold-attachments.tsx +0 -221
  462. package/src/chat/transcript/fold-status.tsx +0 -112
  463. package/src/chat/transcript/fold-worker.tsx +0 -160
  464. package/src/chat/transcript/fold.tsx +0 -522
  465. package/src/chat/transcript/frame.tsx +0 -326
  466. package/src/chat/transcript/index.ts +0 -66
  467. package/src/chat/transcript/markdown-cache.ts +0 -84
  468. package/src/chat/transcript/markdown-context.ts +0 -52
  469. package/src/chat/transcript/markdown.tsx +0 -351
  470. package/src/chat/transcript/messages.tsx +0 -169
  471. package/src/chat/transcript/notices.tsx +0 -508
  472. package/src/chat/transcript/prompt-lines.tsx +0 -55
  473. package/src/chat/transcript/prompt.tsx +0 -258
  474. package/src/chat/transcript/prose.tsx +0 -171
  475. package/src/chat/transcript/recent-map.ts +0 -32
  476. package/src/chat/transcript/references.ts +0 -108
  477. package/src/chat/transcript/remark-references.ts +0 -157
  478. package/src/chat/transcript/remark-refs.ts +0 -176
  479. package/src/chat/transcript/renderer-slots.tsx +0 -35
  480. package/src/chat/transcript/renderers.tsx +0 -251
  481. package/src/chat/transcript/row-estimate.ts +0 -158
  482. package/src/chat/transcript/run-rows.tsx +0 -291
  483. package/src/chat/transcript/site-icons.ts +0 -27
  484. package/src/chat/transcript/thumbnails.ts +0 -146
  485. package/src/chat/transcript/tool-batch.tsx +0 -102
  486. package/src/chat/transcript/tool-details.tsx +0 -31
  487. package/src/chat/transcript/tool-media.tsx +0 -132
  488. package/src/chat/transcript/tool-parts.tsx +0 -358
  489. package/src/chat/transcript/tool-payload.tsx +0 -76
  490. package/src/chat/transcript/tool-row.tsx +0 -496
  491. package/src/chat/transcript/turn-commands.ts +0 -101
  492. package/src/chat/transcript/use-transcript-rows.ts +0 -195
  493. package/src/chat/transcript/useComposerSearch.ts +0 -106
  494. package/src/chat/transcript/useSelectTurnKeys.ts +0 -204
  495. package/src/chat/transcript/useSettledReveal.ts +0 -57
  496. package/src/chat/transcript/useStickToBottom.ts +0 -600
  497. package/src/chat/transcript/useTranscriptFind.ts +0 -70
  498. package/src/chat/transcript/useTranscriptFindKey.ts +0 -52
  499. package/src/chat/transcript/useTranscriptScroll.ts +0 -163
  500. package/src/chat/transcript/useTranscriptSearch.tsx +0 -382
  501. package/src/chat/transcript/useTranscriptSelectionCopy.ts +0 -63
  502. package/src/chat/transcript/useWheelHoverPause.ts +0 -79
  503. package/src/chat/transcript/user-bash.tsx +0 -134
  504. package/src/chat/transcript-options.ts +0 -51
  505. package/src/chat/useChatLabels.ts +0 -14
  506. package/src/code/CodeHighlightProvider.tsx +0 -87
  507. package/src/code/HighlightedCode.tsx +0 -156
  508. package/src/code/code-themes.ts +0 -187
  509. package/src/code/editor/CodeCompletion.tsx +0 -719
  510. package/src/code/editor/CodeEditor.tsx +0 -480
  511. package/src/code/editor/CodeHover.tsx +0 -429
  512. package/src/code/editor/DiagnosticAnnotation.tsx +0 -73
  513. package/src/code/editor/DiagnosticsChip.tsx +0 -85
  514. package/src/code/editor/DiffView.tsx +0 -197
  515. package/src/code/editor/EditorColumn.tsx +0 -256
  516. package/src/code/editor/FileIcon.tsx +0 -89
  517. package/src/code/editor/FileTabPill.tsx +0 -101
  518. package/src/code/editor/FileTree.tsx +0 -414
  519. package/src/code/editor/FileView.tsx +0 -462
  520. package/src/code/editor/HighlightWorkers.tsx +0 -84
  521. package/src/code/editor/LanguageEditor.tsx +0 -210
  522. package/src/code/editor/_vendor/tree-icon-colors.ts +0 -72
  523. package/src/code/editor/diagnostics.ts +0 -140
  524. package/src/code/editor/edit-session.ts +0 -32
  525. package/src/code/editor/environment.tsx +0 -88
  526. package/src/code/editor/find/FindBar.tsx +0 -126
  527. package/src/code/editor/find/find-highlight.ts +0 -138
  528. package/src/code/editor/find/find-model.ts +0 -123
  529. package/src/code/editor/find/settle-scroll.ts +0 -77
  530. package/src/code/editor/find/useFind.ts +0 -203
  531. package/src/code/editor/fs-adapter.ts +0 -37
  532. package/src/code/editor/index.ts +0 -36
  533. package/src/code/editor/language.ts +0 -31
  534. package/src/code/editor/patch-parse.ts +0 -176
  535. package/src/code/editor/patch-parse.worker.ts +0 -12
  536. package/src/code/editor/pierre-theme.ts +0 -155
  537. package/src/code/editor/prime-diff.ts +0 -37
  538. package/src/code/editor/reveal.ts +0 -58
  539. package/src/code/editor/scroll-reach.ts +0 -28
  540. package/src/code/editor/useCodeDocument.ts +0 -226
  541. package/src/code/editor/useDefinition.ts +0 -159
  542. package/src/code/editor/useDetachCleanup.ts +0 -36
  543. package/src/code/editor/useFileDocument.ts +0 -87
  544. package/src/code/editor/useRevealLine.ts +0 -92
  545. package/src/code/editor/word-at.ts +0 -145
  546. package/src/code/highlight.worker.ts +0 -16
  547. package/src/code/highlighter.ts +0 -181
  548. package/src/code/highlights.ts +0 -51
  549. package/src/code/mermaid-lexer.ts +0 -331
  550. package/src/code/shiki-theme.ts +0 -46
  551. package/src/components/BrandMark.tsx +0 -118
  552. package/src/components/Breadcrumb.tsx +0 -105
  553. package/src/components/BrowserChrome.tsx +0 -189
  554. package/src/components/BrowserSignIn.tsx +0 -210
  555. package/src/components/ChoiceCards.tsx +0 -170
  556. package/src/components/CodeFrame.tsx +0 -225
  557. package/src/components/ConfirmDialog.tsx +0 -119
  558. package/src/components/CopyButton.tsx +0 -85
  559. package/src/components/EditableTitle.tsx +0 -199
  560. package/src/components/ErrorBoundary.tsx +0 -208
  561. package/src/components/Form.tsx +0 -593
  562. package/src/components/Highlighted.tsx +0 -68
  563. package/src/components/HowItWorks.tsx +0 -123
  564. package/src/components/IconButton.tsx +0 -101
  565. package/src/components/IconToggle.tsx +0 -71
  566. package/src/components/Keycap.tsx +0 -334
  567. package/src/components/Lightbox.tsx +0 -257
  568. package/src/components/LoadError.tsx +0 -45
  569. package/src/components/MediaNav.tsx +0 -85
  570. package/src/components/Menu.tsx +0 -435
  571. package/src/components/Overlay.tsx +0 -327
  572. package/src/components/PanelEmpty.tsx +0 -80
  573. package/src/components/PanelRows.tsx +0 -107
  574. package/src/components/PreviewWindow.tsx +0 -53
  575. package/src/components/ReorderTabs.tsx +0 -103
  576. package/src/components/RowActionsMenu.tsx +0 -383
  577. package/src/components/SegmentSpinner.tsx +0 -88
  578. package/src/components/Segmented.tsx +0 -126
  579. package/src/components/StepFrame.tsx +0 -151
  580. package/src/components/Stepper.tsx +0 -157
  581. package/src/components/Surface.tsx +0 -191
  582. package/src/components/SwatchPicker.tsx +0 -147
  583. package/src/components/SwitchGlyph.tsx +0 -56
  584. package/src/components/TabPill.tsx +0 -188
  585. package/src/components/ThemeThumb.tsx +0 -52
  586. package/src/components/ToggleCard.tsx +0 -120
  587. package/src/components/Tooltip.tsx +0 -288
  588. package/src/components/ZoomableImage.tsx +0 -322
  589. package/src/components/button.ts +0 -120
  590. package/src/components/floating/FloatingSurface.tsx +0 -158
  591. package/src/components/floating/HoverCard.tsx +0 -143
  592. package/src/components/floating/Popover.tsx +0 -166
  593. package/src/components/floating/useAnchoredPosition.ts +0 -186
  594. package/src/components/floating/usePopover.ts +0 -158
  595. package/src/components/image-clipboard.ts +0 -70
  596. package/src/components/keyboard-layout.ts +0 -115
  597. package/src/components/palette/PaletteList.tsx +0 -432
  598. package/src/components/palette/PalettePanel.tsx +0 -338
  599. package/src/components/palette/palette-layout.ts +0 -86
  600. package/src/components/report-error.ts +0 -142
  601. package/src/components/zoom.ts +0 -133
  602. package/src/extensions/ExtensionComponent.tsx +0 -167
  603. package/src/extensions/ExtensionDialogHost.tsx +0 -445
  604. package/src/extensions/ExtensionRenderer.tsx +0 -100
  605. package/src/extensions/ExtensionScreen.tsx +0 -122
  606. package/src/extensions/ExtensionSettingsPage.tsx +0 -112
  607. package/src/extensions/ExtensionSettingsPages.tsx +0 -44
  608. package/src/extensions/ExtensionSettingsSidebar.tsx +0 -373
  609. package/src/extensions/ExtensionSlot.tsx +0 -213
  610. package/src/extensions/ExtensionWebview.tsx +0 -104
  611. package/src/extensions/ExtensionsProvider.tsx +0 -124
  612. package/src/extensions/SettingsWireForm.tsx +0 -182
  613. package/src/extensions/headless/dialog-queue.ts +0 -92
  614. package/src/extensions/headless/effect-channel.ts +0 -50
  615. package/src/extensions/headless/effect-router.ts +0 -107
  616. package/src/extensions/headless/fixture-host.ts +0 -381
  617. package/src/extensions/headless/host.ts +0 -398
  618. package/src/extensions/headless/index.ts +0 -17
  619. package/src/extensions/headless/labels.ts +0 -64
  620. package/src/extensions/headless/links.ts +0 -56
  621. package/src/extensions/headless/select.ts +0 -249
  622. package/src/extensions/headless/webview-bridge.ts +0 -127
  623. package/src/extensions/headless/wire.ts +0 -175
  624. package/src/extensions/hooks.ts +0 -209
  625. package/src/extensions/index.ts +0 -25
  626. package/src/extensions/kit.ts +0 -79
  627. package/src/extensions/links.tsx +0 -165
  628. package/src/extensions/testing/contract.ts +0 -382
  629. package/src/extensions/testing/index.ts +0 -6
  630. package/src/extensions/useExtensionsLabels.ts +0 -14
  631. package/src/files/CodeViewer.tsx +0 -289
  632. package/src/files/DiffFileViewer.tsx +0 -143
  633. package/src/files/DiffsTab.tsx +0 -581
  634. package/src/files/EditorColumn.tsx +0 -453
  635. package/src/files/EditorEnvironmentRoot.tsx +0 -63
  636. package/src/files/FilesDiagnosticsChip.tsx +0 -32
  637. package/src/files/FilesProvider.tsx +0 -58
  638. package/src/files/FilesTab.tsx +0 -441
  639. package/src/files/MediaDiff.tsx +0 -61
  640. package/src/files/MediaView.tsx +0 -170
  641. package/src/files/ReviewDraft.tsx +0 -88
  642. package/src/files/ReviewableDiff.tsx +0 -72
  643. package/src/files/SearchPanel.tsx +0 -325
  644. package/src/files/TreeColumn.tsx +0 -229
  645. package/src/files/code-excerpt.ts +0 -265
  646. package/src/files/code-menu.ts +0 -53
  647. package/src/files/drafts-store.ts +0 -192
  648. package/src/files/file-actions.ts +0 -152
  649. package/src/files/headless/editor-prefs.ts +0 -230
  650. package/src/files/headless/entries.ts +0 -172
  651. package/src/files/headless/fixture-host.ts +0 -260
  652. package/src/files/headless/host.ts +0 -387
  653. package/src/files/headless/index.ts +0 -14
  654. package/src/files/headless/labels.ts +0 -123
  655. package/src/files/headless/lsp-edits.ts +0 -58
  656. package/src/files/headless/media.ts +0 -57
  657. package/src/files/headless/name-match.ts +0 -38
  658. package/src/files/headless/search.ts +0 -23
  659. package/src/files/headless/view.ts +0 -114
  660. package/src/files/headless/workspace-diff.ts +0 -82
  661. package/src/files/index.ts +0 -25
  662. package/src/files/lazy-tabs.tsx +0 -41
  663. package/src/files/session-patch.ts +0 -45
  664. package/src/files/tab-hooks.ts +0 -37
  665. package/src/files/testing/contract.ts +0 -279
  666. package/src/files/testing/demo.ts +0 -36
  667. package/src/files/testing/index.ts +0 -7
  668. package/src/files/useCodeReview.tsx +0 -177
  669. package/src/files/useDiagnostics.ts +0 -59
  670. package/src/files/useDiagnosticsRun.ts +0 -86
  671. package/src/files/useEntryActions.ts +0 -280
  672. package/src/files/useFilesDiagnostics.ts +0 -51
  673. package/src/files/useFilesLabels.ts +0 -14
  674. package/src/files/useFolderChanges.ts +0 -38
  675. package/src/files/useLsp.ts +0 -181
  676. package/src/files/useOpenFiles.ts +0 -402
  677. package/src/files/useWorkspace.ts +0 -148
  678. package/src/files/working-tree-diff.ts +0 -142
  679. package/src/git/BranchMenu.tsx +0 -988
  680. package/src/git/GitBar.tsx +0 -297
  681. package/src/git/GitProvider.tsx +0 -50
  682. package/src/git/ImportRepoDialog.tsx +0 -390
  683. package/src/git/MoveSessionDialog.tsx +0 -396
  684. package/src/git/RemoteFolderPicker.tsx +0 -475
  685. package/src/git/SyncChip.tsx +0 -275
  686. package/src/git/WherePicker.tsx +0 -358
  687. package/src/git/headless/environment.ts +0 -132
  688. package/src/git/headless/host.ts +0 -353
  689. package/src/git/headless/index.ts +0 -14
  690. package/src/git/headless/labels.ts +0 -230
  691. package/src/git/headless/move.ts +0 -101
  692. package/src/git/headless/remote-clone.ts +0 -44
  693. package/src/git/headless/status-reads.ts +0 -77
  694. package/src/git/headless/switcher.ts +0 -215
  695. package/src/git/headless/sync.ts +0 -71
  696. package/src/git/index.ts +0 -17
  697. package/src/git/testing/contract.ts +0 -551
  698. package/src/git/testing/index.ts +0 -537
  699. package/src/git/useEnvironmentChoices.ts +0 -50
  700. package/src/git/useGitBar.ts +0 -180
  701. package/src/hooks/keyed-store.ts +0 -65
  702. package/src/hooks/useDisplayPath.tsx +0 -93
  703. package/src/hooks/useHydrated.ts +0 -16
  704. package/src/hooks/useMinuteTick.ts +0 -49
  705. package/src/hooks/useNearViewport.ts +0 -111
  706. package/src/hooks/usePersistedState.ts +0 -98
  707. package/src/hooks/useResizeDrag.ts +0 -240
  708. package/src/hooks/useTabDrag.ts +0 -88
  709. package/src/index.ts +0 -119
  710. package/src/keybindings/KeyCommands.tsx +0 -123
  711. package/src/keybindings/KeyHint.tsx +0 -78
  712. package/src/keybindings/KeybindingsProvider.tsx +0 -231
  713. package/src/keybindings/headless/catalog.ts +0 -360
  714. package/src/keybindings/headless/commands.ts +0 -77
  715. package/src/keybindings/headless/fixture-host.ts +0 -51
  716. package/src/keybindings/headless/host.ts +0 -29
  717. package/src/keybindings/headless/index.ts +0 -13
  718. package/src/keybindings/headless/key-scope.ts +0 -91
  719. package/src/keybindings/headless/labels.ts +0 -14
  720. package/src/keybindings/headless/overrides.ts +0 -64
  721. package/src/keybindings/index.ts +0 -15
  722. package/src/keybindings/load-once.ts +0 -11
  723. package/src/keybindings/match.ts +0 -48
  724. package/src/keybindings/press.ts +0 -80
  725. package/src/keybindings/testing/contract.ts +0 -139
  726. package/src/keybindings/testing/index.ts +0 -6
  727. package/src/keybindings/useHelpKey.ts +0 -35
  728. package/src/keybindings/useKeybindingsLabels.ts +0 -14
  729. package/src/labels.tsx +0 -175
  730. package/src/machines/AddServerForm.tsx +0 -151
  731. package/src/machines/Banners.tsx +0 -172
  732. package/src/machines/DaemonMenu.tsx +0 -413
  733. package/src/machines/HostCapabilities.tsx +0 -245
  734. package/src/machines/HostSignIn.tsx +0 -63
  735. package/src/machines/HostSyncPanel.tsx +0 -275
  736. package/src/machines/HostsSection.tsx +0 -312
  737. package/src/machines/MachinesProvider.tsx +0 -164
  738. package/src/machines/ServerCard.tsx +0 -347
  739. package/src/machines/ServerMachinesPanel.tsx +0 -547
  740. package/src/machines/ServerUpdatePanel.tsx +0 -160
  741. package/src/machines/SyncAccounts.tsx +0 -148
  742. package/src/machines/SyncMarker.tsx +0 -87
  743. package/src/machines/SyncOutcomeBadge.tsx +0 -84
  744. package/src/machines/TokensPanel.tsx +0 -249
  745. package/src/machines/headless/fixture-host.ts +0 -519
  746. package/src/machines/headless/fixtures.ts +0 -164
  747. package/src/machines/headless/host.ts +0 -381
  748. package/src/machines/headless/index.ts +0 -13
  749. package/src/machines/headless/labels.ts +0 -364
  750. package/src/machines/headless/messages.ts +0 -209
  751. package/src/machines/headless/presence.ts +0 -110
  752. package/src/machines/headless/settings-focus.ts +0 -25
  753. package/src/machines/headless/stores.ts +0 -137
  754. package/src/machines/headless/sync.ts +0 -207
  755. package/src/machines/index.ts +0 -29
  756. package/src/machines/settings-section.tsx +0 -37
  757. package/src/machines/testing/contract.ts +0 -617
  758. package/src/machines/testing/index.ts +0 -7
  759. package/src/machines/testing/sync.contract.ts +0 -260
  760. package/src/motion/SwapIcon.tsx +0 -29
  761. package/src/motion/collapse.ts +0 -21
  762. package/src/motion/grow.tsx +0 -86
  763. package/src/motion/layout-animating.ts +0 -50
  764. package/src/motion/presence.ts +0 -191
  765. package/src/motion/provider.tsx +0 -63
  766. package/src/motion/reduced.ts +0 -36
  767. package/src/motion/roll.tsx +0 -131
  768. package/src/motion/shimmer.ts +0 -15
  769. package/src/motion/size.tsx +0 -192
  770. package/src/motion/springs.ts +0 -413
  771. package/src/motion/swap.tsx +0 -216
  772. package/src/motion/title-text.tsx +0 -74
  773. package/src/onboarding/ConnectProviderCard.tsx +0 -49
  774. package/src/onboarding/OnboardingFlow.tsx +0 -176
  775. package/src/onboarding/OnboardingProvider.tsx +0 -209
  776. package/src/onboarding/OnboardingStepFrame.tsx +0 -80
  777. package/src/onboarding/conversation.tsx +0 -196
  778. package/src/onboarding/demos/autonomy.tsx +0 -154
  779. package/src/onboarding/demos/extensions.tsx +0 -183
  780. package/src/onboarding/demos/features.tsx +0 -488
  781. package/src/onboarding/demos/how-it-works.tsx +0 -698
  782. package/src/onboarding/demos/index.ts +0 -11
  783. package/src/onboarding/demos/parts.tsx +0 -133
  784. package/src/onboarding/demos/tour.tsx +0 -217
  785. package/src/onboarding/headless/controller.ts +0 -110
  786. package/src/onboarding/headless/fixture-host.ts +0 -269
  787. package/src/onboarding/headless/fixtures.ts +0 -486
  788. package/src/onboarding/headless/host.ts +0 -176
  789. package/src/onboarding/headless/index.ts +0 -8
  790. package/src/onboarding/headless/labels.ts +0 -282
  791. package/src/onboarding/index.ts +0 -21
  792. package/src/onboarding/marks.tsx +0 -107
  793. package/src/onboarding/preview-attachments.ts +0 -39
  794. package/src/onboarding/skills/SkillSourceBrowser.tsx +0 -128
  795. package/src/onboarding/skills/parts.tsx +0 -464
  796. package/src/onboarding/sources/SourceBrowser.tsx +0 -400
  797. package/src/onboarding/steps/AutonomyStep.tsx +0 -128
  798. package/src/onboarding/steps/ConnectStep.tsx +0 -104
  799. package/src/onboarding/steps/ConnectorsStep.tsx +0 -222
  800. package/src/onboarding/steps/ConversationStep.tsx +0 -132
  801. package/src/onboarding/steps/ExtensionsStep.tsx +0 -113
  802. package/src/onboarding/steps/FeatureExample.tsx +0 -46
  803. package/src/onboarding/steps/FeaturesStep.tsx +0 -88
  804. package/src/onboarding/steps/ImportStep.tsx +0 -156
  805. package/src/onboarding/steps/LookStep.tsx +0 -276
  806. package/src/onboarding/steps/ReadyStep.tsx +0 -278
  807. package/src/onboarding/steps/SkillsStep.tsx +0 -45
  808. package/src/onboarding/steps/StepSection.tsx +0 -63
  809. package/src/onboarding/steps/Tradeoff.tsx +0 -45
  810. package/src/onboarding/steps/WelcomeStep.tsx +0 -147
  811. package/src/onboarding/steps/connect/KeyForm.tsx +0 -112
  812. package/src/onboarding/steps/connect/ProviderPanel.tsx +0 -149
  813. package/src/onboarding/steps/connect/ProviderReady.tsx +0 -171
  814. package/src/onboarding/steps/connect/ready-text.ts +0 -17
  815. package/src/onboarding/steps/index.ts +0 -12
  816. package/src/onboarding/steps/tasks.tsx +0 -84
  817. package/src/onboarding/testing/contract.ts +0 -472
  818. package/src/onboarding/testing/index.ts +0 -7
  819. package/src/onboarding/tutorials.tsx +0 -45
  820. package/src/onboarding/useSignIn.ts +0 -58
  821. package/src/palette/CommandPalette.tsx +0 -59
  822. package/src/palette/PaletteDialog.tsx +0 -186
  823. package/src/palette/PaletteProvider.tsx +0 -149
  824. package/src/palette/PaletteRows.tsx +0 -208
  825. package/src/palette/app-sources.ts +0 -62
  826. package/src/palette/headless/app-sources.ts +0 -515
  827. package/src/palette/headless/gather.ts +0 -50
  828. package/src/palette/headless/host.ts +0 -129
  829. package/src/palette/headless/index.ts +0 -15
  830. package/src/palette/headless/labels.ts +0 -124
  831. package/src/palette/headless/rank-protocol.ts +0 -23
  832. package/src/palette/headless/recents.ts +0 -35
  833. package/src/palette/headless/session-sources.ts +0 -218
  834. package/src/palette/headless/sources.ts +0 -313
  835. package/src/palette/headless/store.ts +0 -105
  836. package/src/palette/index.ts +0 -17
  837. package/src/palette/rank.worker.ts +0 -30
  838. package/src/palette/setup.ts +0 -19
  839. package/src/palette/testing/contract.ts +0 -250
  840. package/src/palette/testing/index.ts +0 -152
  841. package/src/palette/useConversationSearch.ts +0 -115
  842. package/src/palette/usePaletteController.ts +0 -229
  843. package/src/palette/useRankedItems.ts +0 -122
  844. package/src/path.ts +0 -199
  845. package/src/server/demo-tools.ts +0 -34
  846. package/src/server/environment.ts +0 -118
  847. package/src/server/index.ts +0 -7
  848. package/src/server/scripted-provider.ts +0 -174
  849. package/src/server/sse-handler.ts +0 -457
  850. package/src/server/testing/index.ts +0 -7
  851. package/src/session/ArtifactRowChips.tsx +0 -260
  852. package/src/session/ArtifactsPanel.tsx +0 -426
  853. package/src/session/DiffFileTree.tsx +0 -173
  854. package/src/session/PanelAttention.tsx +0 -131
  855. package/src/session/ProjectHome.tsx +0 -733
  856. package/src/session/ProviderUsageProvider.tsx +0 -113
  857. package/src/session/QueueTab.tsx +0 -669
  858. package/src/session/RunningWorkDialog.tsx +0 -178
  859. package/src/session/SessionCacheFacts.tsx +0 -190
  860. package/src/session/SessionDetailsDialog.tsx +0 -627
  861. package/src/session/SessionHeader.tsx +0 -242
  862. package/src/session/SessionProvider.tsx +0 -98
  863. package/src/session/SessionShell.tsx +0 -77
  864. package/src/session/SideChat.tsx +0 -320
  865. package/src/session/TodoList.tsx +0 -123
  866. package/src/session/TodosPanel.tsx +0 -279
  867. package/src/session/TurnDetailsDialog.tsx +0 -299
  868. package/src/session/UsagePanel.tsx +0 -358
  869. package/src/session/WelcomeScreen.tsx +0 -88
  870. package/src/session/headless/artifacts.ts +0 -101
  871. package/src/session/headless/diff-tree.ts +0 -167
  872. package/src/session/headless/fixture-host.ts +0 -362
  873. package/src/session/headless/home-layout.ts +0 -276
  874. package/src/session/headless/host.ts +0 -263
  875. package/src/session/headless/index.ts +0 -23
  876. package/src/session/headless/keyed.ts +0 -72
  877. package/src/session/headless/labels.ts +0 -337
  878. package/src/session/headless/queue-attachments.ts +0 -73
  879. package/src/session/headless/queue.ts +0 -122
  880. package/src/session/headless/running-work.ts +0 -85
  881. package/src/session/headless/session-actions.ts +0 -198
  882. package/src/session/headless/session-diffs.ts +0 -136
  883. package/src/session/headless/side.ts +0 -63
  884. package/src/session/headless/todos.ts +0 -62
  885. package/src/session/headless/usage-format.ts +0 -19
  886. package/src/session/headless/usage.ts +0 -407
  887. package/src/session/index.ts +0 -31
  888. package/src/session/modal-shell.tsx +0 -24
  889. package/src/session/testing/contract.ts +0 -588
  890. package/src/session/testing/demo.ts +0 -224
  891. package/src/session/testing/index.ts +0 -7
  892. package/src/session/useSessionLabels.ts +0 -14
  893. package/src/session/useUsageSummary.ts +0 -82
  894. package/src/settings/SettingsHeadingText.tsx +0 -54
  895. package/src/settings/SettingsHostSwitcher.tsx +0 -93
  896. package/src/settings/SettingsNav.tsx +0 -198
  897. package/src/settings/SettingsProvider.tsx +0 -127
  898. package/src/settings/SettingsRowsPage.tsx +0 -218
  899. package/src/settings/SettingsShell.tsx +0 -337
  900. package/src/settings/SettingsTutorial.tsx +0 -55
  901. package/src/settings/headless/catalog.ts +0 -570
  902. package/src/settings/headless/claude-import.ts +0 -61
  903. package/src/settings/headless/enabled.ts +0 -44
  904. package/src/settings/headless/fixture-accounts.ts +0 -260
  905. package/src/settings/headless/fixture-host.ts +0 -162
  906. package/src/settings/headless/fixture-models.ts +0 -51
  907. package/src/settings/headless/fixture-performance.ts +0 -350
  908. package/src/settings/headless/fixture-sections.ts +0 -391
  909. package/src/settings/headless/host.ts +0 -127
  910. package/src/settings/headless/index.ts +0 -22
  911. package/src/settings/headless/labels.ts +0 -63
  912. package/src/settings/headless/layout-sections.ts +0 -41
  913. package/src/settings/headless/layout.ts +0 -732
  914. package/src/settings/headless/mcp.ts +0 -319
  915. package/src/settings/headless/models.ts +0 -51
  916. package/src/settings/headless/page-counts.ts +0 -40
  917. package/src/settings/headless/performance.ts +0 -524
  918. package/src/settings/headless/providers.ts +0 -117
  919. package/src/settings/headless/registry.ts +0 -62
  920. package/src/settings/headless/resource.ts +0 -75
  921. package/src/settings/headless/search.ts +0 -142
  922. package/src/settings/headless/sections-host.ts +0 -340
  923. package/src/settings/index.ts +0 -32
  924. package/src/settings/rows.tsx +0 -152
  925. package/src/settings/section.tsx +0 -165
  926. package/src/settings/sections/appearance/AppearanceSection.tsx +0 -667
  927. package/src/settings/sections/appearance/labels.ts +0 -77
  928. package/src/settings/sections/claude-import/ClaudeImportDialog.tsx +0 -258
  929. package/src/settings/sections/claude-import/labels.ts +0 -42
  930. package/src/settings/sections/claude-import/use-claude-import-available.ts +0 -35
  931. package/src/settings/sections/descriptors.tsx +0 -261
  932. package/src/settings/sections/editor/EditorSection.tsx +0 -521
  933. package/src/settings/sections/editor/labels.ts +0 -84
  934. package/src/settings/sections/enabled-list/EnabledListSection.tsx +0 -112
  935. package/src/settings/sections/enabled-list/labels.ts +0 -37
  936. package/src/settings/sections/environments/EnvironmentsSection.tsx +0 -549
  937. package/src/settings/sections/environments/labels.ts +0 -31
  938. package/src/settings/sections/extensions/ChangeOriginDialog.tsx +0 -218
  939. package/src/settings/sections/extensions/CreateExtensionDialog.tsx +0 -210
  940. package/src/settings/sections/extensions/ExtensionConfigRows.tsx +0 -508
  941. package/src/settings/sections/extensions/ExtensionOptionsSection.tsx +0 -356
  942. package/src/settings/sections/extensions/ExtensionPicksBar.tsx +0 -112
  943. package/src/settings/sections/extensions/ExtensionSourceBrowser.tsx +0 -244
  944. package/src/settings/sections/extensions/ExtensionsSection.tsx +0 -665
  945. package/src/settings/sections/extensions/create-labels.ts +0 -31
  946. package/src/settings/sections/extensions/labels.ts +0 -64
  947. package/src/settings/sections/extensions/options-labels.ts +0 -34
  948. package/src/settings/sections/host-catalog/HostCatalogSection.tsx +0 -457
  949. package/src/settings/sections/host-catalog/labels.ts +0 -44
  950. package/src/settings/sections/index.ts +0 -60
  951. package/src/settings/sections/instructions/InstructionsSection.tsx +0 -385
  952. package/src/settings/sections/instructions/labels.ts +0 -33
  953. package/src/settings/sections/keybindings/KeybindingsSection.tsx +0 -124
  954. package/src/settings/sections/keybindings/labels.ts +0 -72
  955. package/src/settings/sections/keybindings/rows.ts +0 -103
  956. package/src/settings/sections/logs/LogsSection.tsx +0 -153
  957. package/src/settings/sections/logs/labels.ts +0 -20
  958. package/src/settings/sections/mcp/McpAddForm.tsx +0 -245
  959. package/src/settings/sections/mcp/McpSection.tsx +0 -358
  960. package/src/settings/sections/mcp/McpServerRow.tsx +0 -404
  961. package/src/settings/sections/mcp/labels.ts +0 -193
  962. package/src/settings/sections/models/AgentDefaults.tsx +0 -365
  963. package/src/settings/sections/models/ModelListPicker.tsx +0 -265
  964. package/src/settings/sections/models/ModelPickField.tsx +0 -220
  965. package/src/settings/sections/models/ModelRows.tsx +0 -381
  966. package/src/settings/sections/models/SpacesDefaultsSection.tsx +0 -102
  967. package/src/settings/sections/models/labels.ts +0 -119
  968. package/src/settings/sections/models/model-test.tsx +0 -125
  969. package/src/settings/sections/performance/PerfSparkline.tsx +0 -64
  970. package/src/settings/sections/performance/PerformanceHud.tsx +0 -110
  971. package/src/settings/sections/performance/PerformanceSection.tsx +0 -770
  972. package/src/settings/sections/performance/labels.ts +0 -114
  973. package/src/settings/sections/performance/use-perf-monitor.ts +0 -26
  974. package/src/settings/sections/plugins/PluginsSection.tsx +0 -151
  975. package/src/settings/sections/plugins/labels.ts +0 -23
  976. package/src/settings/sections/providers/CredentialSources.tsx +0 -237
  977. package/src/settings/sections/providers/ProvidersSection.tsx +0 -389
  978. package/src/settings/sections/providers/ServerProvidersSection.tsx +0 -244
  979. package/src/settings/sections/providers/ServerSignIn.tsx +0 -137
  980. package/src/settings/sections/providers/labels.ts +0 -160
  981. package/src/settings/sections/shared/catalog.tsx +0 -265
  982. package/src/settings/sections/shared/labels.ts +0 -31
  983. package/src/settings/sections/skills/SkillList.tsx +0 -494
  984. package/src/settings/sections/skills/SkillsSection.tsx +0 -249
  985. package/src/settings/sections/skills/labels.ts +0 -54
  986. package/src/settings/sections/use-section-labels.ts +0 -10
  987. package/src/settings/testing/accounts-demo.ts +0 -110
  988. package/src/settings/testing/accounts.contract.ts +0 -319
  989. package/src/settings/testing/claude-import.contract.ts +0 -93
  990. package/src/settings/testing/contract.ts +0 -192
  991. package/src/settings/testing/extension-options.contract.ts +0 -163
  992. package/src/settings/testing/index.ts +0 -11
  993. package/src/settings/testing/models.contract.ts +0 -135
  994. package/src/settings/testing/performance.contract.ts +0 -219
  995. package/src/settings/testing/sections.contract.ts +0 -306
  996. package/src/terminal/HostTerminalSurface.tsx +0 -917
  997. package/src/terminal/TerminalDrawer.tsx +0 -228
  998. package/src/terminal/TerminalPanel.tsx +0 -740
  999. package/src/terminal/TerminalProvider.tsx +0 -201
  1000. package/src/terminal/TerminalSurface.tsx +0 -262
  1001. package/src/terminal/box-glyphs.ts +0 -333
  1002. package/src/terminal/ghostty.ts +0 -116
  1003. package/src/terminal/grid-size.ts +0 -46
  1004. package/src/terminal/headless/fixture-host.ts +0 -250
  1005. package/src/terminal/headless/host.ts +0 -99
  1006. package/src/terminal/headless/index.ts +0 -11
  1007. package/src/terminal/headless/labels.ts +0 -69
  1008. package/src/terminal/headless/layout.ts +0 -57
  1009. package/src/terminal/headless/links.ts +0 -227
  1010. package/src/terminal/headless/order.ts +0 -28
  1011. package/src/terminal/headless/output-cursor.ts +0 -66
  1012. package/src/terminal/headless/recent.ts +0 -20
  1013. package/src/terminal/headless/replay.ts +0 -45
  1014. package/src/terminal/headless/scope.ts +0 -60
  1015. package/src/terminal/headless/store.ts +0 -637
  1016. package/src/terminal/index.ts +0 -40
  1017. package/src/terminal/keys.ts +0 -34
  1018. package/src/terminal/testing/contract.ts +0 -274
  1019. package/src/terminal/testing/demo.ts +0 -40
  1020. package/src/terminal/testing/index.ts +0 -7
  1021. package/src/terminal/theme.ts +0 -110
  1022. package/src/terminal/useTerminalLabels.ts +0 -14
  1023. package/src/theme/accents.ts +0 -46
  1024. package/src/theme/color.ts +0 -450
  1025. package/src/theme/css-vars.ts +0 -187
  1026. package/src/theme/derive.ts +0 -700
  1027. package/src/theme/from-theme.ts +0 -52
  1028. package/src/theme/stylesheet.ts +0 -55
  1029. package/src/theme/themes.ts +0 -767
  1030. package/src/theme/without-transitions.ts +0 -18
  1031. package/src/uno.ts +0 -167
  1032. package/src/workspace/LayoutBudget.tsx +0 -143
  1033. package/src/workspace/PanelContentView.tsx +0 -523
  1034. package/src/workspace/PanelCorner.tsx +0 -111
  1035. package/src/workspace/PanelGroups.tsx +0 -264
  1036. package/src/workspace/PanelHome.tsx +0 -71
  1037. package/src/workspace/PanelItems.tsx +0 -368
  1038. package/src/workspace/PanelStrip.tsx +0 -316
  1039. package/src/workspace/SidePanel.tsx +0 -240
  1040. package/src/workspace/TabParking.tsx +0 -120
  1041. package/src/workspace/WorkspaceProvider.tsx +0 -558
  1042. package/src/workspace/dnd/engine.ts +0 -371
  1043. package/src/workspace/dnd/hooks.ts +0 -72
  1044. package/src/workspace/dnd/index.ts +0 -57
  1045. package/src/workspace/dnd/parking.tsx +0 -181
  1046. package/src/workspace/extension-tabs.tsx +0 -174
  1047. package/src/workspace/frame-motion.ts +0 -160
  1048. package/src/workspace/headless/contents.ts +0 -125
  1049. package/src/workspace/headless/host.ts +0 -129
  1050. package/src/workspace/headless/index.ts +0 -33
  1051. package/src/workspace/headless/labels.ts +0 -44
  1052. package/src/workspace/headless/layout-memory.ts +0 -649
  1053. package/src/workspace/headless/layouts.ts +0 -224
  1054. package/src/workspace/headless/open-target.ts +0 -125
  1055. package/src/workspace/headless/ops.ts +0 -163
  1056. package/src/workspace/headless/panel-focus.ts +0 -58
  1057. package/src/workspace/headless/panel-tree.ts +0 -259
  1058. package/src/workspace/headless/resolve.ts +0 -146
  1059. package/src/workspace/headless/reveal-at.ts +0 -27
  1060. package/src/workspace/headless/strip-drop.ts +0 -81
  1061. package/src/workspace/headless/tree.ts +0 -480
  1062. package/src/workspace/headless/view.ts +0 -164
  1063. package/src/workspace/index.ts +0 -23
  1064. package/src/workspace/panel-group-keys.ts +0 -36
  1065. package/src/workspace/panel-visibility.ts +0 -28
  1066. package/src/workspace/tab-scopes.ts +0 -245
  1067. package/src/workspace/testing/contract.ts +0 -282
  1068. package/src/workspace/testing/index.ts +0 -140
  1069. package/src/workspace/use-split-drag.ts +0 -73
  1070. package/src/workspace/useScopeLayout.ts +0 -26
  1071. package/src/workspace/useViewport.ts +0 -22
  1072. package/src/workspace/useWorkspaceLabels.ts +0 -14
  1073. package/src/workspace/workspace-key-commands.ts +0 -108
  1074. /package/dist/dist/{types-bDQagoiL.d.ts → types-2HrgolQz.d.ts} +0 -0
@@ -1,373 +0,0 @@
1
- /**
2
- * The chat layer's strings, on top of the design system's (`labels.tsx`).
3
- * One flat dictionary so an app overrides any of them with one
4
- * `<LabelsProvider>`; the headless helpers take it as an argument.
5
- */
6
- import { RUN_WAITING_LABEL, runRetryingLabel } from 'zidane/chat/pure';
7
-
8
- import { DEFAULT_LABELS } from '../../labels';
9
- import { TRANSCRIPT_LABELS } from './transcript-labels';
10
-
11
- /** The default English strings of the chat layer, merged over the design system's labels. Override any of them through {@link ChatProvider}. */
12
- export const DEFAULT_CHAT_LABELS = {
13
- ...DEFAULT_LABELS,
14
- ...TRANSCRIPT_LABELS,
15
- // Session list
16
- today: 'Today',
17
- yesterday: 'Yesterday',
18
- months: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] as readonly string[],
19
- justNow: 'now',
20
- chats: 'Chats',
21
- favorites: 'Favorites',
22
- addFavorite: 'Add to favorites',
23
- removeFavorite: 'Remove from favorites',
24
- stateRunning: 'Running',
25
- stateCompleted: 'Completed',
26
- stateError: 'Error',
27
- stateIdle: 'Idle',
28
- archived: 'Archived',
29
- sessionActions: 'Open chat actions',
30
- moreActions: 'More actions',
31
- archive: 'Archive',
32
- unarchive: 'Unarchive',
33
- delete: 'Delete',
34
- showMore: 'Show more',
35
- expandGroup: (label: string) => `Expand ${label}`,
36
- collapseGroup: (label: string) => `Collapse ${label}`,
37
- openGroup: (label: string) => `Open ${label}`,
38
- newSessionIn: (label: string) => `New session in ${label}`,
39
- newSession: 'New session',
40
- searchSessions: 'Search sessions',
41
- noSessions: 'No sessions yet',
42
- noMatches: (query: string) => `No sessions match "${query}"`,
43
- sessions: 'Sessions',
44
- // Status dot
45
- dotIdle: 'Idle',
46
- dotRunning: 'Running',
47
- dotPending: 'Pending approval',
48
- dotCompleted: 'Completed',
49
- dotError: 'Errored',
50
- dotAttention: 'Awaiting input',
51
- dotAttached: 'Attached',
52
- // Run time estimates: the chip on a running session's row and a subagent's header
53
- estimateTitle: (left: string) => `About ${left.replace(/^~/, '')} left (estimated)`,
54
- estimatePausedTitle: (left: string) => `About ${left.replace(/^~/, '')} left. Paused while the run waits for you`,
55
- estimateDue: 'almost done',
56
- estimateDueTitle: 'Past its estimate, so it should end soon',
57
- estimateOver: 'over',
58
- estimateOverTitle: 'Taking longer than estimated',
59
- runningFor: (elapsed: string) => `Running for ${elapsed}`,
60
- // Transcript
61
- agent: 'Agent',
62
- stepRunning: 'running',
63
- stepFailed: 'failed',
64
- stepDone: 'done',
65
- // Reasoning rows
66
- thinkingLive: 'Thinking…',
67
- thoughtFor: (seconds: number) => `Thought for ${seconds}s`,
68
- thoughts: 'Thoughts',
69
- thoughtTimes: (count: number) => `Thought ${count} times`,
70
- // Run status, in the live work row's header (the TUI's words: `zidane/chat/pure`)
71
- runWaiting: RUN_WAITING_LABEL,
72
- runRetrying: (attempt: number, max: number, source?: string) => runRetryingLabel({ attempt, max, source }),
73
- // Run receipt
74
- runReceipt: 'Run receipt',
75
- receiptAgent: 'Agent that ran this turn',
76
- receiptAgentSwitched: 'Agent that ran this turn, switched from the previous run',
77
- receiptModel: 'Model that ran this turn',
78
- receiptModelOthers: (others: number) =>
79
- `Model that wrote the last reply. ${others} other model${others === 1 ? '' : 's'} ran earlier turns.`,
80
- receiptDuration: 'Run time, tools included',
81
- receiptTurns: (turns: number) => `${turns} model call${turns === 1 ? '' : 's'} in this run`,
82
- receiptCost: 'Run cost',
83
- receiptTokens: (sent: string, received: string) => `${sent} tokens sent, ${received} received`,
84
- receiptSpeed: 'Output speed while streaming',
85
- // Run failures
86
- stopped: 'Stopped',
87
- stoppedByYou: 'Stopped by you',
88
- retry: 'Retry',
89
- retryHint: 'Send your message again',
90
- continueRun: 'Continue',
91
- continueHint: 'Ask the model to continue',
92
- resetsAt: (time: string) => `Resets at ${time}`,
93
- // Session events
94
- sessionEventLabel: (title: string, verb: string, needsAttention: boolean) =>
95
- `${title} ${verb}${needsAttention ? '. Click to answer' : ''}`,
96
- clickToAnswer: 'Answer',
97
- openSession: 'open →',
98
- // Command, spawn and compaction rows
99
- commandDetail: 'detail',
100
- spawnTask: 'Task',
101
- spawnResumes: (childId: string) => `resumes ${childId}`,
102
- turnsCompacted: 'turns compacted',
103
- // Tool rows
104
- stepWaiting: 'waiting',
105
- /** A running call of a batch a durable run resumed after a process death (`StreamEvent.resuming`). */
106
- stepResuming: 'resuming',
107
- waitingForSlot: (max: number) => `Starts when one of the ${max} running agents finishes`,
108
- autoDenied: 'auto-denied',
109
- modelVerdictTitle: (approved: boolean, model: string, confidence: string | null) =>
110
- `${approved ? 'Approved' : 'Blocked'} by the decision model ${model}${confidence ? ` (confidence ${confidence})` : ''}`,
111
- loadFullOutput: 'Load full output',
112
- loadingFullOutput: 'Loading full output…',
113
- showOutput: 'Show output',
114
- inputCaption: 'Input',
115
- outputCaption: 'Output',
116
- openNamedSession: (title: string) => `Open ${title}`,
117
- /** A Mermaid diagram's accessible name, and its type when Pele detected one (`flowchart`). */
118
- diagram: (type: string | null) => (type ? `${type} diagram` : 'Diagram'),
119
- /** The diagram frame's toggle to its Mermaid source. */
120
- showDiagramSource: 'Show source',
121
- /** The diagram frame's toggle back to the drawing. */
122
- showDiagram: 'Show diagram',
123
- /** The diagram frame's zoom controls. */
124
- zoomInDiagram: 'Zoom in',
125
- zoomOutDiagram: 'Zoom out',
126
- fitDiagram: 'Fit diagram',
127
- /** Copy button of a diagram frame. */
128
- copyDiagramSource: 'Copy diagram source',
129
- /** Under a fence that could not be drawn; `at` is `line 3, column 7` or empty. */
130
- diagramError: (message: string, at: string) =>
131
- at ? `Diagram not drawn (${at}): ${message}` : `Diagram not drawn: ${message}`,
132
- /** Where a diagram error is. */
133
- diagramErrorAt: (line: number, column: number) => (column ? `line ${line}, column ${column}` : `line ${line}`),
134
- // `!` shell rows
135
- stopCommand: 'Stop command',
136
- shellCancelled: 'cancelled',
137
- shellKilled: 'killed',
138
- shellExit: (code: number) => `exit ${code}`,
139
- earlierLines: (count: number) => `… (+${count} earlier lines)`,
140
- // Folds
141
- working: 'Working',
142
- foldSteps: (count: number) => `${count} steps`,
143
- foldOutcomes: (ok: number, failed: number) => (failed > 0 ? `${ok} succeeded, ${failed} failed` : `${ok} succeeded`),
144
- workerModel: 'Model',
145
- workerType: 'Type',
146
- workerContinues: 'Continues',
147
- workerSystemPrompt: 'System prompt',
148
- workerSystemReplaced: 'replaced for this worker',
149
- showSystemPrompt: 'Show system prompt',
150
- earlierMessages: (count: number) => `${count} earlier message${count === 1 ? '' : 's'}`,
151
- // The fold's attachments strip
152
- toolAttachments: 'Tool attachments',
153
- moreAttachments: (count: number) => `+${count}`,
154
- showMoreAttachments: (count: number) => `Show ${count} more attachment${count === 1 ? '' : 's'}`,
155
- // Prompt echo
156
- viewAttachment: (name: string) => `View ${name}`,
157
- // Image generation (`generate_image` rows)
158
- generatingImage: (model: string | null) => (model ? `Generating with ${model}…` : 'Generating image…'),
159
- generatingImages: (count: number, model: string | null) =>
160
- model ? `Generating ${count} images with ${model}…` : `Generating ${count} images…`,
161
- generatedImage: 'Generated image',
162
- openImageFile: (path: string) => `Open ${path}`,
163
- // Host transcript
164
- transcriptLoading: 'Loading conversation…',
165
- earlierHistory: 'Earlier messages',
166
- loadingEarlierMessages: 'Loading earlier messages',
167
- loadEarlierHistory: 'Load earlier history',
168
- loadingEarlierHistory: 'Loading earlier history…',
169
- // Composer
170
- composerLabel: 'Message',
171
- composerPlaceholder: 'Message the agent…',
172
- sendMessage: 'Send message',
173
- sendHint: 'Send (Enter)',
174
- stopRun: 'Stop',
175
- stopHint: 'Stop the run (Esc)',
176
- steerMessage: 'Steer the run',
177
- steerHint: 'Add to the running turn (Enter)',
178
- queueMessage: 'Queue message',
179
- queueHint: 'Send when the run ends (Enter)',
180
- attachFile: 'Attach file',
181
- removeAttachment: (name: string) => `Remove ${name}`,
182
- attachments: 'Attachments',
183
- previewTooLarge: (name: string, size: string) => `${name} (${size}) is too large to preview.`,
184
- previewFailed: (name: string) => `Couldn't load ${name}.`,
185
- attachmentEmpty: (name: string) => `${name} is empty.`,
186
- attachmentTooLarge: (name: string, size: string, limit: string) =>
187
- `${name} is too large (${size}). The limit is ${limit}.`,
188
- attachmentExportPdf: (name: string) => `${name} can't be attached. Export it as PDF first.`,
189
- attachmentUnreadableImage: (name: string) => `${name} can't be read here. Export it as PNG or JPEG.`,
190
- attachmentUnsupported: (name: string) => `${name} can't be attached. Only images, PDFs and text files can.`,
191
- attachmentReadFailed: (name: string) => `${name} could not be read.`,
192
- attachmentTitle: (name: string, detail: string) => `${name} (${detail})`,
193
- attachmentNotices: 'Files not attached',
194
- mentionSuggestions: 'Mentions',
195
- commandSuggestions: 'Commands',
196
- noSuggestions: 'No matches',
197
- composerBadges: 'Composer badges',
198
- // Agent, model and model options pickers (the desktop app's wording)
199
- switchAgent: 'Switch agent',
200
- defaultAgent: 'Default agent',
201
- agentProfiles: 'Agent profiles',
202
- switchingAgent: 'switching…',
203
- agentDraftNote: 'Applies to your next chat.',
204
- switchModel: 'Switch model',
205
- chooseModel: 'Choose model',
206
- // The model pill's tooltip: the chain, then how to change it
207
- modelChain: 'Model chain',
208
- modelForNextChat: 'For your next chat',
209
- modelServing: (picked: string, serving: string) =>
210
- `${picked} failed this run, so ${serving} took over. The next run tries ${picked} again.`,
211
- modelServingFallback: 'The picked model',
212
- modelChainNoModel: 'No model picked yet',
213
- searchModels: 'Search models',
214
- searchModelsPlaceholder: 'Search models…',
215
- modelsShowLegacy: 'Show legacy models',
216
- modelsShowLegacyHint: 'Show legacy models (⌥L)',
217
- modelsLegacy: 'Legacy',
218
- modelsJumpToProvider: 'Jump to provider',
219
- modelsJumpHint: (provider: string, digit: number | null) => (digit ? `${provider} (⌘${digit})` : provider),
220
- modelsLoading: 'Loading…',
221
- modelsLoadFailed: (error: string) => `Failed to load models: ${error}`,
222
- modelsNoProviders: 'No provider is signed in. Sign in under Settings → Accounts.',
223
- modelsNoMatch: (query: string) => `No model matches "${query}".`,
224
- modelsTypeAnId: 'Type any model id to use it. Put a provider first to pick one, for example "xai grok-9".',
225
- modelsInUse: 'In use',
226
- modelsChatTab: 'Chat',
227
- modelsImageTab: 'Image',
228
- modelKinds: 'Model kind',
229
- imageModelsPill: 'Image model',
230
- imageModelsNone:
231
- 'No connected provider generates images. Connect OpenRouter, Google Gemini, xAI, or OpenAI with a platform API key.',
232
- imageModelReferences: 'reference images',
233
- imageModelReferencesHint: 'Edits or matches reference images',
234
- imageModelTransparency: 'transparency',
235
- imageModelTransparencyHint: 'Can make a transparent background',
236
- modelsCustomId: 'Custom id',
237
- modelsShownOf: (shown: number, total: number) => `${shown} of ${total}`,
238
- modelsLegacyHidden: (count: number) => `${count} legacy hidden`,
239
- modelsSelected: (count: number) => `${count} selected`,
240
- pickModel: 'pick',
241
- modelPrimary: 'primary',
242
- modelFallback: 'fallback',
243
- modelFallbackHint: 'Tab or shift+click adds or removes a fallback',
244
- modelChainOrderHint: 'Fallbacks run in this order. ctrl+shift+↑↓ moves the highlighted row.',
245
- modelPrimaryHint: 'Primary model',
246
- modelFallbackPosition: (n: number) => `Fallback #${n}`,
247
- modelRemovePrimary: 'Remove primary model',
248
- modelRemoveFallback: (n: number) => `Remove fallback #${n}`,
249
- modelRemoveFromChain: 'Remove from chain',
250
- modelAccountBlocked: (provider: string) =>
251
- `Another ${provider} account is in use. Picking this one switches the chain to it.`,
252
- modelLegacy: 'legacy',
253
- modelLegacyHint: 'Newer models exist in this family',
254
- modelUnavailable: 'unavailable',
255
- modelNotInCatalog: 'not in catalog',
256
- modelNotInCatalogHint: 'Used as typed. No details are known for this id.',
257
- modelVia: 'via',
258
- modelViaHint: (modelId: string, provider: string) => `${modelId} via ${provider}`,
259
- modelInUse: 'in use',
260
- modelReasoning: 'reasoning',
261
- modelReasoningHint: 'Can think before answering',
262
- contextWindow: 'Context window',
263
- modelOptions: 'Model options',
264
- setModelOptions: 'Set model options',
265
- modelOptionsHint: 'Reasoning effort and model options',
266
- modelOptionsEmpty: 'Options',
267
- modelFeatures: 'Features',
268
- reasoningEffort: 'Reasoning effort',
269
- effortLevel: (level: string) => level,
270
- // Interactions (exact desktop wording: the inbox cards render through these)
271
- interactionPlan: 'Plan',
272
- interactionQuestion: 'Question',
273
- questionCount: (count: number) => `${count} questions`,
274
- interactionsLabel: 'Requests from the agent',
275
- inboxEmpty: 'Nothing waiting on you',
276
- inboxPreviousSession: 'previous session',
277
- unsupportedInteraction: (tool: string) => `The agent is waiting on ${tool}, which this view cannot answer.`,
278
- planRejectNote: 'Rejecting stops the run. Add a note so the agent knows why.',
279
- planReviseNote: 'Say what should change. The agent sends back a revised plan.',
280
- planRejectPlaceholder: 'Why you reject this plan (optional)',
281
- planRevisePlaceholder: 'What should change (optional)',
282
- back: 'Back',
283
- planRejectAndStop: 'Reject and stop',
284
- planSendRevision: 'Send revision',
285
- planReject: 'Reject…',
286
- planRevise: 'Revise…',
287
- planApprove: 'Approve',
288
- additionalInstructions: 'Additional instructions',
289
- additionalInstructionsHint: 'optional, refines or overrides the answers',
290
- additionalInstructionsPlaceholder: 'e.g. keep the old endpoint alive until the migration lands',
291
- dismiss: 'Dismiss',
292
- dismissHint: 'Continue without answering',
293
- sendAnswers: (count: number) => `Send answer${count === 1 ? '' : 's'}`,
294
- requiredHint: 'Required',
295
- requiredMark: 'required',
296
- pickOneOrMore: 'Pick one or more.',
297
- noAnswer: 'No answer',
298
- confirmYes: 'yes',
299
- confirmNo: 'no',
300
- // Session filter menu (the desktop app's sidebar faders menu)
301
- filterSessions: 'Filter sessions',
302
- filterView: 'View',
303
- filterStatus: 'Status',
304
- filterProject: 'Project',
305
- filterActivity: 'Last activity',
306
- filterSort: 'Sort by',
307
- filterViews: {
308
- project: 'Per directory',
309
- host: 'Per host',
310
- none: 'All projects',
311
- date: 'By date',
312
- state: 'By state',
313
- agent: 'By agent',
314
- },
315
- filterStatuses: { active: 'Active', archived: 'Archived', all: 'All' },
316
- filterActivities: { '1d': '1d', '3d': '3d', '7d': '7d', '30d': '30d', all: 'All' },
317
- filterSorts: { recency: 'Recency', createdTime: 'Created time', alphabetical: 'Alphabetically' },
318
- filterAllProjects: 'All',
319
- filterAllProjectsOption: 'All projects',
320
- filterNoProjects: 'No projects yet',
321
- filterAgent: 'Agent',
322
- filterAllAgents: 'All',
323
- filterAllAgentsOption: 'All agents',
324
- filterNoAgents: 'No agents yet',
325
- /** A contributed select or multi filter with nothing picked. */
326
- filterAny: 'Any',
327
- /** A contributed filter's value: how many options are picked. */
328
- filterPicked: (count: number) => `${count} picked`,
329
- /** A space's own grouping or sort, among the view's choices. */
330
- filterSpaceDefault: 'Space default',
331
- filterSaveView: 'Save view as space',
332
- // Hosts: the sidebar's host headers, status dots and the new-chat host picker (the desktop app's wording)
333
- hostStatuses: {
334
- local: 'connected',
335
- connected: 'connected',
336
- connecting: 'connecting',
337
- reconnecting: 'reconnecting',
338
- offline: 'offline',
339
- 'auth-refused': 'token refused',
340
- identity: 'different server',
341
- 'version-mismatch': 'version mismatch',
342
- },
343
- hostStatusError: (status: string, error: string) => `${status}: ${error}`,
344
- hostBadgeTitle: (host: string, status: string) => `${host}: ${status}`,
345
- hostOpenSettings: (host: string) => `Open ${host}'s settings`,
346
- hostExpand: (name: string) => `Expand ${name}`,
347
- hostCollapse: (name: string) => `Collapse ${name}`,
348
- hostPicker: 'Choose the host for this chat',
349
- hostRunsOn: (name: string) => `Runs on: ${name}`,
350
- hostRunsOnSection: 'Runs on',
351
- hostThisMachine: 'This machine',
352
- // Context orb and breakdown (the desktop app's composer)
353
- contextSummary: (used: string, window: string, pct: number) => `Context: ${used} / ${window} (${pct}%)`,
354
- contextSummaryCost: (summary: string, cost: string) => `${summary}, ${cost} this session`,
355
- contextDetail: 'Context window detail',
356
- contextAutoCompact: (pct: number) => `Auto-compact at ${pct}%`,
357
- contextSessionCost: 'Session cost',
358
- contextRunCount: (runs: number) => `${runs} run${runs === 1 ? '' : 's'}`,
359
- contextNoBreakdown: 'The breakdown shows after the first run.',
360
- contextDeferred: 'Deferred',
361
- contextActiveSkills: 'Active skills',
362
- contextLastTurn: 'Last turn',
363
- contextCacheRead: 'Cached (read)',
364
- contextCacheWrite: 'Cache write',
365
- contextFreshInput: 'Fresh input',
366
- contextOutput: 'Output',
367
- contextEstimated: '~ Estimated. This provider does not report exact counts.',
368
- contextClickToCopy: (hasDescription: boolean) => `click to copy ${hasDescription ? 'description' : 'name'}`,
369
- contextCopied: 'Copied',
370
- };
371
-
372
- /** The shape of the chat label dictionary: every key of {@link DEFAULT_CHAT_LABELS}. Some values are functions that build a string. */
373
- export type ChatLabels = typeof DEFAULT_CHAT_LABELS;
@@ -1,134 +0,0 @@
1
- /**
2
- * Split long markdown into independently parseable chunks.
3
- *
4
- * A boundary is a blank line followed by a line that starts at column 0,
5
- * outside a fenced code block: nothing can continue across it (an indented
6
- * line after a blank could still belong to a list item, a fence spans
7
- * blanks). What it changes is cosmetic at worst: a loose list becomes two
8
- * adjacent lists (an ordered one keeps its numbering through `start`).
9
- *
10
- * Boundaries only depend on the text before them and the line right after,
11
- * so while a reply streams every chunk but the last keeps its exact text,
12
- * and its memoised render.
13
- *
14
- * Fences open and close by core's rules (`parseFenceOpen` / `isFenceClose`),
15
- * so a chunk never ends inside a code block the parse sees as still open.
16
- */
17
- import { type FenceOpen, isFenceClose, parseFenceOpen } from 'zidane/chat/pure';
18
-
19
- /** Below this, one parse is cheap enough: no chunking at all. */
20
- export const CHUNK_THRESHOLD = 6000;
21
- /** A chunk closes at the first boundary past this size. */
22
- const CHUNK_TARGET = 3000;
23
-
24
- /** The fence open after `line`, given the one open before it. */
25
- function stepFence(fence: FenceOpen | null, line: string): FenceOpen | null {
26
- if (fence) return isFenceClose(line, fence.char, fence.length) ? null : fence;
27
- return parseFenceOpen(line);
28
- }
29
-
30
- /**
31
- * While a reply streams it is re-rendered on every delta (many per second),
32
- * so it splits much finer: everything above the growing paragraph stays a
33
- * memoised chunk and only the tail is parsed again.
34
- */
35
- const STREAMING_THRESHOLD = 1200;
36
- const STREAMING_TARGET = 600;
37
-
38
- /** A last line of one or two backticks or tildes: a fence still arriving. */
39
- const PARTIAL_FENCE = /\n {0,3}(?:`{1,2}|~{1,2})$/;
40
-
41
- /**
42
- * Holds back a fence still arriving at the end of a streaming reply. Text
43
- * reveals a few characters a frame, so a closing ```` ``` ```` lands as `` ` ``,
44
- * then ` `` `: until the third, an open code block shows the partial
45
- * marker as one more line of code, then drops it, and the reply shrinks by
46
- * a line under a view following its bottom. A frame later the whole fence
47
- * is there.
48
- *
49
- * @param text - The reply so far.
50
- */
51
- export function withoutPartialFence(text: string): string {
52
- return text.replace(PARTIAL_FENCE, '\n');
53
- }
54
-
55
- /** A streaming chunk's fence that has not closed yet, apart from the text before it. */
56
- export interface OpenFence {
57
- /** The markdown before the fence (may be empty). */
58
- before: string;
59
- /** The fence's language, as the parsed block names it (`plaintext` when the info string names none). */
60
- language: string;
61
- /** The code so far. */
62
- code: string;
63
- }
64
-
65
- /**
66
- * The fence a streaming chunk ends inside, when it opened at column 0 (an
67
- * indented one may belong to a list item, which only the parse can tell).
68
- * The open fence is the whole tail of the chunk, so parsing it again on
69
- * every delta re-parses a growing code block for nothing: the code block can
70
- * draw the text as is, and the chunk parses normally once the fence closes.
71
- *
72
- * @param chunk - The last chunk of a streaming reply.
73
- * @returns The open fence, or `null` when the chunk does not end inside one.
74
- */
75
- export function openFenceOf(chunk: string): OpenFence | null {
76
- const lines = chunk.split('\n');
77
- let fence: FenceOpen | null = null;
78
- let at = -1;
79
- for (let i = 0; i < lines.length; i++) {
80
- const next = stepFence(fence, lines[i]!);
81
- if (next && !fence) at = i;
82
- fence = next;
83
- }
84
- if (fence === null || fence.indent !== 0) return null;
85
- const info = lines[at]!.slice(fence.length);
86
- // The parse's class is `language-<first word of the info string>`, read back as its leading \w run.
87
- const language = /^(\w+)/.exec(info.trim().split(/\s/)[0] ?? '')?.[1] ?? 'plaintext';
88
- return {
89
- before: lines.slice(0, at).join('\n'),
90
- language,
91
- code: lines
92
- .slice(at + 1)
93
- .join('\n')
94
- .replace(/\n$/, ''),
95
- };
96
- }
97
-
98
- /**
99
- * Splits markdown into chunks that parse on their own, so a long or streaming reply can re-render only its last chunk. Text shorter than the threshold comes back as one chunk.
100
- *
101
- * @param text - The markdown to split.
102
- * @param opts - Split options. `streaming: true` uses finer chunks for a reply that is still growing.
103
- */
104
- export function splitMarkdown(text: string, opts: { streaming?: boolean } = {}): string[] {
105
- const threshold = opts.streaming ? STREAMING_THRESHOLD : CHUNK_THRESHOLD;
106
- const target = opts.streaming ? STREAMING_TARGET : CHUNK_TARGET;
107
- if (text.length < threshold) return [text];
108
- const lines = text.split('\n');
109
- const chunks: string[] = [];
110
- let start = 0;
111
- let size = 0;
112
- let fence: FenceOpen | null = null;
113
- for (let i = 0; i < lines.length; i++) {
114
- const line = lines[i]!;
115
- fence = stepFence(fence, line);
116
- size += line.length + 1;
117
- const next = lines[i + 1];
118
- if (
119
- fence === null &&
120
- size >= target &&
121
- line.trim() === '' &&
122
- next !== undefined &&
123
- next.length > 0 &&
124
- next[0] !== ' ' &&
125
- next[0] !== '\t'
126
- ) {
127
- chunks.push(lines.slice(start, i + 1).join('\n'));
128
- start = i + 1;
129
- size = 0;
130
- }
131
- }
132
- chunks.push(lines.slice(start).join('\n'));
133
- return chunks;
134
- }
@@ -1,178 +0,0 @@
1
- /**
2
- * What a prose chip points at (a file or folder on disk, or a branch), asked
3
- * of the host (`ChatHost.paths`) in batches.
4
- *
5
- * Every chip mounting in the same frame shares one `resolve` call per
6
- * folder; answers are cached per folder and text so scrolling history back
7
- * into view costs nothing. An answer older than `STALE_MS` is shown while it
8
- * is checked again (the agent may have created or removed the file since),
9
- * and a folder the host says moved (a commit, a checkout) is checked afresh.
10
- */
11
- import type { ChatPaths, ChatResolvedPath } from './transcript-host';
12
-
13
- /** `null`: not known yet, or the folder can't be checked (sandboxes). */
14
- export type ChipResolution = ChatResolvedPath | null;
15
-
16
- const STALE_MS = 15_000;
17
-
18
- interface Entry {
19
- value: ChipResolution;
20
- at: number;
21
- inFlight: boolean;
22
- }
23
-
24
- /** Options for {@link createPathResolver}. */
25
- export interface PathResolverOptions {
26
- /** Marks a first ask (an answer may resize the chip); the returned function ends it (`beginChipWork`). */
27
- beginWork?: () => () => void;
28
- }
29
-
30
- /** The chip answers of one host. */
31
- export interface PathResolver {
32
- /** The current answer for `text` in `cwd`. */
33
- get(cwd: string, text: string): ChipResolution;
34
- /** Asks for `text` in `cwd` unless an answer is fresh or on the wire. */
35
- request(cwd: string, text: string): void;
36
- /** Asks again now, bypassing the cache (a click: the file may exist since). */
37
- resolveNow(cwd: string, text: string): Promise<ChipResolution>;
38
- /** Calls `listener` when the answer for `text` in `cwd` changes. Returns the unsubscribe. */
39
- subscribe(cwd: string, text: string, listener: () => void): () => void;
40
- /** Stops following the host's changes. */
41
- dispose(): void;
42
- }
43
-
44
- const keyOf = (cwd: string, text: string) => `${cwd}\0${text}`;
45
- const NO_WORK = () => () => {};
46
-
47
- function sameResolution(a: ChipResolution, b: ChipResolution): boolean {
48
- return JSON.stringify(a) === JSON.stringify(b);
49
- }
50
-
51
- /**
52
- * Creates the chip answers over a host's paths.
53
- *
54
- * @param paths - The host's `paths` member.
55
- * @param options - The chip-work counter.
56
- */
57
- export function createPathResolver(paths: ChatPaths, options: PathResolverOptions = {}): PathResolver {
58
- const beginWork = options.beginWork ?? NO_WORK;
59
- const cache = new Map<string, Map<string, Entry>>();
60
- const listeners = new Map<string, Set<() => void>>();
61
- const queued = new Map<string, Set<string>>();
62
- let flushScheduled = false;
63
- /** First asks (nothing shown yet): an answer may resize the chip, so a thread's reveal waits on them. */
64
- const firstAsks = new Map<string, () => void>();
65
- let watching = false;
66
- let offChanges: (() => void) | undefined;
67
-
68
- const answered = (cwd: string, text: string) => {
69
- const key = keyOf(cwd, text);
70
- firstAsks.get(key)?.();
71
- firstAsks.delete(key);
72
- };
73
-
74
- /** `null` when the host can't answer. */
75
- const ask = (cwd: string, texts: string[]): Promise<readonly ChatResolvedPath[] | null> =>
76
- Promise.resolve()
77
- .then(() => paths.resolve(cwd, texts))
78
- .catch(() => null);
79
-
80
- const entries = (cwd: string) => {
81
- let map = cache.get(cwd);
82
- if (!map) {
83
- map = new Map();
84
- cache.set(cwd, map);
85
- }
86
- return map;
87
- };
88
-
89
- const emit = (cwd: string, text: string) => {
90
- for (const listener of listeners.get(keyOf(cwd, text)) ?? []) listener();
91
- };
92
-
93
- const watchRepoMoves = () => {
94
- if (watching) return;
95
- watching = true;
96
- // Commits, checkouts and pulls add and remove files (and branches): answer afresh.
97
- offChanges = paths.onChanged?.((cwd) => {
98
- for (const entry of cache.get(cwd)?.values() ?? []) entry.at = 0;
99
- });
100
- };
101
-
102
- const flush = async () => {
103
- flushScheduled = false;
104
- const batches = [...queued];
105
- queued.clear();
106
- await Promise.all(
107
- batches.map(async ([cwd, set]) => {
108
- const texts = [...set];
109
- const answers = await ask(cwd, texts);
110
- const map = entries(cwd);
111
- texts.forEach((text, i) => {
112
- const value = answers ? (answers[i] ?? { kind: 'missing' as const }) : null;
113
- const prev = map.get(text);
114
- map.set(text, { value, at: Date.now(), inFlight: false });
115
- if (!prev || !sameResolution(prev.value, value)) emit(cwd, text);
116
- answered(cwd, text);
117
- });
118
- }),
119
- );
120
- };
121
-
122
- const request = (cwd: string, text: string) => {
123
- watchRepoMoves();
124
- const map = entries(cwd);
125
- const entry = map.get(text);
126
- if (entry?.inFlight) return;
127
- if (entry && Date.now() - entry.at < STALE_MS) return;
128
- if (entry) entry.inFlight = true;
129
- else {
130
- map.set(text, { value: null, at: 0, inFlight: true });
131
- firstAsks.set(keyOf(cwd, text), beginWork());
132
- }
133
- let set = queued.get(cwd);
134
- if (!set) {
135
- set = new Set();
136
- queued.set(cwd, set);
137
- }
138
- set.add(text);
139
- if (!flushScheduled) {
140
- flushScheduled = true;
141
- // One frame of chips per call: the whole message, not one call per chip.
142
- setTimeout(() => void flush(), 0);
143
- }
144
- };
145
-
146
- return {
147
- get: (cwd, text) => cache.get(cwd)?.get(text)?.value ?? null,
148
- request,
149
- async resolveNow(cwd, text) {
150
- const answers = await ask(cwd, [text]);
151
- const value = answers ? (answers[0] ?? { kind: 'missing' as const }) : null;
152
- const map = entries(cwd);
153
- const prev = map.get(text);
154
- map.set(text, { value, at: Date.now(), inFlight: false });
155
- if (!prev || !sameResolution(prev.value, value)) emit(cwd, text);
156
- return value;
157
- },
158
- subscribe(cwd, text, listener) {
159
- const key = keyOf(cwd, text);
160
- let set = listeners.get(key);
161
- if (!set) {
162
- set = new Set();
163
- listeners.set(key, set);
164
- }
165
- set.add(listener);
166
- const own = set;
167
- return () => {
168
- own.delete(listener);
169
- if (own.size === 0 && listeners.get(key) === own) listeners.delete(key);
170
- };
171
- },
172
- dispose() {
173
- offChanges?.();
174
- for (const done of firstAsks.values()) done();
175
- firstAsks.clear();
176
- },
177
- };
178
- }