aven-ai 0.0.1
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/README.md +171 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/libs/config/config-store.d.ts +109 -0
- package/dist/libs/config/config-store.d.ts.map +1 -0
- package/dist/libs/config/config-store.js +169 -0
- package/dist/libs/config/config-store.js.map +1 -0
- package/dist/libs/config/index.d.ts +2 -0
- package/dist/libs/config/index.d.ts.map +1 -0
- package/dist/libs/config/index.js +2 -0
- package/dist/libs/config/index.js.map +1 -0
- package/dist/libs/provider-clients/index.d.ts +2 -0
- package/dist/libs/provider-clients/index.d.ts.map +1 -0
- package/dist/libs/provider-clients/index.js +2 -0
- package/dist/libs/provider-clients/index.js.map +1 -0
- package/dist/libs/provider-clients/provider-client.d.ts +34 -0
- package/dist/libs/provider-clients/provider-client.d.ts.map +1 -0
- package/dist/libs/provider-clients/provider-client.js +167 -0
- package/dist/libs/provider-clients/provider-client.js.map +1 -0
- package/dist/libs/provider-definitions/index.d.ts +2 -0
- package/dist/libs/provider-definitions/index.d.ts.map +1 -0
- package/dist/libs/provider-definitions/index.js +2 -0
- package/dist/libs/provider-definitions/index.js.map +1 -0
- package/dist/libs/provider-definitions/provider-definitions.d.ts +16 -0
- package/dist/libs/provider-definitions/provider-definitions.d.ts.map +1 -0
- package/dist/libs/provider-definitions/provider-definitions.js +59 -0
- package/dist/libs/provider-definitions/provider-definitions.js.map +1 -0
- package/dist/libs/pty/index.d.ts +2 -0
- package/dist/libs/pty/index.d.ts.map +1 -0
- package/dist/libs/pty/index.js +2 -0
- package/dist/libs/pty/index.js.map +1 -0
- package/dist/libs/pty/pty-runner.d.ts +26 -0
- package/dist/libs/pty/pty-runner.d.ts.map +1 -0
- package/dist/libs/pty/pty-runner.js +153 -0
- package/dist/libs/pty/pty-runner.js.map +1 -0
- package/dist/libs/session-storage/index.d.ts +2 -0
- package/dist/libs/session-storage/index.d.ts.map +1 -0
- package/dist/libs/session-storage/index.js +2 -0
- package/dist/libs/session-storage/index.js.map +1 -0
- package/dist/libs/session-storage/session-catalog.d.ts +19 -0
- package/dist/libs/session-storage/session-catalog.d.ts.map +1 -0
- package/dist/libs/session-storage/session-catalog.js +180 -0
- package/dist/libs/session-storage/session-catalog.js.map +1 -0
- package/dist/libs/terminal/clipboard.d.ts +3 -0
- package/dist/libs/terminal/clipboard.d.ts.map +1 -0
- package/dist/libs/terminal/clipboard.js +8 -0
- package/dist/libs/terminal/clipboard.js.map +1 -0
- package/dist/libs/terminal/index.d.ts +6 -0
- package/dist/libs/terminal/index.d.ts.map +1 -0
- package/dist/libs/terminal/index.js +6 -0
- package/dist/libs/terminal/index.js.map +1 -0
- package/dist/libs/terminal/keyboard-protocol.d.ts +3 -0
- package/dist/libs/terminal/keyboard-protocol.d.ts.map +1 -0
- package/dist/libs/terminal/keyboard-protocol.js +7 -0
- package/dist/libs/terminal/keyboard-protocol.js.map +1 -0
- package/dist/libs/terminal/mouse-protocol.d.ts +22 -0
- package/dist/libs/terminal/mouse-protocol.d.ts.map +1 -0
- package/dist/libs/terminal/mouse-protocol.js +51 -0
- package/dist/libs/terminal/mouse-protocol.js.map +1 -0
- package/dist/libs/terminal/terminal-provider.d.ts +15 -0
- package/dist/libs/terminal/terminal-provider.d.ts.map +1 -0
- package/dist/libs/terminal/terminal-provider.js +47 -0
- package/dist/libs/terminal/terminal-provider.js.map +1 -0
- package/dist/libs/terminal/theme.d.ts +24 -0
- package/dist/libs/terminal/theme.d.ts.map +1 -0
- package/dist/libs/terminal/theme.js +23 -0
- package/dist/libs/terminal/theme.js.map +1 -0
- package/dist/modules/agent/core.d.ts +41 -0
- package/dist/modules/agent/core.d.ts.map +1 -0
- package/dist/modules/agent/core.js +149 -0
- package/dist/modules/agent/core.js.map +1 -0
- package/dist/modules/agent/events/memory-message-adapter.d.ts +4 -0
- package/dist/modules/agent/events/memory-message-adapter.d.ts.map +1 -0
- package/dist/modules/agent/events/memory-message-adapter.js +48 -0
- package/dist/modules/agent/events/memory-message-adapter.js.map +1 -0
- package/dist/modules/agent/events/stream-event-adapter.d.ts +17 -0
- package/dist/modules/agent/events/stream-event-adapter.d.ts.map +1 -0
- package/dist/modules/agent/events/stream-event-adapter.js +82 -0
- package/dist/modules/agent/events/stream-event-adapter.js.map +1 -0
- package/dist/modules/agent/events/tool-message-adapter.d.ts +21 -0
- package/dist/modules/agent/events/tool-message-adapter.d.ts.map +1 -0
- package/dist/modules/agent/events/tool-message-adapter.js +123 -0
- package/dist/modules/agent/events/tool-message-adapter.js.map +1 -0
- package/dist/modules/agent/index.d.ts +5 -0
- package/dist/modules/agent/index.d.ts.map +1 -0
- package/dist/modules/agent/index.js +5 -0
- package/dist/modules/agent/index.js.map +1 -0
- package/dist/modules/agent/mock.d.ts +10 -0
- package/dist/modules/agent/mock.d.ts.map +1 -0
- package/dist/modules/agent/mock.js +60 -0
- package/dist/modules/agent/mock.js.map +1 -0
- package/dist/modules/agent/prompts/commands.d.ts +2 -0
- package/dist/modules/agent/prompts/commands.d.ts.map +1 -0
- package/dist/modules/agent/prompts/commands.js +5 -0
- package/dist/modules/agent/prompts/commands.js.map +1 -0
- package/dist/modules/agent/prompts/file-tools.d.ts +2 -0
- package/dist/modules/agent/prompts/file-tools.d.ts.map +1 -0
- package/dist/modules/agent/prompts/file-tools.js +7 -0
- package/dist/modules/agent/prompts/file-tools.js.map +1 -0
- package/dist/modules/agent/prompts/identity.d.ts +2 -0
- package/dist/modules/agent/prompts/identity.d.ts.map +1 -0
- package/dist/modules/agent/prompts/identity.js +5 -0
- package/dist/modules/agent/prompts/identity.js.map +1 -0
- package/dist/modules/agent/prompts/system.d.ts +2 -0
- package/dist/modules/agent/prompts/system.d.ts.map +1 -0
- package/dist/modules/agent/prompts/system.js +5 -0
- package/dist/modules/agent/prompts/system.js.map +1 -0
- package/dist/modules/agent/services/direct-command-executor.d.ts +10 -0
- package/dist/modules/agent/services/direct-command-executor.d.ts.map +1 -0
- package/dist/modules/agent/services/direct-command-executor.js +58 -0
- package/dist/modules/agent/services/direct-command-executor.js.map +1 -0
- package/dist/modules/agent/services/prompt-turn-executor.d.ts +12 -0
- package/dist/modules/agent/services/prompt-turn-executor.d.ts.map +1 -0
- package/dist/modules/agent/services/prompt-turn-executor.js +79 -0
- package/dist/modules/agent/services/prompt-turn-executor.js.map +1 -0
- package/dist/modules/agent/tools/exec-command.d.ts +13 -0
- package/dist/modules/agent/tools/exec-command.d.ts.map +1 -0
- package/dist/modules/agent/tools/exec-command.js +11 -0
- package/dist/modules/agent/tools/exec-command.js.map +1 -0
- package/dist/modules/agent/tools/files/contracts.d.ts +132 -0
- package/dist/modules/agent/tools/files/contracts.d.ts.map +1 -0
- package/dist/modules/agent/tools/files/contracts.js +84 -0
- package/dist/modules/agent/tools/files/contracts.js.map +1 -0
- package/dist/modules/agent/tools/files/create-file-tools.d.ts +61 -0
- package/dist/modules/agent/tools/files/create-file-tools.d.ts.map +1 -0
- package/dist/modules/agent/tools/files/create-file-tools.js +26 -0
- package/dist/modules/agent/tools/files/create-file-tools.js.map +1 -0
- package/dist/modules/agent/tools/files/edit-file-operation.d.ts +4 -0
- package/dist/modules/agent/tools/files/edit-file-operation.d.ts.map +1 -0
- package/dist/modules/agent/tools/files/edit-file-operation.js +98 -0
- package/dist/modules/agent/tools/files/edit-file-operation.js.map +1 -0
- package/dist/modules/agent/tools/files/file-path-safety.d.ts +2 -0
- package/dist/modules/agent/tools/files/file-path-safety.d.ts.map +1 -0
- package/dist/modules/agent/tools/files/file-path-safety.js +10 -0
- package/dist/modules/agent/tools/files/file-path-safety.js.map +1 -0
- package/dist/modules/agent/tools/files/file-state-cache.d.ts +21 -0
- package/dist/modules/agent/tools/files/file-state-cache.d.ts.map +1 -0
- package/dist/modules/agent/tools/files/file-state-cache.js +54 -0
- package/dist/modules/agent/tools/files/file-state-cache.js.map +1 -0
- package/dist/modules/agent/tools/files/file-tool-error.d.ts +3 -0
- package/dist/modules/agent/tools/files/file-tool-error.d.ts.map +1 -0
- package/dist/modules/agent/tools/files/file-tool-error.js +3 -0
- package/dist/modules/agent/tools/files/file-tool-error.js.map +1 -0
- package/dist/modules/agent/tools/files/file-tool-operations.d.ts +22 -0
- package/dist/modules/agent/tools/files/file-tool-operations.d.ts.map +1 -0
- package/dist/modules/agent/tools/files/file-tool-operations.js +73 -0
- package/dist/modules/agent/tools/files/file-tool-operations.js.map +1 -0
- package/dist/modules/agent/tools/files/file-tool-service.d.ts +14 -0
- package/dist/modules/agent/tools/files/file-tool-service.d.ts.map +1 -0
- package/dist/modules/agent/tools/files/file-tool-service.js +28 -0
- package/dist/modules/agent/tools/files/file-tool-service.js.map +1 -0
- package/dist/modules/agent/tools/files/mutation-journal.d.ts +12 -0
- package/dist/modules/agent/tools/files/mutation-journal.d.ts.map +1 -0
- package/dist/modules/agent/tools/files/mutation-journal.js +25 -0
- package/dist/modules/agent/tools/files/mutation-journal.js.map +1 -0
- package/dist/modules/agent/tools/files/read-file-operation.d.ts +4 -0
- package/dist/modules/agent/tools/files/read-file-operation.d.ts.map +1 -0
- package/dist/modules/agent/tools/files/read-file-operation.js +92 -0
- package/dist/modules/agent/tools/files/read-file-operation.js.map +1 -0
- package/dist/modules/agent/tools/files/text-file-codec.d.ts +13 -0
- package/dist/modules/agent/tools/files/text-file-codec.d.ts.map +1 -0
- package/dist/modules/agent/tools/files/text-file-codec.js +45 -0
- package/dist/modules/agent/tools/files/text-file-codec.js.map +1 -0
- package/dist/modules/agent/tools/files/write-file-operation.d.ts +4 -0
- package/dist/modules/agent/tools/files/write-file-operation.d.ts.map +1 -0
- package/dist/modules/agent/tools/files/write-file-operation.js +61 -0
- package/dist/modules/agent/tools/files/write-file-operation.js.map +1 -0
- package/dist/modules/agent/types.d.ts +65 -0
- package/dist/modules/agent/types.d.ts.map +1 -0
- package/dist/modules/agent/types.js +21 -0
- package/dist/modules/agent/types.js.map +1 -0
- package/dist/modules/app/cli.d.ts +2 -0
- package/dist/modules/app/cli.d.ts.map +1 -0
- package/dist/modules/app/cli.js +23 -0
- package/dist/modules/app/cli.js.map +1 -0
- package/dist/modules/app/components/app-provider.d.ts +11 -0
- package/dist/modules/app/components/app-provider.d.ts.map +1 -0
- package/dist/modules/app/components/app-provider.js +18 -0
- package/dist/modules/app/components/app-provider.js.map +1 -0
- package/dist/modules/app/components/app.d.ts +7 -0
- package/dist/modules/app/components/app.d.ts.map +1 -0
- package/dist/modules/app/components/app.js +45 -0
- package/dist/modules/app/components/app.js.map +1 -0
- package/dist/modules/app/index.d.ts +6 -0
- package/dist/modules/app/index.d.ts.map +1 -0
- package/dist/modules/app/index.js +5 -0
- package/dist/modules/app/index.js.map +1 -0
- package/dist/modules/app/input/prompt-history.d.ts +3 -0
- package/dist/modules/app/input/prompt-history.d.ts.map +1 -0
- package/dist/modules/app/input/prompt-history.js +13 -0
- package/dist/modules/app/input/prompt-history.js.map +1 -0
- package/dist/modules/app/input/use-overlay-controller.d.ts +14 -0
- package/dist/modules/app/input/use-overlay-controller.d.ts.map +1 -0
- package/dist/modules/app/input/use-overlay-controller.js +168 -0
- package/dist/modules/app/input/use-overlay-controller.js.map +1 -0
- package/dist/modules/app/services/quit-controller.d.ts +2 -0
- package/dist/modules/app/services/quit-controller.d.ts.map +1 -0
- package/dist/modules/app/services/quit-controller.js +27 -0
- package/dist/modules/app/services/quit-controller.js.map +1 -0
- package/dist/modules/app/services/runtime-event-batcher.d.ts +13 -0
- package/dist/modules/app/services/runtime-event-batcher.d.ts.map +1 -0
- package/dist/modules/app/services/runtime-event-batcher.js +41 -0
- package/dist/modules/app/services/runtime-event-batcher.js.map +1 -0
- package/dist/modules/app/services/use-app-input.d.ts +14 -0
- package/dist/modules/app/services/use-app-input.d.ts.map +1 -0
- package/dist/modules/app/services/use-app-input.js +144 -0
- package/dist/modules/app/services/use-app-input.js.map +1 -0
- package/dist/modules/app/services/use-runtime-connection.d.ts +15 -0
- package/dist/modules/app/services/use-runtime-connection.d.ts.map +1 -0
- package/dist/modules/app/services/use-runtime-connection.js +128 -0
- package/dist/modules/app/services/use-runtime-connection.js.map +1 -0
- package/dist/modules/app/services/use-runtime-session.d.ts +8 -0
- package/dist/modules/app/services/use-runtime-session.d.ts.map +1 -0
- package/dist/modules/app/services/use-runtime-session.js +79 -0
- package/dist/modules/app/services/use-runtime-session.js.map +1 -0
- package/dist/modules/app/services/use-runtime-workspace.d.ts +16 -0
- package/dist/modules/app/services/use-runtime-workspace.d.ts.map +1 -0
- package/dist/modules/app/services/use-runtime-workspace.js +134 -0
- package/dist/modules/app/services/use-runtime-workspace.js.map +1 -0
- package/dist/modules/app/store/app-state.d.ts +39 -0
- package/dist/modules/app/store/app-state.d.ts.map +1 -0
- package/dist/modules/app/store/app-state.js +2 -0
- package/dist/modules/app/store/app-state.js.map +1 -0
- package/dist/modules/app/store/apply-runtime-event.d.ts +4 -0
- package/dist/modules/app/store/apply-runtime-event.d.ts.map +1 -0
- package/dist/modules/app/store/apply-runtime-event.js +72 -0
- package/dist/modules/app/store/apply-runtime-event.js.map +1 -0
- package/dist/modules/app/store/create-app-store.d.ts +5 -0
- package/dist/modules/app/store/create-app-store.d.ts.map +1 -0
- package/dist/modules/app/store/create-app-store.js +49 -0
- package/dist/modules/app/store/create-app-store.js.map +1 -0
- package/dist/modules/app/store/selectors.d.ts +20 -0
- package/dist/modules/app/store/selectors.d.ts.map +1 -0
- package/dist/modules/app/store/selectors.js +19 -0
- package/dist/modules/app/store/selectors.js.map +1 -0
- package/dist/modules/commands/index.d.ts +2 -0
- package/dist/modules/commands/index.d.ts.map +1 -0
- package/dist/modules/commands/index.js +2 -0
- package/dist/modules/commands/index.js.map +1 -0
- package/dist/modules/commands/registry.d.ts +11 -0
- package/dist/modules/commands/registry.d.ts.map +1 -0
- package/dist/modules/commands/registry.js +16 -0
- package/dist/modules/commands/registry.js.map +1 -0
- package/dist/modules/composer/components/composer.d.ts +17 -0
- package/dist/modules/composer/components/composer.d.ts.map +1 -0
- package/dist/modules/composer/components/composer.js +35 -0
- package/dist/modules/composer/components/composer.js.map +1 -0
- package/dist/modules/composer/index.d.ts +6 -0
- package/dist/modules/composer/index.d.ts.map +1 -0
- package/dist/modules/composer/index.js +5 -0
- package/dist/modules/composer/index.js.map +1 -0
- package/dist/modules/composer/services/editor.d.ts +9 -0
- package/dist/modules/composer/services/editor.d.ts.map +1 -0
- package/dist/modules/composer/services/editor.js +39 -0
- package/dist/modules/composer/services/editor.js.map +1 -0
- package/dist/modules/composer/services/input-intent.d.ts +40 -0
- package/dist/modules/composer/services/input-intent.d.ts.map +1 -0
- package/dist/modules/composer/services/input-intent.js +58 -0
- package/dist/modules/composer/services/input-intent.js.map +1 -0
- package/dist/modules/composer/services/suggestions.d.ts +9 -0
- package/dist/modules/composer/services/suggestions.d.ts.map +1 -0
- package/dist/modules/composer/services/suggestions.js +18 -0
- package/dist/modules/composer/services/suggestions.js.map +1 -0
- package/dist/modules/composer/types.d.ts +9 -0
- package/dist/modules/composer/types.d.ts.map +1 -0
- package/dist/modules/composer/types.js +2 -0
- package/dist/modules/composer/types.js.map +1 -0
- package/dist/modules/conversation/components/transcript-row.d.ts +9 -0
- package/dist/modules/conversation/components/transcript-row.d.ts.map +1 -0
- package/dist/modules/conversation/components/transcript-row.js +13 -0
- package/dist/modules/conversation/components/transcript-row.js.map +1 -0
- package/dist/modules/conversation/components/virtual-transcript.d.ts +9 -0
- package/dist/modules/conversation/components/virtual-transcript.d.ts.map +1 -0
- package/dist/modules/conversation/components/virtual-transcript.js +24 -0
- package/dist/modules/conversation/components/virtual-transcript.js.map +1 -0
- package/dist/modules/conversation/fixtures.d.ts +3 -0
- package/dist/modules/conversation/fixtures.d.ts.map +1 -0
- package/dist/modules/conversation/fixtures.js +22 -0
- package/dist/modules/conversation/fixtures.js.map +1 -0
- package/dist/modules/conversation/index.d.ts +5 -0
- package/dist/modules/conversation/index.d.ts.map +1 -0
- package/dist/modules/conversation/index.js +4 -0
- package/dist/modules/conversation/index.js.map +1 -0
- package/dist/modules/conversation/services/input-intent.d.ts +18 -0
- package/dist/modules/conversation/services/input-intent.d.ts.map +1 -0
- package/dist/modules/conversation/services/input-intent.js +18 -0
- package/dist/modules/conversation/services/input-intent.js.map +1 -0
- package/dist/modules/conversation/services/markdown-rows.d.ts +5 -0
- package/dist/modules/conversation/services/markdown-rows.d.ts.map +1 -0
- package/dist/modules/conversation/services/markdown-rows.js +96 -0
- package/dist/modules/conversation/services/markdown-rows.js.map +1 -0
- package/dist/modules/conversation/services/message-rows.d.ts +8 -0
- package/dist/modules/conversation/services/message-rows.d.ts.map +1 -0
- package/dist/modules/conversation/services/message-rows.js +141 -0
- package/dist/modules/conversation/services/message-rows.js.map +1 -0
- package/dist/modules/conversation/services/row-model.d.ts +5 -0
- package/dist/modules/conversation/services/row-model.d.ts.map +1 -0
- package/dist/modules/conversation/services/row-model.js +11 -0
- package/dist/modules/conversation/services/row-model.js.map +1 -0
- package/dist/modules/conversation/services/selection.d.ts +10 -0
- package/dist/modules/conversation/services/selection.d.ts.map +1 -0
- package/dist/modules/conversation/services/selection.js +92 -0
- package/dist/modules/conversation/services/selection.js.map +1 -0
- package/dist/modules/conversation/services/terminal-cells.d.ts +9 -0
- package/dist/modules/conversation/services/terminal-cells.d.ts.map +1 -0
- package/dist/modules/conversation/services/terminal-cells.js +24 -0
- package/dist/modules/conversation/services/terminal-cells.js.map +1 -0
- package/dist/modules/conversation/services/transcript-row-cache.d.ts +10 -0
- package/dist/modules/conversation/services/transcript-row-cache.d.ts.map +1 -0
- package/dist/modules/conversation/services/transcript-row-cache.js +40 -0
- package/dist/modules/conversation/services/transcript-row-cache.js.map +1 -0
- package/dist/modules/conversation/services/use-transcript-controller.d.ts +17 -0
- package/dist/modules/conversation/services/use-transcript-controller.d.ts.map +1 -0
- package/dist/modules/conversation/services/use-transcript-controller.js +157 -0
- package/dist/modules/conversation/services/use-transcript-controller.js.map +1 -0
- package/dist/modules/conversation/services/wrapping.d.ts +3 -0
- package/dist/modules/conversation/services/wrapping.d.ts.map +1 -0
- package/dist/modules/conversation/services/wrapping.js +46 -0
- package/dist/modules/conversation/services/wrapping.js.map +1 -0
- package/dist/modules/conversation/types.d.ts +77 -0
- package/dist/modules/conversation/types.d.ts.map +1 -0
- package/dist/modules/conversation/types.js +2 -0
- package/dist/modules/conversation/types.js.map +1 -0
- package/dist/modules/overlays/components/overlay.d.ts +10 -0
- package/dist/modules/overlays/components/overlay.d.ts.map +1 -0
- package/dist/modules/overlays/components/overlay.js +17 -0
- package/dist/modules/overlays/components/overlay.js.map +1 -0
- package/dist/modules/overlays/index.d.ts +6 -0
- package/dist/modules/overlays/index.d.ts.map +1 -0
- package/dist/modules/overlays/index.js +5 -0
- package/dist/modules/overlays/index.js.map +1 -0
- package/dist/modules/overlays/services/overlay-items.d.ts +20 -0
- package/dist/modules/overlays/services/overlay-items.d.ts.map +1 -0
- package/dist/modules/overlays/services/overlay-items.js +56 -0
- package/dist/modules/overlays/services/overlay-items.js.map +1 -0
- package/dist/modules/overlays/services/overlay-registry.d.ts +4 -0
- package/dist/modules/overlays/services/overlay-registry.d.ts.map +1 -0
- package/dist/modules/overlays/services/overlay-registry.js +42 -0
- package/dist/modules/overlays/services/overlay-registry.js.map +1 -0
- package/dist/modules/overlays/services/overlay-selection.d.ts +23 -0
- package/dist/modules/overlays/services/overlay-selection.d.ts.map +1 -0
- package/dist/modules/overlays/services/overlay-selection.js +23 -0
- package/dist/modules/overlays/services/overlay-selection.js.map +1 -0
- package/dist/modules/overlays/types.d.ts +15 -0
- package/dist/modules/overlays/types.d.ts.map +1 -0
- package/dist/modules/overlays/types.js +2 -0
- package/dist/modules/overlays/types.js.map +1 -0
- package/dist/modules/providers/catalog.d.ts +2 -0
- package/dist/modules/providers/catalog.d.ts.map +1 -0
- package/dist/modules/providers/catalog.js +2 -0
- package/dist/modules/providers/catalog.js.map +1 -0
- package/dist/modules/providers/index.d.ts +5 -0
- package/dist/modules/providers/index.d.ts.map +1 -0
- package/dist/modules/providers/index.js +3 -0
- package/dist/modules/providers/index.js.map +1 -0
- package/dist/modules/providers/services/provider-connection-manager.d.ts +22 -0
- package/dist/modules/providers/services/provider-connection-manager.d.ts.map +1 -0
- package/dist/modules/providers/services/provider-connection-manager.js +147 -0
- package/dist/modules/providers/services/provider-connection-manager.js.map +1 -0
- package/dist/modules/providers/types.d.ts +20 -0
- package/dist/modules/providers/types.d.ts.map +1 -0
- package/dist/modules/providers/types.js +2 -0
- package/dist/modules/providers/types.js.map +1 -0
- package/dist/modules/sessions/index.d.ts +3 -0
- package/dist/modules/sessions/index.d.ts.map +1 -0
- package/dist/modules/sessions/index.js +3 -0
- package/dist/modules/sessions/index.js.map +1 -0
- package/dist/modules/sessions/services/project-session-manager.d.ts +28 -0
- package/dist/modules/sessions/services/project-session-manager.d.ts.map +1 -0
- package/dist/modules/sessions/services/project-session-manager.js +90 -0
- package/dist/modules/sessions/services/project-session-manager.js.map +1 -0
- package/dist/modules/sessions/types.d.ts +13 -0
- package/dist/modules/sessions/types.d.ts.map +1 -0
- package/dist/modules/sessions/types.js +12 -0
- package/dist/modules/sessions/types.js.map +1 -0
- package/dist/utils/safe-error.d.ts +2 -0
- package/dist/utils/safe-error.d.ts.map +1 -0
- package/dist/utils/safe-error.js +10 -0
- package/dist/utils/safe-error.js.map +1 -0
- package/dist/utils/text.d.ts +2 -0
- package/dist/utils/text.d.ts.map +1 -0
- package/dist/utils/text.js +5 -0
- package/dist/utils/text.js.map +1 -0
- package/package.json +72 -0
package/README.md
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Aven AI
|
|
2
|
+
|
|
3
|
+
A terminal-native coding agent built with TypeScript, React, Ink, and [Anvia](https://anvia.dev).
|
|
4
|
+
|
|
5
|
+
Aven AI keeps the entire coding workflow in your terminal: chat with an AI model, inspect streamed tool calls, edit files, run commands, search conversation history, and resume project-specific sessions without leaving the keyboard.
|
|
6
|
+
|
|
7
|
+
## Highlights
|
|
8
|
+
|
|
9
|
+
- Full-screen, responsive terminal interface with Markdown and fenced code-block rendering
|
|
10
|
+
- Thirteen model providers with in-app credential setup and model selection
|
|
11
|
+
- Built-in `Read`, `Edit`, and `Write` tools with stale-read protection and inline diffs
|
|
12
|
+
- Real PTY command execution for agent tools and direct shell commands
|
|
13
|
+
- Project-scoped sessions and local conversation memory backed by SQLite
|
|
14
|
+
- Searchable prompts, transcripts, commands, sessions, and model lists
|
|
15
|
+
- Mouse scrolling and text selection with OSC 52 clipboard support
|
|
16
|
+
|
|
17
|
+
## Requirements
|
|
18
|
+
|
|
19
|
+
- Node.js 22 or newer
|
|
20
|
+
- pnpm 11 or newer
|
|
21
|
+
- An interactive terminal with ANSI and Unicode support
|
|
22
|
+
|
|
23
|
+
## Quick start
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
pnpm install
|
|
27
|
+
pnpm dev
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Once Aven AI opens, run `/setup` to choose a provider and add its credentials. Aven AI supports OpenAI, OpenRouter, DeepSeek, Fireworks AI, GitHub Models, Hugging Face, Devscale AI, Sumopod, Databricks, Anthropic, OpenCode Go, Xiaomi MiMo, and MiniMax.
|
|
31
|
+
|
|
32
|
+
Credentials are read exclusively from `config.toml`; provider environment variables are not used. Dynamic provider keys are verified through model discovery before they are saved. Xiaomi MiMo and MiniMax use curated model lists, so their keys are verified by the provider on the first request. Databricks setup asks for the workspace URL before the API token.
|
|
33
|
+
|
|
34
|
+
## Local installation
|
|
35
|
+
|
|
36
|
+
Install the published CLI globally:
|
|
37
|
+
|
|
38
|
+
```sh
|
|
39
|
+
npm install --global aven-ai
|
|
40
|
+
aven
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
To install from a source checkout instead, build the CLI and add an `aven` symlink to `~/.local/bin`:
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
pnpm install:local
|
|
47
|
+
aven
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Set `AVEN_BIN_DIR` to install the symlink elsewhere. Reinstalling refreshes stale build links from the same checkout, but the installer will not overwrite regular files or symlinks owned by another project.
|
|
51
|
+
|
|
52
|
+
To remove the local symlink:
|
|
53
|
+
|
|
54
|
+
```sh
|
|
55
|
+
pnpm uninstall:local
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Using Aven AI
|
|
59
|
+
|
|
60
|
+
Type a prompt and press `Enter` to start a turn. Responses and tool activity stream into the transcript as they happen.
|
|
61
|
+
|
|
62
|
+
Prefix an input with `!` to run it directly in the project shell:
|
|
63
|
+
|
|
64
|
+
```text
|
|
65
|
+
!git status
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Slash commands open searchable overlays or perform session actions:
|
|
69
|
+
|
|
70
|
+
| Command | Description |
|
|
71
|
+
| -------------- | -------------------------------------- |
|
|
72
|
+
| `/setup` | Add or replace provider credentials |
|
|
73
|
+
| `/connect` | Connect a configured provider |
|
|
74
|
+
| `/model` | View or change the active model |
|
|
75
|
+
| `/new` | Start a new project session |
|
|
76
|
+
| `/resume` | Search and resume project sessions |
|
|
77
|
+
| `/resume-last` | Resume the most recent project session |
|
|
78
|
+
| `/history` | Search local prompt history |
|
|
79
|
+
| `/search` | Search the visible transcript |
|
|
80
|
+
| `/commands` | Browse available commands |
|
|
81
|
+
| `/help` | Show keyboard and interaction help |
|
|
82
|
+
| `/theme` | Preview the current terminal theme |
|
|
83
|
+
|
|
84
|
+
### Keyboard and mouse controls
|
|
85
|
+
|
|
86
|
+
| Input | Action |
|
|
87
|
+
| --------------------------- | -------------------------------------------------------- |
|
|
88
|
+
| `Enter` | Submit a prompt |
|
|
89
|
+
| `Shift+Enter` / `Alt+Enter` | Insert a newline |
|
|
90
|
+
| `\` then `Enter` | Insert a newline in terminals without modifier support |
|
|
91
|
+
| `Ctrl+O` | Toggle transcript navigation and tool output |
|
|
92
|
+
| `Page Up` / `Page Down` | Scroll the transcript |
|
|
93
|
+
| `Ctrl+Home` / `Ctrl+End` | Jump to the start or end |
|
|
94
|
+
| `↑` / `↓` or `j` / `k` | Scroll one line while transcript navigation is active |
|
|
95
|
+
| `g` / `G` or `Home` / `End` | Jump to either end while transcript navigation is active |
|
|
96
|
+
| `Ctrl+R` | Open prompt history |
|
|
97
|
+
| Mouse wheel | Scroll the transcript |
|
|
98
|
+
| Mouse drag | Select transcript text |
|
|
99
|
+
| Double-click / triple-click | Select a word or line |
|
|
100
|
+
| `Ctrl+Shift+C` | Copy selected text through OSC 52 |
|
|
101
|
+
| `Esc` | Close or cancel the current UI context |
|
|
102
|
+
| `Ctrl+C` | Interrupt active work; press twice while idle to exit |
|
|
103
|
+
| `Ctrl+D` | Delete forward; press twice on empty input to exit |
|
|
104
|
+
|
|
105
|
+
Typing `?` or `!` into an empty composer opens help or direct command mode. Session changes are disabled while a turn is active or prompts are queued.
|
|
106
|
+
|
|
107
|
+
## Sessions and local data
|
|
108
|
+
|
|
109
|
+
Sessions are scoped to the directory where Aven AI starts. Each launch begins a fresh session; use `/resume-last` or `/resume` to continue earlier work for the same project.
|
|
110
|
+
|
|
111
|
+
Local data lives under `${XDG_CONFIG_HOME:-~/.config}/aven-ai`:
|
|
112
|
+
|
|
113
|
+
| File | Contents |
|
|
114
|
+
| ----------------- | -------------------------------------------- |
|
|
115
|
+
| `config.toml` | Provider settings, model cache, and API keys |
|
|
116
|
+
| `memory.sqlite` | Agent conversation memory |
|
|
117
|
+
| `sessions.sqlite` | Project and session metadata |
|
|
118
|
+
|
|
119
|
+
Configuration files are written with owner-only permissions. Existing `config.json` files are migrated automatically. Provider credentials must be added through `/setup`; environment variables are intentionally ignored. Aven AI does not create session metadata inside your project.
|
|
120
|
+
|
|
121
|
+
## Tools and permissions
|
|
122
|
+
|
|
123
|
+
The agent can read and modify UTF-8 and UTF-16LE text files. A file must be read before it can be edited or overwritten, and Aven AI rejects the mutation if the file changed after that read. Successful changes appear as a before-and-after diff in the transcript.
|
|
124
|
+
|
|
125
|
+
Command execution is intentionally powerful: `ExecCommand` tool calls and direct `!` commands run with the same permissions as the Aven AI process. They are not sandboxed. Commands do not receive interactive input, time out after 120 seconds, and return up to 64 KiB of output.
|
|
126
|
+
|
|
127
|
+
## Architecture
|
|
128
|
+
|
|
129
|
+
The application is split into focused modules under `src/modules`, with process, persistence, SDK, and terminal adapters under `src/libs`:
|
|
130
|
+
|
|
131
|
+
```text
|
|
132
|
+
src/
|
|
133
|
+
index.ts CLI entrypoint
|
|
134
|
+
libs/ config, SDK, PTY, storage, and terminal adapters
|
|
135
|
+
modules/
|
|
136
|
+
agent/ runtime, prompts, tools, and events
|
|
137
|
+
app/ application composition and state
|
|
138
|
+
commands/ slash-command registry
|
|
139
|
+
composer/ editor and input behavior
|
|
140
|
+
conversation/ transcript rendering and selection
|
|
141
|
+
overlays/ searchable overlay models and views
|
|
142
|
+
providers/ provider connections and model selection
|
|
143
|
+
sessions/ project-session lifecycle
|
|
144
|
+
utils/ dependency-free shared helpers
|
|
145
|
+
test/
|
|
146
|
+
integration/ cross-feature integration tests
|
|
147
|
+
support/ shared test fakes and helpers
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
The UI depends on a small `AgentRuntime` contract, which keeps alternate runtimes and deterministic tests isolated from the production Anvia implementation. Cross-module imports go through public `index.ts` files, and architecture tests enforce dependency direction and reject circular source dependencies.
|
|
151
|
+
|
|
152
|
+
See [ARCHITECTURE.md](./ARCHITECTURE.md) for module responsibilities and boundary rules.
|
|
153
|
+
|
|
154
|
+
## Development
|
|
155
|
+
|
|
156
|
+
Useful commands:
|
|
157
|
+
|
|
158
|
+
```sh
|
|
159
|
+
pnpm dev # Run from source
|
|
160
|
+
pnpm test # Run the test suite
|
|
161
|
+
pnpm test:watch # Run tests in watch mode
|
|
162
|
+
pnpm format # Format the repository
|
|
163
|
+
pnpm typecheck # Check TypeScript
|
|
164
|
+
pnpm lint # Run ESLint
|
|
165
|
+
pnpm build # Build the production CLI
|
|
166
|
+
pnpm check # Run the complete local quality gate
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
`pnpm check` runs formatting checks, type checking, linting, coverage tests, and a production build. The tracked pre-push hook runs the same gate after `pnpm install` configures it.
|
|
170
|
+
|
|
171
|
+
See [CONTRIBUTING.md](./CONTRIBUTING.md) before making structural changes or adding dependencies.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAE9C,MAAM,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type ProviderId } from '../provider-definitions/index.js';
|
|
3
|
+
export type ConfigProviderId = ProviderId;
|
|
4
|
+
declare const configSchema: z.ZodObject<{
|
|
5
|
+
version: z.ZodLiteral<1>;
|
|
6
|
+
activeProvider: z.ZodOptional<z.ZodEnum<{
|
|
7
|
+
anthropic: "anthropic";
|
|
8
|
+
databricks: "databricks";
|
|
9
|
+
deepseek: "deepseek";
|
|
10
|
+
"devscale-ai": "devscale-ai";
|
|
11
|
+
"fireworks-ai": "fireworks-ai";
|
|
12
|
+
"github-models": "github-models";
|
|
13
|
+
huggingface: "huggingface";
|
|
14
|
+
minimax: "minimax";
|
|
15
|
+
openai: "openai";
|
|
16
|
+
"opencode-go": "opencode-go";
|
|
17
|
+
openrouter: "openrouter";
|
|
18
|
+
sumopod: "sumopod";
|
|
19
|
+
"xiaomi-mimo": "xiaomi-mimo";
|
|
20
|
+
}>>;
|
|
21
|
+
apiKeys: z.ZodDefault<z.ZodRecord<z.ZodEnum<{
|
|
22
|
+
anthropic: "anthropic";
|
|
23
|
+
databricks: "databricks";
|
|
24
|
+
deepseek: "deepseek";
|
|
25
|
+
"devscale-ai": "devscale-ai";
|
|
26
|
+
"fireworks-ai": "fireworks-ai";
|
|
27
|
+
"github-models": "github-models";
|
|
28
|
+
huggingface: "huggingface";
|
|
29
|
+
minimax: "minimax";
|
|
30
|
+
openai: "openai";
|
|
31
|
+
"opencode-go": "opencode-go";
|
|
32
|
+
openrouter: "openrouter";
|
|
33
|
+
sumopod: "sumopod";
|
|
34
|
+
"xiaomi-mimo": "xiaomi-mimo";
|
|
35
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
36
|
+
baseUrls: z.ZodDefault<z.ZodRecord<z.ZodEnum<{
|
|
37
|
+
anthropic: "anthropic";
|
|
38
|
+
databricks: "databricks";
|
|
39
|
+
deepseek: "deepseek";
|
|
40
|
+
"devscale-ai": "devscale-ai";
|
|
41
|
+
"fireworks-ai": "fireworks-ai";
|
|
42
|
+
"github-models": "github-models";
|
|
43
|
+
huggingface: "huggingface";
|
|
44
|
+
minimax: "minimax";
|
|
45
|
+
openai: "openai";
|
|
46
|
+
"opencode-go": "opencode-go";
|
|
47
|
+
openrouter: "openrouter";
|
|
48
|
+
sumopod: "sumopod";
|
|
49
|
+
"xiaomi-mimo": "xiaomi-mimo";
|
|
50
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
51
|
+
models: z.ZodDefault<z.ZodRecord<z.ZodEnum<{
|
|
52
|
+
anthropic: "anthropic";
|
|
53
|
+
databricks: "databricks";
|
|
54
|
+
deepseek: "deepseek";
|
|
55
|
+
"devscale-ai": "devscale-ai";
|
|
56
|
+
"fireworks-ai": "fireworks-ai";
|
|
57
|
+
"github-models": "github-models";
|
|
58
|
+
huggingface: "huggingface";
|
|
59
|
+
minimax: "minimax";
|
|
60
|
+
openai: "openai";
|
|
61
|
+
"opencode-go": "opencode-go";
|
|
62
|
+
openrouter: "openrouter";
|
|
63
|
+
sumopod: "sumopod";
|
|
64
|
+
"xiaomi-mimo": "xiaomi-mimo";
|
|
65
|
+
}> & z.core.$partial, z.ZodArray<z.ZodString>>>;
|
|
66
|
+
selectedModels: z.ZodDefault<z.ZodRecord<z.ZodEnum<{
|
|
67
|
+
anthropic: "anthropic";
|
|
68
|
+
databricks: "databricks";
|
|
69
|
+
deepseek: "deepseek";
|
|
70
|
+
"devscale-ai": "devscale-ai";
|
|
71
|
+
"fireworks-ai": "fireworks-ai";
|
|
72
|
+
"github-models": "github-models";
|
|
73
|
+
huggingface: "huggingface";
|
|
74
|
+
minimax: "minimax";
|
|
75
|
+
openai: "openai";
|
|
76
|
+
"opencode-go": "opencode-go";
|
|
77
|
+
openrouter: "openrouter";
|
|
78
|
+
sumopod: "sumopod";
|
|
79
|
+
"xiaomi-mimo": "xiaomi-mimo";
|
|
80
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
81
|
+
}, z.core.$strip>;
|
|
82
|
+
export type AvenConfig = z.infer<typeof configSchema>;
|
|
83
|
+
export type StoredProviderCredentials = {
|
|
84
|
+
apiKey: string;
|
|
85
|
+
baseUrl?: string;
|
|
86
|
+
};
|
|
87
|
+
export declare const defaultConfigDirectory: () => string;
|
|
88
|
+
export declare const defaultConfigPath: () => string;
|
|
89
|
+
export declare const defaultLegacyConfigPath: () => string;
|
|
90
|
+
export type SaveConnectionOptions = {
|
|
91
|
+
apiKey?: string;
|
|
92
|
+
baseUrl?: string;
|
|
93
|
+
models?: readonly string[];
|
|
94
|
+
selectedModel?: string;
|
|
95
|
+
};
|
|
96
|
+
export declare class ConfigStore {
|
|
97
|
+
readonly path: string;
|
|
98
|
+
readonly legacyPath: string;
|
|
99
|
+
constructor(path?: string, legacyPath?: string);
|
|
100
|
+
load(): Promise<AvenConfig>;
|
|
101
|
+
resolvedCredentials(provider: ConfigProviderId): Promise<StoredProviderCredentials | undefined>;
|
|
102
|
+
hasCredentials(provider: ConfigProviderId): Promise<boolean>;
|
|
103
|
+
saveConnection(provider: ConfigProviderId, options?: SaveConnectionOptions): Promise<AvenConfig>;
|
|
104
|
+
selectModel(provider: ConfigProviderId, model: string): Promise<AvenConfig>;
|
|
105
|
+
private migrateLegacy;
|
|
106
|
+
private write;
|
|
107
|
+
}
|
|
108
|
+
export {};
|
|
109
|
+
//# sourceMappingURL=config-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../../../src/libs/config/config-store.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAA+B,KAAK,UAAU,EAAC,MAAM,kCAAkC,CAAC;AAE/F,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAW1C,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOhB,CAAC;AAWH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEtD,MAAM,MAAM,yBAAyB,GAAG;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,MACiC,CAAC;AAE5E,eAAO,MAAM,iBAAiB,QAAO,MAAuD,CAAC;AAC7F,eAAO,MAAM,uBAAuB,QAAO,MAAuD,CAAC;AAiCnG,MAAM,MAAM,qBAAqB,GAAG;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,qBAAa,WAAW;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,YAAY,IAAI,SAAsB,EAAE,UAAU,SAAqC,EAGtF;IAEK,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,CAiBhC;IAEK,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAOpG;IAEK,cAAc,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAEjE;IAEK,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,UAAU,CAAC,CAczG;IAEK,WAAW,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAYhF;YAEa,aAAa;YAsBb,KAAK;CAcnB"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { chmod, mkdir, readFile, rename, rm, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
import { dirname, join } from 'node:path';
|
|
5
|
+
import { parse, stringify } from 'smol-toml';
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import { providerCatalog, providerIds } from '../provider-definitions/index.js';
|
|
8
|
+
const providerIdSchema = z.enum(providerIds);
|
|
9
|
+
const apiKeySchema = z.string().trim().min(1).regex(/^\S+$/u);
|
|
10
|
+
const baseUrlSchema = z.string().trim().min(1).regex(/^\S+$/u);
|
|
11
|
+
const modelIdSchema = z.string().trim().min(1);
|
|
12
|
+
const apiKeysSchema = z.partialRecord(providerIdSchema, apiKeySchema).default({});
|
|
13
|
+
const baseUrlsSchema = z.partialRecord(providerIdSchema, baseUrlSchema).default({});
|
|
14
|
+
const providerModelsSchema = z.partialRecord(providerIdSchema, z.array(modelIdSchema)).default({});
|
|
15
|
+
const selectedModelsSchema = z.partialRecord(providerIdSchema, modelIdSchema).default({});
|
|
16
|
+
const configSchema = z.object({
|
|
17
|
+
version: z.literal(1),
|
|
18
|
+
activeProvider: providerIdSchema.optional(),
|
|
19
|
+
apiKeys: apiKeysSchema,
|
|
20
|
+
baseUrls: baseUrlsSchema,
|
|
21
|
+
models: providerModelsSchema,
|
|
22
|
+
selectedModels: selectedModelsSchema,
|
|
23
|
+
});
|
|
24
|
+
const tomlConfigSchema = z.object({
|
|
25
|
+
version: z.literal(1),
|
|
26
|
+
active_provider: providerIdSchema.optional(),
|
|
27
|
+
api_keys: apiKeysSchema,
|
|
28
|
+
base_urls: baseUrlsSchema,
|
|
29
|
+
models: providerModelsSchema,
|
|
30
|
+
selected_models: selectedModelsSchema,
|
|
31
|
+
});
|
|
32
|
+
export const defaultConfigDirectory = () => join(process.env.XDG_CONFIG_HOME ?? join(homedir(), '.config'), 'aven-ai');
|
|
33
|
+
export const defaultConfigPath = () => join(defaultConfigDirectory(), 'config.toml');
|
|
34
|
+
export const defaultLegacyConfigPath = () => join(defaultConfigDirectory(), 'config.json');
|
|
35
|
+
const emptyConfig = () => ({
|
|
36
|
+
version: 1,
|
|
37
|
+
apiKeys: {},
|
|
38
|
+
baseUrls: {},
|
|
39
|
+
models: {},
|
|
40
|
+
selectedModels: {},
|
|
41
|
+
});
|
|
42
|
+
const fromToml = (value, path) => {
|
|
43
|
+
const parsed = tomlConfigSchema.safeParse(value);
|
|
44
|
+
if (!parsed.success)
|
|
45
|
+
throw new Error(`Invalid configuration in ${path}`);
|
|
46
|
+
return {
|
|
47
|
+
version: 1,
|
|
48
|
+
...(parsed.data.active_provider ? { activeProvider: parsed.data.active_provider } : {}),
|
|
49
|
+
apiKeys: parsed.data.api_keys,
|
|
50
|
+
baseUrls: parsed.data.base_urls,
|
|
51
|
+
models: parsed.data.models,
|
|
52
|
+
selectedModels: parsed.data.selected_models,
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
const toToml = (config) => stringify({
|
|
56
|
+
version: config.version,
|
|
57
|
+
...(config.activeProvider ? { active_provider: config.activeProvider } : {}),
|
|
58
|
+
api_keys: config.apiKeys,
|
|
59
|
+
base_urls: config.baseUrls,
|
|
60
|
+
models: config.models,
|
|
61
|
+
selected_models: config.selectedModels,
|
|
62
|
+
});
|
|
63
|
+
export class ConfigStore {
|
|
64
|
+
path;
|
|
65
|
+
legacyPath;
|
|
66
|
+
constructor(path = defaultConfigPath(), legacyPath = join(dirname(path), 'config.json')) {
|
|
67
|
+
this.path = path;
|
|
68
|
+
this.legacyPath = legacyPath;
|
|
69
|
+
}
|
|
70
|
+
async load() {
|
|
71
|
+
let source;
|
|
72
|
+
try {
|
|
73
|
+
source = await readFile(this.path, 'utf8');
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
if (error.code === 'ENOENT')
|
|
77
|
+
return this.migrateLegacy();
|
|
78
|
+
throw error;
|
|
79
|
+
}
|
|
80
|
+
try {
|
|
81
|
+
return fromToml(parse(source), this.path);
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
if (error instanceof Error && error.message.startsWith('Invalid configuration'))
|
|
85
|
+
throw error;
|
|
86
|
+
// The parser error may echo configuration values, including API keys.
|
|
87
|
+
// eslint-disable-next-line preserve-caught-error
|
|
88
|
+
throw new Error(`Invalid TOML in ${this.path}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
async resolvedCredentials(provider) {
|
|
92
|
+
const config = await this.load();
|
|
93
|
+
const apiKey = apiKeySchema.safeParse(config.apiKeys[provider]);
|
|
94
|
+
if (!apiKey.success)
|
|
95
|
+
return undefined;
|
|
96
|
+
const baseUrl = baseUrlSchema.safeParse(config.baseUrls[provider]);
|
|
97
|
+
if (providerCatalog[provider].baseUrl?.required && !baseUrl.success)
|
|
98
|
+
return undefined;
|
|
99
|
+
return { apiKey: apiKey.data, ...(baseUrl.success ? { baseUrl: baseUrl.data } : {}) };
|
|
100
|
+
}
|
|
101
|
+
async hasCredentials(provider) {
|
|
102
|
+
return Boolean(await this.resolvedCredentials(provider));
|
|
103
|
+
}
|
|
104
|
+
async saveConnection(provider, options = {}) {
|
|
105
|
+
const current = await this.load();
|
|
106
|
+
const apiKeys = options.apiKey === undefined ? current.apiKeys : { ...current.apiKeys, [provider]: options.apiKey };
|
|
107
|
+
const baseUrls = options.baseUrl === undefined ? current.baseUrls : { ...current.baseUrls, [provider]: options.baseUrl };
|
|
108
|
+
const models = options.models === undefined ? current.models : { ...current.models, [provider]: [...new Set(options.models)] };
|
|
109
|
+
const selectedModels = options.selectedModel === undefined
|
|
110
|
+
? current.selectedModels
|
|
111
|
+
: { ...current.selectedModels, [provider]: options.selectedModel };
|
|
112
|
+
const next = { version: 1, activeProvider: provider, apiKeys, baseUrls, models, selectedModels };
|
|
113
|
+
await this.write(next);
|
|
114
|
+
return next;
|
|
115
|
+
}
|
|
116
|
+
async selectModel(provider, model) {
|
|
117
|
+
const normalized = model.trim();
|
|
118
|
+
const current = await this.load();
|
|
119
|
+
if (!current.models[provider]?.includes(normalized)) {
|
|
120
|
+
throw new Error(`Model ${normalized} is not cached for ${providerCatalog[provider].label}`);
|
|
121
|
+
}
|
|
122
|
+
const next = {
|
|
123
|
+
...current,
|
|
124
|
+
selectedModels: { ...current.selectedModels, [provider]: normalized },
|
|
125
|
+
};
|
|
126
|
+
await this.write(next);
|
|
127
|
+
return next;
|
|
128
|
+
}
|
|
129
|
+
async migrateLegacy() {
|
|
130
|
+
let source;
|
|
131
|
+
try {
|
|
132
|
+
source = await readFile(this.legacyPath, 'utf8');
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
if (error.code === 'ENOENT')
|
|
136
|
+
return emptyConfig();
|
|
137
|
+
throw error;
|
|
138
|
+
}
|
|
139
|
+
let value;
|
|
140
|
+
try {
|
|
141
|
+
value = JSON.parse(source);
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
throw new Error(`Invalid JSON in ${this.legacyPath}`);
|
|
145
|
+
}
|
|
146
|
+
const parsed = configSchema.safeParse(value);
|
|
147
|
+
if (!parsed.success)
|
|
148
|
+
throw new Error(`Invalid configuration in ${this.legacyPath}`);
|
|
149
|
+
await this.write(parsed.data);
|
|
150
|
+
await rm(this.legacyPath, { force: true });
|
|
151
|
+
return parsed.data;
|
|
152
|
+
}
|
|
153
|
+
async write(config) {
|
|
154
|
+
const directory = dirname(this.path);
|
|
155
|
+
await mkdir(directory, { recursive: true, mode: 0o700 });
|
|
156
|
+
await chmod(directory, 0o700);
|
|
157
|
+
const temporary = `${this.path}.${randomUUID()}.tmp`;
|
|
158
|
+
try {
|
|
159
|
+
await writeFile(temporary, toToml(config), { encoding: 'utf8', mode: 0o600 });
|
|
160
|
+
await chmod(temporary, 0o600);
|
|
161
|
+
await rename(temporary, this.path);
|
|
162
|
+
await chmod(this.path, 0o600);
|
|
163
|
+
}
|
|
164
|
+
finally {
|
|
165
|
+
await rm(temporary, { force: true });
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=config-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-store.js","sourceRoot":"","sources":["../../../src/libs/config/config-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/libs/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EACX,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,GAC9B,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/libs/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EACX,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,GAKvB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { defaultProviderFactory, minimaxModels, opencodeGoModelProtocol, providerBaseUrls, requireOpencodeGoModelProtocol, xiaomiMimoModels, type ProviderClientId, type ProviderConnection, type ProviderCredentials, type ProviderFactory, } from './provider-client.js';
|
|
2
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/libs/provider-clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,sBAAsB,EACtB,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,8BAA8B,EAC9B,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,eAAe,GACpB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/libs/provider-clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,sBAAsB,EACtB,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,8BAA8B,EAC9B,gBAAgB,GAKhB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { CompletionModel } from '@anvia/core';
|
|
2
|
+
import type { ListedModel, ModelList } from '@anvia/core/model-listing';
|
|
3
|
+
import type { ProviderId } from '../provider-definitions/index.js';
|
|
4
|
+
export type ProviderClientId = ProviderId;
|
|
5
|
+
export type ProviderCredentials = {
|
|
6
|
+
apiKey: string;
|
|
7
|
+
baseUrl?: string;
|
|
8
|
+
};
|
|
9
|
+
export type ProviderConnection = {
|
|
10
|
+
model(model: string): CompletionModel;
|
|
11
|
+
listModels(): Promise<ModelList>;
|
|
12
|
+
};
|
|
13
|
+
export type ProviderFactory = (provider: ProviderClientId, credentials: ProviderCredentials) => ProviderConnection;
|
|
14
|
+
export declare const providerBaseUrls: {
|
|
15
|
+
readonly anthropic: 'https://api.anthropic.com';
|
|
16
|
+
readonly 'devscale-ai': 'https://ai.devscale.id/api/v1';
|
|
17
|
+
readonly deepseek: 'https://api.deepseek.com';
|
|
18
|
+
readonly 'fireworks-ai': 'https://api.fireworks.ai/inference/v1';
|
|
19
|
+
readonly 'github-models': 'https://models.github.ai/inference';
|
|
20
|
+
readonly huggingface: 'https://router.huggingface.co/v1';
|
|
21
|
+
readonly minimax: 'https://api.minimax.io/anthropic';
|
|
22
|
+
readonly 'opencode-go-anthropic': 'https://opencode.ai/zen/go';
|
|
23
|
+
readonly 'opencode-go-openai': 'https://opencode.ai/zen/go/v1';
|
|
24
|
+
readonly openrouter: 'https://openrouter.ai/api/v1';
|
|
25
|
+
readonly sumopod: 'https://ai.sumopod.com';
|
|
26
|
+
readonly 'xiaomi-mimo': 'https://token-plan-sgp.xiaomimimo.com/v1';
|
|
27
|
+
};
|
|
28
|
+
export declare const minimaxModels: readonly ListedModel[];
|
|
29
|
+
export declare const xiaomiMimoModels: readonly ListedModel[];
|
|
30
|
+
export type OpencodeGoModelProtocol = 'anthropic' | 'openai-compatible';
|
|
31
|
+
export declare const opencodeGoModelProtocol: (model: string) => OpencodeGoModelProtocol | undefined;
|
|
32
|
+
export declare const requireOpencodeGoModelProtocol: (model: string) => OpencodeGoModelProtocol;
|
|
33
|
+
export declare const defaultProviderFactory: ProviderFactory;
|
|
34
|
+
//# sourceMappingURL=provider-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-client.d.ts","sourceRoot":"","sources":["../../../src/libs/provider-clients/provider-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAC,WAAW,EAAE,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAEtE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kCAAkC,CAAC;AAGjE,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAE1C,MAAM,MAAM,mBAAmB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAChC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC;IACtC,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,KAAK,kBAAkB,CAAC;AAEnH,eAAO,MAAM,gBAAgB;aAC5B,SAAS,EAAE,2BAA2B;aACtC,aAAa,EAAE,+BAA+B;aAC9C,QAAQ,EAAE,0BAA0B;aACpC,cAAc,EAAE,uCAAuC;aACvD,eAAe,EAAE,oCAAoC;aACrD,WAAW,EAAE,kCAAkC;aAC/C,OAAO,EAAE,kCAAkC;aAC3C,uBAAuB,EAAE,4BAA4B;aACrD,oBAAoB,EAAE,+BAA+B;aACrD,UAAU,EAAE,8BAA8B;aAC1C,OAAO,EAAE,wBAAwB;aACjC,aAAa,EAAE,0CAA0C;CAChD,CAAC;AAEX,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAyB/C,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,SAAS,WAAW,EAiClD,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,mBAAmB,CAAC;AAoBxE,eAAO,MAAM,uBAAuB,UAAW,MAAM,KAAG,uBAAuB,GAAG,SAClD,CAAC;AAEjC,eAAO,MAAM,8BAA8B,UAAW,MAAM,KAAG,uBAI9D,CAAC;AAwCF,eAAO,MAAM,sBAAsB,EAAE,eA2BpC,CAAC"}
|