@iaforged/context-code 1.0.62 → 1.0.65

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 (2000) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +633 -9
  3. package/context-bootstrap.js +28 -28
  4. package/package.json +169 -170
  5. package/dist/src/QueryEngine.js +0 -928
  6. package/dist/src/Task.js +0 -49
  7. package/dist/src/Tool.js +0 -56
  8. package/dist/src/assistant/AssistantSessionChooser.js +0 -16
  9. package/dist/src/assistant/index.js +0 -16
  10. package/dist/src/assistant/sessionDiscovery.js +0 -16
  11. package/dist/src/assistant/sessionHistory.js +0 -47
  12. package/dist/src/bootstrap/state.js +0 -1165
  13. package/dist/src/bridge/bridgeApi.js +0 -304
  14. package/dist/src/bridge/bridgeConfig.js +0 -39
  15. package/dist/src/bridge/bridgeDebug.js +0 -73
  16. package/dist/src/bridge/bridgeEnabled.js +0 -187
  17. package/dist/src/bridge/bridgeMain.js +0 -2289
  18. package/dist/src/bridge/bridgeMessaging.js +0 -353
  19. package/dist/src/bridge/bridgePermissionCallbacks.js +0 -10
  20. package/dist/src/bridge/bridgePointer.js +0 -175
  21. package/dist/src/bridge/bridgeStatusUtil.js +0 -105
  22. package/dist/src/bridge/bridgeUI.js +0 -412
  23. package/dist/src/bridge/capacityWake.js +0 -35
  24. package/dist/src/bridge/codeSessionApi.js +0 -111
  25. package/dist/src/bridge/createSession.js +0 -273
  26. package/dist/src/bridge/debugUtils.js +0 -115
  27. package/dist/src/bridge/envLessBridgeConfig.js +0 -121
  28. package/dist/src/bridge/flushGate.js +0 -65
  29. package/dist/src/bridge/inboundAttachments.js +0 -152
  30. package/dist/src/bridge/inboundMessages.js +0 -63
  31. package/dist/src/bridge/initReplBridge.js +0 -428
  32. package/dist/src/bridge/jwtUtils.js +0 -185
  33. package/dist/src/bridge/pollConfig.js +0 -85
  34. package/dist/src/bridge/pollConfigDefaults.js +0 -62
  35. package/dist/src/bridge/remoteBridgeCore.js +0 -712
  36. package/dist/src/bridge/replBridge.js +0 -1720
  37. package/dist/src/bridge/replBridgeHandle.js +0 -30
  38. package/dist/src/bridge/replBridgeTransport.js +0 -236
  39. package/dist/src/bridge/sessionIdCompat.js +0 -56
  40. package/dist/src/bridge/sessionRunner.js +0 -421
  41. package/dist/src/bridge/trustedDevice.js +0 -172
  42. package/dist/src/bridge/types.js +0 -9
  43. package/dist/src/bridge/workSecret.js +0 -99
  44. package/dist/src/buddy/CompanionSprite.js +0 -349
  45. package/dist/src/buddy/companion.js +0 -107
  46. package/dist/src/buddy/prompt.js +0 -33
  47. package/dist/src/buddy/sprites.js +0 -488
  48. package/dist/src/buddy/types.js +0 -90
  49. package/dist/src/buddy/useBuddyNotification.js +0 -90
  50. package/dist/src/cli/bg.js +0 -16
  51. package/dist/src/cli/exit.js +0 -30
  52. package/dist/src/cli/handlers/agents.js +0 -55
  53. package/dist/src/cli/handlers/ant.js +0 -16
  54. package/dist/src/cli/handlers/auth.js +0 -312
  55. package/dist/src/cli/handlers/autoMode.js +0 -128
  56. package/dist/src/cli/handlers/mcp.js +0 -334
  57. package/dist/src/cli/handlers/plugins.js +0 -634
  58. package/dist/src/cli/handlers/projects_bridge.js +0 -40
  59. package/dist/src/cli/handlers/templateJobs.js +0 -16
  60. package/dist/src/cli/handlers/util.js +0 -76
  61. package/dist/src/cli/ndjsonSafeStringify.js +0 -27
  62. package/dist/src/cli/print.js +0 -4225
  63. package/dist/src/cli/remoteIO.js +0 -208
  64. package/dist/src/cli/rollback.js +0 -16
  65. package/dist/src/cli/structuredIO.js +0 -644
  66. package/dist/src/cli/transports/HybridTransport.js +0 -233
  67. package/dist/src/cli/transports/SSETransport.js +0 -538
  68. package/dist/src/cli/transports/SerialBatchEventUploader.js +0 -224
  69. package/dist/src/cli/transports/Transport.js +0 -1
  70. package/dist/src/cli/transports/WebSocketTransport.js +0 -613
  71. package/dist/src/cli/transports/WorkerStateUploader.js +0 -88
  72. package/dist/src/cli/transports/ccrClient.js +0 -711
  73. package/dist/src/cli/transports/transportUtils.js +0 -39
  74. package/dist/src/cli/up.js +0 -16
  75. package/dist/src/cli/update.js +0 -315
  76. package/dist/src/commands/add-dir/add-dir.js +0 -121
  77. package/dist/src/commands/add-dir/index.js +0 -8
  78. package/dist/src/commands/add-dir/validation.js +0 -76
  79. package/dist/src/commands/advisor.js +0 -88
  80. package/dist/src/commands/agents/agents.js +0 -9
  81. package/dist/src/commands/agents/index.js +0 -7
  82. package/dist/src/commands/ant-trace/index.js +0 -1
  83. package/dist/src/commands/assistant/assistant.js +0 -16
  84. package/dist/src/commands/autofix-pr/index.js +0 -1
  85. package/dist/src/commands/backfill-sessions/index.js +0 -1
  86. package/dist/src/commands/branch/branch.js +0 -205
  87. package/dist/src/commands/branch/index.js +0 -11
  88. package/dist/src/commands/break-cache/index.js +0 -1
  89. package/dist/src/commands/bridge/bridge.js +0 -512
  90. package/dist/src/commands/bridge/index.js +0 -22
  91. package/dist/src/commands/bridge-kick.js +0 -179
  92. package/dist/src/commands/brief.js +0 -94
  93. package/dist/src/commands/btw/btw.js +0 -234
  94. package/dist/src/commands/btw/index.js +0 -9
  95. package/dist/src/commands/bughunter/index.js +0 -1
  96. package/dist/src/commands/chrome/chrome.js +0 -291
  97. package/dist/src/commands/chrome/index.js +0 -10
  98. package/dist/src/commands/clear/caches.js +0 -116
  99. package/dist/src/commands/clear/clear.js +0 -5
  100. package/dist/src/commands/clear/conversation.js +0 -191
  101. package/dist/src/commands/clear/index.js +0 -9
  102. package/dist/src/commands/color/color.js +0 -58
  103. package/dist/src/commands/color/index.js +0 -9
  104. package/dist/src/commands/commit-push-pr.js +0 -137
  105. package/dist/src/commands/commit.js +0 -80
  106. package/dist/src/commands/compact/compact.js +0 -196
  107. package/dist/src/commands/compact/index.js +0 -11
  108. package/dist/src/commands/config/config.js +0 -5
  109. package/dist/src/commands/config/index.js +0 -8
  110. package/dist/src/commands/context/context-noninteractive.js +0 -221
  111. package/dist/src/commands/context/context.js +0 -46
  112. package/dist/src/commands/context/index.js +0 -21
  113. package/dist/src/commands/copy/copy.js +0 -366
  114. package/dist/src/commands/copy/index.js +0 -7
  115. package/dist/src/commands/cost/cost.js +0 -21
  116. package/dist/src/commands/cost/index.js +0 -16
  117. package/dist/src/commands/createMovedToPluginCommand.js +0 -33
  118. package/dist/src/commands/ctx_viz/index.js +0 -1
  119. package/dist/src/commands/debug-tool-call/index.js +0 -1
  120. package/dist/src/commands/desktop/desktop.js +0 -5
  121. package/dist/src/commands/desktop/index.js +0 -22
  122. package/dist/src/commands/diff/diff.js +0 -5
  123. package/dist/src/commands/diff/index.js +0 -6
  124. package/dist/src/commands/doctor/doctor.js +0 -5
  125. package/dist/src/commands/doctor/index.js +0 -9
  126. package/dist/src/commands/effort/effort.js +0 -166
  127. package/dist/src/commands/effort/index.js +0 -11
  128. package/dist/src/commands/env/index.js +0 -1
  129. package/dist/src/commands/exit/exit.js +0 -31
  130. package/dist/src/commands/exit/index.js +0 -9
  131. package/dist/src/commands/export/export.js +0 -86
  132. package/dist/src/commands/export/index.js +0 -8
  133. package/dist/src/commands/extra-usage/extra-usage-core.js +0 -99
  134. package/dist/src/commands/extra-usage/extra-usage-noninteractive.js +0 -13
  135. package/dist/src/commands/extra-usage/extra-usage.js +0 -14
  136. package/dist/src/commands/extra-usage/index.js +0 -27
  137. package/dist/src/commands/fast/fast.js +0 -275
  138. package/dist/src/commands/fast/index.js +0 -20
  139. package/dist/src/commands/feedback/feedback.js +0 -10
  140. package/dist/src/commands/feedback/index.js +0 -20
  141. package/dist/src/commands/files/files.js +0 -11
  142. package/dist/src/commands/files/index.js +0 -9
  143. package/dist/src/commands/good-claude/index.js +0 -1
  144. package/dist/src/commands/heapdump/heapdump.js +0 -14
  145. package/dist/src/commands/heapdump/index.js +0 -9
  146. package/dist/src/commands/help/help.js +0 -5
  147. package/dist/src/commands/help/index.js +0 -7
  148. package/dist/src/commands/hooks/hooks.js +0 -11
  149. package/dist/src/commands/hooks/index.js +0 -8
  150. package/dist/src/commands/ide/ide.js +0 -615
  151. package/dist/src/commands/ide/index.js +0 -8
  152. package/dist/src/commands/init-verifiers.js +0 -258
  153. package/dist/src/commands/init.js +0 -249
  154. package/dist/src/commands/insights.js +0 -2555
  155. package/dist/src/commands/install-github-app/ApiKeyStep.js +0 -230
  156. package/dist/src/commands/install-github-app/CheckExistingSecretStep.js +0 -194
  157. package/dist/src/commands/install-github-app/CheckGitHubStep.js +0 -15
  158. package/dist/src/commands/install-github-app/ChooseRepoStep.js +0 -211
  159. package/dist/src/commands/install-github-app/CreatingStep.js +0 -52
  160. package/dist/src/commands/install-github-app/ErrorStep.js +0 -83
  161. package/dist/src/commands/install-github-app/ExistingWorkflowStep.js +0 -104
  162. package/dist/src/commands/install-github-app/InstallAppStep.js +0 -96
  163. package/dist/src/commands/install-github-app/OAuthFlowStep.js +0 -190
  164. package/dist/src/commands/install-github-app/SuccessStep.js +0 -93
  165. package/dist/src/commands/install-github-app/WarningsStep.js +0 -70
  166. package/dist/src/commands/install-github-app/index.js +0 -10
  167. package/dist/src/commands/install-github-app/install-github-app.js +0 -593
  168. package/dist/src/commands/install-github-app/setupGitHubActions.js +0 -227
  169. package/dist/src/commands/install-slack-app/index.js +0 -9
  170. package/dist/src/commands/install-slack-app/install-slack-app.js +0 -25
  171. package/dist/src/commands/install.js +0 -118
  172. package/dist/src/commands/issue/index.js +0 -1
  173. package/dist/src/commands/keybindings/index.js +0 -10
  174. package/dist/src/commands/keybindings/keybindings.js +0 -47
  175. package/dist/src/commands/login/index.js +0 -11
  176. package/dist/src/commands/login/login.js +0 -99
  177. package/dist/src/commands/login-openai/index.js +0 -7
  178. package/dist/src/commands/login-openai/login-openai.js +0 -54
  179. package/dist/src/commands/logout/index.js +0 -8
  180. package/dist/src/commands/logout/logout.js +0 -72
  181. package/dist/src/commands/mcp/addCommand.js +0 -183
  182. package/dist/src/commands/mcp/index.js +0 -9
  183. package/dist/src/commands/mcp/mcp.js +0 -78
  184. package/dist/src/commands/mcp/xaaIdpCommand.js +0 -193
  185. package/dist/src/commands/memory/index.js +0 -7
  186. package/dist/src/commands/memory/memory.js +0 -71
  187. package/dist/src/commands/mobile/index.js +0 -8
  188. package/dist/src/commands/mobile/mobile.js +0 -278
  189. package/dist/src/commands/mock-limits/index.js +0 -1
  190. package/dist/src/commands/model/index.js +0 -14
  191. package/dist/src/commands/model/model.js +0 -297
  192. package/dist/src/commands/oauth-refresh/index.js +0 -1
  193. package/dist/src/commands/onboarding/index.js +0 -1
  194. package/dist/src/commands/output-style/index.js +0 -8
  195. package/dist/src/commands/output-style/output-style.js +0 -6
  196. package/dist/src/commands/passes/index.js +0 -17
  197. package/dist/src/commands/passes/passes.js +0 -22
  198. package/dist/src/commands/perf-issue/index.js +0 -1
  199. package/dist/src/commands/permissions/index.js +0 -8
  200. package/dist/src/commands/permissions/permissions.js +0 -8
  201. package/dist/src/commands/plan/index.js +0 -8
  202. package/dist/src/commands/plan/plan.js +0 -115
  203. package/dist/src/commands/plugin/AddMarketplace.js +0 -95
  204. package/dist/src/commands/plugin/BrowseMarketplace.js +0 -576
  205. package/dist/src/commands/plugin/DiscoverPlugins.js +0 -613
  206. package/dist/src/commands/plugin/ManageMarketplaces.js +0 -582
  207. package/dist/src/commands/plugin/ManagePlugins.js +0 -1783
  208. package/dist/src/commands/plugin/PluginErrors.js +0 -124
  209. package/dist/src/commands/plugin/PluginOptionsDialog.js +0 -367
  210. package/dist/src/commands/plugin/PluginOptionsFlow.js +0 -97
  211. package/dist/src/commands/plugin/PluginSettings.js +0 -1042
  212. package/dist/src/commands/plugin/PluginTrustWarning.js +0 -34
  213. package/dist/src/commands/plugin/UnifiedInstalledCell.js +0 -615
  214. package/dist/src/commands/plugin/ValidatePlugin.js +0 -95
  215. package/dist/src/commands/plugin/index.js +0 -10
  216. package/dist/src/commands/plugin/parseArgs.js +0 -71
  217. package/dist/src/commands/plugin/plugin.js +0 -5
  218. package/dist/src/commands/plugin/pluginDetailsHelpers.js +0 -89
  219. package/dist/src/commands/plugin/usePagination.js +0 -89
  220. package/dist/src/commands/pr_comments/index.js +0 -49
  221. package/dist/src/commands/privacy-settings/index.js +0 -11
  222. package/dist/src/commands/privacy-settings/privacy-settings.js +0 -54
  223. package/dist/src/commands/profile/index.js +0 -9
  224. package/dist/src/commands/profile/profile.js +0 -426
  225. package/dist/src/commands/provider/index.js +0 -8
  226. package/dist/src/commands/provider/provider.js +0 -349
  227. package/dist/src/commands/rate-limit-options/index.js +0 -15
  228. package/dist/src/commands/rate-limit-options/rate-limit-options.js +0 -213
  229. package/dist/src/commands/release-notes/index.js +0 -8
  230. package/dist/src/commands/release-notes/release-notes.js +0 -38
  231. package/dist/src/commands/reload-plugins/index.js +0 -11
  232. package/dist/src/commands/reload-plugins/reload-plugins.js +0 -52
  233. package/dist/src/commands/remote-env/index.js +0 -12
  234. package/dist/src/commands/remote-env/remote-env.js +0 -5
  235. package/dist/src/commands/remote-setup/api.js +0 -155
  236. package/dist/src/commands/remote-setup/index.js +0 -15
  237. package/dist/src/commands/remote-setup/remote-setup.js +0 -149
  238. package/dist/src/commands/rename/generateSessionName.js +0 -58
  239. package/dist/src/commands/rename/index.js +0 -9
  240. package/dist/src/commands/rename/rename.js +0 -52
  241. package/dist/src/commands/reset-limits/index.js +0 -4
  242. package/dist/src/commands/resume/index.js +0 -9
  243. package/dist/src/commands/resume/resume.js +0 -239
  244. package/dist/src/commands/review/UltrareviewOverageDialog.js +0 -97
  245. package/dist/src/commands/review/reviewRemote.js +0 -259
  246. package/dist/src/commands/review/ultrareviewCommand.js +0 -57
  247. package/dist/src/commands/review/ultrareviewEnabled.js +0 -10
  248. package/dist/src/commands/review.js +0 -50
  249. package/dist/src/commands/rewind/index.js +0 -10
  250. package/dist/src/commands/rewind/rewind.js +0 -7
  251. package/dist/src/commands/sandbox-toggle/index.js +0 -41
  252. package/dist/src/commands/sandbox-toggle/sandbox-toggle.js +0 -72
  253. package/dist/src/commands/security-review.js +0 -231
  254. package/dist/src/commands/session/index.js +0 -13
  255. package/dist/src/commands/session/session.js +0 -142
  256. package/dist/src/commands/share/index.js +0 -1
  257. package/dist/src/commands/skills/index.js +0 -7
  258. package/dist/src/commands/skills/skills.js +0 -5
  259. package/dist/src/commands/stats/index.js +0 -7
  260. package/dist/src/commands/stats/stats.js +0 -5
  261. package/dist/src/commands/status/index.js +0 -8
  262. package/dist/src/commands/status/status.js +0 -5
  263. package/dist/src/commands/statusline.js +0 -22
  264. package/dist/src/commands/stickers/index.js +0 -8
  265. package/dist/src/commands/stickers/stickers.js +0 -14
  266. package/dist/src/commands/summary/index.js +0 -1
  267. package/dist/src/commands/tag/index.js +0 -9
  268. package/dist/src/commands/tag/tag.js +0 -215
  269. package/dist/src/commands/tasks/index.js +0 -8
  270. package/dist/src/commands/tasks/tasks.js +0 -5
  271. package/dist/src/commands/telegram/index.js +0 -9
  272. package/dist/src/commands/telegram/telegram.js +0 -118
  273. package/dist/src/commands/teleport/index.js +0 -1
  274. package/dist/src/commands/terminalSetup/index.js +0 -18
  275. package/dist/src/commands/terminalSetup/terminalSetup.js +0 -491
  276. package/dist/src/commands/theme/index.js +0 -7
  277. package/dist/src/commands/theme/theme.js +0 -50
  278. package/dist/src/commands/thinkback/index.js +0 -9
  279. package/dist/src/commands/thinkback/thinkback.js +0 -527
  280. package/dist/src/commands/thinkback-play/index.js +0 -13
  281. package/dist/src/commands/thinkback-play/thinkback-play.js +0 -34
  282. package/dist/src/commands/ultraplan.js +0 -418
  283. package/dist/src/commands/upgrade/index.js +0 -12
  284. package/dist/src/commands/upgrade/upgrade.js +0 -37
  285. package/dist/src/commands/usage/index.js +0 -7
  286. package/dist/src/commands/usage/usage.js +0 -5
  287. package/dist/src/commands/version.js +0 -18
  288. package/dist/src/commands/vim/index.js +0 -8
  289. package/dist/src/commands/vim/vim.js +0 -25
  290. package/dist/src/commands/voice/index.js +0 -14
  291. package/dist/src/commands/voice/voice.js +0 -130
  292. package/dist/src/commands/whatsapp/index.js +0 -9
  293. package/dist/src/commands/whatsapp/whatsapp.js +0 -326
  294. package/dist/src/commands.js +0 -646
  295. package/dist/src/components/AgentProgressLine.js +0 -111
  296. package/dist/src/components/App.js +0 -45
  297. package/dist/src/components/ApproveApiKey.js +0 -124
  298. package/dist/src/components/AutoModeOptInDialog.js +0 -140
  299. package/dist/src/components/AutoUpdater.js +0 -157
  300. package/dist/src/components/AutoUpdaterWrapper.js +0 -78
  301. package/dist/src/components/AwsAuthStatusBox.js +0 -88
  302. package/dist/src/components/BaseTextInput.js +0 -105
  303. package/dist/src/components/BashModeProgress.js +0 -48
  304. package/dist/src/components/BridgeDialog.js +0 -414
  305. package/dist/src/components/BypassPermissionsModeDialog.js +0 -87
  306. package/dist/src/components/ChannelDowngradeDialog.js +0 -100
  307. package/dist/src/components/ClaudeCodeHint/PluginHintMenu.js +0 -37
  308. package/dist/src/components/ClaudeInChromeOnboarding.js +0 -126
  309. package/dist/src/components/ClaudeMdExternalIncludesDialog.js +0 -137
  310. package/dist/src/components/ClickableImageRef.js +0 -64
  311. package/dist/src/components/CompactSummary.js +0 -119
  312. package/dist/src/components/ConfigurableShortcutHint.js +0 -34
  313. package/dist/src/components/ConsoleOAuthFlow.js +0 -756
  314. package/dist/src/components/ContextSuggestions.js +0 -43
  315. package/dist/src/components/ContextVisualization.js +0 -483
  316. package/dist/src/components/CoordinatorAgentStatus.js +0 -261
  317. package/dist/src/components/CostThresholdDialog.js +0 -48
  318. package/dist/src/components/CtrlOToExpand.js +0 -50
  319. package/dist/src/components/CustomSelect/SelectMulti.js +0 -149
  320. package/dist/src/components/CustomSelect/index.js +0 -2
  321. package/dist/src/components/CustomSelect/option-map.js +0 -32
  322. package/dist/src/components/CustomSelect/select-input-option.js +0 -426
  323. package/dist/src/components/CustomSelect/select-option.js +0 -23
  324. package/dist/src/components/CustomSelect/select.js +0 -518
  325. package/dist/src/components/CustomSelect/use-multi-select-state.js +0 -214
  326. package/dist/src/components/CustomSelect/use-select-input.js +0 -170
  327. package/dist/src/components/CustomSelect/use-select-navigation.js +0 -366
  328. package/dist/src/components/CustomSelect/use-select-state.js +0 -22
  329. package/dist/src/components/DesktopHandoff.js +0 -195
  330. package/dist/src/components/DesktopUpsell/DesktopUpsellStartup.js +0 -173
  331. package/dist/src/components/DevBar.js +0 -50
  332. package/dist/src/components/DevChannelsDialog.js +0 -103
  333. package/dist/src/components/DiagnosticsDisplay.js +0 -91
  334. package/dist/src/components/EffortCallout.js +0 -264
  335. package/dist/src/components/EffortIndicator.js +0 -29
  336. package/dist/src/components/ExitFlow.js +0 -40
  337. package/dist/src/components/ExportDialog.js +0 -101
  338. package/dist/src/components/FallbackToolUseErrorMessage.js +0 -115
  339. package/dist/src/components/FallbackToolUseRejectedMessage.js +0 -16
  340. package/dist/src/components/FastIcon.js +0 -42
  341. package/dist/src/components/Feedback.js +0 -439
  342. package/dist/src/components/FeedbackSurvey/FeedbackSurvey.js +0 -150
  343. package/dist/src/components/FeedbackSurvey/FeedbackSurveyView.js +0 -103
  344. package/dist/src/components/FeedbackSurvey/TranscriptSharePrompt.js +0 -83
  345. package/dist/src/components/FeedbackSurvey/submitTranscriptShare.js +0 -75
  346. package/dist/src/components/FeedbackSurvey/useDebouncedDigitInput.js +0 -51
  347. package/dist/src/components/FeedbackSurvey/useFeedbackSurvey.js +0 -258
  348. package/dist/src/components/FeedbackSurvey/useMemorySurvey.js +0 -191
  349. package/dist/src/components/FeedbackSurvey/usePostCompactSurvey.js +0 -202
  350. package/dist/src/components/FeedbackSurvey/useSurveyState.js +0 -80
  351. package/dist/src/components/FileEditToolDiff.js +0 -166
  352. package/dist/src/components/FileEditToolUpdatedMessage.js +0 -111
  353. package/dist/src/components/FileEditToolUseRejectedMessage.js +0 -157
  354. package/dist/src/components/FilePathLink.js +0 -34
  355. package/dist/src/components/FullscreenLayout.js +0 -578
  356. package/dist/src/components/GlobalSearchDialog.js +0 -339
  357. package/dist/src/components/HelpV2/Commands.js +0 -65
  358. package/dist/src/components/HelpV2/General.js +0 -24
  359. package/dist/src/components/HelpV2/HelpV2.js +0 -186
  360. package/dist/src/components/HighlightedCode/Fallback.js +0 -193
  361. package/dist/src/components/HighlightedCode.js +0 -184
  362. package/dist/src/components/HistorySearchDialog.js +0 -92
  363. package/dist/src/components/IdeAutoConnectDialog.js +0 -153
  364. package/dist/src/components/IdeOnboardingDialog.js +0 -174
  365. package/dist/src/components/IdeStatusIndicator.js +0 -49
  366. package/dist/src/components/IdleReturnDialog.js +0 -116
  367. package/dist/src/components/InterruptedByUser.js +0 -15
  368. package/dist/src/components/InvalidConfigDialog.js +0 -134
  369. package/dist/src/components/InvalidSettingsDialog.js +0 -84
  370. package/dist/src/components/KeybindingWarnings.js +0 -54
  371. package/dist/src/components/LanguagePicker.js +0 -84
  372. package/dist/src/components/LogSelector.js +0 -1579
  373. package/dist/src/components/LogoV2/AnimatedAsterisk.js +0 -42
  374. package/dist/src/components/LogoV2/AnimatedClawd.js +0 -111
  375. package/dist/src/components/LogoV2/ChannelsNotice.js +0 -258
  376. package/dist/src/components/LogoV2/Clawd.js +0 -5
  377. package/dist/src/components/LogoV2/CondensedLogo.js +0 -159
  378. package/dist/src/components/LogoV2/EmergencyTip.js +0 -47
  379. package/dist/src/components/LogoV2/Feed.js +0 -84
  380. package/dist/src/components/LogoV2/FeedColumn.js +0 -55
  381. package/dist/src/components/LogoV2/GuestPassesUpsell.js +0 -71
  382. package/dist/src/components/LogoV2/LogoV2.js +0 -565
  383. package/dist/src/components/LogoV2/Opus1mMergeNotice.js +0 -56
  384. package/dist/src/components/LogoV2/OverageCreditUpsell.js +0 -160
  385. package/dist/src/components/LogoV2/VoiceModeNotice.js +0 -70
  386. package/dist/src/components/LogoV2/WelcomeV2.js +0 -461
  387. package/dist/src/components/LogoV2/feedConfigs.js +0 -78
  388. package/dist/src/components/LspRecommendation/LspRecommendationMenu.js +0 -46
  389. package/dist/src/components/MCPServerApprovalDialog.js +0 -113
  390. package/dist/src/components/MCPServerDesktopImportDialog.js +0 -206
  391. package/dist/src/components/MCPServerDialogCopy.js +0 -15
  392. package/dist/src/components/MCPServerMultiselectDialog.js +0 -133
  393. package/dist/src/components/ManagedSettingsSecurityDialog/ManagedSettingsSecurityDialog.js +0 -149
  394. package/dist/src/components/ManagedSettingsSecurityDialog/utils.js +0 -105
  395. package/dist/src/components/Markdown.js +0 -217
  396. package/dist/src/components/MarkdownTable.js +0 -279
  397. package/dist/src/components/MemoryUsageIndicator.js +0 -27
  398. package/dist/src/components/Message.js +0 -566
  399. package/dist/src/components/MessageModel.js +0 -36
  400. package/dist/src/components/MessageResponse.js +0 -73
  401. package/dist/src/components/MessageRow.js +0 -346
  402. package/dist/src/components/MessageSelector.js +0 -743
  403. package/dist/src/components/MessageTimestamp.js +0 -57
  404. package/dist/src/components/Messages.js +0 -637
  405. package/dist/src/components/ModelPicker.js +0 -484
  406. package/dist/src/components/NativeAutoUpdater.js +0 -153
  407. package/dist/src/components/NotebookEditToolUseRejectedMessage.js +0 -83
  408. package/dist/src/components/OffscreenFreeze.js +0 -35
  409. package/dist/src/components/Onboarding.js +0 -174
  410. package/dist/src/components/OutputStylePicker.js +0 -102
  411. package/dist/src/components/PackageManagerAutoUpdater.js +0 -100
  412. package/dist/src/components/Passes/Passes.js +0 -113
  413. package/dist/src/components/PrBadge.js +0 -90
  414. package/dist/src/components/PressEnterToContinue.js +0 -15
  415. package/dist/src/components/PromptInput/HistorySearchInput.js +0 -44
  416. package/dist/src/components/PromptInput/IssueFlagBanner.js +0 -8
  417. package/dist/src/components/PromptInput/Notifications.js +0 -221
  418. package/dist/src/components/PromptInput/PromptInput.js +0 -1998
  419. package/dist/src/components/PromptInput/PromptInputFooter.js +0 -84
  420. package/dist/src/components/PromptInput/PromptInputFooterLeftSide.js +0 -409
  421. package/dist/src/components/PromptInput/PromptInputFooterSuggestions.js +0 -280
  422. package/dist/src/components/PromptInput/PromptInputHelpMenu.js +0 -379
  423. package/dist/src/components/PromptInput/PromptInputModeIndicator.js +0 -72
  424. package/dist/src/components/PromptInput/PromptInputQueuedCommands.js +0 -105
  425. package/dist/src/components/PromptInput/PromptInputStashNotice.js +0 -20
  426. package/dist/src/components/PromptInput/SandboxPromptFooterHint.js +0 -65
  427. package/dist/src/components/PromptInput/ShimmeredInput.js +0 -132
  428. package/dist/src/components/PromptInput/VoiceIndicator.js +0 -136
  429. package/dist/src/components/PromptInput/inputModes.js +0 -24
  430. package/dist/src/components/PromptInput/inputPaste.js +0 -62
  431. package/dist/src/components/PromptInput/useMaybeTruncateInput.js +0 -33
  432. package/dist/src/components/PromptInput/usePromptInputPlaceholder.js +0 -55
  433. package/dist/src/components/PromptInput/useShowFastIconHint.js +0 -23
  434. package/dist/src/components/PromptInput/useSwarmBanner.js +0 -112
  435. package/dist/src/components/PromptInput/utils.js +0 -50
  436. package/dist/src/components/QuickOpenDialog.js +0 -243
  437. package/dist/src/components/RemoteCallout.js +0 -53
  438. package/dist/src/components/RemoteEnvironmentDialog.js +0 -345
  439. package/dist/src/components/ResumeTask.js +0 -173
  440. package/dist/src/components/SandboxViolationExpandedView.js +0 -102
  441. package/dist/src/components/ScrollKeybindingHandler.js +0 -982
  442. package/dist/src/components/SearchBox.js +0 -55
  443. package/dist/src/components/SentryErrorBoundary.js +0 -16
  444. package/dist/src/components/SessionBackgroundHint.js +0 -104
  445. package/dist/src/components/SessionPreview.js +0 -200
  446. package/dist/src/components/Settings/Config.js +0 -1628
  447. package/dist/src/components/Settings/Settings.js +0 -129
  448. package/dist/src/components/Settings/Status.js +0 -230
  449. package/dist/src/components/Settings/Usage.js +0 -341
  450. package/dist/src/components/ShowInIDEPrompt.js +0 -151
  451. package/dist/src/components/SkillImprovementSurvey.js +0 -130
  452. package/dist/src/components/Spinner/FlashingChar.js +0 -51
  453. package/dist/src/components/Spinner/GlimmerMessage.js +0 -328
  454. package/dist/src/components/Spinner/ShimmerChar.js +0 -22
  455. package/dist/src/components/Spinner/SpinnerAnimationRow.js +0 -169
  456. package/dist/src/components/Spinner/SpinnerGlyph.js +0 -69
  457. package/dist/src/components/Spinner/TeammateSpinnerLine.js +0 -170
  458. package/dist/src/components/Spinner/TeammateSpinnerTree.js +0 -268
  459. package/dist/src/components/Spinner/index.js +0 -11
  460. package/dist/src/components/Spinner/teammateSelectHint.js +0 -1
  461. package/dist/src/components/Spinner/useShimmerAnimation.js +0 -22
  462. package/dist/src/components/Spinner/useStalledAnimation.js +0 -63
  463. package/dist/src/components/Spinner/utils.js +0 -77
  464. package/dist/src/components/Spinner.js +0 -470
  465. package/dist/src/components/Stats.js +0 -1000
  466. package/dist/src/components/StatusLine.js +0 -285
  467. package/dist/src/components/StatusNotices.js +0 -50
  468. package/dist/src/components/StructuredDiff/Fallback.js +0 -335
  469. package/dist/src/components/StructuredDiff/colorDiff.js +0 -26
  470. package/dist/src/components/StructuredDiff.js +0 -152
  471. package/dist/src/components/StructuredDiffList.js +0 -8
  472. package/dist/src/components/TagTabs.js +0 -100
  473. package/dist/src/components/TaskListV2.js +0 -333
  474. package/dist/src/components/TeammateViewHeader.js +0 -87
  475. package/dist/src/components/TeleportError.js +0 -191
  476. package/dist/src/components/TeleportProgress.js +0 -130
  477. package/dist/src/components/TeleportRepoMismatchDialog.js +0 -98
  478. package/dist/src/components/TeleportResumeWrapper.js +0 -158
  479. package/dist/src/components/TeleportStash.js +0 -82
  480. package/dist/src/components/TextInput.js +0 -108
  481. package/dist/src/components/ThemePicker.js +0 -330
  482. package/dist/src/components/ThinkingToggle.js +0 -153
  483. package/dist/src/components/TokenWarning.js +0 -172
  484. package/dist/src/components/ToolUseLoader.js +0 -34
  485. package/dist/src/components/TrustDialog/TrustDialog.js +0 -301
  486. package/dist/src/components/TrustDialog/utils.js +0 -199
  487. package/dist/src/components/ValidationErrorsList.js +0 -146
  488. package/dist/src/components/VimTextInput.js +0 -136
  489. package/dist/src/components/VirtualMessageList.js +0 -892
  490. package/dist/src/components/WorkflowMultiselectDialog.js +0 -118
  491. package/dist/src/components/WorktreeExitDialog.js +0 -222
  492. package/dist/src/components/agents/AgentDetail.js +0 -226
  493. package/dist/src/components/agents/AgentEditor.js +0 -146
  494. package/dist/src/components/agents/AgentNavigationFooter.js +0 -21
  495. package/dist/src/components/agents/AgentsList.js +0 -436
  496. package/dist/src/components/agents/AgentsMenu.js +0 -848
  497. package/dist/src/components/agents/ColorPicker.js +0 -110
  498. package/dist/src/components/agents/ModelSelector.js +0 -62
  499. package/dist/src/components/agents/SnapshotUpdateDialog.js +0 -16
  500. package/dist/src/components/agents/ToolSelector.js +0 -557
  501. package/dist/src/components/agents/agentFileUtils.js +0 -179
  502. package/dist/src/components/agents/generateAgent.js +0 -161
  503. package/dist/src/components/agents/new-agent-creation/CreateAgentWizard.js +0 -88
  504. package/dist/src/components/agents/new-agent-creation/wizard-steps/ColorStep.js +0 -80
  505. package/dist/src/components/agents/new-agent-creation/wizard-steps/ConfirmStep.js +0 -386
  506. package/dist/src/components/agents/new-agent-creation/wizard-steps/ConfirmStepWrapper.js +0 -63
  507. package/dist/src/components/agents/new-agent-creation/wizard-steps/DescriptionStep.js +0 -126
  508. package/dist/src/components/agents/new-agent-creation/wizard-steps/GenerateStep.js +0 -118
  509. package/dist/src/components/agents/new-agent-creation/wizard-steps/LocationStep.js +0 -79
  510. package/dist/src/components/agents/new-agent-creation/wizard-steps/MemoryStep.js +0 -107
  511. package/dist/src/components/agents/new-agent-creation/wizard-steps/MethodStep.js +0 -79
  512. package/dist/src/components/agents/new-agent-creation/wizard-steps/ModelStep.js +0 -48
  513. package/dist/src/components/agents/new-agent-creation/wizard-steps/PromptStep.js +0 -131
  514. package/dist/src/components/agents/new-agent-creation/wizard-steps/ToolsStep.js +0 -51
  515. package/dist/src/components/agents/new-agent-creation/wizard-steps/TypeStep.js +0 -100
  516. package/dist/src/components/agents/types.js +0 -4
  517. package/dist/src/components/agents/utils.js +0 -14
  518. package/dist/src/components/agents/validateAgent.js +0 -79
  519. package/dist/src/components/design-system/Byline.js +0 -72
  520. package/dist/src/components/design-system/Dialog.js +0 -116
  521. package/dist/src/components/design-system/Divider.js +0 -109
  522. package/dist/src/components/design-system/FuzzyPicker.js +0 -187
  523. package/dist/src/components/design-system/KeyboardShortcutHint.js +0 -67
  524. package/dist/src/components/design-system/ListItem.js +0 -183
  525. package/dist/src/components/design-system/LoadingState.js +0 -68
  526. package/dist/src/components/design-system/Pane.js +0 -68
  527. package/dist/src/components/design-system/ProgressBar.js +0 -62
  528. package/dist/src/components/design-system/Ratchet.js +0 -71
  529. package/dist/src/components/design-system/StatusIcon.js +0 -69
  530. package/dist/src/components/design-system/Tabs.js +0 -269
  531. package/dist/src/components/design-system/ThemeProvider.js +0 -137
  532. package/dist/src/components/design-system/ThemedBox.js +0 -125
  533. package/dist/src/components/design-system/ThemedText.js +0 -60
  534. package/dist/src/components/design-system/color.js +0 -22
  535. package/dist/src/components/diff/DiffDetailView.js +0 -284
  536. package/dist/src/components/diff/DiffDialog.js +0 -387
  537. package/dist/src/components/diff/DiffFileList.js +0 -291
  538. package/dist/src/components/grove/Grove.js +0 -483
  539. package/dist/src/components/hooks/HooksConfigMenu.js +0 -570
  540. package/dist/src/components/hooks/PromptDialog.js +0 -81
  541. package/dist/src/components/hooks/SelectEventMode.js +0 -117
  542. package/dist/src/components/hooks/SelectHookMode.js +0 -93
  543. package/dist/src/components/hooks/SelectMatcherMode.js +0 -124
  544. package/dist/src/components/hooks/ViewHookMode.js +0 -197
  545. package/dist/src/components/mcp/CapabilitiesSection.js +0 -55
  546. package/dist/src/components/mcp/ElicitationDialog.js +0 -945
  547. package/dist/src/components/mcp/MCPAgentServerMenu.js +0 -95
  548. package/dist/src/components/mcp/MCPListPanel.js +0 -504
  549. package/dist/src/components/mcp/MCPReconnect.js +0 -168
  550. package/dist/src/components/mcp/MCPRemoteServerMenu.js +0 -460
  551. package/dist/src/components/mcp/MCPSettings.js +0 -414
  552. package/dist/src/components/mcp/MCPStdioServerMenu.js +0 -95
  553. package/dist/src/components/mcp/MCPToolDetailView.js +0 -219
  554. package/dist/src/components/mcp/MCPToolListView.js +0 -136
  555. package/dist/src/components/mcp/McpParsingWarnings.js +0 -211
  556. package/dist/src/components/mcp/index.js +0 -8
  557. package/dist/src/components/mcp/types.js +0 -3
  558. package/dist/src/components/mcp/utils/reconnectHelpers.js +0 -35
  559. package/dist/src/components/memory/MemoryFileSelector.js +0 -455
  560. package/dist/src/components/memory/MemoryUpdateNotification.js +0 -42
  561. package/dist/src/components/messageActions.js +0 -418
  562. package/dist/src/components/messages/AdvisorMessage.js +0 -151
  563. package/dist/src/components/messages/AssistantRedactedThinkingMessage.js +0 -27
  564. package/dist/src/components/messages/AssistantTextMessage.js +0 -274
  565. package/dist/src/components/messages/AssistantThinkingMessage.js +0 -69
  566. package/dist/src/components/messages/AssistantToolUseMessage.js +0 -323
  567. package/dist/src/components/messages/AttachmentMessage.js +0 -418
  568. package/dist/src/components/messages/CollapsedReadSearchContent.js +0 -362
  569. package/dist/src/components/messages/CompactBoundaryMessage.js +0 -18
  570. package/dist/src/components/messages/GroupedToolUseContent.js +0 -37
  571. package/dist/src/components/messages/HighlightedThinkingText.js +0 -164
  572. package/dist/src/components/messages/HookProgressMessage.js +0 -110
  573. package/dist/src/components/messages/PlanApprovalMessage.js +0 -212
  574. package/dist/src/components/messages/RateLimitMessage.js +0 -149
  575. package/dist/src/components/messages/ShutdownMessage.js +0 -123
  576. package/dist/src/components/messages/SystemAPIErrorMessage.js +0 -135
  577. package/dist/src/components/messages/SystemTextMessage.js +0 -843
  578. package/dist/src/components/messages/TaskAssignmentMessage.js +0 -71
  579. package/dist/src/components/messages/UserAgentNotificationMessage.js +0 -77
  580. package/dist/src/components/messages/UserBashInputMessage.js +0 -51
  581. package/dist/src/components/messages/UserBashOutputMessage.js +0 -54
  582. package/dist/src/components/messages/UserChannelMessage.js +0 -129
  583. package/dist/src/components/messages/UserCommandMessage.js +0 -106
  584. package/dist/src/components/messages/UserImageMessage.js +0 -53
  585. package/dist/src/components/messages/UserLocalCommandOutputMessage.js +0 -169
  586. package/dist/src/components/messages/UserMemoryInputMessage.js +0 -72
  587. package/dist/src/components/messages/UserPlanMessage.js +0 -37
  588. package/dist/src/components/messages/UserPromptMessage.js +0 -63
  589. package/dist/src/components/messages/UserResourceUpdateMessage.js +0 -101
  590. package/dist/src/components/messages/UserTeammateMessage.js +0 -156
  591. package/dist/src/components/messages/UserTextMessage.js +0 -271
  592. package/dist/src/components/messages/UserToolResultMessage/RejectedPlanMessage.js +0 -27
  593. package/dist/src/components/messages/UserToolResultMessage/RejectedToolUseMessage.js +0 -16
  594. package/dist/src/components/messages/UserToolResultMessage/UserToolCanceledMessage.js +0 -16
  595. package/dist/src/components/messages/UserToolResultMessage/UserToolErrorMessage.js +0 -91
  596. package/dist/src/components/messages/UserToolResultMessage/UserToolRejectMessage.js +0 -73
  597. package/dist/src/components/messages/UserToolResultMessage/UserToolResultMessage.js +0 -83
  598. package/dist/src/components/messages/UserToolResultMessage/UserToolSuccessMessage.js +0 -58
  599. package/dist/src/components/messages/UserToolResultMessage/utils.js +0 -43
  600. package/dist/src/components/messages/nullRenderingAttachments.js +0 -58
  601. package/dist/src/components/messages/teamMemCollapsed.js +0 -142
  602. package/dist/src/components/messages/teamMemSaved.js +0 -17
  603. package/dist/src/components/permissions/AskUserQuestionPermissionRequest/AskUserQuestionPermissionRequest.js +0 -654
  604. package/dist/src/components/permissions/AskUserQuestionPermissionRequest/PreviewBox.js +0 -219
  605. package/dist/src/components/permissions/AskUserQuestionPermissionRequest/PreviewQuestionView.js +0 -227
  606. package/dist/src/components/permissions/AskUserQuestionPermissionRequest/QuestionNavigationBar.js +0 -174
  607. package/dist/src/components/permissions/AskUserQuestionPermissionRequest/QuestionView.js +0 -444
  608. package/dist/src/components/permissions/AskUserQuestionPermissionRequest/SubmitQuestionsView.js +0 -136
  609. package/dist/src/components/permissions/AskUserQuestionPermissionRequest/use-multiple-choice-state.js +0 -100
  610. package/dist/src/components/permissions/BashPermissionRequest/BashPermissionRequest.js +0 -404
  611. package/dist/src/components/permissions/BashPermissionRequest/bashToolUseOptions.js +0 -110
  612. package/dist/src/components/permissions/ComputerUseApproval/ComputerUseApproval.js +0 -448
  613. package/dist/src/components/permissions/EnterPlanModePermissionRequest/EnterPlanModePermissionRequest.js +0 -125
  614. package/dist/src/components/permissions/ExitPlanModePermissionRequest/ExitPlanModePermissionRequest.js +0 -650
  615. package/dist/src/components/permissions/FallbackPermissionRequest.js +0 -348
  616. package/dist/src/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js +0 -184
  617. package/dist/src/components/permissions/FilePermissionDialog/FilePermissionDialog.js +0 -108
  618. package/dist/src/components/permissions/FilePermissionDialog/ideDiffConfig.js +0 -13
  619. package/dist/src/components/permissions/FilePermissionDialog/permissionOptions.js +0 -136
  620. package/dist/src/components/permissions/FilePermissionDialog/useFilePermissionDialog.js +0 -131
  621. package/dist/src/components/permissions/FilePermissionDialog/usePermissionHandler.js +0 -86
  622. package/dist/src/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js +0 -163
  623. package/dist/src/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js +0 -78
  624. package/dist/src/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js +0 -112
  625. package/dist/src/components/permissions/NotebookEditPermissionRequest/NotebookEditPermissionRequest.js +0 -163
  626. package/dist/src/components/permissions/NotebookEditPermissionRequest/NotebookEditToolDiff.js +0 -217
  627. package/dist/src/components/permissions/PermissionDecisionDebugInfo.js +0 -466
  628. package/dist/src/components/permissions/PermissionDialog.js +0 -54
  629. package/dist/src/components/permissions/PermissionExplanation.js +0 -269
  630. package/dist/src/components/permissions/PermissionPrompt.js +0 -316
  631. package/dist/src/components/permissions/PermissionRequest.js +0 -160
  632. package/dist/src/components/permissions/PermissionRequestTitle.js +0 -57
  633. package/dist/src/components/permissions/PermissionRuleExplanation.js +0 -109
  634. package/dist/src/components/permissions/PowerShellPermissionRequest/PowerShellPermissionRequest.js +0 -178
  635. package/dist/src/components/permissions/PowerShellPermissionRequest/powershellToolUseOptions.js +0 -73
  636. package/dist/src/components/permissions/SandboxPermissionRequest.js +0 -161
  637. package/dist/src/components/permissions/SedEditPermissionRequest/SedEditPermissionRequest.js +0 -228
  638. package/dist/src/components/permissions/SkillPermissionRequest/SkillPermissionRequest.js +0 -384
  639. package/dist/src/components/permissions/WebFetchPermissionRequest/WebFetchPermissionRequest.js +0 -258
  640. package/dist/src/components/permissions/WorkerBadge.js +0 -43
  641. package/dist/src/components/permissions/WorkerPendingPermission.js +0 -106
  642. package/dist/src/components/permissions/hooks.js +0 -163
  643. package/dist/src/components/permissions/rules/AddPermissionRules.js +0 -170
  644. package/dist/src/components/permissions/rules/AddWorkspaceDirectory.js +0 -334
  645. package/dist/src/components/permissions/rules/PermissionRuleDescription.js +0 -77
  646. package/dist/src/components/permissions/rules/PermissionRuleInput.js +0 -135
  647. package/dist/src/components/permissions/rules/PermissionRuleList.js +0 -1189
  648. package/dist/src/components/permissions/rules/RecentDenialsTab.js +0 -204
  649. package/dist/src/components/permissions/rules/RemoveWorkspaceDirectory.js +0 -102
  650. package/dist/src/components/permissions/rules/WorkspaceTab.js +0 -132
  651. package/dist/src/components/permissions/shellPermissionHelpers.js +0 -111
  652. package/dist/src/components/permissions/useShellPermissionFeedback.js +0 -108
  653. package/dist/src/components/permissions/utils.js +0 -14
  654. package/dist/src/components/sandbox/SandboxConfigTab.js +0 -47
  655. package/dist/src/components/sandbox/SandboxDependenciesTab.js +0 -122
  656. package/dist/src/components/sandbox/SandboxDoctorSection.js +0 -46
  657. package/dist/src/components/sandbox/SandboxOverridesTab.js +0 -192
  658. package/dist/src/components/sandbox/SandboxSettings.js +0 -296
  659. package/dist/src/components/shell/ExpandShellOutputContext.js +0 -33
  660. package/dist/src/components/shell/OutputLine.js +0 -110
  661. package/dist/src/components/shell/ShellProgressMessage.js +0 -143
  662. package/dist/src/components/shell/ShellTimeDisplay.js +0 -71
  663. package/dist/src/components/skills/SkillsMenu.js +0 -238
  664. package/dist/src/components/tasks/AsyncAgentDetailDialog.js +0 -234
  665. package/dist/src/components/tasks/BackgroundTask.js +0 -363
  666. package/dist/src/components/tasks/BackgroundTaskStatus.js +0 -419
  667. package/dist/src/components/tasks/BackgroundTasksDialog.js +0 -496
  668. package/dist/src/components/tasks/DreamDetailDialog.js +0 -250
  669. package/dist/src/components/tasks/InProcessTeammateDetailDialog.js +0 -274
  670. package/dist/src/components/tasks/RemoteSessionDetailDialog.js +0 -868
  671. package/dist/src/components/tasks/RemoteSessionProgress.js +0 -249
  672. package/dist/src/components/tasks/ShellDetailDialog.js +0 -403
  673. package/dist/src/components/tasks/ShellProgress.js +0 -76
  674. package/dist/src/components/tasks/renderToolActivity.js +0 -28
  675. package/dist/src/components/tasks/taskStatusUtils.js +0 -94
  676. package/dist/src/components/teams/TeamStatus.js +0 -76
  677. package/dist/src/components/teams/TeamsDialog.js +0 -672
  678. package/dist/src/components/ui/OrderedList.js +0 -66
  679. package/dist/src/components/ui/OrderedListItem.js +0 -41
  680. package/dist/src/components/ui/TreeSelect.js +0 -300
  681. package/dist/src/components/wizard/WizardDialogLayout.js +0 -47
  682. package/dist/src/components/wizard/WizardNavigationFooter.js +0 -10
  683. package/dist/src/components/wizard/WizardProvider.js +0 -217
  684. package/dist/src/components/wizard/index.js +0 -4
  685. package/dist/src/components/wizard/useWizard.js +0 -9
  686. package/dist/src/constants/apiLimits.js +0 -81
  687. package/dist/src/constants/betas.js +0 -45
  688. package/dist/src/constants/common.js +0 -29
  689. package/dist/src/constants/cyberRiskInstruction.js +0 -24
  690. package/dist/src/constants/errorIds.js +0 -14
  691. package/dist/src/constants/figures.js +0 -38
  692. package/dist/src/constants/files.js +0 -150
  693. package/dist/src/constants/github-app.js +0 -139
  694. package/dist/src/constants/keys.js +0 -10
  695. package/dist/src/constants/messages.js +0 -1
  696. package/dist/src/constants/oauth.js +0 -221
  697. package/dist/src/constants/outputStyles.js +0 -162
  698. package/dist/src/constants/product.js +0 -56
  699. package/dist/src/constants/prompts.js +0 -752
  700. package/dist/src/constants/spinnerVerbs.js +0 -202
  701. package/dist/src/constants/system.js +0 -77
  702. package/dist/src/constants/systemPromptSections.js +0 -39
  703. package/dist/src/constants/toolLimits.js +0 -50
  704. package/dist/src/constants/tools.js +0 -103
  705. package/dist/src/constants/turnCompletionVerbs.js +0 -12
  706. package/dist/src/constants/xml.js +0 -73
  707. package/dist/src/context/QueuedMessageContext.js +0 -51
  708. package/dist/src/context/fpsMetrics.js +0 -22
  709. package/dist/src/context/mailbox.js +0 -35
  710. package/dist/src/context/modalContext.js +0 -34
  711. package/dist/src/context/notifications.js +0 -199
  712. package/dist/src/context/overlayContext.js +0 -149
  713. package/dist/src/context/promptOverlayContext.js +0 -118
  714. package/dist/src/context/stats.js +0 -207
  715. package/dist/src/context/voice.js +0 -74
  716. package/dist/src/context.js +0 -146
  717. package/dist/src/coordinator/coordinatorMode.js +0 -345
  718. package/dist/src/cost-tracker.js +0 -208
  719. package/dist/src/costHook.js +0 -17
  720. package/dist/src/daemon/main.js +0 -16
  721. package/dist/src/daemon/workerRegistry.js +0 -16
  722. package/dist/src/dialogLaunchers.js +0 -68
  723. package/dist/src/entrypoints/agentSdkTypes.js +0 -202
  724. package/dist/src/entrypoints/cli.js +0 -237
  725. package/dist/src/entrypoints/init.js +0 -265
  726. package/dist/src/entrypoints/mcp.js +0 -142
  727. package/dist/src/entrypoints/sandboxTypes.js +0 -112
  728. package/dist/src/entrypoints/sdk/controlSchemas.js +0 -452
  729. package/dist/src/entrypoints/sdk/controlTypes.js +0 -1
  730. package/dist/src/entrypoints/sdk/coreSchemas.js +0 -1331
  731. package/dist/src/entrypoints/sdk/coreTypes.generated.js +0 -1
  732. package/dist/src/entrypoints/sdk/coreTypes.js +0 -49
  733. package/dist/src/entrypoints/sdk/runtimeTypes.js +0 -1
  734. package/dist/src/entrypoints/sdk/toolTypes.js +0 -1
  735. package/dist/src/environment-runner/main.js +0 -16
  736. package/dist/src/history.js +0 -386
  737. package/dist/src/hooks/fileSuggestions.js +0 -635
  738. package/dist/src/hooks/notifs/useAutoModeUnavailableNotification.js +0 -47
  739. package/dist/src/hooks/notifs/useCanSwitchToExistingSubscription.js +0 -57
  740. package/dist/src/hooks/notifs/useDeprecationWarningNotification.js +0 -43
  741. package/dist/src/hooks/notifs/useFastModeNotification.js +0 -164
  742. package/dist/src/hooks/notifs/useIDEStatusIndicator.js +0 -174
  743. package/dist/src/hooks/notifs/useInstallMessages.js +0 -27
  744. package/dist/src/hooks/notifs/useLspInitializationNotification.js +0 -144
  745. package/dist/src/hooks/notifs/useMcpConnectivityStatus.js +0 -80
  746. package/dist/src/hooks/notifs/useModelMigrationNotifications.js +0 -53
  747. package/dist/src/hooks/notifs/useNpmDeprecationNotification.js +0 -24
  748. package/dist/src/hooks/notifs/usePluginAutoupdateNotification.js +0 -82
  749. package/dist/src/hooks/notifs/usePluginInstallationStatus.js +0 -127
  750. package/dist/src/hooks/notifs/useRateLimitWarningNotification.js +0 -118
  751. package/dist/src/hooks/notifs/useSettingsErrors.js +0 -64
  752. package/dist/src/hooks/notifs/useStartupNotification.js +0 -33
  753. package/dist/src/hooks/notifs/useTeammateShutdownNotification.js +0 -64
  754. package/dist/src/hooks/renderPlaceholder.js +0 -26
  755. package/dist/src/hooks/toolPermission/PermissionContext.js +0 -211
  756. package/dist/src/hooks/toolPermission/handlers/coordinatorHandler.js +0 -44
  757. package/dist/src/hooks/toolPermission/handlers/interactiveHandler.js +0 -397
  758. package/dist/src/hooks/toolPermission/handlers/swarmWorkerHandler.js +0 -108
  759. package/dist/src/hooks/toolPermission/permissionLogging.js +0 -145
  760. package/dist/src/hooks/unifiedSuggestions.js +0 -130
  761. package/dist/src/hooks/useAfterFirstRender.js +0 -12
  762. package/dist/src/hooks/useApiKeyVerification.js +0 -63
  763. package/dist/src/hooks/useArrowKeyHistory.js +0 -203
  764. package/dist/src/hooks/useAssistantHistory.js +0 -194
  765. package/dist/src/hooks/useAwaySummary.js +0 -105
  766. package/dist/src/hooks/useBackgroundTaskNavigation.js +0 -204
  767. package/dist/src/hooks/useBlink.js +0 -28
  768. package/dist/src/hooks/useCanUseTool.js +0 -192
  769. package/dist/src/hooks/useCancelRequest.js +0 -195
  770. package/dist/src/hooks/useChromeExtensionNotification.js +0 -49
  771. package/dist/src/hooks/useClaudeCodeHintRecommendation.js +0 -117
  772. package/dist/src/hooks/useClipboardImageHint.js +0 -59
  773. package/dist/src/hooks/useCommandKeybindings.js +0 -87
  774. package/dist/src/hooks/useCommandQueue.js +0 -10
  775. package/dist/src/hooks/useCopyOnSelect.js +0 -88
  776. package/dist/src/hooks/useDeferredHookMessages.js +0 -43
  777. package/dist/src/hooks/useDiffData.js +0 -69
  778. package/dist/src/hooks/useDiffInIDE.js +0 -252
  779. package/dist/src/hooks/useDirectConnect.js +0 -150
  780. package/dist/src/hooks/useDoublePress.js +0 -44
  781. package/dist/src/hooks/useDynamicConfig.js +0 -17
  782. package/dist/src/hooks/useElapsedTime.js +0 -25
  783. package/dist/src/hooks/useExitOnCtrlCD.js +0 -57
  784. package/dist/src/hooks/useExitOnCtrlCDWithKeybindings.js +0 -17
  785. package/dist/src/hooks/useFileHistorySnapshotInit.js +0 -14
  786. package/dist/src/hooks/useGlobalKeybindings.js +0 -215
  787. package/dist/src/hooks/useHistorySearch.js +0 -241
  788. package/dist/src/hooks/useIDEIntegration.js +0 -56
  789. package/dist/src/hooks/useIdeAtMentioned.js +0 -51
  790. package/dist/src/hooks/useIdeConnectionStatus.js +0 -21
  791. package/dist/src/hooks/useIdeLogging.js +0 -29
  792. package/dist/src/hooks/useIdeSelection.js +0 -106
  793. package/dist/src/hooks/useInboxPoller.js +0 -709
  794. package/dist/src/hooks/useInputBuffer.js +0 -73
  795. package/dist/src/hooks/useIssueFlagBanner.js +0 -115
  796. package/dist/src/hooks/useLogMessages.js +0 -98
  797. package/dist/src/hooks/useLspPluginRecommendation.js +0 -176
  798. package/dist/src/hooks/useMailboxBridge.js +0 -15
  799. package/dist/src/hooks/useMainLoopModel.js +0 -25
  800. package/dist/src/hooks/useManagePlugins.js +0 -261
  801. package/dist/src/hooks/useMemoryUsage.js +0 -28
  802. package/dist/src/hooks/useMergedClients.js +0 -11
  803. package/dist/src/hooks/useMergedCommands.js +0 -10
  804. package/dist/src/hooks/useMergedTools.js +0 -32
  805. package/dist/src/hooks/useMinDisplayTime.js +0 -26
  806. package/dist/src/hooks/useNotifyAfterTimeout.js +0 -51
  807. package/dist/src/hooks/useOfficialMarketplaceNotification.js +0 -46
  808. package/dist/src/hooks/usePasteHandler.js +0 -188
  809. package/dist/src/hooks/usePluginRecommendationBase.js +0 -101
  810. package/dist/src/hooks/usePrStatus.js +0 -91
  811. package/dist/src/hooks/usePromptSuggestion.js +0 -128
  812. package/dist/src/hooks/usePromptsFromClaudeInChrome.js +0 -66
  813. package/dist/src/hooks/useQueueProcessor.js +0 -46
  814. package/dist/src/hooks/useRemoteSession.js +0 -431
  815. package/dist/src/hooks/useReplBridge.js +0 -717
  816. package/dist/src/hooks/useSSHSession.js +0 -167
  817. package/dist/src/hooks/useScheduledTasks.js +0 -104
  818. package/dist/src/hooks/useSearchInput.js +0 -302
  819. package/dist/src/hooks/useSessionBackgrounding.js +0 -132
  820. package/dist/src/hooks/useSettings.js +0 -10
  821. package/dist/src/hooks/useSettingsChange.js +0 -13
  822. package/dist/src/hooks/useSkillImprovementSurvey.js +0 -69
  823. package/dist/src/hooks/useSkillsChange.js +0 -51
  824. package/dist/src/hooks/useSwarmInitialization.js +0 -67
  825. package/dist/src/hooks/useSwarmPermissionPoller.js +0 -215
  826. package/dist/src/hooks/useTaskListWatcher.js +0 -157
  827. package/dist/src/hooks/useTasksV2.js +0 -220
  828. package/dist/src/hooks/useTeammateViewAutoExit.js +0 -55
  829. package/dist/src/hooks/useTelegramMirror.js +0 -47
  830. package/dist/src/hooks/useTeleportResume.js +0 -81
  831. package/dist/src/hooks/useTerminalSize.js +0 -9
  832. package/dist/src/hooks/useTextInput.js +0 -397
  833. package/dist/src/hooks/useTimeout.js +0 -10
  834. package/dist/src/hooks/useTurnDiffs.js +0 -160
  835. package/dist/src/hooks/useTypeahead.js +0 -1392
  836. package/dist/src/hooks/useUpdateNotification.js +0 -22
  837. package/dist/src/hooks/useVimInput.js +0 -232
  838. package/dist/src/hooks/useVirtualScroll.js +0 -627
  839. package/dist/src/hooks/useVoice.js +0 -954
  840. package/dist/src/hooks/useVoiceEnabled.js +0 -21
  841. package/dist/src/hooks/useVoiceIntegration.js +0 -631
  842. package/dist/src/hooks/useWhatsAppMirror.js +0 -46
  843. package/dist/src/index.js +0 -18
  844. package/dist/src/ink/Ansi.js +0 -269
  845. package/dist/src/ink/bidi.js +0 -117
  846. package/dist/src/ink/clearTerminal.js +0 -58
  847. package/dist/src/ink/colorize.js +0 -198
  848. package/dist/src/ink/components/AlternateScreen.js +0 -74
  849. package/dist/src/ink/components/App.js +0 -558
  850. package/dist/src/ink/components/AppContext.js +0 -11
  851. package/dist/src/ink/components/Box.js +0 -153
  852. package/dist/src/ink/components/Button.js +0 -166
  853. package/dist/src/ink/components/ClockContext.js +0 -108
  854. package/dist/src/ink/components/CursorDeclarationContext.js +0 -3
  855. package/dist/src/ink/components/ErrorOverview.js +0 -49
  856. package/dist/src/ink/components/Link.js +0 -33
  857. package/dist/src/ink/components/Newline.js +0 -29
  858. package/dist/src/ink/components/NoSelect.js +0 -56
  859. package/dist/src/ink/components/RawAnsi.js +0 -45
  860. package/dist/src/ink/components/ScrollBox.js +0 -170
  861. package/dist/src/ink/components/Spacer.js +0 -19
  862. package/dist/src/ink/components/StdinContext.js +0 -16
  863. package/dist/src/ink/components/TerminalFocusContext.js +0 -45
  864. package/dist/src/ink/components/TerminalSizeContext.js +0 -3
  865. package/dist/src/ink/components/Text.js +0 -194
  866. package/dist/src/ink/constants.js +0 -2
  867. package/dist/src/ink/devtools.js +0 -16
  868. package/dist/src/ink/dom.js +0 -298
  869. package/dist/src/ink/events/click-event.js +0 -36
  870. package/dist/src/ink/events/dispatcher.js +0 -172
  871. package/dist/src/ink/events/emitter.js +0 -31
  872. package/dist/src/ink/events/event-handlers.js +0 -30
  873. package/dist/src/ink/events/event.js +0 -9
  874. package/dist/src/ink/events/focus-event.js +0 -16
  875. package/dist/src/ink/events/input-event.js +0 -161
  876. package/dist/src/ink/events/keyboard-event.js +0 -45
  877. package/dist/src/ink/events/terminal-event.js +0 -78
  878. package/dist/src/ink/events/terminal-focus-event.js +0 -15
  879. package/dist/src/ink/focus.js +0 -158
  880. package/dist/src/ink/frame.js +0 -30
  881. package/dist/src/ink/get-max-width.js +0 -23
  882. package/dist/src/ink/hit-test.js +0 -113
  883. package/dist/src/ink/hooks/use-animation-frame.js +0 -48
  884. package/dist/src/ink/hooks/use-app.js +0 -7
  885. package/dist/src/ink/hooks/use-declared-cursor.js +0 -60
  886. package/dist/src/ink/hooks/use-input.js +0 -70
  887. package/dist/src/ink/hooks/use-interval.js +0 -54
  888. package/dist/src/ink/hooks/use-search-highlight.js +0 -32
  889. package/dist/src/ink/hooks/use-selection.js +0 -60
  890. package/dist/src/ink/hooks/use-stdin.js +0 -7
  891. package/dist/src/ink/hooks/use-tab-status.js +0 -57
  892. package/dist/src/ink/hooks/use-terminal-focus.js +0 -15
  893. package/dist/src/ink/hooks/use-terminal-title.js +0 -29
  894. package/dist/src/ink/hooks/use-terminal-viewport.js +0 -77
  895. package/dist/src/ink/ink.js +0 -1644
  896. package/dist/src/ink/instances.js +0 -7
  897. package/dist/src/ink/layout/engine.js +0 -4
  898. package/dist/src/ink/layout/geometry.js +0 -61
  899. package/dist/src/ink/layout/node.js +0 -62
  900. package/dist/src/ink/layout/yoga.js +0 -237
  901. package/dist/src/ink/line-width-cache.js +0 -19
  902. package/dist/src/ink/log-update.js +0 -583
  903. package/dist/src/ink/measure-element.js +0 -8
  904. package/dist/src/ink/measure-text.js +0 -35
  905. package/dist/src/ink/node-cache.js +0 -30
  906. package/dist/src/ink/optimizer.js +0 -81
  907. package/dist/src/ink/output.js +0 -556
  908. package/dist/src/ink/parse-keypress.js +0 -695
  909. package/dist/src/ink/reconciler.js +0 -384
  910. package/dist/src/ink/render-border.js +0 -134
  911. package/dist/src/ink/render-node-to-output.js +0 -1216
  912. package/dist/src/ink/render-to-screen.js +0 -171
  913. package/dist/src/ink/renderer.js +0 -129
  914. package/dist/src/ink/root.js +0 -80
  915. package/dist/src/ink/screen.js +0 -1132
  916. package/dist/src/ink/searchHighlight.js +0 -78
  917. package/dist/src/ink/selection.js +0 -792
  918. package/dist/src/ink/squash-text-nodes.js +0 -56
  919. package/dist/src/ink/stringWidth.js +0 -200
  920. package/dist/src/ink/styles.js +0 -299
  921. package/dist/src/ink/supports-hyperlinks.js +0 -40
  922. package/dist/src/ink/tabstops.js +0 -39
  923. package/dist/src/ink/terminal-focus-state.js +0 -35
  924. package/dist/src/ink/terminal-querier.js +0 -173
  925. package/dist/src/ink/terminal.js +0 -208
  926. package/dist/src/ink/termio/ansi.js +0 -70
  927. package/dist/src/ink/termio/csi.js +0 -260
  928. package/dist/src/ink/termio/dec.js +0 -53
  929. package/dist/src/ink/termio/esc.js +0 -55
  930. package/dist/src/ink/termio/osc.js +0 -432
  931. package/dist/src/ink/termio/parser.js +0 -356
  932. package/dist/src/ink/termio/sgr.js +0 -292
  933. package/dist/src/ink/termio/tokenize.js +0 -264
  934. package/dist/src/ink/termio/types.js +0 -55
  935. package/dist/src/ink/termio.js +0 -24
  936. package/dist/src/ink/useTerminalNotification.js +0 -57
  937. package/dist/src/ink/warn.js +0 -10
  938. package/dist/src/ink/widest-line.js +0 -14
  939. package/dist/src/ink/wrap-text.js +0 -54
  940. package/dist/src/ink/wrapAnsi.js +0 -6
  941. package/dist/src/ink.js +0 -50
  942. package/dist/src/interactiveHelpers.js +0 -317
  943. package/dist/src/keybindings/KeybindingContext.js +0 -184
  944. package/dist/src/keybindings/KeybindingProviderSetup.js +0 -259
  945. package/dist/src/keybindings/defaultBindings.js +0 -333
  946. package/dist/src/keybindings/loadUserBindings.js +0 -393
  947. package/dist/src/keybindings/match.js +0 -111
  948. package/dist/src/keybindings/parser.js +0 -184
  949. package/dist/src/keybindings/reservedShortcuts.js +0 -109
  950. package/dist/src/keybindings/resolver.js +0 -182
  951. package/dist/src/keybindings/schema.js +0 -205
  952. package/dist/src/keybindings/shortcutFormat.js +0 -48
  953. package/dist/src/keybindings/template.js +0 -40
  954. package/dist/src/keybindings/useKeybinding.js +0 -161
  955. package/dist/src/keybindings/useShortcutDisplay.js +0 -43
  956. package/dist/src/keybindings/validate.js +0 -395
  957. package/dist/src/main.js +0 -4073
  958. package/dist/src/memdir/findRelevantMemories.js +0 -101
  959. package/dist/src/memdir/memdir.js +0 -408
  960. package/dist/src/memdir/memoryAge.js +0 -52
  961. package/dist/src/memdir/memoryScan.js +0 -65
  962. package/dist/src/memdir/memoryTypes.js +0 -260
  963. package/dist/src/memdir/paths.js +0 -236
  964. package/dist/src/memdir/teamMemPaths.js +0 -261
  965. package/dist/src/memdir/teamMemPrompts.js +0 -82
  966. package/dist/src/migrations/migrateAutoUpdatesToSettings.js +0 -47
  967. package/dist/src/migrations/migrateBypassPermissionsAcceptedToSettings.js +0 -32
  968. package/dist/src/migrations/migrateEnableAllProjectMcpServersToSettings.js +0 -83
  969. package/dist/src/migrations/migrateFennecToOpus.js +0 -39
  970. package/dist/src/migrations/migrateLegacyOpusToCurrent.js +0 -44
  971. package/dist/src/migrations/migrateOpusToOpus1m.js +0 -31
  972. package/dist/src/migrations/migrateReplBridgeEnabledToRemoteControlAtStartup.js +0 -23
  973. package/dist/src/migrations/migrateSonnet1mToSonnet45.js +0 -38
  974. package/dist/src/migrations/migrateSonnet45ToSonnet46.js +0 -48
  975. package/dist/src/migrations/resetAutoModeOptInForDefaultOffer.js +0 -47
  976. package/dist/src/migrations/resetProToOpusDefault.js +0 -46
  977. package/dist/src/mirrors/shared.js +0 -186
  978. package/dist/src/moreright/useMoreRight.js +0 -13
  979. package/dist/src/native-ts/color-diff/index.js +0 -821
  980. package/dist/src/native-ts/file-index/index.js +0 -328
  981. package/dist/src/native-ts/yoga-layout/enums.js +0 -101
  982. package/dist/src/native-ts/yoga-layout/index.js +0 -2113
  983. package/dist/src/outputStyles/loadOutputStylesDir.js +0 -71
  984. package/dist/src/plugins/builtinPlugins.js +0 -132
  985. package/dist/src/plugins/bundled/index.js +0 -22
  986. package/dist/src/projectOnboardingState.js +0 -61
  987. package/dist/src/query/config.js +0 -17
  988. package/dist/src/query/deps.js +0 -12
  989. package/dist/src/query/stopHooks.js +0 -334
  990. package/dist/src/query/tokenBudget.js +0 -49
  991. package/dist/src/query.js +0 -1330
  992. package/dist/src/recovery/bunBundleShim.js +0 -11
  993. package/dist/src/remote/RemoteSessionManager.js +0 -195
  994. package/dist/src/remote/SessionsWebSocket.js +0 -305
  995. package/dist/src/remote/remotePermissionBridge.js +0 -70
  996. package/dist/src/remote/sdkMessageAdapter.js +0 -227
  997. package/dist/src/replLauncher.js +0 -6
  998. package/dist/src/schemas/hooks.js +0 -174
  999. package/dist/src/screens/Doctor.js +0 -580
  1000. package/dist/src/screens/REPL.js +0 -4434
  1001. package/dist/src/screens/ResumeConversation.js +0 -341
  1002. package/dist/src/self-hosted-runner/main.js +0 -16
  1003. package/dist/src/server/backends/dangerousBackend.js +0 -16
  1004. package/dist/src/server/connectHeadless.js +0 -16
  1005. package/dist/src/server/createDirectConnectSession.js +0 -62
  1006. package/dist/src/server/directConnectManager.js +0 -153
  1007. package/dist/src/server/lockfile.js +0 -16
  1008. package/dist/src/server/parseConnectUrl.js +0 -16
  1009. package/dist/src/server/server.js +0 -16
  1010. package/dist/src/server/serverBanner.js +0 -16
  1011. package/dist/src/server/serverLog.js +0 -16
  1012. package/dist/src/server/sessionManager.js +0 -16
  1013. package/dist/src/server/types.js +0 -7
  1014. package/dist/src/services/AgentSummary/agentSummary.js +0 -147
  1015. package/dist/src/services/MagicDocs/magicDocs.js +0 -193
  1016. package/dist/src/services/MagicDocs/prompts.js +0 -110
  1017. package/dist/src/services/PromptSuggestion/promptSuggestion.js +0 -402
  1018. package/dist/src/services/PromptSuggestion/speculation.js +0 -643
  1019. package/dist/src/services/SessionMemory/prompts.js +0 -254
  1020. package/dist/src/services/SessionMemory/sessionMemory.js +0 -358
  1021. package/dist/src/services/SessionMemory/sessionMemoryUtils.js +0 -157
  1022. package/dist/src/services/analytics/config.js +0 -33
  1023. package/dist/src/services/analytics/datadog.js +0 -259
  1024. package/dist/src/services/analytics/firstPartyEventLogger.js +0 -342
  1025. package/dist/src/services/analytics/firstPartyEventLoggingExporter.js +0 -594
  1026. package/dist/src/services/analytics/growthbook.js +0 -952
  1027. package/dist/src/services/analytics/index.js +0 -114
  1028. package/dist/src/services/analytics/metadata.js +0 -698
  1029. package/dist/src/services/analytics/sink.js +0 -95
  1030. package/dist/src/services/analytics/sinkKillswitch.js +0 -19
  1031. package/dist/src/services/api/adminRequests.js +0 -57
  1032. package/dist/src/services/api/bootstrap.js +0 -149
  1033. package/dist/src/services/api/claude.js +0 -2461
  1034. package/dist/src/services/api/client.js +0 -325
  1035. package/dist/src/services/api/dumpPrompts.js +0 -174
  1036. package/dist/src/services/api/emptyUsage.js +0 -20
  1037. package/dist/src/services/api/errorUtils.js +0 -203
  1038. package/dist/src/services/api/errors.js +0 -934
  1039. package/dist/src/services/api/filesApi.js +0 -523
  1040. package/dist/src/services/api/firstTokenDate.js +0 -49
  1041. package/dist/src/services/api/grove.js +0 -272
  1042. package/dist/src/services/api/index.js +0 -23
  1043. package/dist/src/services/api/logging.js +0 -484
  1044. package/dist/src/services/api/metricsOptOut.js +0 -127
  1045. package/dist/src/services/api/openai.js +0 -1187
  1046. package/dist/src/services/api/openrouter.js +0 -30
  1047. package/dist/src/services/api/overageCreditGrant.js +0 -123
  1048. package/dist/src/services/api/promptCacheBreakDetection.js +0 -510
  1049. package/dist/src/services/api/referral.js +0 -219
  1050. package/dist/src/services/api/sessionIngress.js +0 -358
  1051. package/dist/src/services/api/ultrareviewQuota.js +0 -29
  1052. package/dist/src/services/api/usage.js +0 -31
  1053. package/dist/src/services/api/withRetry.js +0 -599
  1054. package/dist/src/services/autoDream/autoDream.js +0 -244
  1055. package/dist/src/services/autoDream/config.js +0 -17
  1056. package/dist/src/services/autoDream/consolidationLock.js +0 -122
  1057. package/dist/src/services/autoDream/consolidationPrompt.js +0 -56
  1058. package/dist/src/services/awaySummary.js +0 -61
  1059. package/dist/src/services/claudeAiLimits.js +0 -331
  1060. package/dist/src/services/claudeAiLimitsHook.js +0 -15
  1061. package/dist/src/services/compact/apiMicrocompact.js +0 -97
  1062. package/dist/src/services/compact/autoCompact.js +0 -236
  1063. package/dist/src/services/compact/cachedMicrocompact.js +0 -16
  1064. package/dist/src/services/compact/compact.js +0 -1258
  1065. package/dist/src/services/compact/compactWarningHook.js +0 -12
  1066. package/dist/src/services/compact/compactWarningState.js +0 -15
  1067. package/dist/src/services/compact/grouping.js +0 -58
  1068. package/dist/src/services/compact/microCompact.js +0 -414
  1069. package/dist/src/services/compact/postCompactCleanup.js +0 -72
  1070. package/dist/src/services/compact/prompt.js +0 -327
  1071. package/dist/src/services/compact/sessionMemoryCompact.js +0 -467
  1072. package/dist/src/services/compact/timeBasedMCConfig.js +0 -11
  1073. package/dist/src/services/diagnosticTracking.js +0 -282
  1074. package/dist/src/services/extractMemories/extractMemories.js +0 -444
  1075. package/dist/src/services/extractMemories/prompts.js +0 -129
  1076. package/dist/src/services/internalLogging.js +0 -68
  1077. package/dist/src/services/lsp/LSPClient.js +0 -306
  1078. package/dist/src/services/lsp/LSPDiagnosticRegistry.js +0 -277
  1079. package/dist/src/services/lsp/LSPServerInstance.js +0 -390
  1080. package/dist/src/services/lsp/LSPServerManager.js +0 -305
  1081. package/dist/src/services/lsp/config.js +0 -57
  1082. package/dist/src/services/lsp/manager.js +0 -246
  1083. package/dist/src/services/lsp/passiveFeedback.js +0 -226
  1084. package/dist/src/services/mcp/InProcessTransport.js +0 -54
  1085. package/dist/src/services/mcp/MCPConnectionManager.js +0 -50
  1086. package/dist/src/services/mcp/SdkControlTransport.js +0 -115
  1087. package/dist/src/services/mcp/auth.js +0 -1882
  1088. package/dist/src/services/mcp/channelAllowlist.js +0 -57
  1089. package/dist/src/services/mcp/channelNotification.js +0 -236
  1090. package/dist/src/services/mcp/channelPermissions.js +0 -192
  1091. package/dist/src/services/mcp/claudeai.js +0 -123
  1092. package/dist/src/services/mcp/client.js +0 -2480
  1093. package/dist/src/services/mcp/config.js +0 -1277
  1094. package/dist/src/services/mcp/elicitationHandler.js +0 -192
  1095. package/dist/src/services/mcp/envExpansion.js +0 -30
  1096. package/dist/src/services/mcp/headersHelper.js +0 -94
  1097. package/dist/src/services/mcp/mcpStringUtils.js +0 -85
  1098. package/dist/src/services/mcp/normalization.js +0 -21
  1099. package/dist/src/services/mcp/oauthPort.js +0 -69
  1100. package/dist/src/services/mcp/officialRegistry.js +0 -54
  1101. package/dist/src/services/mcp/types.js +0 -94
  1102. package/dist/src/services/mcp/useManageMCPConnections.js +0 -820
  1103. package/dist/src/services/mcp/utils.js +0 -433
  1104. package/dist/src/services/mcp/vscodeSdkMcp.js +0 -69
  1105. package/dist/src/services/mcp/xaa.js +0 -342
  1106. package/dist/src/services/mcp/xaaIdpLogin.js +0 -377
  1107. package/dist/src/services/mcpServerApproval.js +0 -29
  1108. package/dist/src/services/mockRateLimits.js +0 -666
  1109. package/dist/src/services/notifier.js +0 -114
  1110. package/dist/src/services/oauth/auth-code-listener.js +0 -236
  1111. package/dist/src/services/oauth/client.js +0 -545
  1112. package/dist/src/services/oauth/crypto.js +0 -19
  1113. package/dist/src/services/oauth/getOauthProfile.js +0 -48
  1114. package/dist/src/services/oauth/index.js +0 -152
  1115. package/dist/src/services/oauth/types.js +0 -1
  1116. package/dist/src/services/plugins/PluginInstallationManager.js +0 -139
  1117. package/dist/src/services/plugins/pluginCliCommands.js +0 -230
  1118. package/dist/src/services/plugins/pluginOperations.js +0 -826
  1119. package/dist/src/services/policyLimits/index.js +0 -547
  1120. package/dist/src/services/policyLimits/types.js +0 -9
  1121. package/dist/src/services/preventSleep.js +0 -143
  1122. package/dist/src/services/rateLimitMessages.js +0 -271
  1123. package/dist/src/services/rateLimitMocking.js +0 -91
  1124. package/dist/src/services/remoteManagedSettings/index.js +0 -534
  1125. package/dist/src/services/remoteManagedSettings/securityCheck.js +0 -59
  1126. package/dist/src/services/remoteManagedSettings/syncCache.js +0 -90
  1127. package/dist/src/services/remoteManagedSettings/syncCacheState.js +0 -89
  1128. package/dist/src/services/remoteManagedSettings/types.js +0 -12
  1129. package/dist/src/services/settingsSync/index.js +0 -478
  1130. package/dist/src/services/settingsSync/types.js +0 -35
  1131. package/dist/src/services/teamMemorySync/index.js +0 -976
  1132. package/dist/src/services/teamMemorySync/secretScanner.js +0 -275
  1133. package/dist/src/services/teamMemorySync/teamMemSecretGuard.js +0 -35
  1134. package/dist/src/services/teamMemorySync/types.js +0 -47
  1135. package/dist/src/services/teamMemorySync/watcher.js +0 -326
  1136. package/dist/src/services/tips/tipHistory.js +0 -17
  1137. package/dist/src/services/tips/tipRegistry.js +0 -589
  1138. package/dist/src/services/tips/tipScheduler.js +0 -40
  1139. package/dist/src/services/tokenEstimation.js +0 -365
  1140. package/dist/src/services/toolUseSummary/toolUseSummaryGenerator.js +0 -87
  1141. package/dist/src/services/tools/StreamingToolExecutor.js +0 -413
  1142. package/dist/src/services/tools/toolExecution.js +0 -1218
  1143. package/dist/src/services/tools/toolHooks.js +0 -454
  1144. package/dist/src/services/tools/toolOrchestration.js +0 -110
  1145. package/dist/src/services/vcr.js +0 -291
  1146. package/dist/src/services/voice.js +0 -394
  1147. package/dist/src/services/voiceKeyterms.js +0 -94
  1148. package/dist/src/services/voiceStreamSTT.js +0 -406
  1149. package/dist/src/setup.js +0 -349
  1150. package/dist/src/skills/bundled/batch.js +0 -114
  1151. package/dist/src/skills/bundled/claudeApi.js +0 -145
  1152. package/dist/src/skills/bundled/claudeApiContent.js +0 -14
  1153. package/dist/src/skills/bundled/claudeInChrome.js +0 -27
  1154. package/dist/src/skills/bundled/debug.js +0 -99
  1155. package/dist/src/skills/bundled/index.js +0 -5
  1156. package/dist/src/skills/bundled/keybindings.js +0 -292
  1157. package/dist/src/skills/bundled/loop.js +0 -81
  1158. package/dist/src/skills/bundled/loremIpsum.js +0 -266
  1159. package/dist/src/skills/bundled/remember.js +0 -75
  1160. package/dist/src/skills/bundled/scheduleRemoteAgents.js +0 -373
  1161. package/dist/src/skills/bundled/simplify.js +0 -66
  1162. package/dist/src/skills/bundled/skillify.js +0 -184
  1163. package/dist/src/skills/bundled/stuck.js +0 -75
  1164. package/dist/src/skills/bundled/updateConfig.js +0 -463
  1165. package/dist/src/skills/bundled/verify.js +0 -25
  1166. package/dist/src/skills/bundled/verifyContent.js +0 -7
  1167. package/dist/src/skills/bundledSkills.js +0 -159
  1168. package/dist/src/skills/loadSkillsDir.js +0 -736
  1169. package/dist/src/skills/mcpSkillBuilders.js +0 -10
  1170. package/dist/src/ssh/createSSHSession.js +0 -16
  1171. package/dist/src/state/AppState.js +0 -184
  1172. package/dist/src/state/AppStateStore.js +0 -119
  1173. package/dist/src/state/onChangeAppState.js +0 -132
  1174. package/dist/src/state/selectors.js +0 -51
  1175. package/dist/src/state/store.js +0 -21
  1176. package/dist/src/state/teammateViewHelpers.js +0 -124
  1177. package/dist/src/tasks/DreamTask/DreamTask.js +0 -99
  1178. package/dist/src/tasks/InProcessTeammateTask/InProcessTeammateTask.js +0 -116
  1179. package/dist/src/tasks/InProcessTeammateTask/types.js +0 -35
  1180. package/dist/src/tasks/LocalAgentTask/LocalAgentTask.js +0 -507
  1181. package/dist/src/tasks/LocalMainSessionTask.js +0 -338
  1182. package/dist/src/tasks/LocalShellTask/LocalShellTask.js +0 -475
  1183. package/dist/src/tasks/LocalShellTask/guards.js +0 -9
  1184. package/dist/src/tasks/LocalShellTask/killShellTasks.js +0 -59
  1185. package/dist/src/tasks/RemoteAgentTask/RemoteAgentTask.js +0 -742
  1186. package/dist/src/tasks/pillLabel.js +0 -69
  1187. package/dist/src/tasks/stopTask.js +0 -67
  1188. package/dist/src/tasks/types.js +0 -18
  1189. package/dist/src/tasks.js +0 -39
  1190. package/dist/src/telegram/bridge.js +0 -334
  1191. package/dist/src/telegram/config.js +0 -57
  1192. package/dist/src/telegram/mirror.js +0 -91
  1193. package/dist/src/tools/AgentTool/AgentTool.js +0 -1222
  1194. package/dist/src/tools/AgentTool/UI.js +0 -592
  1195. package/dist/src/tools/AgentTool/agentColorManager.js +0 -43
  1196. package/dist/src/tools/AgentTool/agentDisplay.js +0 -72
  1197. package/dist/src/tools/AgentTool/agentMemory.js +0 -125
  1198. package/dist/src/tools/AgentTool/agentMemorySnapshot.js +0 -136
  1199. package/dist/src/tools/AgentTool/agentToolUtils.js +0 -456
  1200. package/dist/src/tools/AgentTool/built-in/claudeCodeGuideAgent.js +0 -175
  1201. package/dist/src/tools/AgentTool/built-in/exploreAgent.js +0 -76
  1202. package/dist/src/tools/AgentTool/built-in/generalPurposeAgent.js +0 -28
  1203. package/dist/src/tools/AgentTool/built-in/planAgent.js +0 -87
  1204. package/dist/src/tools/AgentTool/built-in/statuslineSetup.js +0 -140
  1205. package/dist/src/tools/AgentTool/built-in/verificationAgent.js +0 -146
  1206. package/dist/src/tools/AgentTool/builtInAgents.js +0 -58
  1207. package/dist/src/tools/AgentTool/constants.js +0 -11
  1208. package/dist/src/tools/AgentTool/forkSubagent.js +0 -177
  1209. package/dist/src/tools/AgentTool/loadAgentsDir.js +0 -497
  1210. package/dist/src/tools/AgentTool/prompt.js +0 -260
  1211. package/dist/src/tools/AgentTool/resumeAgent.js +0 -182
  1212. package/dist/src/tools/AgentTool/runAgent.js +0 -629
  1213. package/dist/src/tools/AskUserQuestionTool/AskUserQuestionTool.js +0 -237
  1214. package/dist/src/tools/AskUserQuestionTool/prompt.js +0 -38
  1215. package/dist/src/tools/BashTool/BashTool.js +0 -1008
  1216. package/dist/src/tools/BashTool/BashToolResultMessage.js +0 -168
  1217. package/dist/src/tools/BashTool/UI.js +0 -133
  1218. package/dist/src/tools/BashTool/bashCommandHelpers.js +0 -184
  1219. package/dist/src/tools/BashTool/bashPermissions.js +0 -2023
  1220. package/dist/src/tools/BashTool/bashSecurity.js +0 -2267
  1221. package/dist/src/tools/BashTool/commandSemantics.js +0 -105
  1222. package/dist/src/tools/BashTool/commentLabel.js +0 -14
  1223. package/dist/src/tools/BashTool/destructiveCommandWarning.js +0 -88
  1224. package/dist/src/tools/BashTool/modeValidation.js +0 -86
  1225. package/dist/src/tools/BashTool/pathValidation.js +0 -1080
  1226. package/dist/src/tools/BashTool/prompt.js +0 -333
  1227. package/dist/src/tools/BashTool/readOnlyValidation.js +0 -1794
  1228. package/dist/src/tools/BashTool/sedEditParser.js +0 -282
  1229. package/dist/src/tools/BashTool/sedValidation.js +0 -580
  1230. package/dist/src/tools/BashTool/shouldUseSandbox.js +0 -125
  1231. package/dist/src/tools/BashTool/toolName.js +0 -2
  1232. package/dist/src/tools/BashTool/utils.js +0 -180
  1233. package/dist/src/tools/BriefTool/BriefTool.js +0 -172
  1234. package/dist/src/tools/BriefTool/UI.js +0 -66
  1235. package/dist/src/tools/BriefTool/attachments.js +0 -86
  1236. package/dist/src/tools/BriefTool/prompt.js +0 -19
  1237. package/dist/src/tools/BriefTool/upload.js +0 -136
  1238. package/dist/src/tools/ConfigTool/ConfigTool.js +0 -398
  1239. package/dist/src/tools/ConfigTool/UI.js +0 -24
  1240. package/dist/src/tools/ConfigTool/constants.js +0 -1
  1241. package/dist/src/tools/ConfigTool/prompt.js +0 -82
  1242. package/dist/src/tools/ConfigTool/supportedSettings.js +0 -180
  1243. package/dist/src/tools/EnterPlanModeTool/EnterPlanModeTool.js +0 -98
  1244. package/dist/src/tools/EnterPlanModeTool/UI.js +0 -13
  1245. package/dist/src/tools/EnterPlanModeTool/constants.js +0 -1
  1246. package/dist/src/tools/EnterPlanModeTool/prompt.js +0 -164
  1247. package/dist/src/tools/EnterWorktreeTool/EnterWorktreeTool.js +0 -104
  1248. package/dist/src/tools/EnterWorktreeTool/UI.js +0 -8
  1249. package/dist/src/tools/EnterWorktreeTool/constants.js +0 -1
  1250. package/dist/src/tools/EnterWorktreeTool/prompt.js +0 -30
  1251. package/dist/src/tools/ExitPlanModeTool/ExitPlanModeV2Tool.js +0 -385
  1252. package/dist/src/tools/ExitPlanModeTool/UI.js +0 -31
  1253. package/dist/src/tools/ExitPlanModeTool/constants.js +0 -2
  1254. package/dist/src/tools/ExitPlanModeTool/prompt.js +0 -27
  1255. package/dist/src/tools/ExitWorktreeTool/ExitWorktreeTool.js +0 -257
  1256. package/dist/src/tools/ExitWorktreeTool/UI.js +0 -9
  1257. package/dist/src/tools/ExitWorktreeTool/constants.js +0 -1
  1258. package/dist/src/tools/ExitWorktreeTool/prompt.js +0 -32
  1259. package/dist/src/tools/FileEditTool/FileEditTool.js +0 -480
  1260. package/dist/src/tools/FileEditTool/UI.js +0 -201
  1261. package/dist/src/tools/FileEditTool/constants.js +0 -7
  1262. package/dist/src/tools/FileEditTool/prompt.js +0 -24
  1263. package/dist/src/tools/FileEditTool/types.js +0 -50
  1264. package/dist/src/tools/FileEditTool/utils.js +0 -579
  1265. package/dist/src/tools/FileReadTool/FileReadTool.js +0 -889
  1266. package/dist/src/tools/FileReadTool/UI.js +0 -125
  1267. package/dist/src/tools/FileReadTool/imageProcessor.js +0 -46
  1268. package/dist/src/tools/FileReadTool/limits.js +0 -70
  1269. package/dist/src/tools/FileReadTool/prompt.js +0 -31
  1270. package/dist/src/tools/FileWriteTool/FileWriteTool.js +0 -341
  1271. package/dist/src/tools/FileWriteTool/UI.js +0 -338
  1272. package/dist/src/tools/FileWriteTool/prompt.js +0 -15
  1273. package/dist/src/tools/GlobTool/GlobTool.js +0 -161
  1274. package/dist/src/tools/GlobTool/UI.js +0 -39
  1275. package/dist/src/tools/GlobTool/prompt.js +0 -6
  1276. package/dist/src/tools/GrepTool/GrepTool.js +0 -439
  1277. package/dist/src/tools/GrepTool/UI.js +0 -154
  1278. package/dist/src/tools/GrepTool/prompt.js +0 -16
  1279. package/dist/src/tools/LSPTool/LSPTool.js +0 -660
  1280. package/dist/src/tools/LSPTool/UI.js +0 -204
  1281. package/dist/src/tools/LSPTool/formatters.js +0 -445
  1282. package/dist/src/tools/LSPTool/prompt.js +0 -20
  1283. package/dist/src/tools/LSPTool/schemas.js +0 -197
  1284. package/dist/src/tools/LSPTool/symbolContext.js +0 -75
  1285. package/dist/src/tools/ListMcpResourcesTool/ListMcpResourcesTool.js +0 -100
  1286. package/dist/src/tools/ListMcpResourcesTool/UI.js +0 -16
  1287. package/dist/src/tools/ListMcpResourcesTool/prompt.js +0 -18
  1288. package/dist/src/tools/MCPTool/MCPTool.js +0 -60
  1289. package/dist/src/tools/MCPTool/UI.js +0 -342
  1290. package/dist/src/tools/MCPTool/classifyForCollapse.js +0 -597
  1291. package/dist/src/tools/MCPTool/prompt.js +0 -3
  1292. package/dist/src/tools/McpAuthTool/McpAuthTool.js +0 -162
  1293. package/dist/src/tools/NotebookEditTool/NotebookEditTool.js +0 -421
  1294. package/dist/src/tools/NotebookEditTool/UI.js +0 -40
  1295. package/dist/src/tools/NotebookEditTool/constants.js +0 -2
  1296. package/dist/src/tools/NotebookEditTool/prompt.js +0 -2
  1297. package/dist/src/tools/PowerShellTool/PowerShellTool.js +0 -899
  1298. package/dist/src/tools/PowerShellTool/UI.js +0 -57
  1299. package/dist/src/tools/PowerShellTool/clmTypes.js +0 -207
  1300. package/dist/src/tools/PowerShellTool/commandSemantics.js +0 -115
  1301. package/dist/src/tools/PowerShellTool/commonParameters.js +0 -27
  1302. package/dist/src/tools/PowerShellTool/destructiveCommandWarning.js +0 -92
  1303. package/dist/src/tools/PowerShellTool/gitSafety.js +0 -185
  1304. package/dist/src/tools/PowerShellTool/modeValidation.js +0 -357
  1305. package/dist/src/tools/PowerShellTool/pathValidation.js +0 -1712
  1306. package/dist/src/tools/PowerShellTool/powershellPermissions.js +0 -1351
  1307. package/dist/src/tools/PowerShellTool/powershellSecurity.js +0 -942
  1308. package/dist/src/tools/PowerShellTool/prompt.js +0 -132
  1309. package/dist/src/tools/PowerShellTool/readOnlyValidation.js +0 -1633
  1310. package/dist/src/tools/PowerShellTool/toolName.js +0 -2
  1311. package/dist/src/tools/REPLTool/constants.js +0 -43
  1312. package/dist/src/tools/REPLTool/primitiveTools.js +0 -36
  1313. package/dist/src/tools/ReadMcpResourceTool/ReadMcpResourceTool.js +0 -112
  1314. package/dist/src/tools/ReadMcpResourceTool/UI.js +0 -23
  1315. package/dist/src/tools/ReadMcpResourceTool/prompt.js +0 -15
  1316. package/dist/src/tools/RemoteTriggerTool/RemoteTriggerTool.js +0 -142
  1317. package/dist/src/tools/RemoteTriggerTool/UI.js +0 -11
  1318. package/dist/src/tools/RemoteTriggerTool/prompt.js +0 -12
  1319. package/dist/src/tools/ScheduleCronTool/CronCreateTool.js +0 -120
  1320. package/dist/src/tools/ScheduleCronTool/CronDeleteTool.js +0 -74
  1321. package/dist/src/tools/ScheduleCronTool/CronListTool.js +0 -77
  1322. package/dist/src/tools/ScheduleCronTool/UI.js +0 -28
  1323. package/dist/src/tools/ScheduleCronTool/prompt.js +0 -115
  1324. package/dist/src/tools/SendMessageTool/SendMessageTool.js +0 -675
  1325. package/dist/src/tools/SendMessageTool/UI.js +0 -23
  1326. package/dist/src/tools/SendMessageTool/constants.js +0 -1
  1327. package/dist/src/tools/SendMessageTool/prompt.js +0 -47
  1328. package/dist/src/tools/SkillTool/SkillTool.js +0 -827
  1329. package/dist/src/tools/SkillTool/UI.js +0 -60
  1330. package/dist/src/tools/SkillTool/constants.js +0 -1
  1331. package/dist/src/tools/SkillTool/prompt.js +0 -184
  1332. package/dist/src/tools/SleepTool/prompt.js +0 -14
  1333. package/dist/src/tools/SyntheticOutputTool/SyntheticOutputTool.js +0 -138
  1334. package/dist/src/tools/TaskCreateTool/TaskCreateTool.js +0 -104
  1335. package/dist/src/tools/TaskCreateTool/constants.js +0 -1
  1336. package/dist/src/tools/TaskCreateTool/prompt.js +0 -52
  1337. package/dist/src/tools/TaskGetTool/TaskGetTool.js +0 -106
  1338. package/dist/src/tools/TaskGetTool/constants.js +0 -1
  1339. package/dist/src/tools/TaskGetTool/prompt.js +0 -23
  1340. package/dist/src/tools/TaskListTool/TaskListTool.js +0 -89
  1341. package/dist/src/tools/TaskListTool/constants.js +0 -1
  1342. package/dist/src/tools/TaskListTool/prompt.js +0 -44
  1343. package/dist/src/tools/TaskOutputTool/TaskOutputTool.js +0 -535
  1344. package/dist/src/tools/TaskOutputTool/constants.js +0 -1
  1345. package/dist/src/tools/TaskStopTool/TaskStopTool.js +0 -110
  1346. package/dist/src/tools/TaskStopTool/UI.js +0 -30
  1347. package/dist/src/tools/TaskStopTool/prompt.js +0 -7
  1348. package/dist/src/tools/TaskUpdateTool/TaskUpdateTool.js +0 -301
  1349. package/dist/src/tools/TaskUpdateTool/constants.js +0 -1
  1350. package/dist/src/tools/TaskUpdateTool/prompt.js +0 -76
  1351. package/dist/src/tools/TeamCreateTool/TeamCreateTool.js +0 -177
  1352. package/dist/src/tools/TeamCreateTool/UI.js +0 -4
  1353. package/dist/src/tools/TeamCreateTool/constants.js +0 -1
  1354. package/dist/src/tools/TeamCreateTool/prompt.js +0 -113
  1355. package/dist/src/tools/TeamDeleteTool/TeamDeleteTool.js +0 -102
  1356. package/dist/src/tools/TeamDeleteTool/UI.js +0 -13
  1357. package/dist/src/tools/TeamDeleteTool/constants.js +0 -1
  1358. package/dist/src/tools/TeamDeleteTool/prompt.js +0 -16
  1359. package/dist/src/tools/TodoWriteTool/TodoWriteTool.js +0 -99
  1360. package/dist/src/tools/TodoWriteTool/constants.js +0 -1
  1361. package/dist/src/tools/TodoWriteTool/prompt.js +0 -181
  1362. package/dist/src/tools/ToolSearchTool/ToolSearchTool.js +0 -357
  1363. package/dist/src/tools/ToolSearchTool/constants.js +0 -1
  1364. package/dist/src/tools/ToolSearchTool/prompt.js +0 -99
  1365. package/dist/src/tools/TungstenTool/TungstenLiveMonitor.js +0 -7
  1366. package/dist/src/tools/TungstenTool/TungstenTool.js +0 -3
  1367. package/dist/src/tools/WebFetchTool/UI.js +0 -30
  1368. package/dist/src/tools/WebFetchTool/WebFetchTool.js +0 -246
  1369. package/dist/src/tools/WebFetchTool/preapproved.js +0 -155
  1370. package/dist/src/tools/WebFetchTool/prompt.js +0 -39
  1371. package/dist/src/tools/WebFetchTool/utils.js +0 -381
  1372. package/dist/src/tools/WebSearchTool/UI.js +0 -66
  1373. package/dist/src/tools/WebSearchTool/WebSearchTool.js +0 -352
  1374. package/dist/src/tools/WebSearchTool/prompt.js +0 -32
  1375. package/dist/src/tools/WorkflowTool/constants.js +0 -2
  1376. package/dist/src/tools/shared/gitOperationTracking.js +0 -220
  1377. package/dist/src/tools/shared/spawnMultiAgent.js +0 -805
  1378. package/dist/src/tools/testing/TestingPermissionTool.js +0 -72
  1379. package/dist/src/tools/utils.js +0 -24
  1380. package/dist/src/tools.js +0 -332
  1381. package/dist/src/types/command.js +0 -10
  1382. package/dist/src/types/connectorText.js +0 -2
  1383. package/dist/src/types/generated/events_mono/claude_code/v1/claude_code_internal_event.js +0 -673
  1384. package/dist/src/types/generated/events_mono/common/v1/auth.js +0 -49
  1385. package/dist/src/types/generated/events_mono/growthbook/v1/growthbook_experiment_event.js +0 -147
  1386. package/dist/src/types/generated/google/protobuf/timestamp.js +0 -38
  1387. package/dist/src/types/hooks.js +0 -153
  1388. package/dist/src/types/ids.js +0 -27
  1389. package/dist/src/types/logs.js +0 -11
  1390. package/dist/src/types/message.js +0 -1
  1391. package/dist/src/types/permissions.js +0 -25
  1392. package/dist/src/types/plugin.js +0 -72
  1393. package/dist/src/types/textInputTypes.js +0 -20
  1394. package/dist/src/types/utils.js +0 -5
  1395. package/dist/src/upstreamproxy/relay.js +0 -346
  1396. package/dist/src/upstreamproxy/upstreamproxy.js +0 -236
  1397. package/dist/src/utils/CircularBuffer.js +0 -75
  1398. package/dist/src/utils/Cursor.js +0 -1229
  1399. package/dist/src/utils/QueryGuard.js +0 -115
  1400. package/dist/src/utils/Shell.js +0 -374
  1401. package/dist/src/utils/ShellCommand.js +0 -338
  1402. package/dist/src/utils/abortController.js +0 -74
  1403. package/dist/src/utils/activityManager.js +0 -127
  1404. package/dist/src/utils/advisor.js +0 -77
  1405. package/dist/src/utils/agentContext.js +0 -91
  1406. package/dist/src/utils/agentId.js +0 -83
  1407. package/dist/src/utils/agentSwarmsEnabled.js +0 -37
  1408. package/dist/src/utils/agenticSessionSearch.js +0 -255
  1409. package/dist/src/utils/analyzeContext.js +0 -848
  1410. package/dist/src/utils/ansiToPng.js +0 -259
  1411. package/dist/src/utils/ansiToSvg.js +0 -207
  1412. package/dist/src/utils/api.js +0 -555
  1413. package/dist/src/utils/apiPreconnect.js +0 -62
  1414. package/dist/src/utils/appleTerminalBackup.js +0 -95
  1415. package/dist/src/utils/argumentSubstitution.js +0 -114
  1416. package/dist/src/utils/array.js +0 -12
  1417. package/dist/src/utils/asciicast.js +0 -200
  1418. package/dist/src/utils/attachments.js +0 -2514
  1419. package/dist/src/utils/attribution.js +0 -308
  1420. package/dist/src/utils/attributionHooks.js +0 -16
  1421. package/dist/src/utils/attributionTrailer.js +0 -16
  1422. package/dist/src/utils/auth.js +0 -2020
  1423. package/dist/src/utils/authFileDescriptor.js +0 -152
  1424. package/dist/src/utils/authPortable.js +0 -14
  1425. package/dist/src/utils/autoModeDenials.js +0 -15
  1426. package/dist/src/utils/autoRunIssue.js +0 -112
  1427. package/dist/src/utils/autoUpdater.js +0 -461
  1428. package/dist/src/utils/aws.js +0 -44
  1429. package/dist/src/utils/awsAuthStatusManager.js +0 -66
  1430. package/dist/src/utils/background/remote/preconditions.js +0 -175
  1431. package/dist/src/utils/background/remote/remoteSession.js +0 -53
  1432. package/dist/src/utils/backgroundHousekeeping.js +0 -66
  1433. package/dist/src/utils/bash/ParsedCommand.js +0 -241
  1434. package/dist/src/utils/bash/ShellSnapshot.js +0 -489
  1435. package/dist/src/utils/bash/ast.js +0 -2590
  1436. package/dist/src/utils/bash/bashParser.js +0 -4355
  1437. package/dist/src/utils/bash/bashPipeCommand.js +0 -249
  1438. package/dist/src/utils/bash/commands.js +0 -1131
  1439. package/dist/src/utils/bash/heredoc.js +0 -647
  1440. package/dist/src/utils/bash/parser.js +0 -195
  1441. package/dist/src/utils/bash/prefix.js +0 -154
  1442. package/dist/src/utils/bash/registry.js +0 -23
  1443. package/dist/src/utils/bash/shellCompletion.js +0 -196
  1444. package/dist/src/utils/bash/shellPrefix.js +0 -25
  1445. package/dist/src/utils/bash/shellQuote.js +0 -253
  1446. package/dist/src/utils/bash/shellQuoting.js +0 -106
  1447. package/dist/src/utils/bash/specs/alias.js +0 -11
  1448. package/dist/src/utils/bash/specs/index.js +0 -16
  1449. package/dist/src/utils/bash/specs/nohup.js +0 -10
  1450. package/dist/src/utils/bash/specs/pyright.js +0 -88
  1451. package/dist/src/utils/bash/specs/sleep.js +0 -10
  1452. package/dist/src/utils/bash/specs/srun.js +0 -28
  1453. package/dist/src/utils/bash/specs/time.js +0 -10
  1454. package/dist/src/utils/bash/specs/timeout.js +0 -17
  1455. package/dist/src/utils/bash/treeSitterAnalysis.js +0 -407
  1456. package/dist/src/utils/betas.js +0 -332
  1457. package/dist/src/utils/billing.js +0 -54
  1458. package/dist/src/utils/binaryCheck.js +0 -40
  1459. package/dist/src/utils/browser.js +0 -58
  1460. package/dist/src/utils/bufferedWriter.js +0 -77
  1461. package/dist/src/utils/bundledMode.js +0 -19
  1462. package/dist/src/utils/caCerts.js +0 -93
  1463. package/dist/src/utils/caCertsConfig.js +0 -77
  1464. package/dist/src/utils/cachePaths.js +0 -28
  1465. package/dist/src/utils/ccshareResume.js +0 -16
  1466. package/dist/src/utils/classifierApprovals.js +0 -66
  1467. package/dist/src/utils/classifierApprovalsHook.js +0 -10
  1468. package/dist/src/utils/claudeCodeHints.js +0 -142
  1469. package/dist/src/utils/claudeDesktop.js +0 -108
  1470. package/dist/src/utils/claudeInChrome/chromeNativeHost.js +0 -416
  1471. package/dist/src/utils/claudeInChrome/common.js +0 -466
  1472. package/dist/src/utils/claudeInChrome/mcpServer.js +0 -237
  1473. package/dist/src/utils/claudeInChrome/prompt.js +0 -79
  1474. package/dist/src/utils/claudeInChrome/setup.js +0 -320
  1475. package/dist/src/utils/claudeInChrome/setupPortable.js +0 -172
  1476. package/dist/src/utils/claudeInChrome/toolRendering.js +0 -234
  1477. package/dist/src/utils/claudemd.js +0 -1054
  1478. package/dist/src/utils/cleanup.js +0 -514
  1479. package/dist/src/utils/cleanupRegistry.js +0 -22
  1480. package/dist/src/utils/cliArgs.js +0 -53
  1481. package/dist/src/utils/cliHighlight.js +0 -45
  1482. package/dist/src/utils/codeIndexing.js +0 -149
  1483. package/dist/src/utils/collapseBackgroundBashNotifications.js +0 -70
  1484. package/dist/src/utils/collapseHookSummaries.js +0 -48
  1485. package/dist/src/utils/collapseReadSearch.js +0 -871
  1486. package/dist/src/utils/collapseTeammateShutdowns.js +0 -44
  1487. package/dist/src/utils/combinedAbortSignal.js +0 -40
  1488. package/dist/src/utils/commandLifecycle.js +0 -7
  1489. package/dist/src/utils/commitAttribution.js +0 -720
  1490. package/dist/src/utils/completionCache.js +0 -138
  1491. package/dist/src/utils/computerUse/appNames.js +0 -170
  1492. package/dist/src/utils/computerUse/cleanup.js +0 -66
  1493. package/dist/src/utils/computerUse/common.js +0 -56
  1494. package/dist/src/utils/computerUse/computerUseLock.js +0 -183
  1495. package/dist/src/utils/computerUse/drainRunLoop.js +0 -71
  1496. package/dist/src/utils/computerUse/escHotkey.js +0 -53
  1497. package/dist/src/utils/computerUse/executor.js +0 -480
  1498. package/dist/src/utils/computerUse/gates.js +0 -55
  1499. package/dist/src/utils/computerUse/hostAdapter.js +0 -62
  1500. package/dist/src/utils/computerUse/inputLoader.js +0 -27
  1501. package/dist/src/utils/computerUse/mcpServer.js +0 -84
  1502. package/dist/src/utils/computerUse/setup.js +0 -42
  1503. package/dist/src/utils/computerUse/swiftLoader.js +0 -20
  1504. package/dist/src/utils/computerUse/toolRendering.js +0 -100
  1505. package/dist/src/utils/computerUse/wrapper.js +0 -318
  1506. package/dist/src/utils/concurrentSessions.js +0 -179
  1507. package/dist/src/utils/config.js +0 -1084
  1508. package/dist/src/utils/configConstants.js +0 -18
  1509. package/dist/src/utils/contentArray.js +0 -45
  1510. package/dist/src/utils/context.js +0 -185
  1511. package/dist/src/utils/contextAnalysis.js +0 -171
  1512. package/dist/src/utils/contextSuggestions.js +0 -158
  1513. package/dist/src/utils/controlMessageCompat.js +0 -31
  1514. package/dist/src/utils/conversationRecovery.js +0 -436
  1515. package/dist/src/utils/cron.js +0 -260
  1516. package/dist/src/utils/cronJitterConfig.js +0 -62
  1517. package/dist/src/utils/cronScheduler.js +0 -388
  1518. package/dist/src/utils/cronTasks.js +0 -328
  1519. package/dist/src/utils/cronTasksLock.js +0 -159
  1520. package/dist/src/utils/crossProjectResume.js +0 -46
  1521. package/dist/src/utils/crypto.js +0 -13
  1522. package/dist/src/utils/cwd.js +0 -29
  1523. package/dist/src/utils/databaseMcp/common.js +0 -48
  1524. package/dist/src/utils/databaseMcp/mcpServer.js +0 -2
  1525. package/dist/src/utils/databaseMcp/server/connection.js +0 -243
  1526. package/dist/src/utils/databaseMcp/server/index.js +0 -1442
  1527. package/dist/src/utils/databaseMcp/server/queries.js +0 -683
  1528. package/dist/src/utils/databaseMcp/server/types.js +0 -7
  1529. package/dist/src/utils/databaseMcp/setup.js +0 -28
  1530. package/dist/src/utils/debug.js +0 -220
  1531. package/dist/src/utils/debugFilter.js +0 -125
  1532. package/dist/src/utils/deepLink/banner.js +0 -103
  1533. package/dist/src/utils/deepLink/parseDeepLink.js +0 -138
  1534. package/dist/src/utils/deepLink/protocolHandler.js +0 -119
  1535. package/dist/src/utils/deepLink/registerProtocol.js +0 -291
  1536. package/dist/src/utils/deepLink/terminalLauncher.js +0 -455
  1537. package/dist/src/utils/deepLink/terminalPreference.js +0 -51
  1538. package/dist/src/utils/desktopDeepLink.js +0 -208
  1539. package/dist/src/utils/detectRepository.js +0 -157
  1540. package/dist/src/utils/diagLogs.js +0 -74
  1541. package/dist/src/utils/diff.js +0 -108
  1542. package/dist/src/utils/directMemberMessage.js +0 -34
  1543. package/dist/src/utils/displayTags.js +0 -46
  1544. package/dist/src/utils/doctorContextWarnings.js +0 -179
  1545. package/dist/src/utils/doctorDiagnostic.js +0 -495
  1546. package/dist/src/utils/dxt/helpers.js +0 -64
  1547. package/dist/src/utils/dxt/zip.js +0 -167
  1548. package/dist/src/utils/earlyInput.js +0 -166
  1549. package/dist/src/utils/editor.js +0 -163
  1550. package/dist/src/utils/effort.js +0 -278
  1551. package/dist/src/utils/embeddedTools.js +0 -26
  1552. package/dist/src/utils/env.js +0 -358
  1553. package/dist/src/utils/envDynamic.js +0 -130
  1554. package/dist/src/utils/envUtils.js +0 -154
  1555. package/dist/src/utils/envValidation.js +0 -26
  1556. package/dist/src/utils/errorLogSink.js +0 -197
  1557. package/dist/src/utils/errors.js +0 -207
  1558. package/dist/src/utils/eventLoopStallDetector.js +0 -16
  1559. package/dist/src/utils/exampleCommands.js +0 -165
  1560. package/dist/src/utils/execFileNoThrow.js +0 -93
  1561. package/dist/src/utils/execFileNoThrowPortable.js +0 -111
  1562. package/dist/src/utils/execSyncWrapper.js +0 -68
  1563. package/dist/src/utils/exportRenderer.js +0 -71
  1564. package/dist/src/utils/extraUsage.js +0 -19
  1565. package/dist/src/utils/fastMode.js +0 -393
  1566. package/dist/src/utils/file.js +0 -467
  1567. package/dist/src/utils/fileHistory.js +0 -851
  1568. package/dist/src/utils/fileOperationAnalytics.js +0 -45
  1569. package/dist/src/utils/filePersistence/filePersistence.js +0 -212
  1570. package/dist/src/utils/filePersistence/outputsScanner.js +0 -104
  1571. package/dist/src/utils/filePersistence/types.js +0 -5
  1572. package/dist/src/utils/fileRead.js +0 -81
  1573. package/dist/src/utils/fileReadCache.js +0 -78
  1574. package/dist/src/utils/fileStateCache.js +0 -99
  1575. package/dist/src/utils/findExecutable.js +0 -13
  1576. package/dist/src/utils/fingerprint.js +0 -59
  1577. package/dist/src/utils/forkedAgent.js +0 -410
  1578. package/dist/src/utils/format.js +0 -238
  1579. package/dist/src/utils/formatBriefTimestamp.js +0 -72
  1580. package/dist/src/utils/fpsTracker.js +0 -34
  1581. package/dist/src/utils/frontmatterParser.js +0 -260
  1582. package/dist/src/utils/fsOperations.js +0 -834
  1583. package/dist/src/utils/fullscreen.js +0 -194
  1584. package/dist/src/utils/generatedFiles.js +0 -122
  1585. package/dist/src/utils/generators.js +0 -67
  1586. package/dist/src/utils/genericProcessUtils.js +0 -155
  1587. package/dist/src/utils/getWorktreePaths.js +0 -56
  1588. package/dist/src/utils/getWorktreePathsPortable.js +0 -23
  1589. package/dist/src/utils/ghPrStatus.js +0 -71
  1590. package/dist/src/utils/git/gitConfigParser.js +0 -226
  1591. package/dist/src/utils/git/gitFilesystem.js +0 -606
  1592. package/dist/src/utils/git/gitignore.js +0 -84
  1593. package/dist/src/utils/git.js +0 -725
  1594. package/dist/src/utils/gitDiff.js +0 -395
  1595. package/dist/src/utils/gitSettings.js +0 -18
  1596. package/dist/src/utils/github/ghAuthStatus.js +0 -23
  1597. package/dist/src/utils/githubRepoPathMapping.js +0 -135
  1598. package/dist/src/utils/glob.js +0 -90
  1599. package/dist/src/utils/gracefulShutdown.js +0 -447
  1600. package/dist/src/utils/groupToolUses.js +0 -126
  1601. package/dist/src/utils/handlePromptSubmit.js +0 -398
  1602. package/dist/src/utils/hash.js +0 -46
  1603. package/dist/src/utils/headlessProfiler.js +0 -147
  1604. package/dist/src/utils/heapDumpService.js +0 -202
  1605. package/dist/src/utils/heatmap.js +0 -151
  1606. package/dist/src/utils/highlightMatch.js +0 -28
  1607. package/dist/src/utils/hooks/AsyncHookRegistry.js +0 -187
  1608. package/dist/src/utils/hooks/apiQueryHookHelper.js +0 -77
  1609. package/dist/src/utils/hooks/execAgentHook.js +0 -257
  1610. package/dist/src/utils/hooks/execHttpHook.js +0 -184
  1611. package/dist/src/utils/hooks/execPromptHook.js +0 -171
  1612. package/dist/src/utils/hooks/fileChangedWatcher.js +0 -161
  1613. package/dist/src/utils/hooks/hookEvents.js +0 -111
  1614. package/dist/src/utils/hooks/hookHelpers.js +0 -60
  1615. package/dist/src/utils/hooks/hooksConfigManager.js +0 -323
  1616. package/dist/src/utils/hooks/hooksConfigSnapshot.js +0 -114
  1617. package/dist/src/utils/hooks/hooksSettings.js +0 -204
  1618. package/dist/src/utils/hooks/postSamplingHooks.js +0 -39
  1619. package/dist/src/utils/hooks/registerFrontmatterHooks.js +0 -47
  1620. package/dist/src/utils/hooks/registerSkillHooks.js +0 -40
  1621. package/dist/src/utils/hooks/sessionHooks.js +0 -252
  1622. package/dist/src/utils/hooks/skillImprovement.js +0 -211
  1623. package/dist/src/utils/hooks/ssrfGuard.js +0 -258
  1624. package/dist/src/utils/hooks.js +0 -3668
  1625. package/dist/src/utils/horizontalScroll.js +0 -108
  1626. package/dist/src/utils/http.js +0 -121
  1627. package/dist/src/utils/hyperlink.js +0 -28
  1628. package/dist/src/utils/iTermBackup.js +0 -48
  1629. package/dist/src/utils/ide.js +0 -1198
  1630. package/dist/src/utils/idePathConversion.js +0 -66
  1631. package/dist/src/utils/idleTimeout.js +0 -44
  1632. package/dist/src/utils/imagePaste.js +0 -329
  1633. package/dist/src/utils/imageResizer.js +0 -664
  1634. package/dist/src/utils/imageStore.js +0 -150
  1635. package/dist/src/utils/imageValidation.js +0 -92
  1636. package/dist/src/utils/immediateCommand.js +0 -12
  1637. package/dist/src/utils/inProcessTeammateHelpers.js +0 -71
  1638. package/dist/src/utils/ink.js +0 -20
  1639. package/dist/src/utils/intl.js +0 -83
  1640. package/dist/src/utils/jetbrains.js +0 -152
  1641. package/dist/src/utils/json.js +0 -295
  1642. package/dist/src/utils/jsonRead.js +0 -14
  1643. package/dist/src/utils/keyboardShortcuts.js +0 -11
  1644. package/dist/src/utils/lazySchema.js +0 -8
  1645. package/dist/src/utils/listSessionsImpl.js +0 -332
  1646. package/dist/src/utils/localInstaller.js +0 -131
  1647. package/dist/src/utils/lockfile.js +0 -22
  1648. package/dist/src/utils/log.js +0 -280
  1649. package/dist/src/utils/logoV2Utils.js +0 -288
  1650. package/dist/src/utils/mailbox.js +0 -50
  1651. package/dist/src/utils/managedEnv.js +0 -160
  1652. package/dist/src/utils/managedEnvConstants.js +0 -187
  1653. package/dist/src/utils/markdown.js +0 -300
  1654. package/dist/src/utils/markdownConfigLoader.js +0 -480
  1655. package/dist/src/utils/mcp/dateTimeParser.js +0 -102
  1656. package/dist/src/utils/mcp/elicitationValidation.js +0 -259
  1657. package/dist/src/utils/mcpInstructionsDelta.js +0 -97
  1658. package/dist/src/utils/mcpOutputStorage.js +0 -159
  1659. package/dist/src/utils/mcpValidation.js +0 -165
  1660. package/dist/src/utils/mcpWebSocketTransport.js +0 -180
  1661. package/dist/src/utils/memoize.js +0 -205
  1662. package/dist/src/utils/memory/types.js +0 -9
  1663. package/dist/src/utils/memory/versions.js +0 -7
  1664. package/dist/src/utils/memoryFileDetection.js +0 -247
  1665. package/dist/src/utils/messagePredicates.js +0 -6
  1666. package/dist/src/utils/messageQueueManager.js +0 -430
  1667. package/dist/src/utils/messages/mappers.js +0 -240
  1668. package/dist/src/utils/messages/systemInit.js +0 -74
  1669. package/dist/src/utils/messages.js +0 -4273
  1670. package/dist/src/utils/model/agent.js +0 -128
  1671. package/dist/src/utils/model/aliases.js +0 -21
  1672. package/dist/src/utils/model/antModels.js +0 -25
  1673. package/dist/src/utils/model/bedrock.js +0 -220
  1674. package/dist/src/utils/model/check1mAccess.js +0 -64
  1675. package/dist/src/utils/model/configs.js +0 -93
  1676. package/dist/src/utils/model/contextWindowUpgradeCheck.js +0 -41
  1677. package/dist/src/utils/model/deprecation.js +0 -72
  1678. package/dist/src/utils/model/model.js +0 -635
  1679. package/dist/src/utils/model/modelAllowlist.js +0 -148
  1680. package/dist/src/utils/model/modelCapabilities.js +0 -107
  1681. package/dist/src/utils/model/modelOptions.js +0 -627
  1682. package/dist/src/utils/model/modelStrings.js +0 -144
  1683. package/dist/src/utils/model/modelSupportOverrides.js +0 -40
  1684. package/dist/src/utils/model/openrouter.js +0 -51
  1685. package/dist/src/utils/model/providerBaseUrls.js +0 -77
  1686. package/dist/src/utils/model/providerCatalog.js +0 -81
  1687. package/dist/src/utils/model/providerModels.js +0 -334
  1688. package/dist/src/utils/model/providerProfiles.js +0 -392
  1689. package/dist/src/utils/model/providerProfilesDb.js +0 -556
  1690. package/dist/src/utils/model/providerSwitch.js +0 -68
  1691. package/dist/src/utils/model/providers.js +0 -199
  1692. package/dist/src/utils/model/validateModel.js +0 -257
  1693. package/dist/src/utils/modelCost.js +0 -160
  1694. package/dist/src/utils/modifiers.js +0 -35
  1695. package/dist/src/utils/mtls.js +0 -134
  1696. package/dist/src/utils/nativeInstaller/download.js +0 -370
  1697. package/dist/src/utils/nativeInstaller/index.js +0 -8
  1698. package/dist/src/utils/nativeInstaller/installer.js +0 -1396
  1699. package/dist/src/utils/nativeInstaller/packageManagers.js +0 -258
  1700. package/dist/src/utils/nativeInstaller/pidLock.js +0 -347
  1701. package/dist/src/utils/notebook.js +0 -176
  1702. package/dist/src/utils/objectGroupBy.js +0 -15
  1703. package/dist/src/utils/pasteStore.js +0 -93
  1704. package/dist/src/utils/path.js +0 -140
  1705. package/dist/src/utils/pdf.js +0 -236
  1706. package/dist/src/utils/pdfUtils.js +0 -61
  1707. package/dist/src/utils/peerAddress.js +0 -20
  1708. package/dist/src/utils/permissions/PermissionMode.js +0 -95
  1709. package/dist/src/utils/permissions/PermissionPromptToolResultSchema.js +0 -85
  1710. package/dist/src/utils/permissions/PermissionResult.js +0 -11
  1711. package/dist/src/utils/permissions/PermissionRule.js +0 -19
  1712. package/dist/src/utils/permissions/PermissionUpdate.js +0 -268
  1713. package/dist/src/utils/permissions/PermissionUpdateSchema.js +0 -61
  1714. package/dist/src/utils/permissions/autoModeState.js +0 -34
  1715. package/dist/src/utils/permissions/bashClassifier.js +0 -30
  1716. package/dist/src/utils/permissions/bypassPermissionsKillswitch.js +0 -115
  1717. package/dist/src/utils/permissions/classifierDecision.js +0 -88
  1718. package/dist/src/utils/permissions/classifierShared.js +0 -28
  1719. package/dist/src/utils/permissions/dangerousPatterns.js +0 -78
  1720. package/dist/src/utils/permissions/denialTracking.js +0 -34
  1721. package/dist/src/utils/permissions/filesystem.js +0 -1411
  1722. package/dist/src/utils/permissions/getNextPermissionMode.js +0 -74
  1723. package/dist/src/utils/permissions/pathValidation.js +0 -351
  1724. package/dist/src/utils/permissions/permissionExplainer.js +0 -188
  1725. package/dist/src/utils/permissions/permissionRuleParser.js +0 -177
  1726. package/dist/src/utils/permissions/permissionSetup.js +0 -1164
  1727. package/dist/src/utils/permissions/permissions.js +0 -1065
  1728. package/dist/src/utils/permissions/permissionsLoader.js +0 -217
  1729. package/dist/src/utils/permissions/shadowedRuleDetection.js +0 -149
  1730. package/dist/src/utils/permissions/shellRuleMatching.js +0 -174
  1731. package/dist/src/utils/permissions/yoloClassifier.js +0 -1195
  1732. package/dist/src/utils/planModeV2.js +0 -75
  1733. package/dist/src/utils/plans.js +0 -334
  1734. package/dist/src/utils/platform.js +0 -122
  1735. package/dist/src/utils/plugins/addDirPluginSettings.js +0 -53
  1736. package/dist/src/utils/plugins/cacheUtils.js +0 -174
  1737. package/dist/src/utils/plugins/dependencyResolver.js +0 -244
  1738. package/dist/src/utils/plugins/fetchTelemetry.js +0 -108
  1739. package/dist/src/utils/plugins/gitAvailability.js +0 -65
  1740. package/dist/src/utils/plugins/headlessPluginInstall.js +0 -136
  1741. package/dist/src/utils/plugins/hintRecommendation.js +0 -136
  1742. package/dist/src/utils/plugins/installCounts.js +0 -218
  1743. package/dist/src/utils/plugins/installedPluginsManager.js +0 -1003
  1744. package/dist/src/utils/plugins/loadPluginAgents.js +0 -219
  1745. package/dist/src/utils/plugins/loadPluginCommands.js +0 -595
  1746. package/dist/src/utils/plugins/loadPluginHooks.js +0 -239
  1747. package/dist/src/utils/plugins/loadPluginOutputStyles.js +0 -112
  1748. package/dist/src/utils/plugins/lspPluginIntegration.js +0 -293
  1749. package/dist/src/utils/plugins/lspRecommendation.js +0 -278
  1750. package/dist/src/utils/plugins/managedPlugins.js +0 -26
  1751. package/dist/src/utils/plugins/marketplaceHelpers.js +0 -470
  1752. package/dist/src/utils/plugins/marketplaceManager.js +0 -1939
  1753. package/dist/src/utils/plugins/mcpPluginIntegration.js +0 -465
  1754. package/dist/src/utils/plugins/mcpbHandler.js +0 -708
  1755. package/dist/src/utils/plugins/officialMarketplace.js +0 -21
  1756. package/dist/src/utils/plugins/officialMarketplaceGcs.js +0 -195
  1757. package/dist/src/utils/plugins/officialMarketplaceStartupCheck.js +0 -338
  1758. package/dist/src/utils/plugins/orphanedPluginFilter.js +0 -96
  1759. package/dist/src/utils/plugins/parseMarketplaceInput.js +0 -143
  1760. package/dist/src/utils/plugins/performStartupChecks.js +0 -66
  1761. package/dist/src/utils/plugins/pluginAutoupdate.js +0 -210
  1762. package/dist/src/utils/plugins/pluginBlocklist.js +0 -93
  1763. package/dist/src/utils/plugins/pluginDirectories.js +0 -170
  1764. package/dist/src/utils/plugins/pluginFlagging.js +0 -173
  1765. package/dist/src/utils/plugins/pluginIdentifier.js +0 -78
  1766. package/dist/src/utils/plugins/pluginInstallationHelpers.js +0 -400
  1767. package/dist/src/utils/plugins/pluginLoader.js +0 -2426
  1768. package/dist/src/utils/plugins/pluginOptionsStorage.js +0 -311
  1769. package/dist/src/utils/plugins/pluginPolicy.js +0 -18
  1770. package/dist/src/utils/plugins/pluginStartupCheck.js +0 -261
  1771. package/dist/src/utils/plugins/pluginVersioning.js +0 -128
  1772. package/dist/src/utils/plugins/reconciler.js +0 -181
  1773. package/dist/src/utils/plugins/refresh.js +0 -162
  1774. package/dist/src/utils/plugins/schemas.js +0 -1283
  1775. package/dist/src/utils/plugins/validatePlugin.js +0 -765
  1776. package/dist/src/utils/plugins/walkPluginMarkdown.js +0 -49
  1777. package/dist/src/utils/plugins/zipCache.js +0 -346
  1778. package/dist/src/utils/plugins/zipCacheAdapters.js +0 -133
  1779. package/dist/src/utils/postCommitAttribution.js +0 -16
  1780. package/dist/src/utils/powershell/dangerousCmdlets.js +0 -174
  1781. package/dist/src/utils/powershell/parser.js +0 -1357
  1782. package/dist/src/utils/powershell/staticPrefix.js +0 -277
  1783. package/dist/src/utils/preflightChecks.js +0 -147
  1784. package/dist/src/utils/privacyLevel.js +0 -49
  1785. package/dist/src/utils/process.js +0 -56
  1786. package/dist/src/utils/processUserInput/processBashCommand.js +0 -119
  1787. package/dist/src/utils/processUserInput/processSlashCommand.js +0 -845
  1788. package/dist/src/utils/processUserInput/processTextPrompt.js +0 -68
  1789. package/dist/src/utils/processUserInput/processUserInput.js +0 -326
  1790. package/dist/src/utils/profilerBase.js +0 -29
  1791. package/dist/src/utils/promptCategory.js +0 -39
  1792. package/dist/src/utils/promptEditor.js +0 -151
  1793. package/dist/src/utils/promptShellExecution.js +0 -119
  1794. package/dist/src/utils/proxy.js +0 -347
  1795. package/dist/src/utils/queryContext.js +0 -110
  1796. package/dist/src/utils/queryHelpers.js +0 -436
  1797. package/dist/src/utils/queryProfiler.js +0 -242
  1798. package/dist/src/utils/queueProcessor.js +0 -70
  1799. package/dist/src/utils/readEditContext.js +0 -176
  1800. package/dist/src/utils/readFileInRange.js +0 -278
  1801. package/dist/src/utils/releaseNotes.js +0 -304
  1802. package/dist/src/utils/renderOptions.js +0 -67
  1803. package/dist/src/utils/ripgrep.js +0 -540
  1804. package/dist/src/utils/sandbox/sandbox-adapter.js +0 -749
  1805. package/dist/src/utils/sandbox/sandbox-ui-utils.js +0 -11
  1806. package/dist/src/utils/sanitization.js +0 -72
  1807. package/dist/src/utils/screenshotClipboard.js +0 -89
  1808. package/dist/src/utils/sdkEventQueue.js +0 -49
  1809. package/dist/src/utils/sdkHeapDumpMonitor.js +0 -16
  1810. package/dist/src/utils/secureStorage/fallbackStorage.js +0 -59
  1811. package/dist/src/utils/secureStorage/index.js +0 -14
  1812. package/dist/src/utils/secureStorage/keychainPrefetch.js +0 -91
  1813. package/dist/src/utils/secureStorage/macOsKeychainHelpers.js +0 -91
  1814. package/dist/src/utils/secureStorage/macOsKeychainStorage.js +0 -192
  1815. package/dist/src/utils/secureStorage/plainTextStorage.js +0 -81
  1816. package/dist/src/utils/secureStorage/secureStoreDefs.js +0 -1
  1817. package/dist/src/utils/secureStorage/sqliteStorage.js +0 -217
  1818. package/dist/src/utils/secureStorage/types.js +0 -1
  1819. package/dist/src/utils/semanticBoolean.js +0 -23
  1820. package/dist/src/utils/semanticNumber.js +0 -34
  1821. package/dist/src/utils/semver.js +0 -53
  1822. package/dist/src/utils/sequential.js +0 -43
  1823. package/dist/src/utils/sessionActivity.js +0 -120
  1824. package/dist/src/utils/sessionDataUploader.js +0 -16
  1825. package/dist/src/utils/sessionEnvVars.js +0 -18
  1826. package/dist/src/utils/sessionEnvironment.js +0 -131
  1827. package/dist/src/utils/sessionFileAccessHooks.js +0 -207
  1828. package/dist/src/utils/sessionIngressAuth.js +0 -113
  1829. package/dist/src/utils/sessionRestore.js +0 -359
  1830. package/dist/src/utils/sessionStart.js +0 -165
  1831. package/dist/src/utils/sessionState.js +0 -76
  1832. package/dist/src/utils/sessionStorage.js +0 -4162
  1833. package/dist/src/utils/sessionStoragePortable.js +0 -665
  1834. package/dist/src/utils/sessionTitle.js +0 -120
  1835. package/dist/src/utils/sessionUrl.js +0 -50
  1836. package/dist/src/utils/set.js +0 -50
  1837. package/dist/src/utils/settings/allErrors.js +0 -29
  1838. package/dist/src/utils/settings/applySettingsChange.js +0 -65
  1839. package/dist/src/utils/settings/changeDetector.js +0 -409
  1840. package/dist/src/utils/settings/constants.js +0 -166
  1841. package/dist/src/utils/settings/internalWrites.js +0 -33
  1842. package/dist/src/utils/settings/managedPath.js +0 -29
  1843. package/dist/src/utils/settings/mdm/constants.js +0 -62
  1844. package/dist/src/utils/settings/mdm/rawRead.js +0 -97
  1845. package/dist/src/utils/settings/mdm/settings.js +0 -254
  1846. package/dist/src/utils/settings/permissionValidation.js +0 -224
  1847. package/dist/src/utils/settings/pluginOnlyPolicy.js +0 -53
  1848. package/dist/src/utils/settings/schemaOutput.js +0 -7
  1849. package/dist/src/utils/settings/settings.js +0 -791
  1850. package/dist/src/utils/settings/settingsCache.js +0 -47
  1851. package/dist/src/utils/settings/toolValidationConfig.js +0 -76
  1852. package/dist/src/utils/settings/types.js +0 -846
  1853. package/dist/src/utils/settings/validateEditTool.js +0 -34
  1854. package/dist/src/utils/settings/validation.js +0 -192
  1855. package/dist/src/utils/settings/validationTips.js +0 -111
  1856. package/dist/src/utils/shell/bashProvider.js +0 -202
  1857. package/dist/src/utils/shell/outputLimits.js +0 -7
  1858. package/dist/src/utils/shell/powershellDetection.js +0 -96
  1859. package/dist/src/utils/shell/powershellProvider.js +0 -104
  1860. package/dist/src/utils/shell/prefix.js +0 -246
  1861. package/dist/src/utils/shell/readOnlyCommandValidation.js +0 -1776
  1862. package/dist/src/utils/shell/resolveDefaultShell.js +0 -13
  1863. package/dist/src/utils/shell/shellProvider.js +0 -2
  1864. package/dist/src/utils/shell/shellToolUtils.js +0 -21
  1865. package/dist/src/utils/shell/specPrefix.js +0 -198
  1866. package/dist/src/utils/shellConfig.js +0 -136
  1867. package/dist/src/utils/sideQuery.js +0 -195
  1868. package/dist/src/utils/sideQuestion.js +0 -121
  1869. package/dist/src/utils/signal.js +0 -34
  1870. package/dist/src/utils/sinks.js +0 -15
  1871. package/dist/src/utils/skills/skillChangeDetector.js +0 -264
  1872. package/dist/src/utils/slashCommandParsing.js +0 -46
  1873. package/dist/src/utils/sleep.js +0 -72
  1874. package/dist/src/utils/sliceAnsi.js +0 -74
  1875. package/dist/src/utils/slowOperations.js +0 -323
  1876. package/dist/src/utils/standaloneAgent.js +0 -20
  1877. package/dist/src/utils/startupProfiler.js +0 -158
  1878. package/dist/src/utils/staticRender.js +0 -103
  1879. package/dist/src/utils/stats.js +0 -802
  1880. package/dist/src/utils/statsCache.js +0 -330
  1881. package/dist/src/utils/status.js +0 -544
  1882. package/dist/src/utils/statusNoticeDefinitions.js +0 -112
  1883. package/dist/src/utils/statusNoticeHelpers.js +0 -15
  1884. package/dist/src/utils/stream.js +0 -73
  1885. package/dist/src/utils/streamJsonStdoutGuard.js +0 -107
  1886. package/dist/src/utils/streamlinedTransform.js +0 -162
  1887. package/dist/src/utils/stringUtils.js +0 -202
  1888. package/dist/src/utils/subprocessEnv.js +0 -87
  1889. package/dist/src/utils/suggestions/commandSuggestions.js +0 -458
  1890. package/dist/src/utils/suggestions/directoryCompletion.js +0 -191
  1891. package/dist/src/utils/suggestions/shellHistoryCompletion.js +0 -95
  1892. package/dist/src/utils/suggestions/skillUsageTracking.js +0 -50
  1893. package/dist/src/utils/suggestions/slackChannelSuggestions.js +0 -169
  1894. package/dist/src/utils/swarm/It2SetupPrompt.js +0 -386
  1895. package/dist/src/utils/swarm/backends/ITermBackend.js +0 -276
  1896. package/dist/src/utils/swarm/backends/InProcessBackend.js +0 -237
  1897. package/dist/src/utils/swarm/backends/PaneBackendExecutor.js +0 -250
  1898. package/dist/src/utils/swarm/backends/TmuxBackend.js +0 -574
  1899. package/dist/src/utils/swarm/backends/detection.js +0 -112
  1900. package/dist/src/utils/swarm/backends/it2Setup.js +0 -185
  1901. package/dist/src/utils/swarm/backends/registry.js +0 -369
  1902. package/dist/src/utils/swarm/backends/teammateModeSnapshot.js +0 -68
  1903. package/dist/src/utils/swarm/backends/types.js +0 -9
  1904. package/dist/src/utils/swarm/constants.js +0 -29
  1905. package/dist/src/utils/swarm/inProcessRunner.js +0 -1021
  1906. package/dist/src/utils/swarm/leaderPermissionBridge.js +0 -31
  1907. package/dist/src/utils/swarm/permissionSync.js +0 -667
  1908. package/dist/src/utils/swarm/reconnection.js +0 -82
  1909. package/dist/src/utils/swarm/spawnInProcess.js +0 -218
  1910. package/dist/src/utils/swarm/spawnUtils.js +0 -123
  1911. package/dist/src/utils/swarm/teamHelpers.js +0 -484
  1912. package/dist/src/utils/swarm/teammateInit.js +0 -87
  1913. package/dist/src/utils/swarm/teammateLayoutManager.js +0 -82
  1914. package/dist/src/utils/swarm/teammateModel.js +0 -9
  1915. package/dist/src/utils/swarm/teammatePromptAddendum.js +0 -17
  1916. package/dist/src/utils/systemDirectories.js +0 -51
  1917. package/dist/src/utils/systemPrompt.js +0 -90
  1918. package/dist/src/utils/systemPromptType.js +0 -9
  1919. package/dist/src/utils/systemTheme.js +0 -108
  1920. package/dist/src/utils/systemThemeWatcher.js +0 -16
  1921. package/dist/src/utils/taggedId.js +0 -49
  1922. package/dist/src/utils/task/TaskOutput.js +0 -320
  1923. package/dist/src/utils/task/diskOutput.js +0 -387
  1924. package/dist/src/utils/task/framework.js +0 -236
  1925. package/dist/src/utils/task/outputFormatting.js +0 -24
  1926. package/dist/src/utils/task/sdkProgress.js +0 -24
  1927. package/dist/src/utils/tasks.js +0 -672
  1928. package/dist/src/utils/teamDiscovery.js +0 -48
  1929. package/dist/src/utils/teamMemoryOps.js +0 -67
  1930. package/dist/src/utils/teammate.js +0 -237
  1931. package/dist/src/utils/teammateContext.js +0 -56
  1932. package/dist/src/utils/teammateMailbox.js +0 -793
  1933. package/dist/src/utils/telemetry/betaSessionTracing.js +0 -371
  1934. package/dist/src/utils/telemetry/bigqueryExporter.js +0 -178
  1935. package/dist/src/utils/telemetry/events.js +0 -57
  1936. package/dist/src/utils/telemetry/instrumentation.js +0 -617
  1937. package/dist/src/utils/telemetry/logger.js +0 -25
  1938. package/dist/src/utils/telemetry/perfettoTracing.js +0 -882
  1939. package/dist/src/utils/telemetry/pluginTelemetry.js +0 -157
  1940. package/dist/src/utils/telemetry/sessionTracing.js +0 -693
  1941. package/dist/src/utils/telemetry/skillLoadedEvent.js +0 -26
  1942. package/dist/src/utils/telemetryAttributes.js +0 -57
  1943. package/dist/src/utils/teleport/api.js +0 -299
  1944. package/dist/src/utils/teleport/environmentSelection.js +0 -55
  1945. package/dist/src/utils/teleport/environments.js +0 -84
  1946. package/dist/src/utils/teleport/gitBundle.js +0 -192
  1947. package/dist/src/utils/teleport.js +0 -1041
  1948. package/dist/src/utils/tempfile.js +0 -26
  1949. package/dist/src/utils/terminal.js +0 -105
  1950. package/dist/src/utils/terminalPanel.js +0 -155
  1951. package/dist/src/utils/textHighlighting.js +0 -113
  1952. package/dist/src/utils/theme.js +0 -525
  1953. package/dist/src/utils/thinking.js +0 -130
  1954. package/dist/src/utils/timeouts.js +0 -35
  1955. package/dist/src/utils/tmuxSocket.js +0 -373
  1956. package/dist/src/utils/todo/types.js +0 -9
  1957. package/dist/src/utils/tokenBudget.js +0 -62
  1958. package/dist/src/utils/tokens.js +0 -223
  1959. package/dist/src/utils/toolErrors.js +0 -101
  1960. package/dist/src/utils/toolPool.js +0 -63
  1961. package/dist/src/utils/toolResultStorage.js +0 -769
  1962. package/dist/src/utils/toolSchemaCache.js +0 -7
  1963. package/dist/src/utils/toolSearch.js +0 -551
  1964. package/dist/src/utils/transcriptSearch.js +0 -200
  1965. package/dist/src/utils/treeify.js +0 -111
  1966. package/dist/src/utils/truncate.js +0 -164
  1967. package/dist/src/utils/udsClient.js +0 -16
  1968. package/dist/src/utils/udsMessaging.js +0 -16
  1969. package/dist/src/utils/ultraplan/ccrSession.js +0 -264
  1970. package/dist/src/utils/ultraplan/keyword.js +0 -122
  1971. package/dist/src/utils/ultraplan/prompt.txt +0 -1
  1972. package/dist/src/utils/unaryLogging.js +0 -16
  1973. package/dist/src/utils/undercover.js +0 -89
  1974. package/dist/src/utils/user.js +0 -138
  1975. package/dist/src/utils/userAgent.js +0 -13
  1976. package/dist/src/utils/userPromptKeywords.js +0 -21
  1977. package/dist/src/utils/uuid.js +0 -22
  1978. package/dist/src/utils/warningHandler.js +0 -97
  1979. package/dist/src/utils/which.js +0 -75
  1980. package/dist/src/utils/windowsPaths.js +0 -146
  1981. package/dist/src/utils/withResolvers.js +0 -13
  1982. package/dist/src/utils/words.js +0 -793
  1983. package/dist/src/utils/workloadContext.js +0 -42
  1984. package/dist/src/utils/worktree.js +0 -1142
  1985. package/dist/src/utils/worktreeModeEnabled.js +0 -11
  1986. package/dist/src/utils/xdg.js +0 -52
  1987. package/dist/src/utils/xml.js +0 -15
  1988. package/dist/src/utils/yaml.js +0 -16
  1989. package/dist/src/utils/zodToJsonSchema.js +0 -19
  1990. package/dist/src/vim/motions.js +0 -73
  1991. package/dist/src/vim/operators.js +0 -401
  1992. package/dist/src/vim/textObjects.js +0 -153
  1993. package/dist/src/vim/transitions.js +0 -340
  1994. package/dist/src/vim/types.js +0 -93
  1995. package/dist/src/voice/voiceModeEnabled.js +0 -48
  1996. package/dist/src/whatsapp/bridge.js +0 -267
  1997. package/dist/src/whatsapp/config.js +0 -128
  1998. package/dist/src/whatsapp/markdown.js +0 -37
  1999. package/dist/src/whatsapp/mirror.js +0 -74
  2000. package/dist/src/whatsapp/session.js +0 -142
@@ -1,2555 +0,0 @@
1
- import { MACRO } from '../recovery/bunBundleShim.js';
2
- import { execFileSync } from 'child_process';
3
- import { diffLines } from 'diff';
4
- import { constants as fsConstants } from 'fs';
5
- import { copyFile, mkdir, mkdtemp, readdir, readFile, rm, unlink, writeFile, } from 'fs/promises';
6
- import { tmpdir } from 'os';
7
- import { extname, join } from 'path';
8
- import { queryWithModel } from '../services/api/claude.js';
9
- import { AGENT_TOOL_NAME, LEGACY_AGENT_TOOL_NAME, } from '../tools/AgentTool/constants.js';
10
- import { getClaudeConfigHomeDir } from '../utils/envUtils.js';
11
- import { toError } from '../utils/errors.js';
12
- import { execFileNoThrow } from '../utils/execFileNoThrow.js';
13
- import { logError } from '../utils/log.js';
14
- import { extractTextContent } from '../utils/messages.js';
15
- import { getDefaultOpusModel } from '../utils/model/model.js';
16
- import { getProjectsDir, getSessionFilesWithMtime, getSessionIdFromLog, loadAllLogsFromSessionFile, } from '../utils/sessionStorage.js';
17
- import { jsonParse, jsonStringify } from '../utils/slowOperations.js';
18
- import { countCharInString } from '../utils/stringUtils.js';
19
- import { asSystemPrompt } from '../utils/systemPromptType.js';
20
- import { escapeXmlAttr as escapeHtml } from '../utils/xml.js';
21
- // Model for facet extraction and summarization (Opus - best quality)
22
- function getAnalysisModel() {
23
- return getDefaultOpusModel();
24
- }
25
- // Model for narrative insights (Opus - best quality)
26
- function getInsightsModel() {
27
- return getDefaultOpusModel();
28
- }
29
- /* eslint-disable custom-rules/no-process-env-top-level */
30
- const getRunningRemoteHosts = process.env.USER_TYPE === 'ant'
31
- ? async () => {
32
- const { stdout, code } = await execFileNoThrow('coder', ['list', '-o', 'json'], { timeout: 30000 });
33
- if (code !== 0)
34
- return [];
35
- try {
36
- const workspaces = jsonParse(stdout);
37
- return workspaces
38
- .filter(w => w.latest_build?.status === 'running')
39
- .map(w => w.name);
40
- }
41
- catch {
42
- return [];
43
- }
44
- }
45
- : async () => [];
46
- const getRemoteHostSessionCount = process.env.USER_TYPE === 'ant'
47
- ? async (homespace) => {
48
- const { stdout, code } = await execFileNoThrow('ssh', [
49
- `${homespace}.coder`,
50
- 'find /root/.claude/projects -name "*.jsonl" 2>/dev/null | wc -l',
51
- ], { timeout: 30000 });
52
- if (code !== 0)
53
- return 0;
54
- return parseInt(stdout.trim(), 10) || 0;
55
- }
56
- : async () => 0;
57
- const collectFromRemoteHost = process.env.USER_TYPE === 'ant'
58
- ? async (homespace, destDir) => {
59
- const result = { copied: 0, skipped: 0 };
60
- // Create temp directory
61
- const tempDir = await mkdtemp(join(tmpdir(), 'claude-hs-'));
62
- try {
63
- // SCP the projects folder
64
- const scpResult = await execFileNoThrow('scp', ['-rq', `${homespace}.coder:/root/.claude/projects/`, tempDir], { timeout: 300000 });
65
- if (scpResult.code !== 0) {
66
- // SCP failed
67
- return result;
68
- }
69
- const projectsDir = join(tempDir, 'projects');
70
- let projectDirents;
71
- try {
72
- projectDirents = await readdir(projectsDir, { withFileTypes: true });
73
- }
74
- catch {
75
- return result;
76
- }
77
- // Merge into destination (parallel per project directory)
78
- await Promise.all(projectDirents.map(async (dirent) => {
79
- const projectName = dirent.name;
80
- const projectPath = join(projectsDir, projectName);
81
- // Skip if not a directory
82
- if (!dirent.isDirectory())
83
- return;
84
- const destProjectName = `${projectName}__${homespace}`;
85
- const destProjectPath = join(destDir, destProjectName);
86
- try {
87
- await mkdir(destProjectPath, { recursive: true });
88
- }
89
- catch {
90
- // Directory may already exist
91
- }
92
- // Copy session files (skip existing)
93
- let files;
94
- try {
95
- files = await readdir(projectPath, { withFileTypes: true });
96
- }
97
- catch {
98
- return;
99
- }
100
- await Promise.all(files.map(async (fileDirent) => {
101
- const fileName = fileDirent.name;
102
- if (!fileName.endsWith('.jsonl'))
103
- return;
104
- const srcFile = join(projectPath, fileName);
105
- const destFile = join(destProjectPath, fileName);
106
- try {
107
- await copyFile(srcFile, destFile, fsConstants.COPYFILE_EXCL);
108
- result.copied++;
109
- }
110
- catch {
111
- // EEXIST from COPYFILE_EXCL means dest already exists
112
- result.skipped++;
113
- }
114
- }));
115
- }));
116
- }
117
- finally {
118
- try {
119
- await rm(tempDir, { recursive: true, force: true });
120
- }
121
- catch {
122
- // Ignore cleanup errors
123
- }
124
- }
125
- return result;
126
- }
127
- : async () => ({ copied: 0, skipped: 0 });
128
- const collectAllRemoteHostData = process.env.USER_TYPE === 'ant'
129
- ? async (destDir) => {
130
- const rHosts = await getRunningRemoteHosts();
131
- const result = [];
132
- let totalCopied = 0;
133
- let totalSkipped = 0;
134
- // Collect from all hosts in parallel (SCP per host can take seconds)
135
- const hostResults = await Promise.all(rHosts.map(async (hs) => {
136
- const sessionCount = await getRemoteHostSessionCount(hs);
137
- if (sessionCount > 0) {
138
- const { copied, skipped } = await collectFromRemoteHost(hs, destDir);
139
- return { name: hs, sessionCount, copied, skipped };
140
- }
141
- return { name: hs, sessionCount, copied: 0, skipped: 0 };
142
- }));
143
- for (const hr of hostResults) {
144
- result.push({ name: hr.name, sessionCount: hr.sessionCount });
145
- totalCopied += hr.copied;
146
- totalSkipped += hr.skipped;
147
- }
148
- return { hosts: result, totalCopied, totalSkipped };
149
- }
150
- : async () => ({ hosts: [], totalCopied: 0, totalSkipped: 0 });
151
- // ============================================================================
152
- // Constants
153
- // ============================================================================
154
- const EXTENSION_TO_LANGUAGE = {
155
- '.ts': 'TypeScript',
156
- '.tsx': 'TypeScript',
157
- '.js': 'JavaScript',
158
- '.jsx': 'JavaScript',
159
- '.py': 'Python',
160
- '.rb': 'Ruby',
161
- '.go': 'Go',
162
- '.rs': 'Rust',
163
- '.java': 'Java',
164
- '.md': 'Markdown',
165
- '.json': 'JSON',
166
- '.yaml': 'YAML',
167
- '.yml': 'YAML',
168
- '.sh': 'Shell',
169
- '.css': 'CSS',
170
- '.html': 'HTML',
171
- };
172
- // Label map for cleaning up category names (matching Python reference)
173
- const LABEL_MAP = {
174
- // Goal categories
175
- debug_investigate: 'Debug/Investigate',
176
- implement_feature: 'Implement Feature',
177
- fix_bug: 'Fix Bug',
178
- write_script_tool: 'Write Script/Tool',
179
- refactor_code: 'Refactor Code',
180
- configure_system: 'Configure System',
181
- create_pr_commit: 'Create PR/Commit',
182
- analyze_data: 'Analyze Data',
183
- understand_codebase: 'Understand Codebase',
184
- write_tests: 'Write Tests',
185
- write_docs: 'Write Docs',
186
- deploy_infra: 'Deploy/Infra',
187
- warmup_minimal: 'Cache Warmup',
188
- // Success factors
189
- fast_accurate_search: 'Fast/Accurate Search',
190
- correct_code_edits: 'Correct Code Edits',
191
- good_explanations: 'Good Explanations',
192
- proactive_help: 'Proactive Help',
193
- multi_file_changes: 'Multi-file Changes',
194
- handled_complexity: 'Multi-file Changes',
195
- good_debugging: 'Good Debugging',
196
- // Friction types
197
- misunderstood_request: 'Misunderstood Request',
198
- wrong_approach: 'Wrong Approach',
199
- buggy_code: 'Buggy Code',
200
- user_rejected_action: 'User Rejected Action',
201
- claude_got_blocked: 'Claude Got Blocked',
202
- user_stopped_early: 'User Stopped Early',
203
- wrong_file_or_location: 'Wrong File/Location',
204
- excessive_changes: 'Excessive Changes',
205
- slow_or_verbose: 'Slow/Verbose',
206
- tool_failed: 'Tool Failed',
207
- user_unclear: 'User Unclear',
208
- external_issue: 'External Issue',
209
- // Satisfaction labels
210
- frustrated: 'Frustrated',
211
- dissatisfied: 'Dissatisfied',
212
- likely_satisfied: 'Likely Satisfied',
213
- satisfied: 'Satisfied',
214
- happy: 'Happy',
215
- unsure: 'Unsure',
216
- neutral: 'Neutral',
217
- delighted: 'Delighted',
218
- // Session types
219
- single_task: 'Single Task',
220
- multi_task: 'Multi Task',
221
- iterative_refinement: 'Iterative Refinement',
222
- exploration: 'Exploration',
223
- quick_question: 'Quick Question',
224
- // Outcomes
225
- fully_achieved: 'Fully Achieved',
226
- mostly_achieved: 'Mostly Achieved',
227
- partially_achieved: 'Partially Achieved',
228
- not_achieved: 'Not Achieved',
229
- unclear_from_transcript: 'Unclear',
230
- // Helpfulness
231
- unhelpful: 'Unhelpful',
232
- slightly_helpful: 'Slightly Helpful',
233
- moderately_helpful: 'Moderately Helpful',
234
- very_helpful: 'Very Helpful',
235
- essential: 'Essential',
236
- };
237
- // Lazy getters: getClaudeConfigHomeDir() is memoized and reads process.env.
238
- // Calling it at module scope would populate the memoize cache before
239
- // entrypoints can set CLAUDE_CONFIG_DIR, breaking all 150+ other callers.
240
- function getDataDir() {
241
- return join(getClaudeConfigHomeDir(), 'usage-data');
242
- }
243
- function getFacetsDir() {
244
- return join(getDataDir(), 'facets');
245
- }
246
- function getSessionMetaDir() {
247
- return join(getDataDir(), 'session-meta');
248
- }
249
- const FACET_EXTRACTION_PROMPT = `Analyze this Context Code session and extract structured facets.
250
-
251
- CRITICAL GUIDELINES:
252
-
253
- 1. **goal_categories**: Count ONLY what the USER explicitly asked for.
254
- - DO NOT count Claude's autonomous codebase exploration
255
- - DO NOT count work Claude decided to do on its own
256
- - ONLY count when user says "can you...", "please...", "I need...", "let's..."
257
-
258
- 2. **user_satisfaction_counts**: Base ONLY on explicit user signals.
259
- - "Yay!", "great!", "perfect!" → happy
260
- - "thanks", "looks good", "that works" → satisfied
261
- - "ok, now let's..." (continuing without complaint) → likely_satisfied
262
- - "that's not right", "try again" → dissatisfied
263
- - "this is broken", "I give up" → frustrated
264
-
265
- 3. **friction_counts**: Be specific about what went wrong.
266
- - misunderstood_request: Claude interpreted incorrectly
267
- - wrong_approach: Right goal, wrong solution method
268
- - buggy_code: Code didn't work correctly
269
- - user_rejected_action: User said no/stop to a tool call
270
- - excessive_changes: Over-engineered or changed too much
271
-
272
- 4. If very short or just warmup, use warmup_minimal for goal_category
273
-
274
- SESSION:
275
- `;
276
- // ============================================================================
277
- // Helper Functions
278
- // ============================================================================
279
- function getLanguageFromPath(filePath) {
280
- const ext = extname(filePath).toLowerCase();
281
- return EXTENSION_TO_LANGUAGE[ext] || null;
282
- }
283
- function extractToolStats(log) {
284
- const toolCounts = {};
285
- const languages = {};
286
- let gitCommits = 0;
287
- let gitPushes = 0;
288
- let inputTokens = 0;
289
- let outputTokens = 0;
290
- // New stats
291
- let userInterruptions = 0;
292
- const userResponseTimes = [];
293
- let toolErrors = 0;
294
- const toolErrorCategories = {};
295
- let usesTaskAgent = false;
296
- // Additional stats
297
- let linesAdded = 0;
298
- let linesRemoved = 0;
299
- const filesModified = new Set();
300
- const messageHours = [];
301
- const userMessageTimestamps = []; // For multi-clauding detection
302
- let usesMcp = false;
303
- let usesWebSearch = false;
304
- let usesWebFetch = false;
305
- let lastAssistantTimestamp = null;
306
- for (const msg of log.messages) {
307
- // Get message timestamp for response time calculation
308
- const msgTimestamp = msg.timestamp;
309
- if (msg.type === 'assistant' && msg.message) {
310
- // Track timestamp for response time calculation
311
- if (msgTimestamp) {
312
- lastAssistantTimestamp = msgTimestamp;
313
- }
314
- const usage = msg.message.usage;
315
- if (usage) {
316
- inputTokens += usage.input_tokens || 0;
317
- outputTokens += usage.output_tokens || 0;
318
- }
319
- const content = msg.message.content;
320
- if (Array.isArray(content)) {
321
- for (const block of content) {
322
- if (block.type === 'tool_use' && 'name' in block) {
323
- const toolName = block.name;
324
- toolCounts[toolName] = (toolCounts[toolName] || 0) + 1;
325
- // Check for special tool usage
326
- if (toolName === AGENT_TOOL_NAME ||
327
- toolName === LEGACY_AGENT_TOOL_NAME)
328
- usesTaskAgent = true;
329
- if (toolName.startsWith('mcp__'))
330
- usesMcp = true;
331
- if (toolName === 'WebSearch')
332
- usesWebSearch = true;
333
- if (toolName === 'WebFetch')
334
- usesWebFetch = true;
335
- const input = block.input;
336
- if (input) {
337
- const filePath = input.file_path || '';
338
- if (filePath) {
339
- const lang = getLanguageFromPath(filePath);
340
- if (lang) {
341
- languages[lang] = (languages[lang] || 0) + 1;
342
- }
343
- // Track files modified by Edit/Write tools
344
- if (toolName === 'Edit' || toolName === 'Write') {
345
- filesModified.add(filePath);
346
- }
347
- }
348
- if (toolName === 'Edit') {
349
- const oldString = input.old_string || '';
350
- const newString = input.new_string || '';
351
- for (const change of diffLines(oldString, newString)) {
352
- if (change.added)
353
- linesAdded += change.count || 0;
354
- if (change.removed)
355
- linesRemoved += change.count || 0;
356
- }
357
- }
358
- // Track lines from Write tool (all added)
359
- if (toolName === 'Write') {
360
- const writeContent = input.content || '';
361
- if (writeContent) {
362
- linesAdded += countCharInString(writeContent, '\n') + 1;
363
- }
364
- }
365
- const command = input.command || '';
366
- if (command.includes('git commit'))
367
- gitCommits++;
368
- if (command.includes('git push'))
369
- gitPushes++;
370
- }
371
- }
372
- }
373
- }
374
- }
375
- // Check user messages
376
- if (msg.type === 'user' && msg.message) {
377
- const content = msg.message.content;
378
- // Check if this is an actual human message (has text) vs just tool_result
379
- // matching Python reference logic
380
- let isHumanMessage = false;
381
- if (typeof content === 'string' && content.trim()) {
382
- isHumanMessage = true;
383
- }
384
- else if (Array.isArray(content)) {
385
- for (const block of content) {
386
- if (block.type === 'text' && 'text' in block) {
387
- isHumanMessage = true;
388
- break;
389
- }
390
- }
391
- }
392
- // Only track message hours and response times for actual human messages
393
- if (isHumanMessage) {
394
- // Track message hour for time-of-day analysis and timestamp for multi-clauding
395
- if (msgTimestamp) {
396
- try {
397
- const msgDate = new Date(msgTimestamp);
398
- const hour = msgDate.getHours(); // Local hour 0-23
399
- messageHours.push(hour);
400
- // Collect timestamp for multi-clauding detection (matching Python)
401
- userMessageTimestamps.push(msgTimestamp);
402
- }
403
- catch {
404
- // Skip invalid timestamps
405
- }
406
- }
407
- // Calculate response time (time from last assistant message to this user message)
408
- // Only count gaps > 2 seconds (real user think time, not tool results)
409
- if (lastAssistantTimestamp && msgTimestamp) {
410
- const assistantTime = new Date(lastAssistantTimestamp).getTime();
411
- const userTime = new Date(msgTimestamp).getTime();
412
- const responseTimeSec = (userTime - assistantTime) / 1000;
413
- // Only count reasonable response times (2s-1 hour) matching Python
414
- if (responseTimeSec > 2 && responseTimeSec < 3600) {
415
- userResponseTimes.push(responseTimeSec);
416
- }
417
- }
418
- }
419
- // Process tool results (for error tracking)
420
- if (Array.isArray(content)) {
421
- for (const block of content) {
422
- if (block.type === 'tool_result' && 'content' in block) {
423
- const isError = block.is_error;
424
- // Count and categorize tool errors (matching Python reference logic)
425
- if (isError) {
426
- toolErrors++;
427
- const resultContent = block.content;
428
- let category = 'Other';
429
- if (typeof resultContent === 'string') {
430
- const lowerContent = resultContent.toLowerCase();
431
- if (lowerContent.includes('exit code')) {
432
- category = 'Command Failed';
433
- }
434
- else if (lowerContent.includes('rejected') ||
435
- lowerContent.includes("doesn't want")) {
436
- category = 'User Rejected';
437
- }
438
- else if (lowerContent.includes('string to replace not found') ||
439
- lowerContent.includes('no changes')) {
440
- category = 'Edit Failed';
441
- }
442
- else if (lowerContent.includes('modified since read')) {
443
- category = 'File Changed';
444
- }
445
- else if (lowerContent.includes('exceeds maximum') ||
446
- lowerContent.includes('too large')) {
447
- category = 'File Too Large';
448
- }
449
- else if (lowerContent.includes('file not found') ||
450
- lowerContent.includes('does not exist')) {
451
- category = 'File Not Found';
452
- }
453
- }
454
- toolErrorCategories[category] =
455
- (toolErrorCategories[category] || 0) + 1;
456
- }
457
- }
458
- }
459
- }
460
- // Check for interruptions (matching Python reference)
461
- if (typeof content === 'string') {
462
- if (content.includes('[Request interrupted by user')) {
463
- userInterruptions++;
464
- }
465
- }
466
- else if (Array.isArray(content)) {
467
- for (const block of content) {
468
- if (block.type === 'text' &&
469
- 'text' in block &&
470
- block.text.includes('[Request interrupted by user')) {
471
- userInterruptions++;
472
- break;
473
- }
474
- }
475
- }
476
- }
477
- }
478
- return {
479
- toolCounts,
480
- languages,
481
- gitCommits,
482
- gitPushes,
483
- inputTokens,
484
- outputTokens,
485
- // New stats
486
- userInterruptions,
487
- userResponseTimes,
488
- toolErrors,
489
- toolErrorCategories,
490
- usesTaskAgent,
491
- usesMcp,
492
- usesWebSearch,
493
- usesWebFetch,
494
- // Additional stats
495
- linesAdded,
496
- linesRemoved,
497
- filesModified,
498
- messageHours,
499
- userMessageTimestamps,
500
- };
501
- }
502
- function hasValidDates(log) {
503
- return (!Number.isNaN(log.created.getTime()) &&
504
- !Number.isNaN(log.modified.getTime()));
505
- }
506
- function logToSessionMeta(log) {
507
- const stats = extractToolStats(log);
508
- const sessionId = getSessionIdFromLog(log) || 'unknown';
509
- const startTime = log.created.toISOString();
510
- const durationMinutes = Math.round((log.modified.getTime() - log.created.getTime()) / 1000 / 60);
511
- let userMessageCount = 0;
512
- let assistantMessageCount = 0;
513
- for (const msg of log.messages) {
514
- if (msg.type === 'assistant')
515
- assistantMessageCount++;
516
- // Only count user messages that have actual text content (human messages)
517
- // not just tool_result messages (matching Python reference)
518
- if (msg.type === 'user' && msg.message) {
519
- const content = msg.message.content;
520
- let isHumanMessage = false;
521
- if (typeof content === 'string' && content.trim()) {
522
- isHumanMessage = true;
523
- }
524
- else if (Array.isArray(content)) {
525
- for (const block of content) {
526
- if (block.type === 'text' && 'text' in block) {
527
- isHumanMessage = true;
528
- break;
529
- }
530
- }
531
- }
532
- if (isHumanMessage) {
533
- userMessageCount++;
534
- }
535
- }
536
- }
537
- return {
538
- session_id: sessionId,
539
- project_path: log.projectPath || '',
540
- start_time: startTime,
541
- duration_minutes: durationMinutes,
542
- user_message_count: userMessageCount,
543
- assistant_message_count: assistantMessageCount,
544
- tool_counts: stats.toolCounts,
545
- languages: stats.languages,
546
- git_commits: stats.gitCommits,
547
- git_pushes: stats.gitPushes,
548
- input_tokens: stats.inputTokens,
549
- output_tokens: stats.outputTokens,
550
- first_prompt: log.firstPrompt || '',
551
- summary: log.summary,
552
- // New stats
553
- user_interruptions: stats.userInterruptions,
554
- user_response_times: stats.userResponseTimes,
555
- tool_errors: stats.toolErrors,
556
- tool_error_categories: stats.toolErrorCategories,
557
- uses_task_agent: stats.usesTaskAgent,
558
- uses_mcp: stats.usesMcp,
559
- uses_web_search: stats.usesWebSearch,
560
- uses_web_fetch: stats.usesWebFetch,
561
- // Additional stats
562
- lines_added: stats.linesAdded,
563
- lines_removed: stats.linesRemoved,
564
- files_modified: stats.filesModified.size,
565
- message_hours: stats.messageHours,
566
- user_message_timestamps: stats.userMessageTimestamps,
567
- };
568
- }
569
- /**
570
- * Deduplicate conversation branches within the same session.
571
- *
572
- * When a session file has multiple leaf messages (from retries or branching),
573
- * loadAllLogsFromSessionFile produces one LogOption per leaf. Each branch
574
- * shares the same root message, so its duration overlaps with sibling
575
- * branches. This keeps only the branch with the most user messages
576
- * (tie-break by longest duration) per session_id.
577
- */
578
- export function deduplicateSessionBranches(entries) {
579
- const bestBySession = new Map();
580
- for (const entry of entries) {
581
- const id = entry.meta.session_id;
582
- const existing = bestBySession.get(id);
583
- if (!existing ||
584
- entry.meta.user_message_count > existing.meta.user_message_count ||
585
- (entry.meta.user_message_count === existing.meta.user_message_count &&
586
- entry.meta.duration_minutes > existing.meta.duration_minutes)) {
587
- bestBySession.set(id, entry);
588
- }
589
- }
590
- return [...bestBySession.values()];
591
- }
592
- function formatTranscriptForFacets(log) {
593
- const lines = [];
594
- const meta = logToSessionMeta(log);
595
- lines.push(`Session: ${meta.session_id.slice(0, 8)}`);
596
- lines.push(`Date: ${meta.start_time}`);
597
- lines.push(`Project: ${meta.project_path}`);
598
- lines.push(`Duration: ${meta.duration_minutes} min`);
599
- lines.push('');
600
- for (const msg of log.messages) {
601
- if (msg.type === 'user' && msg.message) {
602
- const content = msg.message.content;
603
- if (typeof content === 'string') {
604
- lines.push(`[User]: ${content.slice(0, 500)}`);
605
- }
606
- else if (Array.isArray(content)) {
607
- for (const block of content) {
608
- if (block.type === 'text' && 'text' in block) {
609
- lines.push(`[User]: ${block.text.slice(0, 500)}`);
610
- }
611
- }
612
- }
613
- }
614
- else if (msg.type === 'assistant' && msg.message) {
615
- const content = msg.message.content;
616
- if (Array.isArray(content)) {
617
- for (const block of content) {
618
- if (block.type === 'text' && 'text' in block) {
619
- lines.push(`[Assistant]: ${block.text.slice(0, 300)}`);
620
- }
621
- else if (block.type === 'tool_use' && 'name' in block) {
622
- lines.push(`[Tool: ${block.name}]`);
623
- }
624
- }
625
- }
626
- }
627
- }
628
- return lines.join('\n');
629
- }
630
- const SUMMARIZE_CHUNK_PROMPT = `Summarize this portion of a Context Code session transcript. Focus on:
631
- 1. What the user asked for
632
- 2. What Claude did (tools used, files modified)
633
- 3. Any friction or issues
634
- 4. The outcome
635
-
636
- Keep it concise - 3-5 sentences. Preserve specific details like file names, error messages, and user feedback.
637
-
638
- TRANSCRIPT CHUNK:
639
- `;
640
- async function summarizeTranscriptChunk(chunk) {
641
- try {
642
- const result = await queryWithModel({
643
- systemPrompt: asSystemPrompt([]),
644
- userPrompt: SUMMARIZE_CHUNK_PROMPT + chunk,
645
- signal: new AbortController().signal,
646
- options: {
647
- model: getAnalysisModel(),
648
- querySource: 'insights',
649
- agents: [],
650
- isNonInteractiveSession: true,
651
- hasAppendSystemPrompt: false,
652
- mcpTools: [],
653
- maxOutputTokensOverride: 500,
654
- },
655
- });
656
- const text = extractTextContent(result.message.content);
657
- return text || chunk.slice(0, 2000);
658
- }
659
- catch {
660
- // On error, just return truncated chunk
661
- return chunk.slice(0, 2000);
662
- }
663
- }
664
- async function formatTranscriptWithSummarization(log) {
665
- const fullTranscript = formatTranscriptForFacets(log);
666
- // If under 30k chars, use as-is
667
- if (fullTranscript.length <= 30000) {
668
- return fullTranscript;
669
- }
670
- // For long transcripts, split into chunks and summarize in parallel
671
- const CHUNK_SIZE = 25000;
672
- const chunks = [];
673
- for (let i = 0; i < fullTranscript.length; i += CHUNK_SIZE) {
674
- chunks.push(fullTranscript.slice(i, i + CHUNK_SIZE));
675
- }
676
- // Summarize all chunks in parallel
677
- const summaries = await Promise.all(chunks.map(summarizeTranscriptChunk));
678
- // Combine summaries with session header
679
- const meta = logToSessionMeta(log);
680
- const header = [
681
- `Session: ${meta.session_id.slice(0, 8)}`,
682
- `Date: ${meta.start_time}`,
683
- `Project: ${meta.project_path}`,
684
- `Duration: ${meta.duration_minutes} min`,
685
- `[Long session - ${chunks.length} parts summarized]`,
686
- '',
687
- ].join('\n');
688
- return header + summaries.join('\n\n---\n\n');
689
- }
690
- async function loadCachedFacets(sessionId) {
691
- const facetPath = join(getFacetsDir(), `${sessionId}.json`);
692
- try {
693
- const content = await readFile(facetPath, { encoding: 'utf-8' });
694
- const parsed = jsonParse(content);
695
- if (!isValidSessionFacets(parsed)) {
696
- // Delete corrupted cache file so it gets re-extracted next run
697
- try {
698
- await unlink(facetPath);
699
- }
700
- catch {
701
- // Ignore deletion errors
702
- }
703
- return null;
704
- }
705
- return parsed;
706
- }
707
- catch {
708
- return null;
709
- }
710
- }
711
- async function saveFacets(facets) {
712
- try {
713
- await mkdir(getFacetsDir(), { recursive: true });
714
- }
715
- catch {
716
- // Directory may already exist
717
- }
718
- const facetPath = join(getFacetsDir(), `${facets.session_id}.json`);
719
- await writeFile(facetPath, jsonStringify(facets, null, 2), {
720
- encoding: 'utf-8',
721
- mode: 0o600,
722
- });
723
- }
724
- async function loadCachedSessionMeta(sessionId) {
725
- const metaPath = join(getSessionMetaDir(), `${sessionId}.json`);
726
- try {
727
- const content = await readFile(metaPath, { encoding: 'utf-8' });
728
- return jsonParse(content);
729
- }
730
- catch {
731
- return null;
732
- }
733
- }
734
- async function saveSessionMeta(meta) {
735
- try {
736
- await mkdir(getSessionMetaDir(), { recursive: true });
737
- }
738
- catch {
739
- // Directory may already exist
740
- }
741
- const metaPath = join(getSessionMetaDir(), `${meta.session_id}.json`);
742
- await writeFile(metaPath, jsonStringify(meta, null, 2), {
743
- encoding: 'utf-8',
744
- mode: 0o600,
745
- });
746
- }
747
- async function extractFacetsFromAPI(log, sessionId) {
748
- try {
749
- // Use summarization for long transcripts
750
- const transcript = await formatTranscriptWithSummarization(log);
751
- // Build prompt asking for JSON directly (no tool use)
752
- const jsonPrompt = `${FACET_EXTRACTION_PROMPT}${transcript}
753
-
754
- RESPOND WITH ONLY A VALID JSON OBJECT matching this schema:
755
- {
756
- "underlying_goal": "What the user fundamentally wanted to achieve",
757
- "goal_categories": {"category_name": count, ...},
758
- "outcome": "fully_achieved|mostly_achieved|partially_achieved|not_achieved|unclear_from_transcript",
759
- "user_satisfaction_counts": {"level": count, ...},
760
- "claude_helpfulness": "unhelpful|slightly_helpful|moderately_helpful|very_helpful|essential",
761
- "session_type": "single_task|multi_task|iterative_refinement|exploration|quick_question",
762
- "friction_counts": {"friction_type": count, ...},
763
- "friction_detail": "One sentence describing friction or empty",
764
- "primary_success": "none|fast_accurate_search|correct_code_edits|good_explanations|proactive_help|multi_file_changes|good_debugging",
765
- "brief_summary": "One sentence: what user wanted and whether they got it"
766
- }`;
767
- const result = await queryWithModel({
768
- systemPrompt: asSystemPrompt([]),
769
- userPrompt: jsonPrompt,
770
- signal: new AbortController().signal,
771
- options: {
772
- model: getAnalysisModel(),
773
- querySource: 'insights',
774
- agents: [],
775
- isNonInteractiveSession: true,
776
- hasAppendSystemPrompt: false,
777
- mcpTools: [],
778
- maxOutputTokensOverride: 4096,
779
- },
780
- });
781
- const text = extractTextContent(result.message.content);
782
- // Parse JSON from response
783
- const jsonMatch = text.match(/\{[\s\S]*\}/);
784
- if (!jsonMatch)
785
- return null;
786
- const parsed = jsonParse(jsonMatch[0]);
787
- if (!isValidSessionFacets(parsed))
788
- return null;
789
- const facets = { ...parsed, session_id: sessionId };
790
- return facets;
791
- }
792
- catch (err) {
793
- logError(new Error(`Facet extraction failed: ${toError(err).message}`));
794
- return null;
795
- }
796
- }
797
- /**
798
- * Detects multi-clauding (using multiple Claude sessions concurrently).
799
- * Uses a sliding window to find the pattern: session1 -> session2 -> session1
800
- * within a 30-minute window.
801
- */
802
- export function detectMultiClauding(sessions) {
803
- const OVERLAP_WINDOW_MS = 30 * 60000;
804
- const allSessionMessages = [];
805
- for (const session of sessions) {
806
- for (const timestamp of session.user_message_timestamps) {
807
- try {
808
- const ts = new Date(timestamp).getTime();
809
- allSessionMessages.push({ ts, sessionId: session.session_id });
810
- }
811
- catch {
812
- // Skip invalid timestamps
813
- }
814
- }
815
- }
816
- allSessionMessages.sort((a, b) => a.ts - b.ts);
817
- const multiClaudeSessionPairs = new Set();
818
- const messagesDuringMulticlaude = new Set();
819
- // Sliding window: sessionLastIndex tracks the most recent index for each session
820
- let windowStart = 0;
821
- const sessionLastIndex = new Map();
822
- for (let i = 0; i < allSessionMessages.length; i++) {
823
- const msg = allSessionMessages[i];
824
- // Shrink window from the left
825
- while (windowStart < i &&
826
- msg.ts - allSessionMessages[windowStart].ts > OVERLAP_WINDOW_MS) {
827
- const expiring = allSessionMessages[windowStart];
828
- if (sessionLastIndex.get(expiring.sessionId) === windowStart) {
829
- sessionLastIndex.delete(expiring.sessionId);
830
- }
831
- windowStart++;
832
- }
833
- // Check if this session appeared earlier in the window (pattern: s1 -> s2 -> s1)
834
- const prevIndex = sessionLastIndex.get(msg.sessionId);
835
- if (prevIndex !== undefined) {
836
- for (let j = prevIndex + 1; j < i; j++) {
837
- const between = allSessionMessages[j];
838
- if (between.sessionId !== msg.sessionId) {
839
- const pair = [msg.sessionId, between.sessionId].sort().join(':');
840
- multiClaudeSessionPairs.add(pair);
841
- messagesDuringMulticlaude.add(`${allSessionMessages[prevIndex].ts}:${msg.sessionId}`);
842
- messagesDuringMulticlaude.add(`${between.ts}:${between.sessionId}`);
843
- messagesDuringMulticlaude.add(`${msg.ts}:${msg.sessionId}`);
844
- break;
845
- }
846
- }
847
- }
848
- sessionLastIndex.set(msg.sessionId, i);
849
- }
850
- const sessionsWithOverlaps = new Set();
851
- for (const pair of multiClaudeSessionPairs) {
852
- const [s1, s2] = pair.split(':');
853
- if (s1)
854
- sessionsWithOverlaps.add(s1);
855
- if (s2)
856
- sessionsWithOverlaps.add(s2);
857
- }
858
- return {
859
- overlap_events: multiClaudeSessionPairs.size,
860
- sessions_involved: sessionsWithOverlaps.size,
861
- user_messages_during: messagesDuringMulticlaude.size,
862
- };
863
- }
864
- function aggregateData(sessions, facets) {
865
- const result = {
866
- total_sessions: sessions.length,
867
- sessions_with_facets: facets.size,
868
- date_range: { start: '', end: '' },
869
- total_messages: 0,
870
- total_duration_hours: 0,
871
- total_input_tokens: 0,
872
- total_output_tokens: 0,
873
- tool_counts: {},
874
- languages: {},
875
- git_commits: 0,
876
- git_pushes: 0,
877
- projects: {},
878
- goal_categories: {},
879
- outcomes: {},
880
- satisfaction: {},
881
- helpfulness: {},
882
- session_types: {},
883
- friction: {},
884
- success: {},
885
- session_summaries: [],
886
- // New stats
887
- total_interruptions: 0,
888
- total_tool_errors: 0,
889
- tool_error_categories: {},
890
- user_response_times: [],
891
- median_response_time: 0,
892
- avg_response_time: 0,
893
- sessions_using_task_agent: 0,
894
- sessions_using_mcp: 0,
895
- sessions_using_web_search: 0,
896
- sessions_using_web_fetch: 0,
897
- // Additional stats
898
- total_lines_added: 0,
899
- total_lines_removed: 0,
900
- total_files_modified: 0,
901
- days_active: 0,
902
- messages_per_day: 0,
903
- message_hours: [],
904
- // Multi-clauding stats (matching Python reference)
905
- multi_clauding: {
906
- overlap_events: 0,
907
- sessions_involved: 0,
908
- user_messages_during: 0,
909
- },
910
- };
911
- const dates = [];
912
- const allResponseTimes = [];
913
- const allMessageHours = [];
914
- for (const session of sessions) {
915
- dates.push(session.start_time);
916
- result.total_messages += session.user_message_count;
917
- result.total_duration_hours += session.duration_minutes / 60;
918
- result.total_input_tokens += session.input_tokens;
919
- result.total_output_tokens += session.output_tokens;
920
- result.git_commits += session.git_commits;
921
- result.git_pushes += session.git_pushes;
922
- // New stats aggregation
923
- result.total_interruptions += session.user_interruptions;
924
- result.total_tool_errors += session.tool_errors;
925
- for (const [cat, count] of Object.entries(session.tool_error_categories)) {
926
- result.tool_error_categories[cat] =
927
- (result.tool_error_categories[cat] || 0) + count;
928
- }
929
- allResponseTimes.push(...session.user_response_times);
930
- if (session.uses_task_agent)
931
- result.sessions_using_task_agent++;
932
- if (session.uses_mcp)
933
- result.sessions_using_mcp++;
934
- if (session.uses_web_search)
935
- result.sessions_using_web_search++;
936
- if (session.uses_web_fetch)
937
- result.sessions_using_web_fetch++;
938
- // Additional stats aggregation
939
- result.total_lines_added += session.lines_added;
940
- result.total_lines_removed += session.lines_removed;
941
- result.total_files_modified += session.files_modified;
942
- allMessageHours.push(...session.message_hours);
943
- for (const [tool, count] of Object.entries(session.tool_counts)) {
944
- result.tool_counts[tool] = (result.tool_counts[tool] || 0) + count;
945
- }
946
- for (const [lang, count] of Object.entries(session.languages)) {
947
- result.languages[lang] = (result.languages[lang] || 0) + count;
948
- }
949
- if (session.project_path) {
950
- result.projects[session.project_path] =
951
- (result.projects[session.project_path] || 0) + 1;
952
- }
953
- const sessionFacets = facets.get(session.session_id);
954
- if (sessionFacets) {
955
- // Goal categories
956
- for (const [cat, count] of safeEntries(sessionFacets.goal_categories)) {
957
- if (count > 0) {
958
- result.goal_categories[cat] =
959
- (result.goal_categories[cat] || 0) + count;
960
- }
961
- }
962
- // Outcomes
963
- result.outcomes[sessionFacets.outcome] =
964
- (result.outcomes[sessionFacets.outcome] || 0) + 1;
965
- // Satisfaction counts
966
- for (const [level, count] of safeEntries(sessionFacets.user_satisfaction_counts)) {
967
- if (count > 0) {
968
- result.satisfaction[level] = (result.satisfaction[level] || 0) + count;
969
- }
970
- }
971
- // Helpfulness
972
- result.helpfulness[sessionFacets.claude_helpfulness] =
973
- (result.helpfulness[sessionFacets.claude_helpfulness] || 0) + 1;
974
- // Session types
975
- result.session_types[sessionFacets.session_type] =
976
- (result.session_types[sessionFacets.session_type] || 0) + 1;
977
- // Friction counts
978
- for (const [type, count] of safeEntries(sessionFacets.friction_counts)) {
979
- if (count > 0) {
980
- result.friction[type] = (result.friction[type] || 0) + count;
981
- }
982
- }
983
- // Success factors
984
- if (sessionFacets.primary_success !== 'none') {
985
- result.success[sessionFacets.primary_success] =
986
- (result.success[sessionFacets.primary_success] || 0) + 1;
987
- }
988
- }
989
- if (result.session_summaries.length < 50) {
990
- result.session_summaries.push({
991
- id: session.session_id.slice(0, 8),
992
- date: session.start_time.split('T')[0] || '',
993
- summary: session.summary || session.first_prompt.slice(0, 100),
994
- goal: sessionFacets?.underlying_goal,
995
- });
996
- }
997
- }
998
- dates.sort();
999
- result.date_range.start = dates[0]?.split('T')[0] || '';
1000
- result.date_range.end = dates[dates.length - 1]?.split('T')[0] || '';
1001
- // Calculate response time stats
1002
- result.user_response_times = allResponseTimes;
1003
- if (allResponseTimes.length > 0) {
1004
- const sorted = [...allResponseTimes].sort((a, b) => a - b);
1005
- result.median_response_time = sorted[Math.floor(sorted.length / 2)] || 0;
1006
- result.avg_response_time =
1007
- allResponseTimes.reduce((a, b) => a + b, 0) / allResponseTimes.length;
1008
- }
1009
- // Calculate days active and messages per day
1010
- const uniqueDays = new Set(dates.map(d => d.split('T')[0]));
1011
- result.days_active = uniqueDays.size;
1012
- result.messages_per_day =
1013
- result.days_active > 0
1014
- ? Math.round((result.total_messages / result.days_active) * 10) / 10
1015
- : 0;
1016
- // Store message hours for time-of-day chart
1017
- result.message_hours = allMessageHours;
1018
- result.multi_clauding = detectMultiClauding(sessions);
1019
- return result;
1020
- }
1021
- // Sections that run in parallel first
1022
- const INSIGHT_SECTIONS = [
1023
- {
1024
- name: 'project_areas',
1025
- prompt: `Analyze this Context Code usage data and identify project areas.
1026
-
1027
- RESPOND WITH ONLY A VALID JSON OBJECT:
1028
- {
1029
- "areas": [
1030
- {"name": "Area name", "session_count": N, "description": "2-3 sentences about what was worked on and how Context Code was used."}
1031
- ]
1032
- }
1033
-
1034
- Include 4-5 areas. Skip internal CC operations.`,
1035
- maxTokens: 8192,
1036
- },
1037
- {
1038
- name: 'interaction_style',
1039
- prompt: `Analyze this Context Code usage data and describe the user's interaction style.
1040
-
1041
- RESPOND WITH ONLY A VALID JSON OBJECT:
1042
- {
1043
- "narrative": "2-3 paragraphs analyzing HOW the user interacts with Context Code. Use second person 'you'. Describe patterns: iterate quickly vs detailed upfront specs? Interrupt often or let Claude run? Include specific examples. Use **bold** for key insights.",
1044
- "key_pattern": "One sentence summary of most distinctive interaction style"
1045
- }`,
1046
- maxTokens: 8192,
1047
- },
1048
- {
1049
- name: 'what_works',
1050
- prompt: `Analyze this Context Code usage data and identify what's working well for this user. Use second person ("you").
1051
-
1052
- RESPOND WITH ONLY A VALID JSON OBJECT:
1053
- {
1054
- "intro": "1 sentence of context",
1055
- "impressive_workflows": [
1056
- {"title": "Short title (3-6 words)", "description": "2-3 sentences describing the impressive workflow or approach. Use 'you' not 'the user'."}
1057
- ]
1058
- }
1059
-
1060
- Include 3 impressive workflows.`,
1061
- maxTokens: 8192,
1062
- },
1063
- {
1064
- name: 'friction_analysis',
1065
- prompt: `Analyze this Context Code usage data and identify friction points for this user. Use second person ("you").
1066
-
1067
- RESPOND WITH ONLY A VALID JSON OBJECT:
1068
- {
1069
- "intro": "1 sentence summarizing friction patterns",
1070
- "categories": [
1071
- {"category": "Concrete category name", "description": "1-2 sentences explaining this category and what could be done differently. Use 'you' not 'the user'.", "examples": ["Specific example with consequence", "Another example"]}
1072
- ]
1073
- }
1074
-
1075
- Include 3 friction categories with 2 examples each.`,
1076
- maxTokens: 8192,
1077
- },
1078
- {
1079
- name: 'suggestions',
1080
- prompt: `Analyze this Context Code usage data and suggest improvements.
1081
-
1082
- ## CC FEATURES REFERENCE (pick from these for features_to_try):
1083
- 1. **MCP Servers**: Connect Claude to external tools, databases, and APIs via Model Context Protocol.
1084
- - How to use: Run \`claude mcp add <server-name> -- <command>\`
1085
- - Good for: database queries, Slack integration, GitHub issue lookup, connecting to internal APIs
1086
-
1087
- 2. **Custom Skills**: Reusable prompts you define as markdown files that run with a single /command.
1088
- - How to use: Create \`.claude/skills/commit/SKILL.md\` with instructions. Then type \`/commit\` to run it.
1089
- - Good for: repetitive workflows - /commit, /review, /test, /deploy, /pr, or complex multi-step workflows
1090
-
1091
- 3. **Hooks**: Shell commands that auto-run at specific lifecycle events.
1092
- - How to use: Add to \`.claude/settings.json\` under "hooks" key.
1093
- - Good for: auto-formatting code, running type checks, enforcing conventions
1094
-
1095
- 4. **Headless Mode**: Run Claude non-interactively from scripts and CI/CD.
1096
- - How to use: \`claude -p "fix lint errors" --allowedTools "Edit,Read,Bash"\`
1097
- - Good for: CI/CD integration, batch code fixes, automated reviews
1098
-
1099
- 5. **Task Agents**: Claude spawns focused sub-agents for complex exploration or parallel work.
1100
- - How to use: Claude auto-invokes when helpful, or ask "use an agent to explore X"
1101
- - Good for: codebase exploration, understanding complex systems
1102
-
1103
- RESPOND WITH ONLY A VALID JSON OBJECT:
1104
- {
1105
- "claude_md_additions": [
1106
- {"addition": "A specific line or block to add to CLAUDE.md based on workflow patterns. E.g., 'Always run tests after modifying auth-related files'", "why": "1 sentence explaining why this would help based on actual sessions", "prompt_scaffold": "Instructions for where to add this in CLAUDE.md. E.g., 'Add under ## Testing section'"}
1107
- ],
1108
- "features_to_try": [
1109
- {"feature": "Feature name from CC FEATURES REFERENCE above", "one_liner": "What it does", "why_for_you": "Why this would help YOU based on your sessions", "example_code": "Actual command or config to copy"}
1110
- ],
1111
- "usage_patterns": [
1112
- {"title": "Short title", "suggestion": "1-2 sentence summary", "detail": "3-4 sentences explaining how this applies to YOUR work", "copyable_prompt": "A specific prompt to copy and try"}
1113
- ]
1114
- }
1115
-
1116
- IMPORTANT for claude_md_additions: PRIORITIZE instructions that appear MULTIPLE TIMES in the user data. If user told Claude the same thing in 2+ sessions (e.g., 'always run tests', 'use TypeScript'), that's a PRIME candidate - they shouldn't have to repeat themselves.
1117
-
1118
- IMPORTANT for features_to_try: Pick 2-3 from the CC FEATURES REFERENCE above. Include 2-3 items for each category.`,
1119
- maxTokens: 8192,
1120
- },
1121
- {
1122
- name: 'on_the_horizon',
1123
- prompt: `Analyze this Context Code usage data and identify future opportunities.
1124
-
1125
- RESPOND WITH ONLY A VALID JSON OBJECT:
1126
- {
1127
- "intro": "1 sentence about evolving AI-assisted development",
1128
- "opportunities": [
1129
- {"title": "Short title (4-8 words)", "whats_possible": "2-3 ambitious sentences about autonomous workflows", "how_to_try": "1-2 sentences mentioning relevant tooling", "copyable_prompt": "Detailed prompt to try"}
1130
- ]
1131
- }
1132
-
1133
- Include 3 opportunities. Think BIG - autonomous workflows, parallel agents, iterating against tests.`,
1134
- maxTokens: 8192,
1135
- },
1136
- ...(process.env.USER_TYPE === 'ant'
1137
- ? [
1138
- {
1139
- name: 'cc_team_improvements',
1140
- prompt: `Analyze this Context Code usage data and suggest product improvements for the CC team.
1141
-
1142
- RESPOND WITH ONLY A VALID JSON OBJECT:
1143
- {
1144
- "improvements": [
1145
- {"title": "Product/tooling improvement", "detail": "3-4 sentences describing the improvement", "evidence": "3-4 sentences with specific session examples"}
1146
- ]
1147
- }
1148
-
1149
- Include 2-3 improvements based on friction patterns observed.`,
1150
- maxTokens: 8192,
1151
- },
1152
- {
1153
- name: 'model_behavior_improvements',
1154
- prompt: `Analyze this Context Code usage data and suggest model behavior improvements.
1155
-
1156
- RESPOND WITH ONLY A VALID JSON OBJECT:
1157
- {
1158
- "improvements": [
1159
- {"title": "Model behavior change", "detail": "3-4 sentences describing what the model should do differently", "evidence": "3-4 sentences with specific examples"}
1160
- ]
1161
- }
1162
-
1163
- Include 2-3 improvements based on friction patterns observed.`,
1164
- maxTokens: 8192,
1165
- },
1166
- ]
1167
- : []),
1168
- {
1169
- name: 'fun_ending',
1170
- prompt: `Analyze this Context Code usage data and find a memorable moment.
1171
-
1172
- RESPOND WITH ONLY A VALID JSON OBJECT:
1173
- {
1174
- "headline": "A memorable QUALITATIVE moment from the transcripts - not a statistic. Something human, funny, or surprising.",
1175
- "detail": "Brief context about when/where this happened"
1176
- }
1177
-
1178
- Find something genuinely interesting or amusing from the session summaries.`,
1179
- maxTokens: 8192,
1180
- },
1181
- ];
1182
- async function generateSectionInsight(section, dataContext) {
1183
- try {
1184
- const result = await queryWithModel({
1185
- systemPrompt: asSystemPrompt([]),
1186
- userPrompt: section.prompt + '\n\nDATA:\n' + dataContext,
1187
- signal: new AbortController().signal,
1188
- options: {
1189
- model: getInsightsModel(),
1190
- querySource: 'insights',
1191
- agents: [],
1192
- isNonInteractiveSession: true,
1193
- hasAppendSystemPrompt: false,
1194
- mcpTools: [],
1195
- maxOutputTokensOverride: section.maxTokens,
1196
- },
1197
- });
1198
- const text = extractTextContent(result.message.content);
1199
- if (text) {
1200
- // Parse JSON from response
1201
- const jsonMatch = text.match(/\{[\s\S]*\}/);
1202
- if (jsonMatch) {
1203
- try {
1204
- return { name: section.name, result: jsonParse(jsonMatch[0]) };
1205
- }
1206
- catch {
1207
- return { name: section.name, result: null };
1208
- }
1209
- }
1210
- }
1211
- return { name: section.name, result: null };
1212
- }
1213
- catch (err) {
1214
- logError(new Error(`${section.name} failed: ${toError(err).message}`));
1215
- return { name: section.name, result: null };
1216
- }
1217
- }
1218
- async function generateParallelInsights(data, facets) {
1219
- // Build data context string
1220
- const facetSummaries = Array.from(facets.values())
1221
- .slice(0, 50)
1222
- .map(f => `- ${f.brief_summary} (${f.outcome}, ${f.claude_helpfulness})`)
1223
- .join('\n');
1224
- const frictionDetails = Array.from(facets.values())
1225
- .filter(f => f.friction_detail)
1226
- .slice(0, 20)
1227
- .map(f => `- ${f.friction_detail}`)
1228
- .join('\n');
1229
- const userInstructions = Array.from(facets.values())
1230
- .flatMap(f => f.user_instructions_to_claude || [])
1231
- .slice(0, 15)
1232
- .map(i => `- ${i}`)
1233
- .join('\n');
1234
- const dataContext = jsonStringify({
1235
- sessions: data.total_sessions,
1236
- analyzed: data.sessions_with_facets,
1237
- date_range: data.date_range,
1238
- messages: data.total_messages,
1239
- hours: Math.round(data.total_duration_hours),
1240
- commits: data.git_commits,
1241
- top_tools: Object.entries(data.tool_counts)
1242
- .sort((a, b) => b[1] - a[1])
1243
- .slice(0, 8),
1244
- top_goals: Object.entries(data.goal_categories)
1245
- .sort((a, b) => b[1] - a[1])
1246
- .slice(0, 8),
1247
- outcomes: data.outcomes,
1248
- satisfaction: data.satisfaction,
1249
- friction: data.friction,
1250
- success: data.success,
1251
- languages: data.languages,
1252
- }, null, 2);
1253
- const fullContext = dataContext +
1254
- '\n\nSESSION SUMMARIES:\n' +
1255
- facetSummaries +
1256
- '\n\nFRICTION DETAILS:\n' +
1257
- frictionDetails +
1258
- '\n\nUSER INSTRUCTIONS TO CLAUDE:\n' +
1259
- (userInstructions || 'None captured');
1260
- // Run sections in parallel first (excluding at_a_glance)
1261
- const results = await Promise.all(INSIGHT_SECTIONS.map(section => generateSectionInsight(section, fullContext)));
1262
- // Combine results
1263
- const insights = {};
1264
- for (const { name, result } of results) {
1265
- if (result) {
1266
- ;
1267
- insights[name] = result;
1268
- }
1269
- }
1270
- // Build rich context from generated sections for At a Glance
1271
- const projectAreasText = insights.project_areas?.areas
1272
- ?.map(a => `- ${a.name}: ${a.description}`)
1273
- .join('\n') || '';
1274
- const bigWinsText = insights.what_works?.impressive_workflows
1275
- ?.map(w => `- ${w.title}: ${w.description}`)
1276
- .join('\n') || '';
1277
- const frictionText = insights.friction_analysis?.categories
1278
- ?.map(c => `- ${c.category}: ${c.description}`)
1279
- .join('\n') || '';
1280
- const featuresText = insights.suggestions?.features_to_try
1281
- ?.map(f => `- ${f.feature}: ${f.one_liner}`)
1282
- .join('\n') || '';
1283
- const patternsText = insights.suggestions?.usage_patterns
1284
- ?.map(p => `- ${p.title}: ${p.suggestion}`)
1285
- .join('\n') || '';
1286
- const horizonText = insights.on_the_horizon?.opportunities
1287
- ?.map(o => `- ${o.title}: ${o.whats_possible}`)
1288
- .join('\n') || '';
1289
- // Now generate "At a Glance" with access to other sections' outputs
1290
- const atAGlancePrompt = `You're writing an "At a Glance" summary for a Context Code usage insights report for Context Code users. The goal is to help them understand their usage and improve how they can use Claude better, especially as models improve.
1291
-
1292
- Use this 4-part structure:
1293
-
1294
- 1. **What's working** - What is the user's unique style of interacting with Claude and what are some impactful things they've done? You can include one or two details, but keep it high level since things might not be fresh in the user's memory. Don't be fluffy or overly complimentary. Also, don't focus on the tool calls they use.
1295
-
1296
- 2. **What's hindering you** - Split into (a) Claude's fault (misunderstandings, wrong approaches, bugs) and (b) user-side friction (not providing enough context, environment issues -- ideally more general than just one project). Be honest but constructive.
1297
-
1298
- 3. **Quick wins to try** - Specific Context Code features they could try from the examples below, or a workflow technique if you think it's really compelling. (Avoid stuff like "Ask Claude to confirm before taking actions" or "Type out more context up front" which are less compelling.)
1299
-
1300
- 4. **Ambitious workflows for better models** - As we move to much more capable models over the next 3-6 months, what should they prepare for? What workflows that seem impossible now will become possible? Draw from the appropriate section below.
1301
-
1302
- Keep each section to 2-3 not-too-long sentences. Don't overwhelm the user. Don't mention specific numerical stats or underlined_categories from the session data below. Use a coaching tone.
1303
-
1304
- RESPOND WITH ONLY A VALID JSON OBJECT:
1305
- {
1306
- "whats_working": "(refer to instructions above)",
1307
- "whats_hindering": "(refer to instructions above)",
1308
- "quick_wins": "(refer to instructions above)",
1309
- "ambitious_workflows": "(refer to instructions above)"
1310
- }
1311
-
1312
- SESSION DATA:
1313
- ${fullContext}
1314
-
1315
- ## Project Areas (what user works on)
1316
- ${projectAreasText}
1317
-
1318
- ## Big Wins (impressive accomplishments)
1319
- ${bigWinsText}
1320
-
1321
- ## Friction Categories (where things go wrong)
1322
- ${frictionText}
1323
-
1324
- ## Features to Try
1325
- ${featuresText}
1326
-
1327
- ## Usage Patterns to Adopt
1328
- ${patternsText}
1329
-
1330
- ## On the Horizon (ambitious workflows for better models)
1331
- ${horizonText}`;
1332
- const atAGlanceSection = {
1333
- name: 'at_a_glance',
1334
- prompt: atAGlancePrompt,
1335
- maxTokens: 8192,
1336
- };
1337
- const atAGlanceResult = await generateSectionInsight(atAGlanceSection, '');
1338
- if (atAGlanceResult.result) {
1339
- insights.at_a_glance = atAGlanceResult.result;
1340
- }
1341
- return insights;
1342
- }
1343
- // Escape HTML but render **bold** as <strong>
1344
- function escapeHtmlWithBold(text) {
1345
- const escaped = escapeHtml(text);
1346
- return escaped.replace(/\*\*(.+?)\*\*/g, '<strong>$1</strong>');
1347
- }
1348
- // Fixed orderings for specific charts (matching Python reference)
1349
- const SATISFACTION_ORDER = [
1350
- 'frustrated',
1351
- 'dissatisfied',
1352
- 'likely_satisfied',
1353
- 'satisfied',
1354
- 'happy',
1355
- 'unsure',
1356
- ];
1357
- const OUTCOME_ORDER = [
1358
- 'not_achieved',
1359
- 'partially_achieved',
1360
- 'mostly_achieved',
1361
- 'fully_achieved',
1362
- 'unclear_from_transcript',
1363
- ];
1364
- function generateBarChart(data, color, maxItems = 6, fixedOrder) {
1365
- let entries;
1366
- if (fixedOrder) {
1367
- // Use fixed order, only including items that exist in data
1368
- entries = fixedOrder
1369
- .filter(key => key in data && (data[key] ?? 0) > 0)
1370
- .map(key => [key, data[key] ?? 0]);
1371
- }
1372
- else {
1373
- // Sort by count descending
1374
- entries = Object.entries(data)
1375
- .sort((a, b) => b[1] - a[1])
1376
- .slice(0, maxItems);
1377
- }
1378
- if (entries.length === 0)
1379
- return '<p class="empty">No data</p>';
1380
- const maxVal = Math.max(...entries.map(e => e[1]));
1381
- return entries
1382
- .map(([label, count]) => {
1383
- const pct = (count / maxVal) * 100;
1384
- // Use LABEL_MAP if available, otherwise clean up underscores and title case
1385
- const cleanLabel = LABEL_MAP[label] ||
1386
- label.replace(/_/g, ' ').replace(/\b\w/g, c => c.toUpperCase());
1387
- return `<div class="bar-row">
1388
- <div class="bar-label">${escapeHtml(cleanLabel)}</div>
1389
- <div class="bar-track"><div class="bar-fill" style="width:${pct}%;background:${color}"></div></div>
1390
- <div class="bar-value">${count}</div>
1391
- </div>`;
1392
- })
1393
- .join('\n');
1394
- }
1395
- function generateResponseTimeHistogram(times) {
1396
- if (times.length === 0)
1397
- return '<p class="empty">No response time data</p>';
1398
- // Create buckets (matching Python reference)
1399
- const buckets = {
1400
- '2-10s': 0,
1401
- '10-30s': 0,
1402
- '30s-1m': 0,
1403
- '1-2m': 0,
1404
- '2-5m': 0,
1405
- '5-15m': 0,
1406
- '>15m': 0,
1407
- };
1408
- for (const t of times) {
1409
- if (t < 10)
1410
- buckets['2-10s'] = (buckets['2-10s'] ?? 0) + 1;
1411
- else if (t < 30)
1412
- buckets['10-30s'] = (buckets['10-30s'] ?? 0) + 1;
1413
- else if (t < 60)
1414
- buckets['30s-1m'] = (buckets['30s-1m'] ?? 0) + 1;
1415
- else if (t < 120)
1416
- buckets['1-2m'] = (buckets['1-2m'] ?? 0) + 1;
1417
- else if (t < 300)
1418
- buckets['2-5m'] = (buckets['2-5m'] ?? 0) + 1;
1419
- else if (t < 900)
1420
- buckets['5-15m'] = (buckets['5-15m'] ?? 0) + 1;
1421
- else
1422
- buckets['>15m'] = (buckets['>15m'] ?? 0) + 1;
1423
- }
1424
- const maxVal = Math.max(...Object.values(buckets));
1425
- if (maxVal === 0)
1426
- return '<p class="empty">No response time data</p>';
1427
- return Object.entries(buckets)
1428
- .map(([label, count]) => {
1429
- const pct = (count / maxVal) * 100;
1430
- return `<div class="bar-row">
1431
- <div class="bar-label">${label}</div>
1432
- <div class="bar-track"><div class="bar-fill" style="width:${pct}%;background:#6366f1"></div></div>
1433
- <div class="bar-value">${count}</div>
1434
- </div>`;
1435
- })
1436
- .join('\n');
1437
- }
1438
- function generateTimeOfDayChart(messageHours) {
1439
- if (messageHours.length === 0)
1440
- return '<p class="empty">No time data</p>';
1441
- // Group into time periods
1442
- const periods = [
1443
- { label: 'Morning (6-12)', range: [6, 7, 8, 9, 10, 11] },
1444
- { label: 'Afternoon (12-18)', range: [12, 13, 14, 15, 16, 17] },
1445
- { label: 'Evening (18-24)', range: [18, 19, 20, 21, 22, 23] },
1446
- { label: 'Night (0-6)', range: [0, 1, 2, 3, 4, 5] },
1447
- ];
1448
- const hourCounts = {};
1449
- for (const h of messageHours) {
1450
- hourCounts[h] = (hourCounts[h] || 0) + 1;
1451
- }
1452
- const periodCounts = periods.map(p => ({
1453
- label: p.label,
1454
- count: p.range.reduce((sum, h) => sum + (hourCounts[h] || 0), 0),
1455
- }));
1456
- const maxVal = Math.max(...periodCounts.map(p => p.count)) || 1;
1457
- const barsHtml = periodCounts
1458
- .map(p => `
1459
- <div class="bar-row">
1460
- <div class="bar-label">${p.label}</div>
1461
- <div class="bar-track"><div class="bar-fill" style="width:${(p.count / maxVal) * 100}%;background:#8b5cf6"></div></div>
1462
- <div class="bar-value">${p.count}</div>
1463
- </div>`)
1464
- .join('\n');
1465
- return `<div id="hour-histogram">${barsHtml}</div>`;
1466
- }
1467
- function getHourCountsJson(messageHours) {
1468
- const hourCounts = {};
1469
- for (const h of messageHours) {
1470
- hourCounts[h] = (hourCounts[h] || 0) + 1;
1471
- }
1472
- return jsonStringify(hourCounts);
1473
- }
1474
- function generateHtmlReport(data, insights) {
1475
- const markdownToHtml = (md) => {
1476
- if (!md)
1477
- return '';
1478
- return md
1479
- .split('\n\n')
1480
- .map(p => {
1481
- let html = escapeHtml(p);
1482
- html = html.replace(/\*\*(.+?)\*\*/g, '<strong>$1</strong>');
1483
- html = html.replace(/^- /gm, '• ');
1484
- html = html.replace(/\n/g, '<br>');
1485
- return `<p>${html}</p>`;
1486
- })
1487
- .join('\n');
1488
- };
1489
- // Build At a Glance section (new 4-part format with links to sections)
1490
- const atAGlance = insights.at_a_glance;
1491
- const atAGlanceHtml = atAGlance
1492
- ? `
1493
- <div class="at-a-glance">
1494
- <div class="glance-title">At a Glance</div>
1495
- <div class="glance-sections">
1496
- ${atAGlance.whats_working ? `<div class="glance-section"><strong>What's working:</strong> ${escapeHtmlWithBold(atAGlance.whats_working)} <a href="#section-wins" class="see-more">Impressive Things You Did →</a></div>` : ''}
1497
- ${atAGlance.whats_hindering ? `<div class="glance-section"><strong>What's hindering you:</strong> ${escapeHtmlWithBold(atAGlance.whats_hindering)} <a href="#section-friction" class="see-more">Where Things Go Wrong →</a></div>` : ''}
1498
- ${atAGlance.quick_wins ? `<div class="glance-section"><strong>Quick wins to try:</strong> ${escapeHtmlWithBold(atAGlance.quick_wins)} <a href="#section-features" class="see-more">Features to Try →</a></div>` : ''}
1499
- ${atAGlance.ambitious_workflows ? `<div class="glance-section"><strong>Ambitious workflows:</strong> ${escapeHtmlWithBold(atAGlance.ambitious_workflows)} <a href="#section-horizon" class="see-more">On the Horizon →</a></div>` : ''}
1500
- </div>
1501
- </div>
1502
- `
1503
- : '';
1504
- // Build project areas section
1505
- const projectAreas = insights.project_areas?.areas || [];
1506
- const projectAreasHtml = projectAreas.length > 0
1507
- ? `
1508
- <h2 id="section-work">What You Work On</h2>
1509
- <div class="project-areas">
1510
- ${projectAreas
1511
- .map(area => `
1512
- <div class="project-area">
1513
- <div class="area-header">
1514
- <span class="area-name">${escapeHtml(area.name)}</span>
1515
- <span class="area-count">~${area.session_count} sessions</span>
1516
- </div>
1517
- <div class="area-desc">${escapeHtml(area.description)}</div>
1518
- </div>
1519
- `)
1520
- .join('')}
1521
- </div>
1522
- `
1523
- : '';
1524
- // Build interaction style section
1525
- const interactionStyle = insights.interaction_style;
1526
- const interactionHtml = interactionStyle?.narrative
1527
- ? `
1528
- <h2 id="section-usage">How You Use Context Code</h2>
1529
- <div class="narrative">
1530
- ${markdownToHtml(interactionStyle.narrative)}
1531
- ${interactionStyle.key_pattern ? `<div class="key-insight"><strong>Key pattern:</strong> ${escapeHtml(interactionStyle.key_pattern)}</div>` : ''}
1532
- </div>
1533
- `
1534
- : '';
1535
- // Build what works section
1536
- const whatWorks = insights.what_works;
1537
- const whatWorksHtml = whatWorks?.impressive_workflows && whatWorks.impressive_workflows.length > 0
1538
- ? `
1539
- <h2 id="section-wins">Impressive Things You Did</h2>
1540
- ${whatWorks.intro ? `<p class="section-intro">${escapeHtml(whatWorks.intro)}</p>` : ''}
1541
- <div class="big-wins">
1542
- ${whatWorks.impressive_workflows
1543
- .map(wf => `
1544
- <div class="big-win">
1545
- <div class="big-win-title">${escapeHtml(wf.title || '')}</div>
1546
- <div class="big-win-desc">${escapeHtml(wf.description || '')}</div>
1547
- </div>
1548
- `)
1549
- .join('')}
1550
- </div>
1551
- `
1552
- : '';
1553
- // Build friction section
1554
- const frictionAnalysis = insights.friction_analysis;
1555
- const frictionHtml = frictionAnalysis?.categories && frictionAnalysis.categories.length > 0
1556
- ? `
1557
- <h2 id="section-friction">Where Things Go Wrong</h2>
1558
- ${frictionAnalysis.intro ? `<p class="section-intro">${escapeHtml(frictionAnalysis.intro)}</p>` : ''}
1559
- <div class="friction-categories">
1560
- ${frictionAnalysis.categories
1561
- .map(cat => `
1562
- <div class="friction-category">
1563
- <div class="friction-title">${escapeHtml(cat.category || '')}</div>
1564
- <div class="friction-desc">${escapeHtml(cat.description || '')}</div>
1565
- ${cat.examples ? `<ul class="friction-examples">${cat.examples.map(ex => `<li>${escapeHtml(ex)}</li>`).join('')}</ul>` : ''}
1566
- </div>
1567
- `)
1568
- .join('')}
1569
- </div>
1570
- `
1571
- : '';
1572
- // Build suggestions section
1573
- const suggestions = insights.suggestions;
1574
- const suggestionsHtml = suggestions
1575
- ? `
1576
- ${suggestions.claude_md_additions &&
1577
- suggestions.claude_md_additions.length > 0
1578
- ? `
1579
- <h2 id="section-features">Existing CC Features to Try</h2>
1580
- <div class="claude-md-section">
1581
- <h3>Suggested CLAUDE.md Additions</h3>
1582
- <p style="font-size: 12px; color: #64748b; margin-bottom: 12px;">Just copy this into Context Code to add it to your CLAUDE.md.</p>
1583
- <div class="claude-md-actions">
1584
- <button class="copy-all-btn" onclick="copyAllCheckedClaudeMd()">Copy All Checked</button>
1585
- </div>
1586
- ${suggestions.claude_md_additions
1587
- .map((add, i) => `
1588
- <div class="claude-md-item">
1589
- <input type="checkbox" id="cmd-${i}" class="cmd-checkbox" checked data-text="${escapeHtml(add.prompt_scaffold || add.where || 'Add to CLAUDE.md')}\\n\\n${escapeHtml(add.addition)}">
1590
- <label for="cmd-${i}">
1591
- <code class="cmd-code">${escapeHtml(add.addition)}</code>
1592
- <button class="copy-btn" onclick="copyCmdItem(${i})">Copy</button>
1593
- </label>
1594
- <div class="cmd-why">${escapeHtml(add.why)}</div>
1595
- </div>
1596
- `)
1597
- .join('')}
1598
- </div>
1599
- `
1600
- : ''}
1601
- ${suggestions.features_to_try && suggestions.features_to_try.length > 0
1602
- ? `
1603
- <p style="font-size: 13px; color: #64748b; margin-bottom: 12px;">Just copy this into Context Code and it'll set it up for you.</p>
1604
- <div class="features-section">
1605
- ${suggestions.features_to_try
1606
- .map(feat => `
1607
- <div class="feature-card">
1608
- <div class="feature-title">${escapeHtml(feat.feature || '')}</div>
1609
- <div class="feature-oneliner">${escapeHtml(feat.one_liner || '')}</div>
1610
- <div class="feature-why"><strong>Why for you:</strong> ${escapeHtml(feat.why_for_you || '')}</div>
1611
- ${feat.example_code
1612
- ? `
1613
- <div class="feature-examples">
1614
- <div class="feature-example">
1615
- <div class="example-code-row">
1616
- <code class="example-code">${escapeHtml(feat.example_code)}</code>
1617
- <button class="copy-btn" onclick="copyText(this)">Copy</button>
1618
- </div>
1619
- </div>
1620
- </div>
1621
- `
1622
- : ''}
1623
- </div>
1624
- `)
1625
- .join('')}
1626
- </div>
1627
- `
1628
- : ''}
1629
- ${suggestions.usage_patterns && suggestions.usage_patterns.length > 0
1630
- ? `
1631
- <h2 id="section-patterns">New Ways to Use Context Code</h2>
1632
- <p style="font-size: 13px; color: #64748b; margin-bottom: 12px;">Just copy this into Context Code and it'll walk you through it.</p>
1633
- <div class="patterns-section">
1634
- ${suggestions.usage_patterns
1635
- .map(pat => `
1636
- <div class="pattern-card">
1637
- <div class="pattern-title">${escapeHtml(pat.title || '')}</div>
1638
- <div class="pattern-summary">${escapeHtml(pat.suggestion || '')}</div>
1639
- ${pat.detail ? `<div class="pattern-detail">${escapeHtml(pat.detail)}</div>` : ''}
1640
- ${pat.copyable_prompt
1641
- ? `
1642
- <div class="copyable-prompt-section">
1643
- <div class="prompt-label">Paste into Context Code:</div>
1644
- <div class="copyable-prompt-row">
1645
- <code class="copyable-prompt">${escapeHtml(pat.copyable_prompt)}</code>
1646
- <button class="copy-btn" onclick="copyText(this)">Copy</button>
1647
- </div>
1648
- </div>
1649
- `
1650
- : ''}
1651
- </div>
1652
- `)
1653
- .join('')}
1654
- </div>
1655
- `
1656
- : ''}
1657
- `
1658
- : '';
1659
- // Build On the Horizon section
1660
- const horizonData = insights.on_the_horizon;
1661
- const horizonHtml = horizonData?.opportunities && horizonData.opportunities.length > 0
1662
- ? `
1663
- <h2 id="section-horizon">On the Horizon</h2>
1664
- ${horizonData.intro ? `<p class="section-intro">${escapeHtml(horizonData.intro)}</p>` : ''}
1665
- <div class="horizon-section">
1666
- ${horizonData.opportunities
1667
- .map(opp => `
1668
- <div class="horizon-card">
1669
- <div class="horizon-title">${escapeHtml(opp.title || '')}</div>
1670
- <div class="horizon-possible">${escapeHtml(opp.whats_possible || '')}</div>
1671
- ${opp.how_to_try ? `<div class="horizon-tip"><strong>Getting started:</strong> ${escapeHtml(opp.how_to_try)}</div>` : ''}
1672
- ${opp.copyable_prompt ? `<div class="pattern-prompt"><div class="prompt-label">Paste into Context Code:</div><code>${escapeHtml(opp.copyable_prompt)}</code><button class="copy-btn" onclick="copyText(this)">Copy</button></div>` : ''}
1673
- </div>
1674
- `)
1675
- .join('')}
1676
- </div>
1677
- `
1678
- : '';
1679
- // Build Team Feedback section (collapsible, ant-only)
1680
- const ccImprovements = process.env.USER_TYPE === 'ant'
1681
- ? insights.cc_team_improvements?.improvements || []
1682
- : [];
1683
- const modelImprovements = process.env.USER_TYPE === 'ant'
1684
- ? insights.model_behavior_improvements?.improvements || []
1685
- : [];
1686
- const teamFeedbackHtml = ccImprovements.length > 0 || modelImprovements.length > 0
1687
- ? `
1688
- <h2 id="section-feedback" class="feedback-header">Closing the Loop: Feedback for Other Teams</h2>
1689
- <p class="feedback-intro">Suggestions for the CC product and model teams based on your usage patterns. Click to expand.</p>
1690
- ${ccImprovements.length > 0
1691
- ? `
1692
- <div class="collapsible-section">
1693
- <div class="collapsible-header" onclick="toggleCollapsible(this)">
1694
- <span class="collapsible-arrow">▶</span>
1695
- <h3>Product Improvements for CC Team</h3>
1696
- </div>
1697
- <div class="collapsible-content">
1698
- <div class="suggestions-section">
1699
- ${ccImprovements
1700
- .map(imp => `
1701
- <div class="feedback-card team-card">
1702
- <div class="feedback-title">${escapeHtml(imp.title || '')}</div>
1703
- <div class="feedback-detail">${escapeHtml(imp.detail || '')}</div>
1704
- ${imp.evidence ? `<div class="feedback-evidence"><em>Evidence:</em> ${escapeHtml(imp.evidence)}</div>` : ''}
1705
- </div>
1706
- `)
1707
- .join('')}
1708
- </div>
1709
- </div>
1710
- </div>
1711
- `
1712
- : ''}
1713
- ${modelImprovements.length > 0
1714
- ? `
1715
- <div class="collapsible-section">
1716
- <div class="collapsible-header" onclick="toggleCollapsible(this)">
1717
- <span class="collapsible-arrow">▶</span>
1718
- <h3>Model Behavior Improvements</h3>
1719
- </div>
1720
- <div class="collapsible-content">
1721
- <div class="suggestions-section">
1722
- ${modelImprovements
1723
- .map(imp => `
1724
- <div class="feedback-card model-card">
1725
- <div class="feedback-title">${escapeHtml(imp.title || '')}</div>
1726
- <div class="feedback-detail">${escapeHtml(imp.detail || '')}</div>
1727
- ${imp.evidence ? `<div class="feedback-evidence"><em>Evidence:</em> ${escapeHtml(imp.evidence)}</div>` : ''}
1728
- </div>
1729
- `)
1730
- .join('')}
1731
- </div>
1732
- </div>
1733
- </div>
1734
- `
1735
- : ''}
1736
- `
1737
- : '';
1738
- // Build Fun Ending section
1739
- const funEnding = insights.fun_ending;
1740
- const funEndingHtml = funEnding?.headline
1741
- ? `
1742
- <div class="fun-ending">
1743
- <div class="fun-headline">"${escapeHtml(funEnding.headline)}"</div>
1744
- ${funEnding.detail ? `<div class="fun-detail">${escapeHtml(funEnding.detail)}</div>` : ''}
1745
- </div>
1746
- `
1747
- : '';
1748
- const css = `
1749
- * { box-sizing: border-box; margin: 0; padding: 0; }
1750
- body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; background: #f8fafc; color: #334155; line-height: 1.65; padding: 48px 24px; }
1751
- .container { max-width: 800px; margin: 0 auto; }
1752
- h1 { font-size: 32px; font-weight: 700; color: #0f172a; margin-bottom: 8px; }
1753
- h2 { font-size: 20px; font-weight: 600; color: #0f172a; margin-top: 48px; margin-bottom: 16px; }
1754
- .subtitle { color: #64748b; font-size: 15px; margin-bottom: 32px; }
1755
- .nav-toc { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 32px 0; padding: 16px; background: white; border-radius: 8px; border: 1px solid #e2e8f0; }
1756
- .nav-toc a { font-size: 12px; color: #64748b; text-decoration: none; padding: 6px 12px; border-radius: 6px; background: #f1f5f9; transition: all 0.15s; }
1757
- .nav-toc a:hover { background: #e2e8f0; color: #334155; }
1758
- .stats-row { display: flex; gap: 24px; margin-bottom: 40px; padding: 20px 0; border-top: 1px solid #e2e8f0; border-bottom: 1px solid #e2e8f0; flex-wrap: wrap; }
1759
- .stat { text-align: center; }
1760
- .stat-value { font-size: 24px; font-weight: 700; color: #0f172a; }
1761
- .stat-label { font-size: 11px; color: #64748b; text-transform: uppercase; }
1762
- .at-a-glance { background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); border: 1px solid #f59e0b; border-radius: 12px; padding: 20px 24px; margin-bottom: 32px; }
1763
- .glance-title { font-size: 16px; font-weight: 700; color: #92400e; margin-bottom: 16px; }
1764
- .glance-sections { display: flex; flex-direction: column; gap: 12px; }
1765
- .glance-section { font-size: 14px; color: #78350f; line-height: 1.6; }
1766
- .glance-section strong { color: #92400e; }
1767
- .see-more { color: #b45309; text-decoration: none; font-size: 13px; white-space: nowrap; }
1768
- .see-more:hover { text-decoration: underline; }
1769
- .project-areas { display: flex; flex-direction: column; gap: 12px; margin-bottom: 32px; }
1770
- .project-area { background: white; border: 1px solid #e2e8f0; border-radius: 8px; padding: 16px; }
1771
- .area-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
1772
- .area-name { font-weight: 600; font-size: 15px; color: #0f172a; }
1773
- .area-count { font-size: 12px; color: #64748b; background: #f1f5f9; padding: 2px 8px; border-radius: 4px; }
1774
- .area-desc { font-size: 14px; color: #475569; line-height: 1.5; }
1775
- .narrative { background: white; border: 1px solid #e2e8f0; border-radius: 8px; padding: 20px; margin-bottom: 24px; }
1776
- .narrative p { margin-bottom: 12px; font-size: 14px; color: #475569; line-height: 1.7; }
1777
- .key-insight { background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 8px; padding: 12px 16px; margin-top: 12px; font-size: 14px; color: #166534; }
1778
- .section-intro { font-size: 14px; color: #64748b; margin-bottom: 16px; }
1779
- .big-wins { display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; }
1780
- .big-win { background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 8px; padding: 16px; }
1781
- .big-win-title { font-weight: 600; font-size: 15px; color: #166534; margin-bottom: 8px; }
1782
- .big-win-desc { font-size: 14px; color: #15803d; line-height: 1.5; }
1783
- .friction-categories { display: flex; flex-direction: column; gap: 16px; margin-bottom: 24px; }
1784
- .friction-category { background: #fef2f2; border: 1px solid #fca5a5; border-radius: 8px; padding: 16px; }
1785
- .friction-title { font-weight: 600; font-size: 15px; color: #991b1b; margin-bottom: 6px; }
1786
- .friction-desc { font-size: 13px; color: #7f1d1d; margin-bottom: 10px; }
1787
- .friction-examples { margin: 0 0 0 20px; font-size: 13px; color: #334155; }
1788
- .friction-examples li { margin-bottom: 4px; }
1789
- .claude-md-section { background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px; padding: 16px; margin-bottom: 20px; }
1790
- .claude-md-section h3 { font-size: 14px; font-weight: 600; color: #1e40af; margin: 0 0 12px 0; }
1791
- .claude-md-actions { margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px solid #dbeafe; }
1792
- .copy-all-btn { background: #2563eb; color: white; border: none; border-radius: 4px; padding: 6px 12px; font-size: 12px; cursor: pointer; font-weight: 500; transition: all 0.2s; }
1793
- .copy-all-btn:hover { background: #1d4ed8; }
1794
- .copy-all-btn.copied { background: #16a34a; }
1795
- .claude-md-item { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px; padding: 10px 0; border-bottom: 1px solid #dbeafe; }
1796
- .claude-md-item:last-child { border-bottom: none; }
1797
- .cmd-checkbox { margin-top: 2px; }
1798
- .cmd-code { background: white; padding: 8px 12px; border-radius: 4px; font-size: 12px; color: #1e40af; border: 1px solid #bfdbfe; font-family: monospace; display: block; white-space: pre-wrap; word-break: break-word; flex: 1; }
1799
- .cmd-why { font-size: 12px; color: #64748b; width: 100%; padding-left: 24px; margin-top: 4px; }
1800
- .features-section, .patterns-section { display: flex; flex-direction: column; gap: 12px; margin: 16px 0; }
1801
- .feature-card { background: #f0fdf4; border: 1px solid #86efac; border-radius: 8px; padding: 16px; }
1802
- .pattern-card { background: #f0f9ff; border: 1px solid #7dd3fc; border-radius: 8px; padding: 16px; }
1803
- .feature-title, .pattern-title { font-weight: 600; font-size: 15px; color: #0f172a; margin-bottom: 6px; }
1804
- .feature-oneliner { font-size: 14px; color: #475569; margin-bottom: 8px; }
1805
- .pattern-summary { font-size: 14px; color: #475569; margin-bottom: 8px; }
1806
- .feature-why, .pattern-detail { font-size: 13px; color: #334155; line-height: 1.5; }
1807
- .feature-examples { margin-top: 12px; }
1808
- .feature-example { padding: 8px 0; border-top: 1px solid #d1fae5; }
1809
- .feature-example:first-child { border-top: none; }
1810
- .example-desc { font-size: 13px; color: #334155; margin-bottom: 6px; }
1811
- .example-code-row { display: flex; align-items: flex-start; gap: 8px; }
1812
- .example-code { flex: 1; background: #f1f5f9; padding: 8px 12px; border-radius: 4px; font-family: monospace; font-size: 12px; color: #334155; overflow-x: auto; white-space: pre-wrap; }
1813
- .copyable-prompt-section { margin-top: 12px; padding-top: 12px; border-top: 1px solid #e2e8f0; }
1814
- .copyable-prompt-row { display: flex; align-items: flex-start; gap: 8px; }
1815
- .copyable-prompt { flex: 1; background: #f8fafc; padding: 10px 12px; border-radius: 4px; font-family: monospace; font-size: 12px; color: #334155; border: 1px solid #e2e8f0; white-space: pre-wrap; line-height: 1.5; }
1816
- .feature-code { background: #f8fafc; padding: 12px; border-radius: 6px; margin-top: 12px; border: 1px solid #e2e8f0; display: flex; align-items: flex-start; gap: 8px; }
1817
- .feature-code code { flex: 1; font-family: monospace; font-size: 12px; color: #334155; white-space: pre-wrap; }
1818
- .pattern-prompt { background: #f8fafc; padding: 12px; border-radius: 6px; margin-top: 12px; border: 1px solid #e2e8f0; }
1819
- .pattern-prompt code { font-family: monospace; font-size: 12px; color: #334155; display: block; white-space: pre-wrap; margin-bottom: 8px; }
1820
- .prompt-label { font-size: 11px; font-weight: 600; text-transform: uppercase; color: #64748b; margin-bottom: 6px; }
1821
- .copy-btn { background: #e2e8f0; border: none; border-radius: 4px; padding: 4px 8px; font-size: 11px; cursor: pointer; color: #475569; flex-shrink: 0; }
1822
- .copy-btn:hover { background: #cbd5e1; }
1823
- .charts-row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 24px 0; }
1824
- .chart-card { background: white; border: 1px solid #e2e8f0; border-radius: 8px; padding: 16px; }
1825
- .chart-title { font-size: 12px; font-weight: 600; color: #64748b; text-transform: uppercase; margin-bottom: 12px; }
1826
- .bar-row { display: flex; align-items: center; margin-bottom: 6px; }
1827
- .bar-label { width: 100px; font-size: 11px; color: #475569; flex-shrink: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1828
- .bar-track { flex: 1; height: 6px; background: #f1f5f9; border-radius: 3px; margin: 0 8px; }
1829
- .bar-fill { height: 100%; border-radius: 3px; }
1830
- .bar-value { width: 28px; font-size: 11px; font-weight: 500; color: #64748b; text-align: right; }
1831
- .empty { color: #94a3b8; font-size: 13px; }
1832
- .horizon-section { display: flex; flex-direction: column; gap: 16px; }
1833
- .horizon-card { background: linear-gradient(135deg, #faf5ff 0%, #f5f3ff 100%); border: 1px solid #c4b5fd; border-radius: 8px; padding: 16px; }
1834
- .horizon-title { font-weight: 600; font-size: 15px; color: #5b21b6; margin-bottom: 8px; }
1835
- .horizon-possible { font-size: 14px; color: #334155; margin-bottom: 10px; line-height: 1.5; }
1836
- .horizon-tip { font-size: 13px; color: #6b21a8; background: rgba(255,255,255,0.6); padding: 8px 12px; border-radius: 4px; }
1837
- .feedback-header { margin-top: 48px; color: #64748b; font-size: 16px; }
1838
- .feedback-intro { font-size: 13px; color: #94a3b8; margin-bottom: 16px; }
1839
- .feedback-section { margin-top: 16px; }
1840
- .feedback-section h3 { font-size: 14px; font-weight: 600; color: #475569; margin-bottom: 12px; }
1841
- .feedback-card { background: white; border: 1px solid #e2e8f0; border-radius: 8px; padding: 16px; margin-bottom: 12px; }
1842
- .feedback-card.team-card { background: #eff6ff; border-color: #bfdbfe; }
1843
- .feedback-card.model-card { background: #faf5ff; border-color: #e9d5ff; }
1844
- .feedback-title { font-weight: 600; font-size: 14px; color: #0f172a; margin-bottom: 6px; }
1845
- .feedback-detail { font-size: 13px; color: #475569; line-height: 1.5; }
1846
- .feedback-evidence { font-size: 12px; color: #64748b; margin-top: 8px; }
1847
- .fun-ending { background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); border: 1px solid #fbbf24; border-radius: 12px; padding: 24px; margin-top: 40px; text-align: center; }
1848
- .fun-headline { font-size: 18px; font-weight: 600; color: #78350f; margin-bottom: 8px; }
1849
- .fun-detail { font-size: 14px; color: #92400e; }
1850
- .collapsible-section { margin-top: 16px; }
1851
- .collapsible-header { display: flex; align-items: center; gap: 8px; cursor: pointer; padding: 12px 0; border-bottom: 1px solid #e2e8f0; }
1852
- .collapsible-header h3 { margin: 0; font-size: 14px; font-weight: 600; color: #475569; }
1853
- .collapsible-arrow { font-size: 12px; color: #94a3b8; transition: transform 0.2s; }
1854
- .collapsible-content { display: none; padding-top: 16px; }
1855
- .collapsible-content.open { display: block; }
1856
- .collapsible-header.open .collapsible-arrow { transform: rotate(90deg); }
1857
- @media (max-width: 640px) { .charts-row { grid-template-columns: 1fr; } .stats-row { justify-content: center; } }
1858
- `;
1859
- const hourCountsJson = getHourCountsJson(data.message_hours);
1860
- const js = `
1861
- function toggleCollapsible(header) {
1862
- header.classList.toggle('open');
1863
- const content = header.nextElementSibling;
1864
- content.classList.toggle('open');
1865
- }
1866
- function copyText(btn) {
1867
- const code = btn.previousElementSibling;
1868
- navigator.clipboard.writeText(code.textContent).then(() => {
1869
- btn.textContent = 'Copied!';
1870
- setTimeout(() => { btn.textContent = 'Copy'; }, 2000);
1871
- });
1872
- }
1873
- function copyCmdItem(idx) {
1874
- const checkbox = document.getElementById('cmd-' + idx);
1875
- if (checkbox) {
1876
- const text = checkbox.dataset.text;
1877
- navigator.clipboard.writeText(text).then(() => {
1878
- const btn = checkbox.nextElementSibling.querySelector('.copy-btn');
1879
- if (btn) { btn.textContent = 'Copied!'; setTimeout(() => { btn.textContent = 'Copy'; }, 2000); }
1880
- });
1881
- }
1882
- }
1883
- function copyAllCheckedClaudeMd() {
1884
- const checkboxes = document.querySelectorAll('.cmd-checkbox:checked');
1885
- const texts = [];
1886
- checkboxes.forEach(cb => {
1887
- if (cb.dataset.text) { texts.push(cb.dataset.text); }
1888
- });
1889
- const combined = texts.join('\\n');
1890
- const btn = document.querySelector('.copy-all-btn');
1891
- if (btn) {
1892
- navigator.clipboard.writeText(combined).then(() => {
1893
- btn.textContent = 'Copied ' + texts.length + ' items!';
1894
- btn.classList.add('copied');
1895
- setTimeout(() => { btn.textContent = 'Copy All Checked'; btn.classList.remove('copied'); }, 2000);
1896
- });
1897
- }
1898
- }
1899
- // Timezone selector for time of day chart (data is from our own analytics, not user input)
1900
- const rawHourCounts = ${hourCountsJson};
1901
- function updateHourHistogram(offsetFromPT) {
1902
- const periods = [
1903
- { label: "Morning (6-12)", range: [6,7,8,9,10,11] },
1904
- { label: "Afternoon (12-18)", range: [12,13,14,15,16,17] },
1905
- { label: "Evening (18-24)", range: [18,19,20,21,22,23] },
1906
- { label: "Night (0-6)", range: [0,1,2,3,4,5] }
1907
- ];
1908
- const adjustedCounts = {};
1909
- for (const [hour, count] of Object.entries(rawHourCounts)) {
1910
- const newHour = (parseInt(hour) + offsetFromPT + 24) % 24;
1911
- adjustedCounts[newHour] = (adjustedCounts[newHour] || 0) + count;
1912
- }
1913
- const periodCounts = periods.map(p => ({
1914
- label: p.label,
1915
- count: p.range.reduce((sum, h) => sum + (adjustedCounts[h] || 0), 0)
1916
- }));
1917
- const maxCount = Math.max(...periodCounts.map(p => p.count)) || 1;
1918
- const container = document.getElementById('hour-histogram');
1919
- container.textContent = '';
1920
- periodCounts.forEach(p => {
1921
- const row = document.createElement('div');
1922
- row.className = 'bar-row';
1923
- const label = document.createElement('div');
1924
- label.className = 'bar-label';
1925
- label.textContent = p.label;
1926
- const track = document.createElement('div');
1927
- track.className = 'bar-track';
1928
- const fill = document.createElement('div');
1929
- fill.className = 'bar-fill';
1930
- fill.style.width = (p.count / maxCount) * 100 + '%';
1931
- fill.style.background = '#8b5cf6';
1932
- track.appendChild(fill);
1933
- const value = document.createElement('div');
1934
- value.className = 'bar-value';
1935
- value.textContent = p.count;
1936
- row.appendChild(label);
1937
- row.appendChild(track);
1938
- row.appendChild(value);
1939
- container.appendChild(row);
1940
- });
1941
- }
1942
- document.getElementById('timezone-select').addEventListener('change', function() {
1943
- const customInput = document.getElementById('custom-offset');
1944
- if (this.value === 'custom') {
1945
- customInput.style.display = 'inline-block';
1946
- customInput.focus();
1947
- } else {
1948
- customInput.style.display = 'none';
1949
- updateHourHistogram(parseInt(this.value));
1950
- }
1951
- });
1952
- document.getElementById('custom-offset').addEventListener('change', function() {
1953
- const offset = parseInt(this.value) + 8;
1954
- updateHourHistogram(offset);
1955
- });
1956
- `;
1957
- return `<!DOCTYPE html>
1958
- <html>
1959
- <head>
1960
- <meta charset="utf-8">
1961
- <title>Context Code Insights</title>
1962
- <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
1963
- <style>${css}</style>
1964
- </head>
1965
- <body>
1966
- <div class="container">
1967
- <h1>Context Code Insights</h1>
1968
- <p class="subtitle">${data.total_messages.toLocaleString()} messages across ${data.total_sessions} sessions${data.total_sessions_scanned && data.total_sessions_scanned > data.total_sessions ? ` (${data.total_sessions_scanned.toLocaleString()} total)` : ''} | ${data.date_range.start} to ${data.date_range.end}</p>
1969
-
1970
- ${atAGlanceHtml}
1971
-
1972
- <nav class="nav-toc">
1973
- <a href="#section-work">What You Work On</a>
1974
- <a href="#section-usage">How You Use CC</a>
1975
- <a href="#section-wins">Impressive Things</a>
1976
- <a href="#section-friction">Where Things Go Wrong</a>
1977
- <a href="#section-features">Features to Try</a>
1978
- <a href="#section-patterns">New Usage Patterns</a>
1979
- <a href="#section-horizon">On the Horizon</a>
1980
- <a href="#section-feedback">Team Feedback</a>
1981
- </nav>
1982
-
1983
- <div class="stats-row">
1984
- <div class="stat"><div class="stat-value">${data.total_messages.toLocaleString()}</div><div class="stat-label">Messages</div></div>
1985
- <div class="stat"><div class="stat-value">+${data.total_lines_added.toLocaleString()}/-${data.total_lines_removed.toLocaleString()}</div><div class="stat-label">Lines</div></div>
1986
- <div class="stat"><div class="stat-value">${data.total_files_modified}</div><div class="stat-label">Files</div></div>
1987
- <div class="stat"><div class="stat-value">${data.days_active}</div><div class="stat-label">Days</div></div>
1988
- <div class="stat"><div class="stat-value">${data.messages_per_day}</div><div class="stat-label">Msgs/Day</div></div>
1989
- </div>
1990
-
1991
- ${projectAreasHtml}
1992
-
1993
- <div class="charts-row">
1994
- <div class="chart-card">
1995
- <div class="chart-title">What You Wanted</div>
1996
- ${generateBarChart(data.goal_categories, '#2563eb')}
1997
- </div>
1998
- <div class="chart-card">
1999
- <div class="chart-title">Top Tools Used</div>
2000
- ${generateBarChart(data.tool_counts, '#0891b2')}
2001
- </div>
2002
- </div>
2003
-
2004
- <div class="charts-row">
2005
- <div class="chart-card">
2006
- <div class="chart-title">Languages</div>
2007
- ${generateBarChart(data.languages, '#10b981')}
2008
- </div>
2009
- <div class="chart-card">
2010
- <div class="chart-title">Session Types</div>
2011
- ${generateBarChart(data.session_types || {}, '#8b5cf6')}
2012
- </div>
2013
- </div>
2014
-
2015
- ${interactionHtml}
2016
-
2017
- <!-- Response Time Distribution -->
2018
- <div class="chart-card" style="margin: 24px 0;">
2019
- <div class="chart-title">User Response Time Distribution</div>
2020
- ${generateResponseTimeHistogram(data.user_response_times)}
2021
- <div style="font-size: 12px; color: #64748b; margin-top: 8px;">
2022
- Median: ${data.median_response_time.toFixed(1)}s &bull; Average: ${data.avg_response_time.toFixed(1)}s
2023
- </div>
2024
- </div>
2025
-
2026
- <!-- Multi-clauding Section (matching Python reference) -->
2027
- <div class="chart-card" style="margin: 24px 0;">
2028
- <div class="chart-title">Multi-Clauding (Parallel Sessions)</div>
2029
- ${data.multi_clauding.overlap_events === 0
2030
- ? `
2031
- <p style="font-size: 14px; color: #64748b; padding: 8px 0;">
2032
- No parallel session usage detected. You typically work with one Context Code session at a time.
2033
- </p>
2034
- `
2035
- : `
2036
- <div style="display: flex; gap: 24px; margin: 12px 0;">
2037
- <div style="text-align: center;">
2038
- <div style="font-size: 24px; font-weight: 700; color: #7c3aed;">${data.multi_clauding.overlap_events}</div>
2039
- <div style="font-size: 11px; color: #64748b; text-transform: uppercase;">Overlap Events</div>
2040
- </div>
2041
- <div style="text-align: center;">
2042
- <div style="font-size: 24px; font-weight: 700; color: #7c3aed;">${data.multi_clauding.sessions_involved}</div>
2043
- <div style="font-size: 11px; color: #64748b; text-transform: uppercase;">Sessions Involved</div>
2044
- </div>
2045
- <div style="text-align: center;">
2046
- <div style="font-size: 24px; font-weight: 700; color: #7c3aed;">${data.total_messages > 0 ? Math.round((100 * data.multi_clauding.user_messages_during) / data.total_messages) : 0}%</div>
2047
- <div style="font-size: 11px; color: #64748b; text-transform: uppercase;">Of Messages</div>
2048
- </div>
2049
- </div>
2050
- <p style="font-size: 13px; color: #475569; margin-top: 12px;">
2051
- You run multiple Context Code sessions simultaneously. Multi-clauding is detected when sessions
2052
- overlap in time, suggesting parallel workflows.
2053
- </p>
2054
- `}
2055
- </div>
2056
-
2057
- <!-- Time of Day & Tool Errors -->
2058
- <div class="charts-row">
2059
- <div class="chart-card">
2060
- <div class="chart-title" style="display: flex; align-items: center; gap: 12px;">
2061
- User Messages by Time of Day
2062
- <select id="timezone-select" style="font-size: 12px; padding: 4px 8px; border-radius: 4px; border: 1px solid #e2e8f0;">
2063
- <option value="0">PT (UTC-8)</option>
2064
- <option value="3">ET (UTC-5)</option>
2065
- <option value="8">London (UTC)</option>
2066
- <option value="9">CET (UTC+1)</option>
2067
- <option value="17">Tokyo (UTC+9)</option>
2068
- <option value="custom">Custom offset...</option>
2069
- </select>
2070
- <input type="number" id="custom-offset" placeholder="UTC offset" style="display: none; width: 80px; font-size: 12px; padding: 4px; border-radius: 4px; border: 1px solid #e2e8f0;">
2071
- </div>
2072
- ${generateTimeOfDayChart(data.message_hours)}
2073
- </div>
2074
- <div class="chart-card">
2075
- <div class="chart-title">Tool Errors Encountered</div>
2076
- ${Object.keys(data.tool_error_categories).length > 0 ? generateBarChart(data.tool_error_categories, '#dc2626') : '<p class="empty">No tool errors</p>'}
2077
- </div>
2078
- </div>
2079
-
2080
- ${whatWorksHtml}
2081
-
2082
- <div class="charts-row">
2083
- <div class="chart-card">
2084
- <div class="chart-title">What Helped Most (Claude's Capabilities)</div>
2085
- ${generateBarChart(data.success, '#16a34a')}
2086
- </div>
2087
- <div class="chart-card">
2088
- <div class="chart-title">Outcomes</div>
2089
- ${generateBarChart(data.outcomes, '#8b5cf6', 6, OUTCOME_ORDER)}
2090
- </div>
2091
- </div>
2092
-
2093
- ${frictionHtml}
2094
-
2095
- <div class="charts-row">
2096
- <div class="chart-card">
2097
- <div class="chart-title">Primary Friction Types</div>
2098
- ${generateBarChart(data.friction, '#dc2626')}
2099
- </div>
2100
- <div class="chart-card">
2101
- <div class="chart-title">Inferred Satisfaction (model-estimated)</div>
2102
- ${generateBarChart(data.satisfaction, '#eab308', 6, SATISFACTION_ORDER)}
2103
- </div>
2104
- </div>
2105
-
2106
- ${suggestionsHtml}
2107
-
2108
- ${horizonHtml}
2109
-
2110
- ${funEndingHtml}
2111
-
2112
- ${teamFeedbackHtml}
2113
- </div>
2114
- <script>${js}</script>
2115
- </body>
2116
- </html>`;
2117
- }
2118
- /**
2119
- * Build export data from already-computed values.
2120
- * Used by background upload to S3.
2121
- */
2122
- export function buildExportData(data, insights, facets, remoteStats) {
2123
- const version = typeof MACRO !== 'undefined' ? MACRO.VERSION : 'unknown';
2124
- const remote_hosts_collected = remoteStats?.hosts
2125
- .filter(h => h.sessionCount > 0)
2126
- .map(h => h.name);
2127
- const facets_summary = {
2128
- total: facets.size,
2129
- goal_categories: {},
2130
- outcomes: {},
2131
- satisfaction: {},
2132
- friction: {},
2133
- };
2134
- for (const f of facets.values()) {
2135
- for (const [cat, count] of safeEntries(f.goal_categories)) {
2136
- if (count > 0) {
2137
- facets_summary.goal_categories[cat] =
2138
- (facets_summary.goal_categories[cat] || 0) + count;
2139
- }
2140
- }
2141
- facets_summary.outcomes[f.outcome] =
2142
- (facets_summary.outcomes[f.outcome] || 0) + 1;
2143
- for (const [level, count] of safeEntries(f.user_satisfaction_counts)) {
2144
- if (count > 0) {
2145
- facets_summary.satisfaction[level] =
2146
- (facets_summary.satisfaction[level] || 0) + count;
2147
- }
2148
- }
2149
- for (const [type, count] of safeEntries(f.friction_counts)) {
2150
- if (count > 0) {
2151
- facets_summary.friction[type] =
2152
- (facets_summary.friction[type] || 0) + count;
2153
- }
2154
- }
2155
- }
2156
- return {
2157
- metadata: {
2158
- username: process.env.SAFEUSER || process.env.USER || 'unknown',
2159
- generated_at: new Date().toISOString(),
2160
- claude_code_version: version,
2161
- date_range: data.date_range,
2162
- session_count: data.total_sessions,
2163
- ...(remote_hosts_collected &&
2164
- remote_hosts_collected.length > 0 && {
2165
- remote_hosts_collected,
2166
- }),
2167
- },
2168
- aggregated_data: data,
2169
- insights,
2170
- facets_summary,
2171
- };
2172
- }
2173
- /**
2174
- * Scans all project directories using filesystem metadata only (no JSONL parsing).
2175
- * Returns a list of session file info sorted by mtime descending.
2176
- * Yields to the event loop between project directories to keep the UI responsive.
2177
- */
2178
- async function scanAllSessions() {
2179
- const projectsDir = getProjectsDir();
2180
- let dirents;
2181
- try {
2182
- dirents = await readdir(projectsDir, { withFileTypes: true });
2183
- }
2184
- catch {
2185
- return [];
2186
- }
2187
- const projectDirs = dirents
2188
- .filter(dirent => dirent.isDirectory())
2189
- .map(dirent => join(projectsDir, dirent.name));
2190
- const allSessions = [];
2191
- for (let i = 0; i < projectDirs.length; i++) {
2192
- const sessionFiles = await getSessionFilesWithMtime(projectDirs[i]);
2193
- for (const [sessionId, fileInfo] of sessionFiles) {
2194
- allSessions.push({
2195
- sessionId,
2196
- path: fileInfo.path,
2197
- mtime: fileInfo.mtime,
2198
- size: fileInfo.size,
2199
- });
2200
- }
2201
- // Yield to event loop every 10 project directories
2202
- if (i % 10 === 9) {
2203
- await new Promise(resolve => setImmediate(resolve));
2204
- }
2205
- }
2206
- // Sort by mtime descending (most recent first)
2207
- allSessions.sort((a, b) => b.mtime - a.mtime);
2208
- return allSessions;
2209
- }
2210
- // ============================================================================
2211
- // Main Function
2212
- // ============================================================================
2213
- export async function generateUsageReport(options) {
2214
- let remoteStats;
2215
- // Optionally collect data from remote hosts first (ant-only)
2216
- if (process.env.USER_TYPE === 'ant' && options?.collectRemote) {
2217
- const destDir = join(getClaudeConfigHomeDir(), 'projects');
2218
- const { hosts, totalCopied } = await collectAllRemoteHostData(destDir);
2219
- remoteStats = { hosts, totalCopied };
2220
- }
2221
- // Phase 1: Lite scan — filesystem metadata only (no JSONL parsing)
2222
- const allScannedSessions = await scanAllSessions();
2223
- const totalSessionsScanned = allScannedSessions.length;
2224
- // Phase 2: Load SessionMeta — use cache where available, parse only uncached
2225
- // Read cached metas in parallel batches to avoid blocking the event loop
2226
- const META_BATCH_SIZE = 50;
2227
- const MAX_SESSIONS_TO_LOAD = 200;
2228
- let allMetas = [];
2229
- const uncachedSessions = [];
2230
- for (let i = 0; i < allScannedSessions.length; i += META_BATCH_SIZE) {
2231
- const batch = allScannedSessions.slice(i, i + META_BATCH_SIZE);
2232
- const results = await Promise.all(batch.map(async (sessionInfo) => ({
2233
- sessionInfo,
2234
- cached: await loadCachedSessionMeta(sessionInfo.sessionId),
2235
- })));
2236
- for (const { sessionInfo, cached } of results) {
2237
- if (cached) {
2238
- allMetas.push(cached);
2239
- }
2240
- else if (uncachedSessions.length < MAX_SESSIONS_TO_LOAD) {
2241
- uncachedSessions.push(sessionInfo);
2242
- }
2243
- }
2244
- }
2245
- // Load full message data only for uncached sessions and compute SessionMeta
2246
- const logsForFacets = new Map();
2247
- // Filter out /insights meta-sessions (facet extraction API calls get logged as sessions)
2248
- const isMetaSession = (log) => {
2249
- for (const msg of log.messages.slice(0, 5)) {
2250
- if (msg.type === 'user' && msg.message) {
2251
- const content = msg.message.content;
2252
- if (typeof content === 'string') {
2253
- if (content.includes('RESPOND WITH ONLY A VALID JSON OBJECT') ||
2254
- content.includes('record_facets')) {
2255
- return true;
2256
- }
2257
- }
2258
- }
2259
- }
2260
- return false;
2261
- };
2262
- // Load uncached sessions in batches to yield to event loop between batches
2263
- const LOAD_BATCH_SIZE = 10;
2264
- for (let i = 0; i < uncachedSessions.length; i += LOAD_BATCH_SIZE) {
2265
- const batch = uncachedSessions.slice(i, i + LOAD_BATCH_SIZE);
2266
- const batchResults = await Promise.all(batch.map(async (sessionInfo) => {
2267
- try {
2268
- return await loadAllLogsFromSessionFile(sessionInfo.path);
2269
- }
2270
- catch {
2271
- return [];
2272
- }
2273
- }));
2274
- // Collect metas synchronously, then save them in parallel (independent writes)
2275
- const metasToSave = [];
2276
- for (const logs of batchResults) {
2277
- for (const log of logs) {
2278
- if (isMetaSession(log) || !hasValidDates(log))
2279
- continue;
2280
- const meta = logToSessionMeta(log);
2281
- allMetas.push(meta);
2282
- metasToSave.push(meta);
2283
- // Keep the log around for potential facet extraction
2284
- logsForFacets.set(meta.session_id, log);
2285
- }
2286
- }
2287
- await Promise.all(metasToSave.map(meta => saveSessionMeta(meta)));
2288
- }
2289
- // Deduplicate session branches (keep the one with most user messages per session_id)
2290
- // This prevents inflated totals when a session has multiple conversation branches
2291
- const bestBySession = new Map();
2292
- for (const meta of allMetas) {
2293
- const existing = bestBySession.get(meta.session_id);
2294
- if (!existing ||
2295
- meta.user_message_count > existing.user_message_count ||
2296
- (meta.user_message_count === existing.user_message_count &&
2297
- meta.duration_minutes > existing.duration_minutes)) {
2298
- bestBySession.set(meta.session_id, meta);
2299
- }
2300
- }
2301
- // Replace allMetas with deduplicated list and remove unused logs from logsForFacets
2302
- const keptSessionIds = new Set(bestBySession.keys());
2303
- allMetas = [...bestBySession.values()];
2304
- for (const sessionId of logsForFacets.keys()) {
2305
- if (!keptSessionIds.has(sessionId)) {
2306
- logsForFacets.delete(sessionId);
2307
- }
2308
- }
2309
- // Sort all metas by start_time descending (most recent first)
2310
- allMetas.sort((a, b) => b.start_time.localeCompare(a.start_time));
2311
- // Pre-filter obviously minimal sessions to save API calls
2312
- // (matching Python's substantive filtering concept)
2313
- const isSubstantiveSession = (meta) => {
2314
- // Skip sessions with very few user messages
2315
- if (meta.user_message_count < 2)
2316
- return false;
2317
- // Skip very short sessions (< 1 minute)
2318
- if (meta.duration_minutes < 1)
2319
- return false;
2320
- return true;
2321
- };
2322
- const substantiveMetas = allMetas.filter(isSubstantiveSession);
2323
- // Phase 3: Facet extraction — only for sessions without cached facets
2324
- const facets = new Map();
2325
- const toExtract = [];
2326
- const MAX_FACET_EXTRACTIONS = 50;
2327
- // Load cached facets for all substantive sessions in parallel
2328
- const cachedFacetResults = await Promise.all(substantiveMetas.map(async (meta) => ({
2329
- sessionId: meta.session_id,
2330
- cached: await loadCachedFacets(meta.session_id),
2331
- })));
2332
- for (const { sessionId, cached } of cachedFacetResults) {
2333
- if (cached) {
2334
- facets.set(sessionId, cached);
2335
- }
2336
- else {
2337
- const log = logsForFacets.get(sessionId);
2338
- if (log && toExtract.length < MAX_FACET_EXTRACTIONS) {
2339
- toExtract.push({ log, sessionId });
2340
- }
2341
- }
2342
- }
2343
- // Extract facets for sessions that need them (50 concurrent)
2344
- const CONCURRENCY = 50;
2345
- for (let i = 0; i < toExtract.length; i += CONCURRENCY) {
2346
- const batch = toExtract.slice(i, i + CONCURRENCY);
2347
- const results = await Promise.all(batch.map(async ({ log, sessionId }) => {
2348
- const newFacets = await extractFacetsFromAPI(log, sessionId);
2349
- return { sessionId, newFacets };
2350
- }));
2351
- // Collect facets synchronously, save in parallel (independent writes)
2352
- const facetsToSave = [];
2353
- for (const { sessionId, newFacets } of results) {
2354
- if (newFacets) {
2355
- facets.set(sessionId, newFacets);
2356
- facetsToSave.push(newFacets);
2357
- }
2358
- }
2359
- await Promise.all(facetsToSave.map(f => saveFacets(f)));
2360
- }
2361
- // Filter out warmup/minimal sessions (matching Python's is_minimal)
2362
- // A session is minimal if warmup_minimal is the ONLY goal category
2363
- const isMinimalSession = (sessionId) => {
2364
- const sessionFacets = facets.get(sessionId);
2365
- if (!sessionFacets)
2366
- return false;
2367
- const cats = sessionFacets.goal_categories;
2368
- const catKeys = safeKeys(cats).filter(k => (cats[k] ?? 0) > 0);
2369
- return catKeys.length === 1 && catKeys[0] === 'warmup_minimal';
2370
- };
2371
- const substantiveSessions = substantiveMetas.filter(s => !isMinimalSession(s.session_id));
2372
- const substantiveFacets = new Map();
2373
- for (const [sessionId, f] of facets) {
2374
- if (!isMinimalSession(sessionId)) {
2375
- substantiveFacets.set(sessionId, f);
2376
- }
2377
- }
2378
- const aggregated = aggregateData(substantiveSessions, substantiveFacets);
2379
- aggregated.total_sessions_scanned = totalSessionsScanned;
2380
- // Generate parallel insights from Claude (6 sections)
2381
- const insights = await generateParallelInsights(aggregated, facets);
2382
- // Generate HTML report
2383
- const htmlReport = generateHtmlReport(aggregated, insights);
2384
- // Save reports
2385
- try {
2386
- await mkdir(getDataDir(), { recursive: true });
2387
- }
2388
- catch {
2389
- // Directory may already exist
2390
- }
2391
- const htmlPath = join(getDataDir(), 'report.html');
2392
- await writeFile(htmlPath, htmlReport, {
2393
- encoding: 'utf-8',
2394
- mode: 0o600,
2395
- });
2396
- return {
2397
- insights,
2398
- htmlPath,
2399
- data: aggregated,
2400
- remoteStats,
2401
- facets: substantiveFacets,
2402
- };
2403
- }
2404
- function safeEntries(obj) {
2405
- return obj ? Object.entries(obj) : [];
2406
- }
2407
- function safeKeys(obj) {
2408
- return obj ? Object.keys(obj) : [];
2409
- }
2410
- // ============================================================================
2411
- // Command Definition
2412
- // ============================================================================
2413
- const usageReport = {
2414
- type: 'prompt',
2415
- name: 'insights',
2416
- description: 'Generate a report analyzing your Context Code sessions',
2417
- contentLength: 0, // Dynamic content
2418
- progressMessage: 'analyzing your sessions',
2419
- source: 'builtin',
2420
- async getPromptForCommand(args) {
2421
- let collectRemote = false;
2422
- let remoteHosts = [];
2423
- let hasRemoteHosts = false;
2424
- if (process.env.USER_TYPE === 'ant') {
2425
- // Parse --homespaces flag
2426
- collectRemote = args?.includes('--homespaces') ?? false;
2427
- // Check for available remote hosts
2428
- remoteHosts = await getRunningRemoteHosts();
2429
- hasRemoteHosts = remoteHosts.length > 0;
2430
- // Show collection message if collecting
2431
- if (collectRemote && hasRemoteHosts) {
2432
- // biome-ignore lint/suspicious/noConsole: intentional
2433
- console.error(`Collecting sessions from ${remoteHosts.length} homespace(s): ${remoteHosts.join(', ')}...`);
2434
- }
2435
- }
2436
- const { insights, htmlPath, data, remoteStats } = await generateUsageReport({ collectRemote });
2437
- let reportUrl = `file://${htmlPath}`;
2438
- let uploadHint = '';
2439
- if (process.env.USER_TYPE === 'ant') {
2440
- // Try to upload to S3
2441
- const timestamp = new Date()
2442
- .toISOString()
2443
- .replace(/[-:]/g, '')
2444
- .replace('T', '_')
2445
- .slice(0, 15);
2446
- const username = process.env.SAFEUSER || process.env.USER || 'unknown';
2447
- const filename = `${username}_insights_${timestamp}.html`;
2448
- const s3Path = `s3://anthropic-serve/atamkin/cc-user-reports/${filename}`;
2449
- const s3Url = `https://s3-frontend.infra.ant.dev/anthropic-serve/atamkin/cc-user-reports/${filename}`;
2450
- reportUrl = s3Url;
2451
- try {
2452
- execFileSync('ff', ['cp', htmlPath, s3Path], {
2453
- timeout: 60000,
2454
- stdio: 'pipe', // Suppress output
2455
- });
2456
- }
2457
- catch {
2458
- // Upload failed - fall back to local file and show upload command
2459
- reportUrl = `file://${htmlPath}`;
2460
- uploadHint = `\nAutomatic upload failed. Are you on the boron namespace? Try \`use-bo\` and ensure you've run \`sso\`.
2461
- To share, run: ff cp ${htmlPath} ${s3Path}
2462
- Then access at: ${s3Url}`;
2463
- }
2464
- }
2465
- // Build header with stats
2466
- const sessionLabel = data.total_sessions_scanned &&
2467
- data.total_sessions_scanned > data.total_sessions
2468
- ? `${data.total_sessions_scanned.toLocaleString()} sessions total · ${data.total_sessions} analyzed`
2469
- : `${data.total_sessions} sessions`;
2470
- const stats = [
2471
- sessionLabel,
2472
- `${data.total_messages.toLocaleString()} messages`,
2473
- `${Math.round(data.total_duration_hours)}h`,
2474
- `${data.git_commits} commits`,
2475
- ].join(' · ');
2476
- // Build remote host info (ant-only)
2477
- let remoteInfo = '';
2478
- if (process.env.USER_TYPE === 'ant') {
2479
- if (remoteStats && remoteStats.totalCopied > 0) {
2480
- const hsNames = remoteStats.hosts
2481
- .filter(h => h.sessionCount > 0)
2482
- .map(h => h.name)
2483
- .join(', ');
2484
- remoteInfo = `\n_Collected ${remoteStats.totalCopied} new sessions from: ${hsNames}_\n`;
2485
- }
2486
- else if (!collectRemote && hasRemoteHosts) {
2487
- // Suggest using --homespaces if they have remote hosts but didn't use the flag
2488
- remoteInfo = `\n_Tip: Run \`/insights --homespaces\` to include sessions from your ${remoteHosts.length} running homespace(s)_\n`;
2489
- }
2490
- }
2491
- // Build markdown summary from insights
2492
- const atAGlance = insights.at_a_glance;
2493
- const summaryText = atAGlance
2494
- ? `## At a Glance
2495
-
2496
- ${atAGlance.whats_working ? `**What's working:** ${atAGlance.whats_working} See _Impressive Things You Did_.` : ''}
2497
-
2498
- ${atAGlance.whats_hindering ? `**What's hindering you:** ${atAGlance.whats_hindering} See _Where Things Go Wrong_.` : ''}
2499
-
2500
- ${atAGlance.quick_wins ? `**Quick wins to try:** ${atAGlance.quick_wins} See _Features to Try_.` : ''}
2501
-
2502
- ${atAGlance.ambitious_workflows ? `**Ambitious workflows:** ${atAGlance.ambitious_workflows} See _On the Horizon_.` : ''}`
2503
- : '_No insights generated_';
2504
- const header = `# Context Code Insights
2505
-
2506
- ${stats}
2507
- ${data.date_range.start} to ${data.date_range.end}
2508
- ${remoteInfo}
2509
- `;
2510
- const userSummary = `${header}${summaryText}
2511
-
2512
- Your full shareable insights report is ready: ${reportUrl}${uploadHint}`;
2513
- // Return prompt for Claude to respond to
2514
- return [
2515
- {
2516
- type: 'text',
2517
- text: `The user just ran /insights to generate a usage report analyzing their Context Code sessions.
2518
-
2519
- Here is the full insights data:
2520
- ${jsonStringify(insights, null, 2)}
2521
-
2522
- Report URL: ${reportUrl}
2523
- HTML file: ${htmlPath}
2524
- Facets directory: ${getFacetsDir()}
2525
-
2526
- Here is what the user sees:
2527
- ${userSummary}
2528
-
2529
- Now output the following message exactly:
2530
-
2531
- <message>
2532
- Your shareable insights report is ready:
2533
- ${reportUrl}${uploadHint}
2534
-
2535
- Want to dig into any section or try one of the suggestions?
2536
- </message>`,
2537
- },
2538
- ];
2539
- },
2540
- };
2541
- function isValidSessionFacets(obj) {
2542
- if (!obj || typeof obj !== 'object')
2543
- return false;
2544
- const o = obj;
2545
- return (typeof o.underlying_goal === 'string' &&
2546
- typeof o.outcome === 'string' &&
2547
- typeof o.brief_summary === 'string' &&
2548
- o.goal_categories !== null &&
2549
- typeof o.goal_categories === 'object' &&
2550
- o.user_satisfaction_counts !== null &&
2551
- typeof o.user_satisfaction_counts === 'object' &&
2552
- o.friction_counts !== null &&
2553
- typeof o.friction_counts === 'object');
2554
- }
2555
- export default usageReport;