aws-runtime-bridge 1.9.172 → 1.9.179

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 (383) hide show
  1. package/CHANGELOG.md +314 -0
  2. package/README.md +61 -2
  3. package/dist/adapter/AcodeSdkAdapter.d.ts +374 -1
  4. package/dist/adapter/AcodeSdkAdapter.js +3 -3
  5. package/dist/adapter/AdapterRegistry.d.ts +28 -0
  6. package/dist/adapter/ClaudeSdkAdapter.d.ts +71 -0
  7. package/dist/adapter/CodexSdkAdapter.d.ts +14 -0
  8. package/dist/adapter/OpencodeSdkAdapter.d.ts +44 -0
  9. package/dist/adapter/acode-tool-names.d.ts +9 -0
  10. package/dist/adapter/idle-poll-loop.d.ts +20 -0
  11. package/dist/adapter/index.d.ts +3 -0
  12. package/dist/adapter/instance-ai-config-resolver.d.ts +20 -0
  13. package/dist/adapter/prompts.d.ts +12 -0
  14. package/dist/adapter/types.d.ts +184 -0
  15. package/dist/browser/browser-bootstrap.d.ts +15 -0
  16. package/dist/browser/browser-connect-token.d.ts +11 -0
  17. package/dist/browser/browser-frame-encode.d.ts +32 -0
  18. package/dist/browser/browser-pool.d.ts +129 -0
  19. package/dist/browser/browser-profile-store.d.ts +41 -0
  20. package/dist/browser/browser-ws-bridge.d.ts +20 -0
  21. package/dist/browser/built-in-browser-tools.d.ts +44 -0
  22. package/dist/browser/element-locator.d.ts +25 -0
  23. package/dist/browser/element-picker.d.ts +30 -0
  24. package/dist/browser/frame-encode.d.ts +19 -0
  25. package/dist/browser/input-dispatcher.d.ts +35 -0
  26. package/dist/browser/listener-store.d.ts +44 -0
  27. package/dist/browser/page-listener-manager.d.ts +88 -0
  28. package/dist/browser/page-listener-types.d.ts +38 -0
  29. package/dist/browser/screencast-differ.d.ts +10 -0
  30. package/dist/browser/screencast-manager.d.ts +94 -0
  31. package/dist/browser/snapshot-serializer.d.ts +56 -0
  32. package/dist/browser/ssrf-guard.d.ts +44 -0
  33. package/dist/browser/stealth.d.ts +21 -0
  34. package/dist/browser/step-archive.d.ts +13 -0
  35. package/dist/browser/types.d.ts +100 -0
  36. package/dist/browser/ws-server.d.ts +54 -0
  37. package/dist/config.d.ts +138 -2
  38. package/dist/config.js +2 -2
  39. package/dist/desktop/built-in-desktop-tools.d.ts +68 -0
  40. package/dist/desktop/built-in-desktop-tools.js +2 -1
  41. package/dist/desktop/desktop-control.d.ts +142 -0
  42. package/dist/desktop/desktop-control.js +2 -0
  43. package/dist/desktop/desktop-mcp-client.d.ts +28 -0
  44. package/dist/desktop/desktop-staleness.d.ts +66 -0
  45. package/dist/desktop/desktop-staleness.js +2 -0
  46. package/dist/index.d.ts +4 -0
  47. package/dist/index.js +1 -1
  48. package/dist/middleware/auth.d.ts +26 -0
  49. package/dist/middleware/auth.js +1 -1
  50. package/dist/remote-desktop/computer-control.d.ts +3 -0
  51. package/dist/remote-desktop/coords.d.ts +6 -0
  52. package/dist/remote-desktop/frame-backpressure.d.ts +10 -0
  53. package/dist/remote-desktop/frame-encode.d.ts +3 -0
  54. package/dist/remote-desktop/index.js +2 -2
  55. package/dist/remote-desktop/input-dispatcher.d.ts +4 -0
  56. package/dist/remote-desktop/permission-manager.d.ts +3 -0
  57. package/dist/remote-desktop/screen-capture.d.ts +91 -0
  58. package/dist/remote-desktop/session-manager.d.ts +47 -0
  59. package/dist/remote-desktop/session-manager.js +1 -1
  60. package/dist/remote-desktop/system-backend.d.ts +64 -0
  61. package/dist/remote-desktop/types.d.ts +25 -0
  62. package/dist/remote-desktop/ui-automation.d.ts +11 -0
  63. package/dist/remote-desktop/win32-api.d.ts +10 -0
  64. package/dist/routes/acode-todos.d.ts +13 -0
  65. package/dist/routes/agent-state.d.ts +15 -0
  66. package/dist/routes/ai-sources.js +1 -1
  67. package/dist/routes/background-tasks.d.ts +18 -0
  68. package/dist/routes/background-tasks.js +2 -2
  69. package/dist/routes/bridge-temp-files.d.ts +1 -0
  70. package/dist/routes/bridge-temp-files.js +2 -0
  71. package/dist/routes/browser-listeners.d.ts +17 -0
  72. package/dist/routes/browser-sessions.d.ts +10 -0
  73. package/dist/routes/capabilities.js +1 -1
  74. package/dist/routes/dashboard-icon.d.ts +9 -0
  75. package/dist/routes/dashboard-icon.js +2 -0
  76. package/dist/routes/dashboard-theme.d.ts +24 -0
  77. package/dist/routes/dashboard-theme.js +157 -0
  78. package/dist/routes/dashboard.d.ts +9 -0
  79. package/dist/routes/dashboard.js +2021 -628
  80. package/dist/routes/debug-mount.d.ts +16 -0
  81. package/dist/routes/desktop-control.d.ts +15 -0
  82. package/dist/routes/desktop-control.js +2 -0
  83. package/dist/routes/events.d.ts +4 -0
  84. package/dist/routes/file-browser.d.ts +15 -10
  85. package/dist/routes/file-browser.js +1 -1
  86. package/dist/routes/file-change-diff.d.ts +25 -0
  87. package/dist/routes/file-diff-rollback.d.ts +28 -0
  88. package/dist/routes/file-snapshot.d.ts +7 -0
  89. package/dist/routes/git.d.ts +185 -0
  90. package/dist/routes/git.js +34 -34
  91. package/dist/routes/instance-tool-status.d.ts +5 -0
  92. package/dist/routes/instance.d.ts +8 -0
  93. package/dist/routes/instance.js +1 -1
  94. package/dist/routes/jdks.d.ts +4 -0
  95. package/dist/routes/launch.d.ts +5 -0
  96. package/dist/routes/lsp-providers.d.ts +11 -0
  97. package/dist/routes/lsp-providers.js +2 -0
  98. package/dist/routes/lsp.d.ts +41 -0
  99. package/dist/routes/lsp.js +4 -2
  100. package/dist/routes/mcp-extra.d.ts +15 -0
  101. package/dist/routes/mcp.d.ts +16 -0
  102. package/dist/routes/mcp.js +1 -1
  103. package/dist/routes/plugins.d.ts +19 -0
  104. package/dist/routes/plugins.js +1 -1
  105. package/dist/routes/processes.d.ts +4 -0
  106. package/dist/routes/properties.d.ts +4 -0
  107. package/dist/routes/pty.d.ts +29 -0
  108. package/dist/routes/runtime-binding.d.ts +3 -0
  109. package/dist/routes/sessions.d.ts +22 -0
  110. package/dist/routes/sessions.js +1 -1
  111. package/dist/routes/skills.d.ts +15 -0
  112. package/dist/routes/skills.js +1 -1
  113. package/dist/routes/sub-agents.d.ts +11 -0
  114. package/dist/routes/sub-agents.js +1 -1
  115. package/dist/routes/task-context.d.ts +5 -0
  116. package/dist/routes/tech-stack.d.ts +6 -0
  117. package/dist/routes/tech-stack.js +2 -0
  118. package/dist/routes/terminal.d.ts +122 -0
  119. package/dist/routes/terminal.js +22 -22
  120. package/dist/routes/workspace-index.d.ts +12 -0
  121. package/dist/routes/workspace-index.js +2 -0
  122. package/dist/routes/yml.d.ts +4 -0
  123. package/dist/scripts/migrate-user-scopes.d.ts +26 -0
  124. package/dist/scripts/migrate-user-scopes.js +2 -0
  125. package/dist/services/access-control.d.ts +21 -0
  126. package/dist/services/acode-bg-manager.d.ts +21 -0
  127. package/dist/services/acode-package.d.ts +10 -0
  128. package/dist/services/acode-package.js +1 -1
  129. package/dist/services/agent-capability-sync.d.ts +26 -0
  130. package/dist/services/agent-capability-sync.js +1 -1
  131. package/dist/services/agent-event-store.d.ts +20 -0
  132. package/dist/services/agent-ownership.d.ts +58 -0
  133. package/dist/services/agent-ownership.js +3 -0
  134. package/dist/services/agent-process-manager.d.ts +154 -0
  135. package/dist/services/agent-pty-manager.d.ts +39 -0
  136. package/dist/services/agent-pty-manager.js +5 -4
  137. package/dist/services/agent-startup-memory.d.ts +34 -0
  138. package/dist/services/agent-startup-memory.js +4 -4
  139. package/dist/services/ai-config-service.d.ts +26 -52
  140. package/dist/services/ai-config-service.js +1 -3
  141. package/dist/services/ai-source-apply.d.ts +7 -15
  142. package/dist/services/ai-source-apply.js +1 -1
  143. package/dist/services/auto-register.d.ts +165 -1
  144. package/dist/services/auto-register.js +1 -1
  145. package/dist/services/aws-client-agent-mcp.d.ts +14 -0
  146. package/dist/services/aws-client-agent-mcp.js +2 -2
  147. package/dist/services/bridge-package-publish-hooks.d.ts +14 -0
  148. package/dist/services/bridge-pairing.d.ts +82 -0
  149. package/dist/services/bridge-pairing.js +2 -0
  150. package/dist/services/bridge-temp-files.d.ts +65 -0
  151. package/dist/services/bridge-temp-files.js +2 -0
  152. package/dist/services/browser-session-manager.d.ts +71 -0
  153. package/dist/services/capability-config.d.ts +60 -15
  154. package/dist/services/capability-config.js +2 -2
  155. package/dist/services/change-cache-retention.d.ts +9 -0
  156. package/dist/services/changelog.d.ts +9 -0
  157. package/dist/services/cli-commands.d.ts +82 -0
  158. package/dist/services/cli-commands.js +6 -6
  159. package/dist/services/connection-key-rotation.d.ts +27 -0
  160. package/dist/services/connection-key-rotation.js +2 -0
  161. package/dist/services/debug-mount.d.ts +49 -0
  162. package/dist/services/desktop-mcp-manager.d.ts +103 -1
  163. package/dist/services/desktop-mcp-manager.js +1 -1
  164. package/dist/services/event-delta-pusher.d.ts +15 -0
  165. package/dist/services/fileSnapshotStore.d.ts +42 -0
  166. package/dist/services/fileSnapshotStore.js +1 -1
  167. package/dist/services/gitignore.d.ts +21 -0
  168. package/dist/services/gitignore.js +2 -0
  169. package/dist/services/instance-ai-config-service.d.ts +9 -0
  170. package/dist/services/instance-ai-config-service.js +1 -1
  171. package/dist/services/instance-features.d.ts +127 -0
  172. package/dist/services/instance-features.js +1 -1
  173. package/dist/services/instance-init-service.d.ts +3 -0
  174. package/dist/services/instance-init-service.js +1 -1
  175. package/dist/services/instance-state.d.ts +23 -0
  176. package/dist/services/jdk-scanner.d.ts +15 -0
  177. package/dist/services/launch-manager.d.ts +138 -0
  178. package/dist/services/launch-metrics.d.ts +42 -0
  179. package/dist/services/launch-streams.d.ts +19 -0
  180. package/dist/services/lifecycle-state.d.ts +5 -0
  181. package/dist/services/log-retention.d.ts +38 -0
  182. package/dist/services/log-retention.js +1 -1
  183. package/dist/services/lsp/install-manager.d.ts +55 -0
  184. package/dist/services/lsp/install-manager.js +2 -0
  185. package/dist/services/lsp/provider-registry.d.ts +108 -0
  186. package/dist/services/lsp/provider-registry.js +2 -0
  187. package/dist/services/lsp/uri-rewrite.d.ts +44 -0
  188. package/dist/services/lsp/uri-rewrite.js +2 -0
  189. package/dist/services/lsp-stdio-bridge.d.ts +41 -4
  190. package/dist/services/lsp-stdio-bridge.js +3 -3
  191. package/dist/services/mcp-deploy.d.ts +45 -4
  192. package/dist/services/mcp-deploy.js +4 -4
  193. package/dist/services/mcp-env-injector.d.ts +52 -0
  194. package/dist/services/mcp-launch-binding-queue.d.ts +12 -0
  195. package/dist/services/mcp-package.d.ts +22 -0
  196. package/dist/services/mcp-package.js +1 -1
  197. package/dist/services/mcp-probe-client.d.ts +19 -0
  198. package/dist/services/mcp-probe-client.js +1 -1
  199. package/dist/services/open-doc-events.d.ts +43 -0
  200. package/dist/services/open-doc-events.js +2 -0
  201. package/dist/services/open-doc-registry.d.ts +59 -0
  202. package/dist/services/open-doc-registry.js +2 -0
  203. package/dist/services/orphan-monitor.d.ts +43 -0
  204. package/dist/services/panel-auth.d.ts +24 -0
  205. package/dist/services/panel-env.d.ts +28 -0
  206. package/dist/services/plugin-deployment.d.ts +34 -1
  207. package/dist/services/plugin-deployment.js +2 -2
  208. package/dist/services/plugin-event-buffer.d.ts +21 -0
  209. package/dist/services/plugin-fs.d.ts +11 -0
  210. package/dist/services/plugin-handler-adapter.d.ts +13 -0
  211. package/dist/services/plugin-listener-runner.d.ts +10 -0
  212. package/dist/services/plugin-loader.d.ts +15 -0
  213. package/dist/services/plugin-manager.d.ts +95 -9
  214. package/dist/services/plugin-manager.js +4 -4
  215. package/dist/services/plugin-manifest.d.ts +14 -0
  216. package/dist/services/plugin-package.d.ts +13 -0
  217. package/dist/services/plugin-runtime.d.ts +15 -0
  218. package/dist/services/port-detector.d.ts +15 -0
  219. package/dist/services/process-detail.d.ts +3 -0
  220. package/dist/services/process-detector.d.ts +132 -0
  221. package/dist/services/process-registry.d.ts +120 -0
  222. package/dist/services/process-top.d.ts +6 -0
  223. package/dist/services/request-identity.d.ts +77 -0
  224. package/dist/services/request-identity.js +2 -0
  225. package/dist/services/request-invalid-dump.d.ts +4 -0
  226. package/dist/services/request-invalid-dump.js +1 -1
  227. package/dist/services/ring-buffer.d.ts +33 -0
  228. package/dist/services/runtime-binding.d.ts +56 -4
  229. package/dist/services/runtime-binding.js +4 -4
  230. package/dist/services/runtime-lifecycle-policy.d.ts +17 -0
  231. package/dist/services/runtime-resources-snapshot.d.ts +26 -0
  232. package/dist/services/runtime-resources-snapshot.js +2 -2
  233. package/dist/services/sdk-tool-file-change-recorder.d.ts +9 -0
  234. package/dist/services/session-output.d.ts +63 -0
  235. package/dist/services/session-output.js +3 -3
  236. package/dist/services/skill-manager.d.ts +42 -5
  237. package/dist/services/skill-manager.js +3 -3
  238. package/dist/services/snapshot-retention.d.ts +30 -0
  239. package/dist/services/snapshot-retention.js +2 -0
  240. package/dist/services/startup-config-wizard.d.ts +7 -1
  241. package/dist/services/startup-config-wizard.js +10 -10
  242. package/dist/services/system-metrics.d.ts +3 -0
  243. package/dist/services/tech-stack-scanner.d.ts +43 -0
  244. package/dist/services/tech-stack-scanner.js +2 -0
  245. package/dist/services/terminal-persistence.d.ts +43 -0
  246. package/dist/services/tool-installer.d.ts +12 -0
  247. package/dist/services/tunnel-client.d.ts +99 -2
  248. package/dist/services/tunnel-client.js +1 -1
  249. package/dist/services/update-log.d.ts +6 -0
  250. package/dist/services/update-notifier.d.ts +17 -0
  251. package/dist/services/update-notifier.js +2 -2
  252. package/dist/services/user-scope.d.ts +115 -0
  253. package/dist/services/user-scope.js +2 -0
  254. package/dist/services/windows-service-manager.d.ts +12 -0
  255. package/dist/services/workspace-files.d.ts +64 -0
  256. package/dist/services/workspace-index/index-manager.d.ts +46 -0
  257. package/dist/services/workspace-index/index-manager.js +2 -0
  258. package/dist/services/workspace-index/indexer.d.ts +15 -0
  259. package/dist/services/workspace-index/indexer.js +2 -0
  260. package/dist/services/workspace-index/query.d.ts +74 -0
  261. package/dist/services/workspace-index/query.js +5 -0
  262. package/dist/services/workspace-index/resolver.d.ts +26 -0
  263. package/dist/services/workspace-index/resolver.js +2 -0
  264. package/dist/services/workspace-index/types.d.ts +89 -0
  265. package/dist/services/workspace-index/types.js +2 -0
  266. package/dist/services/workspace-watch.d.ts +4 -0
  267. package/dist/services/workspaceTaskChangeWatcher.d.ts +49 -0
  268. package/dist/services/workspaceTaskChangeWatcher.js +2 -2
  269. package/dist/types.d.ts +9 -0
  270. package/dist/utils/config-write-queue.d.ts +11 -0
  271. package/dist/utils/env-safety.d.ts +21 -0
  272. package/dist/utils/file-utils.d.ts +15 -0
  273. package/dist/utils/instance-ai-config-debug-logger.d.ts +15 -0
  274. package/dist/utils/lifecycle-log.d.ts +5 -0
  275. package/dist/utils/logger.d.ts +13 -0
  276. package/dist/utils/logger.js +2 -1
  277. package/dist/utils/npm-version.d.ts +10 -0
  278. package/dist/utils/path-utils.d.ts +12 -0
  279. package/dist/utils/scheduler-url.d.ts +18 -0
  280. package/dist/utils/scheduler-url.js +2 -0
  281. package/dist/utils/sdk-package-loader.d.ts +13 -0
  282. package/dist/utils/sdk-package-loader.js +1 -1
  283. package/dist/utils/target-identity.d.ts +31 -0
  284. package/dist/utils/target-identity.js +2 -0
  285. package/dist/utils/validation.d.ts +17 -0
  286. package/dist/utils/yaml-utils.d.ts +48 -0
  287. package/package/acode/dist/__tests__/summary-request-helper.d.ts +12 -0
  288. package/package/acode/dist/__tests__/summary-request-helper.js +2 -0
  289. package/package/acode/dist/ask-user-question-tool.d.ts +17 -0
  290. package/package/acode/dist/await-complete-tool.d.ts +12 -0
  291. package/package/acode/dist/background-command-manager.d.ts +105 -0
  292. package/package/acode/dist/background-command-store.d.ts +27 -0
  293. package/package/acode/dist/background-command-tools.d.ts +8 -0
  294. package/package/acode/dist/background-output-ringbuffer.d.ts +15 -0
  295. package/package/acode/dist/built-in-file-tools.d.ts +65 -0
  296. package/package/acode/dist/built-in-symbols-tool.d.ts +3 -0
  297. package/package/acode/dist/builtins/commandArtifacts.d.ts +3 -0
  298. package/package/acode/dist/builtins/shellCommandPreparation.d.ts +17 -0
  299. package/package/acode/dist/builtins/shellCommandRunner.d.ts +4 -0
  300. package/package/acode/dist/builtins/shellOutputDecoder.d.ts +15 -0
  301. package/package/acode/dist/cache-control.d.ts +71 -0
  302. package/package/acode/dist/cache-control.js +2 -0
  303. package/package/acode/dist/commands/commandLoader.d.ts +3 -0
  304. package/package/acode/dist/commands/commandParser.d.ts +3 -0
  305. package/package/acode/dist/commands/commandRegistry.d.ts +3 -0
  306. package/package/acode/dist/compaction.d.ts +388 -4
  307. package/package/acode/dist/compaction.js +19 -17
  308. package/package/acode/dist/config.d.ts +3 -0
  309. package/package/acode/dist/context-overflow.d.ts +32 -0
  310. package/package/acode/dist/fs-utils.d.ts +18 -0
  311. package/package/acode/dist/hooks/hookBus.d.ts +3 -0
  312. package/package/acode/dist/image-utils.d.ts +35 -0
  313. package/package/acode/dist/index.d.ts +1 -0
  314. package/package/acode/dist/index.js +1 -1
  315. package/package/acode/dist/mcpToolNames.d.ts +32 -0
  316. package/package/acode/dist/microcompact.d.ts +110 -0
  317. package/package/acode/dist/microcompact.js +2 -0
  318. package/package/acode/dist/parsers/ast-cache.d.ts +41 -0
  319. package/package/acode/dist/parsers/file-index.d.ts +83 -0
  320. package/package/acode/dist/parsers/file-index.js +4 -0
  321. package/package/acode/dist/parsers/language-detector.d.ts +4 -0
  322. package/package/acode/dist/parsers/tree-sitter-loader.d.ts +12 -0
  323. package/package/acode/dist/parsers/types.d.ts +11 -0
  324. package/package/acode/dist/paths.d.ts +14 -0
  325. package/package/acode/dist/plugin-types.d.ts +34 -0
  326. package/package/acode/dist/read-file-state.d.ts +15 -0
  327. package/package/acode/dist/runtime-environment.d.ts +16 -0
  328. package/package/acode/dist/runtime.d.ts +828 -9
  329. package/package/acode/dist/runtime.js +40 -33
  330. package/package/acode/dist/skill-tool.d.ts +20 -0
  331. package/package/acode/dist/sub-agent-manager.d.ts +169 -0
  332. package/package/acode/dist/sub-agent-manager.js +1 -1
  333. package/package/acode/dist/sub-agent-store.d.ts +50 -0
  334. package/package/acode/dist/sub-agent-tools.d.ts +15 -0
  335. package/package/acode/dist/sub-agent-types.d.ts +13 -0
  336. package/package/acode/dist/terminal-tool.d.ts +15 -0
  337. package/package/acode/dist/terminal-types.d.ts +10 -0
  338. package/package/acode/dist/todo-store.d.ts +15 -0
  339. package/package/acode/dist/token-estimator.d.ts +32 -0
  340. package/package/acode/dist/token-estimator.js +2 -0
  341. package/package/acode/dist/tool-allocation.d.ts +113 -0
  342. package/package/acode/dist/tool-concurrency/index.d.ts +8 -0
  343. package/package/acode/dist/tool-concurrency/observability.d.ts +32 -0
  344. package/package/acode/dist/tool-concurrency/resource-lock.d.ts +30 -0
  345. package/package/acode/dist/tool-concurrency/scheduler.d.ts +19 -0
  346. package/package/acode/dist/tool-concurrency/types.d.ts +57 -0
  347. package/package/acode/dist/tool-group-manager.d.ts +195 -0
  348. package/package/acode/dist/tool-group-manager.js +4 -4
  349. package/package/acode/dist/types.d.ts +192 -0
  350. package/package/aws-client-agent-mcp/README.md +130 -215
  351. package/package/aws-client-agent-mcp/dist/ability-market-tools.d.ts +57 -0
  352. package/package/aws-client-agent-mcp/dist/ability-market-tools.js +1 -1
  353. package/package/aws-client-agent-mcp/dist/agent-client.d.ts +290 -3
  354. package/package/aws-client-agent-mcp/dist/agent-client.js +1 -1
  355. package/package/aws-client-agent-mcp/dist/config.d.ts +18 -0
  356. package/package/aws-client-agent-mcp/dist/constants.d.ts +2 -0
  357. package/package/aws-client-agent-mcp/dist/context-manager.d.ts +70 -0
  358. package/package/aws-client-agent-mcp/dist/http-client.d.ts +61 -0
  359. package/package/aws-client-agent-mcp/dist/index.d.ts +10 -0
  360. package/package/aws-client-agent-mcp/dist/logger.d.ts +24 -0
  361. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +610 -0
  362. package/package/aws-client-agent-mcp/dist/mcp-server.js +25 -23
  363. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts +158 -0
  364. package/package/aws-client-agent-mcp/dist/mcp-tools.js +38 -22
  365. package/package/aws-client-agent-mcp/dist/memory-store.d.ts +102 -2
  366. package/package/aws-client-agent-mcp/dist/memory-store.js +27 -2
  367. package/package/aws-client-agent-mcp/dist/memory-tools.d.ts +18 -0
  368. package/package/aws-client-agent-mcp/dist/memory-tools.js +13 -9
  369. package/package/aws-client-agent-mcp/dist/message-buffer.d.ts +86 -0
  370. package/package/aws-client-agent-mcp/dist/messageContent.d.ts +24 -0
  371. package/package/aws-client-agent-mcp/dist/office/office-equation.d.ts +19 -0
  372. package/package/aws-client-agent-mcp/dist/office/office-image.d.ts +18 -0
  373. package/package/aws-client-agent-mcp/dist/office/office-workspace.d.ts +29 -0
  374. package/package/aws-client-agent-mcp/dist/parent-lifecycle.d.ts +18 -0
  375. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.d.ts +6 -0
  376. package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts +5 -1
  377. package/package/aws-client-agent-mcp/dist/server-memory-store.js +1 -1
  378. package/package/aws-client-agent-mcp/dist/status-reporter.d.ts +41 -0
  379. package/package/aws-client-agent-mcp/dist/tool-groups.d.ts +136 -0
  380. package/package/aws-client-agent-mcp/dist/types.d.ts +174 -0
  381. package/package/aws-client-agent-mcp/dist/watchdog.d.ts +7 -0
  382. package/package/aws-client-agent-mcp/dist/websocket-client.d.ts +108 -0
  383. package/package.json +1 -1
@@ -1,2 +1,18 @@
1
1
 
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
2
18
  export declare const debugMountRouter: import("express-serve-static-core").Router;
@@ -0,0 +1,15 @@
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+ export declare const desktopControlRouter: import("express-serve-static-core").Router;
@@ -0,0 +1,2 @@
1
+ import{Router as i}from"express";import{broadcastControlState as p,getControlState as u,getRecentActions as c,setPaused as g}from"../desktop/desktop-control.js";import{validateToken as n}from"../middleware/auth.js";import{createLogger as m}from"../utils/logger.js";const f=m("desktop-control"),a=i();a.post("/desktop-control/:agentId/pause",n,(r,o)=>{const t=String(r.params.agentId??"").trim();if(!t){o.status(400).json({ok:!1,error:"agentId is required"});return}const e=r.body??{};if(typeof e.paused!="boolean"){o.status(400).json({ok:!1,error:"paused (boolean) is required"});return}const s=typeof e.by=="string"&&e.by.trim()?e.by.trim():"dashboard",d=g(t,e.paused,s);p(t),f.info(`[desktop-control] ${e.paused?"paused":"resumed"} by ${s} for ${t}`),o.json({ok:!0,agentId:t,state:d})}),a.get("/desktop-control/:agentId/state",n,(r,o)=>{const t=String(r.params.agentId??"").trim();if(!t){o.status(400).json({ok:!1,error:"agentId is required"});return}o.json({ok:!0,agentId:t,state:u(t),recentActions:c(t)})});export{a as desktopControlRouter};
2
+
@@ -1,2 +1,6 @@
1
1
 
2
+
3
+
4
+
5
+
2
6
  export declare const eventsRouter: import("express-serve-static-core").Router;
@@ -1,7 +1,18 @@
1
1
 
2
+
3
+
4
+
5
+
2
6
  import multer from 'multer';
3
7
  export declare const fileBrowserRouter: import("express-serve-static-core").Router;
4
8
  export declare const WORKSPACE_UPLOAD_FILE_LIMIT = 2000;
9
+
10
+
11
+
12
+
13
+
14
+
15
+ export declare const WORKSPACE_UPLOAD_MAX_FILE_SIZE_BYTES: number;
5
16
  interface FileBrowserItem {
6
17
  name: string;
7
18
  path: string;
@@ -21,13 +32,6 @@ interface DirectoryTreeResponse extends FileBrowserResponse {
21
32
  maxItemsPerDirectory: number;
22
33
  tree: DirectoryTreeItem[];
23
34
  }
24
- interface GitIgnoreRule {
25
- pattern: string;
26
- negated: boolean;
27
- directoryOnly: boolean;
28
- anchored: boolean;
29
- hasSlash: boolean;
30
- }
31
35
  export declare function createWorkspaceUploadLimitResponse(error: multer.MulterError): {
32
36
  status: number;
33
37
  body: {
@@ -37,7 +41,8 @@ export declare function createWorkspaceUploadLimitResponse(error: multer.MulterE
37
41
  };
38
42
  export declare function parseWorkspaceUploadRelativePaths(body: Record<string, unknown>): string[];
39
43
 
44
+
45
+
40
46
  export declare function listHostDirectoryTree(requestPath?: string): Promise<DirectoryTreeResponse>;
41
- export declare function parseGitIgnoreRules(content: string): GitIgnoreRule[];
42
- export declare function isIgnoredByGitIgnore(relativePath: string, isDirectory: boolean, rules: GitIgnoreRule[]): boolean;
43
- export {};
47
+
48
+ export { isIgnoredByGitIgnore, loadGitIgnoreRules, parseGitIgnoreRules, type GitIgnoreRule, } from '../services/gitignore.js';
@@ -1,2 +1,2 @@
1
- import{createReadStream as S,promises as u}from"node:fs";import x from"node:os";import w from"node:path";import{pipeline as _}from"node:stream/promises";import{Router as v}from"express";import j from"multer";import{allowHostFileBrowser as A}from"../config.js";import{validateToken as c}from"../middleware/auth.js";import{chmodWorkspaceEntry as N,createWorkspaceEntry as C,deleteWorkspaceEntry as z,extractWorkspaceArchive as F,getWorkspaceEntryProperties as B,listWorkspaceDirectory as L,moveWorkspaceEntry as H,previewWorkspaceDocument as M,readWorkspaceFile as O,renameWorkspaceEntry as U,replaceWorkspaceFiles as G,resolveWorkspaceDownloadTarget as $,searchWorkspaceFiles as X,searchWorkspacePaths as q,uploadWorkspaceFiles as J,writeWorkspaceFile as Y,zipWorkspaceDirectoryToTemp as K}from"../services/workspace-files.js";import{unwatchWorkspaceFile as Q,watchWorkspaceFile as V}from"../services/workspace-watch.js";import{createLogger as Z}from"../utils/logger.js";const h=Z("file-browser"),p=v(),g=new Map,tt=6e4,b=2e3,et=j({dest:w.join(x.tmpdir(),"agentswork-runtime-bridge-uploads"),limits:{files:b,fileSize:512*1024*1024}}),m=Number.MAX_SAFE_INTEGER,y=Number.MAX_SAFE_INTEGER;function k(a){return a===!0||a==="true"||a==="1"}function rt(a){return`attachment; filename="${a.replace(/[\\"\r\n]/g,"_").replace(/[^\x20-\x7E]/g,"_")}"; filename*=UTF-8''${encodeURIComponent(a)}`}async function at(a=[]){await Promise.all(a.map(e=>u.rm(e.path,{force:!0}).catch(()=>{})))}function ot(a){return{status:400,body:{error:a.code==="LIMIT_FILE_COUNT"?`\u4E00\u6B21\u6700\u591A\u4E0A\u4F20 ${b} \u4E2A\u6587\u4EF6\uFF0C\u8BF7\u62C6\u5206\u6587\u4EF6\u5939\u540E\u91CD\u8BD5\u3002`:a.message,code:a.code}}}function st(a){const e=a.relativePathsJson;if(typeof e=="string"&&e.trim()){const t=JSON.parse(e);if(!Array.isArray(t))throw new Error("relativePathsJson must be an array");return t.map(o=>String(o||""))}const r=a.relativePaths;return Array.isArray(r)?r.map(t=>String(t||"")):typeof r=="string"?[r]:[]}function nt(a,e,r){et.array("files")(a,e,t=>{if(!t){r();return}if(t instanceof j.MulterError){const o=ot(t);e.status(o.status).json(o.body);return}r(t)})}async function P(a=""){const r=process.platform==="win32";if(!a||a===""){if(r){const d=Array.from({length:24},(f,T)=>String.fromCharCode(67+T)+":\\");return{isWindows:!0,currentPath:"",items:(await Promise.all(d.map(async f=>{try{return await u.access(f),{name:f,path:f,isDirectory:!0}}catch{return null}}))).filter(f=>f!==null)}}return{isWindows:!1,currentPath:"/",items:(await u.readdir("/",{withFileTypes:!0})).filter(d=>d.isDirectory()).map(d=>({name:d.name,path:"/"+d.name,isDirectory:!0}))}}const t=w.normalize(a);let o;try{o=await u.stat(t)}catch{throw new Error("Path not found: "+t)}if(!o.isDirectory())throw new Error("Path is not a directory: "+t);const n=(await u.readdir(t,{withFileTypes:!0})).filter(i=>i.isDirectory()).map(i=>({name:i.name,path:w.join(t,i.name),isDirectory:!0}));return{isWindows:r,currentPath:t,items:n}}async function it(a=""){const e=await P(a),r=e.currentPath?await pt(e.currentPath):[];return e.currentPath?{...e,maxDepth:m,maxItemsPerDirectory:y,tree:await D(e.currentPath,e.currentPath,1,r)}:{...e,maxDepth:m,maxItemsPerDirectory:y,tree:e.items.slice(0,y)}}async function D(a,e,r,t){if(r>m)return[];const s=(await u.readdir(e,{withFileTypes:!0})).filter(i=>i.isDirectory()).filter(i=>!dt(a,w.join(e,i.name),t)).sort((i,l)=>i.name.localeCompare(l.name)).slice(0,y),n=[];for(const i of s){const l=w.join(e,i.name),d={name:i.name,path:l.replace(/\\/g,"/"),isDirectory:!0};if(r<m)try{d.children=await D(a,l,r+1,t)}catch{d.children=[]}else d.truncated=!0;n.push(d)}return n}function ct(a){return String(a||"").split(/\r?\n/).map(e=>e.trim()).filter(e=>e&&!e.startsWith("#")).map(e=>{const r=e.startsWith("!"),t=r?e.slice(1).trim():e,o=t.startsWith("/"),s=t.endsWith("/"),n=t.replace(/^\/+/,"").replace(/\/+$/,"").replace(/\\/g,"/");return{pattern:n,negated:r,directoryOnly:s,anchored:o,hasSlash:n.includes("/")}}).filter(e=>e.pattern.length>0)}async function pt(a){const e=[];let r=a;for(;;){try{const o=w.join(r,".gitignore"),s=await u.readFile(o,"utf8"),n=ct(s);e.unshift(...n)}catch{}const t=w.dirname(r);if(t===r)break;r=t}return e}function lt(a,e,r){const t=wt(a);if(!t)return!1;let o=!1;for(const s of r)s.directoryOnly&&!e||ht(t,s)&&(o=!s.negated);return o}function dt(a,e,r){if(r.length===0)return!1;const t=w.relative(a,e).replace(/\\/g,"/");return lt(t,!0,r)}function ht(a,e){if(!e.hasSlash&&!e.anchored)return a.split("/").some(t=>ut(t,e.pattern));const r=e.pattern;return e.anchored?E(a,r)||a.startsWith(r+"/"):E(a,r)||a.endsWith("/"+r)||a.includes("/"+r+"/")}function E(a,e){return new RegExp("^"+W(e)+"(?:/.*)?$").test(a)}function ut(a,e){return new RegExp("^"+W(e)+"$").test(a)}function W(a){return a.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g,".*").replace(/\*/g,"[^/]*").replace(/\?/g,"[^/]")}function wt(a){return String(a||"").replace(/\\/g,"/").replace(/^\.\//,"").replace(/^\/+/,"").replace(/\/+$/,"")}async function R(a){const e=w.normalize(String(a||""));if(!(await u.stat(e)).isDirectory())throw new Error("Path is not a directory: "+e);return e}function I(a){const e=String(a||"").trim();if(!e)throw new Error("Folder name is required");if(e.includes("/")||e.includes("\\")||e==="."||e==="..")throw new Error("Folder name must not contain path separators");return e}async function gt(a,e){const r=await R(a),t=I(e),o=w.join(r,t);return await u.mkdir(o),{ok:!0,parentPath:a,targetPath:o.replace(/\\/g,"/"),entryName:t}}async function ft(a,e){const r=await R(a),t=I(e),o=w.join(w.dirname(r),t);return await u.rename(r,o),{ok:!0,sourcePath:r.replace(/\\/g,"/"),targetPath:o.replace(/\\/g,"/"),newName:t}}p.post("/list",c,async(a,e)=>{try{if(!A)return e.status(403).json({error:"Host filesystem browsing is disabled. Use /api/file-browser/workspace/list with a registered workspace, or set AWS_ALLOW_HOST_FILE_BROWSER=true for isolated local debugging."});const{path:r=""}=a.body||{};e.json(await P(String(r||"")))}catch(r){const t=r;e.status(500).json({error:t.message})}}),p.post("/directory-picker/list",c,async(a,e)=>{try{const{path:r=""}=a.body||{};e.json(await P(String(r||"")))}catch(r){const t=r;e.status(400).json({error:t.message})}}),p.post("/directory-picker/tree",c,async(a,e)=>{try{const{path:r=""}=a.body||{};e.json(await it(String(r||"")))}catch(r){const t=r;e.status(400).json({error:t.message})}}),p.post("/workspace/list",c,async(a,e)=>{try{const{workspacePath:r,path:t=""}=a.body||{},o=await L({workspacePath:String(r||""),targetPath:String(t||"")});e.json({isWindows:process.platform==="win32",currentPath:o.currentPath,workspacePath:o.workspacePath,items:o.items})}catch(r){const t=r;console.error("[file-browser] failed to list workspace directory:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/read",c,async(a,e)=>{try{const{workspacePath:r,filePath:t}=a.body||{},o=await O({workspacePath:String(r||""),filePath:String(t||"")});e.json(o)}catch(r){const t=r;console.error("[file-browser] failed to read workspace file:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/properties",c,async(a,e)=>{try{const{workspacePath:r,targetPath:t}=a.body||{};e.json(await B({workspacePath:String(r||""),targetPath:String(t||"")}))}catch(r){const t=r;h.error("failed to get workspace entry properties:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/chmod",c,async(a,e)=>{try{const{workspacePath:r,targetPath:t,mode:o,recursive:s}=a.body||{};e.json(await N({workspacePath:String(r||""),targetPath:String(t||""),mode:String(o||""),recursive:!!s}))}catch(r){const t=r;h.error("failed to chmod workspace entry:",t),e.status(400).json({error:t.message})}}),p.post("/directory-picker/create",c,async(a,e)=>{try{const{path:r="",entryName:t}=a.body||{};e.json(await gt(String(r||""),String(t||"")))}catch(r){const t=r;h.error("failed to create directory from directory picker:",t),e.status(400).json({error:t.message})}}),p.post("/directory-picker/rename",c,async(a,e)=>{try{const{targetPath:r,newName:t}=a.body||{};e.json(await ft(String(r||""),String(t||"")))}catch(r){const t=r;h.error("failed to rename directory from directory picker:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/preview",c,async(a,e)=>{try{const{workspacePath:r,filePath:t}=a.body||{},o=await M({workspacePath:String(r||""),filePath:String(t||"")});e.json(o)}catch(r){const t=r;h.error("failed to preview workspace document:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/watch",c,async(a,e)=>{try{const{workspacePath:r,filePath:t}=a.body||{};e.json(await V({workspacePath:String(r||""),filePath:String(t||"")}))}catch(r){const t=r;h.error("failed to watch workspace file:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/unwatch",c,async(a,e)=>{try{const{workspacePath:r,filePath:t}=a.body||{};e.json(await Q({workspacePath:String(r||""),filePath:String(t||"")}))}catch(r){const t=r;h.error("failed to unwatch workspace file:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/write",c,async(a,e)=>{try{const{workspacePath:r,filePath:t,content:o}=a.body||{},s=await Y({workspacePath:String(r||""),filePath:String(t||""),content:String(o??"")});e.json(s)}catch(r){const t=r;console.error("[file-browser] failed to write workspace file:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/create",c,async(a,e)=>{try{const{workspacePath:r,path:t="",entryName:o,isDirectory:s}=a.body||{},n=await C({workspacePath:String(r||""),targetPath:String(t||""),entryName:String(o||""),isDirectory:!!s});e.json(n)}catch(r){const t=r;h.error("failed to create workspace entry:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/rename",c,async(a,e)=>{try{const{workspacePath:r,targetPath:t,newName:o}=a.body||{},s=await U({workspacePath:String(r||""),targetPath:String(t||""),newName:String(o||"")});e.json(s)}catch(r){const t=r;h.error("failed to rename workspace entry:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/move",c,async(a,e)=>{try{const{workspacePath:r,targetPath:t,destinationPath:o}=a.body||{},s=await H({workspacePath:String(r||""),targetPath:String(t||""),destinationPath:String(o||"")});e.json(s)}catch(r){const t=r;h.error("failed to move workspace entry:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/delete",c,async(a,e)=>{try{const{workspacePath:r,targetPath:t}=a.body||{},o=await z({workspacePath:String(r||""),targetPath:String(t||"")});e.json(o)}catch(r){const t=r;h.error("failed to delete workspace entry:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/upload",c,nt,async(a,e)=>{const r=a.files||[];try{const{workspacePath:t,path:o="",extractArchives:s}=a.body||{},n=st(a.body||{}),i=await J({workspacePath:String(t||""),targetPath:String(o||""),extractArchives:k(s),files:r.map((l,d)=>({originalname:l.originalname,relativePath:n[d],path:l.path,size:l.size}))});e.json(i)}catch(t){const o=t;h.error("failed to upload workspace files:",o),e.status(400).json({error:o.message})}finally{await at(r)}}),p.post("/workspace/download",c,async(a,e)=>{let r;const t=String((a.body||{}).progressId||"").trim();try{const{workspacePath:o,targetPath:s}=a.body||{},n=await $({workspacePath:String(o||""),targetPath:String(s||"")});if(e.setHeader("Content-Type",n.contentType),e.setHeader("Content-Disposition",rt(n.fileName)),e.setHeader("X-Workspace-Path",encodeURIComponent(n.workspacePath)),e.setHeader("X-Workspace-Target-Path",encodeURIComponent(n.targetPath)),n.isDirectory){t&&g.set(t,{zippedBytes:0,totalBytes:null,done:!1,cancelled:!1,updatedAt:Date.now()}),r=await K(n.resolvedTargetPath,n.fileName,l=>{if(!t)return;const d=g.get(t);d&&(d.zippedBytes=l,d.updatedAt=Date.now())},()=>t?!!g.get(t)?.cancelled:!1);const i=await u.stat(r);if(t){const l=g.get(t);l&&(l.zippedBytes=i.size,l.totalBytes=i.size,l.done=!0,l.updatedAt=Date.now())}e.setHeader("Content-Length",String(i.size)),await _(S(r),e);return}n.size!==void 0&&e.setHeader("Content-Length",String(n.size)),S(n.resolvedTargetPath).pipe(e)}catch(o){const s=o;h.error("failed to download workspace entry:",s),e.headersSent?e.destroy(s):e.status(400).json({error:s.message})}finally{if(r&&await u.rm(r,{force:!0}).catch(()=>{}),t){const o=g.get(t);o&&(o.done=!0,o.totalBytes===null&&(o.totalBytes=0)),setTimeout(()=>g.delete(t),tt)}}}),p.post("/workspace/download-progress",c,(a,e)=>{const r=String((a.body||{}).progressId||"").trim();if(!r){e.status(400).json({error:"progressId is required"});return}const t=g.get(r);if(!t){e.status(404).json({error:"download progress not found"});return}e.json({zippedBytes:t.zippedBytes,totalBytes:t.totalBytes,done:t.done,cancelled:t.cancelled})}),p.post("/workspace/download-cancel",c,(a,e)=>{const r=String((a.body||{}).progressId||"").trim();if(!r){e.status(400).json({error:"progressId is required"});return}const t=g.get(r);t&&(t.cancelled=!0,t.done=!0,t.updatedAt=Date.now()),e.json({ok:!0})}),p.post("/workspace/extract",c,async(a,e)=>{try{const{workspacePath:r,archivePath:t,outputPath:o=""}=a.body||{},s=await F({workspacePath:String(r||""),archivePath:String(t||""),outputPath:String(o||"")});e.json(s)}catch(r){const t=r;h.error("failed to extract workspace archive:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/path-search",c,async(a,e)=>{try{const{workspacePath:r,rootPath:t,keyword:o,ignoreCase:s,maxResults:n,maxDirectories:i}=a.body||{},l=await q({workspacePath:String(r||""),rootPath:t!==void 0?String(t):void 0,keyword:String(o||""),ignoreCase:k(s),maxResults:typeof n=="number"?n:void 0,maxDirectories:typeof i=="number"?i:void 0});e.json(l)}catch(r){const t=r;h.error("failed to search workspace paths:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/search",c,async(a,e)=>{try{const{workspacePath:r,keyword:t,fileMask:o,ignoreCase:s,maxResults:n,mode:i}=a.body||{},l=await X({workspacePath:String(r||""),keyword:String(t||""),fileMask:o!==void 0?String(o):void 0,ignoreCase:k(s),maxResults:typeof n=="number"?n:void 0,mode:i==="filename"?"filename":"content"});e.json(l)}catch(r){const t=r;h.error("failed to search workspace files:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/replace",c,async(a,e)=>{try{const{workspacePath:r,keyword:t,replacement:o,fileMask:s,ignoreCase:n,filePath:i}=a.body||{},l=await G({workspacePath:String(r||""),keyword:String(t||""),replacement:String(o??""),fileMask:s!==void 0?String(s):void 0,ignoreCase:k(n),filePath:i!==void 0?String(i):void 0});e.json(l)}catch(r){const t=r;h.error("failed to replace workspace files:",t),e.status(400).json({error:t.message})}});export{b as WORKSPACE_UPLOAD_FILE_LIMIT,ot as createWorkspaceUploadLimitResponse,p as fileBrowserRouter,lt as isIgnoredByGitIgnore,it as listHostDirectoryTree,ct as parseGitIgnoreRules,st as parseWorkspaceUploadRelativePaths};
1
+ import{createReadStream as S,promises as u}from"node:fs";import T from"node:os";import w from"node:path";import{pipeline as W}from"node:stream/promises";import{Router as R}from"express";import j from"multer";import{allowHostFileBrowser as v}from"../config.js";import{validateToken as c}from"../middleware/auth.js";import{isIgnoredByGitIgnore as A,loadGitIgnoreRules as N}from"../services/gitignore.js";import{chmodWorkspaceEntry as C,createWorkspaceEntry as x,deleteWorkspaceEntry as F,extractWorkspaceArchive as B,getWorkspaceEntryProperties as z,listWorkspaceDirectory as L,moveWorkspaceEntry as M,previewWorkspaceDocument as O,readWorkspaceFile as H,renameWorkspaceEntry as U,replaceWorkspaceFiles as G,resolveWorkspaceDownloadTarget as X,searchWorkspaceFiles as Y,searchWorkspacePaths as q,uploadWorkspaceFiles as J,writeWorkspaceFile as $,zipWorkspaceDirectoryToTemp as K}from"../services/workspace-files.js";import{unwatchWorkspaceFile as V,watchWorkspaceFile as Z}from"../services/workspace-watch.js";import{createLogger as Q}from"../utils/logger.js";const h=Q("file-browser"),p=R(),m=new Map,tt=6e4,b=2e3,et=Number.POSITIVE_INFINITY,rt=j({dest:w.join(T.tmpdir(),"agentswork-runtime-bridge-uploads"),limits:{files:b,fileSize:et}}),f=Number.MAX_SAFE_INTEGER,g=Number.MAX_SAFE_INTEGER;function P(o){return o===!0||o==="true"||o==="1"}function ot(o){return`attachment; filename="${o.replace(/[\\"\r\n]/g,"_").replace(/[^\x20-\x7E]/g,"_")}"; filename*=UTF-8''${encodeURIComponent(o)}`}async function at(o=[]){await Promise.all(o.map(e=>u.rm(e.path,{force:!0}).catch(()=>{})))}function st(o){return{status:400,body:{error:o.code==="LIMIT_FILE_COUNT"?`\u4E00\u6B21\u6700\u591A\u4E0A\u4F20 ${b} \u4E2A\u6587\u4EF6\uFF0C\u8BF7\u62C6\u5206\u6587\u4EF6\u5939\u540E\u91CD\u8BD5\u3002`:o.message,code:o.code}}}function nt(o){const e=o.relativePathsJson;if(typeof e=="string"&&e.trim()){const t=JSON.parse(e);if(!Array.isArray(t))throw new Error("relativePathsJson must be an array");return t.map(a=>String(a||""))}const r=o.relativePaths;return Array.isArray(r)?r.map(t=>String(t||"")):typeof r=="string"?[r]:[]}function it(o,e,r){rt.array("files")(o,e,t=>{if(!t){r();return}if(t instanceof j.MulterError){const a=st(t);e.status(a.status).json(a.body);return}r(t)})}async function k(o=""){const r=process.platform==="win32";if(!o||o===""){if(r){const d=Array.from({length:24},(y,_)=>String.fromCharCode(67+_)+":\\");return{isWindows:!0,currentPath:"",items:(await Promise.all(d.map(async y=>{try{return await u.access(y),{name:y,path:y,isDirectory:!0}}catch{return null}}))).filter(y=>y!==null)}}return{isWindows:!1,currentPath:"/",items:(await u.readdir("/",{withFileTypes:!0})).filter(d=>d.isDirectory()).map(d=>({name:d.name,path:"/"+d.name,isDirectory:!0}))}}const t=w.normalize(o);let a;try{a=await u.stat(t)}catch{throw new Error("Path not found: "+t)}if(!a.isDirectory())throw new Error("Path is not a directory: "+t);const i=(await u.readdir(t,{withFileTypes:!0})).filter(n=>n.isDirectory()).map(n=>({name:n.name,path:w.join(t,n.name),isDirectory:!0}));return{isWindows:r,currentPath:t,items:i}}async function ct(o=""){const e=await k(o),r=e.currentPath?await N(e.currentPath):[];return e.currentPath?{...e,maxDepth:f,maxItemsPerDirectory:g,tree:await D(e.currentPath,e.currentPath,1,r)}:{...e,maxDepth:f,maxItemsPerDirectory:g,tree:e.items.slice(0,g)}}async function D(o,e,r,t){if(r>f)return[];const s=(await u.readdir(e,{withFileTypes:!0})).filter(n=>n.isDirectory()).filter(n=>!pt(o,w.join(e,n.name),t)).sort((n,l)=>n.name.localeCompare(l.name)).slice(0,g),i=[];for(const n of s){const l=w.join(e,n.name),d={name:n.name,path:l.replace(/\\/g,"/"),isDirectory:!0};if(r<f)try{d.children=await D(o,l,r+1,t)}catch{d.children=[]}else d.truncated=!0;i.push(d)}return i}import{isIgnoredByGitIgnore as Tt,loadGitIgnoreRules as Wt,parseGitIgnoreRules as Rt}from"../services/gitignore.js";function pt(o,e,r){if(r.length===0)return!1;const t=w.relative(o,e).replace(/\\/g,"/");return A(t,!0,r)}async function E(o){const e=w.normalize(String(o||""));if(!(await u.stat(e)).isDirectory())throw new Error("Path is not a directory: "+e);return e}function I(o){const e=String(o||"").trim();if(!e)throw new Error("Folder name is required");if(e.includes("/")||e.includes("\\")||e==="."||e==="..")throw new Error("Folder name must not contain path separators");return e}async function lt(o,e){const r=await E(o),t=I(e),a=w.join(r,t);return await u.mkdir(a),{ok:!0,parentPath:o,targetPath:a.replace(/\\/g,"/"),entryName:t}}async function dt(o,e){const r=await E(o),t=I(e),a=w.join(w.dirname(r),t);return await u.rename(r,a),{ok:!0,sourcePath:r.replace(/\\/g,"/"),targetPath:a.replace(/\\/g,"/"),newName:t}}p.post("/list",c,async(o,e)=>{try{if(!v)return e.status(403).json({error:"Host filesystem browsing is disabled. Use /api/file-browser/workspace/list with a registered workspace, or set AWS_ALLOW_HOST_FILE_BROWSER=true for isolated local debugging."});const{path:r=""}=o.body||{};e.json(await k(String(r||"")))}catch(r){const t=r;e.status(500).json({error:t.message})}}),p.post("/directory-picker/list",c,async(o,e)=>{try{const{path:r=""}=o.body||{};e.json(await k(String(r||"")))}catch(r){const t=r;e.status(400).json({error:t.message})}}),p.post("/directory-picker/tree",c,async(o,e)=>{try{const{path:r=""}=o.body||{};e.json(await ct(String(r||"")))}catch(r){const t=r;e.status(400).json({error:t.message})}}),p.post("/workspace/list",c,async(o,e)=>{try{const{workspacePath:r,path:t=""}=o.body||{},a=await L({workspacePath:String(r||""),targetPath:String(t||"")});e.json({isWindows:process.platform==="win32",currentPath:a.currentPath,workspacePath:a.workspacePath,items:a.items})}catch(r){const t=r;console.error("[file-browser] failed to list workspace directory:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/read",c,async(o,e)=>{try{const{workspacePath:r,filePath:t}=o.body||{},a=await H({workspacePath:String(r||""),filePath:String(t||"")});e.json(a)}catch(r){const t=r;console.error("[file-browser] failed to read workspace file:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/properties",c,async(o,e)=>{try{const{workspacePath:r,targetPath:t}=o.body||{};e.json(await z({workspacePath:String(r||""),targetPath:String(t||"")}))}catch(r){const t=r;h.error("failed to get workspace entry properties:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/chmod",c,async(o,e)=>{try{const{workspacePath:r,targetPath:t,mode:a,recursive:s}=o.body||{};e.json(await C({workspacePath:String(r||""),targetPath:String(t||""),mode:String(a||""),recursive:!!s}))}catch(r){const t=r;h.error("failed to chmod workspace entry:",t),e.status(400).json({error:t.message})}}),p.post("/directory-picker/create",c,async(o,e)=>{try{const{path:r="",entryName:t}=o.body||{};e.json(await lt(String(r||""),String(t||"")))}catch(r){const t=r;h.error("failed to create directory from directory picker:",t),e.status(400).json({error:t.message})}}),p.post("/directory-picker/rename",c,async(o,e)=>{try{const{targetPath:r,newName:t}=o.body||{};e.json(await dt(String(r||""),String(t||"")))}catch(r){const t=r;h.error("failed to rename directory from directory picker:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/preview",c,async(o,e)=>{try{const{workspacePath:r,filePath:t}=o.body||{},a=await O({workspacePath:String(r||""),filePath:String(t||"")});e.json(a)}catch(r){const t=r;h.error("failed to preview workspace document:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/watch",c,async(o,e)=>{try{const{workspacePath:r,filePath:t}=o.body||{};e.json(await Z({workspacePath:String(r||""),filePath:String(t||"")}))}catch(r){const t=r;h.error("failed to watch workspace file:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/unwatch",c,async(o,e)=>{try{const{workspacePath:r,filePath:t}=o.body||{};e.json(await V({workspacePath:String(r||""),filePath:String(t||"")}))}catch(r){const t=r;h.error("failed to unwatch workspace file:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/write",c,async(o,e)=>{try{const{workspacePath:r,filePath:t,content:a}=o.body||{},s=await $({workspacePath:String(r||""),filePath:String(t||""),content:String(a??"")});e.json(s)}catch(r){const t=r;console.error("[file-browser] failed to write workspace file:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/create",c,async(o,e)=>{try{const{workspacePath:r,path:t="",entryName:a,isDirectory:s}=o.body||{},i=await x({workspacePath:String(r||""),targetPath:String(t||""),entryName:String(a||""),isDirectory:!!s});e.json(i)}catch(r){const t=r;h.error("failed to create workspace entry:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/rename",c,async(o,e)=>{try{const{workspacePath:r,targetPath:t,newName:a}=o.body||{},s=await U({workspacePath:String(r||""),targetPath:String(t||""),newName:String(a||"")});e.json(s)}catch(r){const t=r;h.error("failed to rename workspace entry:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/move",c,async(o,e)=>{try{const{workspacePath:r,targetPath:t,destinationPath:a}=o.body||{},s=await M({workspacePath:String(r||""),targetPath:String(t||""),destinationPath:String(a||"")});e.json(s)}catch(r){const t=r;h.error("failed to move workspace entry:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/delete",c,async(o,e)=>{try{const{workspacePath:r,targetPath:t}=o.body||{},a=await F({workspacePath:String(r||""),targetPath:String(t||"")});e.json(a)}catch(r){const t=r;h.error("failed to delete workspace entry:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/upload",c,it,async(o,e)=>{const r=o.files||[];try{const{workspacePath:t,path:a="",extractArchives:s}=o.body||{},i=nt(o.body||{}),n=await J({workspacePath:String(t||""),targetPath:String(a||""),extractArchives:P(s),files:r.map((l,d)=>({originalname:l.originalname,relativePath:i[d],path:l.path,size:l.size}))});e.json(n)}catch(t){const a=t;h.error("failed to upload workspace files:",a),e.status(400).json({error:a.message})}finally{await at(r)}}),p.post("/workspace/download",c,async(o,e)=>{let r;const t=String((o.body||{}).progressId||"").trim();try{const{workspacePath:a,targetPath:s}=o.body||{},i=await X({workspacePath:String(a||""),targetPath:String(s||"")});if(e.setHeader("Content-Type",i.contentType),e.setHeader("Content-Disposition",ot(i.fileName)),e.setHeader("X-Workspace-Path",encodeURIComponent(i.workspacePath)),e.setHeader("X-Workspace-Target-Path",encodeURIComponent(i.targetPath)),i.isDirectory){t&&m.set(t,{zippedBytes:0,totalBytes:null,done:!1,cancelled:!1,updatedAt:Date.now()}),r=await K(i.resolvedTargetPath,i.fileName,l=>{if(!t)return;const d=m.get(t);d&&(d.zippedBytes=l,d.updatedAt=Date.now())},()=>t?!!m.get(t)?.cancelled:!1);const n=await u.stat(r);if(t){const l=m.get(t);l&&(l.zippedBytes=n.size,l.totalBytes=n.size,l.done=!0,l.updatedAt=Date.now())}e.setHeader("Content-Length",String(n.size)),await W(S(r),e);return}i.size!==void 0&&e.setHeader("Content-Length",String(i.size)),S(i.resolvedTargetPath).pipe(e)}catch(a){const s=a;h.error("failed to download workspace entry:",s),e.headersSent?e.destroy(s):e.status(400).json({error:s.message})}finally{if(r&&await u.rm(r,{force:!0}).catch(()=>{}),t){const a=m.get(t);a&&(a.done=!0,a.totalBytes===null&&(a.totalBytes=0)),setTimeout(()=>m.delete(t),tt)}}}),p.post("/workspace/download-progress",c,(o,e)=>{const r=String((o.body||{}).progressId||"").trim();if(!r){e.status(400).json({error:"progressId is required"});return}const t=m.get(r);if(!t){e.status(404).json({error:"download progress not found"});return}e.json({zippedBytes:t.zippedBytes,totalBytes:t.totalBytes,done:t.done,cancelled:t.cancelled})}),p.post("/workspace/download-cancel",c,(o,e)=>{const r=String((o.body||{}).progressId||"").trim();if(!r){e.status(400).json({error:"progressId is required"});return}const t=m.get(r);t&&(t.cancelled=!0,t.done=!0,t.updatedAt=Date.now()),e.json({ok:!0})}),p.post("/workspace/extract",c,async(o,e)=>{try{const{workspacePath:r,archivePath:t,outputPath:a=""}=o.body||{},s=await B({workspacePath:String(r||""),archivePath:String(t||""),outputPath:String(a||"")});e.json(s)}catch(r){const t=r;h.error("failed to extract workspace archive:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/path-search",c,async(o,e)=>{try{const{workspacePath:r,rootPath:t,keyword:a,ignoreCase:s,maxResults:i,maxDirectories:n}=o.body||{},l=await q({workspacePath:String(r||""),rootPath:t!==void 0?String(t):void 0,keyword:String(a||""),ignoreCase:P(s),maxResults:typeof i=="number"?i:void 0,maxDirectories:typeof n=="number"?n:void 0});e.json(l)}catch(r){const t=r;h.error("failed to search workspace paths:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/search",c,async(o,e)=>{try{const{workspacePath:r,keyword:t,fileMask:a,ignoreCase:s,maxResults:i,mode:n}=o.body||{},l=await Y({workspacePath:String(r||""),keyword:String(t||""),fileMask:a!==void 0?String(a):void 0,ignoreCase:P(s),maxResults:typeof i=="number"?i:void 0,mode:n==="filename"?"filename":"content"});e.json(l)}catch(r){const t=r;h.error("failed to search workspace files:",t),e.status(400).json({error:t.message})}}),p.post("/workspace/replace",c,async(o,e)=>{try{const{workspacePath:r,keyword:t,replacement:a,fileMask:s,ignoreCase:i,filePath:n}=o.body||{},l=await G({workspacePath:String(r||""),keyword:String(t||""),replacement:String(a??""),fileMask:s!==void 0?String(s):void 0,ignoreCase:P(i),filePath:n!==void 0?String(n):void 0});e.json(l)}catch(r){const t=r;h.error("failed to replace workspace files:",t),e.status(400).json({error:t.message})}});export{b as WORKSPACE_UPLOAD_FILE_LIMIT,et as WORKSPACE_UPLOAD_MAX_FILE_SIZE_BYTES,st as createWorkspaceUploadLimitResponse,p as fileBrowserRouter,Tt as isIgnoredByGitIgnore,ct as listHostDirectoryTree,Wt as loadGitIgnoreRules,Rt as parseGitIgnoreRules,nt as parseWorkspaceUploadRelativePaths};
2
2
 
@@ -1,4 +1,19 @@
1
1
 
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
2
17
  export declare const fileChangeDiffRouter: import("express-serve-static-core").Router;
3
18
 
4
19
  export type ChangeDiffLineType = 'hunk' | 'context' | 'add' | 'remove';
@@ -22,6 +37,16 @@ export interface ChangeDiffResponse {
22
37
  error?: string;
23
38
  }
24
39
 
40
+
41
+
42
+
43
+
25
44
  export declare function parseDiffPatchLines(patch: string): ChangeDiffLine[];
26
45
 
46
+
47
+
48
+
49
+
50
+
51
+
27
52
  export declare function buildChangeDiffResponse(workspacePath: string, cacheKey: string | null | undefined, operation: string, filePath: string): Promise<ChangeDiffResponse>;
@@ -1,3 +1,23 @@
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
1
21
 
2
22
  export declare const fileDiffRollbackRouter: import("express-serve-static-core").Router;
3
23
  export interface ReverseOperation {
@@ -14,6 +34,11 @@ export interface DiffRollbackRequest {
14
34
  workspacePath: string;
15
35
  operations: ReverseOperation[];
16
36
 
37
+
38
+
39
+
40
+
41
+
17
42
  skipFailed?: boolean;
18
43
  }
19
44
 
@@ -35,6 +60,9 @@ export interface DiffRollbackResult {
35
60
 
36
61
  previewFailed?: boolean;
37
62
 
63
+
64
+
65
+
38
66
  partial?: boolean;
39
67
 
40
68
  details: OperationDetail[];
@@ -1,2 +1,9 @@
1
1
 
2
+
3
+
4
+
5
+
6
+
7
+
8
+
2
9
  export declare const fileSnapshotRouter: import("express-serve-static-core").Router;
@@ -1,6 +1,13 @@
1
1
 
2
+
3
+
4
+
5
+
2
6
  export declare const gitRouter: import("express-serve-static-core").Router;
3
7
 
8
+
9
+
10
+
4
11
  export declare function resolveGitCommandTimeoutMs(): number;
5
12
  interface GitRepositoryContext {
6
13
  workspacePath: string;
@@ -26,6 +33,64 @@ interface GitDiffSummaryFile {
26
33
  deletions: number;
27
34
  staged: boolean;
28
35
  }
36
+ interface GitCommitItem {
37
+ hash: string;
38
+ shortHash: string;
39
+ authorName: string;
40
+ authorDate: string;
41
+ subject: string;
42
+
43
+ body: string;
44
+
45
+ parents: string[];
46
+
47
+ isRemote: boolean;
48
+ }
49
+
50
+
51
+
52
+
53
+ export declare function resolveCommitPageLimit(rawLimit: unknown, graphMode: boolean): number;
54
+
55
+
56
+
57
+ export declare function resolveCommitPageSkip(rawSkip: unknown): number;
58
+
59
+ export interface CommitPageResult<T> {
60
+ page: T[];
61
+ hasMore: boolean;
62
+ nextSkip: number;
63
+ }
64
+
65
+
66
+
67
+
68
+
69
+ export declare function sliceCommitPage<T>(fetched: T[], limit: number, skip: number): CommitPageResult<T>;
70
+ interface GitCommitLogQuery {
71
+
72
+ limit: number;
73
+
74
+ skip: number;
75
+ graphMode: boolean;
76
+
77
+ focusedRef: string;
78
+
79
+ relativeWorkspacePath: string;
80
+
81
+
82
+
83
+
84
+ graphHeadRef?: string | null;
85
+ }
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+ export declare function buildGitCommitLogArgs(query: GitCommitLogQuery): string[];
29
94
  export interface GitBranchItem {
30
95
 
31
96
  name: string;
@@ -38,11 +103,20 @@ export interface GitBranchItem {
38
103
  upstream: string;
39
104
  }
40
105
 
106
+
107
+
108
+
41
109
  export declare function shouldIncludeGitDiffSummaryFile(status: GitDiffFileStatus, additions: number, deletions: number, isBinaryDiff: boolean): boolean;
42
110
 
111
+
112
+
113
+
43
114
  export declare function isGitStashMissingInitialCommitError(output: string): boolean;
44
115
  export declare function createMissingInitialCommitSnapshotError(): string;
45
116
 
117
+
118
+
119
+
46
120
  export declare function isGitStashNoChangesOutput(output: string): boolean;
47
121
  interface LatestGitStash {
48
122
  ref: string;
@@ -50,37 +124,88 @@ interface LatestGitStash {
50
124
  message: string;
51
125
  }
52
126
 
127
+
128
+
129
+
53
130
  export declare function createAgentsWorkStashSnapshotRef(stashRef: string): string | null;
54
131
 
132
+
133
+
134
+
55
135
  export declare function parseGitStashListLine(line: string): GitStashItem | null;
56
136
 
137
+
138
+
139
+
57
140
  export declare function parseLatestGitStash(output: string): LatestGitStash | null;
58
141
 
142
+
143
+
144
+
59
145
  export declare function resolveGitPushTimeoutMs(): number;
60
146
 
147
+
148
+
149
+
61
150
  export declare function persistAgentsWorkStashSnapshotRef(workspacePath: string, stashRef: string): Promise<string | null>;
62
151
 
152
+
153
+
63
154
  export declare function parseGitStatusStagedPaths(output: string): Set<string>;
64
155
 
156
+
157
+
65
158
  export declare function parseGitDiffSummary(nameStatusOutput: string, numstatOutput: string, stagedPaths?: Set<string>, forceStaged?: boolean): GitDiffSummaryFile[];
66
159
 
160
+
161
+
162
+
67
163
  export declare function parseGitStatusUntrackedPaths(output: string): string[];
68
164
 
165
+
166
+
167
+
168
+
69
169
  export declare function countUntrackedFileAdditions(content: string): number;
70
170
 
171
+
172
+
173
+
71
174
  export declare function collectUntrackedFiles(repoRootPath: string, untrackedPaths: string[], existingFilePaths: Set<string>, maxDepth?: number): Promise<GitDiffSummaryFile[]>;
72
175
 
176
+
177
+
178
+
73
179
  export declare function mergeGitDiffSummaryFiles(unstagedFiles: GitDiffSummaryFile[], stagedFiles: GitDiffSummaryFile[]): GitDiffSummaryFile[];
74
180
  export declare function normalizeGitCommitMessage(message: unknown): string;
75
181
  export declare function createScopedGitPathspecArgs(context: Pick<GitRepositoryContext, 'relativeWorkspacePath'>): string[];
76
182
  export declare function createScopedFilePathspecArgs(filePath: string, context: Pick<GitRepositoryContext, 'relativeWorkspacePath'>): string[];
77
183
 
184
+
185
+
186
+
187
+
188
+ export declare function parseGitCommitLog(output: string): Omit<GitCommitItem, 'isRemote'>[];
189
+
190
+
191
+
192
+
193
+
78
194
  export declare function resolveRemoteCommitHashes(repoRootPath: string): Promise<Set<string>>;
79
195
 
196
+
197
+
80
198
  export declare function resolveCurrentBranchName(repoRootPath: string): Promise<string>;
81
199
 
200
+
201
+
202
+
82
203
  export declare function listGitBranches(repoRootPath: string): Promise<GitBranchItem[]>;
83
204
 
205
+
206
+
207
+
208
+
84
209
  export declare function buildCommitDiffBaseArgs(commitHash: string, aggregate: boolean): string[];
85
210
  export interface GitPushResult {
86
211
  branch: string;
@@ -89,6 +214,10 @@ export interface GitPushResult {
89
214
  output: string;
90
215
  }
91
216
 
217
+
218
+
219
+
220
+
92
221
  export declare function pushBranchToRemote(repoRootPath: string): Promise<GitPushResult>;
93
222
  export interface GitStashSnapshotResult {
94
223
 
@@ -100,12 +229,22 @@ export interface GitStashSnapshotResult {
100
229
  message: string;
101
230
  }
102
231
 
232
+
233
+
234
+
235
+
103
236
  export declare function createGitStashSnapshot(workspacePath: string, message?: string): Promise<GitStashSnapshotResult>;
104
237
  export interface GitCommitOutcome {
105
238
  committedPaths: string[];
106
239
  output: string;
107
240
  }
108
241
 
242
+
243
+
244
+
245
+
246
+
247
+
109
248
  export declare function commitSelectedFiles(repoRootPath: string, message: string, pathspecs: string[]): Promise<GitCommitOutcome>;
110
249
  export type GitResetMode = 'soft' | 'hard';
111
250
  export interface GitResetPreview {
@@ -121,17 +260,63 @@ export interface GitResetPreview {
121
260
  affectsRemote: boolean;
122
261
  }
123
262
 
263
+
264
+
124
265
  export declare function previewRepositoryReset(repoRootPath: string, commitHash: string, mode: GitResetMode): Promise<GitResetPreview>;
125
266
 
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+
275
+
126
276
  export declare function resetRepositoryTo(repoRootPath: string, commitHash: string, mode: GitResetMode, cleanScopePath?: string): Promise<GitResetPreview>;
127
277
 
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+
289
+
128
290
  export declare function sanitizeCommitMessage(raw: string): string;
129
291
 
292
+
293
+
294
+
130
295
  export declare function extractOpenAiStreamDelta(chunkText: string): string;
131
296
 
297
+
298
+
299
+
132
300
  export declare function debugAiStreamChunk(chunkText: string, index: number): void;
133
301
 
302
+
303
+
304
+
305
+
306
+
134
307
  export declare function callAiForCommitMessage(aiBaseUrl: string, aiApiKey: string, aiModel: string, diffContent: string): Promise<string>;
135
308
 
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+
320
+
136
321
  export declare function streamAiForCommitMessage(aiBaseUrl: string, aiApiKey: string, aiModel: string, diffContent: string, onDelta: (delta: string, accumulated: string) => void, abortSignal?: AbortSignal): Promise<string>;
137
322
  export {};