@zyraxon-ai/core 19.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (681) hide show
  1. package/dist/account/sql.js +31 -0
  2. package/dist/account/sql.js.map +1 -0
  3. package/dist/account.js +82 -0
  4. package/dist/account.js.map +1 -0
  5. package/dist/agent.js +77 -0
  6. package/dist/agent.js.map +1 -0
  7. package/dist/aisdk.js +171 -0
  8. package/dist/aisdk.js.map +1 -0
  9. package/dist/background-job.js +236 -0
  10. package/dist/background-job.js.map +1 -0
  11. package/dist/catalog.js +197 -0
  12. package/dist/catalog.js.map +1 -0
  13. package/dist/command.js +40 -0
  14. package/dist/command.js.map +1 -0
  15. package/dist/config/agent.js +24 -0
  16. package/dist/config/agent.js.map +1 -0
  17. package/dist/config/attachments.js +15 -0
  18. package/dist/config/attachments.js.map +1 -0
  19. package/dist/config/command.js +12 -0
  20. package/dist/config/command.js.map +1 -0
  21. package/dist/config/compaction.js +15 -0
  22. package/dist/config/compaction.js.map +1 -0
  23. package/dist/config/experimental.js +17 -0
  24. package/dist/config/experimental.js.map +1 -0
  25. package/dist/config/formatter.js +11 -0
  26. package/dist/config/formatter.js.map +1 -0
  27. package/dist/config/lsp.js +16 -0
  28. package/dist/config/lsp.js.map +1 -0
  29. package/dist/config/markdown.js +41 -0
  30. package/dist/config/markdown.js.map +1 -0
  31. package/dist/config/mcp.js +47 -0
  32. package/dist/config/mcp.js.map +1 -0
  33. package/dist/config/plugin/agent.js +149 -0
  34. package/dist/config/plugin/agent.js.map +1 -0
  35. package/dist/config/plugin/command.js +71 -0
  36. package/dist/config/plugin/command.js.map +1 -0
  37. package/dist/config/plugin/external.js +82 -0
  38. package/dist/config/plugin/external.js.map +1 -0
  39. package/dist/config/plugin/provider.js +109 -0
  40. package/dist/config/plugin/provider.js.map +1 -0
  41. package/dist/config/plugin/reference.js +59 -0
  42. package/dist/config/plugin/reference.js.map +1 -0
  43. package/dist/config/plugin/skill.js +41 -0
  44. package/dist/config/plugin/skill.js.map +1 -0
  45. package/dist/config/plugin.js +10 -0
  46. package/dist/config/plugin.js.map +1 -0
  47. package/dist/config/provider.js +70 -0
  48. package/dist/config/provider.js.map +1 -0
  49. package/dist/config/reference.js +18 -0
  50. package/dist/config/reference.js.map +1 -0
  51. package/dist/config/tool-output.js +9 -0
  52. package/dist/config/tool-output.js.map +1 -0
  53. package/dist/config/watcher.js +7 -0
  54. package/dist/config/watcher.js.map +1 -0
  55. package/dist/config.js +201 -0
  56. package/dist/config.js.map +1 -0
  57. package/dist/control-plane/move-session.js +111 -0
  58. package/dist/control-plane/move-session.js.map +1 -0
  59. package/dist/control-plane/workspace.sql.js +18 -0
  60. package/dist/control-plane/workspace.sql.js.map +1 -0
  61. package/dist/credential/sql.js +13 -0
  62. package/dist/credential/sql.js.map +1 -0
  63. package/dist/credential.js +105 -0
  64. package/dist/credential.js.map +1 -0
  65. package/dist/cross-spawn-spawner.js +412 -0
  66. package/dist/cross-spawn-spawner.js.map +1 -0
  67. package/dist/data-migration.sql.js +6 -0
  68. package/dist/data-migration.sql.js.map +1 -0
  69. package/dist/database/database.js +67 -0
  70. package/dist/database/database.js.map +1 -0
  71. package/dist/database/migration/20260127222353_familiar_lady_ursula.js +106 -0
  72. package/dist/database/migration/20260127222353_familiar_lady_ursula.js.map +1 -0
  73. package/dist/database/migration/20260211171708_add_project_commands.js +10 -0
  74. package/dist/database/migration/20260211171708_add_project_commands.js.map +1 -0
  75. package/dist/database/migration/20260213144116_wakeful_the_professor.js +22 -0
  76. package/dist/database/migration/20260213144116_wakeful_the_professor.js.map +1 -0
  77. package/dist/database/migration/20260225215848_workspace.js +18 -0
  78. package/dist/database/migration/20260225215848_workspace.js.map +1 -0
  79. package/dist/database/migration/20260227213759_add_session_workspace_id.js +11 -0
  80. package/dist/database/migration/20260227213759_add_session_workspace_id.js.map +1 -0
  81. package/dist/database/migration/20260228203230_blue_harpoon.js +29 -0
  82. package/dist/database/migration/20260228203230_blue_harpoon.js.map +1 -0
  83. package/dist/database/migration/20260303231226_add_workspace_fields.js +14 -0
  84. package/dist/database/migration/20260303231226_add_workspace_fields.js.map +1 -0
  85. package/dist/database/migration/20260309230000_move_org_to_state.js +12 -0
  86. package/dist/database/migration/20260309230000_move_org_to_state.js.map +1 -0
  87. package/dist/database/migration/20260312043431_session_message_cursor.js +13 -0
  88. package/dist/database/migration/20260312043431_session_message_cursor.js.map +1 -0
  89. package/dist/database/migration/20260323234822_events.js +25 -0
  90. package/dist/database/migration/20260323234822_events.js.map +1 -0
  91. package/dist/database/migration/20260410174513_workspace-name.js +26 -0
  92. package/dist/database/migration/20260410174513_workspace-name.js.map +1 -0
  93. package/dist/database/migration/20260413175956_chief_energizer.js +23 -0
  94. package/dist/database/migration/20260413175956_chief_energizer.js.map +1 -0
  95. package/dist/database/migration/20260423070820_add_icon_url_override.js +13 -0
  96. package/dist/database/migration/20260423070820_add_icon_url_override.js.map +1 -0
  97. package/dist/database/migration/20260427172553_slow_nightmare.js +27 -0
  98. package/dist/database/migration/20260427172553_slow_nightmare.js.map +1 -0
  99. package/dist/database/migration/20260428004200_add_session_path.js +10 -0
  100. package/dist/database/migration/20260428004200_add_session_path.js.map +1 -0
  101. package/dist/database/migration/20260501142318_next_venus.js +11 -0
  102. package/dist/database/migration/20260501142318_next_venus.js.map +1 -0
  103. package/dist/database/migration/20260504145000_add_sync_owner.js +10 -0
  104. package/dist/database/migration/20260504145000_add_sync_owner.js.map +1 -0
  105. package/dist/database/migration/20260507164347_add_workspace_time.js +10 -0
  106. package/dist/database/migration/20260507164347_add_workspace_time.js.map +1 -0
  107. package/dist/database/migration/20260510033149_session_usage.js +55 -0
  108. package/dist/database/migration/20260510033149_session_usage.js.map +1 -0
  109. package/dist/database/migration/20260511000411_data_migration_state.js +15 -0
  110. package/dist/database/migration/20260511000411_data_migration_state.js.map +1 -0
  111. package/dist/database/migration/20260511173437_session-metadata.js +13 -0
  112. package/dist/database/migration/20260511173437_session-metadata.js.map +1 -0
  113. package/dist/database/migration/20260601010001_normalize_storage_paths.js +13 -0
  114. package/dist/database/migration/20260601010001_normalize_storage_paths.js.map +1 -0
  115. package/dist/database/migration/20260601202201_amazing_prowler.js +10 -0
  116. package/dist/database/migration/20260601202201_amazing_prowler.js.map +1 -0
  117. package/dist/database/migration/20260602002951_lowly_union_jack.js +21 -0
  118. package/dist/database/migration/20260602002951_lowly_union_jack.js.map +1 -0
  119. package/dist/database/migration/20260602182828_add_project_directories.js +19 -0
  120. package/dist/database/migration/20260602182828_add_project_directories.js.map +1 -0
  121. package/dist/database/migration/20260603001617_session_message_projection_indexes.js +14 -0
  122. package/dist/database/migration/20260603001617_session_message_projection_indexes.js.map +1 -0
  123. package/dist/database/migration/20260603040000_session_message_projection_order.js +16 -0
  124. package/dist/database/migration/20260603040000_session_message_projection_order.js.map +1 -0
  125. package/dist/database/migration/20260603141458_session_input_inbox.js +22 -0
  126. package/dist/database/migration/20260603141458_session_input_inbox.js.map +1 -0
  127. package/dist/database/migration/20260603160727_jittery_ezekiel_stane.js +13 -0
  128. package/dist/database/migration/20260603160727_jittery_ezekiel_stane.js.map +1 -0
  129. package/dist/database/migration/20260604172448_event_sourced_session_input.js +38 -0
  130. package/dist/database/migration/20260604172448_event_sourced_session_input.js.map +1 -0
  131. package/dist/database/migration/20260605003541_add_session_context_snapshot.js +20 -0
  132. package/dist/database/migration/20260605003541_add_session_context_snapshot.js.map +1 -0
  133. package/dist/database/migration/20260605042240_add_context_epoch_agent.js +10 -0
  134. package/dist/database/migration/20260605042240_add_context_epoch_agent.js.map +1 -0
  135. package/dist/database/migration/20260611035744_credential.js +22 -0
  136. package/dist/database/migration/20260611035744_credential.js.map +1 -0
  137. package/dist/database/migration/20260611192811_lush_chimera.js +24 -0
  138. package/dist/database/migration/20260611192811_lush_chimera.js.map +1 -0
  139. package/dist/database/migration/20260612174303_project_dir_strategy.js +26 -0
  140. package/dist/database/migration/20260612174303_project_dir_strategy.js.map +1 -0
  141. package/dist/database/migration/20260622142730_simplify_session_context_epoch.js +12 -0
  142. package/dist/database/migration/20260622142730_simplify_session_context_epoch.js.map +1 -0
  143. package/dist/database/migration/20260622170816_reset_v2_session_state.js +16 -0
  144. package/dist/database/migration/20260622170816_reset_v2_session_state.js.map +1 -0
  145. package/dist/database/migration/20260622202450_simplify_session_input.js +16 -0
  146. package/dist/database/migration/20260622202450_simplify_session_input.js.map +1 -0
  147. package/dist/database/migration/20260730000000_eternal_memory_system.js +141 -0
  148. package/dist/database/migration/20260730000000_eternal_memory_system.js.map +1 -0
  149. package/dist/database/migration/20260912000000_db_performance_optimization.js +29 -0
  150. package/dist/database/migration/20260912000000_db_performance_optimization.js.map +1 -0
  151. package/dist/database/migration/20260912000000_performance_indexes.js +35 -0
  152. package/dist/database/migration/20260912000000_performance_indexes.js.map +1 -0
  153. package/dist/database/migration.gen.js +42 -0
  154. package/dist/database/migration.gen.js.map +1 -0
  155. package/dist/database/migration.js +48 -0
  156. package/dist/database/migration.js.map +1 -0
  157. package/dist/database/path.js +70 -0
  158. package/dist/database/path.js.map +1 -0
  159. package/dist/database/schema.gen.js +257 -0
  160. package/dist/database/schema.gen.js.map +1 -0
  161. package/dist/database/schema.sql.js +10 -0
  162. package/dist/database/schema.sql.js.map +1 -0
  163. package/dist/database/sqlite.bun.js +130 -0
  164. package/dist/database/sqlite.bun.js.map +1 -0
  165. package/dist/database/sqlite.js +7 -0
  166. package/dist/database/sqlite.js.map +1 -0
  167. package/dist/database/sqlite.node.js +124 -0
  168. package/dist/database/sqlite.node.js.map +1 -0
  169. package/dist/effect/app-node-builder.js +19 -0
  170. package/dist/effect/app-node-builder.js.map +1 -0
  171. package/dist/effect/app-node-platform.js +17 -0
  172. package/dist/effect/app-node-platform.js.map +1 -0
  173. package/dist/effect/app-node.js +9 -0
  174. package/dist/effect/app-node.js.map +1 -0
  175. package/dist/effect/keyed-mutex.js +31 -0
  176. package/dist/effect/keyed-mutex.js.map +1 -0
  177. package/dist/effect/layer-node.js +182 -0
  178. package/dist/effect/layer-node.js.map +1 -0
  179. package/dist/effect/memo-map.js +3 -0
  180. package/dist/effect/memo-map.js.map +1 -0
  181. package/dist/effect/runtime.js +17 -0
  182. package/dist/effect/runtime.js.map +1 -0
  183. package/dist/effect/service-use.js +28 -0
  184. package/dist/effect/service-use.js.map +1 -0
  185. package/dist/event/sql.js +19 -0
  186. package/dist/event/sql.js.map +1 -0
  187. package/dist/event.js +421 -0
  188. package/dist/event.js.map +1 -0
  189. package/dist/file-mutation.js +102 -0
  190. package/dist/file-mutation.js.map +1 -0
  191. package/dist/file.js +4 -0
  192. package/dist/file.js.map +1 -0
  193. package/dist/filesystem/fff.bun.js +28 -0
  194. package/dist/filesystem/fff.bun.js.map +1 -0
  195. package/dist/filesystem/fff.node.js +8 -0
  196. package/dist/filesystem/fff.node.js.map +1 -0
  197. package/dist/filesystem/ignore.js +63 -0
  198. package/dist/filesystem/ignore.js.map +1 -0
  199. package/dist/filesystem/protected.js +50 -0
  200. package/dist/filesystem/protected.js.map +1 -0
  201. package/dist/filesystem/search.js +198 -0
  202. package/dist/filesystem/search.js.map +1 -0
  203. package/dist/filesystem/watcher.js +109 -0
  204. package/dist/filesystem/watcher.js.map +1 -0
  205. package/dist/filesystem.js +96 -0
  206. package/dist/filesystem.js.map +1 -0
  207. package/dist/flag/flag.js +66 -0
  208. package/dist/flag/flag.js.map +1 -0
  209. package/dist/fs-util.js +222 -0
  210. package/dist/fs-util.js.map +1 -0
  211. package/dist/git.js +558 -0
  212. package/dist/git.js.map +1 -0
  213. package/dist/github-copilot/chat/convert-to-openai-compatible-chat-messages.js +147 -0
  214. package/dist/github-copilot/chat/convert-to-openai-compatible-chat-messages.js.map +1 -0
  215. package/dist/github-copilot/chat/get-response-metadata.js +8 -0
  216. package/dist/github-copilot/chat/get-response-metadata.js.map +1 -0
  217. package/dist/github-copilot/chat/map-openai-compatible-finish-reason.js +16 -0
  218. package/dist/github-copilot/chat/map-openai-compatible-finish-reason.js.map +1 -0
  219. package/dist/github-copilot/chat/openai-compatible-api-types.js +2 -0
  220. package/dist/github-copilot/chat/openai-compatible-api-types.js.map +1 -0
  221. package/dist/github-copilot/chat/openai-compatible-chat-language-model.js +618 -0
  222. package/dist/github-copilot/chat/openai-compatible-chat-language-model.js.map +1 -0
  223. package/dist/github-copilot/chat/openai-compatible-chat-options.js +21 -0
  224. package/dist/github-copilot/chat/openai-compatible-chat-options.js.map +1 -0
  225. package/dist/github-copilot/chat/openai-compatible-metadata-extractor.js +2 -0
  226. package/dist/github-copilot/chat/openai-compatible-metadata-extractor.js.map +1 -0
  227. package/dist/github-copilot/chat/openai-compatible-prepare-tools.js +51 -0
  228. package/dist/github-copilot/chat/openai-compatible-prepare-tools.js.map +1 -0
  229. package/dist/github-copilot/copilot-provider.js +48 -0
  230. package/dist/github-copilot/copilot-provider.js.map +1 -0
  231. package/dist/github-copilot/openai-compatible-error.js +17 -0
  232. package/dist/github-copilot/openai-compatible-error.js.map +1 -0
  233. package/dist/github-copilot/responses/convert-to-openai-responses-input.js +284 -0
  234. package/dist/github-copilot/responses/convert-to-openai-responses-input.js.map +1 -0
  235. package/dist/github-copilot/responses/map-openai-responses-finish-reason.js +14 -0
  236. package/dist/github-copilot/responses/map-openai-responses-finish-reason.js.map +1 -0
  237. package/dist/github-copilot/responses/openai-config.js +2 -0
  238. package/dist/github-copilot/responses/openai-config.js.map +1 -0
  239. package/dist/github-copilot/responses/openai-error.js +18 -0
  240. package/dist/github-copilot/responses/openai-error.js.map +1 -0
  241. package/dist/github-copilot/responses/openai-responses-api-types.js +2 -0
  242. package/dist/github-copilot/responses/openai-responses-api-types.js.map +1 -0
  243. package/dist/github-copilot/responses/openai-responses-language-model.js +1487 -0
  244. package/dist/github-copilot/responses/openai-responses-language-model.js.map +1 -0
  245. package/dist/github-copilot/responses/openai-responses-prepare-tools.js +140 -0
  246. package/dist/github-copilot/responses/openai-responses-prepare-tools.js.map +1 -0
  247. package/dist/github-copilot/responses/openai-responses-settings.js +2 -0
  248. package/dist/github-copilot/responses/openai-responses-settings.js.map +1 -0
  249. package/dist/github-copilot/responses/tool/code-interpreter.js +33 -0
  250. package/dist/github-copilot/responses/tool/code-interpreter.js.map +1 -0
  251. package/dist/github-copilot/responses/tool/file-search.js +40 -0
  252. package/dist/github-copilot/responses/tool/file-search.js.map +1 -0
  253. package/dist/github-copilot/responses/tool/image-generation.js +33 -0
  254. package/dist/github-copilot/responses/tool/image-generation.js.map +1 -0
  255. package/dist/github-copilot/responses/tool/local-shell.js +21 -0
  256. package/dist/github-copilot/responses/tool/local-shell.js.map +1 -0
  257. package/dist/github-copilot/responses/tool/web-search-preview.js +62 -0
  258. package/dist/github-copilot/responses/tool/web-search-preview.js.map +1 -0
  259. package/dist/github-copilot/responses/tool/web-search.js +45 -0
  260. package/dist/github-copilot/responses/tool/web-search.js.map +1 -0
  261. package/dist/global.js +78 -0
  262. package/dist/global.js.map +1 -0
  263. package/dist/id/id.js +40 -0
  264. package/dist/id/id.js.map +1 -0
  265. package/dist/image/photon.js +84 -0
  266. package/dist/image/photon.js.map +1 -0
  267. package/dist/image.js +49 -0
  268. package/dist/image.js.map +1 -0
  269. package/dist/installation/version.js +4 -0
  270. package/dist/installation/version.js.map +1 -0
  271. package/dist/instruction-context.js +69 -0
  272. package/dist/instruction-context.js.map +1 -0
  273. package/dist/integration/connection.js +6 -0
  274. package/dist/integration/connection.js.map +1 -0
  275. package/dist/integration.js +335 -0
  276. package/dist/integration.js.map +1 -0
  277. package/dist/location-mutation.js +104 -0
  278. package/dist/location-mutation.js.map +1 -0
  279. package/dist/location-service-map.js +11 -0
  280. package/dist/location-service-map.js.map +1 -0
  281. package/dist/location-services.js +94 -0
  282. package/dist/location-services.js.map +1 -0
  283. package/dist/location.js +26 -0
  284. package/dist/location.js.map +1 -0
  285. package/dist/model.js +20 -0
  286. package/dist/model.js.map +1 -0
  287. package/dist/models-dev.js +187 -0
  288. package/dist/models-dev.js.map +1 -0
  289. package/dist/npm-config.js +33 -0
  290. package/dist/npm-config.js.map +1 -0
  291. package/dist/npm.js +203 -0
  292. package/dist/npm.js.map +1 -0
  293. package/dist/oauth/page.js +229 -0
  294. package/dist/oauth/page.js.map +1 -0
  295. package/dist/observability/logging.js +62 -0
  296. package/dist/observability/logging.js.map +1 -0
  297. package/dist/observability/otlp.js +69 -0
  298. package/dist/observability/otlp.js.map +1 -0
  299. package/dist/observability/shared.js +2 -0
  300. package/dist/observability/shared.js.map +1 -0
  301. package/dist/observability.js +14 -0
  302. package/dist/observability.js.map +1 -0
  303. package/dist/omni/index.js +36 -0
  304. package/dist/omni/index.js.map +1 -0
  305. package/dist/omni/kernel/01-multi-file-composer.js +57 -0
  306. package/dist/omni/kernel/01-multi-file-composer.js.map +1 -0
  307. package/dist/omni/kernel/02-terminal-autonomy.js +47 -0
  308. package/dist/omni/kernel/02-terminal-autonomy.js.map +1 -0
  309. package/dist/omni/kernel/03-background-loop.js +43 -0
  310. package/dist/omni/kernel/03-background-loop.js.map +1 -0
  311. package/dist/omni/kernel/04-behavior-cascade.js +39 -0
  312. package/dist/omni/kernel/04-behavior-cascade.js.map +1 -0
  313. package/dist/omni/kernel/05-git-pair.js +42 -0
  314. package/dist/omni/kernel/05-git-pair.js.map +1 -0
  315. package/dist/omni/kernel/06-sandbox-runtime.js +34 -0
  316. package/dist/omni/kernel/06-sandbox-runtime.js.map +1 -0
  317. package/dist/omni/kernel/07-idea-to-deploy.js +28 -0
  318. package/dist/omni/kernel/07-idea-to-deploy.js.map +1 -0
  319. package/dist/omni/kernel/08-cost-router.js +26 -0
  320. package/dist/omni/kernel/08-cost-router.js.map +1 -0
  321. package/dist/omni/kernel/09-live-observability.js +40 -0
  322. package/dist/omni/kernel/09-live-observability.js.map +1 -0
  323. package/dist/omni/kernel/10-knowledge-graph.js +39 -0
  324. package/dist/omni/kernel/10-knowledge-graph.js.map +1 -0
  325. package/dist/omni/kernel/11-security-scanner.js +52 -0
  326. package/dist/omni/kernel/11-security-scanner.js.map +1 -0
  327. package/dist/omni/kernel/12-silent-precompile.js +58 -0
  328. package/dist/omni/kernel/12-silent-precompile.js.map +1 -0
  329. package/dist/omni/kernel/13-visual-context-sync.js +59 -0
  330. package/dist/omni/kernel/13-visual-context-sync.js.map +1 -0
  331. package/dist/omni/kernel/14-self-evolving-prompt.js +45 -0
  332. package/dist/omni/kernel/14-self-evolving-prompt.js.map +1 -0
  333. package/dist/omni/kernel/15-zero-trust-token.js +78 -0
  334. package/dist/omni/kernel/15-zero-trust-token.js.map +1 -0
  335. package/dist/omni/kernel/index.js +79 -0
  336. package/dist/omni/kernel/index.js.map +1 -0
  337. package/dist/omni/memory-graph.js +64 -0
  338. package/dist/omni/memory-graph.js.map +1 -0
  339. package/dist/omni/secret-redact.js +81 -0
  340. package/dist/omni/secret-redact.js.map +1 -0
  341. package/dist/omni/shadow-clone.js +54 -0
  342. package/dist/omni/shadow-clone.js.map +1 -0
  343. package/dist/omni/vision-context.js +61 -0
  344. package/dist/omni/vision-context.js.map +1 -0
  345. package/dist/patch.js +179 -0
  346. package/dist/patch.js.map +1 -0
  347. package/dist/permission/saved.js +53 -0
  348. package/dist/permission/saved.js.map +1 -0
  349. package/dist/permission/sql.js +14 -0
  350. package/dist/permission/sql.js.map +1 -0
  351. package/dist/permission.js +222 -0
  352. package/dist/permission.js.map +1 -0
  353. package/dist/plugin/agent.js +180 -0
  354. package/dist/plugin/agent.js.map +1 -0
  355. package/dist/plugin/command.js +24 -0
  356. package/dist/plugin/command.js.map +1 -0
  357. package/dist/plugin/host.js +168 -0
  358. package/dist/plugin/host.js.map +1 -0
  359. package/dist/plugin/internal.js +102 -0
  360. package/dist/plugin/internal.js.map +1 -0
  361. package/dist/plugin/layer-map.example.js +37 -0
  362. package/dist/plugin/layer-map.example.js.map +1 -0
  363. package/dist/plugin/models-dev.js +161 -0
  364. package/dist/plugin/models-dev.js.map +1 -0
  365. package/dist/plugin/promise.js +71 -0
  366. package/dist/plugin/promise.js.map +1 -0
  367. package/dist/plugin/provider/alibaba.js +14 -0
  368. package/dist/plugin/provider/alibaba.js.map +1 -0
  369. package/dist/plugin/provider/amazon-bedrock.js +109 -0
  370. package/dist/plugin/provider/amazon-bedrock.js.map +1 -0
  371. package/dist/plugin/provider/anthropic.js +26 -0
  372. package/dist/plugin/provider/anthropic.js.map +1 -0
  373. package/dist/plugin/provider/azure.js +79 -0
  374. package/dist/plugin/provider/azure.js.map +1 -0
  375. package/dist/plugin/provider/cerebras.js +25 -0
  376. package/dist/plugin/provider/cerebras.js.map +1 -0
  377. package/dist/plugin/provider/cloudflare-ai-gateway.js +68 -0
  378. package/dist/plugin/provider/cloudflare-ai-gateway.js.map +1 -0
  379. package/dist/plugin/provider/cloudflare-workers-ai.js +74 -0
  380. package/dist/plugin/provider/cloudflare-workers-ai.js.map +1 -0
  381. package/dist/plugin/provider/cohere.js +14 -0
  382. package/dist/plugin/provider/cohere.js.map +1 -0
  383. package/dist/plugin/provider/deepinfra.js +14 -0
  384. package/dist/plugin/provider/deepinfra.js.map +1 -0
  385. package/dist/plugin/provider/dynamic.js +27 -0
  386. package/dist/plugin/provider/dynamic.js.map +1 -0
  387. package/dist/plugin/provider/gateway.js +14 -0
  388. package/dist/plugin/provider/gateway.js.map +1 -0
  389. package/dist/plugin/provider/github-copilot.js +48 -0
  390. package/dist/plugin/provider/github-copilot.js.map +1 -0
  391. package/dist/plugin/provider/gitlab.js +57 -0
  392. package/dist/plugin/provider/gitlab.js.map +1 -0
  393. package/dist/plugin/provider/google-vertex.js +153 -0
  394. package/dist/plugin/provider/google-vertex.js.map +1 -0
  395. package/dist/plugin/provider/google.js +14 -0
  396. package/dist/plugin/provider/google.js.map +1 -0
  397. package/dist/plugin/provider/groq.js +14 -0
  398. package/dist/plugin/provider/groq.js.map +1 -0
  399. package/dist/plugin/provider/kilo.js +22 -0
  400. package/dist/plugin/provider/kilo.js.map +1 -0
  401. package/dist/plugin/provider/llmgateway.js +29 -0
  402. package/dist/plugin/provider/llmgateway.js.map +1 -0
  403. package/dist/plugin/provider/mistral.js +14 -0
  404. package/dist/plugin/provider/mistral.js.map +1 -0
  405. package/dist/plugin/provider/nvidia.js +23 -0
  406. package/dist/plugin/provider/nvidia.js.map +1 -0
  407. package/dist/plugin/provider/openai-compatible.js +18 -0
  408. package/dist/plugin/provider/openai-compatible.js.map +1 -0
  409. package/dist/plugin/provider/openai.js +241 -0
  410. package/dist/plugin/provider/openai.js.map +1 -0
  411. package/dist/plugin/provider/openrouter.js +36 -0
  412. package/dist/plugin/provider/openrouter.js.map +1 -0
  413. package/dist/plugin/provider/perplexity.js +14 -0
  414. package/dist/plugin/provider/perplexity.js.map +1 -0
  415. package/dist/plugin/provider/sap-ai-core.js +39 -0
  416. package/dist/plugin/provider/sap-ai-core.js.map +1 -0
  417. package/dist/plugin/provider/snowflake-cortex.js +76 -0
  418. package/dist/plugin/provider/snowflake-cortex.js.map +1 -0
  419. package/dist/plugin/provider/togetherai.js +14 -0
  420. package/dist/plugin/provider/togetherai.js.map +1 -0
  421. package/dist/plugin/provider/venice.js +14 -0
  422. package/dist/plugin/provider/venice.js.map +1 -0
  423. package/dist/plugin/provider/vercel.js +26 -0
  424. package/dist/plugin/provider/vercel.js.map +1 -0
  425. package/dist/plugin/provider/xai.js +20 -0
  426. package/dist/plugin/provider/xai.js.map +1 -0
  427. package/dist/plugin/provider/zenmux.js +22 -0
  428. package/dist/plugin/provider/zenmux.js.map +1 -0
  429. package/dist/plugin/provider/zyraxon.js +260 -0
  430. package/dist/plugin/provider/zyraxon.js.map +1 -0
  431. package/dist/plugin/provider.js +69 -0
  432. package/dist/plugin/provider.js.map +1 -0
  433. package/dist/plugin/skill.js +25 -0
  434. package/dist/plugin/skill.js.map +1 -0
  435. package/dist/plugin/variant.js +38 -0
  436. package/dist/plugin/variant.js.map +1 -0
  437. package/dist/plugin.js +119 -0
  438. package/dist/plugin.js.map +1 -0
  439. package/dist/policy.js +30 -0
  440. package/dist/policy.js.map +1 -0
  441. package/dist/process.js +163 -0
  442. package/dist/process.js.map +1 -0
  443. package/dist/project/copy-strategies.js +28 -0
  444. package/dist/project/copy-strategies.js.map +1 -0
  445. package/dist/project/copy.js +180 -0
  446. package/dist/project/copy.js.map +1 -0
  447. package/dist/project/directories.js +89 -0
  448. package/dist/project/directories.js.map +1 -0
  449. package/dist/project/schema.js +12 -0
  450. package/dist/project/schema.js.map +1 -0
  451. package/dist/project/sql.js +29 -0
  452. package/dist/project/sql.js.map +1 -0
  453. package/dist/project.js +94 -0
  454. package/dist/project.js.map +1 -0
  455. package/dist/provider.js +9 -0
  456. package/dist/provider.js.map +1 -0
  457. package/dist/pty/protocol.js +35 -0
  458. package/dist/pty/protocol.js.map +1 -0
  459. package/dist/pty/pty.bun.js +23 -0
  460. package/dist/pty/pty.bun.js.map +1 -0
  461. package/dist/pty/pty.js +2 -0
  462. package/dist/pty/pty.js.map +1 -0
  463. package/dist/pty/pty.node.js +23 -0
  464. package/dist/pty/pty.node.js.map +1 -0
  465. package/dist/pty/schema.js +2 -0
  466. package/dist/pty/schema.js.map +1 -0
  467. package/dist/pty/ticket.js +33 -0
  468. package/dist/pty/ticket.js.map +1 -0
  469. package/dist/pty.js +253 -0
  470. package/dist/pty.js.map +1 -0
  471. package/dist/public-event-manifest.js +6 -0
  472. package/dist/public-event-manifest.js.map +1 -0
  473. package/dist/question.js +78 -0
  474. package/dist/question.js.map +1 -0
  475. package/dist/reference/guidance.js +55 -0
  476. package/dist/reference/guidance.js.map +1 -0
  477. package/dist/reference.js +90 -0
  478. package/dist/reference.js.map +1 -0
  479. package/dist/repository-cache.js +180 -0
  480. package/dist/repository-cache.js.map +1 -0
  481. package/dist/repository.js +164 -0
  482. package/dist/repository.js.map +1 -0
  483. package/dist/ripgrep/binary.js +107 -0
  484. package/dist/ripgrep/binary.js.map +1 -0
  485. package/dist/ripgrep.js +174 -0
  486. package/dist/ripgrep.js.map +1 -0
  487. package/dist/schema.js +33 -0
  488. package/dist/schema.js.map +1 -0
  489. package/dist/session/compaction.js +197 -0
  490. package/dist/session/compaction.js.map +1 -0
  491. package/dist/session/context-epoch.js +110 -0
  492. package/dist/session/context-epoch.js.map +1 -0
  493. package/dist/session/error.js +20 -0
  494. package/dist/session/error.js.map +1 -0
  495. package/dist/session/event.js +3 -0
  496. package/dist/session/event.js.map +1 -0
  497. package/dist/session/execution/local.js +35 -0
  498. package/dist/session/execution/local.js.map +1 -0
  499. package/dist/session/execution.js +16 -0
  500. package/dist/session/execution.js.map +1 -0
  501. package/dist/session/history.js +58 -0
  502. package/dist/session/history.js.map +1 -0
  503. package/dist/session/info.js +48 -0
  504. package/dist/session/info.js.map +1 -0
  505. package/dist/session/input.js +167 -0
  506. package/dist/session/input.js.map +1 -0
  507. package/dist/session/message-updater.js +340 -0
  508. package/dist/session/message-updater.js.map +1 -0
  509. package/dist/session/message.js +3 -0
  510. package/dist/session/message.js.map +1 -0
  511. package/dist/session/projector.js +385 -0
  512. package/dist/session/projector.js.map +1 -0
  513. package/dist/session/prompt.js +2 -0
  514. package/dist/session/prompt.js.map +1 -0
  515. package/dist/session/revert.js +107 -0
  516. package/dist/session/revert.js.map +1 -0
  517. package/dist/session/run-coordinator.js +65 -0
  518. package/dist/session/run-coordinator.js.map +1 -0
  519. package/dist/session/runner/index.js +5 -0
  520. package/dist/session/runner/index.js.map +1 -0
  521. package/dist/session/runner/llm.js +356 -0
  522. package/dist/session/runner/llm.js.map +1 -0
  523. package/dist/session/runner/max-steps.js +17 -0
  524. package/dist/session/runner/max-steps.js.map +1 -0
  525. package/dist/session/runner/model.js +150 -0
  526. package/dist/session/runner/model.js.map +1 -0
  527. package/dist/session/runner/publish-llm-event.js +387 -0
  528. package/dist/session/runner/publish-llm-event.js.map +1 -0
  529. package/dist/session/runner/to-llm-message.js +152 -0
  530. package/dist/session/runner/to-llm-message.js.map +1 -0
  531. package/dist/session/schema.js +5 -0
  532. package/dist/session/schema.js.map +1 -0
  533. package/dist/session/sql.js +121 -0
  534. package/dist/session/sql.js.map +1 -0
  535. package/dist/session/store.js +44 -0
  536. package/dist/session/store.js.map +1 -0
  537. package/dist/session/todo.js +53 -0
  538. package/dist/session/todo.js.map +1 -0
  539. package/dist/session.js +330 -0
  540. package/dist/session.js.map +1 -0
  541. package/dist/share/sql.js +13 -0
  542. package/dist/share/sql.js.map +1 -0
  543. package/dist/shell.js +227 -0
  544. package/dist/shell.js.map +1 -0
  545. package/dist/skill/discovery.js +163 -0
  546. package/dist/skill/discovery.js.map +1 -0
  547. package/dist/skill/guidance.js +58 -0
  548. package/dist/skill/guidance.js.map +1 -0
  549. package/dist/skill.js +101 -0
  550. package/dist/skill.js.map +1 -0
  551. package/dist/snapshot.js +174 -0
  552. package/dist/snapshot.js.map +1 -0
  553. package/dist/state.js +76 -0
  554. package/dist/state.js.map +1 -0
  555. package/dist/system-context/builtins.js +44 -0
  556. package/dist/system-context/builtins.js.map +1 -0
  557. package/dist/system-context/index.js +208 -0
  558. package/dist/system-context/index.js.map +1 -0
  559. package/dist/system-context/registry.js +24 -0
  560. package/dist/system-context/registry.js.map +1 -0
  561. package/dist/tool/application-tools.js +33 -0
  562. package/dist/tool/application-tools.js.map +1 -0
  563. package/dist/tool/apply-patch.js +177 -0
  564. package/dist/tool/apply-patch.js.map +1 -0
  565. package/dist/tool/bash.js +177 -0
  566. package/dist/tool/bash.js.map +1 -0
  567. package/dist/tool/builtins.js +49 -0
  568. package/dist/tool/builtins.js.map +1 -0
  569. package/dist/tool/edit.js +181 -0
  570. package/dist/tool/edit.js.map +1 -0
  571. package/dist/tool/glob.js +83 -0
  572. package/dist/tool/glob.js.map +1 -0
  573. package/dist/tool/grep.js +110 -0
  574. package/dist/tool/grep.js.map +1 -0
  575. package/dist/tool/http-body.js +26 -0
  576. package/dist/tool/http-body.js.map +1 -0
  577. package/dist/tool/marketplace.js +483 -0
  578. package/dist/tool/marketplace.js.map +1 -0
  579. package/dist/tool/question.js +70 -0
  580. package/dist/tool/question.js.map +1 -0
  581. package/dist/tool/read-filesystem.js +326 -0
  582. package/dist/tool/read-filesystem.js.map +1 -0
  583. package/dist/tool/read.js +107 -0
  584. package/dist/tool/read.js.map +1 -0
  585. package/dist/tool/registry.js +102 -0
  586. package/dist/tool/registry.js.map +1 -0
  587. package/dist/tool/skill.js +97 -0
  588. package/dist/tool/skill.js.map +1 -0
  589. package/dist/tool/todowrite.js +50 -0
  590. package/dist/tool/todowrite.js.map +1 -0
  591. package/dist/tool/tool.js +71 -0
  592. package/dist/tool/tool.js.map +1 -0
  593. package/dist/tool/tools.js +6 -0
  594. package/dist/tool/tools.js.map +1 -0
  595. package/dist/tool/webfetch.js +184 -0
  596. package/dist/tool/webfetch.js.map +1 -0
  597. package/dist/tool/websearch.js +201 -0
  598. package/dist/tool/websearch.js.map +1 -0
  599. package/dist/tool/write.js +83 -0
  600. package/dist/tool/write.js.map +1 -0
  601. package/dist/tool-output-store.js +164 -0
  602. package/dist/tool-output-store.js.map +1 -0
  603. package/dist/util/array.js +9 -0
  604. package/dist/util/array.js.map +1 -0
  605. package/dist/util/binary.js +41 -0
  606. package/dist/util/binary.js.map +1 -0
  607. package/dist/util/effect-flock.js +179 -0
  608. package/dist/util/effect-flock.js.map +1 -0
  609. package/dist/util/encode.js +50 -0
  610. package/dist/util/encode.js.map +1 -0
  611. package/dist/util/error.js +46 -0
  612. package/dist/util/error.js.map +1 -0
  613. package/dist/util/flock.js +274 -0
  614. package/dist/util/flock.js.map +1 -0
  615. package/dist/util/glob.js +27 -0
  616. package/dist/util/glob.js.map +1 -0
  617. package/dist/util/hash.js +13 -0
  618. package/dist/util/hash.js.map +1 -0
  619. package/dist/util/identifier.js +2 -0
  620. package/dist/util/identifier.js.map +1 -0
  621. package/dist/util/iife.js +4 -0
  622. package/dist/util/iife.js.map +1 -0
  623. package/dist/util/lazy.js +12 -0
  624. package/dist/util/lazy.js.map +1 -0
  625. package/dist/util/module.js +13 -0
  626. package/dist/util/module.js.map +1 -0
  627. package/dist/util/path.js +40 -0
  628. package/dist/util/path.js.map +1 -0
  629. package/dist/util/retry.js +35 -0
  630. package/dist/util/retry.js.map +1 -0
  631. package/dist/util/slug.js +75 -0
  632. package/dist/util/slug.js.map +1 -0
  633. package/dist/util/token.js +4 -0
  634. package/dist/util/token.js.map +1 -0
  635. package/dist/util/which.js +14 -0
  636. package/dist/util/which.js.map +1 -0
  637. package/dist/util/wildcard.js +13 -0
  638. package/dist/util/wildcard.js.map +1 -0
  639. package/dist/v1/config/agent.js +77 -0
  640. package/dist/v1/config/agent.js.map +1 -0
  641. package/dist/v1/config/attachment.js +21 -0
  642. package/dist/v1/config/attachment.js.map +1 -0
  643. package/dist/v1/config/command.js +11 -0
  644. package/dist/v1/config/command.js.map +1 -0
  645. package/dist/v1/config/config.js +157 -0
  646. package/dist/v1/config/config.js.map +1 -0
  647. package/dist/v1/config/console-state.js +15 -0
  648. package/dist/v1/config/console-state.js.map +1 -0
  649. package/dist/v1/config/error.js +30 -0
  650. package/dist/v1/config/error.js.map +1 -0
  651. package/dist/v1/config/formatter.js +10 -0
  652. package/dist/v1/config/formatter.js.map +1 -0
  653. package/dist/v1/config/layout.js +4 -0
  654. package/dist/v1/config/layout.js.map +1 -0
  655. package/dist/v1/config/lsp.js +74 -0
  656. package/dist/v1/config/lsp.js.map +1 -0
  657. package/dist/v1/config/mcp.js +54 -0
  658. package/dist/v1/config/mcp.js.map +1 -0
  659. package/dist/v1/config/migrate.js +230 -0
  660. package/dist/v1/config/migrate.js.map +1 -0
  661. package/dist/v1/config/permission.js +32 -0
  662. package/dist/v1/config/permission.js.map +1 -0
  663. package/dist/v1/config/plugin.js +5 -0
  664. package/dist/v1/config/plugin.js.map +1 -0
  665. package/dist/v1/config/provider-options.js +193 -0
  666. package/dist/v1/config/provider-options.js.map +1 -0
  667. package/dist/v1/config/provider.js +83 -0
  668. package/dist/v1/config/provider.js.map +1 -0
  669. package/dist/v1/config/server.js +17 -0
  670. package/dist/v1/config/server.js.map +1 -0
  671. package/dist/v1/config/skills.js +11 -0
  672. package/dist/v1/config/skills.js.map +1 -0
  673. package/dist/v1/permission.js +28 -0
  674. package/dist/v1/permission.js.map +1 -0
  675. package/dist/v1/session.js +26 -0
  676. package/dist/v1/session.js.map +1 -0
  677. package/dist/v2-schema.js +3 -0
  678. package/dist/v2-schema.js.map +1 -0
  679. package/dist/workspace.js +4 -0
  680. package/dist/workspace.js.map +1 -0
  681. package/package.json +103 -0
package/dist/git.js ADDED
@@ -0,0 +1,558 @@
1
+ export * as Git from "./git";
2
+ import path from "path";
3
+ import { randomUUID } from "crypto";
4
+ import { Context, Effect, Layer, Schema, Stream } from "effect";
5
+ import { ChildProcess } from "effect/unstable/process";
6
+ import { AbsolutePath, RelativePath } from "./schema";
7
+ import { FSUtil } from "./fs-util";
8
+ import { AppProcess } from "./process";
9
+ import { makeGlobalNode } from "./effect/app-node";
10
+ import { KeyedMutex } from "./effect/keyed-mutex";
11
+ export class Repository extends Schema.Class("Git.Repository")({
12
+ worktree: AbsolutePath,
13
+ gitDirectory: AbsolutePath,
14
+ commonDirectory: AbsolutePath,
15
+ }) {
16
+ }
17
+ export const ChangeSet = Schema.String.pipe(Schema.brand("Git.ChangeSet"));
18
+ export const TreeID = Schema.String.pipe(Schema.brand("Git.TreeID"));
19
+ export class OperationError extends Schema.TaggedErrorClass()("Git.OperationError", {
20
+ operation: Schema.Literals([
21
+ "clone",
22
+ "fetch",
23
+ "checkout",
24
+ "reset",
25
+ "create",
26
+ "refresh",
27
+ "write_tree",
28
+ "list_files",
29
+ "diff",
30
+ "restore",
31
+ ]),
32
+ message: Schema.String,
33
+ directory: Schema.optional(AbsolutePath),
34
+ cause: Schema.optional(Schema.Defect()),
35
+ }) {
36
+ }
37
+ export class Worktree extends Schema.Class("Git.Worktree")({
38
+ directory: AbsolutePath,
39
+ kind: Schema.Literals(["main", "linked"]),
40
+ }) {
41
+ }
42
+ export class WorktreeError extends Schema.TaggedErrorClass()("Git.WorktreeError", {
43
+ operation: Schema.Literals(["create", "remove", "list"]),
44
+ message: Schema.String,
45
+ directory: Schema.optional(AbsolutePath),
46
+ forceRequired: Schema.optional(Schema.Boolean),
47
+ cause: Schema.optional(Schema.Defect()),
48
+ }) {
49
+ }
50
+ export class PatchError extends Schema.TaggedErrorClass()("Git.PatchError", {
51
+ operation: Schema.Literals(["capture", "apply", "reset"]),
52
+ directory: AbsolutePath,
53
+ message: Schema.String,
54
+ cause: Schema.optional(Schema.Defect()),
55
+ }) {
56
+ }
57
+ export class Service extends Context.Service()("@zyraxon/GitV2") {
58
+ }
59
+ const layer = Layer.effect(Service, Effect.gen(function* () {
60
+ const fs = yield* FSUtil.Service;
61
+ const proc = yield* AppProcess.Service;
62
+ const locks = KeyedMutex.makeUnsafe();
63
+ const locked = (repository, effect) => locks.withLock(repository.gitDirectory)(effect);
64
+ const discover = Effect.fn("Git.repo.discover")(function* (input) {
65
+ const dotgit = yield* fs.up({ targets: [".git"], start: input }).pipe(Effect.map((matches) => matches[0]), Effect.catch(() => Effect.succeed(undefined)));
66
+ if (!dotgit)
67
+ return undefined;
68
+ const cwd = path.dirname(dotgit);
69
+ const git = run(cwd, proc);
70
+ const topLevel = yield* git(["rev-parse", "--show-toplevel"]);
71
+ const gitDir = yield* git(["rev-parse", "--git-dir"]);
72
+ const commonDir = yield* git(["rev-parse", "--git-common-dir"]);
73
+ if (gitDir.exitCode !== 0 || commonDir.exitCode !== 0)
74
+ return undefined;
75
+ return new Repository({
76
+ worktree: AbsolutePath.make(topLevel.exitCode === 0 ? resolvePath(cwd, topLevel.text) : cwd),
77
+ gitDirectory: AbsolutePath.make(resolvePath(cwd, gitDir.text)),
78
+ commonDirectory: AbsolutePath.make(resolvePath(cwd, commonDir.text)),
79
+ });
80
+ });
81
+ const remote = Effect.fn("Git.remote.get")(function* (repository, name = "origin") {
82
+ const result = yield* run(repository.worktree, proc)(["remote", "get-url", name]);
83
+ if (result.exitCode !== 0)
84
+ return undefined;
85
+ return result.text.trim() || undefined;
86
+ });
87
+ const roots = Effect.fn("Git.history.rootCommits")(function* (repository) {
88
+ const result = yield* run(repository.worktree, proc)(["rev-list", "--max-parents=0", "HEAD"]);
89
+ if (result.exitCode !== 0)
90
+ return [];
91
+ return result.text
92
+ .split("\n")
93
+ .map((item) => item.trim())
94
+ .filter(Boolean)
95
+ .toSorted();
96
+ });
97
+ const head = Effect.fn("Git.history.head")(function* (repository) {
98
+ const result = yield* run(repository.worktree, proc)(["rev-parse", "HEAD"]);
99
+ if (result.exitCode !== 0)
100
+ return undefined;
101
+ return result.text.trim() || undefined;
102
+ });
103
+ const branch = Effect.fn("Git.history.branch")(function* (repository) {
104
+ const result = yield* run(repository.worktree, proc)(["symbolic-ref", "--quiet", "--short", "HEAD"]);
105
+ if (result.exitCode !== 0)
106
+ return undefined;
107
+ return result.text.trim() || undefined;
108
+ });
109
+ const remoteHead = Effect.fn("Git.history.defaultRemoteBranch")(function* (repository, remoteName = "origin") {
110
+ const result = yield* run(repository.worktree, proc)(["symbolic-ref", `refs/remotes/${remoteName}/HEAD`]);
111
+ if (result.exitCode !== 0)
112
+ return undefined;
113
+ return result.text.trim().replace(new RegExp(`^refs/remotes/${remoteName}/`), "") || undefined;
114
+ });
115
+ const operation = Effect.fnUntraced(function* (operation, directory, args) {
116
+ const result = yield* execute(directory, proc)(args).pipe(Effect.mapError((cause) => new OperationError({ operation, directory, message: cause.message, cause })));
117
+ if (result.exitCode === 0)
118
+ return;
119
+ return yield* new OperationError({
120
+ operation,
121
+ directory,
122
+ message: result.stderr.trim() || result.text.trim() || `Git ${operation} failed`,
123
+ });
124
+ });
125
+ const clone = Effect.fn("Git.repo.clone")(function* (input) {
126
+ yield* operation("clone", AbsolutePath.make(path.dirname(input.directory)), [
127
+ "clone",
128
+ "--depth",
129
+ String(input.depth ?? 100),
130
+ ...(input.branch ? ["--branch", input.branch] : []),
131
+ "--",
132
+ input.remote,
133
+ input.directory,
134
+ ]);
135
+ const repository = yield* discover(input.directory);
136
+ if (repository)
137
+ return repository;
138
+ return yield* new OperationError({
139
+ operation: "clone",
140
+ directory: input.directory,
141
+ message: "Cloned repository could not be opened",
142
+ });
143
+ });
144
+ const fetch = Effect.fn("Git.sync.fetchRemotes")(function* (repository, input = {}) {
145
+ yield* operation("fetch", repository.worktree, ["fetch", "--all", ...(input.prune === false ? [] : ["--prune"])]);
146
+ });
147
+ const fetchBranch = Effect.fn("Git.sync.fetchBranch")(function* (repository, input) {
148
+ const remoteName = input.remote ?? "origin";
149
+ const spec = `refs/heads/${input.branch}:refs/remotes/${remoteName}/${input.branch}`;
150
+ yield* operation("fetch", repository.worktree, ["fetch", remoteName, input.force === false ? spec : `+${spec}`]);
151
+ });
152
+ const checkout = Effect.fn("Git.sync.checkoutRemoteBranch")(function* (repository, input) {
153
+ const remoteName = input.remote ?? "origin";
154
+ yield* operation("checkout", repository.worktree, [
155
+ "checkout",
156
+ ...(input.reset === false ? [input.branch] : ["-B", input.branch, `${remoteName}/${input.branch}`]),
157
+ ]);
158
+ });
159
+ const reset = Effect.fn("Git.sync.resetHard")(function* (repository, revision) {
160
+ yield* operation("reset", repository.worktree, ["reset", "--hard", revision]);
161
+ });
162
+ const repositoryArgs = (repository, args) => [
163
+ "--git-dir",
164
+ repository.gitDirectory,
165
+ "--work-tree",
166
+ repository.worktree,
167
+ ...args,
168
+ ];
169
+ const repositoryOperation = Effect.fnUntraced(function* (operationName, repository, args, options) {
170
+ const result = yield* proc
171
+ .run(ChildProcess.make("git", repositoryArgs(repository, args), {
172
+ cwd: repository.worktree,
173
+ env: options?.env,
174
+ extendEnv: true,
175
+ }), { stdin: options?.stdin })
176
+ .pipe(Effect.mapError((cause) => new OperationError({
177
+ operation: operationName,
178
+ directory: repository.worktree,
179
+ message: cause.message,
180
+ cause,
181
+ })));
182
+ const text = result.stdout.toString("utf8");
183
+ if (result.exitCode === 0)
184
+ return { text, stderr: result.stderr.toString("utf8") };
185
+ return yield* new OperationError({
186
+ operation: operationName,
187
+ directory: repository.worktree,
188
+ message: result.stderr.toString("utf8").trim() || text.trim() || `Git ${operationName} failed`,
189
+ });
190
+ });
191
+ const create = Effect.fn("Git.repo.create")(function* (input) {
192
+ yield* fs.ensureDir(input.gitDirectory).pipe(Effect.mapError((cause) => new OperationError({
193
+ operation: "create",
194
+ directory: input.gitDirectory,
195
+ message: "Failed to create Git storage",
196
+ cause,
197
+ })));
198
+ const repository = new Repository({
199
+ worktree: input.worktree,
200
+ gitDirectory: input.gitDirectory,
201
+ commonDirectory: input.gitDirectory,
202
+ });
203
+ yield* repositoryOperation("create", repository, ["init"]);
204
+ yield* Effect.forEach([
205
+ ["core.autocrlf", "false"],
206
+ ["core.longpaths", "true"],
207
+ ["core.symlinks", "true"],
208
+ ["core.fsmonitor", "false"],
209
+ ["feature.manyFiles", "true"],
210
+ ["index.version", "4"],
211
+ ["index.threads", "true"],
212
+ ["core.untrackedCache", "true"],
213
+ ], ([key, value]) => repositoryOperation("create", repository, ["config", key, value]), { discard: true });
214
+ if (!input.seed)
215
+ return repository;
216
+ yield* fs.ensureDir(path.join(input.gitDirectory, "objects", "info")).pipe(Effect.mapError((cause) => new OperationError({
217
+ operation: "create",
218
+ directory: input.gitDirectory,
219
+ message: "Failed to configure shared Git objects",
220
+ cause,
221
+ })));
222
+ yield* fs
223
+ .writeFileString(path.join(input.gitDirectory, "objects", "info", "alternates"), path.join(input.seed.commonDirectory, "objects") + "\n")
224
+ .pipe(Effect.mapError((cause) => new OperationError({
225
+ operation: "create",
226
+ directory: input.gitDirectory,
227
+ message: "Failed to configure shared Git objects",
228
+ cause,
229
+ })));
230
+ yield* fs
231
+ .copyFile(path.join(input.seed.gitDirectory, "index"), path.join(input.gitDirectory, "index"))
232
+ .pipe(Effect.catch(() => Effect.void));
233
+ return repository;
234
+ });
235
+ const refresh = Effect.fn("Git.index.refresh")(function* (input) {
236
+ const list = (args) => repositoryOperation("refresh", input.repository, args).pipe(Effect.map((result) => result.text.split("\0").filter(Boolean)));
237
+ const [tracked, untracked] = yield* Effect.all([
238
+ list(["diff-files", "--name-only", "-z", "--", input.scope]),
239
+ list(["ls-files", "--others", "--exclude-standard", "-z", "--", input.scope]),
240
+ ], { concurrency: 2 });
241
+ const candidates = Array.from(new Set([...tracked, ...untracked]));
242
+ if (!candidates.length)
243
+ return { skipped: [] };
244
+ const ignored = input.ignores
245
+ ? new Set((yield* repositoryOperation("refresh", input.ignores, ["check-ignore", "--no-index", "--stdin", "-z"], {
246
+ stdin: candidates.join("\0") + "\0",
247
+ }).pipe(Effect.catch(() => Effect.succeed({ text: "", stderr: "" })))).text
248
+ .split("\0")
249
+ .filter(Boolean))
250
+ : new Set();
251
+ const allowed = candidates.filter((item) => !ignored.has(item));
252
+ const maximum = input.maximumUntrackedFileBytes;
253
+ const skipped = maximum
254
+ ? (yield* Effect.forEach(untracked.filter((item) => allowed.includes(item)), (item) => fs.stat(path.join(input.repository.worktree, item)).pipe(Effect.map((info) => info.type === "File" && Number(info.size) > maximum ? RelativePath.make(item) : undefined), Effect.catch(() => Effect.succeed(undefined))), { concurrency: 8 })).filter((item) => item !== undefined)
255
+ : [];
256
+ const stage = allowed.filter((item) => !skipped.includes(RelativePath.make(item)));
257
+ const remove = [...ignored, ...skipped];
258
+ if (remove.length)
259
+ yield* repositoryOperation("refresh", input.repository, ["rm", "--cached", "-f", "--ignore-unmatch", "--pathspec-from-file=-", "--pathspec-file-nul"], { stdin: remove.join("\0") + "\0" });
260
+ if (stage.length)
261
+ yield* repositoryOperation("refresh", input.repository, ["add", "--all", "--sparse", "--pathspec-from-file=-", "--pathspec-file-nul"], { stdin: stage.join("\0") + "\0" });
262
+ return { skipped };
263
+ });
264
+ const ignored = Effect.fn("Git.index.ignored")(function* (input) {
265
+ if (!input.paths.length)
266
+ return new Set();
267
+ const result = yield* proc
268
+ .run(ChildProcess.make("git", repositoryArgs(input.repository, ["check-ignore", "--no-index", "--stdin", "-z"]), {
269
+ cwd: input.repository.worktree,
270
+ extendEnv: true,
271
+ }), { stdin: input.paths.join("\0") + "\0" })
272
+ .pipe(Effect.mapError((cause) => new OperationError({
273
+ operation: "list_files",
274
+ directory: input.repository.worktree,
275
+ message: cause.message,
276
+ cause,
277
+ })));
278
+ if (result.exitCode !== 0 && result.exitCode !== 1)
279
+ return yield* new OperationError({
280
+ operation: "list_files",
281
+ directory: input.repository.worktree,
282
+ message: result.stderr.toString("utf8").trim() || "Failed to check ignored paths",
283
+ });
284
+ return new Set(result.stdout
285
+ .toString("utf8")
286
+ .split("\0")
287
+ .filter(Boolean)
288
+ .map((file) => RelativePath.make(file)));
289
+ });
290
+ const writeTree = Effect.fn("Git.tree.write")(function* (repository) {
291
+ return TreeID.make((yield* repositoryOperation("write_tree", repository, ["write-tree"])).text.trim());
292
+ });
293
+ const captureTree = Effect.fn("Git.tree.capture")((input) => locked(input.repository, Effect.gen(function* () {
294
+ yield* Effect.forEach(input.scopes, (scope) => refresh({ ...input, scope }), { discard: true });
295
+ return yield* writeTree(input.repository);
296
+ })));
297
+ const treeFiles = Effect.fn("Git.tree.files")(function* (input) {
298
+ return (yield* repositoryOperation("list_files", input.repository, [
299
+ "diff",
300
+ "--name-only",
301
+ "-z",
302
+ input.from,
303
+ input.to,
304
+ ])).text
305
+ .split("\0")
306
+ .filter(Boolean)
307
+ .map((file) => RelativePath.make(file));
308
+ });
309
+ const treeDiff = Effect.fn("Git.tree.diff")(function* (input) {
310
+ const paths = input.paths ?? (yield* treeFiles(input));
311
+ return yield* Effect.forEach(paths, (file) => Effect.gen(function* () {
312
+ const statusText = (yield* repositoryOperation("diff", input.repository, [
313
+ "diff",
314
+ "--name-status",
315
+ "--no-renames",
316
+ input.from,
317
+ input.to,
318
+ "--",
319
+ file,
320
+ ])).text.trim();
321
+ const status = statusText.startsWith("A") ? "added" : statusText.startsWith("D") ? "deleted" : "modified";
322
+ const stats = (yield* repositoryOperation("diff", input.repository, [
323
+ "diff",
324
+ "--numstat",
325
+ "--no-renames",
326
+ input.from,
327
+ input.to,
328
+ "--",
329
+ file,
330
+ ])).text.split("\t");
331
+ const binary = stats[0] === "-" || stats[1] === "-";
332
+ const patch = binary
333
+ ? ""
334
+ : (yield* repositoryOperation("diff", input.repository, [
335
+ "diff",
336
+ `--unified=${input.context ?? 3}`,
337
+ "--no-renames",
338
+ input.from,
339
+ input.to,
340
+ "--",
341
+ file,
342
+ ])).text;
343
+ return {
344
+ path: file,
345
+ status,
346
+ additions: binary ? 0 : Number(stats[0] ?? 0),
347
+ deletions: binary ? 0 : Number(stats[1] ?? 0),
348
+ patch,
349
+ };
350
+ }));
351
+ });
352
+ const entry = Effect.fnUntraced(function* (repository, tree, file) {
353
+ const text = (yield* repositoryOperation("restore", repository, [
354
+ "ls-tree",
355
+ "-z",
356
+ tree,
357
+ "--",
358
+ file,
359
+ ])).text.replace(/\0$/, "");
360
+ if (!text)
361
+ return;
362
+ const match = text.match(/^(\d+)\s+\w+\s+([0-9a-f]+)\t/);
363
+ if (!match)
364
+ return yield* new OperationError({
365
+ operation: "restore",
366
+ directory: repository.worktree,
367
+ message: `Invalid tree entry for ${file}`,
368
+ });
369
+ return { mode: match[1], object: match[2] };
370
+ });
371
+ const preview = Effect.fn("Git.tree.preview")((input) => locked(input.repository, Effect.gen(function* () {
372
+ const index = path.join(input.repository.gitDirectory, `preview-${randomUUID()}.index`);
373
+ const env = { GIT_INDEX_FILE: index };
374
+ return yield* Effect.gen(function* () {
375
+ yield* repositoryOperation("diff", input.repository, ["read-tree", input.current], { env });
376
+ yield* Effect.forEach(input.files, ([file, tree]) => Effect.gen(function* () {
377
+ const source = yield* entry(input.repository, tree, file);
378
+ if (!source) {
379
+ yield* repositoryOperation("diff", input.repository, ["update-index", "--force-remove", "--", file], { env });
380
+ return;
381
+ }
382
+ yield* repositoryOperation("diff", input.repository, ["update-index", "--add", "--cacheinfo", source.mode, source.object, file], { env });
383
+ }), { discard: true });
384
+ const target = TreeID.make((yield* repositoryOperation("diff", input.repository, ["write-tree"], { env })).text.trim());
385
+ return yield* treeDiff({
386
+ repository: input.repository,
387
+ from: input.current,
388
+ to: target,
389
+ context: input.context,
390
+ paths: Array.from(input.files.keys()),
391
+ });
392
+ }).pipe(Effect.ensuring(fs.remove(index).pipe(Effect.catch(() => Effect.void))));
393
+ })));
394
+ const restore = Effect.fn("Git.tree.restore")((input) => locked(input.repository, Effect.forEach(input.files, ([file, tree]) => Effect.gen(function* () {
395
+ if (yield* entry(input.repository, tree, file)) {
396
+ yield* repositoryOperation("restore", input.repository, ["checkout", tree, "--", file]);
397
+ return;
398
+ }
399
+ yield* fs.remove(path.join(input.repository.worktree, file), { recursive: true, force: true }).pipe(Effect.mapError((cause) => new OperationError({
400
+ operation: "restore",
401
+ directory: input.repository.worktree,
402
+ message: `Failed to remove ${file}`,
403
+ cause,
404
+ })));
405
+ }), { discard: true })));
406
+ const checkoutTree = Effect.fn("Git.tree.checkout")((input) => locked(input.repository, Effect.gen(function* () {
407
+ yield* repositoryOperation("restore", input.repository, ["read-tree", input.tree]);
408
+ yield* repositoryOperation("restore", input.repository, ["checkout-index", "--all", "--force"]);
409
+ })));
410
+ const capture = Effect.fn("Git.change.capture")(function* (input) {
411
+ const scope = path.relative(input.repository.worktree, input.path).replaceAll("\\", "/") || ".";
412
+ const tracked = yield* execute(input.repository.worktree, proc)(["diff", "--binary", "HEAD", "--", scope]).pipe(Effect.mapError((cause) => new PatchError({ operation: "capture", directory: input.path, message: cause.message, cause })));
413
+ if (tracked.exitCode !== 0) {
414
+ return yield* new PatchError({
415
+ operation: "capture",
416
+ directory: input.path,
417
+ message: tracked.stderr.trim() || tracked.text.trim() || "Failed to capture tracked changes",
418
+ });
419
+ }
420
+ const untracked = yield* execute(input.repository.worktree, proc)(["ls-files", "--others", "--exclude-standard", "-z", "--", scope]).pipe(Effect.mapError((cause) => new PatchError({ operation: "capture", directory: input.path, message: cause.message, cause })));
421
+ if (untracked.exitCode !== 0) {
422
+ return yield* new PatchError({
423
+ operation: "capture",
424
+ directory: input.path,
425
+ message: untracked.stderr.trim() || untracked.text.trim() || "Failed to list untracked changes",
426
+ });
427
+ }
428
+ const created = yield* Effect.forEach(untracked.text.split("\0").filter(Boolean), (file) => execute(input.repository.worktree, proc)(["diff", "--binary", "--no-index", "--", "/dev/null", file]).pipe(Effect.mapError((cause) => new PatchError({ operation: "capture", directory: input.path, message: cause.message, cause })), Effect.flatMap((result) =>
429
+ // git diff --no-index returns 1 when differences were found.
430
+ result.exitCode === 0 || result.exitCode === 1
431
+ ? Effect.succeed(result.text)
432
+ : Effect.fail(new PatchError({
433
+ operation: "capture",
434
+ directory: input.path,
435
+ message: result.stderr.trim() || result.text.trim() || `Failed to capture untracked change: ${file}`,
436
+ })))));
437
+ return ChangeSet.make([tracked.text, ...created].filter(Boolean).join("\n"));
438
+ });
439
+ const apply = Effect.fn("Git.change.apply")(function* (input) {
440
+ const result = yield* proc
441
+ .run(ChildProcess.make("git", ["apply", "-"], {
442
+ cwd: input.path,
443
+ extendEnv: true,
444
+ stdin: Stream.make(new TextEncoder().encode(input.changes)),
445
+ }))
446
+ .pipe(Effect.mapError((cause) => new PatchError({ operation: "apply", directory: input.path, message: cause.message, cause })));
447
+ if (result.exitCode === 0)
448
+ return;
449
+ return yield* new PatchError({
450
+ operation: "apply",
451
+ directory: input.path,
452
+ message: result.stderr.toString("utf8").trim() || result.stdout.toString("utf8").trim() || "Failed to apply changes",
453
+ });
454
+ });
455
+ const discard = Effect.fn("Git.change.discard")(function* (input) {
456
+ const scope = path.relative(input.repository.worktree, input.path).replaceAll("\\", "/") || ".";
457
+ const restore = yield* execute(input.repository.worktree, proc)(input.index === "reset" ? ["checkout", "HEAD", "--", scope] : ["checkout", "--", scope]).pipe(Effect.mapError((cause) => new PatchError({ operation: "reset", directory: input.path, message: cause.message, cause })));
458
+ if (restore.exitCode !== 0) {
459
+ return yield* new PatchError({
460
+ operation: "reset",
461
+ directory: input.path,
462
+ message: restore.stderr.trim() || restore.text.trim() || "Failed to restore tracked changes",
463
+ });
464
+ }
465
+ if (input.untracked === "preserve")
466
+ return;
467
+ const clean = yield* execute(input.repository.worktree, proc)(["clean", "-fd", "--", scope]).pipe(Effect.mapError((cause) => new PatchError({ operation: "reset", directory: input.path, message: cause.message, cause })));
468
+ if (clean.exitCode === 0)
469
+ return;
470
+ return yield* new PatchError({
471
+ operation: "reset",
472
+ directory: input.path,
473
+ message: clean.stderr.trim() || clean.text.trim() || "Failed to clean untracked changes",
474
+ });
475
+ });
476
+ const worktreeRun = Effect.fnUntraced(function* (operation, repository, args, worktreeDirectory, cwd = repository.worktree) {
477
+ const result = yield* proc
478
+ .run(ChildProcess.make("git", args, { cwd, extendEnv: true, stdin: "ignore" }))
479
+ .pipe(Effect.mapError((cause) => new WorktreeError({ operation, directory: worktreeDirectory, message: cause.message, cause })));
480
+ if (result.exitCode === 0)
481
+ return result.stdout.toString("utf8");
482
+ const message = result.stderr.toString("utf8").trim() || result.stdout.toString("utf8").trim() || "Git failed";
483
+ return yield* new WorktreeError({
484
+ operation,
485
+ directory: worktreeDirectory,
486
+ message,
487
+ forceRequired: operation === "remove" && /contains modified or untracked files|is dirty/i.test(message),
488
+ });
489
+ });
490
+ const worktreeCreate = Effect.fn("Git.worktree.create")(function* (input) {
491
+ yield* worktreeRun("create", input.repository, ["worktree", "add", "--detach", input.directory, "HEAD"], input.directory);
492
+ const repository = yield* discover(input.directory);
493
+ if (repository)
494
+ return repository;
495
+ return yield* new WorktreeError({
496
+ operation: "create",
497
+ directory: input.directory,
498
+ message: "Created worktree could not be opened",
499
+ });
500
+ });
501
+ const worktreeRemove = Effect.fn("Git.worktree.remove")(function* (input) {
502
+ yield* worktreeRun("remove", input.repository, ["worktree", "remove", ...(input.force ? ["--force"] : []), input.directory], input.directory, input.repository.commonDirectory);
503
+ });
504
+ const worktreeList = Effect.fn("Git.worktree.list")(function* (repository) {
505
+ return (yield* worktreeRun("list", repository, ["worktree", "list", "--porcelain"]))
506
+ .split("\n")
507
+ .filter((line) => line.startsWith("worktree "))
508
+ .map((line, index) => new Worktree({
509
+ directory: AbsolutePath.make(resolvePath(repository.worktree, line.slice("worktree ".length).trim())),
510
+ kind: index === 0 ? "main" : "linked",
511
+ }));
512
+ });
513
+ return Service.of({
514
+ repo: { discover, clone, create },
515
+ remote: { get: remote },
516
+ history: { head, branch, defaultRemoteBranch: remoteHead, rootCommits: roots },
517
+ sync: { fetchRemotes: fetch, fetchBranch, checkoutRemoteBranch: checkout, resetHard: reset },
518
+ change: { capture, apply, discard },
519
+ worktree: { create: worktreeCreate, remove: worktreeRemove, list: worktreeList },
520
+ index: { refresh, ignored },
521
+ tree: {
522
+ capture: captureTree,
523
+ write: writeTree,
524
+ files: treeFiles,
525
+ diff: treeDiff,
526
+ preview,
527
+ restore,
528
+ checkout: checkoutTree,
529
+ },
530
+ });
531
+ }));
532
+ export const node = makeGlobalNode({ service: Service, layer: layer, deps: [FSUtil.node, AppProcess.node] });
533
+ function run(cwd, proc) {
534
+ return (args) => execute(cwd, proc)(args).pipe(Effect.catch(() => Effect.succeed({ exitCode: 1, text: "", stderr: "" })));
535
+ }
536
+ function execute(cwd, proc) {
537
+ return (args) => proc
538
+ .run(ChildProcess.make("git", args, {
539
+ cwd,
540
+ extendEnv: true,
541
+ stdin: "ignore",
542
+ }))
543
+ .pipe(Effect.map((result) => ({
544
+ exitCode: result.exitCode,
545
+ text: result.stdout.toString("utf8"),
546
+ stderr: result.stderr.toString("utf8"),
547
+ })));
548
+ }
549
+ function resolvePath(cwd, value) {
550
+ const trimmed = value.replace(/[\r\n]+$/, "");
551
+ if (!trimmed)
552
+ return cwd;
553
+ const normalized = FSUtil.windowsPath(trimmed);
554
+ if (path.isAbsolute(normalized))
555
+ return path.normalize(normalized);
556
+ return path.resolve(cwd, normalized);
557
+ }
558
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}