@jait/gateway 0.1.0

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 (474) hide show
  1. package/bin/jait.mjs +144 -0
  2. package/dist/config.d.ts +24 -0
  3. package/dist/config.d.ts.map +1 -0
  4. package/dist/config.js +73 -0
  5. package/dist/config.js.map +1 -0
  6. package/dist/db/connection.d.ts +37 -0
  7. package/dist/db/connection.d.ts.map +1 -0
  8. package/dist/db/connection.js +85 -0
  9. package/dist/db/connection.js.map +1 -0
  10. package/dist/db/index.d.ts +4 -0
  11. package/dist/db/index.d.ts.map +1 -0
  12. package/dist/db/index.js +4 -0
  13. package/dist/db/index.js.map +1 -0
  14. package/dist/db/migrations.d.ts +24 -0
  15. package/dist/db/migrations.d.ts.map +1 -0
  16. package/dist/db/migrations.js +312 -0
  17. package/dist/db/migrations.js.map +1 -0
  18. package/dist/db/schema.d.ts +2253 -0
  19. package/dist/db/schema.d.ts.map +1 -0
  20. package/dist/db/schema.js +195 -0
  21. package/dist/db/schema.js.map +1 -0
  22. package/dist/foundation.d.ts +26 -0
  23. package/dist/foundation.d.ts.map +1 -0
  24. package/dist/foundation.js +15 -0
  25. package/dist/foundation.js.map +1 -0
  26. package/dist/index.d.ts +3 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +413 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/lib/uuidv7.d.ts +10 -0
  31. package/dist/lib/uuidv7.d.ts.map +1 -0
  32. package/dist/lib/uuidv7.js +33 -0
  33. package/dist/lib/uuidv7.js.map +1 -0
  34. package/dist/memory/contracts.d.ts +42 -0
  35. package/dist/memory/contracts.d.ts.map +1 -0
  36. package/dist/memory/contracts.js +2 -0
  37. package/dist/memory/contracts.js.map +1 -0
  38. package/dist/memory/embeddings.d.ts +4 -0
  39. package/dist/memory/embeddings.d.ts.map +1 -0
  40. package/dist/memory/embeddings.js +26 -0
  41. package/dist/memory/embeddings.js.map +1 -0
  42. package/dist/memory/service.d.ts +17 -0
  43. package/dist/memory/service.d.ts.map +1 -0
  44. package/dist/memory/service.js +82 -0
  45. package/dist/memory/service.js.map +1 -0
  46. package/dist/memory/sqlite-backend.d.ts +11 -0
  47. package/dist/memory/sqlite-backend.d.ts.map +1 -0
  48. package/dist/memory/sqlite-backend.js +68 -0
  49. package/dist/memory/sqlite-backend.js.map +1 -0
  50. package/dist/plugins/contracts.d.ts +11 -0
  51. package/dist/plugins/contracts.d.ts.map +1 -0
  52. package/dist/plugins/contracts.js +2 -0
  53. package/dist/plugins/contracts.js.map +1 -0
  54. package/dist/providers/claude-code-provider.d.ts +39 -0
  55. package/dist/providers/claude-code-provider.d.ts.map +1 -0
  56. package/dist/providers/claude-code-provider.js +322 -0
  57. package/dist/providers/claude-code-provider.js.map +1 -0
  58. package/dist/providers/codex-provider.d.ts +51 -0
  59. package/dist/providers/codex-provider.d.ts.map +1 -0
  60. package/dist/providers/codex-provider.js +826 -0
  61. package/dist/providers/codex-provider.js.map +1 -0
  62. package/dist/providers/contracts.d.ts +167 -0
  63. package/dist/providers/contracts.d.ts.map +1 -0
  64. package/dist/providers/contracts.js +13 -0
  65. package/dist/providers/contracts.js.map +1 -0
  66. package/dist/providers/index.d.ts +6 -0
  67. package/dist/providers/index.d.ts.map +1 -0
  68. package/dist/providers/index.js +5 -0
  69. package/dist/providers/index.js.map +1 -0
  70. package/dist/providers/jait-provider.d.ts +23 -0
  71. package/dist/providers/jait-provider.d.ts.map +1 -0
  72. package/dist/providers/jait-provider.js +67 -0
  73. package/dist/providers/jait-provider.js.map +1 -0
  74. package/dist/providers/registry.d.ts +39 -0
  75. package/dist/providers/registry.d.ts.map +1 -0
  76. package/dist/providers/registry.js +64 -0
  77. package/dist/providers/registry.js.map +1 -0
  78. package/dist/pty-broker-client.d.ts +46 -0
  79. package/dist/pty-broker-client.d.ts.map +1 -0
  80. package/dist/pty-broker-client.js +142 -0
  81. package/dist/pty-broker-client.js.map +1 -0
  82. package/dist/routes/auth.d.ts +6 -0
  83. package/dist/routes/auth.d.ts.map +1 -0
  84. package/dist/routes/auth.js +236 -0
  85. package/dist/routes/auth.js.map +1 -0
  86. package/dist/routes/chat.d.ts +32 -0
  87. package/dist/routes/chat.d.ts.map +1 -0
  88. package/dist/routes/chat.js +1503 -0
  89. package/dist/routes/chat.js.map +1 -0
  90. package/dist/routes/consent.d.ts +10 -0
  91. package/dist/routes/consent.d.ts.map +1 -0
  92. package/dist/routes/consent.js +127 -0
  93. package/dist/routes/consent.js.map +1 -0
  94. package/dist/routes/filesystem.d.ts +14 -0
  95. package/dist/routes/filesystem.d.ts.map +1 -0
  96. package/dist/routes/filesystem.js +152 -0
  97. package/dist/routes/filesystem.js.map +1 -0
  98. package/dist/routes/git.d.ts +17 -0
  99. package/dist/routes/git.d.ts.map +1 -0
  100. package/dist/routes/git.js +213 -0
  101. package/dist/routes/git.js.map +1 -0
  102. package/dist/routes/health.d.ts +7 -0
  103. package/dist/routes/health.d.ts.map +1 -0
  104. package/dist/routes/health.js +21 -0
  105. package/dist/routes/health.js.map +1 -0
  106. package/dist/routes/hooks.d.ts +9 -0
  107. package/dist/routes/hooks.d.ts.map +1 -0
  108. package/dist/routes/hooks.js +22 -0
  109. package/dist/routes/hooks.js.map +1 -0
  110. package/dist/routes/jobs.d.ts +5 -0
  111. package/dist/routes/jobs.d.ts.map +1 -0
  112. package/dist/routes/jobs.js +333 -0
  113. package/dist/routes/jobs.js.map +1 -0
  114. package/dist/routes/mcp-server.d.ts +23 -0
  115. package/dist/routes/mcp-server.d.ts.map +1 -0
  116. package/dist/routes/mcp-server.js +177 -0
  117. package/dist/routes/mcp-server.js.map +1 -0
  118. package/dist/routes/mobile.d.ts +12 -0
  119. package/dist/routes/mobile.d.ts.map +1 -0
  120. package/dist/routes/mobile.js +64 -0
  121. package/dist/routes/mobile.js.map +1 -0
  122. package/dist/routes/network.d.ts +3 -0
  123. package/dist/routes/network.d.ts.map +1 -0
  124. package/dist/routes/network.js +367 -0
  125. package/dist/routes/network.js.map +1 -0
  126. package/dist/routes/repositories.d.ts +18 -0
  127. package/dist/routes/repositories.d.ts.map +1 -0
  128. package/dist/routes/repositories.js +90 -0
  129. package/dist/routes/repositories.js.map +1 -0
  130. package/dist/routes/screen-share.d.ts +17 -0
  131. package/dist/routes/screen-share.d.ts.map +1 -0
  132. package/dist/routes/screen-share.js +92 -0
  133. package/dist/routes/screen-share.js.map +1 -0
  134. package/dist/routes/sessions.d.ts +18 -0
  135. package/dist/routes/sessions.d.ts.map +1 -0
  136. package/dist/routes/sessions.js +169 -0
  137. package/dist/routes/sessions.js.map +1 -0
  138. package/dist/routes/terminals.d.ts +15 -0
  139. package/dist/routes/terminals.d.ts.map +1 -0
  140. package/dist/routes/terminals.js +326 -0
  141. package/dist/routes/terminals.js.map +1 -0
  142. package/dist/routes/threads.d.ts +38 -0
  143. package/dist/routes/threads.d.ts.map +1 -0
  144. package/dist/routes/threads.js +488 -0
  145. package/dist/routes/threads.js.map +1 -0
  146. package/dist/routes/trust.d.ts +9 -0
  147. package/dist/routes/trust.d.ts.map +1 -0
  148. package/dist/routes/trust.js +25 -0
  149. package/dist/routes/trust.js.map +1 -0
  150. package/dist/routes/voice.d.ts +5 -0
  151. package/dist/routes/voice.d.ts.map +1 -0
  152. package/dist/routes/voice.js +37 -0
  153. package/dist/routes/voice.js.map +1 -0
  154. package/dist/routes/workspace.d.ts +13 -0
  155. package/dist/routes/workspace.d.ts.map +1 -0
  156. package/dist/routes/workspace.js +275 -0
  157. package/dist/routes/workspace.js.map +1 -0
  158. package/dist/scheduler/contracts.d.ts +15 -0
  159. package/dist/scheduler/contracts.d.ts.map +1 -0
  160. package/dist/scheduler/contracts.js +2 -0
  161. package/dist/scheduler/contracts.js.map +1 -0
  162. package/dist/scheduler/hooks.d.ts +20 -0
  163. package/dist/scheduler/hooks.d.ts.map +1 -0
  164. package/dist/scheduler/hooks.js +78 -0
  165. package/dist/scheduler/hooks.js.map +1 -0
  166. package/dist/scheduler/service.d.ts +65 -0
  167. package/dist/scheduler/service.d.ts.map +1 -0
  168. package/dist/scheduler/service.js +188 -0
  169. package/dist/scheduler/service.js.map +1 -0
  170. package/dist/security/consent-executor.d.ts +48 -0
  171. package/dist/security/consent-executor.d.ts.map +1 -0
  172. package/dist/security/consent-executor.js +158 -0
  173. package/dist/security/consent-executor.js.map +1 -0
  174. package/dist/security/consent-manager.d.ts +105 -0
  175. package/dist/security/consent-manager.d.ts.map +1 -0
  176. package/dist/security/consent-manager.js +227 -0
  177. package/dist/security/consent-manager.js.map +1 -0
  178. package/dist/security/contracts.d.ts +31 -0
  179. package/dist/security/contracts.d.ts.map +1 -0
  180. package/dist/security/contracts.js +2 -0
  181. package/dist/security/contracts.js.map +1 -0
  182. package/dist/security/http-auth.d.ts +10 -0
  183. package/dist/security/http-auth.d.ts.map +1 -0
  184. package/dist/security/http-auth.js +48 -0
  185. package/dist/security/http-auth.js.map +1 -0
  186. package/dist/security/index.d.ts +10 -0
  187. package/dist/security/index.d.ts.map +1 -0
  188. package/dist/security/index.js +9 -0
  189. package/dist/security/index.js.map +1 -0
  190. package/dist/security/path-guard.d.ts +40 -0
  191. package/dist/security/path-guard.d.ts.map +1 -0
  192. package/dist/security/path-guard.js +125 -0
  193. package/dist/security/path-guard.js.map +1 -0
  194. package/dist/security/sandbox-manager.d.ts +43 -0
  195. package/dist/security/sandbox-manager.d.ts.map +1 -0
  196. package/dist/security/sandbox-manager.js +110 -0
  197. package/dist/security/sandbox-manager.js.map +1 -0
  198. package/dist/security/ssrf-guard.d.ts +11 -0
  199. package/dist/security/ssrf-guard.d.ts.map +1 -0
  200. package/dist/security/ssrf-guard.js +59 -0
  201. package/dist/security/ssrf-guard.js.map +1 -0
  202. package/dist/security/tool-permissions.d.ts +61 -0
  203. package/dist/security/tool-permissions.d.ts.map +1 -0
  204. package/dist/security/tool-permissions.js +105 -0
  205. package/dist/security/tool-permissions.js.map +1 -0
  206. package/dist/security/tool-profiles.d.ts +23 -0
  207. package/dist/security/tool-profiles.d.ts.map +1 -0
  208. package/dist/security/tool-profiles.js +106 -0
  209. package/dist/security/tool-profiles.js.map +1 -0
  210. package/dist/security/trust-engine.d.ts +61 -0
  211. package/dist/security/trust-engine.d.ts.map +1 -0
  212. package/dist/security/trust-engine.js +192 -0
  213. package/dist/security/trust-engine.js.map +1 -0
  214. package/dist/server.d.ts +54 -0
  215. package/dist/server.d.ts.map +1 -0
  216. package/dist/server.js +188 -0
  217. package/dist/server.js.map +1 -0
  218. package/dist/services/audit.d.ts +60 -0
  219. package/dist/services/audit.d.ts.map +1 -0
  220. package/dist/services/audit.js +58 -0
  221. package/dist/services/audit.js.map +1 -0
  222. package/dist/services/device-registry.d.ts +15 -0
  223. package/dist/services/device-registry.d.ts.map +1 -0
  224. package/dist/services/device-registry.js +32 -0
  225. package/dist/services/device-registry.js.map +1 -0
  226. package/dist/services/git.d.ts +168 -0
  227. package/dist/services/git.d.ts.map +1 -0
  228. package/dist/services/git.js +957 -0
  229. package/dist/services/git.js.map +1 -0
  230. package/dist/services/repositories.d.ts +32 -0
  231. package/dist/services/repositories.d.ts.map +1 -0
  232. package/dist/services/repositories.js +70 -0
  233. package/dist/services/repositories.js.map +1 -0
  234. package/dist/services/session-state.d.ts +20 -0
  235. package/dist/services/session-state.d.ts.map +1 -0
  236. package/dist/services/session-state.js +89 -0
  237. package/dist/services/session-state.js.map +1 -0
  238. package/dist/services/sessions.d.ts +68 -0
  239. package/dist/services/sessions.d.ts.map +1 -0
  240. package/dist/services/sessions.js +136 -0
  241. package/dist/services/sessions.js.map +1 -0
  242. package/dist/services/thread-title.d.ts +23 -0
  243. package/dist/services/thread-title.d.ts.map +1 -0
  244. package/dist/services/thread-title.js +141 -0
  245. package/dist/services/thread-title.js.map +1 -0
  246. package/dist/services/threads.d.ts +64 -0
  247. package/dist/services/threads.d.ts.map +1 -0
  248. package/dist/services/threads.js +202 -0
  249. package/dist/services/threads.js.map +1 -0
  250. package/dist/services/users.d.ts +39 -0
  251. package/dist/services/users.d.ts.map +1 -0
  252. package/dist/services/users.js +203 -0
  253. package/dist/services/users.js.map +1 -0
  254. package/dist/sessions/contracts.d.ts +14 -0
  255. package/dist/sessions/contracts.d.ts.map +1 -0
  256. package/dist/sessions/contracts.js +2 -0
  257. package/dist/sessions/contracts.js.map +1 -0
  258. package/dist/surfaces/browser.d.ts +65 -0
  259. package/dist/surfaces/browser.d.ts.map +1 -0
  260. package/dist/surfaces/browser.js +615 -0
  261. package/dist/surfaces/browser.js.map +1 -0
  262. package/dist/surfaces/contracts.d.ts +34 -0
  263. package/dist/surfaces/contracts.d.ts.map +1 -0
  264. package/dist/surfaces/contracts.js +2 -0
  265. package/dist/surfaces/contracts.js.map +1 -0
  266. package/dist/surfaces/filesystem.d.ts +76 -0
  267. package/dist/surfaces/filesystem.d.ts.map +1 -0
  268. package/dist/surfaces/filesystem.js +245 -0
  269. package/dist/surfaces/filesystem.js.map +1 -0
  270. package/dist/surfaces/index.d.ts +6 -0
  271. package/dist/surfaces/index.d.ts.map +1 -0
  272. package/dist/surfaces/index.js +5 -0
  273. package/dist/surfaces/index.js.map +1 -0
  274. package/dist/surfaces/registry.d.ts +24 -0
  275. package/dist/surfaces/registry.d.ts.map +1 -0
  276. package/dist/surfaces/registry.js +59 -0
  277. package/dist/surfaces/registry.js.map +1 -0
  278. package/dist/surfaces/terminal.d.ts +76 -0
  279. package/dist/surfaces/terminal.d.ts.map +1 -0
  280. package/dist/surfaces/terminal.js +271 -0
  281. package/dist/surfaces/terminal.js.map +1 -0
  282. package/dist/tools/agent-loop.d.ts +302 -0
  283. package/dist/tools/agent-loop.d.ts.map +1 -0
  284. package/dist/tools/agent-loop.js +918 -0
  285. package/dist/tools/agent-loop.js.map +1 -0
  286. package/dist/tools/agent-tools.d.ts +39 -0
  287. package/dist/tools/agent-tools.d.ts.map +1 -0
  288. package/dist/tools/agent-tools.js +263 -0
  289. package/dist/tools/agent-tools.js.map +1 -0
  290. package/dist/tools/browser-tools.d.ts +38 -0
  291. package/dist/tools/browser-tools.d.ts.map +1 -0
  292. package/dist/tools/browser-tools.js +725 -0
  293. package/dist/tools/browser-tools.js.map +1 -0
  294. package/dist/tools/chat-modes.d.ts +75 -0
  295. package/dist/tools/chat-modes.d.ts.map +1 -0
  296. package/dist/tools/chat-modes.js +228 -0
  297. package/dist/tools/chat-modes.js.map +1 -0
  298. package/dist/tools/contracts.d.ts +69 -0
  299. package/dist/tools/contracts.d.ts.map +1 -0
  300. package/dist/tools/contracts.js +2 -0
  301. package/dist/tools/contracts.js.map +1 -0
  302. package/dist/tools/core/agent.d.ts +31 -0
  303. package/dist/tools/core/agent.d.ts.map +1 -0
  304. package/dist/tools/core/agent.js +65 -0
  305. package/dist/tools/core/agent.js.map +1 -0
  306. package/dist/tools/core/edit.d.ts +30 -0
  307. package/dist/tools/core/edit.d.ts.map +1 -0
  308. package/dist/tools/core/edit.js +109 -0
  309. package/dist/tools/core/edit.js.map +1 -0
  310. package/dist/tools/core/execute.d.ts +36 -0
  311. package/dist/tools/core/execute.d.ts.map +1 -0
  312. package/dist/tools/core/execute.js +81 -0
  313. package/dist/tools/core/execute.js.map +1 -0
  314. package/dist/tools/core/get-fs.d.ts +32 -0
  315. package/dist/tools/core/get-fs.d.ts.map +1 -0
  316. package/dist/tools/core/get-fs.js +143 -0
  317. package/dist/tools/core/get-fs.js.map +1 -0
  318. package/dist/tools/core/index.d.ts +26 -0
  319. package/dist/tools/core/index.d.ts.map +1 -0
  320. package/dist/tools/core/index.js +26 -0
  321. package/dist/tools/core/index.js.map +1 -0
  322. package/dist/tools/core/jait.d.ts +60 -0
  323. package/dist/tools/core/jait.d.ts.map +1 -0
  324. package/dist/tools/core/jait.js +256 -0
  325. package/dist/tools/core/jait.js.map +1 -0
  326. package/dist/tools/core/read.d.ts +26 -0
  327. package/dist/tools/core/read.d.ts.map +1 -0
  328. package/dist/tools/core/read.js +118 -0
  329. package/dist/tools/core/read.js.map +1 -0
  330. package/dist/tools/core/search.d.ts +34 -0
  331. package/dist/tools/core/search.d.ts.map +1 -0
  332. package/dist/tools/core/search.js +187 -0
  333. package/dist/tools/core/search.js.map +1 -0
  334. package/dist/tools/core/todo.d.ts +38 -0
  335. package/dist/tools/core/todo.d.ts.map +1 -0
  336. package/dist/tools/core/todo.js +116 -0
  337. package/dist/tools/core/todo.js.map +1 -0
  338. package/dist/tools/core/web.d.ts +34 -0
  339. package/dist/tools/core/web.d.ts.map +1 -0
  340. package/dist/tools/core/web.js +120 -0
  341. package/dist/tools/core/web.js.map +1 -0
  342. package/dist/tools/cron-tools.d.ts +7 -0
  343. package/dist/tools/cron-tools.d.ts.map +1 -0
  344. package/dist/tools/cron-tools.js +116 -0
  345. package/dist/tools/cron-tools.js.map +1 -0
  346. package/dist/tools/file-tools.d.ts +32 -0
  347. package/dist/tools/file-tools.d.ts.map +1 -0
  348. package/dist/tools/file-tools.js +178 -0
  349. package/dist/tools/file-tools.js.map +1 -0
  350. package/dist/tools/gateway-tools.d.ts +15 -0
  351. package/dist/tools/gateway-tools.d.ts.map +1 -0
  352. package/dist/tools/gateway-tools.js +39 -0
  353. package/dist/tools/gateway-tools.js.map +1 -0
  354. package/dist/tools/index.d.ts +57 -0
  355. package/dist/tools/index.d.ts.map +1 -0
  356. package/dist/tools/index.js +170 -0
  357. package/dist/tools/index.js.map +1 -0
  358. package/dist/tools/mcp-bridge.d.ts +111 -0
  359. package/dist/tools/mcp-bridge.d.ts.map +1 -0
  360. package/dist/tools/mcp-bridge.js +166 -0
  361. package/dist/tools/mcp-bridge.js.map +1 -0
  362. package/dist/tools/memory-tools.d.ts +19 -0
  363. package/dist/tools/memory-tools.d.ts.map +1 -0
  364. package/dist/tools/memory-tools.js +78 -0
  365. package/dist/tools/memory-tools.js.map +1 -0
  366. package/dist/tools/meta-tools.d.ts +25 -0
  367. package/dist/tools/meta-tools.d.ts.map +1 -0
  368. package/dist/tools/meta-tools.js +125 -0
  369. package/dist/tools/meta-tools.js.map +1 -0
  370. package/dist/tools/network-tools.d.ts +21 -0
  371. package/dist/tools/network-tools.d.ts.map +1 -0
  372. package/dist/tools/network-tools.js +189 -0
  373. package/dist/tools/network-tools.js.map +1 -0
  374. package/dist/tools/os-tools.d.ts +18 -0
  375. package/dist/tools/os-tools.d.ts.map +1 -0
  376. package/dist/tools/os-tools.js +210 -0
  377. package/dist/tools/os-tools.js.map +1 -0
  378. package/dist/tools/prompts/claude-prompt.d.ts +8 -0
  379. package/dist/tools/prompts/claude-prompt.d.ts.map +1 -0
  380. package/dist/tools/prompts/claude-prompt.js +228 -0
  381. package/dist/tools/prompts/claude-prompt.js.map +1 -0
  382. package/dist/tools/prompts/default-openai-prompt.d.ts +8 -0
  383. package/dist/tools/prompts/default-openai-prompt.d.ts.map +1 -0
  384. package/dist/tools/prompts/default-openai-prompt.js +67 -0
  385. package/dist/tools/prompts/default-openai-prompt.js.map +1 -0
  386. package/dist/tools/prompts/default-prompt.d.ts +7 -0
  387. package/dist/tools/prompts/default-prompt.d.ts.map +1 -0
  388. package/dist/tools/prompts/default-prompt.js +50 -0
  389. package/dist/tools/prompts/default-prompt.js.map +1 -0
  390. package/dist/tools/prompts/gemini-prompt.d.ts +8 -0
  391. package/dist/tools/prompts/gemini-prompt.d.ts.map +1 -0
  392. package/dist/tools/prompts/gemini-prompt.js +118 -0
  393. package/dist/tools/prompts/gemini-prompt.js.map +1 -0
  394. package/dist/tools/prompts/gpt5-codex-prompt.d.ts +8 -0
  395. package/dist/tools/prompts/gpt5-codex-prompt.d.ts.map +1 -0
  396. package/dist/tools/prompts/gpt5-codex-prompt.js +72 -0
  397. package/dist/tools/prompts/gpt5-codex-prompt.js.map +1 -0
  398. package/dist/tools/prompts/gpt5-prompt.d.ts +8 -0
  399. package/dist/tools/prompts/gpt5-prompt.d.ts.map +1 -0
  400. package/dist/tools/prompts/gpt5-prompt.js +177 -0
  401. package/dist/tools/prompts/gpt5-prompt.js.map +1 -0
  402. package/dist/tools/prompts/gpt51-prompt.d.ts +8 -0
  403. package/dist/tools/prompts/gpt51-prompt.d.ts.map +1 -0
  404. package/dist/tools/prompts/gpt51-prompt.js +178 -0
  405. package/dist/tools/prompts/gpt51-prompt.js.map +1 -0
  406. package/dist/tools/prompts/gpt52-prompt.d.ts +8 -0
  407. package/dist/tools/prompts/gpt52-prompt.d.ts.map +1 -0
  408. package/dist/tools/prompts/gpt52-prompt.js +198 -0
  409. package/dist/tools/prompts/gpt52-prompt.js.map +1 -0
  410. package/dist/tools/prompts/index.d.ts +22 -0
  411. package/dist/tools/prompts/index.d.ts.map +1 -0
  412. package/dist/tools/prompts/index.js +23 -0
  413. package/dist/tools/prompts/index.js.map +1 -0
  414. package/dist/tools/prompts/prompt-registry.d.ts +44 -0
  415. package/dist/tools/prompts/prompt-registry.d.ts.map +1 -0
  416. package/dist/tools/prompts/prompt-registry.js +60 -0
  417. package/dist/tools/prompts/prompt-registry.js.map +1 -0
  418. package/dist/tools/prompts/shared-sections.d.ts +28 -0
  419. package/dist/tools/prompts/shared-sections.d.ts.map +1 -0
  420. package/dist/tools/prompts/shared-sections.js +111 -0
  421. package/dist/tools/prompts/shared-sections.js.map +1 -0
  422. package/dist/tools/prompts/xai-prompt.d.ts +8 -0
  423. package/dist/tools/prompts/xai-prompt.d.ts.map +1 -0
  424. package/dist/tools/prompts/xai-prompt.js +68 -0
  425. package/dist/tools/prompts/xai-prompt.js.map +1 -0
  426. package/dist/tools/redeploy-tools.d.ts +30 -0
  427. package/dist/tools/redeploy-tools.d.ts.map +1 -0
  428. package/dist/tools/redeploy-tools.js +191 -0
  429. package/dist/tools/redeploy-tools.js.map +1 -0
  430. package/dist/tools/registry.d.ts +51 -0
  431. package/dist/tools/registry.d.ts.map +1 -0
  432. package/dist/tools/registry.js +148 -0
  433. package/dist/tools/registry.js.map +1 -0
  434. package/dist/tools/screen-share-tools.d.ts +31 -0
  435. package/dist/tools/screen-share-tools.d.ts.map +1 -0
  436. package/dist/tools/screen-share-tools.js +183 -0
  437. package/dist/tools/screen-share-tools.js.map +1 -0
  438. package/dist/tools/surface-tools.d.ts +23 -0
  439. package/dist/tools/surface-tools.d.ts.map +1 -0
  440. package/dist/tools/surface-tools.js +99 -0
  441. package/dist/tools/surface-tools.js.map +1 -0
  442. package/dist/tools/terminal-tools.d.ts +37 -0
  443. package/dist/tools/terminal-tools.d.ts.map +1 -0
  444. package/dist/tools/terminal-tools.js +448 -0
  445. package/dist/tools/terminal-tools.js.map +1 -0
  446. package/dist/tools/thread-tools.d.ts +61 -0
  447. package/dist/tools/thread-tools.d.ts.map +1 -0
  448. package/dist/tools/thread-tools.js +484 -0
  449. package/dist/tools/thread-tools.js.map +1 -0
  450. package/dist/tools/token-estimator.d.ts +55 -0
  451. package/dist/tools/token-estimator.d.ts.map +1 -0
  452. package/dist/tools/token-estimator.js +82 -0
  453. package/dist/tools/token-estimator.js.map +1 -0
  454. package/dist/tools/tool-names.d.ts +64 -0
  455. package/dist/tools/tool-names.d.ts.map +1 -0
  456. package/dist/tools/tool-names.js +76 -0
  457. package/dist/tools/tool-names.js.map +1 -0
  458. package/dist/tools/validate.d.ts +27 -0
  459. package/dist/tools/validate.d.ts.map +1 -0
  460. package/dist/tools/validate.js +99 -0
  461. package/dist/tools/validate.js.map +1 -0
  462. package/dist/tools/voice-tools.d.ts +8 -0
  463. package/dist/tools/voice-tools.d.ts.map +1 -0
  464. package/dist/tools/voice-tools.js +32 -0
  465. package/dist/tools/voice-tools.js.map +1 -0
  466. package/dist/voice/service.d.ts +42 -0
  467. package/dist/voice/service.d.ts.map +1 -0
  468. package/dist/voice/service.js +75 -0
  469. package/dist/voice/service.js.map +1 -0
  470. package/dist/ws.d.ts +90 -0
  471. package/dist/ws.d.ts.map +1 -0
  472. package/dist/ws.js +562 -0
  473. package/dist/ws.js.map +1 -0
  474. package/package.json +61 -0
@@ -0,0 +1,448 @@
1
+ /**
2
+ * Terminal Tools — persistent-terminal edition (OSC 633 shell integration)
3
+ *
4
+ * terminal.run — execute a command in a persistent interactive terminal (like VS Code)
5
+ * terminal.stream — start a new interactive terminal
6
+ *
7
+ * Commands run inside a real, visible terminal that the user can open and
8
+ * interact with in the frontend. Output is captured via OSC 633 escape
9
+ * sequences emitted by the shell integration scripts — the command itself
10
+ * is sent unmodified.
11
+ *
12
+ * Terminals persist between commands (up to 10 globally — oldest is
13
+ * stopped when the limit is exceeded).
14
+ */
15
+ import { uuidv7 } from "../lib/uuidv7.js";
16
+ import { SandboxManager } from "../security/sandbox-manager.js";
17
+ import { writeFileSync, unlinkSync, mkdirSync } from "node:fs";
18
+ import { join } from "node:path";
19
+ import { tmpdir } from "node:os";
20
+ // ── Constants ────────────────────────────────────────────────────
21
+ const MAX_TERMINALS = 10;
22
+ const INTERACTIVE_PROMPT_PATTERNS = [
23
+ /\[sudo\]\s+password\s+for\s+[^:]+:/i,
24
+ /password:\s*$/im,
25
+ /enter\s+passphrase\s+for\s+key/i,
26
+ /verification\s+code:\s*$/im,
27
+ /press\s+enter\s+to\s+continue/i,
28
+ ];
29
+ // ── Session → terminal mapping ───────────────────────────────────
30
+ /** sessionId → terminalId of the session's "default" terminal */
31
+ const sessionTerminalMap = new Map();
32
+ // ── Helpers ──────────────────────────────────────────────────────
33
+ /** Strip ANSI escape sequences from PTY output for clean text */
34
+ function stripAnsi(s) {
35
+ // eslint-disable-next-line no-control-regex
36
+ return s.replace(/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\].*?(?:\x07|\x1B\\))/g, "");
37
+ }
38
+ /** Strip OSC 633 sequences + ANSI + stray BEL from a PTY chunk for safe display */
39
+ function cleanChunk(s) {
40
+ // Remove OSC 633 shell-integration sequences (contain BEL \x07 which causes system beep)
41
+ let out = s.replace(/\x1b\]633;[A-Z][^\x07]*(?:\x07|\x1b\\)/g, "");
42
+ // Remove remaining ANSI escape sequences
43
+ out = stripAnsi(out);
44
+ // Remove any stray BEL characters
45
+ out = out.replace(/\x07/g, "");
46
+ // Normalise carriage returns
47
+ out = out.replace(/\r\n/g, "\n").replace(/\r/g, "");
48
+ return out;
49
+ }
50
+ export function detectInteractivePrompt(output) {
51
+ if (!output)
52
+ return false;
53
+ return INTERACTIVE_PROMPT_PATTERNS.some((pattern) => pattern.test(output));
54
+ }
55
+ /** Race a promise against an AbortSignal */
56
+ function raceAbort(promise, signal) {
57
+ if (signal.aborted)
58
+ return Promise.reject(new Error("Cancelled"));
59
+ return new Promise((resolve, reject) => {
60
+ const onAbort = () => reject(new Error("Cancelled"));
61
+ signal.addEventListener("abort", onAbort, { once: true });
62
+ promise.then((v) => { signal.removeEventListener("abort", onAbort); resolve(v); }, (e) => { signal.removeEventListener("abort", onAbort); reject(e); });
63
+ });
64
+ }
65
+ // ── Session terminal management ──────────────────────────────────
66
+ /**
67
+ * Get the session's existing terminal or spin up a new one.
68
+ * Enforces the global MAX_TERMINALS limit — oldest terminal is
69
+ * stopped when the cap is hit (the tool result will mention this).
70
+ */
71
+ async function ensureSessionTerminal(registry, context, preferredId) {
72
+ // 1. Try preferred terminal (if provided and alive)
73
+ if (preferredId) {
74
+ try {
75
+ const s = registry.getSurface(preferredId);
76
+ if (s && s.type === "terminal" && s.state === "running") {
77
+ return { surface: s, terminalId: preferredId, isNew: false };
78
+ }
79
+ }
80
+ catch { /* gone — fall through */ }
81
+ }
82
+ // 2. Try the session's default terminal
83
+ const existingId = sessionTerminalMap.get(context.sessionId);
84
+ if (existingId) {
85
+ try {
86
+ const s = registry.getSurface(existingId);
87
+ if (s && s.type === "terminal" && s.state === "running") {
88
+ return { surface: s, terminalId: existingId, isNew: false };
89
+ }
90
+ }
91
+ catch { /* gone */ }
92
+ sessionTerminalMap.delete(context.sessionId);
93
+ }
94
+ // 3. Enforce global limit — stop oldest terminal(s) if at cap
95
+ let warning;
96
+ const allTerminals = registry
97
+ .listSurfaces()
98
+ .filter((s) => s.type === "terminal" && s.state === "running");
99
+ if (allTerminals.length >= MAX_TERMINALS) {
100
+ const oldest = allTerminals[0];
101
+ await registry.stopSurface(oldest.id, "terminal limit reached");
102
+ // Clean up stale session mapping
103
+ for (const [sid, tid] of sessionTerminalMap.entries()) {
104
+ if (tid === oldest.id) {
105
+ sessionTerminalMap.delete(sid);
106
+ break;
107
+ }
108
+ }
109
+ warning = `Terminal limit (${MAX_TERMINALS}) reached — stopped oldest terminal ${oldest.id}`;
110
+ console.log(`[terminal] ${warning}`);
111
+ }
112
+ // 4. Create a new terminal
113
+ const terminalId = `term-${uuidv7()}`;
114
+ const surface = (await registry.startSurface("terminal", terminalId, {
115
+ sessionId: context.sessionId,
116
+ workspaceRoot: context.workspaceRoot,
117
+ }));
118
+ sessionTerminalMap.set(context.sessionId, terminalId);
119
+ // Wait for shell integration to signal prompt-ready (OSC 633;B)
120
+ await surface.waitForPrompt();
121
+ return { surface, terminalId, isNew: true, warning };
122
+ }
123
+ // ── OSC 633 command execution ────────────────────────────────────
124
+ /**
125
+ * Parse OSC 633 sequences from raw PTY data.
126
+ *
127
+ * The shell integration scripts emit:
128
+ * \x1b]633;C\x07 — command execution started
129
+ * \x1b]633;D;{exit}\x07 — command finished, exit code
130
+ * \x1b]633;B\x07 — prompt ready (after D)
131
+ *
132
+ * We listen for D (command done + exit code) to know the command
133
+ * finished, and capture all output between C and D.
134
+ */
135
+ // Regex for OSC 633;D;{exitCode} — terminated by BEL (\x07) or ST (\x1b\\)
136
+ // Exit code can be empty (null $LASTEXITCODE), a number, or negative
137
+ const OSC_DONE_RE = /\x1b\]633;D;(-?\d*)(?:\x07|\x1b\\)/;
138
+ // Regex for OSC 633;B — prompt end (command-line ready).
139
+ // B is always the LAST marker in the prompt sequence (D → P → A → prompt → B),
140
+ // but PowerShell's formatting pipeline can flush output *after* B arrives in
141
+ // the PTY. We use a short settle timer after D+B to capture late output.
142
+ const OSC_PROMPT_END_RE = /\x1b\]633;B(?:\x07|\x1b\\)/;
143
+ /**
144
+ * Send a command into a persistent terminal and capture its output + exit
145
+ * code using OSC 633 shell integration sequences.
146
+ *
147
+ * The command is sent **unmodified** — no wrapping, no temp files, no
148
+ * escaping. The shell's prompt hook emits OSC 633;D with the exit code
149
+ * when the command completes.
150
+ *
151
+ * Completion is gated on **both** D (exit code) and B (prompt-end), followed
152
+ * by a short settle period. B is the last marker in the prompt sequence, but
153
+ * PowerShell's formatting pipeline can flush command output *after* D+B arrive.
154
+ * A 50 ms settle timer captures this late output without arbitrary long waits.
155
+ *
156
+ * Multi-line commands are written to a temp .ps1 file and dot-sourced so
157
+ * they execute atomically in the current scope — PSReadLine otherwise
158
+ * treats each \n as a separate Enter keystroke, garbling execution order.
159
+ */
160
+ function executeInTerminal(surface, command, timeoutMs, onChunk, signal) {
161
+ return new Promise((resolve) => {
162
+ let raw = "";
163
+ let settled = false;
164
+ // Cached D-marker result so we only scan for it once
165
+ let dMatch = null;
166
+ // Settle timer: after D+B is detected, wait briefly for any late
167
+ // output from PowerShell's deferred formatting pipeline before
168
+ // calling finish(). Each new PTY chunk resets the timer.
169
+ let settleTimer = null;
170
+ const listener = (data) => {
171
+ raw += data;
172
+ // Stream cleaned output to the frontend (strip OSC 633 / ANSI / BEL
173
+ // to avoid system beeps and rendering issues in the browser)
174
+ if (onChunk) {
175
+ const clean = cleanChunk(data);
176
+ if (clean)
177
+ onChunk(clean);
178
+ }
179
+ if (settled)
180
+ return;
181
+ // If we're in the settling phase (D+B already detected), reset
182
+ // the timer — more data just arrived that we want to capture.
183
+ if (settleTimer) {
184
+ clearTimeout(settleTimer);
185
+ settleTimer = setTimeout(() => finish(false, dMatch.exitCode), 50);
186
+ return;
187
+ }
188
+ // Step 1: Find D marker (command done — provides exit code)
189
+ if (!dMatch) {
190
+ const m = raw.match(OSC_DONE_RE);
191
+ if (m) {
192
+ dMatch = {
193
+ exitCode: m[1] ? parseInt(m[1], 10) : 0,
194
+ end: m.index + m[0].length,
195
+ };
196
+ }
197
+ }
198
+ // Step 2: After D, wait for B (prompt-end). Don't finish
199
+ // immediately — PowerShell can flush command output *after* the
200
+ // prompt markers. Start a settle timer: if no more data arrives
201
+ // within 50 ms the output is considered complete.
202
+ if (dMatch && OSC_PROMPT_END_RE.test(raw.slice(dMatch.end))) {
203
+ settleTimer = setTimeout(() => finish(false, dMatch.exitCode), 50);
204
+ }
205
+ };
206
+ const finish = (timedOut, exitCode = null) => {
207
+ if (settled)
208
+ return;
209
+ settled = true;
210
+ clearTimeout(timer);
211
+ if (settleTimer)
212
+ clearTimeout(settleTimer);
213
+ signal?.removeEventListener("abort", onAbort);
214
+ surface.removeOutputListener(listener);
215
+ // Clean up temp script file
216
+ if (tmpFile) {
217
+ try {
218
+ unlinkSync(tmpFile);
219
+ }
220
+ catch { /* already gone */ }
221
+ }
222
+ // Strip all OSC 633 sequences (A, B, C, D, E, P) — they are invisible
223
+ // control codes, so removing them leaves only visible text in order:
224
+ // echoed command → command output → prompt text
225
+ let output = raw.replace(/\x1b\]633;[A-Z][^\x07]*(?:\x07|\x1b\\)/g, "");
226
+ // Strip ANSI and clean up
227
+ output = stripAnsi(output).replace(/\r/g, "");
228
+ // Split into lines for targeted cleanup
229
+ const lines = output.split("\n");
230
+ // Remove the echoed command. For single-line commands PSReadLine
231
+ // echoes the command text. For multi-line (dot-sourced via temp
232
+ // file) it echoes the `. 'path'` invocation instead.
233
+ if (tmpFile) {
234
+ // Remove the dot-source line echo
235
+ if (lines.length > 0 && lines[0].includes(tmpFile.replace(/\\/g, "\\\\"))) {
236
+ lines.shift();
237
+ }
238
+ else if (lines.length > 0 && (lines[0].trim().startsWith(". '") || lines[0].trim().startsWith("."))) {
239
+ lines.shift();
240
+ }
241
+ }
242
+ else {
243
+ const cmdLines = command.trim().split("\n").map((l) => l.trim());
244
+ while (lines.length > 0 && cmdLines.length > 0) {
245
+ const head = lines[0].trim();
246
+ const cmdHead = cmdLines[0];
247
+ if (head === cmdHead || head.endsWith(cmdHead) || cmdHead.startsWith(head)) {
248
+ lines.shift();
249
+ cmdLines.shift();
250
+ }
251
+ else {
252
+ break;
253
+ }
254
+ }
255
+ }
256
+ // Remove trailing empty lines
257
+ while (lines.length > 0 && lines[lines.length - 1].trim() === "") {
258
+ lines.pop();
259
+ }
260
+ // Remove the prompt line at the end (e.g. "PS E:\path> ")
261
+ if (lines.length > 0) {
262
+ const lastLine = lines[lines.length - 1].trim();
263
+ if (/^PS .+?>/.test(lastLine)) {
264
+ lines.pop();
265
+ }
266
+ }
267
+ output = lines.join("\n").trim();
268
+ if (output.length > 200_000) {
269
+ output = "…(truncated)\n" + output.slice(-200_000);
270
+ }
271
+ resolve({ output: output || "(no output)", exitCode, timedOut });
272
+ };
273
+ // Listen BEFORE writing so we don't miss fast output
274
+ surface.addOutputListener(listener);
275
+ const timer = setTimeout(() => {
276
+ // Interrupt the running command + Enter for clean prompt
277
+ surface.write("\x03\r");
278
+ setTimeout(() => finish(true), 500);
279
+ }, timeoutMs);
280
+ const onAbort = () => {
281
+ surface.write("\x03");
282
+ setTimeout(() => finish(false, null), 500);
283
+ };
284
+ signal?.addEventListener("abort", onAbort, { once: true });
285
+ // For multi-line commands, write to a temp .ps1 file and dot-source it.
286
+ // PSReadLine treats each \n as a separate Enter keystroke — bracketed
287
+ // paste mode is unreliable across PSReadLine versions. Dot-sourcing
288
+ // runs the script in the current scope (variables persist) and
289
+ // guarantees atomic execution. Cleanup happens in finish().
290
+ let tmpFile = null;
291
+ if (command.includes("\n")) {
292
+ const dir = join(tmpdir(), "jait-terminal");
293
+ mkdirSync(dir, { recursive: true });
294
+ tmpFile = join(dir, `cmd-${Date.now()}.ps1`);
295
+ writeFileSync(tmpFile, command, "utf-8");
296
+ surface.write(`. '${tmpFile.replace(/'/g, "''")}'\r`);
297
+ }
298
+ else {
299
+ surface.write(command + "\r");
300
+ }
301
+ });
302
+ }
303
+ export function createTerminalRunTool(registry, sandboxManager = new SandboxManager(), ws) {
304
+ return {
305
+ name: "terminal.run",
306
+ description: "Execute a shell command in a persistent terminal (visible to the user) and return the output. " +
307
+ "The terminal stays alive between calls — like VS Code's integrated terminal. " +
308
+ "Multi-line scripts, pipes, and complex syntax all work unchanged.",
309
+ tier: "core",
310
+ category: "terminal",
311
+ source: "builtin",
312
+ parameters: {
313
+ type: "object",
314
+ properties: {
315
+ command: { type: "string", description: "The shell command to execute" },
316
+ terminalId: { type: "string", description: "Reuse a specific terminal (omit to auto-select or create)" },
317
+ timeout: { type: "number", description: "Execution timeout in ms (default 30000)" },
318
+ sandbox: { type: "boolean", description: "Run inside Docker sandbox container" },
319
+ sandboxMountMode: { type: "string", description: "Sandbox mount mode: none, read-only, read-write" },
320
+ },
321
+ required: ["command"],
322
+ },
323
+ async execute(input, context) {
324
+ const { command, timeout = 30000, terminalId: preferredId } = input;
325
+ if (input.sandbox) {
326
+ const result = await sandboxManager.runCommand({
327
+ command,
328
+ workspaceRoot: context.workspaceRoot,
329
+ timeoutMs: timeout,
330
+ mountMode: input.sandboxMountMode ?? "read-write",
331
+ networkEnabled: false,
332
+ memoryLimitMb: 512,
333
+ cpuLimit: "1.0",
334
+ });
335
+ return {
336
+ ok: result.ok,
337
+ message: result.ok
338
+ ? "Sandbox command completed (container isolated)"
339
+ : result.timedOut
340
+ ? `Sandbox command timed out after ${timeout}ms`
341
+ : `Sandbox command failed (exit code ${result.exitCode ?? "unknown"})`,
342
+ data: {
343
+ output: result.output,
344
+ exitCode: result.exitCode,
345
+ timedOut: result.timedOut,
346
+ sandbox: true,
347
+ containerName: result.containerName,
348
+ hostUnaffected: true,
349
+ },
350
+ };
351
+ }
352
+ if (context.signal?.aborted) {
353
+ return { ok: false, message: "Cancelled" };
354
+ }
355
+ try {
356
+ // 1. Get or create a persistent terminal
357
+ const { surface, terminalId, isNew, warning } = await ensureSessionTerminal(registry, context, preferredId);
358
+ // 2. Execute the command (sentinel-based)
359
+ const execPromise = executeInTerminal(surface, command, timeout, context.onOutputChunk, context.signal);
360
+ const result = context.signal
361
+ ? await raceAbort(execPromise, context.signal)
362
+ : await execPromise;
363
+ // 3. Build response
364
+ const ok = !result.timedOut && result.exitCode === 0;
365
+ const needsInteraction = result.timedOut && detectInteractivePrompt(result.output);
366
+ const reason = result.timedOut
367
+ ? `timed out after ${timeout}ms`
368
+ : result.exitCode == null
369
+ ? "exit status unavailable"
370
+ : `exit code ${result.exitCode}`;
371
+ let message = ok ? "Command completed (exit code 0)" : `Command failed (${reason})`;
372
+ if (needsInteraction) {
373
+ message += " [user interaction required in terminal]";
374
+ }
375
+ if (isNew)
376
+ message += ` [new terminal ${terminalId}]`;
377
+ if (warning)
378
+ message += ` [${warning}]`;
379
+ if (needsInteraction) {
380
+ ws?.sendUICommand({
381
+ command: "terminal.focus",
382
+ data: {
383
+ terminalId,
384
+ reason: "interactive-input-required",
385
+ message: "This command is waiting for input in the terminal (for example a sudo password).",
386
+ },
387
+ }, context.sessionId);
388
+ }
389
+ console.log(`[terminal.run] ${message}; output (${result.output.length} chars): ${JSON.stringify(result.output.slice(0, 500))}`);
390
+ return {
391
+ ok,
392
+ message,
393
+ data: {
394
+ output: result.output,
395
+ exitCode: result.exitCode,
396
+ timedOut: result.timedOut,
397
+ terminalId,
398
+ needsInteraction,
399
+ },
400
+ };
401
+ }
402
+ catch (err) {
403
+ if (context.signal?.aborted)
404
+ return { ok: false, message: "Cancelled" };
405
+ return {
406
+ ok: false,
407
+ message: err instanceof Error ? err.message : "Command failed",
408
+ };
409
+ }
410
+ },
411
+ };
412
+ }
413
+ export function createTerminalStreamTool(registry) {
414
+ return {
415
+ name: "terminal.stream",
416
+ description: "Start a new streaming terminal session (output sent via WebSocket). Use when you need an interactive terminal.",
417
+ tier: "standard",
418
+ category: "terminal",
419
+ source: "builtin",
420
+ parameters: {
421
+ type: "object",
422
+ properties: {
423
+ sessionId: { type: "string", description: "Session to attach the terminal to" },
424
+ workspaceRoot: { type: "string", description: "Working directory for the terminal" },
425
+ cols: { type: "number", description: "Terminal width in columns" },
426
+ rows: { type: "number", description: "Terminal height in rows" },
427
+ },
428
+ required: ["sessionId"],
429
+ },
430
+ async execute(input, context) {
431
+ const termId = `term-${uuidv7()}`;
432
+ const workspaceRoot = input.workspaceRoot ?? context.workspaceRoot;
433
+ const surface = await registry.startSurface("terminal", termId, {
434
+ sessionId: input.sessionId || context.sessionId,
435
+ workspaceRoot,
436
+ });
437
+ return {
438
+ ok: true,
439
+ message: `Terminal started: ${termId}`,
440
+ data: {
441
+ terminalId: termId,
442
+ ...surface.snapshot(),
443
+ },
444
+ };
445
+ },
446
+ };
447
+ }
448
+ //# sourceMappingURL=terminal-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-tools.js","sourceRoot":"","sources":["../../src/tools/terminal-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import type { ProviderId } from "../providers/contracts.js";
2
+ import type { ProviderRegistry } from "../providers/registry.js";
3
+ import { type GitStackedAction, type GitStepResult } from "../services/git.js";
4
+ import type { ThreadService } from "../services/threads.js";
5
+ import type { WsControlPlane } from "../ws.js";
6
+ import type { ToolDefinition } from "./contracts.js";
7
+ interface ThreadControlInput {
8
+ action: "list" | "get" | "create" | "create_many" | "update" | "delete" | "start" | "send" | "stop" | "interrupt" | "approve" | "activities" | "create_pr";
9
+ threadId?: string;
10
+ sessionId?: string;
11
+ title?: string;
12
+ providerId?: ProviderId;
13
+ model?: string;
14
+ runtimeMode?: "full-access" | "supervised";
15
+ workingDirectory?: string;
16
+ branch?: string;
17
+ message?: string;
18
+ attachments?: string[];
19
+ start?: boolean;
20
+ threads?: ThreadCreateSpec[];
21
+ requestId?: string;
22
+ approved?: boolean;
23
+ limit?: number;
24
+ prUrl?: string | null;
25
+ prNumber?: number | null;
26
+ prTitle?: string | null;
27
+ prState?: "open" | "closed" | "merged" | null;
28
+ cwd?: string;
29
+ gitAction?: GitStackedAction;
30
+ commitMessage?: string;
31
+ baseBranch?: string;
32
+ featureBranch?: boolean;
33
+ }
34
+ interface ThreadCreateSpec {
35
+ title: string;
36
+ providerId?: ProviderId;
37
+ model?: string;
38
+ runtimeMode?: "full-access" | "supervised";
39
+ workingDirectory?: string;
40
+ branch?: string;
41
+ sessionId?: string;
42
+ start?: boolean;
43
+ message?: string;
44
+ attachments?: string[];
45
+ }
46
+ interface ThreadControlGit {
47
+ runStackedAction(cwd: string, action: GitStackedAction, commitMessage?: string, featureBranch?: boolean, baseBranch?: string, githubToken?: string): Promise<GitStepResult>;
48
+ }
49
+ export interface ThreadControlToolDeps {
50
+ threadService: ThreadService;
51
+ providerRegistry: ProviderRegistry;
52
+ ws?: WsControlPlane;
53
+ mcpConfig?: {
54
+ host: string;
55
+ port: number;
56
+ };
57
+ gitService?: ThreadControlGit;
58
+ }
59
+ export declare function createThreadControlTool(deps: ThreadControlToolDeps): ToolDefinition<ThreadControlInput>;
60
+ export {};
61
+ //# sourceMappingURL=thread-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-tools.d.ts","sourceRoot":"","sources":["../../src/tools/thread-tools.ts"],"names":[],"mappings":"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"}