@jingyi0605/codingns 0.8.0 → 0.8.5

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 (620) hide show
  1. package/bin/codingns.mjs +180 -0
  2. package/dist/public/assets/{AdaptiveButlerPage-BsgVNRAa.js → AdaptiveButlerPage-CJw8Ae62.js} +3 -3
  3. package/dist/public/assets/App-BOHBGFOd.js +30 -0
  4. package/dist/public/assets/{BootstrapPage--MDOigQi.js → BootstrapPage-BxHQT4nA.js} +1 -1
  5. package/dist/public/assets/{ConversationPage-BBss5ED8.js → ConversationPage-DWFsF6BB.js} +6 -6
  6. package/dist/public/assets/{DesktopDetachPreviewPage-CB8DoqwU.js → DesktopDetachPreviewPage-DOgEjYEf.js} +1 -1
  7. package/dist/public/assets/DesktopModal-D_A8sgQU.js +1 -0
  8. package/dist/public/assets/DesktopWindowPage-DK7L7osV.js +2 -0
  9. package/dist/public/assets/FileContextPanel-BdCoubcJ.js +1 -0
  10. package/dist/public/assets/GitSidebar-BeZ0hj7A.js +6 -0
  11. package/dist/public/assets/MobileCreateSessionSheet-DfLMVu8q.js +1 -0
  12. package/dist/public/assets/MobileSheet-5kZ-w-gU.js +1 -0
  13. package/dist/public/assets/{MobileTopHeaderFrame-DGVOzXyg.js → MobileTopHeaderFrame-lcp2GscV.js} +1 -1
  14. package/dist/public/assets/MobileWorkspaceSwitcherHeader-C6JMiOq_.js +1 -0
  15. package/dist/public/assets/PluginAccessOverview-DGcKAMQl.js +1 -0
  16. package/dist/public/assets/PluginContainerPage-BlY-xJDh.js +1 -0
  17. package/dist/public/assets/PluginDetailPage-CAJ7LFpD.js +1 -0
  18. package/dist/public/assets/PluginsListPage-BxZG1NyT.js +1 -0
  19. package/dist/public/assets/{RelayConnectEntryPage-0MPPjxtQ.js → RelayConnectEntryPage-CfNO_TIl.js} +1 -1
  20. package/dist/public/assets/ServerSettingsModal-by36Z_5k.js +1 -0
  21. package/dist/public/assets/SessionIndexPage-DkBp9Mqz.js +1 -0
  22. package/dist/public/assets/SettingsPage-C-ASmJAG.js +2 -0
  23. package/dist/public/assets/TerminalManagerPanel-NVZRxxmH.js +1 -0
  24. package/dist/public/assets/{TerminalPage-B6Rdhylx.js → TerminalPage-C4LNoPBp.js} +3 -3
  25. package/dist/public/assets/TerminalRuntimeFallbackModal-Bzum5nZ0.js +1 -0
  26. package/dist/public/assets/ToolFilesPage-47zbdgTW.js +1 -0
  27. package/dist/public/assets/ToolGitPage-Fuk_b_jg.js +1 -0
  28. package/dist/public/assets/ToolProcessesPage-sWSMWD-9.js +1 -0
  29. package/dist/public/assets/ToolsHomePage-R1mZlbZi.js +1 -0
  30. package/dist/public/assets/WorkbenchLandingPage-CqmiFH2u.js +1 -0
  31. package/dist/public/assets/WorkbenchLayout-OFi6CWgH.js +244 -0
  32. package/dist/public/assets/WorkbenchModal-C7qoQElW.js +1 -0
  33. package/dist/public/assets/WorkbenchShellRoute-BAQe_E0O.js +1 -0
  34. package/dist/public/assets/WorkspaceDebugDetailPage-DhKa6e9y.js +1 -0
  35. package/dist/public/assets/WorkspaceDetailPage-BPsrFffw.js +1 -0
  36. package/dist/public/assets/WorkspaceHomePage-KAtqZOAb.js +1 -0
  37. package/dist/public/assets/{client-runtime-manager-DGdKvYzx.js → client-runtime-manager-wmCJZKYd.js} +1 -1
  38. package/dist/public/assets/file-tree-icon-Mg1DiBRX.js +590 -0
  39. package/dist/public/assets/{index-CcaQt50x.css → index-C4t-vvqk.css} +1 -1
  40. package/dist/public/assets/index-CL97fwWB.js +42 -0
  41. package/dist/public/assets/{login-direct-candidate-resolver-DEP_xCmR.js → login-direct-candidate-resolver-BOAgTuUf.js} +1 -1
  42. package/dist/public/assets/plugin-permission-copy-Cq99cnzV.js +1 -0
  43. package/dist/public/assets/plugins-api-BQTV5DOp.js +1 -0
  44. package/dist/public/assets/{preferences-service-CV6Ih0BG.js → preferences-service-DJxbEEeg.js} +1 -1
  45. package/dist/public/assets/realtime-client-CLafKzzJ.js +1 -0
  46. package/dist/public/assets/{relay-entry-C751A-Sm.js → relay-entry-D-LfvdiX.js} +1 -1
  47. package/dist/public/assets/{terminal-runtime-meta-CRAVR-8G.js → terminal-runtime-meta-BJmy8dyK.js} +1 -1
  48. package/dist/public/assets/useRegisteredDebugTemplates-DQAWVdCo.js +1 -0
  49. package/dist/public/assets/workbench-navigation-MEzCSmsK.js +1 -0
  50. package/dist/public/index.html +2 -2
  51. package/dist/server/config/env.d.ts +1 -0
  52. package/dist/server/config/env.js +4 -0
  53. package/dist/server/config/env.js.map +1 -1
  54. package/dist/server/helpers/wechat-claw-runtime/modules/runtime-state-store.js +1 -1
  55. package/dist/server/helpers/wechat-claw-runtime/modules/runtime-state-store.js.map +1 -1
  56. package/dist/server/main.js +2 -0
  57. package/dist/server/main.js.map +1 -1
  58. package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +1 -0
  59. package/dist/server/modules/assistant-capability/assistant-capability-controller.js +1 -0
  60. package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -1
  61. package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +1 -0
  62. package/dist/server/modules/assistant-capability/assistant-capability-service.js +1 -0
  63. package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
  64. package/dist/server/modules/browser-runtime/browser-runtime-controller.d.ts +2 -1
  65. package/dist/server/modules/browser-runtime/browser-runtime-controller.js +1 -0
  66. package/dist/server/modules/browser-runtime/browser-runtime-controller.js.map +1 -1
  67. package/dist/server/modules/browser-runtime/browser-runtime-service.d.ts +4 -1
  68. package/dist/server/modules/browser-runtime/browser-runtime-service.js +40 -0
  69. package/dist/server/modules/browser-runtime/browser-runtime-service.js.map +1 -1
  70. package/dist/server/modules/browser-runtime/browser-task-payload.d.ts +2 -0
  71. package/dist/server/modules/browser-runtime/browser-task-payload.js.map +1 -1
  72. package/dist/server/modules/file/file-access-guard.d.ts +2 -0
  73. package/dist/server/modules/file/file-access-guard.js +24 -2
  74. package/dist/server/modules/file/file-access-guard.js.map +1 -1
  75. package/dist/server/modules/file/file-controller.d.ts +153 -1
  76. package/dist/server/modules/file/file-controller.js +215 -1
  77. package/dist/server/modules/file/file-controller.js.map +1 -1
  78. package/dist/server/modules/file/file-preview-link-service.d.ts +2 -0
  79. package/dist/server/modules/file/file-preview-link-service.js +5 -1
  80. package/dist/server/modules/file/file-preview-link-service.js.map +1 -1
  81. package/dist/server/modules/file/runtime/codingns-workspace-bridge.js +911 -0
  82. package/dist/server/modules/file/workspace-file-bridge-service.d.ts +126 -0
  83. package/dist/server/modules/file/workspace-file-bridge-service.js +471 -0
  84. package/dist/server/modules/file/workspace-file-bridge-service.js.map +1 -0
  85. package/dist/server/modules/file/workspace-file-bridge-watch-service.d.ts +42 -0
  86. package/dist/server/modules/file/workspace-file-bridge-watch-service.js +304 -0
  87. package/dist/server/modules/file/workspace-file-bridge-watch-service.js.map +1 -0
  88. package/dist/server/modules/git/git-command-helper-process.js +0 -18
  89. package/dist/server/modules/git/git-command-helper-process.js.map +1 -1
  90. package/dist/server/modules/git/git-command-runner.js +0 -18
  91. package/dist/server/modules/git/git-command-runner.js.map +1 -1
  92. package/dist/server/modules/model-switch/cc-switch-adapter.js +1 -1
  93. package/dist/server/modules/model-switch/cc-switch-adapter.js.map +1 -1
  94. package/dist/server/modules/plugins/plugin-controller.d.ts +131 -0
  95. package/dist/server/modules/plugins/plugin-controller.js +277 -0
  96. package/dist/server/modules/plugins/plugin-controller.js.map +1 -0
  97. package/dist/server/modules/plugins/plugin-file-gateway-service.d.ts +38 -0
  98. package/dist/server/modules/plugins/plugin-file-gateway-service.js +178 -0
  99. package/dist/server/modules/plugins/plugin-file-gateway-service.js.map +1 -0
  100. package/dist/server/modules/plugins/plugin-manifest.d.ts +8 -0
  101. package/dist/server/modules/plugins/plugin-manifest.js +420 -0
  102. package/dist/server/modules/plugins/plugin-manifest.js.map +1 -0
  103. package/dist/server/modules/plugins/plugin-permission-service.d.ts +49 -0
  104. package/dist/server/modules/plugins/plugin-permission-service.js +267 -0
  105. package/dist/server/modules/plugins/plugin-permission-service.js.map +1 -0
  106. package/dist/server/modules/plugins/plugin-process-runner.d.ts +21 -0
  107. package/dist/server/modules/plugins/plugin-process-runner.js +127 -0
  108. package/dist/server/modules/plugins/plugin-process-runner.js.map +1 -0
  109. package/dist/server/modules/plugins/plugin-registry-service.d.ts +41 -0
  110. package/dist/server/modules/plugins/plugin-registry-service.js +238 -0
  111. package/dist/server/modules/plugins/plugin-registry-service.js.map +1 -0
  112. package/dist/server/modules/plugins/plugin-runtime-service.d.ts +55 -0
  113. package/dist/server/modules/plugins/plugin-runtime-service.js +252 -0
  114. package/dist/server/modules/plugins/plugin-runtime-service.js.map +1 -0
  115. package/dist/server/modules/plugins/plugin-runtime-session-service.d.ts +21 -0
  116. package/dist/server/modules/plugins/plugin-runtime-session-service.js +83 -0
  117. package/dist/server/modules/plugins/plugin-runtime-session-service.js.map +1 -0
  118. package/dist/server/modules/plugins/plugin-scheduler-service.d.ts +31 -0
  119. package/dist/server/modules/plugins/plugin-scheduler-service.js +232 -0
  120. package/dist/server/modules/plugins/plugin-scheduler-service.js.map +1 -0
  121. package/dist/server/modules/plugins/plugin-static-service.d.ts +11 -0
  122. package/dist/server/modules/plugins/plugin-static-service.js +145 -0
  123. package/dist/server/modules/plugins/plugin-static-service.js.map +1 -0
  124. package/dist/server/modules/presentation/presentation-controller.d.ts +3 -0
  125. package/dist/server/modules/presentation/presentation-controller.js +11 -0
  126. package/dist/server/modules/presentation/presentation-controller.js.map +1 -1
  127. package/dist/server/modules/presentation/presentation-export-task-service.d.ts +6 -0
  128. package/dist/server/modules/presentation/presentation-export-task-service.js +52 -8
  129. package/dist/server/modules/presentation/presentation-export-task-service.js.map +1 -1
  130. package/dist/server/modules/presentation/presentation-pptx-export-service.js +200 -14
  131. package/dist/server/modules/presentation/presentation-pptx-export-service.js.map +1 -1
  132. package/dist/server/modules/presentation/presentation-renderer.d.ts +50 -0
  133. package/dist/server/modules/presentation/presentation-renderer.js +450 -37
  134. package/dist/server/modules/presentation/presentation-renderer.js.map +1 -1
  135. package/dist/server/modules/sessions/session-live-runtime-service.js +46 -3
  136. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  137. package/dist/server/modules/sessions/workspace-session-runtime-context-service.d.ts +1 -0
  138. package/dist/server/modules/sessions/workspace-session-runtime-context-service.js +11 -2
  139. package/dist/server/modules/sessions/workspace-session-runtime-context-service.js.map +1 -1
  140. package/dist/server/modules/skills/builtin-skills/codingns-workspace-session/SKILL.md +2 -2
  141. package/dist/server/modules/tasks/task-types.d.ts +2 -0
  142. package/dist/server/modules/tasks/task-types.js +2 -0
  143. package/dist/server/modules/tasks/task-types.js.map +1 -1
  144. package/dist/server/modules/terminal/runtime/terminal-log-writer-process.js +1 -1
  145. package/dist/server/modules/terminal/runtime/terminal-log-writer-process.js.map +1 -1
  146. package/dist/server/routes/files.js +40 -0
  147. package/dist/server/routes/files.js.map +1 -1
  148. package/dist/server/routes/plugins-public.d.ts +3 -0
  149. package/dist/server/routes/plugins-public.js +5 -0
  150. package/dist/server/routes/plugins-public.js.map +1 -0
  151. package/dist/server/routes/plugins.d.ts +3 -0
  152. package/dist/server/routes/plugins.js +19 -0
  153. package/dist/server/routes/plugins.js.map +1 -0
  154. package/dist/server/routes/presentation.js +1 -0
  155. package/dist/server/routes/presentation.js.map +1 -1
  156. package/dist/server/server/create-server.d.ts +20 -0
  157. package/dist/server/server/create-server.js +47 -1
  158. package/dist/server/server/create-server.js.map +1 -1
  159. package/dist/server/shared/http/error-handler.js +63 -25
  160. package/dist/server/shared/http/error-handler.js.map +1 -1
  161. package/dist/server/shared/runtime/better-sqlite3.d.ts +5 -0
  162. package/dist/server/shared/runtime/better-sqlite3.js +6 -0
  163. package/dist/server/shared/runtime/better-sqlite3.js.map +1 -0
  164. package/dist/server/shared/utils/install-console-timestamp-prefix.d.ts +1 -0
  165. package/dist/server/shared/utils/install-console-timestamp-prefix.js +28 -0
  166. package/dist/server/shared/utils/install-console-timestamp-prefix.js.map +1 -0
  167. package/dist/server/storage/repositories/plugin-audit-event-repository.d.ts +8 -0
  168. package/dist/server/storage/repositories/plugin-audit-event-repository.js +49 -0
  169. package/dist/server/storage/repositories/plugin-audit-event-repository.js.map +1 -0
  170. package/dist/server/storage/repositories/plugin-definition-repository.d.ts +10 -0
  171. package/dist/server/storage/repositories/plugin-definition-repository.js +84 -0
  172. package/dist/server/storage/repositories/plugin-definition-repository.js.map +1 -0
  173. package/dist/server/storage/repositories/plugin-enablement-repository.d.ts +9 -0
  174. package/dist/server/storage/repositories/plugin-enablement-repository.js +74 -0
  175. package/dist/server/storage/repositories/plugin-enablement-repository.js.map +1 -0
  176. package/dist/server/storage/repositories/plugin-permission-grant-repository.d.ts +12 -0
  177. package/dist/server/storage/repositories/plugin-permission-grant-repository.js +142 -0
  178. package/dist/server/storage/repositories/plugin-permission-grant-repository.js.map +1 -0
  179. package/dist/server/storage/repositories/plugin-run-repository.d.ts +10 -0
  180. package/dist/server/storage/repositories/plugin-run-repository.js +111 -0
  181. package/dist/server/storage/repositories/plugin-run-repository.js.map +1 -0
  182. package/dist/server/storage/repositories/plugin-runtime-session-repository.d.ts +10 -0
  183. package/dist/server/storage/repositories/plugin-runtime-session-repository.js +86 -0
  184. package/dist/server/storage/repositories/plugin-runtime-session-repository.js.map +1 -0
  185. package/dist/server/storage/sqlite/client.d.ts +2 -2
  186. package/dist/server/storage/sqlite/client.js +250 -1
  187. package/dist/server/storage/sqlite/client.js.map +1 -1
  188. package/dist/server/storage/sqlite/schema.sql +140 -0
  189. package/dist/server/types/domain.d.ts +122 -0
  190. package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.d.ts +42 -0
  191. package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.js +346 -0
  192. package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.js.map +1 -0
  193. package/node_modules/@codingns/session-sync-core/dist/codex-resume-history.d.ts +1 -0
  194. package/node_modules/@codingns/session-sync-core/dist/codex-resume-history.js +80 -0
  195. package/node_modules/@codingns/session-sync-core/dist/codex-resume-history.js.map +1 -0
  196. package/node_modules/@codingns/session-sync-core/dist/index.d.ts +18 -0
  197. package/node_modules/@codingns/session-sync-core/dist/index.js +19 -0
  198. package/node_modules/@codingns/session-sync-core/dist/index.js.map +1 -0
  199. package/node_modules/@codingns/session-sync-core/dist/kimi-message-normalizer.d.ts +18 -0
  200. package/node_modules/@codingns/session-sync-core/dist/kimi-message-normalizer.js +659 -0
  201. package/node_modules/@codingns/session-sync-core/dist/kimi-message-normalizer.js.map +1 -0
  202. package/node_modules/@codingns/session-sync-core/dist/kimi-shared.d.ts +11 -0
  203. package/node_modules/@codingns/session-sync-core/dist/kimi-shared.js +72 -0
  204. package/node_modules/@codingns/session-sync-core/dist/kimi-shared.js.map +1 -0
  205. package/node_modules/@codingns/session-sync-core/dist/patch-builder.d.ts +67 -0
  206. package/node_modules/@codingns/session-sync-core/dist/patch-builder.js +752 -0
  207. package/node_modules/@codingns/session-sync-core/dist/patch-builder.js.map +1 -0
  208. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.d.ts +48 -0
  209. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js +1184 -0
  210. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js.map +1 -0
  211. package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.d.ts +11 -0
  212. package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js +105 -0
  213. package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js.map +1 -0
  214. package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +84 -0
  215. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +2436 -0
  216. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -0
  217. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.d.ts +47 -0
  218. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js +1480 -0
  219. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js.map +1 -0
  220. package/node_modules/@codingns/session-sync-core/dist/providers/kimi.d.ts +33 -0
  221. package/node_modules/@codingns/session-sync-core/dist/providers/kimi.js +684 -0
  222. package/node_modules/@codingns/session-sync-core/dist/providers/kimi.js.map +1 -0
  223. package/node_modules/@codingns/session-sync-core/dist/providers/legna-code.d.ts +9 -0
  224. package/node_modules/@codingns/session-sync-core/dist/providers/legna-code.js +17 -0
  225. package/node_modules/@codingns/session-sync-core/dist/providers/legna-code.js.map +1 -0
  226. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-permissions.d.ts +1 -0
  227. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-permissions.js +8 -0
  228. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-permissions.js.map +1 -0
  229. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.d.ts +48 -0
  230. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.js +373 -0
  231. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.js.map +1 -0
  232. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.d.ts +61 -0
  233. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +1191 -0
  234. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +1 -0
  235. package/node_modules/@codingns/session-sync-core/dist/providers/utils.d.ts +27 -0
  236. package/node_modules/@codingns/session-sync-core/dist/providers/utils.js +415 -0
  237. package/node_modules/@codingns/session-sync-core/dist/providers/utils.js.map +1 -0
  238. package/node_modules/@codingns/session-sync-core/dist/registry.d.ts +7 -0
  239. package/node_modules/@codingns/session-sync-core/dist/registry.js +22 -0
  240. package/node_modules/@codingns/session-sync-core/dist/registry.js.map +1 -0
  241. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.d.ts +24 -0
  242. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js +329 -0
  243. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js.map +1 -0
  244. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.d.ts +30 -0
  245. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js +939 -0
  246. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js.map +1 -0
  247. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.d.ts +1 -0
  248. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js +16 -0
  249. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js.map +1 -0
  250. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.d.ts +70 -0
  251. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +2571 -0
  252. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -0
  253. package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.d.ts +21 -0
  254. package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.js +561 -0
  255. package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.js.map +1 -0
  256. package/node_modules/@codingns/session-sync-core/dist/runtime/kimi-runtime.d.ts +38 -0
  257. package/node_modules/@codingns/session-sync-core/dist/runtime/kimi-runtime.js +911 -0
  258. package/node_modules/@codingns/session-sync-core/dist/runtime/kimi-runtime.js.map +1 -0
  259. package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.d.ts +15 -0
  260. package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js +16 -0
  261. package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js.map +1 -0
  262. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.d.ts +38 -0
  263. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js +970 -0
  264. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js.map +1 -0
  265. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.d.ts +21 -0
  266. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.js +168 -0
  267. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.js.map +1 -0
  268. package/node_modules/@codingns/session-sync-core/dist/runtime/types.d.ts +152 -0
  269. package/node_modules/@codingns/session-sync-core/dist/runtime/types.js +2 -0
  270. package/node_modules/@codingns/session-sync-core/dist/runtime/types.js.map +1 -0
  271. package/node_modules/@codingns/session-sync-core/dist/services.d.ts +28 -0
  272. package/node_modules/@codingns/session-sync-core/dist/services.js +148 -0
  273. package/node_modules/@codingns/session-sync-core/dist/services.js.map +1 -0
  274. package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.d.ts +6 -0
  275. package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.js +9 -0
  276. package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.js.map +1 -0
  277. package/node_modules/@codingns/session-sync-core/dist/types.d.ts +198 -0
  278. package/node_modules/@codingns/session-sync-core/dist/types.js +2 -0
  279. package/node_modules/@codingns/session-sync-core/dist/types.js.map +1 -0
  280. package/node_modules/@codingns/session-sync-core/package.json +33 -0
  281. package/package.json +15 -6
  282. package/scripts/postinstall.mjs +248 -11
  283. package/vendor/better-sqlite3-win32-x64-node22/LICENSE +21 -0
  284. package/vendor/better-sqlite3-win32-x64-node22/README.md +12 -0
  285. package/vendor/better-sqlite3-win32-x64-node22/README.upstream.md +99 -0
  286. package/vendor/better-sqlite3-win32-x64-node22/binding.gyp +38 -0
  287. package/vendor/better-sqlite3-win32-x64-node22/build/Release/better_sqlite3.node +0 -0
  288. package/vendor/better-sqlite3-win32-x64-node22/deps/common.gypi +68 -0
  289. package/vendor/better-sqlite3-win32-x64-node22/deps/copy.js +31 -0
  290. package/vendor/better-sqlite3-win32-x64-node22/deps/defines.gypi +41 -0
  291. package/vendor/better-sqlite3-win32-x64-node22/deps/download.sh +122 -0
  292. package/vendor/better-sqlite3-win32-x64-node22/deps/patches/1208.patch +15 -0
  293. package/vendor/better-sqlite3-win32-x64-node22/deps/sqlite3/sqlite3.c +265994 -0
  294. package/vendor/better-sqlite3-win32-x64-node22/deps/sqlite3/sqlite3.h +13968 -0
  295. package/vendor/better-sqlite3-win32-x64-node22/deps/sqlite3/sqlite3ext.h +730 -0
  296. package/vendor/better-sqlite3-win32-x64-node22/deps/sqlite3.gyp +80 -0
  297. package/vendor/better-sqlite3-win32-x64-node22/deps/test_extension.c +21 -0
  298. package/vendor/better-sqlite3-win32-x64-node22/lib/database.js +90 -0
  299. package/vendor/better-sqlite3-win32-x64-node22/lib/index.js +3 -0
  300. package/vendor/better-sqlite3-win32-x64-node22/lib/methods/aggregate.js +43 -0
  301. package/vendor/better-sqlite3-win32-x64-node22/lib/methods/backup.js +67 -0
  302. package/vendor/better-sqlite3-win32-x64-node22/lib/methods/function.js +31 -0
  303. package/vendor/better-sqlite3-win32-x64-node22/lib/methods/inspect.js +7 -0
  304. package/vendor/better-sqlite3-win32-x64-node22/lib/methods/pragma.js +12 -0
  305. package/vendor/better-sqlite3-win32-x64-node22/lib/methods/serialize.js +16 -0
  306. package/vendor/better-sqlite3-win32-x64-node22/lib/methods/table.js +189 -0
  307. package/vendor/better-sqlite3-win32-x64-node22/lib/methods/transaction.js +78 -0
  308. package/vendor/better-sqlite3-win32-x64-node22/lib/methods/wrappers.js +54 -0
  309. package/vendor/better-sqlite3-win32-x64-node22/lib/sqlite-error.js +20 -0
  310. package/vendor/better-sqlite3-win32-x64-node22/lib/util.js +12 -0
  311. package/vendor/better-sqlite3-win32-x64-node22/package.json +38 -0
  312. package/vendor/better-sqlite3-win32-x64-node22/scripts/verify-runtime.cjs +42 -0
  313. package/vendor/better-sqlite3-win32-x64-node22/src/addon.cpp +47 -0
  314. package/vendor/better-sqlite3-win32-x64-node22/src/better_sqlite3.cpp +74 -0
  315. package/vendor/better-sqlite3-win32-x64-node22/src/objects/backup.cpp +120 -0
  316. package/vendor/better-sqlite3-win32-x64-node22/src/objects/backup.hpp +36 -0
  317. package/vendor/better-sqlite3-win32-x64-node22/src/objects/database.cpp +417 -0
  318. package/vendor/better-sqlite3-win32-x64-node22/src/objects/database.hpp +103 -0
  319. package/vendor/better-sqlite3-win32-x64-node22/src/objects/statement-iterator.cpp +113 -0
  320. package/vendor/better-sqlite3-win32-x64-node22/src/objects/statement-iterator.hpp +50 -0
  321. package/vendor/better-sqlite3-win32-x64-node22/src/objects/statement.cpp +383 -0
  322. package/vendor/better-sqlite3-win32-x64-node22/src/objects/statement.hpp +58 -0
  323. package/vendor/better-sqlite3-win32-x64-node22/src/util/bind-map.cpp +73 -0
  324. package/vendor/better-sqlite3-win32-x64-node22/src/util/binder.cpp +193 -0
  325. package/vendor/better-sqlite3-win32-x64-node22/src/util/constants.cpp +172 -0
  326. package/vendor/better-sqlite3-win32-x64-node22/src/util/custom-aggregate.cpp +121 -0
  327. package/vendor/better-sqlite3-win32-x64-node22/src/util/custom-function.cpp +59 -0
  328. package/vendor/better-sqlite3-win32-x64-node22/src/util/custom-table.cpp +409 -0
  329. package/vendor/better-sqlite3-win32-x64-node22/src/util/data-converter.cpp +17 -0
  330. package/vendor/better-sqlite3-win32-x64-node22/src/util/data.cpp +194 -0
  331. package/vendor/better-sqlite3-win32-x64-node22/src/util/helpers.cpp +109 -0
  332. package/vendor/better-sqlite3-win32-x64-node22/src/util/macros.cpp +83 -0
  333. package/vendor/better-sqlite3-win32-x64-node22/src/util/query-macros.cpp +71 -0
  334. package/vendor/better-sqlite3-win32-x64-node22/src/util/row-builder.cpp +49 -0
  335. package/vendor/node-pty-fork/LICENSE +69 -0
  336. package/vendor/node-pty-fork/README.md +92 -0
  337. package/vendor/node-pty-fork/binding.gyp +117 -0
  338. package/vendor/node-pty-fork/deps/.editorconfig +2 -0
  339. package/vendor/node-pty-fork/deps/winpty/.drone.yml +17 -0
  340. package/vendor/node-pty-fork/deps/winpty/.gitattributes +19 -0
  341. package/vendor/node-pty-fork/deps/winpty/LICENSE +21 -0
  342. package/vendor/node-pty-fork/deps/winpty/Makefile +166 -0
  343. package/vendor/node-pty-fork/deps/winpty/README.md +151 -0
  344. package/vendor/node-pty-fork/deps/winpty/RELEASES.md +280 -0
  345. package/vendor/node-pty-fork/deps/winpty/VERSION.txt +1 -0
  346. package/vendor/node-pty-fork/deps/winpty/configure +167 -0
  347. package/vendor/node-pty-fork/deps/winpty/misc/BufferResizeTests.cc +90 -0
  348. package/vendor/node-pty-fork/deps/winpty/misc/ChangeScreenBuffer.cc +53 -0
  349. package/vendor/node-pty-fork/deps/winpty/misc/ClearConsole.cc +72 -0
  350. package/vendor/node-pty-fork/deps/winpty/misc/ConinMode.cc +117 -0
  351. package/vendor/node-pty-fork/deps/winpty/misc/ConinMode.ps1 +116 -0
  352. package/vendor/node-pty-fork/deps/winpty/misc/ConoutMode.cc +113 -0
  353. package/vendor/node-pty-fork/deps/winpty/misc/DebugClient.py +42 -0
  354. package/vendor/node-pty-fork/deps/winpty/misc/DebugServer.py +63 -0
  355. package/vendor/node-pty-fork/deps/winpty/misc/DumpLines.py +5 -0
  356. package/vendor/node-pty-fork/deps/winpty/misc/EnableExtendedFlags.txt +46 -0
  357. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP437-Consolas.txt +528 -0
  358. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP437-Lucida.txt +633 -0
  359. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP932.txt +630 -0
  360. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP936.txt +630 -0
  361. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP949.txt +630 -0
  362. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP950.txt +630 -0
  363. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/MinimumWindowWidths.txt +16 -0
  364. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/Results.txt +4 -0
  365. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/Windows10SetFontBugginess.txt +144 -0
  366. package/vendor/node-pty-fork/deps/winpty/misc/FontSurvey.cc +100 -0
  367. package/vendor/node-pty-fork/deps/winpty/misc/FormatChar.h +21 -0
  368. package/vendor/node-pty-fork/deps/winpty/misc/FreezePerfTest.cc +62 -0
  369. package/vendor/node-pty-fork/deps/winpty/misc/GetCh.cc +20 -0
  370. package/vendor/node-pty-fork/deps/winpty/misc/GetConsolePos.cc +41 -0
  371. package/vendor/node-pty-fork/deps/winpty/misc/GetFont.cc +261 -0
  372. package/vendor/node-pty-fork/deps/winpty/misc/IdentifyConsoleWindow.ps1 +51 -0
  373. package/vendor/node-pty-fork/deps/winpty/misc/IsNewConsole.cc +87 -0
  374. package/vendor/node-pty-fork/deps/winpty/misc/MouseInputNotes.txt +90 -0
  375. package/vendor/node-pty-fork/deps/winpty/misc/MoveConsoleWindow.cc +34 -0
  376. package/vendor/node-pty-fork/deps/winpty/misc/Notes.txt +219 -0
  377. package/vendor/node-pty-fork/deps/winpty/misc/OSVersion.cc +27 -0
  378. package/vendor/node-pty-fork/deps/winpty/misc/ScreenBufferFreezeInactive.cc +101 -0
  379. package/vendor/node-pty-fork/deps/winpty/misc/ScreenBufferTest.cc +671 -0
  380. package/vendor/node-pty-fork/deps/winpty/misc/ScreenBufferTest2.cc +151 -0
  381. package/vendor/node-pty-fork/deps/winpty/misc/SelectAllTest.cc +45 -0
  382. package/vendor/node-pty-fork/deps/winpty/misc/SetBufferSize.cc +32 -0
  383. package/vendor/node-pty-fork/deps/winpty/misc/SetCursorPos.cc +10 -0
  384. package/vendor/node-pty-fork/deps/winpty/misc/SetFont.cc +145 -0
  385. package/vendor/node-pty-fork/deps/winpty/misc/SetWindowRect.cc +36 -0
  386. package/vendor/node-pty-fork/deps/winpty/misc/ShowArgv.cc +12 -0
  387. package/vendor/node-pty-fork/deps/winpty/misc/ShowConsoleInput.cc +40 -0
  388. package/vendor/node-pty-fork/deps/winpty/misc/Spew.py +5 -0
  389. package/vendor/node-pty-fork/deps/winpty/misc/TestUtil.cc +172 -0
  390. package/vendor/node-pty-fork/deps/winpty/misc/UnicodeDoubleWidthTest.cc +102 -0
  391. package/vendor/node-pty-fork/deps/winpty/misc/UnicodeWideTest1.cc +246 -0
  392. package/vendor/node-pty-fork/deps/winpty/misc/UnicodeWideTest2.cc +130 -0
  393. package/vendor/node-pty-fork/deps/winpty/misc/UnixEcho.cc +89 -0
  394. package/vendor/node-pty-fork/deps/winpty/misc/Utf16Echo.cc +46 -0
  395. package/vendor/node-pty-fork/deps/winpty/misc/VeryLargeRead.cc +122 -0
  396. package/vendor/node-pty-fork/deps/winpty/misc/VkEscapeTest.cc +56 -0
  397. package/vendor/node-pty-fork/deps/winpty/misc/Win10ResizeWhileFrozen.cc +52 -0
  398. package/vendor/node-pty-fork/deps/winpty/misc/Win10WrapTest1.cc +57 -0
  399. package/vendor/node-pty-fork/deps/winpty/misc/Win10WrapTest2.cc +30 -0
  400. package/vendor/node-pty-fork/deps/winpty/misc/Win32Echo1.cc +26 -0
  401. package/vendor/node-pty-fork/deps/winpty/misc/Win32Echo2.cc +19 -0
  402. package/vendor/node-pty-fork/deps/winpty/misc/Win32Test1.cc +46 -0
  403. package/vendor/node-pty-fork/deps/winpty/misc/Win32Test2.cc +70 -0
  404. package/vendor/node-pty-fork/deps/winpty/misc/Win32Test3.cc +78 -0
  405. package/vendor/node-pty-fork/deps/winpty/misc/Win32Write1.cc +44 -0
  406. package/vendor/node-pty-fork/deps/winpty/misc/WindowsBugCrashReader.cc +27 -0
  407. package/vendor/node-pty-fork/deps/winpty/misc/WriteConsole.cc +106 -0
  408. package/vendor/node-pty-fork/deps/winpty/misc/build32.sh +9 -0
  409. package/vendor/node-pty-fork/deps/winpty/misc/build64.sh +9 -0
  410. package/vendor/node-pty-fork/deps/winpty/misc/color-test.sh +212 -0
  411. package/vendor/node-pty-fork/deps/winpty/misc/font-notes.txt +300 -0
  412. package/vendor/node-pty-fork/deps/winpty/misc/winbug-15048.cc +201 -0
  413. package/vendor/node-pty-fork/deps/winpty/ship/build-pty4j-libpty.bat +36 -0
  414. package/vendor/node-pty-fork/deps/winpty/ship/common_ship.py +53 -0
  415. package/vendor/node-pty-fork/deps/winpty/ship/make_msvc_package.py +165 -0
  416. package/vendor/node-pty-fork/deps/winpty/ship/ship.py +108 -0
  417. package/vendor/node-pty-fork/deps/winpty/src/agent/Agent.cc +605 -0
  418. package/vendor/node-pty-fork/deps/winpty/src/agent/Agent.h +103 -0
  419. package/vendor/node-pty-fork/deps/winpty/src/agent/AgentCreateDesktop.cc +84 -0
  420. package/vendor/node-pty-fork/deps/winpty/src/agent/AgentCreateDesktop.h +28 -0
  421. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleFont.cc +632 -0
  422. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleFont.h +28 -0
  423. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleInput.cc +852 -0
  424. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleInput.h +109 -0
  425. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleInputReencoding.cc +121 -0
  426. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleInputReencoding.h +36 -0
  427. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleLine.cc +152 -0
  428. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleLine.h +41 -0
  429. package/vendor/node-pty-fork/deps/winpty/src/agent/Coord.h +87 -0
  430. package/vendor/node-pty-fork/deps/winpty/src/agent/DebugShowInput.cc +239 -0
  431. package/vendor/node-pty-fork/deps/winpty/src/agent/DebugShowInput.h +32 -0
  432. package/vendor/node-pty-fork/deps/winpty/src/agent/DefaultInputMap.cc +422 -0
  433. package/vendor/node-pty-fork/deps/winpty/src/agent/DefaultInputMap.h +28 -0
  434. package/vendor/node-pty-fork/deps/winpty/src/agent/DsrSender.h +30 -0
  435. package/vendor/node-pty-fork/deps/winpty/src/agent/EventLoop.cc +99 -0
  436. package/vendor/node-pty-fork/deps/winpty/src/agent/EventLoop.h +47 -0
  437. package/vendor/node-pty-fork/deps/winpty/src/agent/InputMap.cc +246 -0
  438. package/vendor/node-pty-fork/deps/winpty/src/agent/InputMap.h +114 -0
  439. package/vendor/node-pty-fork/deps/winpty/src/agent/LargeConsoleRead.cc +71 -0
  440. package/vendor/node-pty-fork/deps/winpty/src/agent/LargeConsoleRead.h +68 -0
  441. package/vendor/node-pty-fork/deps/winpty/src/agent/NamedPipe.cc +378 -0
  442. package/vendor/node-pty-fork/deps/winpty/src/agent/NamedPipe.h +125 -0
  443. package/vendor/node-pty-fork/deps/winpty/src/agent/Scraper.cc +699 -0
  444. package/vendor/node-pty-fork/deps/winpty/src/agent/Scraper.h +103 -0
  445. package/vendor/node-pty-fork/deps/winpty/src/agent/SimplePool.h +75 -0
  446. package/vendor/node-pty-fork/deps/winpty/src/agent/SmallRect.h +143 -0
  447. package/vendor/node-pty-fork/deps/winpty/src/agent/Terminal.cc +535 -0
  448. package/vendor/node-pty-fork/deps/winpty/src/agent/Terminal.h +69 -0
  449. package/vendor/node-pty-fork/deps/winpty/src/agent/UnicodeEncoding.h +157 -0
  450. package/vendor/node-pty-fork/deps/winpty/src/agent/UnicodeEncodingTest.cc +189 -0
  451. package/vendor/node-pty-fork/deps/winpty/src/agent/Win32Console.cc +107 -0
  452. package/vendor/node-pty-fork/deps/winpty/src/agent/Win32Console.h +67 -0
  453. package/vendor/node-pty-fork/deps/winpty/src/agent/Win32ConsoleBuffer.cc +193 -0
  454. package/vendor/node-pty-fork/deps/winpty/src/agent/Win32ConsoleBuffer.h +99 -0
  455. package/vendor/node-pty-fork/deps/winpty/src/agent/main.cc +114 -0
  456. package/vendor/node-pty-fork/deps/winpty/src/agent/subdir.mk +61 -0
  457. package/vendor/node-pty-fork/deps/winpty/src/configurations.gypi +60 -0
  458. package/vendor/node-pty-fork/deps/winpty/src/debugserver/DebugServer.cc +117 -0
  459. package/vendor/node-pty-fork/deps/winpty/src/debugserver/subdir.mk +41 -0
  460. package/vendor/node-pty-fork/deps/winpty/src/include/winpty.h +242 -0
  461. package/vendor/node-pty-fork/deps/winpty/src/include/winpty_constants.h +131 -0
  462. package/vendor/node-pty-fork/deps/winpty/src/libwinpty/AgentLocation.cc +75 -0
  463. package/vendor/node-pty-fork/deps/winpty/src/libwinpty/AgentLocation.h +28 -0
  464. package/vendor/node-pty-fork/deps/winpty/src/libwinpty/LibWinptyException.h +54 -0
  465. package/vendor/node-pty-fork/deps/winpty/src/libwinpty/WinptyInternal.h +72 -0
  466. package/vendor/node-pty-fork/deps/winpty/src/libwinpty/subdir.mk +46 -0
  467. package/vendor/node-pty-fork/deps/winpty/src/libwinpty/winpty.cc +970 -0
  468. package/vendor/node-pty-fork/deps/winpty/src/shared/AgentMsg.h +38 -0
  469. package/vendor/node-pty-fork/deps/winpty/src/shared/BackgroundDesktop.cc +122 -0
  470. package/vendor/node-pty-fork/deps/winpty/src/shared/BackgroundDesktop.h +73 -0
  471. package/vendor/node-pty-fork/deps/winpty/src/shared/Buffer.cc +103 -0
  472. package/vendor/node-pty-fork/deps/winpty/src/shared/Buffer.h +102 -0
  473. package/vendor/node-pty-fork/deps/winpty/src/shared/DebugClient.cc +187 -0
  474. package/vendor/node-pty-fork/deps/winpty/src/shared/DebugClient.h +38 -0
  475. package/vendor/node-pty-fork/deps/winpty/src/shared/GenRandom.cc +138 -0
  476. package/vendor/node-pty-fork/deps/winpty/src/shared/GenRandom.h +55 -0
  477. package/vendor/node-pty-fork/deps/winpty/src/shared/GetCommitHash.bat +13 -0
  478. package/vendor/node-pty-fork/deps/winpty/src/shared/Mutex.h +54 -0
  479. package/vendor/node-pty-fork/deps/winpty/src/shared/OsModule.h +63 -0
  480. package/vendor/node-pty-fork/deps/winpty/src/shared/OwnedHandle.cc +36 -0
  481. package/vendor/node-pty-fork/deps/winpty/src/shared/OwnedHandle.h +45 -0
  482. package/vendor/node-pty-fork/deps/winpty/src/shared/PrecompiledHeader.h +43 -0
  483. package/vendor/node-pty-fork/deps/winpty/src/shared/StringBuilder.h +227 -0
  484. package/vendor/node-pty-fork/deps/winpty/src/shared/StringBuilderTest.cc +114 -0
  485. package/vendor/node-pty-fork/deps/winpty/src/shared/StringUtil.cc +55 -0
  486. package/vendor/node-pty-fork/deps/winpty/src/shared/StringUtil.h +80 -0
  487. package/vendor/node-pty-fork/deps/winpty/src/shared/TimeMeasurement.h +63 -0
  488. package/vendor/node-pty-fork/deps/winpty/src/shared/UnixCtrlChars.h +45 -0
  489. package/vendor/node-pty-fork/deps/winpty/src/shared/UpdateGenVersion.bat +20 -0
  490. package/vendor/node-pty-fork/deps/winpty/src/shared/WindowsSecurity.cc +460 -0
  491. package/vendor/node-pty-fork/deps/winpty/src/shared/WindowsSecurity.h +104 -0
  492. package/vendor/node-pty-fork/deps/winpty/src/shared/WindowsVersion.cc +252 -0
  493. package/vendor/node-pty-fork/deps/winpty/src/shared/WindowsVersion.h +29 -0
  494. package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyAssert.cc +55 -0
  495. package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyAssert.h +64 -0
  496. package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyException.cc +57 -0
  497. package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyException.h +43 -0
  498. package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyVersion.cc +42 -0
  499. package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyVersion.h +27 -0
  500. package/vendor/node-pty-fork/deps/winpty/src/shared/winpty_snprintf.h +99 -0
  501. package/vendor/node-pty-fork/deps/winpty/src/subdir.mk +5 -0
  502. package/vendor/node-pty-fork/deps/winpty/src/tests/subdir.mk +28 -0
  503. package/vendor/node-pty-fork/deps/winpty/src/tests/trivial_test.cc +158 -0
  504. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/InputHandler.cc +114 -0
  505. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/InputHandler.h +56 -0
  506. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/OutputHandler.cc +80 -0
  507. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/OutputHandler.h +53 -0
  508. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/Util.cc +86 -0
  509. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/Util.h +31 -0
  510. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/WakeupFd.cc +70 -0
  511. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/WakeupFd.h +42 -0
  512. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/main.cc +729 -0
  513. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/subdir.mk +41 -0
  514. package/vendor/node-pty-fork/deps/winpty/src/winpty.gyp +206 -0
  515. package/vendor/node-pty-fork/deps/winpty/vcbuild.bat +83 -0
  516. package/vendor/node-pty-fork/lib/conpty_console_list_agent.js +20 -0
  517. package/vendor/node-pty-fork/lib/conpty_console_list_agent.js.map +1 -0
  518. package/vendor/node-pty-fork/lib/eventEmitter2.js +47 -0
  519. package/vendor/node-pty-fork/lib/eventEmitter2.js.map +1 -0
  520. package/vendor/node-pty-fork/lib/eventEmitter2.test.js +30 -0
  521. package/vendor/node-pty-fork/lib/eventEmitter2.test.js.map +1 -0
  522. package/vendor/node-pty-fork/lib/index.js +51 -0
  523. package/vendor/node-pty-fork/lib/index.js.map +1 -0
  524. package/vendor/node-pty-fork/lib/interfaces.js +7 -0
  525. package/vendor/node-pty-fork/lib/interfaces.js.map +1 -0
  526. package/vendor/node-pty-fork/lib/shared/conout.js +11 -0
  527. package/vendor/node-pty-fork/lib/shared/conout.js.map +1 -0
  528. package/vendor/node-pty-fork/lib/terminal.js +190 -0
  529. package/vendor/node-pty-fork/lib/terminal.js.map +1 -0
  530. package/vendor/node-pty-fork/lib/terminal.test.js +139 -0
  531. package/vendor/node-pty-fork/lib/terminal.test.js.map +1 -0
  532. package/vendor/node-pty-fork/lib/testUtils.test.js +28 -0
  533. package/vendor/node-pty-fork/lib/testUtils.test.js.map +1 -0
  534. package/vendor/node-pty-fork/lib/types.js +7 -0
  535. package/vendor/node-pty-fork/lib/types.js.map +1 -0
  536. package/vendor/node-pty-fork/lib/unixTerminal.js +304 -0
  537. package/vendor/node-pty-fork/lib/unixTerminal.js.map +1 -0
  538. package/vendor/node-pty-fork/lib/unixTerminal.test.js +330 -0
  539. package/vendor/node-pty-fork/lib/unixTerminal.test.js.map +1 -0
  540. package/vendor/node-pty-fork/lib/utils.js +17 -0
  541. package/vendor/node-pty-fork/lib/utils.js.map +1 -0
  542. package/vendor/node-pty-fork/lib/windowsConoutConnection.js +122 -0
  543. package/vendor/node-pty-fork/lib/windowsConoutConnection.js.map +1 -0
  544. package/vendor/node-pty-fork/lib/windowsPtyAgent.js +324 -0
  545. package/vendor/node-pty-fork/lib/windowsPtyAgent.js.map +1 -0
  546. package/vendor/node-pty-fork/lib/windowsPtyAgent.test.js +90 -0
  547. package/vendor/node-pty-fork/lib/windowsPtyAgent.test.js.map +1 -0
  548. package/vendor/node-pty-fork/lib/windowsTerminal.js +201 -0
  549. package/vendor/node-pty-fork/lib/windowsTerminal.js.map +1 -0
  550. package/vendor/node-pty-fork/lib/windowsTerminal.test.js +203 -0
  551. package/vendor/node-pty-fork/lib/windowsTerminal.test.js.map +1 -0
  552. package/vendor/node-pty-fork/lib/worker/conoutSocketWorker.js +22 -0
  553. package/vendor/node-pty-fork/lib/worker/conoutSocketWorker.js.map +1 -0
  554. package/vendor/node-pty-fork/package.json +35 -0
  555. package/vendor/node-pty-fork/scripts/apply-patches.mjs +341 -0
  556. package/vendor/node-pty-fork/scripts/fetch-upstream.mjs +41 -0
  557. package/vendor/node-pty-fork/scripts/install-smoke.cjs +59 -0
  558. package/vendor/node-pty-fork/scripts/runtime-install-context.cjs +24 -0
  559. package/vendor/node-pty-fork/scripts/smoke-load.cjs +10 -0
  560. package/vendor/node-pty-fork/scripts/sync-upstream.mjs +29 -0
  561. package/vendor/node-pty-fork/scripts/verify-runtime.cjs +62 -0
  562. package/vendor/node-pty-fork/scripts/verify-runtime.test.cjs +52 -0
  563. package/vendor/node-pty-fork/scripts/verify-tarball.cjs +80 -0
  564. package/vendor/node-pty-fork/src/conpty_console_list_agent.ts +19 -0
  565. package/vendor/node-pty-fork/src/eventEmitter2.test.ts +30 -0
  566. package/vendor/node-pty-fork/src/eventEmitter2.ts +48 -0
  567. package/vendor/node-pty-fork/src/index.ts +51 -0
  568. package/vendor/node-pty-fork/src/interfaces.ts +129 -0
  569. package/vendor/node-pty-fork/src/native.d.ts +56 -0
  570. package/vendor/node-pty-fork/src/shared/conout.ts +15 -0
  571. package/vendor/node-pty-fork/src/terminal.test.ts +119 -0
  572. package/vendor/node-pty-fork/src/terminal.ts +211 -0
  573. package/vendor/node-pty-fork/src/testUtils.test.ts +23 -0
  574. package/vendor/node-pty-fork/src/tsconfig.json +22 -0
  575. package/vendor/node-pty-fork/src/types.ts +15 -0
  576. package/vendor/node-pty-fork/src/unix/pty.cc +826 -0
  577. package/vendor/node-pty-fork/src/unix/spawn-helper.cc +23 -0
  578. package/vendor/node-pty-fork/src/unixTerminal.test.ts +335 -0
  579. package/vendor/node-pty-fork/src/unixTerminal.ts +320 -0
  580. package/vendor/node-pty-fork/src/utils.ts +9 -0
  581. package/vendor/node-pty-fork/src/win/conpty.cc +500 -0
  582. package/vendor/node-pty-fork/src/win/conpty_console_list.cc +43 -0
  583. package/vendor/node-pty-fork/src/win/path_util.cc +73 -0
  584. package/vendor/node-pty-fork/src/win/path_util.h +22 -0
  585. package/vendor/node-pty-fork/src/win/winpty.cc +322 -0
  586. package/vendor/node-pty-fork/src/windowsConoutConnection.ts +79 -0
  587. package/vendor/node-pty-fork/src/windowsPtyAgent.test.ts +94 -0
  588. package/vendor/node-pty-fork/src/windowsPtyAgent.ts +323 -0
  589. package/vendor/node-pty-fork/src/windowsTerminal.test.ts +214 -0
  590. package/vendor/node-pty-fork/src/windowsTerminal.ts +208 -0
  591. package/vendor/node-pty-fork/src/worker/conoutSocketWorker.ts +22 -0
  592. package/vendor/node-pty-fork/typings/node-pty.d.ts +203 -0
  593. package/vendor-src/better-sqlite3-win32-x64-node22/README.md +12 -0
  594. package/dist/public/assets/App-tPcbyRdS.js +0 -30
  595. package/dist/public/assets/DesktopWindowPage-GtIx5m8K.js +0 -2
  596. package/dist/public/assets/FileContextPanel-BcM7AIT4.js +0 -1
  597. package/dist/public/assets/GitSidebar-CMtkaxuI.js +0 -6
  598. package/dist/public/assets/MobileCreateSessionSheet-CrFY41_8.js +0 -1
  599. package/dist/public/assets/MobileWorkspaceSwitcherHeader-DLkACTnQ.js +0 -1
  600. package/dist/public/assets/ServerSettingsModal-vgOhwus4.js +0 -1
  601. package/dist/public/assets/SessionIndexPage-KK626Ra9.js +0 -1
  602. package/dist/public/assets/SettingsPage-B3edBJIo.js +0 -2
  603. package/dist/public/assets/TerminalManagerPanel-BxlhZp8c.js +0 -1
  604. package/dist/public/assets/TerminalRuntimeFallbackModal-BVLfrpSa.js +0 -1
  605. package/dist/public/assets/ToolFilesPage-N_gwwUjD.js +0 -1
  606. package/dist/public/assets/ToolGitPage-DOcuuWM1.js +0 -1
  607. package/dist/public/assets/ToolProcessesPage-D-FfJ7Re.js +0 -1
  608. package/dist/public/assets/ToolsHomePage-CHfPxd20.js +0 -1
  609. package/dist/public/assets/WorkbenchLandingPage-CTTnfovY.js +0 -1
  610. package/dist/public/assets/WorkbenchLayout-CbpJg0g1.js +0 -244
  611. package/dist/public/assets/WorkbenchModal-Bt_1fYmM.js +0 -1
  612. package/dist/public/assets/WorkbenchShellRoute-DyaMnPfS.js +0 -1
  613. package/dist/public/assets/WorkspaceDebugDetailPage-s7yuDIxR.js +0 -1
  614. package/dist/public/assets/WorkspaceDetailPage-Cf-gVpqK.js +0 -1
  615. package/dist/public/assets/WorkspaceHomePage-COf6I8sT.js +0 -1
  616. package/dist/public/assets/file-tree-icon-BeHqeru9.js +0 -590
  617. package/dist/public/assets/index-CuzMc7q2.js +0 -42
  618. package/dist/public/assets/model-switch-api-c6kcbBGm.js +0 -1
  619. package/dist/public/assets/realtime-client-CRCx5xBt.js +0 -1
  620. package/dist/public/assets/useRegisteredDebugTemplates-D6YtNS0r.js +0 -1
@@ -0,0 +1,939 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { accessSync, constants, existsSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
3
+ import { delimiter, dirname, isAbsolute, join, sep } from "node:path";
4
+ import { spawn } from "node:child_process";
5
+ import { tmpdir } from "node:os";
6
+ import { buildClaudeMessageSignature, buildClaudeProgressiveTrackKey, buildClaudeStableRawRef, normalizeClaudeMessagePart, normalizeClaudeMessageParts, readClaudeMessageId, readClaudeStableRawRefIdentity, shouldReuseClaudeProgressiveIdentity, toClaudeRecord } from "../claude-message-utils.js";
7
+ import { ClaudeCodeAdapter } from "../providers/claude-code.js";
8
+ import { ensureDirectory, ensureText, nextTimestamp, safeDate, stringifyStructuredValue } from "../providers/utils.js";
9
+ import { CLAUDE_CODE_SESSION_STORE_PROFILE } from "../providers/claude-session-store.js";
10
+ /**
11
+ * Claude 真实运行时:通过 claude.cmd 流式读取事件,而不是伪造写文件。
12
+ */
13
+ export class ClaudeRuntimeAdapter {
14
+ options;
15
+ providerId;
16
+ commandPath;
17
+ constructor(options) {
18
+ this.options = options;
19
+ this.providerId = options.providerId ?? "claude-code";
20
+ this.commandPath = resolveClaudeCommand(options.commandPath);
21
+ }
22
+ async startSession(request, sink) {
23
+ const homeDir = request.runtimeHomeDir?.trim() || this.options.homeDir;
24
+ const providerSessionId = request.providerSessionId ?? buildPendingClaudeSessionId(this.providerId, request.sessionId);
25
+ const rawStoreRef = buildClaudePendingRawStoreRef(this.getSessionStoreProfile(), homeDir, request.workspacePath, request.sessionId);
26
+ sink.updateSessionBinding({
27
+ providerSessionId,
28
+ rawStoreRef
29
+ });
30
+ const runtimeSeed = await buildClaudeRuntimeSeed({
31
+ homeDir,
32
+ providerId: this.providerId,
33
+ workspacePath: request.workspacePath,
34
+ sessionStoreProfile: this.getSessionStoreProfile(),
35
+ providerSessionId,
36
+ rawStoreRef
37
+ });
38
+ return this.launchClaude(request, sink, providerSessionId, rawStoreRef, [], runtimeSeed);
39
+ }
40
+ async continueSession(request, sink) {
41
+ const homeDir = request.runtimeHomeDir?.trim() || this.options.homeDir;
42
+ const providerSessionId = ensureNonEmpty(request.providerSessionId, "CLAUDE_PROVIDER_SESSION_ID_REQUIRED");
43
+ const rawStoreRef = findClaudeSessionFile(this.getSessionStoreProfile(), homeDir, request.workspacePath, providerSessionId) ??
44
+ request.rawStoreRef ??
45
+ buildClaudeRawStoreRef(this.getSessionStoreProfile(), homeDir, request.workspacePath, providerSessionId);
46
+ sink.updateSessionBinding({
47
+ providerSessionId,
48
+ rawStoreRef
49
+ });
50
+ const runtimeSeed = await buildClaudeRuntimeSeed({
51
+ homeDir,
52
+ providerId: this.providerId,
53
+ workspacePath: request.workspacePath,
54
+ sessionStoreProfile: this.getSessionStoreProfile(),
55
+ providerSessionId,
56
+ rawStoreRef
57
+ });
58
+ return this.launchClaude(request, sink, providerSessionId, rawStoreRef, ["--resume", providerSessionId], runtimeSeed);
59
+ }
60
+ launchClaude(request, sink, providerSessionId, rawStoreRef, sessionArgs, runtimeSeed) {
61
+ const homeDir = request.runtimeHomeDir?.trim() || this.options.homeDir;
62
+ const instructionFilePath = normalizeOptionalInstructionFilePath(request.options.providerInstructionFilePath);
63
+ const hookSettings = shouldInjectClaudeHookBridge(request.options.permissionMode) && this.options.hookBridge
64
+ ? createClaudeHookSettingsFile(this.options.hookBridge)
65
+ : null;
66
+ const attachmentDirectories = Array.from(new Set(request.options.attachments.map((attachment) => dirname(attachment.filePath))));
67
+ const args = [
68
+ "-p",
69
+ "--verbose",
70
+ "--output-format",
71
+ "stream-json",
72
+ "--input-format",
73
+ "stream-json",
74
+ "--include-partial-messages",
75
+ ...(instructionFilePath ? ["--system-prompt-file", instructionFilePath] : []),
76
+ ...(hookSettings ? ["--settings", hookSettings.filePath] : []),
77
+ ...attachmentDirectories.flatMap((directory) => ["--add-dir", directory]),
78
+ ...sessionArgs
79
+ ];
80
+ const permissionArgs = buildClaudePermissionArgs(request.options.permissionMode);
81
+ if (permissionArgs.length > 0) {
82
+ args.push(...permissionArgs);
83
+ }
84
+ if (request.options.model) {
85
+ args.push("--model", request.options.model);
86
+ }
87
+ logClaudeRuntimeDebug("launch.begin", {
88
+ sessionId: request.sessionId,
89
+ providerSessionId,
90
+ workspacePath: request.workspacePath,
91
+ commandPath: this.commandPath,
92
+ args,
93
+ instructionFilePath,
94
+ hookSettingsPath: hookSettings?.filePath ?? null,
95
+ hookDebugLogPath: hookSettings?.debugLogPath ?? null,
96
+ hookSettingsJson: hookSettings?.json ?? null
97
+ });
98
+ let sequence = Math.max(0, request.sequenceBase ?? 0, runtimeSeed.maxSequence);
99
+ const toolNameById = new Map();
100
+ const stableMessageRefByIdentity = new Map(runtimeSeed.stableMessageRefByIdentity);
101
+ const progressiveMessagesByTrackKey = new Map();
102
+ const emittedSignatureByMessageId = new Map(runtimeSeed.emittedSignatureByMessageId);
103
+ const streamEventState = {
104
+ currentMessageKey: null,
105
+ messages: new Map()
106
+ };
107
+ let interrupted = false;
108
+ let completed = false;
109
+ let fatalWriteError = null;
110
+ let fatalWriteErrorCode = null;
111
+ let stderrBuffer = "";
112
+ let stdoutBuffer = "";
113
+ let stdinClosed = false;
114
+ let activeProviderSessionId = providerSessionId;
115
+ let activeRawStoreRef = rawStoreRef;
116
+ const refreshBinding = (parsed) => {
117
+ const discoveredProviderSessionId = extractClaudeSessionId(parsed);
118
+ let changed = false;
119
+ if (discoveredProviderSessionId &&
120
+ discoveredProviderSessionId !== activeProviderSessionId &&
121
+ !isPendingClaudeSessionId(discoveredProviderSessionId)) {
122
+ activeProviderSessionId = discoveredProviderSessionId;
123
+ changed = true;
124
+ }
125
+ if (!isPendingClaudeSessionId(activeProviderSessionId)) {
126
+ const nextRawStoreRef = findClaudeSessionFile(this.getSessionStoreProfile(), homeDir, request.workspacePath, activeProviderSessionId) ??
127
+ buildClaudeRawStoreRef(this.getSessionStoreProfile(), homeDir, request.workspacePath, activeProviderSessionId);
128
+ if (nextRawStoreRef !== activeRawStoreRef) {
129
+ activeRawStoreRef = nextRawStoreRef;
130
+ this.ensureRuntimeStoreReady(activeRawStoreRef);
131
+ changed = true;
132
+ }
133
+ }
134
+ if (changed) {
135
+ sink.updateSessionBinding({
136
+ providerSessionId: activeProviderSessionId,
137
+ rawStoreRef: activeRawStoreRef
138
+ });
139
+ }
140
+ return {
141
+ providerSessionId: activeProviderSessionId,
142
+ rawStoreRef: activeRawStoreRef
143
+ };
144
+ };
145
+ this.ensureRuntimeStoreReady(activeRawStoreRef);
146
+ const runtimeEnv = {
147
+ ...buildClaudeRuntimeEnv(homeDir),
148
+ ...(request.runtimeEnv ?? {})
149
+ };
150
+ const proc = spawn(this.commandPath, args, {
151
+ cwd: request.workspacePath,
152
+ env: runtimeEnv,
153
+ shell: shouldSpawnClaudeViaShell(this.commandPath),
154
+ windowsHide: true,
155
+ stdio: ["pipe", "pipe", "pipe"]
156
+ });
157
+ let pendingInputWrite = Promise.resolve();
158
+ const submitDuringRun = (options) => {
159
+ pendingInputWrite = pendingInputWrite.then(() => writeClaudeStreamingInput(proc, options, completed || interrupted || stdinClosed));
160
+ return pendingInputWrite;
161
+ };
162
+ const bindingRefreshTimer = setInterval(() => {
163
+ refreshBinding();
164
+ }, 250);
165
+ void submitDuringRun(request.options).catch((error) => {
166
+ if (completed || interrupted) {
167
+ return;
168
+ }
169
+ fatalWriteError = error instanceof Error ? error.message : "claude stdin write failed";
170
+ fatalWriteErrorCode = "CLAUDE_CLI_STDIN_WRITE_FAILED";
171
+ stderrBuffer = `${stderrBuffer}\n${fatalWriteError}`.trim();
172
+ if (!proc.killed) {
173
+ proc.kill("SIGTERM");
174
+ }
175
+ });
176
+ const completedPromise = new Promise((resolve) => {
177
+ const shutdownProcessAfterTurn = () => {
178
+ stdinClosed = true;
179
+ if (!proc.stdin.destroyed) {
180
+ proc.stdin.end();
181
+ }
182
+ if (!proc.killed) {
183
+ proc.kill("SIGTERM");
184
+ }
185
+ };
186
+ const emitRuntimeError = async (detail, errorCode = "CLAUDE_RUNTIME_ERROR") => {
187
+ if (completed) {
188
+ return;
189
+ }
190
+ completed = true;
191
+ const binding = refreshBinding();
192
+ await sink.emit({
193
+ type: "error",
194
+ status: "failed",
195
+ providerSessionId: binding.providerSessionId,
196
+ rawStoreRef: binding.rawStoreRef,
197
+ errorCode,
198
+ detail
199
+ });
200
+ };
201
+ const emitRuntimeComplete = async (status, detail) => {
202
+ if (completed) {
203
+ return;
204
+ }
205
+ completed = true;
206
+ const binding = refreshBinding();
207
+ await sink.emit({
208
+ type: status,
209
+ status: status === "complete" ? "completed" : "interrupted",
210
+ providerSessionId: binding.providerSessionId,
211
+ rawStoreRef: binding.rawStoreRef,
212
+ detail
213
+ });
214
+ };
215
+ const handleControlLine = (parsed) => {
216
+ const result = readClaudeResultOutcome(parsed);
217
+ if (!result) {
218
+ return false;
219
+ }
220
+ stableMessageRefByIdentity.clear();
221
+ const settle = result.kind === "complete"
222
+ ? emitRuntimeComplete("complete", result.detail)
223
+ : emitRuntimeError(result.detail, result.errorCode);
224
+ void settle.finally(() => {
225
+ shutdownProcessAfterTurn();
226
+ resolve();
227
+ });
228
+ return true;
229
+ };
230
+ proc.stdout.setEncoding("utf8");
231
+ proc.stdout.on("data", (chunk) => {
232
+ stdoutBuffer += chunk;
233
+ const lines = stdoutBuffer.split(/\r?\n/);
234
+ stdoutBuffer = lines.pop() ?? "";
235
+ for (const line of lines) {
236
+ const trimmed = line.trim();
237
+ if (!trimmed) {
238
+ continue;
239
+ }
240
+ void this.consumeStreamLine({
241
+ line: trimmed,
242
+ onParsed: handleControlLine,
243
+ refreshBinding,
244
+ sink,
245
+ allocateSequence: () => {
246
+ sequence += 1;
247
+ return sequence;
248
+ },
249
+ toolNameById,
250
+ stableMessageRefByIdentity,
251
+ progressiveMessagesByTrackKey,
252
+ emittedSignatureByMessageId,
253
+ streamEventState
254
+ });
255
+ }
256
+ });
257
+ proc.stderr.setEncoding("utf8");
258
+ proc.stderr.on("data", (chunk) => {
259
+ stderrBuffer += chunk;
260
+ });
261
+ proc.on("error", (error) => {
262
+ clearInterval(bindingRefreshTimer);
263
+ stdinClosed = true;
264
+ hookSettings?.cleanup();
265
+ void emitRuntimeError(error.message, "CLAUDE_CLI_SPAWN_FAILED").finally(resolve);
266
+ });
267
+ proc.on("close", (code, signal) => {
268
+ clearInterval(bindingRefreshTimer);
269
+ stdinClosed = true;
270
+ hookSettings?.cleanup();
271
+ if (fatalWriteError) {
272
+ void emitRuntimeError(fatalWriteError, fatalWriteErrorCode ?? "CLAUDE_CLI_STDIN_WRITE_FAILED").finally(resolve);
273
+ return;
274
+ }
275
+ if (interrupted || signal === "SIGTERM" || signal === "SIGINT") {
276
+ void emitRuntimeComplete("interrupted", "claude process interrupted").finally(resolve);
277
+ return;
278
+ }
279
+ if (code === 0) {
280
+ void emitRuntimeComplete("complete", "claude turn completed").finally(resolve);
281
+ return;
282
+ }
283
+ const detail = stderrBuffer.trim() || `claude exited with code ${String(code)}`;
284
+ void emitRuntimeError(detail, "CLAUDE_CLI_EXIT_NON_ZERO").finally(resolve);
285
+ });
286
+ });
287
+ return {
288
+ providerSessionId: activeProviderSessionId,
289
+ rawStoreRef: activeRawStoreRef,
290
+ completed: completedPromise,
291
+ submitDuringRun,
292
+ interrupt: async () => {
293
+ if (proc.killed) {
294
+ return;
295
+ }
296
+ interrupted = true;
297
+ stdinClosed = true;
298
+ if (!proc.stdin.destroyed) {
299
+ proc.stdin.end();
300
+ }
301
+ proc.kill("SIGTERM");
302
+ }
303
+ };
304
+ }
305
+ ensureRuntimeStoreReady(rawStoreRef) {
306
+ ensureDirectory(dirname(rawStoreRef));
307
+ if (existsSync(rawStoreRef)) {
308
+ return;
309
+ }
310
+ writeFileSync(rawStoreRef, "", "utf8");
311
+ }
312
+ async consumeStreamLine(input) {
313
+ let parsed;
314
+ try {
315
+ parsed = JSON.parse(input.line);
316
+ }
317
+ catch {
318
+ return;
319
+ }
320
+ if (input.onParsed(parsed)) {
321
+ return;
322
+ }
323
+ const binding = input.refreshBinding(parsed);
324
+ const envelopes = collectMessageEnvelopes(parsed, input.streamEventState);
325
+ for (const envelope of envelopes) {
326
+ const parts = normalizeClaudeMessageParts(envelope.message.content);
327
+ for (let partIndex = 0; partIndex < parts.length; partIndex += 1) {
328
+ const part = parts[partIndex];
329
+ const normalized = normalizeClaudeMessagePart({
330
+ part,
331
+ envelope,
332
+ providerId: this.providerId,
333
+ providerSessionId: binding.providerSessionId,
334
+ partIndex,
335
+ timestamp: safeDate(envelope.timestamp, nextTimestamp()),
336
+ toolNameById: input.toolNameById,
337
+ resolveStableMessageRef: (identity) => {
338
+ const existing = input.stableMessageRefByIdentity.get(identity);
339
+ if (existing) {
340
+ return existing;
341
+ }
342
+ const sequence = input.allocateSequence();
343
+ const created = {
344
+ sequence,
345
+ rawRef: buildClaudeStableRawRef(identity, this.providerId)
346
+ };
347
+ input.stableMessageRefByIdentity.set(identity, created);
348
+ return created;
349
+ }
350
+ });
351
+ if (!normalized) {
352
+ continue;
353
+ }
354
+ if (normalized.role === "user") {
355
+ input.progressiveMessagesByTrackKey.clear();
356
+ }
357
+ const trackKey = buildClaudeProgressiveTrackKey(normalized, partIndex);
358
+ const previousProgressive = trackKey
359
+ ? input.progressiveMessagesByTrackKey.get(trackKey) ?? null
360
+ : null;
361
+ const nextMessage = previousProgressive && shouldReuseClaudeProgressiveIdentity(previousProgressive, normalized)
362
+ ? {
363
+ ...normalized,
364
+ messageId: previousProgressive.messageId,
365
+ rawRef: previousProgressive.rawRef,
366
+ sequence: previousProgressive.sequence
367
+ }
368
+ : normalized;
369
+ if (trackKey) {
370
+ input.progressiveMessagesByTrackKey.set(trackKey, nextMessage);
371
+ }
372
+ const signature = buildClaudeMessageSignature(nextMessage);
373
+ if (input.emittedSignatureByMessageId.get(nextMessage.messageId) === signature) {
374
+ continue;
375
+ }
376
+ input.emittedSignatureByMessageId.set(nextMessage.messageId, signature);
377
+ await input.sink.emit({
378
+ type: "message",
379
+ providerSessionId: binding.providerSessionId,
380
+ rawStoreRef: binding.rawStoreRef,
381
+ message: nextMessage,
382
+ status: "running",
383
+ rawEventRef: nextMessage.rawRef
384
+ });
385
+ }
386
+ }
387
+ }
388
+ getSessionStoreProfile() {
389
+ return this.options.sessionStoreProfile ?? CLAUDE_CODE_SESSION_STORE_PROFILE;
390
+ }
391
+ }
392
+ function writeClaudeStreamingInput(proc, options, isClosed) {
393
+ if (isClosed || proc.killed || proc.stdin.destroyed || !proc.stdin.writable) {
394
+ return Promise.reject(new Error("IN_RUN_INPUT_NOT_SUPPORTED"));
395
+ }
396
+ const payload = JSON.stringify(buildClaudeStreamingUserInput(options));
397
+ return new Promise((resolve, reject) => {
398
+ proc.stdin.write(`${payload}\n`, "utf8", (error) => {
399
+ if (error) {
400
+ reject(error);
401
+ return;
402
+ }
403
+ resolve();
404
+ });
405
+ });
406
+ }
407
+ function buildClaudeStreamingUserInput(options) {
408
+ return {
409
+ type: "user",
410
+ message: {
411
+ role: "user",
412
+ content: [
413
+ {
414
+ type: "text",
415
+ text: options.providerPrompt ?? options.content
416
+ }
417
+ ]
418
+ }
419
+ };
420
+ }
421
+ function normalizeOptionalInstructionFilePath(value) {
422
+ const normalized = value?.trim();
423
+ if (!normalized) {
424
+ return null;
425
+ }
426
+ return normalized;
427
+ }
428
+ export function buildClaudePermissionArgs(permissionMode) {
429
+ if (permissionMode === "default" ||
430
+ permissionMode === "acceptEdits" ||
431
+ permissionMode === "bypassPermissions") {
432
+ return ["--permission-mode", permissionMode];
433
+ }
434
+ return [];
435
+ }
436
+ function shouldInjectClaudeHookBridge(permissionMode) {
437
+ return permissionMode !== "bypassPermissions";
438
+ }
439
+ function buildClaudeRuntimeEnv(homeDir) {
440
+ const resolvedHomeDir = join(homeDir);
441
+ const xdgConfigHome = join(resolvedHomeDir, "xdg-config");
442
+ const xdgDataHome = join(resolvedHomeDir, "xdg-data");
443
+ const xdgStateHome = join(resolvedHomeDir, "xdg-state");
444
+ const xdgCacheHome = join(resolvedHomeDir, "xdg-cache");
445
+ const appDataHome = join(resolvedHomeDir, "appdata");
446
+ const localAppDataHome = join(resolvedHomeDir, "localappdata");
447
+ [
448
+ resolvedHomeDir,
449
+ xdgConfigHome,
450
+ xdgDataHome,
451
+ xdgStateHome,
452
+ xdgCacheHome,
453
+ appDataHome,
454
+ localAppDataHome
455
+ ].forEach((directoryPath) => {
456
+ ensureDirectory(directoryPath);
457
+ });
458
+ return {
459
+ ...process.env,
460
+ CLAUDE_CONFIG_DIR: resolvedHomeDir,
461
+ HOME: resolvedHomeDir,
462
+ USERPROFILE: resolvedHomeDir,
463
+ XDG_CONFIG_HOME: xdgConfigHome,
464
+ XDG_DATA_HOME: xdgDataHome,
465
+ XDG_STATE_HOME: xdgStateHome,
466
+ XDG_CACHE_HOME: xdgCacheHome,
467
+ APPDATA: appDataHome,
468
+ LOCALAPPDATA: localAppDataHome
469
+ };
470
+ }
471
+ function createClaudeHookSettingsFile(input) {
472
+ const tempDir = mkdtempSync(join(tmpdir(), "codingns-claude-hooks-"));
473
+ const filePath = join(tempDir, "settings.json");
474
+ const debugLogPath = join(tmpdir(), "codingns-claude-hook-bridge.log");
475
+ const command = buildClaudeHookBridgeCommand(input, tempDir, debugLogPath);
476
+ const settings = {
477
+ hooks: {
478
+ PreToolUse: ["Bash", "Edit", "Write", "MultiEdit", "NotebookEdit"].map((matcher) => ({
479
+ matcher,
480
+ hooks: [
481
+ {
482
+ type: "command",
483
+ command
484
+ }
485
+ ]
486
+ }))
487
+ }
488
+ };
489
+ const settingsJson = JSON.stringify(settings);
490
+ writeFileSync(filePath, settingsJson, "utf8");
491
+ return {
492
+ filePath,
493
+ debugLogPath,
494
+ json: settingsJson,
495
+ cleanup: () => {
496
+ rmSync(tempDir, { recursive: true, force: true });
497
+ }
498
+ };
499
+ }
500
+ function buildClaudeHookBridgeCommand(input, tempDir, debugLogPath) {
501
+ if (process.platform === "win32") {
502
+ void tempDir;
503
+ return `${quoteShellArgument(process.execPath)} ${quoteShellArgument(input.scriptPath)} --url ${quoteShellArgument(input.url)} --token ${quoteShellArgument(input.token)} --debug-log ${quoteShellArgument(debugLogPath)}`;
504
+ }
505
+ return `${quoteShellArgument(process.execPath)} ${quoteShellArgument(input.scriptPath)} --url ${quoteShellArgument(input.url)} --token ${quoteShellArgument(input.token)} --debug-log ${quoteShellArgument(debugLogPath)}`;
506
+ }
507
+ function quoteShellArgument(value) {
508
+ return `"${value.replace(/"/g, '\\"')}"`;
509
+ }
510
+ function resolveClaudeCommand(explicitPath) {
511
+ const explicitCandidate = pickFirstNonEmpty(explicitPath, process.env.CODINGNS_CLAUDE_CODE_COMMAND, process.env.CLAUDE_CODE_COMMAND);
512
+ if (explicitCandidate) {
513
+ return resolveExecutableCandidate(explicitCandidate) ?? explicitCandidate;
514
+ }
515
+ const candidates = process.platform === "win32"
516
+ ? [
517
+ "claude.cmd",
518
+ process.env.APPDATA ? join(process.env.APPDATA, "npm", "claude.cmd") : "",
519
+ process.env.USERPROFILE
520
+ ? join(process.env.USERPROFILE, "AppData", "Roaming", "npm", "claude.cmd")
521
+ : "",
522
+ "claude"
523
+ ]
524
+ : ["claude", "/opt/homebrew/bin/claude", "/usr/local/bin/claude", "/usr/bin/claude"];
525
+ for (const candidate of candidates) {
526
+ const resolved = resolveExecutableCandidate(candidate);
527
+ if (resolved) {
528
+ return resolved;
529
+ }
530
+ }
531
+ return process.platform === "win32" ? "claude.cmd" : "claude";
532
+ }
533
+ function shouldSpawnClaudeViaShell(commandPath) {
534
+ return process.platform === "win32" && /\.(cmd|bat)$/i.test(commandPath);
535
+ }
536
+ async function buildClaudeRuntimeSeed(input) {
537
+ const seed = {
538
+ maxSequence: 0,
539
+ stableMessageRefByIdentity: new Map(),
540
+ emittedSignatureByMessageId: new Map()
541
+ };
542
+ if (!input.providerSessionId.trim()
543
+ || isPendingClaudeSessionId(input.providerSessionId)
544
+ || !existsSync(input.rawStoreRef)) {
545
+ return seed;
546
+ }
547
+ try {
548
+ const historyAdapter = new ClaudeCodeAdapter({
549
+ homeDir: input.homeDir,
550
+ providerId: input.providerId,
551
+ sessionStoreProfile: input.sessionStoreProfile
552
+ });
553
+ let cursor = null;
554
+ while (true) {
555
+ const page = await historyAdapter.readSessionHistory(input.providerSessionId, input.rawStoreRef, cursor, 100, "forward");
556
+ for (const message of page.messages) {
557
+ const identity = readClaudeStableRawRefIdentity(message.rawRef);
558
+ if (identity) {
559
+ seed.stableMessageRefByIdentity.set(identity, {
560
+ rawRef: message.rawRef,
561
+ sequence: message.sequence
562
+ });
563
+ }
564
+ seed.emittedSignatureByMessageId.set(message.messageId, buildClaudeMessageSignature(message));
565
+ seed.maxSequence = Math.max(seed.maxSequence, message.sequence);
566
+ }
567
+ if (!page.nextCursor) {
568
+ break;
569
+ }
570
+ cursor = page.nextCursor;
571
+ }
572
+ }
573
+ catch {
574
+ return seed;
575
+ }
576
+ return seed;
577
+ }
578
+ const CLAUDE_RUNTIME_DEBUG_ENABLED = /^(1|true|yes)$/i.test(process.env.CODINGNS_PERMISSION_DEBUG?.trim() ?? "");
579
+ function logClaudeRuntimeDebug(scope, detail) {
580
+ if (!CLAUDE_RUNTIME_DEBUG_ENABLED) {
581
+ return;
582
+ }
583
+ const suffix = Object.entries(detail)
584
+ .filter(([, value]) => value !== undefined)
585
+ .map(([key, value]) => {
586
+ if (value === null) {
587
+ return `${key}=null`;
588
+ }
589
+ if (typeof value === "string") {
590
+ return `${key}=${JSON.stringify(value.length > 400 ? `${value.slice(0, 400)}...` : value)}`;
591
+ }
592
+ try {
593
+ const json = JSON.stringify(value);
594
+ return `${key}=${json.length > 400 ? `${json.slice(0, 400)}...` : json}`;
595
+ }
596
+ catch {
597
+ return `${key}=${String(value)}`;
598
+ }
599
+ })
600
+ .join(" ");
601
+ console.info(`[permission-debug][claude-runtime] ${scope}${suffix ? ` ${suffix}` : ""}`);
602
+ }
603
+ function resolveExecutableCandidate(candidate) {
604
+ const trimmed = candidate.trim();
605
+ if (!trimmed) {
606
+ return null;
607
+ }
608
+ if (hasPathSegment(trimmed)) {
609
+ return isExecutableFile(trimmed) ? trimmed : null;
610
+ }
611
+ return resolveExecutableOnPath(trimmed);
612
+ }
613
+ function resolveExecutableOnPath(command) {
614
+ const pathValue = process.env.PATH ?? "";
615
+ if (!pathValue.trim()) {
616
+ return null;
617
+ }
618
+ const extensions = process.platform === "win32"
619
+ ? buildWindowsExecutableExtensions(command)
620
+ : [""];
621
+ for (const entry of pathValue.split(delimiter)) {
622
+ const trimmedEntry = entry.trim();
623
+ if (!trimmedEntry) {
624
+ continue;
625
+ }
626
+ for (const extension of extensions) {
627
+ const candidatePath = join(trimmedEntry, `${command}${extension}`);
628
+ if (isExecutableFile(candidatePath)) {
629
+ return candidatePath;
630
+ }
631
+ }
632
+ }
633
+ return null;
634
+ }
635
+ function buildWindowsExecutableExtensions(command) {
636
+ if (/\.[^./\\]+$/.test(command)) {
637
+ return [""];
638
+ }
639
+ const pathExtensions = (process.env.PATHEXT ?? ".COM;.EXE;.BAT;.CMD")
640
+ .split(";")
641
+ .map((value) => value.trim())
642
+ .filter((value) => value.length > 0);
643
+ return ["", ...pathExtensions];
644
+ }
645
+ function hasPathSegment(value) {
646
+ return isAbsolute(value) || value.includes(sep) || value.includes("/") || value.includes("\\");
647
+ }
648
+ function isExecutableFile(filePath) {
649
+ if (!existsSync(filePath)) {
650
+ return false;
651
+ }
652
+ if (process.platform === "win32") {
653
+ return true;
654
+ }
655
+ try {
656
+ accessSync(filePath, constants.X_OK);
657
+ return true;
658
+ }
659
+ catch {
660
+ return false;
661
+ }
662
+ }
663
+ function pickFirstNonEmpty(...values) {
664
+ for (const value of values) {
665
+ if (value && value.trim().length > 0) {
666
+ return value.trim();
667
+ }
668
+ }
669
+ return null;
670
+ }
671
+ function buildPendingClaudeSessionId(providerId, sessionId) {
672
+ return `pending://${providerId}/${sessionId}`;
673
+ }
674
+ function isPendingClaudeSessionId(sessionId) {
675
+ return sessionId.startsWith("pending://");
676
+ }
677
+ function buildClaudeRawStoreRef(profile, homeDir, workspacePath, sessionId) {
678
+ return profile.resolveSessionFilePath(homeDir, workspacePath, sessionId);
679
+ }
680
+ function buildClaudePendingRawStoreRef(profile, homeDir, workspacePath, sessionId) {
681
+ return profile.resolvePendingSessionFilePath(homeDir, workspacePath, sessionId);
682
+ }
683
+ function findClaudeSessionFile(profile, homeDir, workspacePath, sessionId) {
684
+ return profile.findSessionFile(homeDir, workspacePath, sessionId);
685
+ }
686
+ function extractClaudeSessionId(parsed) {
687
+ const directSessionId = ensureText(parsed?.session_id).trim();
688
+ if (directSessionId.length > 0) {
689
+ return directSessionId;
690
+ }
691
+ const resultSessionId = ensureText((parsed?.result ?? {}).session_id).trim();
692
+ if (resultSessionId.length > 0) {
693
+ return resultSessionId;
694
+ }
695
+ return null;
696
+ }
697
+ function ensureNonEmpty(value, errorCode) {
698
+ if (!value || value.trim().length === 0) {
699
+ throw new Error(errorCode);
700
+ }
701
+ return value.trim();
702
+ }
703
+ function readClaudeResultOutcome(record) {
704
+ if (ensureText(record.type).trim() !== "result") {
705
+ return null;
706
+ }
707
+ const subtype = ensureText(record.subtype).trim().toLowerCase();
708
+ const stopReason = ensureText(record.stop_reason).trim();
709
+ const resultRecord = (record.result ?? {});
710
+ const nestedStopReason = ensureText(resultRecord.stop_reason).trim();
711
+ const detailCandidate = ensureText(record.error).trim()
712
+ || ensureText(record.message).trim()
713
+ || ensureText(resultRecord.error).trim()
714
+ || ensureText(resultRecord.message).trim()
715
+ || stopReason
716
+ || nestedStopReason;
717
+ if (!subtype || subtype === "success" || subtype === "completed") {
718
+ return {
719
+ kind: "complete",
720
+ detail: detailCandidate || "claude turn completed"
721
+ };
722
+ }
723
+ return {
724
+ kind: "error",
725
+ detail: detailCandidate || `claude result ${subtype}`,
726
+ errorCode: `CLAUDE_RESULT_${subtype.toUpperCase().replace(/[^A-Z0-9]+/g, "_")}`
727
+ };
728
+ }
729
+ function collectMessageEnvelopes(record, streamEventState) {
730
+ if (ensureText(record.type).trim() === "stream_event") {
731
+ return collectStreamEventEnvelopes(record, streamEventState);
732
+ }
733
+ const envelopes = [];
734
+ const directType = ensureText(record.type).trim();
735
+ const directMessage = toClaudeRecord(record.message);
736
+ if (directType === "user" || directType === "assistant") {
737
+ envelopes.push({
738
+ type: directType,
739
+ source: "direct",
740
+ messageId: readClaudeMessageId(directMessage, record),
741
+ timestamp: record.timestamp,
742
+ message: directMessage
743
+ });
744
+ }
745
+ const progressMessage = readProgressEnvelope(record);
746
+ if (progressMessage) {
747
+ envelopes.push(progressMessage);
748
+ }
749
+ return envelopes;
750
+ }
751
+ function readProgressEnvelope(record) {
752
+ if (ensureText(record.type) !== "progress") {
753
+ return null;
754
+ }
755
+ const nested = toClaudeRecord(toClaudeRecord(record.data).message);
756
+ const nestedType = ensureText(nested.type).trim();
757
+ const nestedMessage = toClaudeRecord(nested.message);
758
+ if (nestedType !== "user" && nestedType !== "assistant") {
759
+ return null;
760
+ }
761
+ return {
762
+ type: nestedType,
763
+ source: "progress",
764
+ messageId: readClaudeMessageId(nestedMessage, nested),
765
+ timestamp: nested.timestamp ?? record.timestamp,
766
+ message: nestedMessage
767
+ };
768
+ }
769
+ function collectStreamEventEnvelopes(record, state) {
770
+ const event = toClaudeRecord(record.event);
771
+ const eventType = ensureText(event.type).trim();
772
+ if (!eventType) {
773
+ return [];
774
+ }
775
+ if (eventType === "message_start") {
776
+ const message = toClaudeRecord(event.message);
777
+ const role = ensureText(message.role).trim();
778
+ if (role !== "user" && role !== "assistant") {
779
+ return [];
780
+ }
781
+ const messageId = readClaudeMessageId(message, message);
782
+ const messageKey = messageId || `stream:${randomUUID()}`;
783
+ const messageState = {
784
+ type: role,
785
+ messageId,
786
+ timestamp: message.timestamp ?? record.timestamp,
787
+ partsByIndex: new Map()
788
+ };
789
+ const initialParts = normalizeClaudeMessageParts(message.content);
790
+ initialParts.forEach((part, partIndex) => {
791
+ messageState.partsByIndex.set(partIndex, {
792
+ part: { ...part }
793
+ });
794
+ });
795
+ state.currentMessageKey = messageKey;
796
+ state.messages.set(messageKey, messageState);
797
+ return [];
798
+ }
799
+ const messageKey = resolveClaudeStreamMessageKey(record, state);
800
+ if (!messageKey) {
801
+ return [];
802
+ }
803
+ const messageState = state.messages.get(messageKey);
804
+ if (!messageState) {
805
+ return [];
806
+ }
807
+ if (record.timestamp !== undefined && record.timestamp !== null) {
808
+ messageState.timestamp = record.timestamp;
809
+ }
810
+ if (eventType === "content_block_start") {
811
+ const partIndex = readClaudeContentBlockIndex(event);
812
+ if (partIndex < 0) {
813
+ return [];
814
+ }
815
+ const contentBlock = toClaudeRecord(event.content_block);
816
+ const partState = {
817
+ part: { ...contentBlock }
818
+ };
819
+ if (ensureText(contentBlock.type).trim() === "tool_use") {
820
+ partState.jsonBuffer = serializeClaudeToolInput(contentBlock.input);
821
+ }
822
+ messageState.partsByIndex.set(partIndex, partState);
823
+ return [buildClaudeStreamEnvelope(messageState, partIndex, messageKey)];
824
+ }
825
+ if (eventType === "content_block_delta") {
826
+ const partIndex = readClaudeContentBlockIndex(event);
827
+ if (partIndex < 0) {
828
+ return [];
829
+ }
830
+ const partState = messageState.partsByIndex.get(partIndex);
831
+ if (!partState) {
832
+ return [];
833
+ }
834
+ applyClaudeContentBlockDelta(partState, toClaudeRecord(event.delta));
835
+ return [buildClaudeStreamEnvelope(messageState, partIndex, messageKey)];
836
+ }
837
+ if (eventType === "content_block_stop") {
838
+ const partIndex = readClaudeContentBlockIndex(event);
839
+ if (partIndex < 0 || !messageState.partsByIndex.has(partIndex)) {
840
+ return [];
841
+ }
842
+ return [buildClaudeStreamEnvelope(messageState, partIndex, messageKey)];
843
+ }
844
+ if (eventType === "message_delta") {
845
+ const delta = toClaudeRecord(event.delta);
846
+ messageState.stopReason = ensureText(delta.stop_reason).trim() || null;
847
+ return [];
848
+ }
849
+ if (eventType === "message_stop") {
850
+ state.messages.delete(messageKey);
851
+ if (state.currentMessageKey === messageKey) {
852
+ state.currentMessageKey = null;
853
+ }
854
+ }
855
+ return [];
856
+ }
857
+ function resolveClaudeStreamMessageKey(record, state) {
858
+ const event = toClaudeRecord(record.event);
859
+ const eventMessage = toClaudeRecord(event.message);
860
+ const eventDelta = toClaudeRecord(event.delta);
861
+ const directKey = readClaudeMessageId(eventMessage, eventMessage)
862
+ || ensureText(event.message_id).trim()
863
+ || ensureText(eventDelta.message_id).trim()
864
+ || ensureText(record.message_id).trim();
865
+ if (directKey.length > 0 && state.messages.has(directKey)) {
866
+ state.currentMessageKey = directKey;
867
+ return directKey;
868
+ }
869
+ if (state.currentMessageKey && state.messages.has(state.currentMessageKey)) {
870
+ return state.currentMessageKey;
871
+ }
872
+ return directKey.length > 0 ? directKey : null;
873
+ }
874
+ function readClaudeContentBlockIndex(event) {
875
+ const candidates = [event.index, event.content_block_index, event.contentBlockIndex];
876
+ for (const candidate of candidates) {
877
+ if (typeof candidate === "number" && Number.isInteger(candidate) && candidate >= 0) {
878
+ return candidate;
879
+ }
880
+ }
881
+ return -1;
882
+ }
883
+ function buildClaudeStreamEnvelope(messageState, partIndex, messageKey) {
884
+ const content = Array.from({ length: partIndex + 1 }, (_, index) => index === partIndex ? { ...(messageState.partsByIndex.get(partIndex)?.part ?? {}) } : "");
885
+ return {
886
+ type: messageState.type,
887
+ source: "stream_event",
888
+ messageId: messageState.messageId,
889
+ envelopeKey: messageKey ?? null,
890
+ timestamp: messageState.timestamp,
891
+ message: {
892
+ content
893
+ }
894
+ };
895
+ }
896
+ function applyClaudeContentBlockDelta(partState, delta) {
897
+ const deltaType = ensureText(delta.type).trim();
898
+ if (deltaType === "text_delta") {
899
+ partState.part.text = `${ensureText(partState.part.text)}${ensureText(delta.text)}`;
900
+ return;
901
+ }
902
+ if (deltaType === "thinking_delta") {
903
+ partState.part.type = ensureText(partState.part.type).trim() || "thinking";
904
+ partState.part.thinking = `${ensureText(partState.part.thinking)}${ensureText(delta.thinking)}`;
905
+ return;
906
+ }
907
+ if (deltaType === "input_json_delta") {
908
+ partState.part.type = ensureText(partState.part.type).trim() || "tool_use";
909
+ const nextBuffer = `${partState.jsonBuffer ?? ""}${ensureText(delta.partial_json)}`;
910
+ partState.jsonBuffer = nextBuffer;
911
+ partState.part.input = parseClaudePartialJson(nextBuffer);
912
+ return;
913
+ }
914
+ if (deltaType === "signature_delta") {
915
+ partState.part.signature = `${ensureText(partState.part.signature)}${ensureText(delta.signature)}`;
916
+ }
917
+ }
918
+ function parseClaudePartialJson(value) {
919
+ const trimmed = value.trim();
920
+ if (!trimmed) {
921
+ return "";
922
+ }
923
+ try {
924
+ return JSON.parse(trimmed);
925
+ }
926
+ catch {
927
+ return trimmed;
928
+ }
929
+ }
930
+ function serializeClaudeToolInput(value) {
931
+ if (typeof value === "string") {
932
+ return value;
933
+ }
934
+ if (value === undefined || value === null) {
935
+ return "";
936
+ }
937
+ return stringifyStructuredValue(value);
938
+ }
939
+ //# sourceMappingURL=claude-runtime.js.map