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.
- package/{LICENSE.md → LICENSE} +1 -1
- package/README.md +606 -182
- package/dist/src/authority/budgets.d.ts +12 -0
- package/dist/src/authority/budgets.js +42 -0
- package/dist/src/authority/commands.d.ts +7 -0
- package/dist/src/authority/commands.js +271 -0
- package/dist/src/authority/details.d.ts +28 -0
- package/dist/src/authority/details.js +33 -0
- package/dist/src/authority/dispatch-decision.d.ts +40 -0
- package/dist/src/authority/dispatch-decision.js +47 -0
- package/dist/src/authority/effect-requests.d.ts +2 -0
- package/dist/src/authority/effect-requests.js +139 -0
- package/dist/src/authority/effect-results.d.ts +4 -0
- package/dist/src/authority/effect-results.js +236 -0
- package/dist/src/authority/events.d.ts +2 -0
- package/dist/src/authority/events.js +45 -0
- package/dist/src/authority/gate-reduction.d.ts +8 -0
- package/dist/src/authority/gate-reduction.js +109 -0
- package/dist/src/authority/gates.d.ts +48 -0
- package/dist/src/authority/gates.js +77 -0
- package/dist/src/authority/history-state.d.ts +15 -0
- package/dist/src/authority/history-state.js +61 -0
- package/dist/src/authority/history.d.ts +13 -0
- package/dist/src/authority/history.js +37 -0
- package/dist/src/authority/instants.d.ts +3 -0
- package/dist/src/authority/instants.js +38 -0
- package/dist/src/authority/leases.d.ts +15 -0
- package/dist/src/authority/leases.js +113 -0
- package/dist/src/authority/operations.d.ts +101 -0
- package/dist/src/authority/operations.js +75 -0
- package/dist/src/authority/reconciliation.d.ts +29 -0
- package/dist/src/authority/reconciliation.js +156 -0
- package/dist/src/authority/reducer.d.ts +41 -0
- package/dist/src/authority/reducer.js +139 -0
- package/dist/src/authority/reduction-state.d.ts +36 -0
- package/dist/src/authority/reduction-state.js +68 -0
- package/dist/src/authority/reduction.d.ts +6 -0
- package/dist/src/authority/reduction.js +160 -0
- package/dist/src/authority/status-closure.d.ts +4 -0
- package/dist/src/authority/status-closure.js +57 -0
- package/dist/src/authority/status-effects.d.ts +17 -0
- package/dist/src/authority/status-effects.js +43 -0
- package/dist/src/authority/status-input.d.ts +45 -0
- package/dist/src/authority/status-input.js +9 -0
- package/dist/src/authority/status.d.ts +32 -0
- package/dist/src/authority/status.js +256 -0
- package/dist/src/authority/stop-sequence.d.ts +37 -0
- package/dist/src/authority/stop-sequence.js +91 -0
- package/dist/src/authority/transitions.d.ts +63 -0
- package/dist/src/authority/transitions.js +124 -0
- package/dist/src/broker/actor/adapter-calls.d.ts +13 -0
- package/dist/src/broker/actor/adapter-calls.js +34 -0
- package/dist/src/broker/actor/adapter-outcomes.d.ts +28 -0
- package/dist/src/broker/actor/adapter-outcomes.js +80 -0
- package/dist/src/broker/actor/authority-actor.d.ts +25 -0
- package/dist/src/broker/actor/authority-actor.js +169 -0
- package/dist/src/broker/actor/authority-changes.d.ts +31 -0
- package/dist/src/broker/actor/authority-changes.js +46 -0
- package/dist/src/broker/actor/authority-connection.d.ts +15 -0
- package/dist/src/broker/actor/authority-connection.js +44 -0
- package/dist/src/broker/actor/authority-conversion.d.ts +10 -0
- package/dist/src/broker/actor/authority-conversion.js +72 -0
- package/dist/src/broker/actor/authority-delivery.d.ts +13 -0
- package/dist/src/broker/actor/authority-delivery.js +162 -0
- package/dist/src/broker/actor/authority-logger.d.ts +2 -0
- package/dist/src/broker/actor/authority-logger.js +19 -0
- package/dist/src/broker/actor/authority-policy.d.ts +9 -0
- package/dist/src/broker/actor/authority-policy.js +11 -0
- package/dist/src/broker/actor/authority-queries.d.ts +45 -0
- package/dist/src/broker/actor/authority-queries.js +85 -0
- package/dist/src/broker/actor/authority-receipts.d.ts +28 -0
- package/dist/src/broker/actor/authority-receipts.js +84 -0
- package/dist/src/broker/actor/authority-release.d.ts +13 -0
- package/dist/src/broker/actor/authority-release.js +69 -0
- package/dist/src/broker/actor/authority-runtime.d.ts +60 -0
- package/dist/src/broker/actor/authority-runtime.js +204 -0
- package/dist/src/broker/actor/authority-session.d.ts +67 -0
- package/dist/src/broker/actor/authority-session.js +251 -0
- package/dist/src/broker/actor/authority-settings.d.ts +33 -0
- package/dist/src/broker/actor/authority-settings.js +63 -0
- package/dist/src/broker/actor/authority-upgrades.d.ts +16 -0
- package/dist/src/broker/actor/authority-upgrades.js +12 -0
- package/dist/src/broker/actor/authority-watchdog.d.ts +14 -0
- package/dist/src/broker/actor/authority-watchdog.js +41 -0
- package/dist/src/broker/actor/authority.d.ts +14 -0
- package/dist/src/broker/actor/authority.js +115 -0
- package/dist/src/broker/actor/delivery-intents.d.ts +68 -0
- package/dist/src/broker/actor/delivery-intents.js +77 -0
- package/dist/src/broker/actor/delivery-plan.d.ts +2 -0
- package/dist/src/broker/actor/delivery-plan.js +109 -0
- package/dist/src/broker/actor/delivery-results.d.ts +11 -0
- package/dist/src/broker/actor/delivery-results.js +63 -0
- package/dist/src/broker/actor/effect-delivery.d.ts +19 -0
- package/dist/src/broker/actor/effect-delivery.js +118 -0
- package/dist/src/broker/actor/effect-plan.d.ts +41 -0
- package/dist/src/broker/actor/effect-plan.js +173 -0
- package/dist/src/broker/actor/effect-queries.d.ts +27 -0
- package/dist/src/broker/actor/effect-queries.js +80 -0
- package/dist/src/broker/actor/effect-turn.d.ts +25 -0
- package/dist/src/broker/actor/effect-turn.js +84 -0
- package/dist/src/broker/actor/pin-check.d.ts +6 -0
- package/dist/src/broker/actor/pin-check.js +12 -0
- package/dist/src/broker/actor/runtime-parts.d.ts +23 -0
- package/dist/src/broker/actor/runtime-parts.js +34 -0
- package/dist/src/broker/actor/stop-plan.d.ts +20 -0
- package/dist/src/broker/actor/stop-plan.js +46 -0
- package/dist/src/broker/actor/stop-turn.d.ts +17 -0
- package/dist/src/broker/actor/stop-turn.js +42 -0
- package/dist/src/broker/actor/turn-draft.d.ts +31 -0
- package/dist/src/broker/actor/turn-draft.js +138 -0
- package/dist/src/broker/actor/turn-plan.d.ts +17 -0
- package/dist/src/broker/actor/turn-plan.js +136 -0
- package/dist/src/broker/actor/turn-refusals.d.ts +8 -0
- package/dist/src/broker/actor/turn-refusals.js +35 -0
- package/dist/src/broker/actor/turn-staging.d.ts +78 -0
- package/dist/src/broker/actor/turn-staging.js +34 -0
- package/dist/src/broker/actor/turn-state.d.ts +34 -0
- package/dist/src/broker/actor/turn-state.js +208 -0
- package/dist/src/broker/authority-admission.d.ts +21 -0
- package/dist/src/broker/authority-admission.js +70 -0
- package/dist/src/broker/authority-restore.d.ts +30 -0
- package/dist/src/broker/authority-restore.js +165 -0
- package/dist/src/broker/decision-restore.d.ts +16 -0
- package/dist/src/broker/decision-restore.js +158 -0
- package/dist/src/broker/decision-upgrade.d.ts +3 -0
- package/dist/src/broker/decision-upgrade.js +12 -0
- package/dist/src/broker/effect-restore.d.ts +20 -0
- package/dist/src/broker/effect-restore.js +111 -0
- package/dist/src/broker/effect-upgrade.d.ts +3 -0
- package/dist/src/broker/effect-upgrade.js +9 -0
- package/dist/src/broker/operation-digest.d.ts +1 -0
- package/dist/src/broker/operation-digest.js +4 -0
- package/dist/src/broker/socket-address.d.ts +9 -0
- package/dist/src/broker/socket-address.js +14 -0
- package/dist/src/broker/workflow-pin.d.ts +2 -0
- package/dist/src/broker/workflow-pin.js +5 -0
- package/dist/src/chats/analysis-batches.d.ts +24 -0
- package/dist/src/chats/analysis-batches.js +83 -0
- package/dist/src/chats/analysis-contract.d.ts +80 -0
- package/dist/src/chats/analysis-contract.js +16 -0
- package/dist/src/chats/analysis-data.d.ts +3 -0
- package/dist/src/chats/analysis-data.js +85 -0
- package/dist/src/chats/analysis-input.d.ts +12 -0
- package/dist/src/chats/analysis-input.js +83 -0
- package/dist/src/chats/analysis-links.d.ts +2 -0
- package/dist/src/chats/analysis-links.js +25 -0
- package/dist/src/chats/analysis-prompt.d.ts +10 -0
- package/dist/src/chats/analysis-prompt.js +16 -0
- package/dist/src/chats/analysis-proposal.d.ts +2 -0
- package/dist/src/chats/analysis-proposal.js +32 -0
- package/dist/src/chats/analysis-provenance.d.ts +4 -0
- package/dist/src/chats/analysis-provenance.js +99 -0
- package/dist/src/chats/analysis-shape.d.ts +3 -0
- package/dist/src/chats/analysis-shape.js +228 -0
- package/dist/src/chats/analysis.d.ts +3 -0
- package/dist/src/chats/analysis.js +42 -0
- package/dist/src/chats/corpus-input.d.ts +5 -0
- package/dist/src/chats/corpus-input.js +288 -0
- package/dist/src/chats/destination.d.ts +4 -0
- package/dist/src/chats/destination.js +96 -0
- package/dist/src/chats/import.d.ts +15 -0
- package/dist/src/chats/import.js +243 -0
- package/dist/src/chats/input-file.d.ts +3 -0
- package/dist/src/chats/input-file.js +32 -0
- package/dist/src/chats/normalize.d.ts +29 -0
- package/dist/src/chats/normalize.js +155 -0
- package/dist/src/chats/previous-import.d.ts +5 -0
- package/dist/src/chats/previous-import.js +34 -0
- package/dist/src/chats/reader.d.ts +21 -0
- package/dist/src/chats/reader.js +118 -0
- package/dist/src/chats/redact-import.d.ts +14 -0
- package/dist/src/chats/redact-import.js +141 -0
- package/dist/src/chats/redaction.d.ts +41 -0
- package/dist/src/chats/redaction.js +161 -0
- package/dist/src/chats/revision-input.d.ts +3 -0
- package/dist/src/chats/revision-input.js +180 -0
- package/dist/src/chats/revision.d.ts +48 -0
- package/dist/src/chats/revision.js +94 -0
- package/dist/src/chats/selection.d.ts +25 -0
- package/dist/src/chats/selection.js +109 -0
- package/dist/src/chats/source.d.ts +23 -0
- package/dist/src/chats/source.js +135 -0
- package/dist/src/chats/structure.d.ts +57 -0
- package/dist/src/chats/structure.js +216 -0
- package/dist/src/cli/arguments.d.ts +31 -0
- package/dist/src/cli/arguments.js +235 -0
- package/dist/src/cli/client.d.ts +16 -0
- package/dist/src/cli/client.js +159 -0
- package/dist/src/cli/commands.d.ts +17 -0
- package/dist/src/cli/commands.js +271 -0
- package/dist/src/cli/main.d.ts +2 -0
- package/dist/src/cli/main.js +127 -0
- package/dist/src/cli/render.d.ts +10 -0
- package/dist/src/cli/render.js +254 -0
- package/dist/src/cli/runtime-arguments.d.ts +73 -0
- package/dist/src/cli/runtime-arguments.js +248 -0
- package/dist/src/cli/runtime-directory.d.ts +4 -0
- package/dist/src/cli/runtime-directory.js +25 -0
- package/dist/src/cli/toolchain.d.ts +3 -0
- package/dist/src/cli/toolchain.js +74 -0
- package/dist/src/cli/usage-render.d.ts +3 -0
- package/dist/src/cli/usage-render.js +28 -0
- package/dist/src/cli/usage.d.ts +5 -0
- package/dist/src/cli/usage.js +156 -0
- package/dist/src/cli/validate.d.ts +38 -0
- package/dist/src/cli/validate.js +116 -0
- package/dist/src/cli/watch-actions.d.ts +10 -0
- package/dist/src/cli/watch-actions.js +58 -0
- package/dist/src/cli/watch-board-view.d.ts +54 -0
- package/dist/src/cli/watch-board-view.js +201 -0
- package/dist/src/cli/watch-board.d.ts +15 -0
- package/dist/src/cli/watch-board.js +179 -0
- package/dist/src/cli/watch-card-client.d.ts +1 -0
- package/dist/src/cli/watch-card-client.js +44 -0
- package/dist/src/cli/watch-card-forms.d.ts +2 -0
- package/dist/src/cli/watch-card-forms.js +33 -0
- package/dist/src/cli/watch-card-reply.d.ts +5 -0
- package/dist/src/cli/watch-card-reply.js +34 -0
- package/dist/src/cli/watch-card-view.d.ts +40 -0
- package/dist/src/cli/watch-card-view.js +86 -0
- package/dist/src/cli/watch-client.d.ts +1 -0
- package/dist/src/cli/watch-client.js +118 -0
- package/dist/src/cli/watch-element.d.ts +11 -0
- package/dist/src/cli/watch-element.js +6 -0
- package/dist/src/cli/watch-model.d.ts +29 -0
- package/dist/src/cli/watch-model.js +278 -0
- package/dist/src/cli/watch-navigation.d.ts +9 -0
- package/dist/src/cli/watch-navigation.js +40 -0
- package/dist/src/cli/watch-page.d.ts +1 -0
- package/dist/src/cli/watch-page.js +258 -0
- package/dist/src/cli/watch-paths.d.ts +2 -0
- package/dist/src/cli/watch-paths.js +52 -0
- package/dist/src/cli/watch-phases.d.ts +7 -0
- package/dist/src/cli/watch-phases.js +148 -0
- package/dist/src/cli/watch-pr-board.d.ts +3 -0
- package/dist/src/cli/watch-pr-board.js +26 -0
- package/dist/src/cli/watch-pr-command.d.ts +15 -0
- package/dist/src/cli/watch-pr-command.js +37 -0
- package/dist/src/cli/watch-pr-identity.d.ts +20 -0
- package/dist/src/cli/watch-pr-identity.js +62 -0
- package/dist/src/cli/watch-pr-observer.d.ts +19 -0
- package/dist/src/cli/watch-pr-observer.js +108 -0
- package/dist/src/cli/watch-pr-settings.d.ts +8 -0
- package/dist/src/cli/watch-pr-settings.js +47 -0
- package/dist/src/cli/watch-reads.d.ts +28 -0
- package/dist/src/cli/watch-reads.js +248 -0
- package/dist/src/cli/watch-render.d.ts +153 -0
- package/dist/src/cli/watch-render.js +102 -0
- package/dist/src/cli/watch-run-input.d.ts +14 -0
- package/dist/src/cli/watch-run-input.js +49 -0
- package/dist/src/cli/watch-server.d.ts +13 -0
- package/dist/src/cli/watch-server.js +214 -0
- package/dist/src/cli/watch-start-view.d.ts +18 -0
- package/dist/src/cli/watch-start-view.js +77 -0
- package/dist/src/cli/watch-stream.d.ts +11 -0
- package/dist/src/cli/watch-stream.js +128 -0
- package/dist/src/cli/watch-turn.d.ts +30 -0
- package/dist/src/cli/watch-turn.js +135 -0
- package/dist/src/cli/watch-usage.d.ts +6 -0
- package/dist/src/cli/watch-usage.js +65 -0
- package/dist/src/cli/watch-view.d.ts +54 -0
- package/dist/src/cli/watch-view.js +267 -0
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +104 -0
- package/dist/src/daemon/analysis-launch.d.ts +5 -0
- package/dist/src/daemon/analysis-launch.js +81 -0
- package/dist/src/daemon/analysis-token.d.ts +6 -0
- package/dist/src/daemon/analysis-token.js +88 -0
- package/dist/src/daemon/analysis-worker.d.ts +22 -0
- package/dist/src/daemon/analysis-worker.js +219 -0
- package/dist/src/daemon/chats-files.d.ts +15 -0
- package/dist/src/daemon/chats-files.js +113 -0
- package/dist/src/daemon/chats-worker.d.ts +12 -0
- package/dist/src/daemon/chats-worker.js +200 -0
- package/dist/src/daemon/claude-turn.d.ts +38 -0
- package/dist/src/daemon/claude-turn.js +216 -0
- package/dist/src/daemon/claude-worker.d.ts +29 -0
- package/dist/src/daemon/claude-worker.js +276 -0
- package/dist/src/daemon/codex-stream.d.ts +4 -0
- package/dist/src/daemon/codex-stream.js +129 -0
- package/dist/src/daemon/daemon.d.ts +49 -0
- package/dist/src/daemon/daemon.js +195 -0
- package/dist/src/daemon/delivery-router.d.ts +10 -0
- package/dist/src/daemon/delivery-router.js +34 -0
- package/dist/src/daemon/github-calls.d.ts +29 -0
- package/dist/src/daemon/github-calls.js +127 -0
- package/dist/src/daemon/github-issue-methods.d.ts +3 -0
- package/dist/src/daemon/github-issue-methods.js +99 -0
- package/dist/src/daemon/github-issue-privacy.d.ts +6 -0
- package/dist/src/daemon/github-issue-privacy.js +131 -0
- package/dist/src/daemon/github-merge.d.ts +18 -0
- package/dist/src/daemon/github-merge.js +259 -0
- package/dist/src/daemon/github-methods.d.ts +5 -0
- package/dist/src/daemon/github-methods.js +202 -0
- package/dist/src/daemon/github-operation.d.ts +38 -0
- package/dist/src/daemon/github-operation.js +57 -0
- package/dist/src/daemon/github-ticket-status.d.ts +3 -0
- package/dist/src/daemon/github-ticket-status.js +268 -0
- package/dist/src/daemon/github-worker.d.ts +17 -0
- package/dist/src/daemon/github-worker.js +281 -0
- package/dist/src/daemon/host-environment.d.ts +8 -0
- package/dist/src/daemon/host-environment.js +14 -0
- package/dist/src/daemon/issue-queue.d.ts +10 -0
- package/dist/src/daemon/issue-queue.js +254 -0
- package/dist/src/daemon/notify-message.d.ts +14 -0
- package/dist/src/daemon/notify-message.js +48 -0
- package/dist/src/daemon/notify.d.ts +12 -0
- package/dist/src/daemon/notify.js +161 -0
- package/dist/src/daemon/operation-journal.d.ts +43 -0
- package/dist/src/daemon/operation-journal.js +55 -0
- package/dist/src/daemon/retrying-turn.d.ts +9 -0
- package/dist/src/daemon/retrying-turn.js +185 -0
- package/dist/src/daemon/ticket-registration.d.ts +33 -0
- package/dist/src/daemon/ticket-registration.js +177 -0
- package/dist/src/daemon/ticket-source.d.ts +17 -0
- package/dist/src/daemon/ticket-source.js +36 -0
- package/dist/src/daemon/work-tree.d.ts +26 -0
- package/dist/src/daemon/work-tree.js +206 -0
- package/dist/src/effect-authorization.d.ts +21 -0
- package/dist/src/effect-authorization.js +14 -0
- package/dist/src/execution-pin.d.ts +4 -0
- package/dist/src/execution-pin.js +68 -0
- package/dist/src/host/start-delivery.d.ts +41 -0
- package/dist/src/host/start-delivery.js +68 -0
- package/dist/src/host/step-bridge-host.d.ts +79 -0
- package/dist/src/host/step-bridge-host.js +205 -0
- package/dist/src/host/step-claims.d.ts +31 -0
- package/dist/src/host/step-claims.js +85 -0
- package/dist/src/host/world-host.d.ts +21 -0
- package/dist/src/host/world-host.js +51 -0
- package/dist/src/host/world-reconciliation.d.ts +39 -0
- package/dist/src/host/world-reconciliation.js +81 -0
- package/dist/src/host/world-runs.d.ts +14 -0
- package/dist/src/host/world-runs.js +69 -0
- package/dist/src/operation-identity.d.ts +7 -0
- package/dist/src/operation-identity.js +59 -0
- package/dist/src/protocol.d.ts +35 -0
- package/dist/src/protocol.js +64 -0
- package/dist/src/resource-files.d.ts +1 -0
- package/dist/src/resource-files.js +29 -0
- package/dist/src/service/changes.d.ts +11 -0
- package/dist/src/service/changes.js +32 -0
- package/dist/src/service/decision-handler.d.ts +9 -0
- package/dist/src/service/decision-handler.js +233 -0
- package/dist/src/service/event-handler.d.ts +10 -0
- package/dist/src/service/event-handler.js +70 -0
- package/dist/src/service/expiry.d.ts +13 -0
- package/dist/src/service/expiry.js +53 -0
- package/dist/src/service/gateway.d.ts +21 -0
- package/dist/src/service/gateway.js +120 -0
- package/dist/src/service/registry.d.ts +40 -0
- package/dist/src/service/registry.js +13 -0
- package/dist/src/service/replies.d.ts +26 -0
- package/dist/src/service/replies.js +56 -0
- package/dist/src/service/run-handlers.d.ts +4 -0
- package/dist/src/service/run-handlers.js +263 -0
- package/dist/src/service/service.d.ts +58 -0
- package/dist/src/service/service.js +212 -0
- package/dist/src/service/submission-handler.d.ts +4 -0
- package/dist/src/service/submission-handler.js +206 -0
- package/dist/src/service/transport.d.ts +16 -0
- package/dist/src/service/transport.js +141 -0
- package/dist/src/service/worker-port.d.ts +85 -0
- package/dist/src/service/worker-port.js +126 -0
- package/dist/src/service/worker-totals.d.ts +3 -0
- package/dist/src/service/worker-totals.js +28 -0
- package/dist/src/step-bridge.d.ts +57 -0
- package/dist/src/step-bridge.js +4 -0
- package/dist/src/steps/decision-gate.d.ts +2 -0
- package/dist/src/steps/decision-gate.js +8 -0
- package/dist/src/steps/load-cycle.d.ts +10 -0
- package/dist/src/steps/load-cycle.js +11 -0
- package/dist/src/steps/protected-effect.d.ts +2 -0
- package/dist/src/steps/protected-effect.js +8 -0
- package/dist/src/storage/decision-rows.d.ts +54 -0
- package/dist/src/storage/decision-rows.js +72 -0
- package/dist/src/storage/decision-snapshots.d.ts +17 -0
- package/dist/src/storage/decision-snapshots.js +25 -0
- package/dist/src/storage/domain-changes.d.ts +48 -0
- package/dist/src/storage/domain-changes.js +213 -0
- package/dist/src/storage/domain-rows.d.ts +85 -0
- package/dist/src/storage/domain-rows.js +129 -0
- package/dist/src/storage/domain-schema.d.ts +32 -0
- package/dist/src/storage/domain-schema.js +193 -0
- package/dist/src/storage/effect-changes.d.ts +5 -0
- package/dist/src/storage/effect-changes.js +105 -0
- package/dist/src/storage/effect-rows.d.ts +67 -0
- package/dist/src/storage/effect-rows.js +74 -0
- package/dist/src/storage/effect-schema.d.ts +1 -0
- package/dist/src/storage/effect-schema.js +59 -0
- package/dist/src/storage/statements.d.ts +9 -0
- package/dist/src/storage/statements.js +8 -0
- package/dist/src/submission.d.ts +42 -0
- package/dist/src/submission.js +71 -0
- package/dist/src/ticket-status.d.ts +8 -0
- package/dist/src/ticket-status.js +45 -0
- package/dist/src/token-prices.d.ts +19 -0
- package/dist/src/token-prices.js +76 -0
- package/dist/src/turn-profile.d.ts +13 -0
- package/dist/src/turn-profile.js +100 -0
- package/dist/src/worker-usage.d.ts +22 -0
- package/dist/src/worker-usage.js +44 -0
- package/dist/src/workflow-admission.d.ts +45 -0
- package/dist/src/workflow-admission.js +151 -0
- package/dist/src/workflow-candidate.d.ts +29 -0
- package/dist/src/workflow-candidate.js +59 -0
- package/dist/src/workflow-contracts.d.ts +29 -0
- package/dist/src/workflow-contracts.js +110 -0
- package/dist/src/workflow-declaration.d.ts +11 -0
- package/dist/src/workflow-declaration.js +59 -0
- package/dist/src/workflow-resources.d.ts +8 -0
- package/dist/src/workflow-resources.js +14 -0
- package/dist/src/workflows.d.ts +6 -0
- package/dist/src/workflows.js +4 -0
- package/dist/tools/compile-workflows.d.ts +1 -0
- package/dist/tools/compile-workflows.js +33 -0
- package/dist/tools/self-host-processes.d.ts +10 -0
- package/dist/tools/self-host-processes.js +156 -0
- package/dist/tools/self-host-workflows.d.ts +15 -0
- package/dist/tools/self-host-workflows.js +78 -0
- package/dist/tools/self-host.d.ts +1 -0
- package/dist/tools/self-host.js +261 -0
- package/dist/tools/self-update-host.d.ts +13 -0
- package/dist/tools/self-update-host.js +88 -0
- package/dist/tools/self-update.d.ts +11 -0
- package/dist/tools/self-update.js +177 -0
- package/dist/tools/workflow-manifest.d.ts +3 -0
- package/dist/tools/workflow-manifest.js +34 -0
- package/dist/workflows/analyze-chats.d.ts +10 -0
- package/dist/workflows/analyze-chats.declaration.json +9 -0
- package/dist/workflows/analyze-chats.js +73 -0
- package/dist/workflows/develop-prd.d.ts +7 -0
- package/dist/workflows/develop-prd.js +97 -0
- package/dist/workflows/develop-ticket.d.ts +9 -0
- package/dist/workflows/develop-ticket.js +202 -0
- package/dist/workflows/issue-labels.d.ts +16 -0
- package/dist/workflows/issue-labels.js +70 -0
- package/dist/workflows/ticket-prompts.d.ts +35 -0
- package/dist/workflows/ticket-prompts.js +133 -0
- package/package.json +84 -75
- package/dist/abstract_gpt/index.js +0 -55
- package/dist/cloving_gpt/adapters/Adapter.js +0 -2
- package/dist/cloving_gpt/adapters/azureopenai.js +0 -69
- package/dist/cloving_gpt/adapters/claude.js +0 -128
- package/dist/cloving_gpt/adapters/gemini.js +0 -135
- package/dist/cloving_gpt/adapters/gpt4all.js +0 -29
- package/dist/cloving_gpt/adapters/index.js +0 -2
- package/dist/cloving_gpt/adapters/mistral.js +0 -128
- package/dist/cloving_gpt/adapters/ollama.js +0 -128
- package/dist/cloving_gpt/adapters/openai.js +0 -100
- package/dist/cloving_gpt/index.js +0 -192
- package/dist/commands/analyze.js +0 -47
- package/dist/commands/chat.js +0 -14
- package/dist/commands/check.js +0 -7
- package/dist/commands/commit.js +0 -44
- package/dist/commands/config.js +0 -167
- package/dist/commands/describe.js +0 -235
- package/dist/commands/generate/code.js +0 -21
- package/dist/commands/generate/commit.js +0 -11
- package/dist/commands/generate/context.js +0 -82
- package/dist/commands/generate/docs.js +0 -11
- package/dist/commands/generate/documentation.js +0 -11
- package/dist/commands/generate/fizzbuzz.js +0 -35
- package/dist/commands/generate/init.js +0 -15
- package/dist/commands/generate/review.js +0 -11
- package/dist/commands/generate/sh.js +0 -95
- package/dist/commands/generate/shell.js +0 -11
- package/dist/commands/generate/unit_tests.js +0 -11
- package/dist/commands/init.js +0 -13
- package/dist/commands/models.js +0 -22
- package/dist/commands/project/build.js +0 -88
- package/dist/commands/project/complete.js +0 -12
- package/dist/commands/project/init.js +0 -82
- package/dist/commands/project/plan.js +0 -108
- package/dist/commands/proxy.js +0 -11
- package/dist/commands/review.js +0 -50
- package/dist/commands/tokens.js +0 -75
- package/dist/commands/unit_tests.js +0 -150
- package/dist/commands/update.js +0 -7
- package/dist/file2.js +0 -4
- package/dist/index.js +0 -136
- package/dist/managers/BlockManager.js +0 -120
- package/dist/managers/ChatManager.js +0 -653
- package/dist/managers/ChunkManager.js +0 -32
- package/dist/managers/CodeManager.js +0 -185
- package/dist/managers/CommitManager.js +0 -78
- package/dist/managers/DocsManager.js +0 -88
- package/dist/managers/DocumentationManager.js +0 -114
- package/dist/managers/InitManager.js +0 -230
- package/dist/managers/ProxyManager.js +0 -210
- package/dist/managers/ReviewManager.js +0 -131
- package/dist/managers/ShellManager.js +0 -163
- package/dist/managers/StreamManager.js +0 -308
- package/dist/managers/UnitTestManager.js +0 -243
- package/dist/managers/src/managers/ProxyManager.js +0 -1
- package/dist/newfile.js +0 -2
- package/dist/package.json +0 -86
- package/dist/utils/command_utils.js +0 -384
- package/dist/utils/config_utils.js +0 -249
- package/dist/utils/gitUtils.js +0 -42
- package/dist/utils/git_utils.js +0 -217
- package/dist/utils/modelUtils.js +0 -7
- package/dist/utils/model_utils.js +0 -7
- package/dist/utils/prompt_utils.js +0 -333
- package/dist/utils/prompts/CODEGEN_COULDNT_APPLY.md +0 -5
- package/dist/utils/prompts/CODEGEN_EXAMPLES.md +0 -82
- package/dist/utils/prompts/CODEGEN_INSTRUCTIONS.md +0 -43
- package/dist/utils/prompts/DOCS_INSTRUCTIONS.md +0 -9
- package/dist/utils/prompts/INIT_INSTRUCTIONS.md +0 -132
- package/dist/utils/prompts/REVIEW_INSTRUCTIONS.md +0 -49
- package/dist/utils/prompts/SHELL_INSTRUCTIONS.md +0 -15
- package/dist/utils/prompts/SPECIAL_FILES.md +0 -66
- package/dist/utils/prompts/index.js +0 -27
- package/dist/utils/string_utils.js +0 -505
- 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;
|
package/dist/commands/analyze.js
DELETED
|
@@ -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;
|
package/dist/commands/chat.js
DELETED
|
@@ -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;
|
package/dist/commands/check.js
DELETED
package/dist/commands/commit.js
DELETED
|
@@ -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;
|