cloving 0.3.20 → 1.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 (515) hide show
  1. package/{LICENSE.md → LICENSE} +1 -1
  2. package/README.md +606 -182
  3. package/dist/src/authority/budgets.d.ts +12 -0
  4. package/dist/src/authority/budgets.js +42 -0
  5. package/dist/src/authority/commands.d.ts +7 -0
  6. package/dist/src/authority/commands.js +271 -0
  7. package/dist/src/authority/details.d.ts +28 -0
  8. package/dist/src/authority/details.js +33 -0
  9. package/dist/src/authority/dispatch-decision.d.ts +40 -0
  10. package/dist/src/authority/dispatch-decision.js +47 -0
  11. package/dist/src/authority/effect-requests.d.ts +2 -0
  12. package/dist/src/authority/effect-requests.js +139 -0
  13. package/dist/src/authority/effect-results.d.ts +4 -0
  14. package/dist/src/authority/effect-results.js +236 -0
  15. package/dist/src/authority/events.d.ts +2 -0
  16. package/dist/src/authority/events.js +45 -0
  17. package/dist/src/authority/gate-reduction.d.ts +8 -0
  18. package/dist/src/authority/gate-reduction.js +109 -0
  19. package/dist/src/authority/gates.d.ts +48 -0
  20. package/dist/src/authority/gates.js +77 -0
  21. package/dist/src/authority/history-state.d.ts +15 -0
  22. package/dist/src/authority/history-state.js +61 -0
  23. package/dist/src/authority/history.d.ts +13 -0
  24. package/dist/src/authority/history.js +37 -0
  25. package/dist/src/authority/instants.d.ts +3 -0
  26. package/dist/src/authority/instants.js +38 -0
  27. package/dist/src/authority/leases.d.ts +15 -0
  28. package/dist/src/authority/leases.js +113 -0
  29. package/dist/src/authority/operations.d.ts +101 -0
  30. package/dist/src/authority/operations.js +75 -0
  31. package/dist/src/authority/reconciliation.d.ts +29 -0
  32. package/dist/src/authority/reconciliation.js +156 -0
  33. package/dist/src/authority/reducer.d.ts +41 -0
  34. package/dist/src/authority/reducer.js +139 -0
  35. package/dist/src/authority/reduction-state.d.ts +36 -0
  36. package/dist/src/authority/reduction-state.js +68 -0
  37. package/dist/src/authority/reduction.d.ts +6 -0
  38. package/dist/src/authority/reduction.js +160 -0
  39. package/dist/src/authority/status-closure.d.ts +4 -0
  40. package/dist/src/authority/status-closure.js +57 -0
  41. package/dist/src/authority/status-effects.d.ts +17 -0
  42. package/dist/src/authority/status-effects.js +43 -0
  43. package/dist/src/authority/status-input.d.ts +45 -0
  44. package/dist/src/authority/status-input.js +9 -0
  45. package/dist/src/authority/status.d.ts +32 -0
  46. package/dist/src/authority/status.js +256 -0
  47. package/dist/src/authority/stop-sequence.d.ts +37 -0
  48. package/dist/src/authority/stop-sequence.js +91 -0
  49. package/dist/src/authority/transitions.d.ts +63 -0
  50. package/dist/src/authority/transitions.js +124 -0
  51. package/dist/src/broker/actor/adapter-calls.d.ts +13 -0
  52. package/dist/src/broker/actor/adapter-calls.js +34 -0
  53. package/dist/src/broker/actor/adapter-outcomes.d.ts +28 -0
  54. package/dist/src/broker/actor/adapter-outcomes.js +80 -0
  55. package/dist/src/broker/actor/authority-actor.d.ts +25 -0
  56. package/dist/src/broker/actor/authority-actor.js +169 -0
  57. package/dist/src/broker/actor/authority-changes.d.ts +31 -0
  58. package/dist/src/broker/actor/authority-changes.js +46 -0
  59. package/dist/src/broker/actor/authority-connection.d.ts +15 -0
  60. package/dist/src/broker/actor/authority-connection.js +44 -0
  61. package/dist/src/broker/actor/authority-conversion.d.ts +10 -0
  62. package/dist/src/broker/actor/authority-conversion.js +72 -0
  63. package/dist/src/broker/actor/authority-delivery.d.ts +13 -0
  64. package/dist/src/broker/actor/authority-delivery.js +162 -0
  65. package/dist/src/broker/actor/authority-logger.d.ts +2 -0
  66. package/dist/src/broker/actor/authority-logger.js +19 -0
  67. package/dist/src/broker/actor/authority-policy.d.ts +9 -0
  68. package/dist/src/broker/actor/authority-policy.js +11 -0
  69. package/dist/src/broker/actor/authority-queries.d.ts +45 -0
  70. package/dist/src/broker/actor/authority-queries.js +85 -0
  71. package/dist/src/broker/actor/authority-receipts.d.ts +28 -0
  72. package/dist/src/broker/actor/authority-receipts.js +84 -0
  73. package/dist/src/broker/actor/authority-release.d.ts +13 -0
  74. package/dist/src/broker/actor/authority-release.js +69 -0
  75. package/dist/src/broker/actor/authority-runtime.d.ts +60 -0
  76. package/dist/src/broker/actor/authority-runtime.js +204 -0
  77. package/dist/src/broker/actor/authority-session.d.ts +67 -0
  78. package/dist/src/broker/actor/authority-session.js +251 -0
  79. package/dist/src/broker/actor/authority-settings.d.ts +33 -0
  80. package/dist/src/broker/actor/authority-settings.js +63 -0
  81. package/dist/src/broker/actor/authority-upgrades.d.ts +16 -0
  82. package/dist/src/broker/actor/authority-upgrades.js +12 -0
  83. package/dist/src/broker/actor/authority-watchdog.d.ts +14 -0
  84. package/dist/src/broker/actor/authority-watchdog.js +41 -0
  85. package/dist/src/broker/actor/authority.d.ts +14 -0
  86. package/dist/src/broker/actor/authority.js +115 -0
  87. package/dist/src/broker/actor/delivery-intents.d.ts +68 -0
  88. package/dist/src/broker/actor/delivery-intents.js +77 -0
  89. package/dist/src/broker/actor/delivery-plan.d.ts +2 -0
  90. package/dist/src/broker/actor/delivery-plan.js +109 -0
  91. package/dist/src/broker/actor/delivery-results.d.ts +11 -0
  92. package/dist/src/broker/actor/delivery-results.js +63 -0
  93. package/dist/src/broker/actor/effect-delivery.d.ts +19 -0
  94. package/dist/src/broker/actor/effect-delivery.js +118 -0
  95. package/dist/src/broker/actor/effect-plan.d.ts +41 -0
  96. package/dist/src/broker/actor/effect-plan.js +173 -0
  97. package/dist/src/broker/actor/effect-queries.d.ts +27 -0
  98. package/dist/src/broker/actor/effect-queries.js +80 -0
  99. package/dist/src/broker/actor/effect-turn.d.ts +25 -0
  100. package/dist/src/broker/actor/effect-turn.js +84 -0
  101. package/dist/src/broker/actor/pin-check.d.ts +6 -0
  102. package/dist/src/broker/actor/pin-check.js +12 -0
  103. package/dist/src/broker/actor/runtime-parts.d.ts +23 -0
  104. package/dist/src/broker/actor/runtime-parts.js +34 -0
  105. package/dist/src/broker/actor/stop-plan.d.ts +20 -0
  106. package/dist/src/broker/actor/stop-plan.js +46 -0
  107. package/dist/src/broker/actor/stop-turn.d.ts +17 -0
  108. package/dist/src/broker/actor/stop-turn.js +42 -0
  109. package/dist/src/broker/actor/turn-draft.d.ts +31 -0
  110. package/dist/src/broker/actor/turn-draft.js +138 -0
  111. package/dist/src/broker/actor/turn-plan.d.ts +17 -0
  112. package/dist/src/broker/actor/turn-plan.js +136 -0
  113. package/dist/src/broker/actor/turn-refusals.d.ts +8 -0
  114. package/dist/src/broker/actor/turn-refusals.js +35 -0
  115. package/dist/src/broker/actor/turn-staging.d.ts +78 -0
  116. package/dist/src/broker/actor/turn-staging.js +34 -0
  117. package/dist/src/broker/actor/turn-state.d.ts +34 -0
  118. package/dist/src/broker/actor/turn-state.js +208 -0
  119. package/dist/src/broker/authority-admission.d.ts +21 -0
  120. package/dist/src/broker/authority-admission.js +70 -0
  121. package/dist/src/broker/authority-restore.d.ts +30 -0
  122. package/dist/src/broker/authority-restore.js +165 -0
  123. package/dist/src/broker/decision-restore.d.ts +16 -0
  124. package/dist/src/broker/decision-restore.js +158 -0
  125. package/dist/src/broker/decision-upgrade.d.ts +3 -0
  126. package/dist/src/broker/decision-upgrade.js +12 -0
  127. package/dist/src/broker/effect-restore.d.ts +20 -0
  128. package/dist/src/broker/effect-restore.js +111 -0
  129. package/dist/src/broker/effect-upgrade.d.ts +3 -0
  130. package/dist/src/broker/effect-upgrade.js +9 -0
  131. package/dist/src/broker/operation-digest.d.ts +1 -0
  132. package/dist/src/broker/operation-digest.js +4 -0
  133. package/dist/src/broker/socket-address.d.ts +9 -0
  134. package/dist/src/broker/socket-address.js +14 -0
  135. package/dist/src/broker/workflow-pin.d.ts +2 -0
  136. package/dist/src/broker/workflow-pin.js +5 -0
  137. package/dist/src/chats/analysis-batches.d.ts +24 -0
  138. package/dist/src/chats/analysis-batches.js +83 -0
  139. package/dist/src/chats/analysis-contract.d.ts +80 -0
  140. package/dist/src/chats/analysis-contract.js +16 -0
  141. package/dist/src/chats/analysis-data.d.ts +3 -0
  142. package/dist/src/chats/analysis-data.js +85 -0
  143. package/dist/src/chats/analysis-input.d.ts +12 -0
  144. package/dist/src/chats/analysis-input.js +83 -0
  145. package/dist/src/chats/analysis-links.d.ts +2 -0
  146. package/dist/src/chats/analysis-links.js +25 -0
  147. package/dist/src/chats/analysis-prompt.d.ts +10 -0
  148. package/dist/src/chats/analysis-prompt.js +16 -0
  149. package/dist/src/chats/analysis-proposal.d.ts +2 -0
  150. package/dist/src/chats/analysis-proposal.js +32 -0
  151. package/dist/src/chats/analysis-provenance.d.ts +4 -0
  152. package/dist/src/chats/analysis-provenance.js +99 -0
  153. package/dist/src/chats/analysis-shape.d.ts +3 -0
  154. package/dist/src/chats/analysis-shape.js +228 -0
  155. package/dist/src/chats/analysis.d.ts +3 -0
  156. package/dist/src/chats/analysis.js +42 -0
  157. package/dist/src/chats/corpus-input.d.ts +5 -0
  158. package/dist/src/chats/corpus-input.js +288 -0
  159. package/dist/src/chats/destination.d.ts +4 -0
  160. package/dist/src/chats/destination.js +96 -0
  161. package/dist/src/chats/import.d.ts +15 -0
  162. package/dist/src/chats/import.js +243 -0
  163. package/dist/src/chats/input-file.d.ts +3 -0
  164. package/dist/src/chats/input-file.js +32 -0
  165. package/dist/src/chats/normalize.d.ts +29 -0
  166. package/dist/src/chats/normalize.js +155 -0
  167. package/dist/src/chats/previous-import.d.ts +5 -0
  168. package/dist/src/chats/previous-import.js +34 -0
  169. package/dist/src/chats/reader.d.ts +21 -0
  170. package/dist/src/chats/reader.js +118 -0
  171. package/dist/src/chats/redact-import.d.ts +14 -0
  172. package/dist/src/chats/redact-import.js +141 -0
  173. package/dist/src/chats/redaction.d.ts +41 -0
  174. package/dist/src/chats/redaction.js +161 -0
  175. package/dist/src/chats/revision-input.d.ts +3 -0
  176. package/dist/src/chats/revision-input.js +180 -0
  177. package/dist/src/chats/revision.d.ts +48 -0
  178. package/dist/src/chats/revision.js +94 -0
  179. package/dist/src/chats/selection.d.ts +25 -0
  180. package/dist/src/chats/selection.js +109 -0
  181. package/dist/src/chats/source.d.ts +23 -0
  182. package/dist/src/chats/source.js +135 -0
  183. package/dist/src/chats/structure.d.ts +57 -0
  184. package/dist/src/chats/structure.js +216 -0
  185. package/dist/src/cli/arguments.d.ts +31 -0
  186. package/dist/src/cli/arguments.js +235 -0
  187. package/dist/src/cli/client.d.ts +16 -0
  188. package/dist/src/cli/client.js +159 -0
  189. package/dist/src/cli/commands.d.ts +17 -0
  190. package/dist/src/cli/commands.js +271 -0
  191. package/dist/src/cli/main.d.ts +2 -0
  192. package/dist/src/cli/main.js +127 -0
  193. package/dist/src/cli/render.d.ts +10 -0
  194. package/dist/src/cli/render.js +254 -0
  195. package/dist/src/cli/runtime-arguments.d.ts +73 -0
  196. package/dist/src/cli/runtime-arguments.js +248 -0
  197. package/dist/src/cli/runtime-directory.d.ts +4 -0
  198. package/dist/src/cli/runtime-directory.js +25 -0
  199. package/dist/src/cli/toolchain.d.ts +3 -0
  200. package/dist/src/cli/toolchain.js +74 -0
  201. package/dist/src/cli/usage-render.d.ts +3 -0
  202. package/dist/src/cli/usage-render.js +28 -0
  203. package/dist/src/cli/usage.d.ts +5 -0
  204. package/dist/src/cli/usage.js +156 -0
  205. package/dist/src/cli/validate.d.ts +38 -0
  206. package/dist/src/cli/validate.js +116 -0
  207. package/dist/src/cli/watch-actions.d.ts +10 -0
  208. package/dist/src/cli/watch-actions.js +58 -0
  209. package/dist/src/cli/watch-board-view.d.ts +54 -0
  210. package/dist/src/cli/watch-board-view.js +201 -0
  211. package/dist/src/cli/watch-board.d.ts +15 -0
  212. package/dist/src/cli/watch-board.js +179 -0
  213. package/dist/src/cli/watch-card-client.d.ts +1 -0
  214. package/dist/src/cli/watch-card-client.js +44 -0
  215. package/dist/src/cli/watch-card-forms.d.ts +2 -0
  216. package/dist/src/cli/watch-card-forms.js +33 -0
  217. package/dist/src/cli/watch-card-reply.d.ts +5 -0
  218. package/dist/src/cli/watch-card-reply.js +34 -0
  219. package/dist/src/cli/watch-card-view.d.ts +40 -0
  220. package/dist/src/cli/watch-card-view.js +86 -0
  221. package/dist/src/cli/watch-client.d.ts +1 -0
  222. package/dist/src/cli/watch-client.js +118 -0
  223. package/dist/src/cli/watch-element.d.ts +11 -0
  224. package/dist/src/cli/watch-element.js +6 -0
  225. package/dist/src/cli/watch-model.d.ts +29 -0
  226. package/dist/src/cli/watch-model.js +278 -0
  227. package/dist/src/cli/watch-navigation.d.ts +9 -0
  228. package/dist/src/cli/watch-navigation.js +40 -0
  229. package/dist/src/cli/watch-page.d.ts +1 -0
  230. package/dist/src/cli/watch-page.js +258 -0
  231. package/dist/src/cli/watch-paths.d.ts +2 -0
  232. package/dist/src/cli/watch-paths.js +52 -0
  233. package/dist/src/cli/watch-phases.d.ts +7 -0
  234. package/dist/src/cli/watch-phases.js +148 -0
  235. package/dist/src/cli/watch-pr-board.d.ts +3 -0
  236. package/dist/src/cli/watch-pr-board.js +26 -0
  237. package/dist/src/cli/watch-pr-command.d.ts +15 -0
  238. package/dist/src/cli/watch-pr-command.js +37 -0
  239. package/dist/src/cli/watch-pr-identity.d.ts +20 -0
  240. package/dist/src/cli/watch-pr-identity.js +62 -0
  241. package/dist/src/cli/watch-pr-observer.d.ts +19 -0
  242. package/dist/src/cli/watch-pr-observer.js +108 -0
  243. package/dist/src/cli/watch-pr-settings.d.ts +8 -0
  244. package/dist/src/cli/watch-pr-settings.js +47 -0
  245. package/dist/src/cli/watch-reads.d.ts +28 -0
  246. package/dist/src/cli/watch-reads.js +248 -0
  247. package/dist/src/cli/watch-render.d.ts +153 -0
  248. package/dist/src/cli/watch-render.js +102 -0
  249. package/dist/src/cli/watch-run-input.d.ts +14 -0
  250. package/dist/src/cli/watch-run-input.js +49 -0
  251. package/dist/src/cli/watch-server.d.ts +13 -0
  252. package/dist/src/cli/watch-server.js +214 -0
  253. package/dist/src/cli/watch-start-view.d.ts +18 -0
  254. package/dist/src/cli/watch-start-view.js +77 -0
  255. package/dist/src/cli/watch-stream.d.ts +11 -0
  256. package/dist/src/cli/watch-stream.js +128 -0
  257. package/dist/src/cli/watch-turn.d.ts +30 -0
  258. package/dist/src/cli/watch-turn.js +135 -0
  259. package/dist/src/cli/watch-usage.d.ts +6 -0
  260. package/dist/src/cli/watch-usage.js +65 -0
  261. package/dist/src/cli/watch-view.d.ts +54 -0
  262. package/dist/src/cli/watch-view.js +267 -0
  263. package/dist/src/cli.d.ts +2 -0
  264. package/dist/src/cli.js +104 -0
  265. package/dist/src/daemon/analysis-launch.d.ts +5 -0
  266. package/dist/src/daemon/analysis-launch.js +81 -0
  267. package/dist/src/daemon/analysis-token.d.ts +6 -0
  268. package/dist/src/daemon/analysis-token.js +88 -0
  269. package/dist/src/daemon/analysis-worker.d.ts +22 -0
  270. package/dist/src/daemon/analysis-worker.js +219 -0
  271. package/dist/src/daemon/chats-files.d.ts +15 -0
  272. package/dist/src/daemon/chats-files.js +113 -0
  273. package/dist/src/daemon/chats-worker.d.ts +12 -0
  274. package/dist/src/daemon/chats-worker.js +200 -0
  275. package/dist/src/daemon/claude-turn.d.ts +38 -0
  276. package/dist/src/daemon/claude-turn.js +216 -0
  277. package/dist/src/daemon/claude-worker.d.ts +29 -0
  278. package/dist/src/daemon/claude-worker.js +276 -0
  279. package/dist/src/daemon/codex-stream.d.ts +4 -0
  280. package/dist/src/daemon/codex-stream.js +129 -0
  281. package/dist/src/daemon/daemon.d.ts +49 -0
  282. package/dist/src/daemon/daemon.js +195 -0
  283. package/dist/src/daemon/delivery-router.d.ts +10 -0
  284. package/dist/src/daemon/delivery-router.js +34 -0
  285. package/dist/src/daemon/github-calls.d.ts +29 -0
  286. package/dist/src/daemon/github-calls.js +127 -0
  287. package/dist/src/daemon/github-issue-methods.d.ts +3 -0
  288. package/dist/src/daemon/github-issue-methods.js +99 -0
  289. package/dist/src/daemon/github-issue-privacy.d.ts +6 -0
  290. package/dist/src/daemon/github-issue-privacy.js +131 -0
  291. package/dist/src/daemon/github-merge.d.ts +18 -0
  292. package/dist/src/daemon/github-merge.js +259 -0
  293. package/dist/src/daemon/github-methods.d.ts +5 -0
  294. package/dist/src/daemon/github-methods.js +202 -0
  295. package/dist/src/daemon/github-operation.d.ts +38 -0
  296. package/dist/src/daemon/github-operation.js +57 -0
  297. package/dist/src/daemon/github-ticket-status.d.ts +3 -0
  298. package/dist/src/daemon/github-ticket-status.js +268 -0
  299. package/dist/src/daemon/github-worker.d.ts +17 -0
  300. package/dist/src/daemon/github-worker.js +281 -0
  301. package/dist/src/daemon/host-environment.d.ts +8 -0
  302. package/dist/src/daemon/host-environment.js +14 -0
  303. package/dist/src/daemon/issue-queue.d.ts +10 -0
  304. package/dist/src/daemon/issue-queue.js +254 -0
  305. package/dist/src/daemon/notify-message.d.ts +14 -0
  306. package/dist/src/daemon/notify-message.js +48 -0
  307. package/dist/src/daemon/notify.d.ts +12 -0
  308. package/dist/src/daemon/notify.js +161 -0
  309. package/dist/src/daemon/operation-journal.d.ts +43 -0
  310. package/dist/src/daemon/operation-journal.js +55 -0
  311. package/dist/src/daemon/retrying-turn.d.ts +9 -0
  312. package/dist/src/daemon/retrying-turn.js +185 -0
  313. package/dist/src/daemon/ticket-registration.d.ts +33 -0
  314. package/dist/src/daemon/ticket-registration.js +177 -0
  315. package/dist/src/daemon/ticket-source.d.ts +17 -0
  316. package/dist/src/daemon/ticket-source.js +36 -0
  317. package/dist/src/daemon/work-tree.d.ts +26 -0
  318. package/dist/src/daemon/work-tree.js +206 -0
  319. package/dist/src/effect-authorization.d.ts +21 -0
  320. package/dist/src/effect-authorization.js +14 -0
  321. package/dist/src/execution-pin.d.ts +4 -0
  322. package/dist/src/execution-pin.js +68 -0
  323. package/dist/src/host/start-delivery.d.ts +41 -0
  324. package/dist/src/host/start-delivery.js +68 -0
  325. package/dist/src/host/step-bridge-host.d.ts +79 -0
  326. package/dist/src/host/step-bridge-host.js +205 -0
  327. package/dist/src/host/step-claims.d.ts +31 -0
  328. package/dist/src/host/step-claims.js +85 -0
  329. package/dist/src/host/world-host.d.ts +21 -0
  330. package/dist/src/host/world-host.js +51 -0
  331. package/dist/src/host/world-reconciliation.d.ts +39 -0
  332. package/dist/src/host/world-reconciliation.js +81 -0
  333. package/dist/src/host/world-runs.d.ts +14 -0
  334. package/dist/src/host/world-runs.js +69 -0
  335. package/dist/src/operation-identity.d.ts +7 -0
  336. package/dist/src/operation-identity.js +59 -0
  337. package/dist/src/protocol.d.ts +35 -0
  338. package/dist/src/protocol.js +64 -0
  339. package/dist/src/resource-files.d.ts +1 -0
  340. package/dist/src/resource-files.js +29 -0
  341. package/dist/src/service/changes.d.ts +11 -0
  342. package/dist/src/service/changes.js +32 -0
  343. package/dist/src/service/decision-handler.d.ts +9 -0
  344. package/dist/src/service/decision-handler.js +233 -0
  345. package/dist/src/service/event-handler.d.ts +10 -0
  346. package/dist/src/service/event-handler.js +70 -0
  347. package/dist/src/service/expiry.d.ts +13 -0
  348. package/dist/src/service/expiry.js +53 -0
  349. package/dist/src/service/gateway.d.ts +21 -0
  350. package/dist/src/service/gateway.js +120 -0
  351. package/dist/src/service/registry.d.ts +40 -0
  352. package/dist/src/service/registry.js +13 -0
  353. package/dist/src/service/replies.d.ts +26 -0
  354. package/dist/src/service/replies.js +56 -0
  355. package/dist/src/service/run-handlers.d.ts +4 -0
  356. package/dist/src/service/run-handlers.js +263 -0
  357. package/dist/src/service/service.d.ts +58 -0
  358. package/dist/src/service/service.js +212 -0
  359. package/dist/src/service/submission-handler.d.ts +4 -0
  360. package/dist/src/service/submission-handler.js +206 -0
  361. package/dist/src/service/transport.d.ts +16 -0
  362. package/dist/src/service/transport.js +141 -0
  363. package/dist/src/service/worker-port.d.ts +85 -0
  364. package/dist/src/service/worker-port.js +126 -0
  365. package/dist/src/service/worker-totals.d.ts +3 -0
  366. package/dist/src/service/worker-totals.js +28 -0
  367. package/dist/src/step-bridge.d.ts +57 -0
  368. package/dist/src/step-bridge.js +4 -0
  369. package/dist/src/steps/decision-gate.d.ts +2 -0
  370. package/dist/src/steps/decision-gate.js +8 -0
  371. package/dist/src/steps/load-cycle.d.ts +10 -0
  372. package/dist/src/steps/load-cycle.js +11 -0
  373. package/dist/src/steps/protected-effect.d.ts +2 -0
  374. package/dist/src/steps/protected-effect.js +8 -0
  375. package/dist/src/storage/decision-rows.d.ts +54 -0
  376. package/dist/src/storage/decision-rows.js +72 -0
  377. package/dist/src/storage/decision-snapshots.d.ts +17 -0
  378. package/dist/src/storage/decision-snapshots.js +25 -0
  379. package/dist/src/storage/domain-changes.d.ts +48 -0
  380. package/dist/src/storage/domain-changes.js +213 -0
  381. package/dist/src/storage/domain-rows.d.ts +85 -0
  382. package/dist/src/storage/domain-rows.js +129 -0
  383. package/dist/src/storage/domain-schema.d.ts +32 -0
  384. package/dist/src/storage/domain-schema.js +193 -0
  385. package/dist/src/storage/effect-changes.d.ts +5 -0
  386. package/dist/src/storage/effect-changes.js +105 -0
  387. package/dist/src/storage/effect-rows.d.ts +67 -0
  388. package/dist/src/storage/effect-rows.js +74 -0
  389. package/dist/src/storage/effect-schema.d.ts +1 -0
  390. package/dist/src/storage/effect-schema.js +59 -0
  391. package/dist/src/storage/statements.d.ts +9 -0
  392. package/dist/src/storage/statements.js +8 -0
  393. package/dist/src/submission.d.ts +42 -0
  394. package/dist/src/submission.js +71 -0
  395. package/dist/src/ticket-status.d.ts +8 -0
  396. package/dist/src/ticket-status.js +45 -0
  397. package/dist/src/token-prices.d.ts +19 -0
  398. package/dist/src/token-prices.js +76 -0
  399. package/dist/src/turn-profile.d.ts +13 -0
  400. package/dist/src/turn-profile.js +100 -0
  401. package/dist/src/worker-usage.d.ts +22 -0
  402. package/dist/src/worker-usage.js +44 -0
  403. package/dist/src/workflow-admission.d.ts +45 -0
  404. package/dist/src/workflow-admission.js +151 -0
  405. package/dist/src/workflow-candidate.d.ts +29 -0
  406. package/dist/src/workflow-candidate.js +59 -0
  407. package/dist/src/workflow-contracts.d.ts +29 -0
  408. package/dist/src/workflow-contracts.js +110 -0
  409. package/dist/src/workflow-declaration.d.ts +11 -0
  410. package/dist/src/workflow-declaration.js +59 -0
  411. package/dist/src/workflow-resources.d.ts +8 -0
  412. package/dist/src/workflow-resources.js +14 -0
  413. package/dist/src/workflows.d.ts +6 -0
  414. package/dist/src/workflows.js +4 -0
  415. package/dist/tools/compile-workflows.d.ts +1 -0
  416. package/dist/tools/compile-workflows.js +33 -0
  417. package/dist/tools/self-host-processes.d.ts +10 -0
  418. package/dist/tools/self-host-processes.js +156 -0
  419. package/dist/tools/self-host-workflows.d.ts +15 -0
  420. package/dist/tools/self-host-workflows.js +78 -0
  421. package/dist/tools/self-host.d.ts +1 -0
  422. package/dist/tools/self-host.js +261 -0
  423. package/dist/tools/self-update-host.d.ts +13 -0
  424. package/dist/tools/self-update-host.js +88 -0
  425. package/dist/tools/self-update.d.ts +11 -0
  426. package/dist/tools/self-update.js +177 -0
  427. package/dist/tools/workflow-manifest.d.ts +3 -0
  428. package/dist/tools/workflow-manifest.js +34 -0
  429. package/dist/workflows/analyze-chats.d.ts +10 -0
  430. package/dist/workflows/analyze-chats.declaration.json +9 -0
  431. package/dist/workflows/analyze-chats.js +73 -0
  432. package/dist/workflows/develop-prd.d.ts +7 -0
  433. package/dist/workflows/develop-prd.js +97 -0
  434. package/dist/workflows/develop-ticket.d.ts +9 -0
  435. package/dist/workflows/develop-ticket.js +202 -0
  436. package/dist/workflows/issue-labels.d.ts +16 -0
  437. package/dist/workflows/issue-labels.js +70 -0
  438. package/dist/workflows/ticket-prompts.d.ts +35 -0
  439. package/dist/workflows/ticket-prompts.js +133 -0
  440. package/package.json +84 -75
  441. package/dist/abstract_gpt/index.js +0 -55
  442. package/dist/cloving_gpt/adapters/Adapter.js +0 -2
  443. package/dist/cloving_gpt/adapters/azureopenai.js +0 -69
  444. package/dist/cloving_gpt/adapters/claude.js +0 -128
  445. package/dist/cloving_gpt/adapters/gemini.js +0 -135
  446. package/dist/cloving_gpt/adapters/gpt4all.js +0 -29
  447. package/dist/cloving_gpt/adapters/index.js +0 -2
  448. package/dist/cloving_gpt/adapters/mistral.js +0 -128
  449. package/dist/cloving_gpt/adapters/ollama.js +0 -128
  450. package/dist/cloving_gpt/adapters/openai.js +0 -100
  451. package/dist/cloving_gpt/index.js +0 -192
  452. package/dist/commands/analyze.js +0 -47
  453. package/dist/commands/chat.js +0 -14
  454. package/dist/commands/check.js +0 -7
  455. package/dist/commands/commit.js +0 -44
  456. package/dist/commands/config.js +0 -167
  457. package/dist/commands/describe.js +0 -235
  458. package/dist/commands/generate/code.js +0 -21
  459. package/dist/commands/generate/commit.js +0 -11
  460. package/dist/commands/generate/context.js +0 -82
  461. package/dist/commands/generate/docs.js +0 -11
  462. package/dist/commands/generate/documentation.js +0 -11
  463. package/dist/commands/generate/fizzbuzz.js +0 -35
  464. package/dist/commands/generate/init.js +0 -15
  465. package/dist/commands/generate/review.js +0 -11
  466. package/dist/commands/generate/sh.js +0 -95
  467. package/dist/commands/generate/shell.js +0 -11
  468. package/dist/commands/generate/unit_tests.js +0 -11
  469. package/dist/commands/init.js +0 -13
  470. package/dist/commands/models.js +0 -22
  471. package/dist/commands/project/build.js +0 -88
  472. package/dist/commands/project/complete.js +0 -12
  473. package/dist/commands/project/init.js +0 -82
  474. package/dist/commands/project/plan.js +0 -108
  475. package/dist/commands/proxy.js +0 -11
  476. package/dist/commands/review.js +0 -50
  477. package/dist/commands/tokens.js +0 -75
  478. package/dist/commands/unit_tests.js +0 -150
  479. package/dist/commands/update.js +0 -7
  480. package/dist/file2.js +0 -4
  481. package/dist/index.js +0 -136
  482. package/dist/managers/BlockManager.js +0 -120
  483. package/dist/managers/ChatManager.js +0 -653
  484. package/dist/managers/ChunkManager.js +0 -32
  485. package/dist/managers/CodeManager.js +0 -185
  486. package/dist/managers/CommitManager.js +0 -78
  487. package/dist/managers/DocsManager.js +0 -88
  488. package/dist/managers/DocumentationManager.js +0 -114
  489. package/dist/managers/InitManager.js +0 -230
  490. package/dist/managers/ProxyManager.js +0 -210
  491. package/dist/managers/ReviewManager.js +0 -131
  492. package/dist/managers/ShellManager.js +0 -163
  493. package/dist/managers/StreamManager.js +0 -308
  494. package/dist/managers/UnitTestManager.js +0 -243
  495. package/dist/managers/src/managers/ProxyManager.js +0 -1
  496. package/dist/newfile.js +0 -2
  497. package/dist/package.json +0 -86
  498. package/dist/utils/command_utils.js +0 -384
  499. package/dist/utils/config_utils.js +0 -249
  500. package/dist/utils/gitUtils.js +0 -42
  501. package/dist/utils/git_utils.js +0 -217
  502. package/dist/utils/modelUtils.js +0 -7
  503. package/dist/utils/model_utils.js +0 -7
  504. package/dist/utils/prompt_utils.js +0 -333
  505. package/dist/utils/prompts/CODEGEN_COULDNT_APPLY.md +0 -5
  506. package/dist/utils/prompts/CODEGEN_EXAMPLES.md +0 -82
  507. package/dist/utils/prompts/CODEGEN_INSTRUCTIONS.md +0 -43
  508. package/dist/utils/prompts/DOCS_INSTRUCTIONS.md +0 -9
  509. package/dist/utils/prompts/INIT_INSTRUCTIONS.md +0 -132
  510. package/dist/utils/prompts/REVIEW_INSTRUCTIONS.md +0 -49
  511. package/dist/utils/prompts/SHELL_INSTRUCTIONS.md +0 -15
  512. package/dist/utils/prompts/SPECIAL_FILES.md +0 -66
  513. package/dist/utils/prompts/index.js +0 -27
  514. package/dist/utils/string_utils.js +0 -505
  515. package/dist/utils/types.js +0 -2
@@ -1,217 +0,0 @@
1
- "use strict";
2
- /**
3
- * @module git_utils
4
- * @description Provides utility functions for Git operations and commit message generation.
5
- */
6
- var __importDefault = (this && this.__importDefault) || function (mod) {
7
- return (mod && mod.__esModule) ? mod : { "default": mod };
8
- };
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.generateCommitMessagePrompt = exports.readCommitlintConfig = exports.findCommitlintConfig = exports.getCurrentBranchName = exports.getDefaultBranchName = exports.getGitDiff = void 0;
11
- const child_process_1 = require("child_process");
12
- const readline_1 = __importDefault(require("readline"));
13
- const fs_1 = __importDefault(require("fs"));
14
- const path_1 = __importDefault(require("path"));
15
- const COMMITLINT_CONFIG_FILES = [
16
- '.commitlintrc',
17
- '.commitlintrc.json',
18
- '.commitlintrc.yaml',
19
- '.commitlintrc.yml',
20
- '.commitlintrc.js',
21
- '.commitlintrc.cjs',
22
- '.commitlintrc.mjs',
23
- '.commitlintrc.ts',
24
- '.commitlintrc.cts',
25
- 'commitlint.config.js',
26
- 'commitlint.config.cjs',
27
- 'commitlint.config.mjs',
28
- 'commitlint.config.ts',
29
- 'commitlint.config.cts',
30
- ];
31
- /**
32
- * Prompts the user with a question and returns their answer.
33
- * @param {string} question - The question to ask the user.
34
- * @returns {Promise<string>} A promise that resolves with the user's answer.
35
- */
36
- const askQuestion = (question) => {
37
- const rl = readline_1.default.createInterface({
38
- input: process.stdin,
39
- output: process.stdout,
40
- });
41
- return new Promise((resolve) => rl.question(question, (answer) => {
42
- rl.close();
43
- resolve(answer);
44
- }));
45
- };
46
- /**
47
- * Retrieves the Git diff between the current branch and the default branch.
48
- * @returns {Promise<string>} A promise that resolves with the indented Git diff.
49
- * @throws {Error} If there's an error getting the Git diff.
50
- */
51
- const getGitDiff = async () => {
52
- try {
53
- const defaultBranchName = await (0, exports.getDefaultBranchName)();
54
- const gitDiff = (0, child_process_1.execSync)(`git diff ${defaultBranchName} --`).toString().trim();
55
- // Indent each line by four spaces
56
- const indentedDiff = gitDiff
57
- .split('\n')
58
- .map((line) => ` ${line}`)
59
- .join('\n');
60
- return indentedDiff;
61
- }
62
- catch (error) {
63
- console.error('Error getting git diff:', error.message);
64
- process.exit(1);
65
- }
66
- };
67
- exports.getGitDiff = getGitDiff;
68
- /**
69
- * Determines the default branch name for the Git repository.
70
- * @returns {Promise<string>} A promise that resolves with the default branch name.
71
- * @throws {Error} If the default branch cannot be determined.
72
- */
73
- const getDefaultBranchName = async () => {
74
- let defaultBranchName = (0, child_process_1.execSync)("git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@'")
75
- .toString()
76
- .trim();
77
- if (defaultBranchName === '') {
78
- console.error('Could not determine the default branch.');
79
- const answer = await askQuestion('Do you want to run `git remote set-head origin -a`? [Y/n] ');
80
- if (answer.toLowerCase() === 'y' || answer === '') {
81
- (0, child_process_1.execSync)('git remote set-head origin -a');
82
- defaultBranchName = await (0, exports.getDefaultBranchName)();
83
- if (defaultBranchName === '') {
84
- throw new Error('Error: Could not determine the default branch (main or master)');
85
- }
86
- }
87
- else {
88
- throw new Error('Operation aborted by user.');
89
- }
90
- }
91
- return defaultBranchName;
92
- };
93
- exports.getDefaultBranchName = getDefaultBranchName;
94
- /**
95
- * Retrieves the name of the current Git branch.
96
- * @returns {string} The name of the current Git branch.
97
- * @throws {Error} If there's an error getting the current branch name.
98
- */
99
- const getCurrentBranchName = () => {
100
- try {
101
- return (0, child_process_1.execSync)('git rev-parse --abbrev-ref HEAD').toString().trim();
102
- }
103
- catch (error) {
104
- console.error('Error getting current branch name:', error.message);
105
- process.exit(1);
106
- }
107
- };
108
- exports.getCurrentBranchName = getCurrentBranchName;
109
- /**
110
- * Checks if a commitlint configuration file exists in the project.
111
- * @returns {string | null} The path to the commitlint config file if found, null otherwise.
112
- */
113
- const findCommitlintConfig = () => {
114
- for (const configFile of COMMITLINT_CONFIG_FILES) {
115
- if (fs_1.default.existsSync(configFile)) {
116
- return configFile;
117
- }
118
- }
119
- return null;
120
- };
121
- exports.findCommitlintConfig = findCommitlintConfig;
122
- /**
123
- * Reads and parses the commitlint configuration file.
124
- * @param {string} configPath - Path to the commitlint config file.
125
- * @returns {object | null} The parsed configuration object or null if unable to parse.
126
- */
127
- const readCommitlintConfig = (configPath) => {
128
- try {
129
- const ext = path_1.default.extname(configPath);
130
- if (['.js', '.cjs', '.mjs', '.ts', '.cts'].includes(ext)) {
131
- // For JavaScript/TypeScript config files, we can't safely require them
132
- // as they might have dependencies or complex configurations
133
- return null;
134
- }
135
- if (['.json', '', '.yaml', '.yml'].includes(ext)) {
136
- const content = fs_1.default.readFileSync(configPath, 'utf-8');
137
- if (ext === '.json' || ext === '') {
138
- return JSON.parse(content);
139
- }
140
- // For YAML files, we'll just return the raw content as a string
141
- return { config: content };
142
- }
143
- return null;
144
- }
145
- catch (error) {
146
- console.error('Error reading commitlint config:', error.message);
147
- return null;
148
- }
149
- };
150
- exports.readCommitlintConfig = readCommitlintConfig;
151
- /**
152
- * Generates a prompt for creating a commit message based on a Git diff.
153
- * @param {string} diff - The Git diff to base the commit message on.
154
- * @returns {string} A prompt string for generating a commit message.
155
- */
156
- const generateCommitMessagePrompt = (diff) => {
157
- // Check if commitlint is configured
158
- const commitlintConfig = (0, exports.findCommitlintConfig)();
159
- let configInfo = '';
160
- if (commitlintConfig) {
161
- const config = (0, exports.readCommitlintConfig)(commitlintConfig);
162
- if (config) {
163
- configInfo = `\nFound commitlint configuration at ${commitlintConfig}:
164
- \`\`\`json
165
- ${JSON.stringify(config, null, 2)}
166
- \`\`\`
167
- Please ensure the commit message follows any additional rules specified in this configuration.
168
- `;
169
- }
170
- }
171
- return `Generate a conventional commit message following the Conventional Commits specification (www.conventionalcommits.org).${configInfo}
172
-
173
- The commit message should follow this format:
174
- <type>[optional scope]: <description>
175
-
176
- [optional body]
177
-
178
- [optional footer(s)]
179
-
180
- Types must be one of:
181
- 1. revert: Reverts a previous commit
182
- 2. feat: A new feature
183
- 3. fix: A bug fix
184
- 4. refactor: A code change that neither fixes a bug nor adds a feature
185
- 5. perf: A code change that improves performance
186
- 6. build: Changes that affect the build system or external dependencies or updates to versions of dependencies or version bumps
187
- 7. test: Adding missing tests or correcting existing tests
188
- 8. docs: Documentation only changes
189
- 9. style: Changes that do not affect the meaning of the code
190
- 10. ci: Changes to our CI configuration files and scripts
191
- 11. chore: Other changes that don't modify src or test files
192
-
193
- Use the order of types as an order of precedence for the commit message if there are multiple types in one commit.
194
-
195
- The scope should be the part of the codebase affected.
196
- The description should be imperative, present tense, and not capitalized.
197
- Breaking changes should be indicated by "!" before the ":" or by "BREAKING CHANGE:" in the footer.
198
-
199
- Do not add any commentary or context to the message other than the commit message itself.
200
-
201
- Here is an example of a valid conventional commit message:
202
-
203
- \`\`\`plaintext
204
- feat(api): add new endpoint for user authentication
205
-
206
- - Implement JWT token generation
207
- - Add password hashing with bcrypt
208
- - Create user validation middleware
209
-
210
- BREAKING CHANGE: 'auth' endpoint now requires API key in headers
211
- \`\`\`
212
-
213
- Here is the diff to help you write the commit message:
214
-
215
- ${diff}`;
216
- };
217
- exports.generateCommitMessagePrompt = generateCommitMessagePrompt;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getModel = void 0;
4
- const getModel = () => {
5
- return process.env.CLOVING_MODEL || 'claude:claude-3-5-sonnet-20240620';
6
- };
7
- exports.getModel = getModel;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getModel = void 0;
4
- const getModel = () => {
5
- return process.env.CLOVING_MODEL || 'claude:claude-3-5-sonnet-20240620';
6
- };
7
- exports.getModel = getModel;
@@ -1,333 +0,0 @@
1
- "use strict";
2
- /**
3
- * @module prompt_utils
4
- * @description Provides utility functions for generating prompts, handling files, and running commands.
5
- */
6
- var __importDefault = (this && this.__importDefault) || function (mod) {
7
- return (mod && mod.__esModule) ? mod : { "default": mod };
8
- };
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.addFileOrDirectoryToContext = exports.readFileContent = exports.fetchModels = exports.runCommand = exports.generateFileList = exports.getAllFilesInDirectory = exports.checkForSpecialFiles = exports.collectSpecialFileContents = exports.generateReviewPrompt = exports.generateShellPrompt = exports.generateDocsPrompt = exports.generateCodegenPrompt = exports.getPackageVersion = void 0;
11
- const fs_1 = __importDefault(require("fs"));
12
- const path_1 = __importDefault(require("path"));
13
- const child_process_1 = require("child_process");
14
- const isbinaryfile_1 = require("isbinaryfile");
15
- const colors_1 = __importDefault(require("colors"));
16
- const path_2 = require("path");
17
- const config_utils_1 = require("./config_utils");
18
- const prompts_1 = require("./prompts");
19
- /**
20
- * Retrieves the package version from package.json.
21
- * @returns {string} The version of the package.
22
- */
23
- const getPackageVersion = () => {
24
- const packagePath = (0, path_2.join)(__dirname, '..', 'package.json');
25
- const packageJson = JSON.parse(fs_1.default.readFileSync(packagePath, 'utf8'));
26
- return packageJson.version;
27
- };
28
- exports.getPackageVersion = getPackageVersion;
29
- /**
30
- * Renders a context file as a string.
31
- * @param {Record<string, unknown> | string} contextFile - The context file to render.
32
- * @returns {string} The rendered string representation of the context file.
33
- */
34
- const renderAsString = (contextFile) => {
35
- if (typeof contextFile === 'string') {
36
- return contextFile;
37
- }
38
- return JSON.stringify(contextFile, null, 2);
39
- };
40
- /**
41
- * Generates a prompt for code generation based on context files and special files.
42
- * @param {Record<string, string>} contextFilesContent - The content of context files.
43
- * @returns {string} The generated prompt for code generation.
44
- */
45
- const generateCodegenPrompt = (contextFilesContent) => {
46
- const specialFileContents = (0, exports.collectSpecialFileContents)();
47
- // detect if specialFileContents[file] is a string or an object
48
- const specialFiles = Object.keys(specialFileContents)
49
- .map((file) => `### Contents of **${file}**\n\n\`\`\`\n${renderAsString(specialFileContents[file])}\n\`\`\`\n\n`)
50
- .join('\n');
51
- const contextFileContents = Object.keys(contextFilesContent)
52
- .map((file) => `### Contents of **${file}**\n\n\`\`\`\n${contextFilesContent[file]}\n\`\`\`\n\n`)
53
- .join('\n');
54
- const prompt = `${prompts_1.CODEGEN_INSTRUCTIONS}
55
-
56
- ## Description of App
57
-
58
- \`\`\`json
59
- ${JSON.stringify((0, config_utils_1.getNearestClovingConfig)().config, null, 2)}
60
- \`\`\`
61
-
62
- ## Special Files
63
-
64
- ${specialFiles.length > 0 ? specialFiles : 'No special files provided.'}
65
-
66
- ## Context Files
67
-
68
- ${contextFileContents.length > 0 ? contextFileContents : 'No context files provided.'}
69
-
70
- ## Directory structure
71
-
72
- ${Object.keys(contextFilesContent).join('\n')}
73
-
74
- ${prompts_1.CODEGEN_INSTRUCTIONS}
75
-
76
- ${prompts_1.CODEGEN_EXAMPLES}`;
77
- return prompt;
78
- };
79
- exports.generateCodegenPrompt = generateCodegenPrompt;
80
- /**
81
- * Generates a prompt for documentation generation based on context files and special files.
82
- * @param {Record<string, string>} contextFilesContent - The content of context files.
83
- * @returns {string} The generated prompt for documentation generation.
84
- */
85
- const generateDocsPrompt = (contextFilesContent) => {
86
- const specialFileContents = (0, exports.collectSpecialFileContents)();
87
- const specialFiles = Object.keys(specialFileContents)
88
- .map((file) => `### Contents of **${file}**\n\n\`\`\`\n${renderAsString(specialFileContents[file])}\n\`\`\`\n\n`)
89
- .join('\n');
90
- const contextFileContents = Object.keys(contextFilesContent)
91
- .map((file) => `### Contents of **${file}**\n\n\`\`\`\n${contextFilesContent[file]}\n\`\`\`\n\n`)
92
- .join('\n');
93
- const prompt = `${prompts_1.DOCS_INSTRUCTIONS}
94
-
95
- ${prompts_1.CODEGEN_INSTRUCTIONS}
96
-
97
- ${prompts_1.CODEGEN_EXAMPLES}
98
-
99
- ## Description of App
100
-
101
- \`\`\`json
102
- ${JSON.stringify((0, config_utils_1.getNearestClovingConfig)().config, null, 2)}
103
- \`\`\`
104
-
105
- ## Special Files
106
-
107
- ${specialFiles.length > 0 ? specialFiles : 'No special files provided.'}
108
-
109
- ## Context Files
110
-
111
- ${contextFileContents.length > 0 ? contextFileContents : 'No context files provided.'}
112
-
113
- ## Directory structure
114
-
115
- ${Object.keys(contextFilesContent).join('\n')}
116
-
117
- ${prompts_1.DOCS_INSTRUCTIONS}`;
118
- return prompt;
119
- };
120
- exports.generateDocsPrompt = generateDocsPrompt;
121
- /**
122
- * Generates a prompt for shell commands based on the current shell and OS.
123
- * @returns {string} The generated prompt for shell commands.
124
- */
125
- const generateShellPrompt = () => {
126
- const shell = (0, child_process_1.execSync)('echo $SHELL').toString().trim();
127
- const os = (0, child_process_1.execSync)('echo $OSTYPE').toString().trim();
128
- return `${prompts_1.SHELL_INSTRUCTIONS}\n\n## Context\n\nShell: ${shell}\n\nOS: ${os}`;
129
- };
130
- exports.generateShellPrompt = generateShellPrompt;
131
- const generateReviewPrompt = (options, contextFiles) => {
132
- let prompt = `${prompts_1.REVIEW_INSTRUCTIONS}`;
133
- if (options.files) {
134
- const contextFileContents = Object.keys(contextFiles)
135
- .map((file) => `### Contents of ${file}\n\n${contextFiles[file]}\n\n`)
136
- .join('\n');
137
- prompt += `### Description of App
138
-
139
- ${JSON.stringify((0, config_utils_1.getNearestClovingConfig)().config, null, 2)}
140
-
141
- ${contextFileContents}
142
-
143
- ### Request
144
-
145
- I would like you to explain the code and document a description of it.
146
- List any bugs in the new code as well as recommended fixes for those bugs with code examples.
147
- Format the output of this code review in Markdown format.`;
148
- }
149
- else {
150
- prompt += `### Request
151
-
152
- Do not use any data from the example response structure, only use the structure.
153
- I would like you to explain why these change are being made and document a description of these changes.
154
- Also list any bugs in the new code as well as recommended fixes for those bugs with code examples.
155
- Format the output of this code review in Markdown format.`;
156
- }
157
- return prompt;
158
- };
159
- exports.generateReviewPrompt = generateReviewPrompt;
160
- /**
161
- * Collects the contents of special files.
162
- * @returns {Record<string, string | Record<string, unknown>>} An object containing the contents of special files.
163
- */
164
- const collectSpecialFileContents = () => {
165
- const specialFileContents = {};
166
- for (const file of prompts_1.SPECIAL_FILES) {
167
- if (fs_1.default.existsSync(file)) {
168
- try {
169
- const content = fs_1.default.readFileSync(file, 'utf-8');
170
- specialFileContents[file] = file.endsWith('.json') ? JSON.parse(content) : content;
171
- }
172
- catch (error) {
173
- specialFileContents[file] = fs_1.default.readFileSync(file, 'utf-8');
174
- }
175
- }
176
- }
177
- return specialFileContents;
178
- };
179
- exports.collectSpecialFileContents = collectSpecialFileContents;
180
- /**
181
- * Checks if any special files exist in the current directory.
182
- * @returns {boolean} True if any special files exist, false otherwise.
183
- */
184
- const checkForSpecialFiles = () => prompts_1.SPECIAL_FILES.some((file) => fs_1.default.existsSync(file));
185
- exports.checkForSpecialFiles = checkForSpecialFiles;
186
- /**
187
- * Recursively gets all non-binary files in a directory.
188
- * @param {string} dir - The directory to search.
189
- * @returns {Promise<string[]>} A promise that resolves with an array of file paths.
190
- */
191
- const getAllFilesInDirectory = async (dir) => {
192
- const subdirs = await fs_1.default.promises.readdir(dir);
193
- const files = await Promise.all(subdirs.map(async (subdir) => {
194
- const res = path_1.default.resolve(dir, subdir);
195
- if (subdir === 'node_modules' || subdir === '.git' || subdir === '.DS_Store') {
196
- return [];
197
- }
198
- const stat = await fs_1.default.promises.stat(res);
199
- if (stat.isDirectory()) {
200
- return (0, exports.getAllFilesInDirectory)(res);
201
- }
202
- else {
203
- const isBinary = await (0, isbinaryfile_1.isBinaryFile)(res);
204
- return isBinary ? [] : res;
205
- }
206
- }));
207
- return files.flat();
208
- };
209
- exports.getAllFilesInDirectory = getAllFilesInDirectory;
210
- /**
211
- * Generates a list of files in the current directory and its subdirectories.
212
- * @returns {Promise<string[]>} A promise that resolves with an array of file paths.
213
- */
214
- const generateFileList = async () => {
215
- try {
216
- const lsOutput = await (0, exports.runCommand)('ls', []);
217
- const findOutput = await (0, exports.runCommand)('find', ['.']);
218
- const cleanedFindOutput = findOutput.map((file) => file.startsWith('./') ? file.slice(2) : file);
219
- const files = [...lsOutput, ...cleanedFindOutput];
220
- const uniqueFiles = Array.from(new Set(files));
221
- return uniqueFiles.filter((file) => file && !file.includes('.git') && !file.includes('node_modules') && !file.includes('tmp'));
222
- }
223
- catch (error) {
224
- console.error('Error generating file list:', error.message);
225
- return [];
226
- }
227
- };
228
- exports.generateFileList = generateFileList;
229
- /**
230
- * Runs a shell command and returns its output.
231
- * @param {string} command - The command to run.
232
- * @param {string[]} args - The arguments for the command.
233
- * @returns {Promise<string[]>} A promise that resolves with an array of output lines.
234
- */
235
- const runCommand = (command, args) => {
236
- return new Promise((resolve, reject) => {
237
- const process = (0, child_process_1.spawn)(command, args);
238
- const output = [];
239
- process.stdout.on('data', (data) => {
240
- output.push(data.toString());
241
- });
242
- process.stderr.on('data', (data) => {
243
- console.error(`stderr: ${data}`);
244
- });
245
- process.on('close', (code) => {
246
- if (code !== 0) {
247
- reject(new Error(`${command} process exited with code ${code}`));
248
- }
249
- else {
250
- resolve(output.join('').trim().split('\n'));
251
- }
252
- });
253
- });
254
- };
255
- exports.runCommand = runCommand;
256
- /**
257
- * Fetches available models using the 'cloving models' command.
258
- * @returns {Promise<string[]>} A promise that resolves with an array of available models.
259
- */
260
- const fetchModels = async () => {
261
- try {
262
- const modelsOutput = await (0, exports.runCommand)('cloving', ['models']);
263
- return modelsOutput;
264
- }
265
- catch (error) {
266
- console.error('Error fetching models:', error.message);
267
- return [];
268
- }
269
- };
270
- exports.fetchModels = fetchModels;
271
- /**
272
- * Reads the content of a file.
273
- * @param {string} file - The path to the file.
274
- * @returns {string} The content of the file.
275
- */
276
- const readFileContent = (file) => {
277
- try {
278
- return fs_1.default.readFileSync(file, 'utf-8');
279
- }
280
- catch (error) {
281
- console.error('Error reading file content:', error.message);
282
- return '';
283
- }
284
- };
285
- exports.readFileContent = readFileContent;
286
- const addFileToContext = async (filePath, contextFiles, baseDir) => {
287
- const relativePath = path_1.default.relative(baseDir, filePath);
288
- if (await (0, isbinaryfile_1.isBinaryFile)(filePath)) {
289
- return;
290
- }
291
- const content = await fs_1.default.promises.readFile(filePath, 'utf-8');
292
- contextFiles[relativePath] = content;
293
- };
294
- const addDirectoryToContext = async (dirPath, contextFiles, baseDir) => {
295
- const entries = await fs_1.default.promises.readdir(dirPath, { withFileTypes: true });
296
- for (const entry of entries) {
297
- const fullPath = path_1.default.join(dirPath, entry.name);
298
- if (entry.isDirectory()) {
299
- if (entry.name !== 'node_modules' && entry.name !== '.git') {
300
- await addDirectoryToContext(fullPath, contextFiles, baseDir);
301
- }
302
- }
303
- else {
304
- await addFileToContext(fullPath, contextFiles, baseDir);
305
- }
306
- }
307
- };
308
- /**
309
- * Adds a file or directory to the context.
310
- * @param {string} contextFile - The path to the file or directory to add.
311
- * @param {Record<string, string>} contextFiles - The current context files.
312
- * @param {Record<string, any>} options - Additional options.
313
- * @returns {Promise<Record<string, string>>} A promise that resolves with the updated context files.
314
- */
315
- const addFileOrDirectoryToContext = async (contextFile, contextFiles, options) => {
316
- const filePath = path_1.default.resolve(contextFile);
317
- const baseDir = process.cwd();
318
- try {
319
- const stats = await fs_1.default.promises.stat(filePath);
320
- if (stats.isDirectory()) {
321
- await addDirectoryToContext(filePath, contextFiles, baseDir);
322
- }
323
- else if (stats.isFile()) {
324
- await addFileToContext(filePath, contextFiles, baseDir);
325
- }
326
- }
327
- catch (error) {
328
- console.error(colors_1.default.red(`${colors_1.default.bold('Error')}: File or directory "${contextFile}" does not exist`));
329
- process.exit(1);
330
- }
331
- return contextFiles;
332
- };
333
- exports.addFileOrDirectoryToContext = addFileOrDirectoryToContext;
@@ -1,5 +0,0 @@
1
- ## Code Generation Failed
2
-
3
- Some of the provided code blocks could not be applied, please match the existing code with a few more lines of context and make sure it is a character for character exact match. Never use "rest of the existing code" or "rest of the code" in your response, instead break the code block into smaller blocks.
4
-
5
- ## Details
@@ -1,82 +0,0 @@
1
- ### Example 1: Changing a Variable
2
-
3
- ```typescript
4
- <<<<<<< CURRENT path/to/file.ts
5
- const myVariable = 'exact'
6
- const oldVariable = 1
7
- =======
8
- const myVariable = 'exact'
9
- const newVariable = 2
10
- >>>>>>> NEW
11
- ```
12
-
13
- ### Example 2: Create a New File
14
-
15
- ```ruby
16
- <<<<<<< CURRENT path/to/newfile.rb
17
- =======
18
- def new_function
19
- puts 'Hello, world!'
20
- end
21
- >>>>>>> NEW
22
- ```
23
-
24
- ### Example 3: Moving a Function
25
-
26
- Removing it from path/to/file.py
27
-
28
- ```python
29
- <<<<<<< CURRENT path/to/file.py
30
- def old_function():
31
- return 'Old function'
32
- =======
33
- >>>>>>> NEW
34
- ```
35
-
36
- Adding it to path/to/newfile.py
37
-
38
- ```python
39
- <<<<<<< CURRENT path/to/newfile.py
40
- def existing_function():
41
- return 'Existing function'
42
-
43
- =======
44
- def existing_function():
45
- return 'Existing function'
46
-
47
- def old_function():
48
- return 'Old function'
49
- >>>>>>> NEW
50
- ```
51
-
52
- ### Example 4: Removing a Function
53
-
54
- ```java
55
- <<<<<<< CURRENT path/to/file.java
56
- public void oldFunction() {
57
- System.out.println("Old function")
58
- }
59
- =======
60
- >>>>>>> NEW
61
- ```
62
-
63
- ### Example 5: Replace a file
64
-
65
- This will replace the entire contents of **path/to/file.rb** with the new content:
66
-
67
- ```ruby
68
- <<<<<<< CURRENT path/to/file.rb
69
- =======
70
- def new_function
71
- puts 'Hello, world!'
72
- end
73
- >>>>>>> NEW
74
- ```
75
-
76
- ## Don't Invent Code That Isn't Provided in Context
77
-
78
- A file might be referenced by just the file name without the full path, but the code must be provided in the *Context Files* section.
79
-
80
- Unless you believe you are creating a whole new file, never ever under any circumstances make up code in the CURRENT block that was not provided to you in the *Context Files* section.
81
-
82
- If a required file hasn't been provided in the *Context Files* section, stop everything and ask the user to provide it in the context by adding -f path/to/file to the command or add path/to/file in the interactive chat.