@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 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/tools/core/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * todo — Manage a structured task list to track progress.
3
+ *
4
+ * Inspired by VS Code Copilot's manage_todo_list:
5
+ * - Full array-based update (provide ALL items each time)
6
+ * - Status tracking: not-started → in-progress → completed
7
+ * - At most one item can be in-progress at a time
8
+ * - Per-session state stored in memory
9
+ *
10
+ * The tool emits a `todo_list` SSE event via the agent loop
11
+ * so the UI can render the plan in real time.
12
+ */
13
+ import type { ToolDefinition } from "../contracts.js";
14
+ /** A single todo / plan item */
15
+ export interface TodoItem {
16
+ /** Unique identifier (sequential number starting from 1) */
17
+ id: number;
18
+ /** Concise action-oriented label (3-7 words) */
19
+ title: string;
20
+ /** Current status */
21
+ status: "not-started" | "in-progress" | "completed";
22
+ }
23
+ /** Get todo list for a session */
24
+ export declare function getSessionTodos(sessionId: string): TodoItem[];
25
+ /** Clear todo list for a session (e.g. on session delete) */
26
+ export declare function clearSessionTodos(sessionId: string): void;
27
+ interface TodoInput {
28
+ /** Complete array of ALL todo items. Must include both existing and new items.
29
+ * Items not included will be removed. */
30
+ todoList: {
31
+ id: number;
32
+ title: string;
33
+ status: "not-started" | "in-progress" | "completed";
34
+ }[];
35
+ }
36
+ export declare function createTodoTool(): ToolDefinition<TodoInput>;
37
+ export {};
38
+ //# sourceMappingURL=todo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo.d.ts","sourceRoot":"","sources":["../../../src/tools/core/todo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,iBAAiB,CAAC;AAE/E,gCAAgC;AAChC,MAAM,WAAW,QAAQ;IACvB,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,MAAM,EAAE,aAAa,GAAG,aAAa,GAAG,WAAW,CAAC;CACrD;AAKD,kCAAkC;AAClC,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,EAAE,CAE7D;AAED,6DAA6D;AAC7D,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEzD;AAED,UAAU,SAAS;IACjB;8CAC0C;IAC1C,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,aAAa,GAAG,aAAa,GAAG,WAAW,CAAC;KACrD,EAAE,CAAC;CACL;AAED,wBAAgB,cAAc,IAAI,cAAc,CAAC,SAAS,CAAC,CAoG1D"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * todo — Manage a structured task list to track progress.
3
+ *
4
+ * Inspired by VS Code Copilot's manage_todo_list:
5
+ * - Full array-based update (provide ALL items each time)
6
+ * - Status tracking: not-started → in-progress → completed
7
+ * - At most one item can be in-progress at a time
8
+ * - Per-session state stored in memory
9
+ *
10
+ * The tool emits a `todo_list` SSE event via the agent loop
11
+ * so the UI can render the plan in real time.
12
+ */
13
+ /** Per-session todo state */
14
+ const sessionTodos = new Map();
15
+ /** Get todo list for a session */
16
+ export function getSessionTodos(sessionId) {
17
+ return sessionTodos.get(sessionId) ?? [];
18
+ }
19
+ /** Clear todo list for a session (e.g. on session delete) */
20
+ export function clearSessionTodos(sessionId) {
21
+ sessionTodos.delete(sessionId);
22
+ }
23
+ export function createTodoTool() {
24
+ return {
25
+ name: "todo",
26
+ description: "Manage a structured todo list to track progress and plan tasks throughout your session. " +
27
+ "Use this tool frequently to ensure task visibility and proper planning.\n\n" +
28
+ "**When to use:**\n" +
29
+ "- Complex multi-step work requiring planning and tracking\n" +
30
+ "- When the user provides multiple tasks or requests\n" +
31
+ "- After receiving new instructions that require multiple steps\n" +
32
+ "- BEFORE starting work on any todo (mark as in-progress)\n" +
33
+ "- IMMEDIATELY after completing each todo (mark as completed)\n" +
34
+ "- When breaking down larger tasks into smaller actionable steps\n\n" +
35
+ "**When NOT to use:**\n" +
36
+ "- Single, trivial tasks that can be completed in one step\n" +
37
+ "- Purely conversational/informational requests\n\n" +
38
+ "**Rules:**\n" +
39
+ "- Provide the COMPLETE todo list every time (all items, both old and new)\n" +
40
+ "- At most ONE item can be `in-progress` at a time\n" +
41
+ "- Mark todos completed immediately after finishing — do not batch completions\n" +
42
+ "- Use sequential IDs starting from 1\n" +
43
+ "- Keep titles concise (3-7 words) and action-oriented",
44
+ tier: "core",
45
+ category: "meta",
46
+ source: "builtin",
47
+ parameters: {
48
+ type: "object",
49
+ properties: {
50
+ todoList: {
51
+ type: "array",
52
+ description: "Complete array of all todo items. Must include ALL items — both existing and new. " +
53
+ "Items not included will be removed.",
54
+ items: {
55
+ type: "object",
56
+ properties: {
57
+ id: {
58
+ type: "number",
59
+ description: "Unique identifier. Use sequential numbers starting from 1.",
60
+ },
61
+ title: {
62
+ type: "string",
63
+ description: "Concise action-oriented todo label (3-7 words). Displayed in UI.",
64
+ },
65
+ status: {
66
+ type: "string",
67
+ description: "not-started: Not begun | in-progress: Currently working (max 1) | completed: Fully finished",
68
+ enum: ["not-started", "in-progress", "completed"],
69
+ },
70
+ },
71
+ required: ["id", "title", "status"],
72
+ },
73
+ },
74
+ },
75
+ required: ["todoList"],
76
+ },
77
+ async execute(input, context) {
78
+ try {
79
+ const items = input.todoList;
80
+ // Validate: at most one in-progress
81
+ const inProgress = items.filter((t) => t.status === "in-progress");
82
+ if (inProgress.length > 1) {
83
+ return {
84
+ ok: false,
85
+ message: `Only one todo can be in-progress at a time. Found ${inProgress.length}: ` +
86
+ inProgress.map((t) => `"${t.title}"`).join(", "),
87
+ };
88
+ }
89
+ // Normalize and store
90
+ const normalized = items.map((t) => ({
91
+ id: t.id,
92
+ title: t.title,
93
+ status: t.status,
94
+ }));
95
+ sessionTodos.set(context.sessionId, normalized);
96
+ const completed = normalized.filter((t) => t.status === "completed").length;
97
+ const total = normalized.length;
98
+ const current = inProgress[0]?.title;
99
+ return {
100
+ ok: true,
101
+ message: current
102
+ ? `Todo list updated (${completed}/${total} done). Working on: ${current}`
103
+ : `Todo list updated (${completed}/${total} done).`,
104
+ data: { items: normalized },
105
+ };
106
+ }
107
+ catch (err) {
108
+ return {
109
+ ok: false,
110
+ message: err instanceof Error ? err.message : "Todo update failed",
111
+ };
112
+ }
113
+ },
114
+ };
115
+ }
116
+ //# sourceMappingURL=todo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo.js","sourceRoot":"","sources":["../../../src/tools/core/todo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * web — Unified web tool: search the web or fetch URLs.
3
+ *
4
+ * Inspired by VS Code Copilot's fetch_webpage:
5
+ * - `urls` supports an array (fetch multiple pages at once)
6
+ * - `query` provides context for what you're looking for in fetched content
7
+ * - Multiple search providers (openai, brave, perplexity, grok, gemini, kimi)
8
+ *
9
+ * Our advantage over Copilot: built-in web search, not just fetch.
10
+ */
11
+ import type { ToolDefinition } from "../contracts.js";
12
+ interface WebInput {
13
+ /** What to do: "search" (web search) or "fetch" (get URL contents). Default: inferred from params */
14
+ mode?: string;
15
+ /** Search query (for search mode) */
16
+ query?: string;
17
+ /** URL or array of URLs to fetch (for fetch mode) */
18
+ url?: string;
19
+ /** Array of URLs to fetch — alternative to single `url` */
20
+ urls?: string[];
21
+ /** Search provider: "auto", "openai", "brave", "perplexity", "grok", "gemini", "kimi". Default: "auto" */
22
+ provider?: string;
23
+ /** Max results for search (default: 5) */
24
+ limit?: number;
25
+ /** HTTP method for fetch (default: "GET") */
26
+ method?: string;
27
+ /** Request body for fetch (POST/PUT) */
28
+ body?: string;
29
+ /** Max response bytes for fetch (default: 512KB) */
30
+ maxBytes?: number;
31
+ }
32
+ export declare function createWebTool(): ToolDefinition<WebInput>;
33
+ export {};
34
+ //# sourceMappingURL=web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../src/tools/core/web.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,iBAAiB,CAAC;AAG/E,UAAU,QAAQ;IAChB,qGAAqG;IACrG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,0GAA0G;IAC1G,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,aAAa,IAAI,cAAc,CAAC,QAAQ,CAAC,CA+HxD"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * web — Unified web tool: search the web or fetch URLs.
3
+ *
4
+ * Inspired by VS Code Copilot's fetch_webpage:
5
+ * - `urls` supports an array (fetch multiple pages at once)
6
+ * - `query` provides context for what you're looking for in fetched content
7
+ * - Multiple search providers (openai, brave, perplexity, grok, gemini, kimi)
8
+ *
9
+ * Our advantage over Copilot: built-in web search, not just fetch.
10
+ */
11
+ import { createWebSearchTool, createWebFetchTool } from "../browser-tools.js";
12
+ export function createWebTool() {
13
+ const searchInner = createWebSearchTool();
14
+ const fetchInner = createWebFetchTool();
15
+ return {
16
+ name: "web",
17
+ description: "Search the web or fetch content from URLs.\n\n" +
18
+ '**Search mode** (default when `query` is provided): Search the web for information using AI-powered search. ' +
19
+ "Returns relevant results from multiple providers. Use when you need to find documentation, answers, " +
20
+ "or current information.\n\n" +
21
+ '**Fetch mode** (when `url`/`urls` is provided): Fetch the content of one or more web pages. ' +
22
+ "Returns the main text content of each page. Use when you have a specific URL to retrieve.\n\n" +
23
+ "You should use this tool when you think the user is looking for information from a specific webpage " +
24
+ "or needs to research a topic online.",
25
+ tier: "core",
26
+ category: "web",
27
+ source: "builtin",
28
+ parameters: {
29
+ type: "object",
30
+ properties: {
31
+ mode: {
32
+ type: "string",
33
+ description: '"search" or "fetch". Inferred from params if omitted: query → search, url/urls → fetch.',
34
+ enum: ["search", "fetch"],
35
+ },
36
+ query: {
37
+ type: "string",
38
+ description: "Search query (for search mode). A clear and concise description of the information you need.",
39
+ },
40
+ url: {
41
+ type: "string",
42
+ description: "A single URL to fetch content from (for fetch mode).",
43
+ },
44
+ urls: {
45
+ type: "array",
46
+ items: { type: "string", description: "A URL to fetch" },
47
+ description: "An array of URLs to fetch content from (for fetch mode). Use instead of `url` for multiple pages.",
48
+ },
49
+ provider: {
50
+ type: "string",
51
+ description: 'Search provider (default: "auto"). Options: auto, openai, brave, perplexity, grok, gemini, kimi.',
52
+ },
53
+ limit: {
54
+ type: "number",
55
+ description: "Max search results to return (default: 5).",
56
+ },
57
+ method: {
58
+ type: "string",
59
+ description: 'HTTP method for fetch (default: "GET").',
60
+ },
61
+ body: {
62
+ type: "string",
63
+ description: "Request body for fetch (used with POST/PUT).",
64
+ },
65
+ maxBytes: {
66
+ type: "number",
67
+ description: "Max response bytes for fetch (default: 512KB).",
68
+ },
69
+ },
70
+ required: [],
71
+ },
72
+ async execute(input, context) {
73
+ const mode = input.mode ?? (input.url || input.urls ? "fetch" : "search");
74
+ if (mode === "fetch") {
75
+ // Collect all URLs from both url and urls params
76
+ const allUrls = [];
77
+ if (input.url)
78
+ allUrls.push(input.url);
79
+ if (input.urls)
80
+ allUrls.push(...input.urls);
81
+ if (allUrls.length === 0) {
82
+ return { ok: false, message: "Fetch mode requires at least one URL via `url` or `urls`." };
83
+ }
84
+ // Fetch single URL
85
+ if (allUrls.length === 1) {
86
+ return fetchInner.execute({
87
+ url: allUrls[0],
88
+ method: input.method,
89
+ body: input.body,
90
+ maxBytes: input.maxBytes,
91
+ }, context);
92
+ }
93
+ // Fetch multiple URLs in parallel
94
+ const results = await Promise.allSettled(allUrls.map((u) => fetchInner.execute({ url: u, method: input.method, maxBytes: input.maxBytes }, context)));
95
+ const fetched = results.map((r, i) => {
96
+ if (r.status === "fulfilled") {
97
+ return { url: allUrls[i], ...r.value };
98
+ }
99
+ return { url: allUrls[i], ok: false, message: String(r.reason) };
100
+ });
101
+ const okCount = fetched.filter((f) => f.ok).length;
102
+ return {
103
+ ok: okCount > 0,
104
+ message: `Fetched ${okCount}/${allUrls.length} URLs successfully`,
105
+ data: { results: fetched },
106
+ };
107
+ }
108
+ // Search mode
109
+ if (!input.query) {
110
+ return { ok: false, message: "Search mode requires a `query`." };
111
+ }
112
+ return searchInner.execute({
113
+ query: input.query,
114
+ provider: input.provider,
115
+ limit: input.limit,
116
+ }, context);
117
+ },
118
+ };
119
+ }
120
+ //# sourceMappingURL=web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../../src/tools/core/web.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ToolDefinition } from "./contracts.js";
2
+ import type { SchedulerService } from "../scheduler/service.js";
3
+ export declare function createCronAddTool(scheduler: SchedulerService): ToolDefinition;
4
+ export declare function createCronListTool(scheduler: SchedulerService): ToolDefinition;
5
+ export declare function createCronRemoveTool(scheduler: SchedulerService): ToolDefinition;
6
+ export declare function createCronUpdateTool(scheduler: SchedulerService): ToolDefinition;
7
+ //# sourceMappingURL=cron-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron-tools.d.ts","sourceRoot":"","sources":["../../src/tools/cron-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAchE,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG,cAAc,CAiC7E;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,GAAG,cAAc,CAc9E;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,GAAG,cAAc,CAkBhF;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,GAAG,cAAc,CAkChF"}
@@ -0,0 +1,116 @@
1
+ function normalizeString(value, fallback = "") {
2
+ return typeof value === "string" ? value : fallback;
3
+ }
4
+ function normalizeToolName(value) {
5
+ const raw = normalizeString(value).trim();
6
+ if (!raw)
7
+ return raw;
8
+ const firstUnderscore = raw.indexOf("_");
9
+ if (firstUnderscore === -1)
10
+ return raw;
11
+ return `${raw.slice(0, firstUnderscore)}.${raw.slice(firstUnderscore + 1)}`;
12
+ }
13
+ export function createCronAddTool(scheduler) {
14
+ return {
15
+ name: "cron.add",
16
+ description: "Add a scheduled cron job",
17
+ tier: "standard",
18
+ category: "scheduler",
19
+ source: "builtin",
20
+ parameters: {
21
+ type: "object",
22
+ properties: {
23
+ name: { type: "string" },
24
+ cron: { type: "string" },
25
+ toolName: { type: "string" },
26
+ input: { type: "object" },
27
+ sessionId: { type: "string" },
28
+ workspaceRoot: { type: "string" },
29
+ },
30
+ required: ["name", "cron", "toolName"],
31
+ },
32
+ execute: async (input, context) => {
33
+ const body = input ?? {};
34
+ const job = scheduler.create({
35
+ userId: context.userId,
36
+ name: normalizeString(body["name"]),
37
+ cron: normalizeString(body["cron"]),
38
+ toolName: normalizeToolName(body["toolName"]),
39
+ input: body["input"] ?? {},
40
+ sessionId: normalizeString(body["sessionId"], "default"),
41
+ workspaceRoot: normalizeString(body["workspaceRoot"], process.cwd()),
42
+ });
43
+ return { ok: true, message: "Cron job created", data: job };
44
+ },
45
+ };
46
+ }
47
+ export function createCronListTool(scheduler) {
48
+ return {
49
+ name: "cron.list",
50
+ description: "List configured cron jobs",
51
+ tier: "standard",
52
+ category: "scheduler",
53
+ source: "builtin",
54
+ parameters: { type: "object", properties: {} },
55
+ execute: async (_input, context) => ({
56
+ ok: true,
57
+ message: "Cron jobs",
58
+ data: { jobs: scheduler.list(context.userId) },
59
+ }),
60
+ };
61
+ }
62
+ export function createCronRemoveTool(scheduler) {
63
+ return {
64
+ name: "cron.remove",
65
+ description: "Remove a cron job by id",
66
+ tier: "standard",
67
+ category: "scheduler",
68
+ source: "builtin",
69
+ parameters: {
70
+ type: "object",
71
+ properties: { id: { type: "string" } },
72
+ required: ["id"],
73
+ },
74
+ execute: async (input, context) => {
75
+ const id = normalizeString(input?.["id"]);
76
+ const removed = scheduler.remove(id, context.userId);
77
+ return { ok: removed, message: removed ? "Cron job removed" : "Cron job not found", data: { removed } };
78
+ },
79
+ };
80
+ }
81
+ export function createCronUpdateTool(scheduler) {
82
+ return {
83
+ name: "cron.update",
84
+ description: "Update cron job fields",
85
+ tier: "standard",
86
+ category: "scheduler",
87
+ source: "builtin",
88
+ parameters: {
89
+ type: "object",
90
+ properties: {
91
+ id: { type: "string" },
92
+ name: { type: "string" },
93
+ cron: { type: "string" },
94
+ enabled: { type: "boolean" },
95
+ input: { type: "object" },
96
+ },
97
+ required: ["id"],
98
+ },
99
+ execute: async (input, context) => {
100
+ const body = input ?? {};
101
+ const id = normalizeString(body["id"]);
102
+ const updated = scheduler.update(id, {
103
+ name: typeof body["name"] === "string" ? body["name"] : undefined,
104
+ cron: typeof body["cron"] === "string" ? body["cron"] : undefined,
105
+ enabled: typeof body["enabled"] === "boolean" ? body["enabled"] : undefined,
106
+ input: body["input"],
107
+ }, context.userId);
108
+ return {
109
+ ok: !!updated,
110
+ message: updated ? "Cron job updated" : "Cron job not found",
111
+ data: updated ?? { id },
112
+ };
113
+ },
114
+ };
115
+ }
116
+ //# sourceMappingURL=cron-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron-tools.js","sourceRoot":"","sources":["../../src/tools/cron-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * File Tools — Sprint 3.5
3
+ *
4
+ * file.read, file.write, file.patch, file.list, file.stat
5
+ */
6
+ import type { ToolDefinition } from "./contracts.js";
7
+ import type { SurfaceRegistry } from "../surfaces/registry.js";
8
+ interface FileReadInput {
9
+ path: string;
10
+ }
11
+ interface FileWriteInput {
12
+ path: string;
13
+ content: string;
14
+ }
15
+ interface FilePatchInput {
16
+ path: string;
17
+ search: string;
18
+ replace: string;
19
+ }
20
+ interface FileListInput {
21
+ path: string;
22
+ }
23
+ interface FileStatInput {
24
+ path: string;
25
+ }
26
+ export declare function createFileReadTool(registry: SurfaceRegistry): ToolDefinition<FileReadInput>;
27
+ export declare function createFileWriteTool(registry: SurfaceRegistry): ToolDefinition<FileWriteInput>;
28
+ export declare function createFilePatchTool(registry: SurfaceRegistry): ToolDefinition<FilePatchInput>;
29
+ export declare function createFileListTool(registry: SurfaceRegistry): ToolDefinition<FileListInput>;
30
+ export declare function createFileStatTool(registry: SurfaceRegistry): ToolDefinition<FileStatInput>;
31
+ export {};
32
+ //# sourceMappingURL=file-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-tools.d.ts","sourceRoot":"","sources":["../../src/tools/file-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,gBAAgB,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,cAAc,CAAC,aAAa,CAAC,CA+B3F;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,cAAc,CAAC,cAAc,CAAC,CAgC7F;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,cAAc,CAAC,cAAc,CAAC,CAoC7F;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,cAAc,CAAC,aAAa,CAAC,CA+B3F;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,cAAc,CAAC,aAAa,CAAC,CA+B3F"}