t3code-cli 0.13.0 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/README.md +87 -1
  2. package/dist/application.d.ts +2 -0
  3. package/dist/application.js +1 -1
  4. package/dist/auth.d.ts +50 -0
  5. package/dist/auth.js +1 -1
  6. package/dist/bin.d.ts +1 -0
  7. package/dist/bin.js +355 -606
  8. package/dist/cli.d.ts +66 -0
  9. package/dist/cli.js +1 -1
  10. package/dist/client-runtime/authorization.d.ts +2 -0
  11. package/dist/client-runtime/authorization.js +2 -0
  12. package/dist/client-runtime/connection.d.ts +2 -0
  13. package/dist/client-runtime/connection.js +2 -0
  14. package/dist/client-runtime/environment.d.ts +57 -0
  15. package/dist/client-runtime/environment.js +2 -0
  16. package/dist/client-runtime/errors.d.ts +28 -0
  17. package/dist/client-runtime/errors.js +35 -0
  18. package/dist/client-runtime/operations/projects.d.ts +2 -0
  19. package/dist/client-runtime/operations/projects.js +2 -0
  20. package/dist/client-runtime/operations.d.ts +2 -0
  21. package/dist/client-runtime/operations.js +2 -0
  22. package/dist/client-runtime/platform.d.ts +26 -0
  23. package/dist/client-runtime/platform.js +74 -0
  24. package/dist/client-runtime/relay.d.ts +121 -0
  25. package/dist/client-runtime/relay.js +245 -0
  26. package/dist/client-runtime/rpc.d.ts +2 -0
  27. package/dist/client-runtime/rpc.js +2 -0
  28. package/dist/client-runtime/state/assets.d.ts +40 -0
  29. package/dist/client-runtime/state/assets.js +53 -0
  30. package/dist/client-runtime/state/auth.d.ts +98 -0
  31. package/dist/client-runtime/state/auth.js +48 -0
  32. package/dist/client-runtime/state/connections.d.ts +2 -0
  33. package/dist/client-runtime/state/connections.js +52 -0
  34. package/dist/client-runtime/state/entities.d.ts +33 -0
  35. package/dist/client-runtime/state/entities.js +2 -0
  36. package/dist/client-runtime/state/filesystem.d.ts +42 -0
  37. package/dist/client-runtime/state/filesystem.js +48 -0
  38. package/dist/client-runtime/state/git.d.ts +43 -0
  39. package/dist/client-runtime/state/git.js +18 -0
  40. package/dist/client-runtime/state/models.d.ts +2 -0
  41. package/dist/client-runtime/state/models.js +2 -0
  42. package/dist/client-runtime/state/orchestration.d.ts +128 -0
  43. package/dist/client-runtime/state/orchestration.js +20 -0
  44. package/dist/client-runtime/state/presentation.d.ts +277 -0
  45. package/dist/client-runtime/state/presentation.js +34 -0
  46. package/dist/client-runtime/state/preview.d.ts +447 -0
  47. package/dist/client-runtime/state/preview.js +103 -0
  48. package/dist/client-runtime/state/project-grouping.d.ts +26 -0
  49. package/dist/client-runtime/state/project-grouping.js +73 -0
  50. package/dist/client-runtime/state/projects.d.ts +192 -0
  51. package/dist/client-runtime/state/projects.js +2 -0
  52. package/dist/client-runtime/state/relay.d.ts +10 -0
  53. package/dist/client-runtime/state/relay.js +19 -0
  54. package/dist/client-runtime/state/review.d.ts +28 -0
  55. package/dist/client-runtime/state/review.js +11 -0
  56. package/dist/client-runtime/state/runtime.d.ts +2 -0
  57. package/dist/client-runtime/state/runtime.js +2 -0
  58. package/dist/client-runtime/state/server.d.ts +1495 -0
  59. package/dist/client-runtime/state/server.js +207 -0
  60. package/dist/client-runtime/state/session.d.ts +532 -0
  61. package/dist/client-runtime/state/session.js +21 -0
  62. package/dist/client-runtime/state/shell.d.ts +529 -0
  63. package/dist/client-runtime/state/shell.js +2 -0
  64. package/dist/client-runtime/state/source-control.d.ts +92 -0
  65. package/dist/client-runtime/state/source-control.js +36 -0
  66. package/dist/client-runtime/state/terminal.d.ts +237 -0
  67. package/dist/client-runtime/state/terminal.js +173 -0
  68. package/dist/client-runtime/state/thread-settled.d.ts +104 -0
  69. package/dist/client-runtime/state/thread-settled.js +157 -0
  70. package/dist/client-runtime/state/thread-sort.d.ts +23 -0
  71. package/dist/client-runtime/state/thread-sort.js +47 -0
  72. package/dist/client-runtime/state/threads.d.ts +538 -0
  73. package/dist/client-runtime/state/threads.js +934 -0
  74. package/dist/client-runtime/state/vcs.d.ts +442 -0
  75. package/dist/client-runtime/state/vcs.js +756 -0
  76. package/dist/config.d.ts +84 -0
  77. package/dist/config.js +1 -1
  78. package/dist/connection.d.ts +7 -0
  79. package/dist/connection.js +1 -1
  80. package/dist/contracts.d.ts +2 -0
  81. package/dist/contracts.js +2 -1
  82. package/dist/index.d.ts +2 -0
  83. package/dist/index.js +1 -1
  84. package/dist/node.d.ts +6 -0
  85. package/dist/node.js +1 -1
  86. package/dist/orchestration.d.ts +1420 -0
  87. package/dist/orchestration.js +1 -1
  88. package/dist/preview.d.ts +2 -0
  89. package/dist/preview.js +2 -0
  90. package/dist/rpc.d.ts +6043 -0
  91. package/dist/rpc.js +1 -1
  92. package/dist/runtime.d.ts +2 -0
  93. package/dist/runtime.js +2 -2
  94. package/dist/shared/DrainableWorker.d.ts +28 -0
  95. package/dist/shared/DrainableWorker.js +24 -0
  96. package/dist/shared/KeyedCoalescingWorker.d.ts +13 -0
  97. package/dist/shared/KeyedCoalescingWorker.js +89 -0
  98. package/dist/shared/Net.d.ts +43 -0
  99. package/dist/shared/Net.js +126 -0
  100. package/dist/shared/String.d.ts +4 -0
  101. package/dist/shared/String.js +8 -0
  102. package/dist/shared/Struct.d.ts +5 -0
  103. package/dist/shared/Struct.js +2 -0
  104. package/dist/shared/advertisedEndpoint.d.ts +2 -0
  105. package/dist/shared/advertisedEndpoint.js +2 -0
  106. package/dist/shared/agentAwareness.d.ts +27 -0
  107. package/dist/shared/agentAwareness.js +54 -0
  108. package/dist/shared/backgroundActivitySettings.d.ts +23 -0
  109. package/dist/shared/backgroundActivitySettings.js +2 -0
  110. package/dist/shared/chatList.d.ts +12 -0
  111. package/dist/shared/chatList.js +14 -0
  112. package/dist/shared/cliArgs.d.ts +33 -0
  113. package/dist/shared/cliArgs.js +103 -0
  114. package/dist/shared/composerInlineTokens.d.ts +20 -0
  115. package/dist/shared/composerInlineTokens.js +72 -0
  116. package/dist/shared/composerTrigger.d.ts +26 -0
  117. package/dist/shared/composerTrigger.js +97 -0
  118. package/dist/shared/connectAuth.d.ts +58 -0
  119. package/dist/shared/connectAuth.js +89 -0
  120. package/dist/shared/devHome.d.ts +21 -0
  121. package/dist/shared/devHome.js +65 -0
  122. package/dist/shared/devProxy.d.ts +15 -0
  123. package/dist/shared/devProxy.js +22 -0
  124. package/dist/shared/dpop.d.ts +32 -0
  125. package/dist/shared/dpop.js +2724 -0
  126. package/dist/shared/dpopCommon.d.ts +2 -0
  127. package/dist/shared/dpopCommon.js +2 -0
  128. package/dist/shared/filePreview.d.ts +8 -0
  129. package/dist/shared/filePreview.js +31 -0
  130. package/dist/shared/git.d.ts +41 -0
  131. package/dist/shared/git.js +2 -0
  132. package/dist/shared/hostProcess.d.ts +13 -0
  133. package/dist/shared/hostProcess.js +2 -0
  134. package/dist/shared/httpObservability.d.ts +5 -0
  135. package/dist/shared/httpObservability.js +2 -0
  136. package/dist/shared/httpReadiness.d.ts +38 -0
  137. package/dist/shared/httpReadiness.js +110 -0
  138. package/dist/shared/keybindings.d.ts +35 -0
  139. package/dist/shared/keybindings.js +330 -0
  140. package/dist/shared/logging.d.ts +39 -0
  141. package/dist/shared/logging.js +2 -0
  142. package/dist/shared/model.d.ts +44 -0
  143. package/dist/shared/model.js +2 -0
  144. package/dist/shared/oauthScope.d.ts +23 -0
  145. package/dist/shared/oauthScope.js +2 -0
  146. package/dist/shared/observability.d.ts +105 -0
  147. package/dist/shared/observability.js +346 -0
  148. package/dist/shared/orchestrationTiming.d.ts +16 -0
  149. package/dist/shared/orchestrationTiming.js +32 -0
  150. package/dist/shared/path.d.ts +2 -0
  151. package/dist/shared/path.js +2 -0
  152. package/dist/shared/preview.d.ts +35 -0
  153. package/dist/shared/preview.js +103 -0
  154. package/dist/shared/previewViewport.d.ts +16 -0
  155. package/dist/shared/previewViewport.js +159 -0
  156. package/dist/shared/projectFavicon.d.ts +5 -0
  157. package/dist/shared/projectFavicon.js +13 -0
  158. package/dist/shared/projectScripts.d.ts +19 -0
  159. package/dist/shared/projectScripts.js +18 -0
  160. package/dist/shared/qrCode.d.ts +87 -0
  161. package/dist/shared/qrCode.js +870 -0
  162. package/dist/shared/relayAuth.d.ts +27 -0
  163. package/dist/shared/relayAuth.js +83 -0
  164. package/dist/shared/relayClient.d.ts +58 -0
  165. package/dist/shared/relayClient.js +245 -0
  166. package/dist/shared/relayJwt.d.ts +39 -0
  167. package/dist/shared/relayJwt.js +2 -0
  168. package/dist/shared/relaySigning.d.ts +4 -0
  169. package/dist/shared/relaySigning.js +2 -0
  170. package/dist/shared/relayTracing.d.ts +25 -0
  171. package/dist/shared/relayTracing.js +2 -0
  172. package/dist/shared/relayUrl.d.ts +5 -0
  173. package/dist/shared/relayUrl.js +2 -0
  174. package/dist/shared/remote.d.ts +57 -0
  175. package/dist/shared/remote.js +2 -0
  176. package/dist/shared/schemaJson.d.ts +35 -0
  177. package/dist/shared/schemaJson.js +2 -0
  178. package/dist/shared/schemaYaml.d.ts +86 -0
  179. package/dist/shared/schemaYaml.js +99 -0
  180. package/dist/shared/searchRanking.d.ts +30 -0
  181. package/dist/shared/searchRanking.js +99 -0
  182. package/dist/shared/semver.d.ts +23 -0
  183. package/dist/shared/semver.js +124 -0
  184. package/dist/shared/serverSettings.d.ts +19 -0
  185. package/dist/shared/serverSettings.js +103 -0
  186. package/dist/shared/shell.d.ts +51 -0
  187. package/dist/shared/shell.js +408 -0
  188. package/dist/shared/sourceControl.d.ts +26 -0
  189. package/dist/shared/sourceControl.js +2 -0
  190. package/dist/shared/t3ProjectFile.d.ts +27 -0
  191. package/dist/shared/t3ProjectFile.js +25 -0
  192. package/dist/shared/terminalLabels.d.ts +16 -0
  193. package/dist/shared/terminalLabels.js +28 -0
  194. package/dist/shared/toolActivity.d.ts +16 -0
  195. package/dist/shared/toolActivity.js +159 -0
  196. package/dist/shared.d.ts +43036 -0
  197. package/dist/shared.js +25428 -12277
  198. package/dist/t3tools.d.ts +2 -0
  199. package/dist/t3tools.js +1 -1
  200. package/package.json +39 -21
  201. package/src/auth/index.ts +2 -0
  202. package/src/auth/pairing.ts +8 -5
  203. package/src/auth/service.ts +2 -1
  204. package/src/auth/transport.ts +4 -0
  205. package/src/auth/type.ts +6 -0
  206. package/src/bin.ts +10 -7
  207. package/src/cli/auth.ts +7 -1
  208. package/src/contracts/index.ts +8 -0
  209. package/src/orchestration/layer.ts +36 -0
  210. package/src/orchestration/service.ts +5 -0
  211. package/src/preview/index.ts +11 -0
  212. package/src/preview/service.ts +52 -0
  213. package/src/rpc/error.ts +2 -0
  214. package/src/rpc/layer.ts +5 -4
  215. package/src/rpc/operation.ts +5 -4
  216. package/src/rpc/ws-group.ts +6 -0
  217. package/src/runtime/index.ts +1 -0
  218. package/src/runtime/layer.ts +5 -0
  219. package/src/sql/node-sqlite-client.ts +3 -0
  220. package/dist/src/application/actions.d.ts +0 -25
  221. package/dist/src/application/error.d.ts +0 -3
  222. package/dist/src/application/index.d.ts +0 -4
  223. package/dist/src/application/layer.d.ts +0 -117
  224. package/dist/src/application/model-selection.d.ts +0 -34
  225. package/dist/src/application/models.d.ts +0 -8
  226. package/dist/src/application/project-commands.d.ts +0 -44
  227. package/dist/src/application/projects.d.ts +0 -23
  228. package/dist/src/application/service.d.ts +0 -243
  229. package/dist/src/application/shell-sequence.d.ts +0 -96
  230. package/dist/src/application/terminals.d.ts +0 -66
  231. package/dist/src/application/thread-commands.d.ts +0 -157
  232. package/dist/src/application/thread-update.d.ts +0 -8
  233. package/dist/src/application/thread-wait.d.ts +0 -106
  234. package/dist/src/application/threads.d.ts +0 -660
  235. package/dist/src/auth/error.d.ts +0 -50
  236. package/dist/src/auth/index.d.ts +0 -10
  237. package/dist/src/auth/layer.d.ts +0 -53
  238. package/dist/src/auth/local-base-dir.d.ts +0 -8
  239. package/dist/src/auth/local-origin.d.ts +0 -18
  240. package/dist/src/auth/local-token.d.ts +0 -26
  241. package/dist/src/auth/local.d.ts +0 -24
  242. package/dist/src/auth/pairing.d.ts +0 -22
  243. package/dist/src/auth/remote-error.d.ts +0 -3
  244. package/dist/src/auth/schema.d.ts +0 -58
  245. package/dist/src/auth/service.d.ts +0 -27
  246. package/dist/src/auth/transport.d.ts +0 -22
  247. package/dist/src/auth/type.d.ts +0 -83
  248. package/dist/src/cli/env/flag.d.ts +0 -2
  249. package/dist/src/cli/env/index.d.ts +0 -2
  250. package/dist/src/cli/env/selection-layer.d.ts +0 -3
  251. package/dist/src/cli/flags.d.ts +0 -20
  252. package/dist/src/cli/format/index.d.ts +0 -1
  253. package/dist/src/cli/format/output.d.ts +0 -12
  254. package/dist/src/cli/index.d.ts +0 -5
  255. package/dist/src/cli/runtime/index.d.ts +0 -1
  256. package/dist/src/cli/runtime/service.d.ts +0 -16
  257. package/dist/src/cli/scope/index.d.ts +0 -1
  258. package/dist/src/cli/scope/resolve.d.ts +0 -20
  259. package/dist/src/cli-path/layer.d.ts +0 -3
  260. package/dist/src/cli-path/service.d.ts +0 -8
  261. package/dist/src/config/config.d.ts +0 -49
  262. package/dist/src/config/credential/cipher-node.d.ts +0 -3
  263. package/dist/src/config/credential/cipher-web.d.ts +0 -3
  264. package/dist/src/config/credential/cipher.d.ts +0 -29
  265. package/dist/src/config/credential/env.d.ts +0 -3
  266. package/dist/src/config/credential/error.d.ts +0 -8
  267. package/dist/src/config/credential/index.d.ts +0 -6
  268. package/dist/src/config/credential/service.d.ts +0 -34
  269. package/dist/src/config/env/env.d.ts +0 -55
  270. package/dist/src/config/env/index.d.ts +0 -2
  271. package/dist/src/config/env/layout.d.ts +0 -11
  272. package/dist/src/config/environment-name/index.d.ts +0 -1
  273. package/dist/src/config/environment-name/name.d.ts +0 -10
  274. package/dist/src/config/error.d.ts +0 -11
  275. package/dist/src/config/index.d.ts +0 -10
  276. package/dist/src/config/keystore/error.d.ts +0 -8
  277. package/dist/src/config/keystore/file.d.ts +0 -9
  278. package/dist/src/config/keystore/index.d.ts +0 -4
  279. package/dist/src/config/keystore/keyring-node.d.ts +0 -4
  280. package/dist/src/config/keystore/service.d.ts +0 -33
  281. package/dist/src/config/paths/index.d.ts +0 -1
  282. package/dist/src/config/paths/paths.d.ts +0 -6
  283. package/dist/src/config/persist/file-mode.d.ts +0 -4
  284. package/dist/src/config/persist/migration.d.ts +0 -68
  285. package/dist/src/config/persist/persist.d.ts +0 -40
  286. package/dist/src/config/persist/schema.d.ts +0 -68
  287. package/dist/src/config/resolve/resolve.d.ts +0 -40
  288. package/dist/src/config/selection/index.d.ts +0 -1
  289. package/dist/src/config/selection/resolve.d.ts +0 -4
  290. package/dist/src/config/selection/service.d.ts +0 -10
  291. package/dist/src/config/types.d.ts +0 -36
  292. package/dist/src/config/url/error.d.ts +0 -10
  293. package/dist/src/config/url/index.d.ts +0 -2
  294. package/dist/src/config/url/url.d.ts +0 -6
  295. package/dist/src/connection/error.d.ts +0 -10
  296. package/dist/src/connection/index.d.ts +0 -4
  297. package/dist/src/connection/layer.d.ts +0 -3
  298. package/dist/src/connection/prepared.d.ts +0 -14
  299. package/dist/src/connection/service.d.ts +0 -13
  300. package/dist/src/connection/type.d.ts +0 -10
  301. package/dist/src/contracts/index.d.ts +0 -1
  302. package/dist/src/domain/error.d.ts +0 -57
  303. package/dist/src/domain/helpers.d.ts +0 -179
  304. package/dist/src/domain/model-config.d.ts +0 -330
  305. package/dist/src/domain/thread-activities.d.ts +0 -14
  306. package/dist/src/domain/thread-lifecycle.d.ts +0 -120
  307. package/dist/src/index.d.ts +0 -3
  308. package/dist/src/node/connection.d.ts +0 -2
  309. package/dist/src/node/index.d.ts +0 -1
  310. package/dist/src/orchestration/index.d.ts +0 -2
  311. package/dist/src/orchestration/layer.d.ts +0 -1419
  312. package/dist/src/orchestration/service.d.ts +0 -28
  313. package/dist/src/rpc/error.d.ts +0 -16
  314. package/dist/src/rpc/index.d.ts +0 -6
  315. package/dist/src/rpc/layer.d.ts +0 -5862
  316. package/dist/src/rpc/operation.d.ts +0 -24
  317. package/dist/src/rpc/service.d.ts +0 -15
  318. package/dist/src/rpc/session.d.ts +0 -22
  319. package/dist/src/rpc/ws-group.d.ts +0 -1984
  320. package/dist/src/runtime/index.d.ts +0 -1
  321. package/dist/src/runtime/layer.d.ts +0 -15
  322. package/dist/src/sql/node-sqlite-client.d.ts +0 -10
  323. package/dist/src/sql/service.d.ts +0 -17
  324. package/dist/src/t3tools/index.d.ts +0 -1
@@ -0,0 +1,159 @@
1
+ //#region upstream-t3code/packages/shared/src/toolActivity.ts
2
+ function asRecord(value) {
3
+ return value !== null && typeof value === "object" && !Array.isArray(value) ? value : void 0;
4
+ }
5
+ function asTrimmedString(value) {
6
+ if (typeof value !== "string") return;
7
+ const trimmed = value.trim();
8
+ return trimmed.length > 0 ? trimmed : void 0;
9
+ }
10
+ function normalizeCommandValue(value) {
11
+ const direct = asTrimmedString(value);
12
+ if (direct) return direct;
13
+ if (!Array.isArray(value)) return;
14
+ const parts = [];
15
+ for (const entry of value) {
16
+ const part = asTrimmedString(entry);
17
+ if (part !== void 0) parts.push(part);
18
+ }
19
+ return parts.length > 0 ? parts.join(" ") : void 0;
20
+ }
21
+ function stripTrailingExitCode(value) {
22
+ const trimmed = value?.trim();
23
+ if (!trimmed) return;
24
+ const output = /^(?<output>[\s\S]*?)(?:\s*<exited with exit code \d+>)\s*$/iu.exec(trimmed)?.groups?.output?.trim() ?? trimmed;
25
+ return output.length > 0 ? output : void 0;
26
+ }
27
+ function extractCommandFromTitle(title) {
28
+ if (!title) return;
29
+ return /`([^`]+)`/u.exec(title)?.[1]?.trim() || void 0;
30
+ }
31
+ function extractToolCommand(data, title) {
32
+ const item = asRecord(data?.item);
33
+ const itemInput = asRecord(item?.input);
34
+ const itemResult = asRecord(item?.result);
35
+ const rawInput = asRecord(data?.rawInput);
36
+ const direct = [
37
+ normalizeCommandValue(item?.command),
38
+ normalizeCommandValue(itemInput?.command),
39
+ normalizeCommandValue(itemResult?.command),
40
+ normalizeCommandValue(data?.command),
41
+ normalizeCommandValue(rawInput?.command)
42
+ ].find((candidate) => candidate !== void 0);
43
+ if (direct) return direct;
44
+ const executable = asTrimmedString(rawInput?.executable);
45
+ const args = normalizeCommandValue(rawInput?.args);
46
+ if (executable && args) return `${executable} ${args}`;
47
+ if (executable) return executable;
48
+ return extractCommandFromTitle(title);
49
+ }
50
+ function maybePathLike(value) {
51
+ if (!value) return;
52
+ if (value.includes("/") || value.includes("\\") || value.startsWith(".") || /\.(?:[a-z0-9]{1,12})$/iu.test(value)) return value;
53
+ }
54
+ function collectPaths(value, paths, seen, depth) {
55
+ if (depth > 4 || paths.length >= 8) return;
56
+ if (Array.isArray(value)) {
57
+ for (const entry of value) {
58
+ collectPaths(entry, paths, seen, depth + 1);
59
+ if (paths.length >= 8) return;
60
+ }
61
+ return;
62
+ }
63
+ const record = asRecord(value);
64
+ if (!record) return;
65
+ for (const key of [
66
+ "path",
67
+ "filePath",
68
+ "relativePath",
69
+ "filename",
70
+ "newPath",
71
+ "oldPath"
72
+ ]) {
73
+ const candidate = maybePathLike(asTrimmedString(record[key]));
74
+ if (!candidate || seen.has(candidate)) continue;
75
+ seen.add(candidate);
76
+ paths.push(candidate);
77
+ if (paths.length >= 8) return;
78
+ }
79
+ for (const nestedKey of [
80
+ "locations",
81
+ "item",
82
+ "input",
83
+ "result",
84
+ "rawInput",
85
+ "data",
86
+ "changes"
87
+ ]) {
88
+ if (!(nestedKey in record)) continue;
89
+ collectPaths(record[nestedKey], paths, seen, depth + 1);
90
+ if (paths.length >= 8) return;
91
+ }
92
+ }
93
+ function extractPrimaryPath(data) {
94
+ const paths = [];
95
+ collectPaths(data, paths, /* @__PURE__ */ new Set(), 0);
96
+ return paths[0];
97
+ }
98
+ function normalizeEquivalentValue(value) {
99
+ const trimmed = asTrimmedString(value);
100
+ if (!trimmed) return;
101
+ return trimmed.replace(/\s+/gu, " ").replace(/\s+(?:complete|completed|started)\s*$/iu, "").trim();
102
+ }
103
+ function isEquivalent(left, right) {
104
+ const normalizedLeft = normalizeEquivalentValue(left)?.toLowerCase();
105
+ const normalizedRight = normalizeEquivalentValue(right)?.toLowerCase();
106
+ return normalizedLeft !== void 0 && normalizedLeft === normalizedRight;
107
+ }
108
+ function classifyToolAction(input) {
109
+ const itemType = input.itemType ?? void 0;
110
+ const kind = asTrimmedString(input.data?.kind)?.toLowerCase();
111
+ const title = asTrimmedString(input.title)?.toLowerCase();
112
+ if (itemType === "command_execution" || kind === "execute" || title === "terminal") return "command";
113
+ if (kind === "read" || title === "read file") return "read";
114
+ if (itemType === "file_change" || kind === "edit" || kind === "move" || kind === "delete" || kind === "write") return "file_change";
115
+ if (itemType === "web_search" || kind === "search" || title === "find" || title === "grep") return "search";
116
+ return "other";
117
+ }
118
+ function deriveToolActivityPresentation(input) {
119
+ const title = asTrimmedString(input.title);
120
+ const detail = stripTrailingExitCode(asTrimmedString(input.detail));
121
+ const fallbackSummary = asTrimmedString(input.fallbackSummary) ?? "Tool";
122
+ const data = asRecord(input.data);
123
+ const command = extractToolCommand(data, title);
124
+ const primaryPath = extractPrimaryPath(data);
125
+ const action = classifyToolAction({
126
+ itemType: input.itemType,
127
+ title,
128
+ data
129
+ });
130
+ if (action === "command") return {
131
+ summary: "Ran command",
132
+ ...command ? { detail: command } : {}
133
+ };
134
+ if (action === "read") {
135
+ if (primaryPath) return {
136
+ summary: "Read file",
137
+ detail: primaryPath
138
+ };
139
+ return { summary: "Read file" };
140
+ }
141
+ if (action === "file_change") return {
142
+ summary: "Changed files",
143
+ ...primaryPath ? { detail: primaryPath } : {}
144
+ };
145
+ if (action === "search") {
146
+ const query = asTrimmedString(asRecord(data?.rawInput)?.query) ?? asTrimmedString(asRecord(data?.rawInput)?.pattern) ?? asTrimmedString(asRecord(data?.rawInput)?.searchTerm);
147
+ return {
148
+ summary: "Searched files",
149
+ ...query ? { detail: query } : {}
150
+ };
151
+ }
152
+ if (detail && !isEquivalent(detail, title) && !isEquivalent(detail, fallbackSummary)) return {
153
+ summary: title ?? fallbackSummary,
154
+ detail
155
+ };
156
+ return { summary: title ?? fallbackSummary };
157
+ }
158
+ //#endregion
159
+ export { deriveToolActivityPresentation };