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,128 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MistralAdapter = void 0;
4
- /**
5
- * MistralAdapter class
6
- * Implements the Adapter interface for Mistral AI models.
7
- */
8
- class MistralAdapter {
9
- /**
10
- * Prints all supported models to the console
11
- */
12
- static listSupportedModels() {
13
- MistralAdapter.supportedModels.forEach((model) => {
14
- console.log(model);
15
- });
16
- }
17
- /**
18
- * Constructor
19
- * @param model - The Mistral AI model to use
20
- */
21
- constructor(model) {
22
- this.model = model;
23
- }
24
- /**
25
- * @returns The Mistral AI API endpoint
26
- */
27
- getEndpoint() {
28
- return 'https://api.mistral.ai/v1/chat/completions';
29
- }
30
- /**
31
- * @param apiKey - The API key for authentication
32
- * @returns Headers for the API request
33
- */
34
- getHeaders(apiKey) {
35
- return {
36
- Authorization: `Bearer ${apiKey}`,
37
- 'Content-Type': 'application/json',
38
- };
39
- }
40
- /**
41
- * Prepares the payload for the API request
42
- * @param request - The GPT request object
43
- * @param stream - Whether to use streaming mode
44
- * @returns The formatted payload
45
- */
46
- getPayload(request, stream = false) {
47
- return {
48
- model: this.model.replace(':', '-'),
49
- messages: request.messages && request.messages.length > 0
50
- ? request.messages
51
- : [{ role: 'user', content: request.prompt }],
52
- max_tokens: request.maxTokens,
53
- temperature: request.temperature || 0.2,
54
- stream,
55
- };
56
- }
57
- /**
58
- * Extracts the response content from the API data
59
- * @param data - The API response data
60
- * @returns The extracted response content
61
- */
62
- extractResponse(data) {
63
- return data.choices[0].message.content;
64
- }
65
- // data example:
66
- // {
67
- // id: 'chatcmpl-9tL477A98d54qvVQqJT010bm8BLJl',
68
- // object: 'chat.completion.chunk',
69
- // created: 1722976043,
70
- // model: 'gpt-4o-2024-05-13',
71
- // system_fingerprint: 'fp_3aa7262c27',
72
- // choices: [
73
- // {
74
- // "index": 0,
75
- // "delta": {
76
- // "content": " basic"
77
- // },
78
- // "logprobs": null,
79
- // "finish_reason": null
80
- // }
81
- // ]
82
- // }
83
- /**
84
- * Converts streaming data to OpenAIStreamChunk format
85
- * @param data - The streaming data string
86
- * @returns Parsed OpenAIStreamChunk or null if parsing fails
87
- */
88
- convertStream(data) {
89
- let beginningChar = 0;
90
- let lastChar = 0;
91
- while (lastChar < data.length) {
92
- try {
93
- let remainingString = data.slice(beginningChar, lastChar);
94
- // Strip any leading characters until we encounter the first '{' in this block
95
- const firstBraceIndex = remainingString.indexOf('{');
96
- if (firstBraceIndex > -1) {
97
- remainingString = remainingString.slice(firstBraceIndex);
98
- }
99
- const parsedObject = JSON.parse(remainingString);
100
- const output = parsedObject?.choices[0]?.delta?.content || '';
101
- return {
102
- output,
103
- lastChar,
104
- };
105
- }
106
- catch (error) {
107
- // Incrementally increase the size of the JSON string to parse
108
- lastChar += 1;
109
- }
110
- }
111
- return null;
112
- }
113
- }
114
- exports.MistralAdapter = MistralAdapter;
115
- /**
116
- * List of supported Mistral AI models
117
- */
118
- MistralAdapter.supportedModels = [
119
- 'mistral:mistral:embed',
120
- 'mistral:mistral:tiny-latest',
121
- 'mistral:mistral:small-latest',
122
- 'mistral:mistral:medium-latest',
123
- 'mistral:mistral:large-latest',
124
- 'mistral:open-mistral:7b',
125
- 'mistral:open-mixtral:8x7b',
126
- 'mistral:open-mixtral:8x22b',
127
- 'mistral:codestral:latest',
128
- ];
@@ -1,128 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.OllamaAdapter = void 0;
7
- const axios_1 = __importDefault(require("axios"));
8
- /**
9
- * Adapter for interacting with the Ollama API.
10
- */
11
- class OllamaAdapter {
12
- /**
13
- * Constructor to initialize the OllamaAdapter with a specific model.
14
- * @param model - The model to be used by the adapter.
15
- */
16
- constructor(model) {
17
- this.model = model;
18
- }
19
- /**
20
- * Fetches and lists supported models from the Ollama API.
21
- */
22
- static async listSupportedModels() {
23
- try {
24
- const endpoint = 'http://localhost:11434/api/tags';
25
- const headers = {
26
- 'Content-Type': 'application/json',
27
- };
28
- const response = await axios_1.default.get(endpoint, { headers });
29
- const data = response.data;
30
- if (data && Array.isArray(data.models)) {
31
- OllamaAdapter.supportedModels = data.models.map((model) => `ollama:${model.name}`);
32
- OllamaAdapter.supportedModels.forEach((model) => {
33
- console.log(model);
34
- });
35
- }
36
- else {
37
- console.error('Unexpected response structure:', data);
38
- }
39
- }
40
- catch (error) {
41
- // do nothing, no ollama server running
42
- }
43
- }
44
- /**
45
- * Returns the endpoint URL for generating responses.
46
- * @returns The endpoint URL as a string.
47
- */
48
- getEndpoint() {
49
- return `http://localhost:11434/api/generate`;
50
- }
51
- /**
52
- * Returns the headers required for making API requests.
53
- * @param apiKey - The API key for authorization.
54
- * @returns An object containing the headers.
55
- */
56
- getHeaders(apiKey) {
57
- return {
58
- Authorization: `Bearer ${apiKey}`,
59
- 'Content-Type': 'application/json',
60
- };
61
- }
62
- /**
63
- * Constructs the payload for the API request.
64
- * @param request - The GPT request object containing the prompt.
65
- * @param stream - Boolean indicating if the response should be streamed.
66
- * @returns An object containing the payload.
67
- */
68
- getPayload(request, stream = false) {
69
- return {
70
- model: this.model,
71
- prompt: request.prompt,
72
- stream,
73
- };
74
- }
75
- /**
76
- * Extracts the response from the API response data.
77
- * @param data - The response data from the API.
78
- * @returns The extracted response as a string.
79
- * @throws Will throw an error if the response structure is invalid.
80
- */
81
- extractResponse(data) {
82
- try {
83
- if (data && typeof data === 'object' && 'response' in data) {
84
- return data.response;
85
- }
86
- else {
87
- console.error('Unexpected response structure:', data);
88
- throw new Error('Invalid response structure');
89
- }
90
- }
91
- catch (error) {
92
- console.error('Error extracting response:', error);
93
- throw error;
94
- }
95
- }
96
- /**
97
- * Converts a stream of data into an OpenAIStreamChunk.
98
- * @param data - The string data to be converted.
99
- * @returns An OpenAIStreamChunk object or null if conversion fails.
100
- */
101
- convertStream(data) {
102
- let beginningChar = 0;
103
- let lastChar = 0;
104
- while (lastChar < data.length) {
105
- try {
106
- let remainingString = data.slice(beginningChar, lastChar);
107
- // Strip any leading characters until we encounter the first '{' in this block
108
- const firstBraceIndex = remainingString.indexOf('{');
109
- if (firstBraceIndex > -1) {
110
- remainingString = remainingString.slice(firstBraceIndex);
111
- }
112
- const parsedObject = JSON.parse(remainingString);
113
- const output = parsedObject?.response || '';
114
- return {
115
- output,
116
- lastChar,
117
- };
118
- }
119
- catch (error) {
120
- // Incrementally increase the size of the JSON string to parse
121
- lastChar += 1;
122
- }
123
- }
124
- return null;
125
- }
126
- }
127
- exports.OllamaAdapter = OllamaAdapter;
128
- OllamaAdapter.supportedModels = [];
@@ -1,100 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OpenAIAdapter = void 0;
4
- // OpenAIAdapter class implements the Adapter interface
5
- class OpenAIAdapter {
6
- // Method to list supported models
7
- static listSupportedModels() {
8
- OpenAIAdapter.supportedModels.forEach((model) => {
9
- console.log(model);
10
- });
11
- }
12
- // Constructor to initialize the model
13
- constructor(model) {
14
- this.model = model;
15
- }
16
- // Method to get the API endpoint
17
- getEndpoint() {
18
- return `https://api.openai.com/v1/chat/completions`;
19
- }
20
- // Method to get the headers for the API request
21
- getHeaders(apiKey) {
22
- return {
23
- Authorization: `Bearer ${apiKey}`,
24
- 'Content-Type': 'application/json',
25
- };
26
- }
27
- // Method to get the payload for the API request
28
- getPayload(request, stream = false) {
29
- return {
30
- model: this.model.replace(':', '-'),
31
- messages: request.messages && request.messages.length > 0
32
- ? request.messages
33
- : [{ role: 'user', content: request.prompt }],
34
- max_tokens: request.maxTokens,
35
- temperature: request.temperature || 0.2,
36
- stream,
37
- };
38
- }
39
- // Method to extract the response from the API response data
40
- extractResponse(data) {
41
- return data.choices[0].message.content;
42
- }
43
- // Method to convert the stream data into OpenAIStreamChunk format
44
- // data example:
45
- // {
46
- // id: 'chatcmpl-9tL477A98d54qvVQqJT010bm8BLJl',
47
- // object: 'chat.completion.chunk',
48
- // created: 1722976043,
49
- // model: 'gpt-4o-2024-05-13',
50
- // system_fingerprint: 'fp_3aa7262c27',
51
- // choices: [
52
- // {
53
- // "index": 0,
54
- // "delta": {
55
- // "content": " basic"
56
- // },
57
- // "logprobs": null,
58
- // "finish_reason": null
59
- // }
60
- // ]
61
- // }
62
- convertStream(data) {
63
- let beginningChar = 0;
64
- let lastChar = 0;
65
- while (lastChar < data.length) {
66
- try {
67
- let remainingString = data.slice(beginningChar, lastChar);
68
- // Strip any leading characters until we encounter the first '{' in this block
69
- const firstBraceIndex = remainingString.indexOf('{');
70
- if (firstBraceIndex > -1) {
71
- remainingString = remainingString.slice(firstBraceIndex);
72
- }
73
- const parsedObject = JSON.parse(remainingString);
74
- const output = parsedObject?.choices[0]?.delta?.content || '';
75
- return {
76
- output,
77
- lastChar,
78
- };
79
- }
80
- catch (error) {
81
- // Incrementally increase the size of the JSON string to parse
82
- lastChar += 1;
83
- }
84
- }
85
- return null;
86
- }
87
- }
88
- exports.OpenAIAdapter = OpenAIAdapter;
89
- // List of supported models
90
- OpenAIAdapter.supportedModels = [
91
- 'openai:gpt:o1-preview',
92
- 'openai:gpt:o1-mini',
93
- 'openai:gpt:4o-2024-08-06',
94
- 'openai:gpt:4o',
95
- 'openai:gpt:4o-mini',
96
- 'openai:gpt:4-turbo',
97
- 'openai:gpt:3.5-turbo',
98
- 'openai:text-embedding:3-large',
99
- // Add more supported models here as needed
100
- ];
@@ -1,192 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const cli_highlight_1 = __importDefault(require("cli-highlight"));
7
- const process_1 = __importDefault(require("process"));
8
- const colors_1 = __importDefault(require("colors"));
9
- const prompts_1 = require("@inquirer/prompts");
10
- const axios_1 = __importDefault(require("axios"));
11
- const claude_1 = require("./adapters/claude");
12
- const openai_1 = require("./adapters/openai");
13
- const mistral_1 = require("./adapters/mistral");
14
- const ollama_1 = require("./adapters/ollama");
15
- const gemini_1 = require("./adapters/gemini");
16
- const azureopenai_1 = require("./adapters/azureopenai");
17
- const string_utils_1 = require("../utils/string_utils");
18
- const config_utils_1 = require("../utils/config_utils");
19
- class ClovingGPT {
20
- constructor(options) {
21
- const { model: partialModel } = options;
22
- const config = (0, config_utils_1.getConfig)(options);
23
- if (!config || !config.models) {
24
- console.log('No cloving configuration found. Please run: cloving config');
25
- process_1.default.exit(1);
26
- }
27
- const primaryModel = (0, config_utils_1.getPrimaryModel)(partialModel);
28
- if (!primaryModel) {
29
- console.log('No AI API models found in the cloving configuration. Please run: cloving config');
30
- process_1.default.exit(1);
31
- }
32
- const { provider, model, config: modelConfig } = primaryModel;
33
- this.apiKey = modelConfig.apiKey;
34
- this.temperature = options.temperature || modelConfig.temperature || 0.2;
35
- this.silent = options.silent || modelConfig.silent || false;
36
- this.stream = options.stream || false;
37
- this.timeout = options.timeout || 60000; // Default timeout of 60 seconds
38
- switch (provider) {
39
- case 'claude':
40
- this.adapter = new claude_1.ClaudeAdapter(model);
41
- break;
42
- case 'openai':
43
- this.adapter = new openai_1.OpenAIAdapter(model);
44
- break;
45
- case 'mistral':
46
- this.adapter = new mistral_1.MistralAdapter(model);
47
- break;
48
- case 'ollama':
49
- this.adapter = new ollama_1.OllamaAdapter(model);
50
- break;
51
- case 'gemini':
52
- this.adapter = new gemini_1.GeminiAdapter(model);
53
- break;
54
- case 'azureopenai':
55
- if (!modelConfig.endpoint) {
56
- throw new Error('Azure OpenAI endpoint not configured');
57
- }
58
- this.adapter = new azureopenai_1.AzureOpenAIAdapter(model, modelConfig.endpoint);
59
- break;
60
- default:
61
- throw new Error(`Unsupported provider: ${provider}`);
62
- }
63
- }
64
- async reviewPrompt(prompt, messages, endpoint) {
65
- if (this.silent)
66
- return prompt;
67
- const fullPrompt = messages
68
- .map((m) => (m.role === 'user' ? `# Task\n\n${m.content}` : m.content))
69
- .join('\n\n');
70
- const tokenCount = Math.ceil(fullPrompt.length / 4).toLocaleString();
71
- const reviewPrompt = await (0, prompts_1.confirm)({
72
- message: `Do you want to review the ~${tokenCount} token prompt before sending it to ${endpoint}?`,
73
- default: true,
74
- });
75
- if (reviewPrompt) {
76
- (0, string_utils_1.parseMarkdownInstructions)(fullPrompt).map((code) => {
77
- if (code.trim().startsWith('```')) {
78
- const lines = code.split('\n');
79
- const language = code.match(/```(\w+)/)?.[1] || 'default';
80
- console.log(lines[0]);
81
- try {
82
- if (language === 'default') {
83
- console.log((0, cli_highlight_1.default)(lines.slice(1, -1).join('\n')));
84
- }
85
- else {
86
- console.log((0, cli_highlight_1.default)(lines.slice(1, -1).join('\n'), { language }));
87
- }
88
- }
89
- catch (error) {
90
- // don't highlight if it fails
91
- console.log(lines.slice(1, -1).join('\n'));
92
- }
93
- console.log(lines.slice(-1)[0]);
94
- }
95
- else {
96
- console.log((0, cli_highlight_1.default)(code, { language: 'markdown' }));
97
- }
98
- });
99
- const confirmPrompt = await (0, prompts_1.confirm)({
100
- message: `Are you sure you want to continue?`,
101
- default: true,
102
- });
103
- if (!confirmPrompt) {
104
- process_1.default.exit(1);
105
- }
106
- }
107
- return prompt;
108
- }
109
- async streamText(request) {
110
- request.stream = true;
111
- request.temperature || (request.temperature = this.temperature);
112
- const endpoint = this.adapter.getEndpoint(this.stream);
113
- const payload = this.adapter.getPayload(request, this.stream);
114
- const headers = this.adapter.getHeaders(this.apiKey);
115
- const reviewedPrompt = await this.reviewPrompt(request.prompt, request.messages || [], endpoint);
116
- if (reviewedPrompt === null) {
117
- throw new Error('Operation cancelled by user');
118
- }
119
- request.prompt = reviewedPrompt;
120
- const maxRetries = 5;
121
- let attempt = 0;
122
- let delay = 1000; // Initial delay of 1 second
123
- while (attempt < maxRetries) {
124
- try {
125
- return await (0, axios_1.default)({
126
- method: 'post',
127
- url: endpoint,
128
- data: payload,
129
- headers: headers,
130
- responseType: 'stream',
131
- timeout: this.timeout,
132
- });
133
- }
134
- catch (err) {
135
- const error = err;
136
- if (error.response && error.response.status === 429) {
137
- attempt++;
138
- const tokenCount = payload.messages
139
- .reduce((acc, message) => acc + Math.ceil(message.content.length / 4), 0)
140
- .toLocaleString();
141
- console.warn(`${colors_1.default.red.bold('ERROR')} Rate limit error for this ${tokenCount} token prompt. Possibly past the token limit for this AI API. Try including fewer code files. Retrying in ${delay / 1000} seconds... (Attempt ${attempt} of ${maxRetries})`);
142
- await new Promise((resolve) => setTimeout(resolve, delay));
143
- delay *= 2; // Exponential backoff
144
- }
145
- else {
146
- throw error;
147
- }
148
- }
149
- }
150
- throw new Error('Max retries exceeded');
151
- }
152
- async generateText(request) {
153
- request.temperature || (request.temperature = this.temperature);
154
- const endpoint = this.adapter.getEndpoint(this.stream);
155
- const payload = this.adapter.getPayload(request, this.stream);
156
- const headers = this.adapter.getHeaders(this.apiKey);
157
- const reviewedPrompt = await this.reviewPrompt(request.prompt, request.messages || [], endpoint);
158
- if (reviewedPrompt === null) {
159
- throw new Error('Operation cancelled by user');
160
- }
161
- request.prompt = reviewedPrompt;
162
- try {
163
- const response = await axios_1.default.post(endpoint, payload, { headers });
164
- return this.adapter.extractResponse(response.data);
165
- }
166
- catch (err) {
167
- const error = err;
168
- let errorMessage = 'An error occurred while communicating with the AI server';
169
- if (error.response) {
170
- // The request was made and the server responded with a status code
171
- // that falls out of the range of 2xx
172
- errorMessage = `Server responded with status ${error.response.status}: ${error.response.statusText}`;
173
- }
174
- else if (error.request) {
175
- // The request was made but no response was received
176
- errorMessage = 'No response received from the server';
177
- }
178
- else {
179
- // Something happened in setting up the request that triggered an Error
180
- errorMessage = error.message || 'Unknown error occurred';
181
- }
182
- console.error(`${colors_1.default.red.bold('ERROR')} ${errorMessage}\n` +
183
- `Endpoint: ${this.adapter.getEndpoint(this.stream)}\n` +
184
- `Details: ${colors_1.default.yellow(JSON.stringify(error.response?.data || {}, null, 2))}\n`);
185
- throw new Error(errorMessage);
186
- }
187
- }
188
- convertStream(data) {
189
- return this.adapter.convertStream(data);
190
- }
191
- }
192
- exports.default = ClovingGPT;
@@ -1,47 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const readline_1 = __importDefault(require("readline"));
7
- const child_process_1 = require("child_process");
8
- const git_utils_1 = require("../utils/git_utils");
9
- const model_utils_1 = require("../utils/model_utils");
10
- const cloving_gpt_1 = __importDefault(require("../cloving_gpt"));
11
- const analyze = async () => {
12
- try {
13
- // Define the prompt for analysis
14
- const gitDiff = await (0, git_utils_1.getGitDiff)();
15
- const model = (0, model_utils_1.getModel)();
16
- const prompt = `Explain why the change is being made and document a description of these changes.
17
- Also list any bugs in the new code as well as recommended fixes for those bugs with code examples.
18
-
19
- ${gitDiff}`;
20
- // Instantiate ClovingGPT and get the analysis
21
- const gpt = new cloving_gpt_1.default();
22
- const analysis = await gpt.generateText({ prompt });
23
- // Print the analysis to the console
24
- console.log(analysis);
25
- // Prompt the user to copy the analysis to the clipboard
26
- const rl = readline_1.default.createInterface({
27
- input: process.stdin,
28
- output: process.stdout
29
- });
30
- rl.question('Do you want to copy the analysis to the clipboard? [Y/n] ', (answer) => {
31
- if (answer.toLowerCase() === 'y' || answer === '') {
32
- try {
33
- (0, child_process_1.execFileSync)('pbcopy', { input: analysis });
34
- console.log('Analysis copied to clipboard');
35
- }
36
- catch (error) {
37
- console.error('Error: pbcopy command not found. Unable to copy to clipboard.');
38
- }
39
- }
40
- rl.close();
41
- });
42
- }
43
- catch (error) {
44
- console.error('Error during analysis:', error.message);
45
- }
46
- };
47
- exports.default = analyze;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const ChatManager_1 = __importDefault(require("../managers/ChatManager"));
7
- const config_utils_1 = require("../utils/config_utils");
8
- const chat = async (options) => {
9
- options.silent = (0, config_utils_1.getConfig)(options).globalSilent || false;
10
- options.stream = true;
11
- const chatManager = new ChatManager_1.default(options);
12
- await chatManager.initialize();
13
- };
14
- exports.default = chat;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = (options) => {
4
- if (options.verbose)
5
- console.log('Verbose mode enabled');
6
- console.log('Checking something...');
7
- };
@@ -1,44 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const fs_1 = __importDefault(require("fs"));
7
- const path_1 = __importDefault(require("path"));
8
- const child_process_1 = require("child_process");
9
- const git_utils_1 = require("../utils/git_utils");
10
- const string_utils_1 = require("../utils/string_utils");
11
- const config_utils_1 = require("../utils/config_utils");
12
- const cloving_gpt_1 = __importDefault(require("../cloving_gpt"));
13
- const generateAndCommitMessage = async (options) => {
14
- options.silent = (0, config_utils_1.getConfig)(options).globalSilent || false;
15
- const gpt = new cloving_gpt_1.default(options);
16
- try {
17
- // Generate the prompt for commit message
18
- const prompt = (0, git_utils_1.generateCommitMessagePrompt)();
19
- // Instantiate ClovingGPT and get the commit message
20
- const rawCommitMessage = await gpt.generateText({ prompt });
21
- // Clean the commit message using extractMarkdown
22
- const commitMessage = (0, string_utils_1.extractMarkdown)(rawCommitMessage);
23
- // Write the commit message to a temporary file
24
- const tempCommitFilePath = path_1.default.join('.git', 'SUGGESTED_COMMIT_EDITMSG');
25
- fs_1.default.writeFileSync(tempCommitFilePath, commitMessage);
26
- // Commit the changes using the generated commit message
27
- try {
28
- (0, child_process_1.execFileSync)('git', ['commit', '-a', '--edit', '--file', tempCommitFilePath], { stdio: 'inherit' });
29
- }
30
- catch (commitError) {
31
- // If commit is canceled (non-zero exit), handle it here
32
- console.log('Commit was canceled or failed.');
33
- }
34
- // Remove the temporary file using fs
35
- fs_1.default.unlink(tempCommitFilePath, (err) => {
36
- if (err)
37
- throw err;
38
- });
39
- }
40
- catch (error) {
41
- console.error('Could not generate commit message');
42
- }
43
- };
44
- exports.default = generateAndCommitMessage;