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,95 +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 inquirer_1 = __importDefault(require("inquirer"));
7
- const cli_highlight_1 = __importDefault(require("cli-highlight"));
8
- const child_process_1 = require("child_process");
9
- const string_utils_1 = require("../../utils/string_utils");
10
- const command_utils_1 = require("../../utils/command_utils");
11
- const config_utils_1 = require("../../utils/config_utils");
12
- const cloving_gpt_1 = __importDefault(require("../../cloving_gpt"));
13
- const generateShellPrompt = (prompt) => {
14
- const shell = (0, child_process_1.execSync)('echo $SHELL').toString().trim();
15
- const os = (0, child_process_1.execSync)('echo $OSTYPE').toString().trim();
16
- return `Generate an executable ${shell} script that works on ${os}. Try to make it a single line if possible and as simple and straightforward as possible.
17
-
18
- Do not add any commentary or context to the message other than the commit message itself.
19
-
20
- An example of the output for this should look like the following:
21
-
22
- \`\`\`sh
23
- find . -type f -name "*.ts" -exec sed -i '' 's/old/new/g' {} +
24
- \`\`\`
25
-
26
- Don't use that script, it is only an example.
27
-
28
- Here is the description of what I want the script to do:
29
-
30
- ${prompt}`;
31
- };
32
- const generateExplainShellPrompt = (prompt) => {
33
- return `${prompt}
34
-
35
- Please briefly explain how this shell script works.`;
36
- };
37
- const sh = async (options) => {
38
- let { prompt } = options;
39
- options.silent = (0, config_utils_1.getConfig)(options).globalSilent || false;
40
- const gpt = new cloving_gpt_1.default(options);
41
- try {
42
- if (!prompt) {
43
- prompt = await (0, command_utils_1.promptUser)('What would you like to do: ');
44
- }
45
- // Generate the prompt for commit message
46
- const shellPrompt = generateShellPrompt(prompt);
47
- // Instantiate ClovingGPT and get the commit message
48
- const rawShellCommand = await gpt.generateText({ prompt: shellPrompt });
49
- // Clean the commit message using extractMarkdown
50
- const generatedShell = (0, string_utils_1.extractMarkdown)(rawShellCommand);
51
- // remove #! from the generated shell script
52
- const generatedShellWithoutShebang = generatedShell.replace(/^#!.*?\s/, '');
53
- console.log((0, cli_highlight_1.default)(generatedShellWithoutShebang));
54
- // Inquirer prompt for further actions
55
- const { action } = await inquirer_1.default.prompt([
56
- {
57
- type: 'list',
58
- name: 'action',
59
- message: 'What would you like to do?',
60
- choices: [
61
- { name: 'Execute', value: 'execute' },
62
- { name: 'Revise', value: 'revise' },
63
- { name: 'Explain', value: 'explain' },
64
- { name: 'Copy to Clipboard', value: 'copy' },
65
- { name: 'Cancel', value: 'cancel' },
66
- ],
67
- },
68
- ]);
69
- switch (action) {
70
- case 'execute':
71
- (0, child_process_1.execSync)(generatedShellWithoutShebang, { stdio: 'inherit' });
72
- break;
73
- case 'revise':
74
- // Logic to revise the prompt (not implemented in this example)
75
- console.log('Revise option selected. Implement revision logic here.');
76
- break;
77
- case 'explain':
78
- const explainPrompt = generateExplainShellPrompt(generatedShellWithoutShebang);
79
- const explainShellCommand = await gpt.generateText({ prompt: explainPrompt });
80
- console.log((0, cli_highlight_1.default)(explainShellCommand, { language: 'markdown' }));
81
- break;
82
- case 'copy':
83
- (0, child_process_1.execFileSync)('pbcopy', { input: generatedShellWithoutShebang });
84
- console.log('Script copied to clipboard.');
85
- break;
86
- case 'cancel':
87
- console.log('Operation cancelled.');
88
- break;
89
- }
90
- }
91
- catch (error) {
92
- console.error('Could not generate shell script');
93
- }
94
- };
95
- exports.default = sh;
@@ -1,11 +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 ShellManager_1 = __importDefault(require("../../managers/ShellManager"));
7
- const shell = async (options) => {
8
- const shellManager = new ShellManager_1.default(options);
9
- await shellManager.generateAndHandleShell();
10
- };
11
- exports.default = shell;
@@ -1,11 +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 UnitTestManager_1 = __importDefault(require("../../managers/UnitTestManager"));
7
- const unitTests = async (options) => {
8
- const unitTestManager = new UnitTestManager_1.default(options);
9
- await unitTestManager.generateUnitTests();
10
- };
11
- exports.default = unitTests;
@@ -1,13 +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.init = void 0;
7
- const InitManager_1 = __importDefault(require("../managers/InitManager"));
8
- const init = async (options) => {
9
- const initManager = new InitManager_1.default(options);
10
- await initManager.initialize();
11
- };
12
- exports.init = init;
13
- exports.default = exports.init;
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const claude_1 = require("../cloving_gpt/adapters/claude");
4
- const openai_1 = require("../cloving_gpt/adapters/openai");
5
- const ollama_1 = require("../cloving_gpt/adapters/ollama");
6
- const gemini_1 = require("../cloving_gpt/adapters/gemini");
7
- const mistral_1 = require("../cloving_gpt/adapters/mistral");
8
- const azureopenai_1 = require("../cloving_gpt/adapters/azureopenai");
9
- const listModels = async () => {
10
- claude_1.ClaudeAdapter.listSupportedModels();
11
- gemini_1.GeminiAdapter.listSupportedModels();
12
- mistral_1.MistralAdapter.listSupportedModels();
13
- try {
14
- await ollama_1.OllamaAdapter.listSupportedModels();
15
- }
16
- catch (error) {
17
- // do nothing, no ollama server running
18
- }
19
- openai_1.OpenAIAdapter.listSupportedModels();
20
- azureopenai_1.AzureOpenAIAdapter.listSupportedModels();
21
- };
22
- exports.default = listModels;
@@ -1,88 +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.buildProject = void 0;
7
- const copy_paste_1 = __importDefault(require("copy-paste"));
8
- const fs_1 = require("fs");
9
- const cli_highlight_1 = __importDefault(require("cli-highlight"));
10
- const prompts_1 = require("@inquirer/prompts");
11
- const cloving_gpt_1 = __importDefault(require("../../cloving_gpt"));
12
- const config_utils_1 = require("../../utils/config_utils");
13
- const git_utils_1 = require("../../utils/git_utils");
14
- const string_utils_1 = require("../../utils/string_utils");
15
- const generatePrompt = async (projectName, projectTask, filesList, incompletePlanItem) => {
16
- const context = [];
17
- for (const codeFile of filesList) {
18
- if (await fs_1.promises?.stat(codeFile).then(stat => stat.isFile()).catch(() => false)) {
19
- const fileContents = await fs_1.promises.readFile(codeFile, 'utf-8');
20
- context.push(`### **Contents of ${codeFile}**\n\n${fileContents}\n\n### **End of ${codeFile}**`);
21
- }
22
- }
23
- return `==== begin task description ====
24
- Task name: ${projectName}
25
- Task description: ${projectTask}
26
- ==== end task description ====
27
-
28
- ${context}
29
-
30
- Please implement the following plan item, please include full file path names in all code snippets:
31
-
32
- ${incompletePlanItem}`;
33
- };
34
- const buildProject = async (options) => {
35
- options.silent = (0, config_utils_1.getConfig)(options).globalSilent || false;
36
- const gpt = new cloving_gpt_1.default(options);
37
- const projectName = (0, git_utils_1.getCurrentBranchName)();
38
- const projectConfig = (0, config_utils_1.getProjectConfig)(projectName);
39
- // Filter out completed plan items for selection
40
- const planItems = Object.entries(projectConfig.plan || {});
41
- if (planItems.length === 0) {
42
- console.log('No plan items found.');
43
- process.exit(1);
44
- }
45
- // Use @inquirer/prompts to select a plan item
46
- const selectedPlanItemKey = await (0, prompts_1.select)({
47
- message: 'Select a plan item:',
48
- choices: planItems.map(([key, item]) => ({ name: key, value: key })),
49
- });
50
- const selectedPlanItem = planItems.find(([key]) => key === selectedPlanItemKey);
51
- if (!selectedPlanItem) {
52
- console.log('Selected plan item not found.');
53
- process.exit(1);
54
- }
55
- const planText = `## **${selectedPlanItem[0]}**\n\n${selectedPlanItem[1].details.join('\n\n')}`;
56
- const prompt = await generatePrompt(projectName, projectConfig.task, projectConfig.files || [], planText);
57
- const projectCode = await gpt.generateText({ prompt });
58
- (0, string_utils_1.parseMarkdownInstructions)(projectCode).map(code => {
59
- if (code.trim().startsWith('```')) {
60
- const lines = code.split('\n');
61
- const language = code.match(/```(\w+)/)?.[1] || 'plaintext';
62
- console.log(lines[0]);
63
- try {
64
- console.log((0, cli_highlight_1.default)(lines.slice(1, -1).join('\n'), { language }));
65
- }
66
- catch (error) {
67
- // don't highlight if it fails
68
- console.log(lines.slice(1, -1).join('\n'));
69
- }
70
- console.log(lines.slice(-1)[0]);
71
- }
72
- else {
73
- console.log((0, cli_highlight_1.default)(code, { language: 'markdown' }));
74
- }
75
- });
76
- // Prompt the user to copy the project to the clipboard using @inquirer/prompts
77
- const copyToClipboard = await (0, prompts_1.confirm)({
78
- message: 'Do you want to copy this project to the clipboard?',
79
- default: true,
80
- });
81
- if (copyToClipboard) {
82
- copy_paste_1.default.copy(projectCode, () => {
83
- console.log('Project copied to clipboard');
84
- });
85
- }
86
- };
87
- exports.buildProject = buildProject;
88
- exports.default = exports.buildProject;
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.completeProject = void 0;
4
- const config_utils_1 = require("../../utils/config_utils");
5
- const git_utils_1 = require("../../utils/git_utils");
6
- const completeProject = async (options) => {
7
- options.silent = (0, config_utils_1.getConfig)(options).globalSilent || false;
8
- const projectName = (0, git_utils_1.getCurrentBranchName)();
9
- (0, config_utils_1.removeProjectConfig)(projectName);
10
- };
11
- exports.completeProject = completeProject;
12
- exports.default = exports.completeProject;
@@ -1,82 +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.initProject = void 0;
7
- const fs_1 = require("fs");
8
- const prompts_1 = require("@inquirer/prompts");
9
- const cloving_gpt_1 = __importDefault(require("../../cloving_gpt"));
10
- const config_utils_1 = require("../../utils/config_utils");
11
- const git_utils_1 = require("../../utils/git_utils");
12
- const config_utils_2 = require("../../utils/config_utils");
13
- const generatePrompt = async (projectName, projectTask) => {
14
- const filesList = await (0, config_utils_2.getAllFiles)({}, false);
15
- return `Here is a description of my app:
16
-
17
- ${JSON.stringify((0, config_utils_2.getClovingConfig)(), null, 2)}
18
-
19
- Here is a list of all my source files:
20
-
21
- ==== begin list of source files ====
22
- ${filesList.join("\n")}
23
- ==== end list of source files ====
24
-
25
- Please enumerate all the files in the provided list that are pertinent for this task:
26
-
27
- ==== begin task description ====
28
- Task name: ${projectName}
29
- Task description: ${projectTask}
30
- ==== end task description ====
31
-
32
- Also, list any test files that might be relevant to these files.
33
-
34
- Give me this output format for your answer:
35
-
36
- ## files
37
-
38
- app/models/foo.rb
39
- app/views/baz/bar.html.erb
40
-
41
- ## relevant test files
42
-
43
- test/models/foo_test.rb
44
- test/controllers/baz_controller_test.rb`;
45
- };
46
- const initProject = async (options) => {
47
- options.silent = (0, config_utils_1.getConfig)(options).globalSilent || false;
48
- const gpt = new cloving_gpt_1.default(options);
49
- const defaultBranchName = await (0, git_utils_1.getDefaultBranchName)();
50
- const projectName = (0, git_utils_1.getCurrentBranchName)();
51
- if (projectName === defaultBranchName) {
52
- console.log(`You are on the ${defaultBranchName} branch. Please checkout to a git branch and try again. For example: git branch -b my-new-project`);
53
- process.exit(1);
54
- }
55
- const projectTask = await (0, prompts_1.input)({
56
- message: 'Describe the task you want to accomplish with this project:',
57
- });
58
- const prompt = await generatePrompt(projectName, projectTask);
59
- const contextFiles = await gpt.generateText({ prompt });
60
- // Initialize variables
61
- const lines = [];
62
- const files = [];
63
- // Read each line of the context files
64
- contextFiles.split('\n').forEach((line) => {
65
- if (line.trim()) {
66
- lines.push(line.trim());
67
- }
68
- });
69
- for (const codeFile of lines) {
70
- if (await fs_1.promises?.stat(codeFile).then(stat => stat.isFile()).catch(() => false)) {
71
- files.push(codeFile);
72
- }
73
- }
74
- const projectConfig = {
75
- name: projectName,
76
- task: projectTask,
77
- files
78
- };
79
- (0, config_utils_1.saveProjectConfig)(projectName, projectConfig);
80
- };
81
- exports.initProject = initProject;
82
- exports.default = exports.initProject;
@@ -1,108 +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.planProject = void 0;
7
- const fs_1 = require("fs");
8
- const cloving_gpt_1 = __importDefault(require("../../cloving_gpt"));
9
- const config_utils_1 = require("../../utils/config_utils");
10
- const git_utils_1 = require("../../utils/git_utils");
11
- const parsePlan = (plan) => {
12
- const lines = plan.split('\n').map(line => line.trim());
13
- const structured = {};
14
- let currentTitle = null;
15
- let currentDetails = [];
16
- lines.forEach(line => {
17
- const sectionMatch = line.match(/^#### \d+\. \*\*(.+)\*\*$/);
18
- const detailMatch = line.match(/^-\s*\*\*(.+)\*\*:?\s*(.+)$/);
19
- if (sectionMatch) {
20
- if (currentTitle) {
21
- structured[currentTitle] = {
22
- details: currentDetails
23
- };
24
- }
25
- currentTitle = sectionMatch[1];
26
- currentDetails = [];
27
- }
28
- else if (detailMatch && currentDetails) {
29
- currentDetails.push(`${detailMatch[1]}: ${detailMatch[2]}`);
30
- }
31
- else if (currentDetails && line.startsWith('- ')) {
32
- currentDetails.push(line.replace(/^- /, ''));
33
- }
34
- });
35
- if (currentTitle) {
36
- structured[currentTitle] = {
37
- details: currentDetails
38
- };
39
- }
40
- return structured;
41
- };
42
- const generatePrompt = async (projectName, projectTask, filesList) => {
43
- const context = [];
44
- for (const codeFile of filesList) {
45
- if (await fs_1.promises?.stat(codeFile).then(stat => stat.isFile()).catch(() => false)) {
46
- const fileContents = await fs_1.promises.readFile(codeFile, 'utf-8');
47
- context.push(`### **Contents of ${codeFile}**\n\n${fileContents}\n\n### **End of ${codeFile}**`);
48
- }
49
- }
50
- return `==== begin task description ====
51
- Task name: ${projectName}
52
- Task description: ${projectTask}
53
- ==== end task description ====
54
-
55
- ${context}
56
-
57
- Please create a plan to execute this project. Do not include the Implementation Steps. Only include Plan for Project Execution.
58
-
59
- Here is an example plan. Do not use any of the information from this plan in your response, only use it as a template to create your own plan.
60
-
61
- ==== begin example plan ====
62
- ### Plan for Project Execution
63
-
64
- #### 1. **Understanding Existing Code**
65
- - **Review existing command implementations**: Familiarize yourself with the structure and implementation style of existing commands such as project init and project plan.
66
- - **Identify utility functions**: Note the utility functions being used across the commands, such as those in config_utils, git_utils, and command_utils.
67
-
68
- #### 2. **Design New Commands**
69
- - **Define functionalities**: Clearly outline what each new command should accomplish:
70
- - project build: This command should compile or prepare the project based on the planned actions.
71
- - project complete: This command should finalize the project, possibly including cleanup, documentation, or deployment steps.
72
-
73
- #### 3. **Implement project build**
74
- - **Create build.ts**: Implement the logic for building the project.
75
- - **Generate prompt**: Create a prompt that describes the build process based on the project configuration.
76
- - **Invoke AI Model**: Use an AI model to generate the steps or scripts needed to build the project.
77
- - **Execute Build Steps**: Implement logic to execute the build steps.
78
-
79
- #### 4. **Implement project complete**
80
- - **Create complete.ts**: Implement the logic for completing the project.
81
- - **Generate prompt**: Create a prompt that describes the completion process based on the project configuration.
82
- - **Invoke AI Model**: Use an AI model to generate the steps or scripts needed to complete the project.
83
- - **Execute Completion Steps**: Implement logic to execute the completion steps.
84
-
85
- #### 5. **Integration and Testing**
86
- - **Integrate new commands**: Ensure the new commands are integrated into the existing command structure.
87
- - **Unit tests**: Develop unit tests for the new commands to ensure they function correctly.
88
- - **End-to-end tests**: Run end-to-end tests to validate the entire workflow from project initialization to completion.
89
-
90
- #### 6. **Documentation and Cleanup**
91
- - **Update README**: Document the new commands and their usage.
92
- - **Code cleanup**: Refactor and clean up any redundant code or comments.
93
- ==== end example plan ====`;
94
- };
95
- const planProject = async (options) => {
96
- options.silent = (0, config_utils_1.getConfig)(options).globalSilent || false;
97
- const gpt = new cloving_gpt_1.default(options);
98
- const projectName = (0, git_utils_1.getCurrentBranchName)();
99
- const projectConfig = (0, config_utils_1.getProjectConfig)(projectName);
100
- const prompt = await generatePrompt(projectName, projectConfig.task, projectConfig.files || []);
101
- const projectPlan = await gpt.generateText({ prompt });
102
- const planItems = parsePlan(projectPlan);
103
- console.log(planItems);
104
- projectConfig.plan = planItems;
105
- (0, config_utils_1.saveProjectConfig)(projectName, projectConfig);
106
- };
107
- exports.planProject = planProject;
108
- exports.default = exports.planProject;
@@ -1,11 +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 ProxyManager_1 = __importDefault(require("../managers/ProxyManager"));
7
- const proxy = async (options) => {
8
- const proxyManager = new ProxyManager_1.default(options);
9
- await proxyManager.initialize();
10
- };
11
- exports.default = proxy;
@@ -1,50 +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 string_utils_1 = require("../utils/string_utils");
10
- const cloving_gpt_1 = __importDefault(require("../cloving_gpt"));
11
- const config_utils_1 = require("../utils/config_utils");
12
- const review = async (options) => {
13
- options.silent = (0, config_utils_1.getConfig)(options).globalSilent || false;
14
- const gpt = new cloving_gpt_1.default(options);
15
- try {
16
- // Define the prompt for analysis
17
- const gitDiff = await (0, git_utils_1.getGitDiff)();
18
- const prompt = `Explain why the change is being made and document a description of these changes.
19
- Also list any bugs in the new code as well as recommended fixes for those bugs with code examples.
20
- Format the output of this code review in Markdown format.
21
-
22
- ${gitDiff}`;
23
- // get the analysis
24
- const analysis = await gpt.generateText({ prompt });
25
- const markdown = (0, string_utils_1.extractMarkdown)(analysis);
26
- // Print the analysis to the console
27
- console.log(markdown);
28
- // Prompt the user to copy the analysis to the clipboard
29
- const rl = readline_1.default.createInterface({
30
- input: process.stdin,
31
- output: process.stdout
32
- });
33
- rl.question('Do you want to copy the analysis to the clipboard? [Y/n] ', (answer) => {
34
- if (answer.toLowerCase() === 'y' || answer === '') {
35
- try {
36
- (0, child_process_1.execFileSync)('pbcopy', { input: markdown });
37
- console.log('Analysis copied to clipboard');
38
- }
39
- catch (error) {
40
- console.error('Error: pbcopy command not found. Unable to copy to clipboard.');
41
- }
42
- }
43
- rl.close();
44
- });
45
- }
46
- catch (error) {
47
- console.error('Error during analysis:', error.message);
48
- }
49
- };
50
- exports.default = review;
@@ -1,75 +0,0 @@
1
- "use strict";
2
- /**
3
- * @module tokens
4
- * This module provides functionality to estimate the number of tokens in the context files
5
- * and project description for GPT processing.
6
- */
7
- var __importDefault = (this && this.__importDefault) || function (mod) {
8
- return (mod && mod.__esModule) ? mod : { "default": mod };
9
- };
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- const fs_1 = __importDefault(require("fs"));
12
- const path_1 = __importDefault(require("path"));
13
- const config_utils_1 = require("../utils/config_utils");
14
- const prompt_utils_1 = require("../utils/prompt_utils");
15
- /**
16
- * Calculates the estimated number of tokens for the given context files and project description.
17
- * @param {ClovingGPTOptions} options - The options for token calculation, including file paths.
18
- * @returns {Promise<void>} A promise that resolves when the token estimation is complete.
19
- */
20
- const tokens = async (options) => {
21
- let contextFiles = {};
22
- let files = options.files || '.';
23
- let prompt = '';
24
- /**
25
- * Expands the given file paths to include all files in directories.
26
- * @type {string[]}
27
- */
28
- let expandedFiles = [];
29
- for (const file of files) {
30
- const filePath = path_1.default.resolve(file);
31
- if (await fs_1.default.promises
32
- .stat(filePath)
33
- .then((stat) => stat.isDirectory())
34
- .catch(() => false)) {
35
- const dirFiles = await (0, prompt_utils_1.getAllFilesInDirectory)(filePath);
36
- expandedFiles = expandedFiles.concat(dirFiles.map((f) => path_1.default.relative(process.cwd(), f)));
37
- }
38
- else {
39
- expandedFiles.push(path_1.default.relative(process.cwd(), filePath));
40
- }
41
- }
42
- files = expandedFiles;
43
- /**
44
- * Reads the content of each file and stores it in the contextFiles object.
45
- */
46
- for (const file of files) {
47
- const filePath = path_1.default.resolve(file);
48
- if (await fs_1.default.promises
49
- .stat(filePath)
50
- .then((stat) => stat.isFile())
51
- .catch(() => false)) {
52
- const content = await fs_1.default.promises.readFile(filePath, 'utf-8');
53
- contextFiles[file] = content;
54
- }
55
- }
56
- /**
57
- * Generates the prompt content by combining the app description and context file contents.
58
- */
59
- const contextFileContents = Object.keys(contextFiles)
60
- .map((file) => `### Contents of ${file}\n\n${contextFiles[file]}\n\n`)
61
- .join('\n');
62
- prompt += `
63
- ### Description of App
64
-
65
- ${JSON.stringify((0, config_utils_1.getNearestClovingConfig)().config, null, 2)}
66
-
67
- ${contextFileContents}`;
68
- /**
69
- * Estimates the number of tokens based on the prompt length.
70
- * This is a rough estimation and may not be exact.
71
- */
72
- const tokens = Math.ceil(prompt.length / 4).toLocaleString();
73
- console.log(`Estimated tokens: ${tokens}`);
74
- };
75
- exports.default = tokens;