steroids-cli 0.4.47
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 +21 -0
- package/README.md +640 -0
- package/dist/cli/colors.d.ts +110 -0
- package/dist/cli/colors.d.ts.map +1 -0
- package/dist/cli/colors.js +228 -0
- package/dist/cli/colors.js.map +1 -0
- package/dist/cli/env.d.ts +159 -0
- package/dist/cli/env.d.ts.map +1 -0
- package/dist/cli/env.js +227 -0
- package/dist/cli/env.js.map +1 -0
- package/dist/cli/errors.d.ts +166 -0
- package/dist/cli/errors.d.ts.map +1 -0
- package/dist/cli/errors.js +244 -0
- package/dist/cli/errors.js.map +1 -0
- package/dist/cli/flags.d.ts +75 -0
- package/dist/cli/flags.d.ts.map +1 -0
- package/dist/cli/flags.js +232 -0
- package/dist/cli/flags.js.map +1 -0
- package/dist/cli/help.d.ts +97 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +275 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/index.d.ts +13 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +29 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/interactive.d.ts +58 -0
- package/dist/cli/interactive.d.ts.map +1 -0
- package/dist/cli/interactive.js +127 -0
- package/dist/cli/interactive.js.map +1 -0
- package/dist/cli/output.d.ts +116 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +178 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/commands/about.d.ts +7 -0
- package/dist/commands/about.d.ts.map +1 -0
- package/dist/commands/about.js +259 -0
- package/dist/commands/about.js.map +1 -0
- package/dist/commands/ai.d.ts +6 -0
- package/dist/commands/ai.d.ts.map +1 -0
- package/dist/commands/ai.js +382 -0
- package/dist/commands/ai.js.map +1 -0
- package/dist/commands/backup.d.ts +3 -0
- package/dist/commands/backup.d.ts.map +1 -0
- package/dist/commands/backup.js +528 -0
- package/dist/commands/backup.js.map +1 -0
- package/dist/commands/completion.d.ts +3 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +405 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +665 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/disputes.d.ts +3 -0
- package/dist/commands/disputes.d.ts.map +1 -0
- package/dist/commands/disputes.js +499 -0
- package/dist/commands/disputes.js.map +1 -0
- package/dist/commands/gc.d.ts +3 -0
- package/dist/commands/gc.d.ts.map +1 -0
- package/dist/commands/gc.js +300 -0
- package/dist/commands/gc.js.map +1 -0
- package/dist/commands/git.d.ts +3 -0
- package/dist/commands/git.d.ts.map +1 -0
- package/dist/commands/git.js +458 -0
- package/dist/commands/git.js.map +1 -0
- package/dist/commands/health.d.ts +3 -0
- package/dist/commands/health.d.ts.map +1 -0
- package/dist/commands/health.js +604 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/hooks.d.ts +6 -0
- package/dist/commands/hooks.d.ts.map +1 -0
- package/dist/commands/hooks.js +529 -0
- package/dist/commands/hooks.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +200 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/llm.d.ts +7 -0
- package/dist/commands/llm.d.ts.map +1 -0
- package/dist/commands/llm.js +285 -0
- package/dist/commands/llm.js.map +1 -0
- package/dist/commands/locks.d.ts +3 -0
- package/dist/commands/locks.d.ts.map +1 -0
- package/dist/commands/locks.js +431 -0
- package/dist/commands/locks.js.map +1 -0
- package/dist/commands/logs.d.ts +3 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +487 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/loop-phases.d.ts +11 -0
- package/dist/commands/loop-phases.d.ts.map +1 -0
- package/dist/commands/loop-phases.js +204 -0
- package/dist/commands/loop-phases.js.map +1 -0
- package/dist/commands/loop.d.ts +3 -0
- package/dist/commands/loop.d.ts.map +1 -0
- package/dist/commands/loop.js +396 -0
- package/dist/commands/loop.js.map +1 -0
- package/dist/commands/projects.d.ts +6 -0
- package/dist/commands/projects.d.ts.map +1 -0
- package/dist/commands/projects.js +362 -0
- package/dist/commands/projects.js.map +1 -0
- package/dist/commands/purge.d.ts +3 -0
- package/dist/commands/purge.d.ts.map +1 -0
- package/dist/commands/purge.js +516 -0
- package/dist/commands/purge.js.map +1 -0
- package/dist/commands/runners.d.ts +3 -0
- package/dist/commands/runners.d.ts.map +1 -0
- package/dist/commands/runners.js +1076 -0
- package/dist/commands/runners.js.map +1 -0
- package/dist/commands/scan.d.ts +3 -0
- package/dist/commands/scan.d.ts.map +1 -0
- package/dist/commands/scan.js +291 -0
- package/dist/commands/scan.js.map +1 -0
- package/dist/commands/sections-commands.d.ts +9 -0
- package/dist/commands/sections-commands.d.ts.map +1 -0
- package/dist/commands/sections-commands.js +282 -0
- package/dist/commands/sections-commands.js.map +1 -0
- package/dist/commands/sections-graph.d.ts +25 -0
- package/dist/commands/sections-graph.d.ts.map +1 -0
- package/dist/commands/sections-graph.js +180 -0
- package/dist/commands/sections-graph.js.map +1 -0
- package/dist/commands/sections.d.ts +3 -0
- package/dist/commands/sections.d.ts.map +1 -0
- package/dist/commands/sections.js +376 -0
- package/dist/commands/sections.js.map +1 -0
- package/dist/commands/stats.d.ts +6 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +324 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/tasks.d.ts +3 -0
- package/dist/commands/tasks.d.ts.map +1 -0
- package/dist/commands/tasks.js +1115 -0
- package/dist/commands/tasks.js.map +1 -0
- package/dist/commands/web.d.ts +7 -0
- package/dist/commands/web.d.ts.map +1 -0
- package/dist/commands/web.js +204 -0
- package/dist/commands/web.js.map +1 -0
- package/dist/config/ai-setup.d.ts +27 -0
- package/dist/config/ai-setup.d.ts.map +1 -0
- package/dist/config/ai-setup.js +432 -0
- package/dist/config/ai-setup.js.map +1 -0
- package/dist/config/browser.d.ts +9 -0
- package/dist/config/browser.d.ts.map +1 -0
- package/dist/config/browser.js +200 -0
- package/dist/config/browser.js.map +1 -0
- package/dist/config/json-schema.d.ts +28 -0
- package/dist/config/json-schema.d.ts.map +1 -0
- package/dist/config/json-schema.js +84 -0
- package/dist/config/json-schema.js.map +1 -0
- package/dist/config/loader.d.ts +152 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +270 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/schema.d.ts +34 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +437 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/validator.d.ts +32 -0
- package/dist/config/validator.d.ts.map +1 -0
- package/dist/config/validator.js +187 -0
- package/dist/config/validator.js.map +1 -0
- package/dist/database/connection.d.ts +35 -0
- package/dist/database/connection.d.ts.map +1 -0
- package/dist/database/connection.js +208 -0
- package/dist/database/connection.js.map +1 -0
- package/dist/database/queries.d.ts +218 -0
- package/dist/database/queries.d.ts.map +1 -0
- package/dist/database/queries.js +613 -0
- package/dist/database/queries.js.map +1 -0
- package/dist/database/schema.d.ts +8 -0
- package/dist/database/schema.d.ts.map +1 -0
- package/dist/database/schema.js +160 -0
- package/dist/database/schema.js.map +1 -0
- package/dist/disputes/behavior.d.ts +106 -0
- package/dist/disputes/behavior.d.ts.map +1 -0
- package/dist/disputes/behavior.js +150 -0
- package/dist/disputes/behavior.js.map +1 -0
- package/dist/disputes/create.d.ts +59 -0
- package/dist/disputes/create.d.ts.map +1 -0
- package/dist/disputes/create.js +222 -0
- package/dist/disputes/create.js.map +1 -0
- package/dist/disputes/index.d.ts +21 -0
- package/dist/disputes/index.d.ts.map +1 -0
- package/dist/disputes/index.js +76 -0
- package/dist/disputes/index.js.map +1 -0
- package/dist/disputes/markdown.d.ts +41 -0
- package/dist/disputes/markdown.d.ts.map +1 -0
- package/dist/disputes/markdown.js +261 -0
- package/dist/disputes/markdown.js.map +1 -0
- package/dist/disputes/queries.d.ts +83 -0
- package/dist/disputes/queries.d.ts.map +1 -0
- package/dist/disputes/queries.js +180 -0
- package/dist/disputes/queries.js.map +1 -0
- package/dist/disputes/resolve.d.ts +57 -0
- package/dist/disputes/resolve.d.ts.map +1 -0
- package/dist/disputes/resolve.js +171 -0
- package/dist/disputes/resolve.js.map +1 -0
- package/dist/disputes/stale.d.ts +98 -0
- package/dist/disputes/stale.d.ts.map +1 -0
- package/dist/disputes/stale.js +205 -0
- package/dist/disputes/stale.js.map +1 -0
- package/dist/disputes/types.d.ts +92 -0
- package/dist/disputes/types.d.ts.map +1 -0
- package/dist/disputes/types.js +100 -0
- package/dist/disputes/types.js.map +1 -0
- package/dist/git/push.d.ts +26 -0
- package/dist/git/push.d.ts.map +1 -0
- package/dist/git/push.js +97 -0
- package/dist/git/push.js.map +1 -0
- package/dist/git/status.d.ts +61 -0
- package/dist/git/status.d.ts.map +1 -0
- package/dist/git/status.js +251 -0
- package/dist/git/status.js.map +1 -0
- package/dist/hooks/events.d.ts +72 -0
- package/dist/hooks/events.d.ts.map +1 -0
- package/dist/hooks/events.js +120 -0
- package/dist/hooks/events.js.map +1 -0
- package/dist/hooks/index.d.ts +19 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +48 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/integration.d.ts +69 -0
- package/dist/hooks/integration.d.ts.map +1 -0
- package/dist/hooks/integration.js +179 -0
- package/dist/hooks/integration.js.map +1 -0
- package/dist/hooks/merge.d.ts +115 -0
- package/dist/hooks/merge.d.ts.map +1 -0
- package/dist/hooks/merge.js +161 -0
- package/dist/hooks/merge.js.map +1 -0
- package/dist/hooks/orchestrator.d.ts +115 -0
- package/dist/hooks/orchestrator.d.ts.map +1 -0
- package/dist/hooks/orchestrator.js +226 -0
- package/dist/hooks/orchestrator.js.map +1 -0
- package/dist/hooks/payload.d.ts +294 -0
- package/dist/hooks/payload.d.ts.map +1 -0
- package/dist/hooks/payload.js +267 -0
- package/dist/hooks/payload.js.map +1 -0
- package/dist/hooks/script-runner.d.ts +63 -0
- package/dist/hooks/script-runner.d.ts.map +1 -0
- package/dist/hooks/script-runner.js +221 -0
- package/dist/hooks/script-runner.js.map +1 -0
- package/dist/hooks/templates.d.ts +104 -0
- package/dist/hooks/templates.d.ts.map +1 -0
- package/dist/hooks/templates.js +327 -0
- package/dist/hooks/templates.js.map +1 -0
- package/dist/hooks/webhook-runner.d.ts +69 -0
- package/dist/hooks/webhook-runner.d.ts.map +1 -0
- package/dist/hooks/webhook-runner.js +208 -0
- package/dist/hooks/webhook-runner.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +281 -0
- package/dist/index.js.map +1 -0
- package/dist/locking/cleanup.d.ts +70 -0
- package/dist/locking/cleanup.d.ts.map +1 -0
- package/dist/locking/cleanup.js +157 -0
- package/dist/locking/cleanup.js.map +1 -0
- package/dist/locking/queries.d.ts +116 -0
- package/dist/locking/queries.d.ts.map +1 -0
- package/dist/locking/queries.js +255 -0
- package/dist/locking/queries.js.map +1 -0
- package/dist/locking/section-lock.d.ts +74 -0
- package/dist/locking/section-lock.d.ts.map +1 -0
- package/dist/locking/section-lock.js +207 -0
- package/dist/locking/section-lock.js.map +1 -0
- package/dist/locking/task-lock.d.ts +92 -0
- package/dist/locking/task-lock.d.ts.map +1 -0
- package/dist/locking/task-lock.js +246 -0
- package/dist/locking/task-lock.js.map +1 -0
- package/dist/migrations/index.d.ts +7 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +37 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/manifest.d.ts +92 -0
- package/dist/migrations/manifest.d.ts.map +1 -0
- package/dist/migrations/manifest.js +270 -0
- package/dist/migrations/manifest.js.map +1 -0
- package/dist/migrations/runner.d.ts +84 -0
- package/dist/migrations/runner.d.ts.map +1 -0
- package/dist/migrations/runner.js +351 -0
- package/dist/migrations/runner.js.map +1 -0
- package/dist/orchestrator/coder.d.ts +32 -0
- package/dist/orchestrator/coder.d.ts.map +1 -0
- package/dist/orchestrator/coder.js +174 -0
- package/dist/orchestrator/coder.js.map +1 -0
- package/dist/orchestrator/coordinator.d.ts +28 -0
- package/dist/orchestrator/coordinator.d.ts.map +1 -0
- package/dist/orchestrator/coordinator.js +256 -0
- package/dist/orchestrator/coordinator.js.map +1 -0
- package/dist/orchestrator/reviewer.d.ts +35 -0
- package/dist/orchestrator/reviewer.d.ts.map +1 -0
- package/dist/orchestrator/reviewer.js +241 -0
- package/dist/orchestrator/reviewer.js.map +1 -0
- package/dist/orchestrator/task-selector.d.ts +102 -0
- package/dist/orchestrator/task-selector.d.ts.map +1 -0
- package/dist/orchestrator/task-selector.js +341 -0
- package/dist/orchestrator/task-selector.js.map +1 -0
- package/dist/prompts/coder.d.ts +36 -0
- package/dist/prompts/coder.d.ts.map +1 -0
- package/dist/prompts/coder.js +315 -0
- package/dist/prompts/coder.js.map +1 -0
- package/dist/prompts/prompt-helpers.d.ts +51 -0
- package/dist/prompts/prompt-helpers.d.ts.map +1 -0
- package/dist/prompts/prompt-helpers.js +312 -0
- package/dist/prompts/prompt-helpers.js.map +1 -0
- package/dist/prompts/reviewer.d.ts +40 -0
- package/dist/prompts/reviewer.d.ts.map +1 -0
- package/dist/prompts/reviewer.js +438 -0
- package/dist/prompts/reviewer.js.map +1 -0
- package/dist/providers/api-models.d.ts +65 -0
- package/dist/providers/api-models.d.ts.map +1 -0
- package/dist/providers/api-models.js +323 -0
- package/dist/providers/api-models.js.map +1 -0
- package/dist/providers/claude.d.ts +53 -0
- package/dist/providers/claude.d.ts.map +1 -0
- package/dist/providers/claude.js +229 -0
- package/dist/providers/claude.js.map +1 -0
- package/dist/providers/codex.d.ts +53 -0
- package/dist/providers/codex.d.ts.map +1 -0
- package/dist/providers/codex.js +214 -0
- package/dist/providers/codex.js.map +1 -0
- package/dist/providers/gemini.d.ts +58 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +242 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/index.d.ts +13 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +49 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/interface.d.ts +173 -0
- package/dist/providers/interface.d.ts.map +1 -0
- package/dist/providers/interface.js +96 -0
- package/dist/providers/interface.js.map +1 -0
- package/dist/providers/invocation-logger.d.ts +114 -0
- package/dist/providers/invocation-logger.d.ts.map +1 -0
- package/dist/providers/invocation-logger.js +298 -0
- package/dist/providers/invocation-logger.js.map +1 -0
- package/dist/providers/openai.d.ts +53 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +232 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/registry.d.ts +100 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +178 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/runners/activity-log.d.ts +65 -0
- package/dist/runners/activity-log.d.ts.map +1 -0
- package/dist/runners/activity-log.js +148 -0
- package/dist/runners/activity-log.js.map +1 -0
- package/dist/runners/cron.d.ts +26 -0
- package/dist/runners/cron.d.ts.map +1 -0
- package/dist/runners/cron.js +176 -0
- package/dist/runners/cron.js.map +1 -0
- package/dist/runners/daemon.d.ts +71 -0
- package/dist/runners/daemon.d.ts.map +1 -0
- package/dist/runners/daemon.js +245 -0
- package/dist/runners/daemon.js.map +1 -0
- package/dist/runners/global-db.d.ts +31 -0
- package/dist/runners/global-db.d.ts.map +1 -0
- package/dist/runners/global-db.js +230 -0
- package/dist/runners/global-db.js.map +1 -0
- package/dist/runners/hang-detector.d.ts +38 -0
- package/dist/runners/hang-detector.d.ts.map +1 -0
- package/dist/runners/hang-detector.js +136 -0
- package/dist/runners/hang-detector.js.map +1 -0
- package/dist/runners/heartbeat.d.ts +39 -0
- package/dist/runners/heartbeat.d.ts.map +1 -0
- package/dist/runners/heartbeat.js +79 -0
- package/dist/runners/heartbeat.js.map +1 -0
- package/dist/runners/lock.d.ts +47 -0
- package/dist/runners/lock.d.ts.map +1 -0
- package/dist/runners/lock.js +150 -0
- package/dist/runners/lock.js.map +1 -0
- package/dist/runners/orchestrator-loop.d.ts +20 -0
- package/dist/runners/orchestrator-loop.d.ts.map +1 -0
- package/dist/runners/orchestrator-loop.js +285 -0
- package/dist/runners/orchestrator-loop.js.map +1 -0
- package/dist/runners/projects.d.ts +96 -0
- package/dist/runners/projects.d.ts.map +1 -0
- package/dist/runners/projects.js +255 -0
- package/dist/runners/projects.js.map +1 -0
- package/dist/runners/wakeup.d.ts +34 -0
- package/dist/runners/wakeup.d.ts.map +1 -0
- package/dist/runners/wakeup.js +291 -0
- package/dist/runners/wakeup.js.map +1 -0
- package/migrations/001_initial_schema.sql +106 -0
- package/migrations/002_add_commit_sha.sql +12 -0
- package/migrations/003_add_section_priority.sql +13 -0
- package/migrations/004_add_section_dependencies.sql +18 -0
- package/migrations/005_add_audit_actor_model.sql +10 -0
- package/migrations/006_add_task_invocations.sql +33 -0
- package/migrations/007_add_file_anchor.sql +14 -0
- package/migrations/manifest.json +62 -0
- package/package.json +49 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/providers/codex.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EACL,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAkCxB;;GAEG;AACH,qBAAa,aAAc,SAAQ,cAAc;IAC/C,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,WAAW,kBAAkB;IAEtC;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,4BAA4B,IAAI,MAAM;IAItC;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAuB3E;;OAEG;IACH,OAAO,CAAC,cAAc;IAgFtB;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAyBrC;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IAItB;;OAEG;IACH,YAAY,IAAI,SAAS,EAAE;IAI3B;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS;CAGjF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAEnD"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Codex Provider
|
|
4
|
+
* Implementation for OpenAI Codex CLI
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.CodexProvider = void 0;
|
|
8
|
+
exports.createCodexProvider = createCodexProvider;
|
|
9
|
+
const node_child_process_1 = require("node:child_process");
|
|
10
|
+
const node_fs_1 = require("node:fs");
|
|
11
|
+
const node_os_1 = require("node:os");
|
|
12
|
+
const node_path_1 = require("node:path");
|
|
13
|
+
const interface_js_1 = require("./interface.js");
|
|
14
|
+
/**
|
|
15
|
+
* Available Codex models
|
|
16
|
+
*/
|
|
17
|
+
const CODEX_MODELS = [
|
|
18
|
+
{
|
|
19
|
+
id: 'codex',
|
|
20
|
+
name: 'Codex',
|
|
21
|
+
recommendedFor: ['reviewer'],
|
|
22
|
+
supportsStreaming: true,
|
|
23
|
+
},
|
|
24
|
+
];
|
|
25
|
+
/**
|
|
26
|
+
* Default models per role
|
|
27
|
+
*/
|
|
28
|
+
const DEFAULT_MODELS = {
|
|
29
|
+
orchestrator: undefined,
|
|
30
|
+
coder: undefined,
|
|
31
|
+
reviewer: 'codex',
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Default timeout in milliseconds (15 minutes)
|
|
35
|
+
*/
|
|
36
|
+
const DEFAULT_TIMEOUT = 900_000;
|
|
37
|
+
/**
|
|
38
|
+
* Default invocation template for Codex CLI
|
|
39
|
+
* Uses exec --full-auto with prompt from file
|
|
40
|
+
*/
|
|
41
|
+
const DEFAULT_INVOCATION_TEMPLATE = '{cli} exec --full-auto --prompt "$(cat {prompt_file})"';
|
|
42
|
+
/**
|
|
43
|
+
* Codex AI Provider implementation
|
|
44
|
+
*/
|
|
45
|
+
class CodexProvider extends interface_js_1.BaseAIProvider {
|
|
46
|
+
name = 'codex';
|
|
47
|
+
displayName = 'OpenAI Codex';
|
|
48
|
+
/**
|
|
49
|
+
* Write prompt to a temporary file
|
|
50
|
+
*/
|
|
51
|
+
writePromptFile(prompt) {
|
|
52
|
+
const tempPath = (0, node_path_1.join)((0, node_os_1.tmpdir)(), `steroids-codex-${Date.now()}.txt`);
|
|
53
|
+
(0, node_fs_1.writeFileSync)(tempPath, prompt, { mode: 0o600 });
|
|
54
|
+
return tempPath;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Clean up temporary prompt file
|
|
58
|
+
*/
|
|
59
|
+
cleanupPromptFile(path) {
|
|
60
|
+
try {
|
|
61
|
+
if ((0, node_fs_1.existsSync)(path)) {
|
|
62
|
+
(0, node_fs_1.unlinkSync)(path);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// Ignore cleanup errors
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get the default invocation template
|
|
71
|
+
*/
|
|
72
|
+
getDefaultInvocationTemplate() {
|
|
73
|
+
return DEFAULT_INVOCATION_TEMPLATE;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Invoke Codex CLI with a prompt
|
|
77
|
+
*/
|
|
78
|
+
async invoke(prompt, options) {
|
|
79
|
+
const timeout = options.timeout ?? DEFAULT_TIMEOUT;
|
|
80
|
+
const cwd = options.cwd ?? process.cwd();
|
|
81
|
+
const streamOutput = options.streamOutput ?? true;
|
|
82
|
+
// Apply custom invocation template if provided in options
|
|
83
|
+
if (options.invocationTemplate) {
|
|
84
|
+
this.setInvocationTemplate(options.invocationTemplate);
|
|
85
|
+
}
|
|
86
|
+
// Write prompt to temp file
|
|
87
|
+
const promptFile = options.promptFile ?? this.writePromptFile(prompt);
|
|
88
|
+
const createdTempFile = !options.promptFile;
|
|
89
|
+
try {
|
|
90
|
+
return await this.invokeWithFile(promptFile, options.model, timeout, cwd, streamOutput);
|
|
91
|
+
}
|
|
92
|
+
finally {
|
|
93
|
+
if (createdTempFile) {
|
|
94
|
+
this.cleanupPromptFile(promptFile);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Invoke Codex CLI with a prompt file using the invocation template
|
|
100
|
+
*/
|
|
101
|
+
invokeWithFile(promptFile, model, timeout, cwd, streamOutput) {
|
|
102
|
+
return new Promise((resolve) => {
|
|
103
|
+
const startTime = Date.now();
|
|
104
|
+
let stdout = '';
|
|
105
|
+
let stderr = '';
|
|
106
|
+
let timedOut = false;
|
|
107
|
+
// Build command from invocation template
|
|
108
|
+
const command = this.buildCommand(promptFile, model);
|
|
109
|
+
// Spawn using shell to handle the command template
|
|
110
|
+
const child = (0, node_child_process_1.spawn)(command, {
|
|
111
|
+
shell: true,
|
|
112
|
+
cwd,
|
|
113
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
114
|
+
});
|
|
115
|
+
const timeoutHandle = setTimeout(() => {
|
|
116
|
+
timedOut = true;
|
|
117
|
+
child.kill('SIGTERM');
|
|
118
|
+
// Force kill after 5 seconds if still running
|
|
119
|
+
setTimeout(() => {
|
|
120
|
+
if (!child.killed) {
|
|
121
|
+
child.kill('SIGKILL');
|
|
122
|
+
}
|
|
123
|
+
}, 5000);
|
|
124
|
+
}, timeout);
|
|
125
|
+
child.stdout?.on('data', (data) => {
|
|
126
|
+
const text = data.toString();
|
|
127
|
+
stdout += text;
|
|
128
|
+
if (streamOutput) {
|
|
129
|
+
process.stdout.write(text);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
child.stderr?.on('data', (data) => {
|
|
133
|
+
const text = data.toString();
|
|
134
|
+
stderr += text;
|
|
135
|
+
if (streamOutput) {
|
|
136
|
+
process.stderr.write(text);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
child.on('close', (code) => {
|
|
140
|
+
clearTimeout(timeoutHandle);
|
|
141
|
+
const duration = Date.now() - startTime;
|
|
142
|
+
resolve({
|
|
143
|
+
success: code === 0 && !timedOut,
|
|
144
|
+
exitCode: code ?? 1,
|
|
145
|
+
stdout,
|
|
146
|
+
stderr,
|
|
147
|
+
duration,
|
|
148
|
+
timedOut,
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
child.on('error', (error) => {
|
|
152
|
+
clearTimeout(timeoutHandle);
|
|
153
|
+
const duration = Date.now() - startTime;
|
|
154
|
+
resolve({
|
|
155
|
+
success: false,
|
|
156
|
+
exitCode: 1,
|
|
157
|
+
stdout,
|
|
158
|
+
stderr: error.message,
|
|
159
|
+
duration,
|
|
160
|
+
timedOut: false,
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Check if Codex CLI is available
|
|
167
|
+
*/
|
|
168
|
+
async isAvailable() {
|
|
169
|
+
return new Promise((resolve) => {
|
|
170
|
+
const cli = this.cliPath ?? 'codex';
|
|
171
|
+
const child = (0, node_child_process_1.spawn)('which', [cli], {
|
|
172
|
+
shell: true,
|
|
173
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
174
|
+
});
|
|
175
|
+
child.on('close', (code) => {
|
|
176
|
+
resolve(code === 0);
|
|
177
|
+
});
|
|
178
|
+
child.on('error', () => {
|
|
179
|
+
resolve(false);
|
|
180
|
+
});
|
|
181
|
+
// Timeout after 5 seconds
|
|
182
|
+
setTimeout(() => {
|
|
183
|
+
child.kill();
|
|
184
|
+
resolve(false);
|
|
185
|
+
}, 5000);
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* List available model IDs
|
|
190
|
+
*/
|
|
191
|
+
listModels() {
|
|
192
|
+
return CODEX_MODELS.map((m) => m.id);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Get detailed model information
|
|
196
|
+
*/
|
|
197
|
+
getModelInfo() {
|
|
198
|
+
return [...CODEX_MODELS];
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Get the default model for a role
|
|
202
|
+
*/
|
|
203
|
+
getDefaultModel(role) {
|
|
204
|
+
return DEFAULT_MODELS[role];
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
exports.CodexProvider = CodexProvider;
|
|
208
|
+
/**
|
|
209
|
+
* Create a Codex provider instance
|
|
210
|
+
*/
|
|
211
|
+
function createCodexProvider() {
|
|
212
|
+
return new CodexProvider();
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=codex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/providers/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini Provider
|
|
3
|
+
* Implementation for Google Gemini CLI
|
|
4
|
+
*/
|
|
5
|
+
import { BaseAIProvider, type InvokeOptions, type InvokeResult, type ModelInfo } from './interface.js';
|
|
6
|
+
/**
|
|
7
|
+
* Gemini AI Provider implementation
|
|
8
|
+
*/
|
|
9
|
+
export declare class GeminiProvider extends BaseAIProvider {
|
|
10
|
+
readonly name = "gemini";
|
|
11
|
+
readonly displayName = "Google Gemini";
|
|
12
|
+
/**
|
|
13
|
+
* Write prompt to a temporary file
|
|
14
|
+
*/
|
|
15
|
+
private writePromptFile;
|
|
16
|
+
/**
|
|
17
|
+
* Clean up temporary prompt file
|
|
18
|
+
*/
|
|
19
|
+
private cleanupPromptFile;
|
|
20
|
+
/**
|
|
21
|
+
* Get the default invocation template
|
|
22
|
+
*/
|
|
23
|
+
getDefaultInvocationTemplate(): string;
|
|
24
|
+
/**
|
|
25
|
+
* Invoke Gemini CLI with a prompt
|
|
26
|
+
*/
|
|
27
|
+
invoke(prompt: string, options: InvokeOptions): Promise<InvokeResult>;
|
|
28
|
+
/**
|
|
29
|
+
* Invoke Gemini CLI with a prompt file using the invocation template
|
|
30
|
+
*/
|
|
31
|
+
private invokeWithFile;
|
|
32
|
+
/**
|
|
33
|
+
* Check if Gemini CLI is available
|
|
34
|
+
* Checks for both 'gemini' and 'gcloud' CLIs
|
|
35
|
+
*/
|
|
36
|
+
isAvailable(): Promise<boolean>;
|
|
37
|
+
/**
|
|
38
|
+
* Check if a specific CLI is available
|
|
39
|
+
*/
|
|
40
|
+
private checkCliAvailable;
|
|
41
|
+
/**
|
|
42
|
+
* List available model IDs
|
|
43
|
+
*/
|
|
44
|
+
listModels(): string[];
|
|
45
|
+
/**
|
|
46
|
+
* Get detailed model information
|
|
47
|
+
*/
|
|
48
|
+
getModelInfo(): ModelInfo[];
|
|
49
|
+
/**
|
|
50
|
+
* Get the default model for a role
|
|
51
|
+
*/
|
|
52
|
+
getDefaultModel(role: 'orchestrator' | 'coder' | 'reviewer'): string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Create a Gemini provider instance
|
|
56
|
+
*/
|
|
57
|
+
export declare function createGeminiProvider(): GeminiProvider;
|
|
58
|
+
//# sourceMappingURL=gemini.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EACL,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AA8CxB;;GAEG;AACH,qBAAa,cAAe,SAAQ,cAAc;IAChD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,mBAAmB;IAEvC;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,4BAA4B,IAAI,MAAM;IAItC;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAuB3E;;OAEG;IACH,OAAO,CAAC,cAAc;IAgFtB;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAiBrC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IAItB;;OAEG;IACH,YAAY,IAAI,SAAS,EAAE;IAI3B;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM;CAGrE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAErD"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Gemini Provider
|
|
4
|
+
* Implementation for Google Gemini CLI
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.GeminiProvider = void 0;
|
|
8
|
+
exports.createGeminiProvider = createGeminiProvider;
|
|
9
|
+
const node_child_process_1 = require("node:child_process");
|
|
10
|
+
const node_fs_1 = require("node:fs");
|
|
11
|
+
const node_os_1 = require("node:os");
|
|
12
|
+
const node_path_1 = require("node:path");
|
|
13
|
+
const interface_js_1 = require("./interface.js");
|
|
14
|
+
/**
|
|
15
|
+
* Available Gemini models
|
|
16
|
+
*/
|
|
17
|
+
const GEMINI_MODELS = [
|
|
18
|
+
{
|
|
19
|
+
id: 'gemini-pro',
|
|
20
|
+
name: 'Gemini Pro',
|
|
21
|
+
recommendedFor: ['coder'],
|
|
22
|
+
supportsStreaming: true,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
id: 'gemini-ultra',
|
|
26
|
+
name: 'Gemini Ultra',
|
|
27
|
+
recommendedFor: ['orchestrator', 'reviewer'],
|
|
28
|
+
supportsStreaming: true,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
id: 'gemini-flash',
|
|
32
|
+
name: 'Gemini Flash',
|
|
33
|
+
recommendedFor: [],
|
|
34
|
+
supportsStreaming: true,
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
/**
|
|
38
|
+
* Default models per role
|
|
39
|
+
*/
|
|
40
|
+
const DEFAULT_MODELS = {
|
|
41
|
+
orchestrator: 'gemini-ultra',
|
|
42
|
+
coder: 'gemini-pro',
|
|
43
|
+
reviewer: 'gemini-ultra',
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Default timeout in milliseconds (15 minutes)
|
|
47
|
+
*/
|
|
48
|
+
const DEFAULT_TIMEOUT = 900_000;
|
|
49
|
+
/**
|
|
50
|
+
* Default invocation template for Gemini CLI
|
|
51
|
+
* Uses stdin input from prompt file
|
|
52
|
+
*/
|
|
53
|
+
const DEFAULT_INVOCATION_TEMPLATE = '{cli} generate < {prompt_file}';
|
|
54
|
+
/**
|
|
55
|
+
* Gemini AI Provider implementation
|
|
56
|
+
*/
|
|
57
|
+
class GeminiProvider extends interface_js_1.BaseAIProvider {
|
|
58
|
+
name = 'gemini';
|
|
59
|
+
displayName = 'Google Gemini';
|
|
60
|
+
/**
|
|
61
|
+
* Write prompt to a temporary file
|
|
62
|
+
*/
|
|
63
|
+
writePromptFile(prompt) {
|
|
64
|
+
const tempPath = (0, node_path_1.join)((0, node_os_1.tmpdir)(), `steroids-gemini-${Date.now()}.txt`);
|
|
65
|
+
(0, node_fs_1.writeFileSync)(tempPath, prompt, { mode: 0o600 });
|
|
66
|
+
return tempPath;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Clean up temporary prompt file
|
|
70
|
+
*/
|
|
71
|
+
cleanupPromptFile(path) {
|
|
72
|
+
try {
|
|
73
|
+
if ((0, node_fs_1.existsSync)(path)) {
|
|
74
|
+
(0, node_fs_1.unlinkSync)(path);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
// Ignore cleanup errors
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Get the default invocation template
|
|
83
|
+
*/
|
|
84
|
+
getDefaultInvocationTemplate() {
|
|
85
|
+
return DEFAULT_INVOCATION_TEMPLATE;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Invoke Gemini CLI with a prompt
|
|
89
|
+
*/
|
|
90
|
+
async invoke(prompt, options) {
|
|
91
|
+
const timeout = options.timeout ?? DEFAULT_TIMEOUT;
|
|
92
|
+
const cwd = options.cwd ?? process.cwd();
|
|
93
|
+
const streamOutput = options.streamOutput ?? true;
|
|
94
|
+
// Apply custom invocation template if provided in options
|
|
95
|
+
if (options.invocationTemplate) {
|
|
96
|
+
this.setInvocationTemplate(options.invocationTemplate);
|
|
97
|
+
}
|
|
98
|
+
// Write prompt to temp file
|
|
99
|
+
const promptFile = options.promptFile ?? this.writePromptFile(prompt);
|
|
100
|
+
const createdTempFile = !options.promptFile;
|
|
101
|
+
try {
|
|
102
|
+
return await this.invokeWithFile(promptFile, options.model, timeout, cwd, streamOutput);
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
if (createdTempFile) {
|
|
106
|
+
this.cleanupPromptFile(promptFile);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Invoke Gemini CLI with a prompt file using the invocation template
|
|
112
|
+
*/
|
|
113
|
+
invokeWithFile(promptFile, model, timeout, cwd, streamOutput) {
|
|
114
|
+
return new Promise((resolve) => {
|
|
115
|
+
const startTime = Date.now();
|
|
116
|
+
let stdout = '';
|
|
117
|
+
let stderr = '';
|
|
118
|
+
let timedOut = false;
|
|
119
|
+
// Build command from invocation template
|
|
120
|
+
const command = this.buildCommand(promptFile, model);
|
|
121
|
+
// Spawn using shell to handle the command template
|
|
122
|
+
const child = (0, node_child_process_1.spawn)(command, {
|
|
123
|
+
shell: true,
|
|
124
|
+
cwd,
|
|
125
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
126
|
+
});
|
|
127
|
+
const timeoutHandle = setTimeout(() => {
|
|
128
|
+
timedOut = true;
|
|
129
|
+
child.kill('SIGTERM');
|
|
130
|
+
// Force kill after 5 seconds if still running
|
|
131
|
+
setTimeout(() => {
|
|
132
|
+
if (!child.killed) {
|
|
133
|
+
child.kill('SIGKILL');
|
|
134
|
+
}
|
|
135
|
+
}, 5000);
|
|
136
|
+
}, timeout);
|
|
137
|
+
child.stdout?.on('data', (data) => {
|
|
138
|
+
const text = data.toString();
|
|
139
|
+
stdout += text;
|
|
140
|
+
if (streamOutput) {
|
|
141
|
+
process.stdout.write(text);
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
child.stderr?.on('data', (data) => {
|
|
145
|
+
const text = data.toString();
|
|
146
|
+
stderr += text;
|
|
147
|
+
if (streamOutput) {
|
|
148
|
+
process.stderr.write(text);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
child.on('close', (code) => {
|
|
152
|
+
clearTimeout(timeoutHandle);
|
|
153
|
+
const duration = Date.now() - startTime;
|
|
154
|
+
resolve({
|
|
155
|
+
success: code === 0 && !timedOut,
|
|
156
|
+
exitCode: code ?? 1,
|
|
157
|
+
stdout,
|
|
158
|
+
stderr,
|
|
159
|
+
duration,
|
|
160
|
+
timedOut,
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
child.on('error', (error) => {
|
|
164
|
+
clearTimeout(timeoutHandle);
|
|
165
|
+
const duration = Date.now() - startTime;
|
|
166
|
+
resolve({
|
|
167
|
+
success: false,
|
|
168
|
+
exitCode: 1,
|
|
169
|
+
stdout,
|
|
170
|
+
stderr: error.message,
|
|
171
|
+
duration,
|
|
172
|
+
timedOut: false,
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Check if Gemini CLI is available
|
|
179
|
+
* Checks for both 'gemini' and 'gcloud' CLIs
|
|
180
|
+
*/
|
|
181
|
+
async isAvailable() {
|
|
182
|
+
const cli = this.cliPath ?? 'gemini';
|
|
183
|
+
// First try the specified or default gemini CLI
|
|
184
|
+
const geminiAvailable = await this.checkCliAvailable(cli);
|
|
185
|
+
if (geminiAvailable) {
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
// Fall back to gcloud if gemini CLI not found
|
|
189
|
+
if (cli === 'gemini') {
|
|
190
|
+
return this.checkCliAvailable('gcloud');
|
|
191
|
+
}
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Check if a specific CLI is available
|
|
196
|
+
*/
|
|
197
|
+
checkCliAvailable(cli) {
|
|
198
|
+
return new Promise((resolve) => {
|
|
199
|
+
const child = (0, node_child_process_1.spawn)('which', [cli], {
|
|
200
|
+
shell: true,
|
|
201
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
202
|
+
});
|
|
203
|
+
child.on('close', (code) => {
|
|
204
|
+
resolve(code === 0);
|
|
205
|
+
});
|
|
206
|
+
child.on('error', () => {
|
|
207
|
+
resolve(false);
|
|
208
|
+
});
|
|
209
|
+
// Timeout after 5 seconds
|
|
210
|
+
setTimeout(() => {
|
|
211
|
+
child.kill();
|
|
212
|
+
resolve(false);
|
|
213
|
+
}, 5000);
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* List available model IDs
|
|
218
|
+
*/
|
|
219
|
+
listModels() {
|
|
220
|
+
return GEMINI_MODELS.map((m) => m.id);
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Get detailed model information
|
|
224
|
+
*/
|
|
225
|
+
getModelInfo() {
|
|
226
|
+
return [...GEMINI_MODELS];
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Get the default model for a role
|
|
230
|
+
*/
|
|
231
|
+
getDefaultModel(role) {
|
|
232
|
+
return DEFAULT_MODELS[role];
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
exports.GeminiProvider = GeminiProvider;
|
|
236
|
+
/**
|
|
237
|
+
* Create a Gemini provider instance
|
|
238
|
+
*/
|
|
239
|
+
function createGeminiProvider() {
|
|
240
|
+
return new GeminiProvider();
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=gemini.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Providers Module
|
|
3
|
+
* Exports all provider-related types and implementations
|
|
4
|
+
*/
|
|
5
|
+
export { type InvokeOptions, type InvokeResult, type ProviderErrorType, type ProviderError, type ModelInfo, type IAIProvider, BaseAIProvider, } from './interface.js';
|
|
6
|
+
export { ClaudeProvider, createClaudeProvider } from './claude.js';
|
|
7
|
+
export { CodexProvider, createCodexProvider } from './codex.js';
|
|
8
|
+
export { GeminiProvider, createGeminiProvider } from './gemini.js';
|
|
9
|
+
export { OpenAIProvider, createOpenAIProvider } from './openai.js';
|
|
10
|
+
export { type ProviderStatus, ProviderRegistry, createDefaultRegistry, getProviderRegistry, setProviderRegistry, resetProviderRegistry, } from './registry.js';
|
|
11
|
+
export { type APIModel, type FetchModelsResult, fetchClaudeModels, fetchOpenAIModels, fetchGeminiModels, fetchModelsForProvider, getApiKeyEnvVar, hasApiKey, } from './api-models.js';
|
|
12
|
+
export { type InvocationLogEntry, type InvocationLoggerConfig, InvocationLogger, getInvocationLogger, setInvocationLogger, resetInvocationLogger, logInvocation, } from './invocation-logger.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGnE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGhE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGnE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGnE,OAAO,EACL,KAAK,cAAc,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,SAAS,GACV,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,GACd,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* AI Providers Module
|
|
4
|
+
* Exports all provider-related types and implementations
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.logInvocation = exports.resetInvocationLogger = exports.setInvocationLogger = exports.getInvocationLogger = exports.InvocationLogger = exports.hasApiKey = exports.getApiKeyEnvVar = exports.fetchModelsForProvider = exports.fetchGeminiModels = exports.fetchOpenAIModels = exports.fetchClaudeModels = exports.resetProviderRegistry = exports.setProviderRegistry = exports.getProviderRegistry = exports.createDefaultRegistry = exports.ProviderRegistry = exports.createOpenAIProvider = exports.OpenAIProvider = exports.createGeminiProvider = exports.GeminiProvider = exports.createCodexProvider = exports.CodexProvider = exports.createClaudeProvider = exports.ClaudeProvider = exports.BaseAIProvider = void 0;
|
|
8
|
+
// Interface and base class
|
|
9
|
+
var interface_js_1 = require("./interface.js");
|
|
10
|
+
Object.defineProperty(exports, "BaseAIProvider", { enumerable: true, get: function () { return interface_js_1.BaseAIProvider; } });
|
|
11
|
+
// Claude provider
|
|
12
|
+
var claude_js_1 = require("./claude.js");
|
|
13
|
+
Object.defineProperty(exports, "ClaudeProvider", { enumerable: true, get: function () { return claude_js_1.ClaudeProvider; } });
|
|
14
|
+
Object.defineProperty(exports, "createClaudeProvider", { enumerable: true, get: function () { return claude_js_1.createClaudeProvider; } });
|
|
15
|
+
// Codex provider
|
|
16
|
+
var codex_js_1 = require("./codex.js");
|
|
17
|
+
Object.defineProperty(exports, "CodexProvider", { enumerable: true, get: function () { return codex_js_1.CodexProvider; } });
|
|
18
|
+
Object.defineProperty(exports, "createCodexProvider", { enumerable: true, get: function () { return codex_js_1.createCodexProvider; } });
|
|
19
|
+
// Gemini provider
|
|
20
|
+
var gemini_js_1 = require("./gemini.js");
|
|
21
|
+
Object.defineProperty(exports, "GeminiProvider", { enumerable: true, get: function () { return gemini_js_1.GeminiProvider; } });
|
|
22
|
+
Object.defineProperty(exports, "createGeminiProvider", { enumerable: true, get: function () { return gemini_js_1.createGeminiProvider; } });
|
|
23
|
+
// OpenAI provider
|
|
24
|
+
var openai_js_1 = require("./openai.js");
|
|
25
|
+
Object.defineProperty(exports, "OpenAIProvider", { enumerable: true, get: function () { return openai_js_1.OpenAIProvider; } });
|
|
26
|
+
Object.defineProperty(exports, "createOpenAIProvider", { enumerable: true, get: function () { return openai_js_1.createOpenAIProvider; } });
|
|
27
|
+
// Registry
|
|
28
|
+
var registry_js_1 = require("./registry.js");
|
|
29
|
+
Object.defineProperty(exports, "ProviderRegistry", { enumerable: true, get: function () { return registry_js_1.ProviderRegistry; } });
|
|
30
|
+
Object.defineProperty(exports, "createDefaultRegistry", { enumerable: true, get: function () { return registry_js_1.createDefaultRegistry; } });
|
|
31
|
+
Object.defineProperty(exports, "getProviderRegistry", { enumerable: true, get: function () { return registry_js_1.getProviderRegistry; } });
|
|
32
|
+
Object.defineProperty(exports, "setProviderRegistry", { enumerable: true, get: function () { return registry_js_1.setProviderRegistry; } });
|
|
33
|
+
Object.defineProperty(exports, "resetProviderRegistry", { enumerable: true, get: function () { return registry_js_1.resetProviderRegistry; } });
|
|
34
|
+
// API model fetching
|
|
35
|
+
var api_models_js_1 = require("./api-models.js");
|
|
36
|
+
Object.defineProperty(exports, "fetchClaudeModels", { enumerable: true, get: function () { return api_models_js_1.fetchClaudeModels; } });
|
|
37
|
+
Object.defineProperty(exports, "fetchOpenAIModels", { enumerable: true, get: function () { return api_models_js_1.fetchOpenAIModels; } });
|
|
38
|
+
Object.defineProperty(exports, "fetchGeminiModels", { enumerable: true, get: function () { return api_models_js_1.fetchGeminiModels; } });
|
|
39
|
+
Object.defineProperty(exports, "fetchModelsForProvider", { enumerable: true, get: function () { return api_models_js_1.fetchModelsForProvider; } });
|
|
40
|
+
Object.defineProperty(exports, "getApiKeyEnvVar", { enumerable: true, get: function () { return api_models_js_1.getApiKeyEnvVar; } });
|
|
41
|
+
Object.defineProperty(exports, "hasApiKey", { enumerable: true, get: function () { return api_models_js_1.hasApiKey; } });
|
|
42
|
+
// Invocation logging
|
|
43
|
+
var invocation_logger_js_1 = require("./invocation-logger.js");
|
|
44
|
+
Object.defineProperty(exports, "InvocationLogger", { enumerable: true, get: function () { return invocation_logger_js_1.InvocationLogger; } });
|
|
45
|
+
Object.defineProperty(exports, "getInvocationLogger", { enumerable: true, get: function () { return invocation_logger_js_1.getInvocationLogger; } });
|
|
46
|
+
Object.defineProperty(exports, "setInvocationLogger", { enumerable: true, get: function () { return invocation_logger_js_1.setInvocationLogger; } });
|
|
47
|
+
Object.defineProperty(exports, "resetInvocationLogger", { enumerable: true, get: function () { return invocation_logger_js_1.resetInvocationLogger; } });
|
|
48
|
+
Object.defineProperty(exports, "logInvocation", { enumerable: true, get: function () { return invocation_logger_js_1.logInvocation; } });
|
|
49
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2BAA2B;AAC3B,+CAQwB;AADtB,8GAAA,cAAc,OAAA;AAGhB,kBAAkB;AAClB,yCAAmE;AAA1D,2GAAA,cAAc,OAAA;AAAE,iHAAA,oBAAoB,OAAA;AAE7C,iBAAiB;AACjB,uCAAgE;AAAvD,yGAAA,aAAa,OAAA;AAAE,+GAAA,mBAAmB,OAAA;AAE3C,kBAAkB;AAClB,yCAAmE;AAA1D,2GAAA,cAAc,OAAA;AAAE,iHAAA,oBAAoB,OAAA;AAE7C,kBAAkB;AAClB,yCAAmE;AAA1D,2GAAA,cAAc,OAAA;AAAE,iHAAA,oBAAoB,OAAA;AAE7C,WAAW;AACX,6CAOuB;AALrB,+GAAA,gBAAgB,OAAA;AAChB,oHAAA,qBAAqB,OAAA;AACrB,kHAAA,mBAAmB,OAAA;AACnB,kHAAA,mBAAmB,OAAA;AACnB,oHAAA,qBAAqB,OAAA;AAGvB,qBAAqB;AACrB,iDASyB;AANvB,kHAAA,iBAAiB,OAAA;AACjB,kHAAA,iBAAiB,OAAA;AACjB,kHAAA,iBAAiB,OAAA;AACjB,uHAAA,sBAAsB,OAAA;AACtB,gHAAA,eAAe,OAAA;AACf,0GAAA,SAAS,OAAA;AAGX,qBAAqB;AACrB,+DAQgC;AAL9B,wHAAA,gBAAgB,OAAA;AAChB,2HAAA,mBAAmB,OAAA;AACnB,2HAAA,mBAAmB,OAAA;AACnB,6HAAA,qBAAqB,OAAA;AACrB,qHAAA,aAAa,OAAA"}
|