spec-cat 0.1.63 → 0.1.64
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/.output/nitro.json +1 -1
- package/.output/public/_nuxt/BOa_3MnO.js +1 -0
- package/.output/public/_nuxt/{FfyCVKRU.js → Be7Q-KZm.js} +1 -1
- package/.output/public/_nuxt/{DPOGSCeV.js → C0xGK0_5.js} +1 -1
- package/.output/public/_nuxt/{Su-Cl_JF.js → C5uvKiQJ.js} +1 -1
- package/.output/public/_nuxt/{DIOhMCOf.js → CJOi1pKi.js} +3 -3
- package/.output/public/_nuxt/{D4LyIv_t.js → Cqzfu4b1.js} +1 -1
- package/.output/public/_nuxt/CrxPmt5A.js +1 -0
- package/.output/public/_nuxt/D0ZHasco.js +105 -0
- package/.output/public/_nuxt/DIUADCOG.js +1 -0
- package/.output/public/_nuxt/DaYnMifu.js +43 -0
- package/.output/public/_nuxt/DhK8N2yk.js +58 -0
- package/.output/public/_nuxt/{Bz2rU2zs.js → DntGb46R.js} +1 -1
- package/.output/public/_nuxt/{DwpuOtAP.js → FCWUBLV4.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/39e9ce1e-ba3f-4066-8a58-66dfecfe2817.json +1 -0
- package/.output/public/_nuxt/builds/meta/dev.json +1 -0
- package/.output/public/_nuxt/default.DKcvUy2t.css +1 -0
- package/.output/public/_nuxt/entry.uBSFaL6A.css +1 -0
- package/.output/public/_nuxt/{useTheme.Cny4Z64J.css → useTheme.B4wINCoW.css} +1 -1
- package/.output/server/chunks/_/aiProviderRegistry.mjs +1 -2
- package/.output/server/chunks/_/aiProviderRegistry.mjs.map +1 -1
- package/.output/server/chunks/_/aiProviderSelection.mjs +2 -2
- package/.output/server/chunks/_/chatGit.mjs +1 -2
- package/.output/server/chunks/_/chatGit.mjs.map +1 -1
- package/.output/server/chunks/_/claudeProvider.mjs +1 -215
- package/.output/server/chunks/_/claudeProvider.mjs.map +1 -1
- package/.output/server/chunks/_/claudeService.mjs +50 -54
- package/.output/server/chunks/_/claudeService.mjs.map +1 -1
- package/.output/server/chunks/_/codexProvider.mjs +47 -812
- package/.output/server/chunks/_/codexProvider.mjs.map +1 -1
- package/.output/server/chunks/_/git.mjs +1 -2
- package/.output/server/chunks/_/git.mjs.map +1 -1
- package/.output/server/chunks/_/gitApiHelpers.mjs +1 -1
- package/.output/server/chunks/_/gitBranchOperations.mjs +1 -1
- package/.output/server/chunks/_/interactiveProviderQuery.mjs +160 -0
- package/.output/server/chunks/_/interactiveProviderQuery.mjs.map +1 -0
- package/.output/server/chunks/_/jobPersister.mjs +37 -6
- package/.output/server/chunks/_/jobPersister.mjs.map +1 -1
- package/.output/server/chunks/_/jobQueue.mjs +430 -278
- package/.output/server/chunks/_/jobQueue.mjs.map +1 -1
- package/.output/server/chunks/_/terminalSessions.mjs +582 -0
- package/.output/server/chunks/_/terminalSessions.mjs.map +1 -0
- package/.output/server/chunks/_/worktreeSetup.mjs +98 -0
- package/.output/server/chunks/_/worktreeSetup.mjs.map +1 -0
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/client.precomputed.mjs.map +1 -1
- package/.output/server/chunks/nitro/nitro.mjs +1239 -625
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/_ws.mjs +21 -111
- package/.output/server/chunks/routes/_ws.mjs.map +1 -1
- package/.output/server/chunks/routes/api/ai/providers.get.mjs +3 -1
- package/.output/server/chunks/routes/api/ai/providers.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/compare.get.mjs +4 -5
- package/.output/server/chunks/routes/api/chat/compare.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/context.get.mjs +4 -2
- package/.output/server/chunks/routes/api/chat/context.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/finalize.post.mjs +11 -7
- package/.output/server/chunks/routes/api/chat/finalize.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/generate-commit-message.post.mjs +26 -29
- package/.output/server/chunks/routes/api/chat/generate-commit-message.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/preview-sync.post.mjs +4 -5
- package/.output/server/chunks/routes/api/chat/preview-sync.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/preview.delete.mjs +4 -5
- package/.output/server/chunks/routes/api/chat/preview.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/preview.post.mjs +4 -6
- package/.output/server/chunks/routes/api/chat/preview.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/rebase.post.mjs +4 -7
- package/.output/server/chunks/routes/api/chat/rebase.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/worktree-commit.post.mjs +4 -6
- package/.output/server/chunks/routes/api/chat/worktree-commit.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/worktree.delete.mjs +11 -4
- package/.output/server/chunks/routes/api/chat/worktree.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/worktree.post.mjs +4 -6
- package/.output/server/chunks/routes/api/chat/worktree.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations/_conversationId/archive.post.mjs +10 -9
- package/.output/server/chunks/routes/api/conversations/_conversationId/archive.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations/archives/_archiveId/restore.post.mjs +4 -7
- package/.output/server/chunks/routes/api/conversations/archives/_archiveId/restore.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations/archives/_archiveId_.delete.mjs +4 -7
- package/.output/server/chunks/routes/api/conversations/archives/_archiveId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations/archives.delete.mjs +40 -0
- package/.output/server/chunks/routes/api/conversations/archives.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/conversations/archives.get.mjs +4 -7
- package/.output/server/chunks/routes/api/conversations/archives.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations/update.post.mjs +4 -7
- package/.output/server/chunks/routes/api/conversations/update.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations.get.mjs +4 -7
- package/.output/server/chunks/routes/api/conversations.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations.post.mjs +4 -7
- package/.output/server/chunks/routes/api/conversations.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/cwd.get.mjs +4 -2
- package/.output/server/chunks/routes/api/cwd.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/branch-rename.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/branch-rename.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/branch.delete.mjs +4 -5
- package/.output/server/chunks/routes/api/git/branch.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/branches.get.mjs +4 -6
- package/.output/server/chunks/routes/api/git/branches.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/checkout.post.mjs +4 -5
- package/.output/server/chunks/routes/api/git/checkout.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/cherry-pick.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/cherry-pick.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/clean.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/clean.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/commit/_id_.get.mjs +3 -4
- package/.output/server/chunks/routes/api/git/commit/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/commit.post.mjs +4 -5
- package/.output/server/chunks/routes/api/git/commit.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/diff.get.mjs +4 -5
- package/.output/server/chunks/routes/api/git/diff.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/fetch.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/fetch.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/file-diff.get.mjs +4 -5
- package/.output/server/chunks/routes/api/git/file-diff.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/graph.get.mjs +4 -5
- package/.output/server/chunks/routes/api/git/graph.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/log.get.mjs +4 -5
- package/.output/server/chunks/routes/api/git/log.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/merge-base.get.mjs +4 -5
- package/.output/server/chunks/routes/api/git/merge-base.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/merge.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/merge.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/pull.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/pull.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/push.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/push.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/rebase.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/rebase.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/remote.delete.mjs +3 -4
- package/.output/server/chunks/routes/api/git/remote.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/remote.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/remote.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/remote.put.mjs +3 -4
- package/.output/server/chunks/routes/api/git/remote.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/remotes.get.mjs +3 -4
- package/.output/server/chunks/routes/api/git/remotes.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/reset.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/reset.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/revert.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/revert.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/show.get.mjs +4 -5
- package/.output/server/chunks/routes/api/git/show.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/stage.post.mjs +4 -5
- package/.output/server/chunks/routes/api/git/stage.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/stash-apply.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/stash-apply.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/stash-branch.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/stash-branch.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/stash-drop.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/stash-drop.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/stash-pop.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/stash-pop.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/stash.get.mjs +3 -4
- package/.output/server/chunks/routes/api/git/stash.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/stash.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/stash.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/state.get.mjs +3 -4
- package/.output/server/chunks/routes/api/git/state.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/status.get.mjs +4 -5
- package/.output/server/chunks/routes/api/git/status.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/tag/_name_.get.mjs +3 -4
- package/.output/server/chunks/routes/api/git/tag/_name_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/tag-push.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/tag-push.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/tag.delete.mjs +3 -4
- package/.output/server/chunks/routes/api/git/tag.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/tag.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/tag.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/unstage.post.mjs +4 -5
- package/.output/server/chunks/routes/api/git/unstage.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +7 -4
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get2.mjs +4 -2
- package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get3.mjs +4 -2
- package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post.mjs +19 -16
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post2.mjs +4 -6
- package/.output/server/chunks/routes/api/index.post2.mjs.map +1 -1
- package/.output/server/chunks/routes/api/jobs/_id/cancel.post.mjs +6 -3
- package/.output/server/chunks/routes/api/jobs/_id/cancel.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/jobs/_id_.get.mjs +7 -4
- package/.output/server/chunks/routes/api/jobs/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/rebase/abort.post.mjs +4 -2
- package/.output/server/chunks/routes/api/rebase/abort.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/rebase/ai-resolve.post.mjs +19 -105
- package/.output/server/chunks/routes/api/rebase/ai-resolve.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/rebase/conflicts.get.mjs +3 -1
- package/.output/server/chunks/routes/api/rebase/conflicts.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/rebase/continue-sync.post.mjs +4 -2
- package/.output/server/chunks/routes/api/rebase/continue-sync.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/rebase/continue.post.mjs +71 -73
- package/.output/server/chunks/routes/api/rebase/continue.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/rebase/resolve.put.mjs +3 -1
- package/.output/server/chunks/routes/api/rebase/resolve.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repository/status.get.mjs +4 -5
- package/.output/server/chunks/routes/api/repository/status.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings.get.mjs +6 -5
- package/.output/server/chunks/routes/api/settings.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings.post.mjs +5 -3
- package/.output/server/chunks/routes/api/settings.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/skills/_skillId/prompt.post.mjs +3 -1
- package/.output/server/chunks/routes/api/skills/_skillId/prompt.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/specs/_featureId/_...filename_.get.mjs +3 -1
- package/.output/server/chunks/routes/api/specs/_featureId/_...filename_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/specs/_featureId/_...filename_.put.mjs +3 -1
- package/.output/server/chunks/routes/api/specs/_featureId/_...filename_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/specs/features.get.mjs +3 -1
- package/.output/server/chunks/routes/api/specs/features.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/specs/reindex.post.mjs +4 -2
- package/.output/server/chunks/routes/api/specs/reindex.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/specs/search.get.mjs +4 -2
- package/.output/server/chunks/routes/api/specs/search.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/specs/status.get.mjs +4 -2
- package/.output/server/chunks/routes/api/specs/status.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/specs/traceability/_featureId_.get.mjs +4 -2
- package/.output/server/chunks/routes/api/specs/traceability/_featureId_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/worktrees/_name/switch.post.mjs +4 -2
- package/.output/server/chunks/routes/api/worktrees/_name/switch.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/worktrees/_name_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/worktrees/_name_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/git-watcher-ws.mjs +4 -2
- package/.output/server/chunks/routes/git-watcher-ws.mjs.map +1 -1
- package/.output/server/chunks/routes/renderer.mjs +4 -2
- package/.output/server/chunks/routes/terminal-ws.mjs +230 -0
- package/.output/server/chunks/routes/terminal-ws.mjs.map +1 -0
- package/.output/server/index.mjs +4 -2
- package/.output/server/index.mjs.map +1 -1
- package/.output/server/node_modules/node-pty/build/Makefile +369 -0
- package/.output/server/node_modules/node-pty/build/Release/pty.node +0 -0
- package/.output/server/node_modules/node-pty/build/binding.Makefile +6 -0
- package/.output/server/node_modules/node-pty/build/config.gypi +513 -0
- package/.output/server/node_modules/node-pty/build/pty.target.mk +168 -0
- package/.output/server/node_modules/node-pty/lib/eventEmitter2.js +47 -0
- package/.output/server/node_modules/node-pty/lib/index.js +52 -0
- package/.output/server/node_modules/node-pty/lib/shared/conout.js +11 -0
- package/.output/server/node_modules/node-pty/lib/terminal.js +190 -0
- package/.output/server/node_modules/node-pty/lib/unixTerminal.js +346 -0
- package/.output/server/node_modules/node-pty/lib/utils.js +39 -0
- package/.output/server/node_modules/node-pty/lib/windowsConoutConnection.js +125 -0
- package/.output/server/node_modules/node-pty/lib/windowsPtyAgent.js +320 -0
- package/.output/server/node_modules/node-pty/lib/windowsTerminal.js +199 -0
- package/.output/server/node_modules/node-pty/package.json +64 -0
- package/.output/server/package.json +2 -1
- package/package.json +4 -1
- package/.output/public/_nuxt/2zamijve.js +0 -1
- package/.output/public/_nuxt/BEjIzkrM.js +0 -85
- package/.output/public/_nuxt/BaSsfm-t.js +0 -36
- package/.output/public/_nuxt/BjdLSVUw.js +0 -1
- package/.output/public/_nuxt/DeqM2TrP.js +0 -1
- package/.output/public/_nuxt/builds/meta/74089fa1-2fbb-4792-94aa-7535d2aec557.json +0 -1
- package/.output/public/_nuxt/default.DKSPicGu.css +0 -1
- package/.output/public/_nuxt/entry.BUDfUMkE.css +0 -1
- package/.output/public/_nuxt/zrVRZSxq.js +0 -64
- package/.output/server/chunks/_/baseBranch.mjs +0 -137
- package/.output/server/chunks/_/baseBranch.mjs.map +0 -1
- package/.output/server/chunks/_/claude.mjs +0 -164
- package/.output/server/chunks/_/claude.mjs.map +0 -1
- package/.output/server/chunks/_/conversationStore.mjs +0 -257
- package/.output/server/chunks/_/conversationStore.mjs.map +0 -1
- package/.output/server/chunks/_/geminiProvider.mjs +0 -372
- package/.output/server/chunks/_/geminiProvider.mjs.map +0 -1
- package/.output/server/chunks/_/gitExec.mjs +0 -48
- package/.output/server/chunks/_/gitExec.mjs.map +0 -1
- package/.output/server/chunks/_/providerProcessError.mjs +0 -163
- package/.output/server/chunks/_/providerProcessError.mjs.map +0 -1
- package/.output/server/chunks/_/uiAdapter.mjs +0 -421
- package/.output/server/chunks/_/uiAdapter.mjs.map +0 -1
- package/.output/server/chunks/routes/api/chat.post.mjs +0 -276
- package/.output/server/chunks/routes/api/chat.post.mjs.map +0 -1
|
@@ -1,372 +0,0 @@
|
|
|
1
|
-
import { r as registerProvider } from './aiProviderRegistry.mjs';
|
|
2
|
-
import { execSync, spawn } from 'node:child_process';
|
|
3
|
-
import { join } from 'node:path';
|
|
4
|
-
import { existsSync } from 'node:fs';
|
|
5
|
-
import { homedir } from 'node:os';
|
|
6
|
-
|
|
7
|
-
const GEMINI_MODELS = [
|
|
8
|
-
{
|
|
9
|
-
value: "auto-3",
|
|
10
|
-
label: "Auto (Gemini 3)",
|
|
11
|
-
description: "Let Gemini CLI decide the best model for the task (Gemini 3 series)",
|
|
12
|
-
modelId: "auto-3",
|
|
13
|
-
default: true
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
value: "auto-2.5",
|
|
17
|
-
label: "Auto (Gemini 2.5)",
|
|
18
|
-
description: "Let Gemini CLI decide the best model for the task (Gemini 2.5 series)",
|
|
19
|
-
modelId: "auto-2.5"
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
value: "manual",
|
|
23
|
-
label: "Manual",
|
|
24
|
-
description: "Manually select a model",
|
|
25
|
-
modelId: "manual"
|
|
26
|
-
}
|
|
27
|
-
];
|
|
28
|
-
|
|
29
|
-
let cachedGeminiPath = null;
|
|
30
|
-
function getGeminiCliPath() {
|
|
31
|
-
if (cachedGeminiPath) return cachedGeminiPath;
|
|
32
|
-
try {
|
|
33
|
-
const path = execSync("which gemini", { stdio: ["ignore", "pipe", "ignore"] }).toString().trim();
|
|
34
|
-
if (path) {
|
|
35
|
-
cachedGeminiPath = path;
|
|
36
|
-
return path;
|
|
37
|
-
}
|
|
38
|
-
} catch {
|
|
39
|
-
}
|
|
40
|
-
const commonPaths = [
|
|
41
|
-
join(homedir(), ".nvm/versions/node/v22.22.0/bin/gemini"),
|
|
42
|
-
// Example from session_context
|
|
43
|
-
"/usr/local/bin/gemini",
|
|
44
|
-
"/opt/homebrew/bin/gemini"
|
|
45
|
-
];
|
|
46
|
-
for (const p of commonPaths) {
|
|
47
|
-
if (existsSync(p)) {
|
|
48
|
-
cachedGeminiPath = p;
|
|
49
|
-
return p;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return "gemini";
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function killProc(proc) {
|
|
56
|
-
try {
|
|
57
|
-
const pid = proc.pid;
|
|
58
|
-
console.log("[GeminiProvider] killProc: sending SIGTERM to pid", pid);
|
|
59
|
-
proc.kill("SIGTERM");
|
|
60
|
-
const forceKillTimer = setTimeout(() => {
|
|
61
|
-
try {
|
|
62
|
-
console.log("[GeminiProvider] killProc: SIGTERM timeout, sending SIGKILL to pid", pid);
|
|
63
|
-
proc.kill("SIGKILL");
|
|
64
|
-
} catch {
|
|
65
|
-
}
|
|
66
|
-
}, 3e3);
|
|
67
|
-
proc.once("exit", (code, signal) => {
|
|
68
|
-
console.log("[GeminiProvider] killProc: process exited, pid", pid, "code", code, "signal", signal);
|
|
69
|
-
clearTimeout(forceKillTimer);
|
|
70
|
-
});
|
|
71
|
-
} catch (err) {
|
|
72
|
-
console.error("[GeminiProvider] killProc error:", err);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
const metadata = {
|
|
76
|
-
id: "gemini",
|
|
77
|
-
name: "Gemini CLI",
|
|
78
|
-
description: "Local Gemini CLI session via Google Gemini API.",
|
|
79
|
-
models: GEMINI_MODELS.map((model) => ({
|
|
80
|
-
key: model.value,
|
|
81
|
-
label: model.label,
|
|
82
|
-
description: model.description,
|
|
83
|
-
default: model.default || false
|
|
84
|
-
})),
|
|
85
|
-
capabilities: {
|
|
86
|
-
streaming: true,
|
|
87
|
-
permissions: true,
|
|
88
|
-
resume: true,
|
|
89
|
-
autoCommit: true,
|
|
90
|
-
conflictResolution: true
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
const sessionState = /* @__PURE__ */ new Map();
|
|
94
|
-
let lastKnownSessionId = null;
|
|
95
|
-
const geminiProvider = {
|
|
96
|
-
metadata,
|
|
97
|
-
toCanonicalEvents(data) {
|
|
98
|
-
const event = data;
|
|
99
|
-
const events = [];
|
|
100
|
-
const rawSessionId = event.session_id;
|
|
101
|
-
if (rawSessionId) {
|
|
102
|
-
lastKnownSessionId = rawSessionId;
|
|
103
|
-
}
|
|
104
|
-
const sessionId = lastKnownSessionId || "";
|
|
105
|
-
const getErrorText = () => {
|
|
106
|
-
const direct = event.error;
|
|
107
|
-
if (typeof direct === "string" && direct.trim()) {
|
|
108
|
-
return direct.trim();
|
|
109
|
-
}
|
|
110
|
-
if (direct && typeof direct === "object" && !Array.isArray(direct)) {
|
|
111
|
-
const msg2 = direct.message;
|
|
112
|
-
if (typeof msg2 === "string" && msg2.trim()) {
|
|
113
|
-
return msg2.trim();
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
const msg = event.message;
|
|
117
|
-
if (typeof msg === "string" && msg.trim()) {
|
|
118
|
-
return msg.trim();
|
|
119
|
-
}
|
|
120
|
-
const result = event.result;
|
|
121
|
-
if (result && typeof result === "object" && !Array.isArray(result)) {
|
|
122
|
-
const resultObj = result;
|
|
123
|
-
const nestedError = resultObj.error;
|
|
124
|
-
if (typeof nestedError === "string" && nestedError.trim()) {
|
|
125
|
-
return nestedError.trim();
|
|
126
|
-
}
|
|
127
|
-
if (nestedError && typeof nestedError === "object" && !Array.isArray(nestedError)) {
|
|
128
|
-
const nestedMsg2 = nestedError.message;
|
|
129
|
-
if (typeof nestedMsg2 === "string" && nestedMsg2.trim()) {
|
|
130
|
-
return nestedMsg2.trim();
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
const nestedMsg = resultObj.message;
|
|
134
|
-
if (typeof nestedMsg === "string" && nestedMsg.trim()) {
|
|
135
|
-
return nestedMsg.trim();
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
return "";
|
|
139
|
-
};
|
|
140
|
-
if (!sessionState.has(sessionId)) {
|
|
141
|
-
sessionState.set(sessionId, { textOpen: false, textBlockId: "", nextIndex: 0 });
|
|
142
|
-
}
|
|
143
|
-
const state = sessionState.get(sessionId);
|
|
144
|
-
const closeTextBlock = () => {
|
|
145
|
-
if (!state.textOpen) return;
|
|
146
|
-
state.textOpen = false;
|
|
147
|
-
events.push({
|
|
148
|
-
type: "block_end",
|
|
149
|
-
sessionId,
|
|
150
|
-
blockId: state.textBlockId
|
|
151
|
-
});
|
|
152
|
-
};
|
|
153
|
-
const ensureTextBlock = () => {
|
|
154
|
-
if (state.textOpen) return;
|
|
155
|
-
state.textOpen = true;
|
|
156
|
-
const idx = state.nextIndex++;
|
|
157
|
-
state.textBlockId = `gemini-text-${sessionId}-${idx}`;
|
|
158
|
-
events.push({
|
|
159
|
-
type: "block_start",
|
|
160
|
-
sessionId,
|
|
161
|
-
blockId: state.textBlockId,
|
|
162
|
-
blockType: "text",
|
|
163
|
-
index: idx,
|
|
164
|
-
text: ""
|
|
165
|
-
});
|
|
166
|
-
};
|
|
167
|
-
if (event.type === "message" && event.role === "assistant") {
|
|
168
|
-
ensureTextBlock();
|
|
169
|
-
const text = event.content;
|
|
170
|
-
if (text) {
|
|
171
|
-
events.push({
|
|
172
|
-
type: "block_delta",
|
|
173
|
-
sessionId,
|
|
174
|
-
blockId: state.textBlockId,
|
|
175
|
-
text
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
if (event.type === "tool_use") {
|
|
180
|
-
const toolId = event.tool_id || `gemini-tool-${Date.now()}`;
|
|
181
|
-
const toolName = event.tool_name || "unknown";
|
|
182
|
-
const params = event.parameters && typeof event.parameters === "object" ? event.parameters : {};
|
|
183
|
-
closeTextBlock();
|
|
184
|
-
const toolIndex = state.nextIndex++;
|
|
185
|
-
events.push({
|
|
186
|
-
type: "block_start",
|
|
187
|
-
sessionId,
|
|
188
|
-
blockId: toolId,
|
|
189
|
-
blockType: "tool_use",
|
|
190
|
-
name: toolName,
|
|
191
|
-
toolUseId: toolId,
|
|
192
|
-
index: toolIndex
|
|
193
|
-
});
|
|
194
|
-
if (Object.keys(params).length > 0) {
|
|
195
|
-
events.push({
|
|
196
|
-
type: "block_delta",
|
|
197
|
-
sessionId,
|
|
198
|
-
blockId: toolId,
|
|
199
|
-
index: toolIndex,
|
|
200
|
-
partialJson: JSON.stringify(params)
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
events.push({
|
|
204
|
-
type: "block_end",
|
|
205
|
-
sessionId,
|
|
206
|
-
blockId: toolId,
|
|
207
|
-
index: toolIndex
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
|
-
if (event.type === "tool_result") {
|
|
211
|
-
const toolId = event.tool_id || "";
|
|
212
|
-
const isError = event.status !== "success";
|
|
213
|
-
let content = "";
|
|
214
|
-
if (typeof event.output === "string") {
|
|
215
|
-
content = event.output;
|
|
216
|
-
}
|
|
217
|
-
if (isError && event.error && typeof event.error === "object") {
|
|
218
|
-
const errMsg = event.error.message;
|
|
219
|
-
if (typeof errMsg === "string") {
|
|
220
|
-
content = content ? `${content}
|
|
221
|
-
${errMsg}` : errMsg;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
events.push({
|
|
225
|
-
type: "tool_result",
|
|
226
|
-
sessionId,
|
|
227
|
-
toolUseId: toolId,
|
|
228
|
-
content,
|
|
229
|
-
isError
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
if (event.type === "init" || event.subtype === "init") {
|
|
233
|
-
const rawModel = event.model || "";
|
|
234
|
-
const matched = GEMINI_MODELS.find((m) => m.modelId === rawModel || m.value === rawModel);
|
|
235
|
-
const modelLabel = matched ? matched.label : rawModel;
|
|
236
|
-
events.push({
|
|
237
|
-
type: "session_init",
|
|
238
|
-
sessionId,
|
|
239
|
-
model: modelLabel,
|
|
240
|
-
tools: event.tools || [],
|
|
241
|
-
permissionMode: "",
|
|
242
|
-
cwd: ""
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
if (event.type === "result") {
|
|
246
|
-
closeTextBlock();
|
|
247
|
-
sessionState.delete(sessionId);
|
|
248
|
-
const status = event.status || "";
|
|
249
|
-
const isError = status !== "success";
|
|
250
|
-
const stats = event.stats;
|
|
251
|
-
events.push({
|
|
252
|
-
type: "turn_result",
|
|
253
|
-
sessionId,
|
|
254
|
-
subtype: isError ? "error" : "success",
|
|
255
|
-
durationMs: stats == null ? void 0 : stats.duration_ms,
|
|
256
|
-
usage: stats ? {
|
|
257
|
-
inputTokens: stats.input_tokens || 0,
|
|
258
|
-
outputTokens: stats.output_tokens || 0,
|
|
259
|
-
cacheCreationInputTokens: 0,
|
|
260
|
-
cacheReadInputTokens: 0
|
|
261
|
-
} : void 0
|
|
262
|
-
});
|
|
263
|
-
if (isError) {
|
|
264
|
-
events.push({
|
|
265
|
-
type: "error",
|
|
266
|
-
sessionId,
|
|
267
|
-
error: getErrorText() || "Provider reported an execution error."
|
|
268
|
-
});
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
if (event.type === "error") {
|
|
272
|
-
events.push({
|
|
273
|
-
type: "error",
|
|
274
|
-
sessionId,
|
|
275
|
-
error: getErrorText() || "Provider reported an execution error."
|
|
276
|
-
});
|
|
277
|
-
}
|
|
278
|
-
return events;
|
|
279
|
-
},
|
|
280
|
-
streamChat(opts, callbacks) {
|
|
281
|
-
var _a, _b, _c;
|
|
282
|
-
const cliPath = getGeminiCliPath();
|
|
283
|
-
const modelEntry = GEMINI_MODELS.find((m) => m.value === opts.selection.modelKey) || GEMINI_MODELS[0];
|
|
284
|
-
const modelId = modelEntry.modelId;
|
|
285
|
-
const args = [
|
|
286
|
-
"--prompt",
|
|
287
|
-
opts.message,
|
|
288
|
-
"--output-format",
|
|
289
|
-
"stream-json"
|
|
290
|
-
];
|
|
291
|
-
if (!modelId.startsWith("auto-") && modelId !== "manual") {
|
|
292
|
-
args.push("--model", modelId);
|
|
293
|
-
}
|
|
294
|
-
const mode = opts.permissionMode || "ask";
|
|
295
|
-
switch (mode) {
|
|
296
|
-
case "plan":
|
|
297
|
-
args.push("--approval-mode", "plan");
|
|
298
|
-
break;
|
|
299
|
-
case "auto":
|
|
300
|
-
args.push("--approval-mode", "yolo");
|
|
301
|
-
break;
|
|
302
|
-
case "bypass":
|
|
303
|
-
args.push("--yolo");
|
|
304
|
-
break;
|
|
305
|
-
case "ask":
|
|
306
|
-
args.push("--approval-mode", "default");
|
|
307
|
-
if (opts.approvedTools && opts.approvedTools.length > 0) {
|
|
308
|
-
args.push("--allowed-tools", opts.approvedTools.join(","));
|
|
309
|
-
}
|
|
310
|
-
break;
|
|
311
|
-
}
|
|
312
|
-
if (opts.resumeSessionId) {
|
|
313
|
-
args.push("--resume", opts.resumeSessionId);
|
|
314
|
-
}
|
|
315
|
-
const proc = spawn(cliPath, args, {
|
|
316
|
-
cwd: opts.cwd,
|
|
317
|
-
stdio: ["pipe", "pipe", "pipe"],
|
|
318
|
-
env: {
|
|
319
|
-
...process.env,
|
|
320
|
-
NODE_NO_WARNINGS: "1",
|
|
321
|
-
NO_COLOR: "1"
|
|
322
|
-
}
|
|
323
|
-
});
|
|
324
|
-
(_a = proc.stdin) == null ? void 0 : _a.end();
|
|
325
|
-
let lineBuffer = "";
|
|
326
|
-
const nonJsonOutput = [];
|
|
327
|
-
(_b = proc.stdout) == null ? void 0 : _b.on("data", (data) => {
|
|
328
|
-
lineBuffer += data.toString();
|
|
329
|
-
const lines = lineBuffer.split("\n");
|
|
330
|
-
lineBuffer = lines.pop() || "";
|
|
331
|
-
for (const line of lines) {
|
|
332
|
-
const cleaned = line.trim();
|
|
333
|
-
if (!cleaned) continue;
|
|
334
|
-
try {
|
|
335
|
-
const parsed = JSON.parse(cleaned);
|
|
336
|
-
callbacks.onProviderJson(parsed);
|
|
337
|
-
} catch {
|
|
338
|
-
nonJsonOutput.push(cleaned);
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
});
|
|
342
|
-
(_c = proc.stderr) == null ? void 0 : _c.on("data", (data) => {
|
|
343
|
-
const text = data.toString().trim();
|
|
344
|
-
if (text) {
|
|
345
|
-
nonJsonOutput.push(text);
|
|
346
|
-
}
|
|
347
|
-
});
|
|
348
|
-
proc.on("close", (exitCode, signal) => {
|
|
349
|
-
if (lineBuffer.trim()) {
|
|
350
|
-
try {
|
|
351
|
-
callbacks.onProviderJson(JSON.parse(lineBuffer.trim()));
|
|
352
|
-
} catch {
|
|
353
|
-
nonJsonOutput.push(lineBuffer.trim());
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
callbacks.onClose({ exitCode, signal, nonJsonOutput });
|
|
357
|
-
});
|
|
358
|
-
proc.on("error", (error) => {
|
|
359
|
-
callbacks.onError(error);
|
|
360
|
-
});
|
|
361
|
-
return {
|
|
362
|
-
kill: () => killProc(proc)
|
|
363
|
-
};
|
|
364
|
-
},
|
|
365
|
-
isModelSupported(modelKey) {
|
|
366
|
-
return GEMINI_MODELS.some((model) => model.value === modelKey);
|
|
367
|
-
}
|
|
368
|
-
};
|
|
369
|
-
registerProvider(geminiProvider);
|
|
370
|
-
|
|
371
|
-
export { geminiProvider as default };
|
|
372
|
-
//# sourceMappingURL=geminiProvider.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"geminiProvider.mjs","sources":["../../../../types/gemini.ts","../../../../server/utils/gemini.ts","../../../../server/utils/geminiProvider.ts"],"names":["msg","nestedMsg"],"mappings":"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"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { execFileSync, execSync, execFile, exec } from 'child_process';
|
|
2
|
-
import { promisify } from 'util';
|
|
3
|
-
import { e as getProjectDir } from '../nitro/nitro.mjs';
|
|
4
|
-
|
|
5
|
-
promisify(exec);
|
|
6
|
-
const execFileAsync = promisify(execFile);
|
|
7
|
-
const GIT_MAX_BUFFER = 1024 * 1024 * 10;
|
|
8
|
-
function normalizeGitOutput(output, options) {
|
|
9
|
-
return (options == null ? void 0 : options.trim) === false ? output : output.trim();
|
|
10
|
-
}
|
|
11
|
-
function execGit(cwd, command, options) {
|
|
12
|
-
try {
|
|
13
|
-
const output = execSync(`git ${command}`, {
|
|
14
|
-
cwd,
|
|
15
|
-
maxBuffer: GIT_MAX_BUFFER,
|
|
16
|
-
encoding: "utf-8"
|
|
17
|
-
});
|
|
18
|
-
return normalizeGitOutput(output, options);
|
|
19
|
-
} catch (error) {
|
|
20
|
-
throw new Error(`Git command failed: ${error.message}`);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
function execGitArgs(cwd, args, options) {
|
|
24
|
-
try {
|
|
25
|
-
const output = execFileSync("git", args, {
|
|
26
|
-
cwd,
|
|
27
|
-
maxBuffer: GIT_MAX_BUFFER,
|
|
28
|
-
encoding: "utf-8"
|
|
29
|
-
});
|
|
30
|
-
return normalizeGitOutput(output, options);
|
|
31
|
-
} catch (error) {
|
|
32
|
-
throw new Error(`Git command failed: ${error.message}`);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
async function execGitCommand(args, cwd = getProjectDir(), options) {
|
|
36
|
-
try {
|
|
37
|
-
const { stdout } = await execFileAsync("git", args, {
|
|
38
|
-
cwd,
|
|
39
|
-
maxBuffer: GIT_MAX_BUFFER
|
|
40
|
-
});
|
|
41
|
-
return normalizeGitOutput(stdout, options);
|
|
42
|
-
} catch (error) {
|
|
43
|
-
throw new Error(`Git command failed: ${error.message}`);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export { execGitCommand as a, execGit as b, execGitArgs as e };
|
|
48
|
-
//# sourceMappingURL=gitExec.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gitExec.mjs","sources":["../../../../server/utils/gitExec.ts"],"names":[],"mappings":";;;;AAIkB,UAAU,IAAI;AAChC,MAAM,aAAA,GAAgB,UAAU,QAAQ,CAAA;AAEjC,MAAM,cAAA,GAAiB,OAAO,IAAA,GAAO,EAAA;AAM5C,SAAS,kBAAA,CAAmB,QAAgB,OAAA,EAAkC;AAC5E,EAAA,OAAA,CAAO,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,IAAA,MAAS,KAAA,GAAQ,MAAA,GAAS,OAAO,IAAA,EAAK;AACxD;AAKO,SAAS,OAAA,CAAQ,GAAA,EAAa,OAAA,EAAiB,OAAA,EAAkC;AACtF,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAS,QAAA,CAAS,CAAA,IAAA,EAAO,OAAO,CAAA,CAAA,EAAI;AAAA,MACxC,GAAA;AAAA,MACA,SAAA,EAAW,cAAA;AAAA,MACX,QAAA,EAAU;AAAA,KACX,CAAA;AACD,IAAA,OAAO,kBAAA,CAAmB,QAAQ,OAAO,CAAA;AAAA,EAC3C,SAAS,KAAA,EAAY;AACnB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,oBAAA,EAAuB,KAAA,CAAM,OAAO,CAAA,CAAE,CAAA;AAAA,EACxD;AACF;AAKO,SAAS,WAAA,CAAY,GAAA,EAAa,IAAA,EAAgB,OAAA,EAAkC;AACzF,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAS,YAAA,CAAa,KAAA,EAAO,IAAA,EAAM;AAAA,MACvC,GAAA;AAAA,MACA,SAAA,EAAW,cAAA;AAAA,MACX,QAAA,EAAU;AAAA,KACX,CAAA;AACD,IAAA,OAAO,kBAAA,CAAmB,QAAQ,OAAO,CAAA;AAAA,EAC3C,SAAS,KAAA,EAAY;AACnB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,oBAAA,EAAuB,KAAA,CAAM,OAAO,CAAA,CAAE,CAAA;AAAA,EACxD;AACF;AAKA,eAAsB,cAAA,CACpB,IAAA,EACA,GAAA,GAAc,aAAA,IACd,OAAA,EACiB;AACjB,EAAA,IAAI;AACF,IAAA,MAAM,EAAE,MAAA,EAAO,GAAI,MAAM,aAAA,CAAc,OAAO,IAAA,EAAM;AAAA,MAClD,GAAA;AAAA,MACA,SAAA,EAAW;AAAA,KACZ,CAAA;AACD,IAAA,OAAO,kBAAA,CAAmB,QAAQ,OAAO,CAAA;AAAA,EAC3C,SAAS,KAAA,EAAY;AACnB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,oBAAA,EAAuB,KAAA,CAAM,OAAO,CAAA,CAAE,CAAA;AAAA,EACxD;AACF;;;;"}
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import { e as ensureProvidersInitialized, g as getProvider } from './aiProviderRegistry.mjs';
|
|
2
|
-
|
|
3
|
-
async function streamChatWithProvider(opts, callbacks) {
|
|
4
|
-
await ensureProvidersInitialized();
|
|
5
|
-
const provider = getProvider(opts.selection.providerId);
|
|
6
|
-
if (!provider) {
|
|
7
|
-
throw new Error(`Provider "${opts.selection.providerId}" is not registered`);
|
|
8
|
-
}
|
|
9
|
-
if (!provider.metadata.capabilities.streaming || !provider.streamChat) {
|
|
10
|
-
throw new Error(`Provider "${opts.selection.providerId}" does not support streaming chat`);
|
|
11
|
-
}
|
|
12
|
-
if (!provider.isModelSupported(opts.selection.modelKey)) {
|
|
13
|
-
throw new Error(`Model "${opts.selection.modelKey}" is not supported by provider "${opts.selection.providerId}"`);
|
|
14
|
-
}
|
|
15
|
-
return provider.streamChat(opts, callbacks);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const ANSI_ESCAPE_PATTERN = /\u001b\[[0-9;]*m/g;
|
|
19
|
-
function flattenOutputLines(nonJsonOutput) {
|
|
20
|
-
const lines = [];
|
|
21
|
-
for (const chunk of nonJsonOutput) {
|
|
22
|
-
for (const rawLine of chunk.split(/\r?\n/g)) {
|
|
23
|
-
const line = rawLine.replace(ANSI_ESCAPE_PATTERN, "").trim();
|
|
24
|
-
if (line) {
|
|
25
|
-
lines.push(line);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return lines;
|
|
30
|
-
}
|
|
31
|
-
function uniqueLines(lines) {
|
|
32
|
-
const seen = /* @__PURE__ */ new Set();
|
|
33
|
-
const unique = [];
|
|
34
|
-
for (const line of lines) {
|
|
35
|
-
const normalized = line.toLowerCase();
|
|
36
|
-
if (seen.has(normalized)) continue;
|
|
37
|
-
seen.add(normalized);
|
|
38
|
-
unique.push(line);
|
|
39
|
-
}
|
|
40
|
-
return unique;
|
|
41
|
-
}
|
|
42
|
-
function buildCodexPermissionHint(lines) {
|
|
43
|
-
const arg0Permission = lines.find(
|
|
44
|
-
(line) => /failed to clean up stale arg0 temp dirs: Permission denied/i.test(line)
|
|
45
|
-
);
|
|
46
|
-
if (arg0Permission) {
|
|
47
|
-
return `${arg0Permission} Fix ownership with: sudo chown -R $(whoami) ~/.codex`;
|
|
48
|
-
}
|
|
49
|
-
const cannotAccess = lines.find(
|
|
50
|
-
(line) => /codex cannot access session files/i.test(line)
|
|
51
|
-
);
|
|
52
|
-
if (!cannotAccess) {
|
|
53
|
-
const recorderPermission = lines.find(
|
|
54
|
-
(line) => /failed to initialize rollout recorder: Permission denied/i.test(line)
|
|
55
|
-
);
|
|
56
|
-
if (recorderPermission) {
|
|
57
|
-
return `${recorderPermission} Fix ownership with: sudo chown -R $(whoami) ~/.codex`;
|
|
58
|
-
}
|
|
59
|
-
const createSessionPermission = lines.find(
|
|
60
|
-
(line) => /failed to create session: Permission denied/i.test(line)
|
|
61
|
-
);
|
|
62
|
-
if (createSessionPermission) {
|
|
63
|
-
return `${createSessionPermission} Fix ownership with: sudo chown -R $(whoami) ~/.codex`;
|
|
64
|
-
}
|
|
65
|
-
const codexPathPermission = lines.find(
|
|
66
|
-
(line) => /\/\.codex\/.*permission denied/i.test(line)
|
|
67
|
-
);
|
|
68
|
-
if (codexPathPermission) {
|
|
69
|
-
return `${codexPathPermission} Fix ownership with: sudo chown -R $(whoami) ~/.codex`;
|
|
70
|
-
}
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
return `${cannotAccess} Fix ownership with: sudo chown -R $(whoami) ~/.codex`;
|
|
74
|
-
}
|
|
75
|
-
function buildCodexRolloutPathHint(lines) {
|
|
76
|
-
const missingRolloutPath = lines.find(
|
|
77
|
-
(line) => /state db missing rollout path for thread/i.test(line)
|
|
78
|
-
);
|
|
79
|
-
if (!missingRolloutPath) {
|
|
80
|
-
return null;
|
|
81
|
-
}
|
|
82
|
-
return `${missingRolloutPath} Retry with a fresh session (clear provider session and resend).`;
|
|
83
|
-
}
|
|
84
|
-
function buildCodexConnectivityHint(lines) {
|
|
85
|
-
const disconnected = lines.find(
|
|
86
|
-
(line) => /stream disconnected before completion/i.test(line)
|
|
87
|
-
);
|
|
88
|
-
if (disconnected) {
|
|
89
|
-
return `${disconnected} Verify internet access and Codex auth (try: codex login).`;
|
|
90
|
-
}
|
|
91
|
-
const sendingRequestError = lines.find(
|
|
92
|
-
(line) => /error sending request for url/i.test(line)
|
|
93
|
-
);
|
|
94
|
-
if (sendingRequestError) {
|
|
95
|
-
return `${sendingRequestError} Verify internet access and Codex auth (try: codex login).`;
|
|
96
|
-
}
|
|
97
|
-
return null;
|
|
98
|
-
}
|
|
99
|
-
function buildAuthHint(lines) {
|
|
100
|
-
const authLine = lines.find(
|
|
101
|
-
(line) => /unauthorized|forbidden|invalid api key|authentication failed|not logged in|api key/i.test(line)
|
|
102
|
-
);
|
|
103
|
-
if (!authLine) {
|
|
104
|
-
return null;
|
|
105
|
-
}
|
|
106
|
-
if (/codex/i.test(authLine)) {
|
|
107
|
-
return `${authLine} Re-authenticate with: codex login`;
|
|
108
|
-
}
|
|
109
|
-
if (/claude/i.test(authLine)) {
|
|
110
|
-
return `${authLine} Re-authenticate with: claude login`;
|
|
111
|
-
}
|
|
112
|
-
return `${authLine} Re-authenticate your CLI session and verify credentials.`;
|
|
113
|
-
}
|
|
114
|
-
function buildGenericActionableHint(lines) {
|
|
115
|
-
const actionable = uniqueLines(lines.filter(
|
|
116
|
-
(line) => /(^error\b)|\berror:|\bfailed\b|permission denied|eacces|enoent|spawn|timeout|timed out|network|dns|econn|socket|rate limit|too many requests|aborted|killed|signal|unable to/i.test(line)
|
|
117
|
-
));
|
|
118
|
-
if (actionable.length === 0) {
|
|
119
|
-
return null;
|
|
120
|
-
}
|
|
121
|
-
return actionable.slice(0, 3).join(" | ");
|
|
122
|
-
}
|
|
123
|
-
function hasCodexMissingRolloutPathError(nonJsonOutput) {
|
|
124
|
-
const lines = flattenOutputLines(nonJsonOutput);
|
|
125
|
-
return lines.some((line) => /state db missing rollout path for thread/i.test(line));
|
|
126
|
-
}
|
|
127
|
-
function hasCodexPermissionError(nonJsonOutput) {
|
|
128
|
-
const lines = flattenOutputLines(nonJsonOutput);
|
|
129
|
-
return lines.some(
|
|
130
|
-
(line) => /failed to clean up stale arg0 temp dirs: Permission denied/i.test(line) || /codex cannot access session files/i.test(line) || /failed to initialize rollout recorder: Permission denied/i.test(line) || /failed to create session: Permission denied/i.test(line) || /\/\.codex\/.*permission denied/i.test(line)
|
|
131
|
-
);
|
|
132
|
-
}
|
|
133
|
-
function summarizeProviderProcessError(nonJsonOutput, maxLen = 300) {
|
|
134
|
-
const lines = flattenOutputLines(nonJsonOutput);
|
|
135
|
-
if (lines.length === 0) {
|
|
136
|
-
return "";
|
|
137
|
-
}
|
|
138
|
-
const codexPermissionHint = buildCodexPermissionHint(lines);
|
|
139
|
-
if (codexPermissionHint) {
|
|
140
|
-
return codexPermissionHint.slice(0, maxLen);
|
|
141
|
-
}
|
|
142
|
-
const codexConnectivityHint = buildCodexConnectivityHint(lines);
|
|
143
|
-
if (codexConnectivityHint) {
|
|
144
|
-
return codexConnectivityHint.slice(0, maxLen);
|
|
145
|
-
}
|
|
146
|
-
const authHint = buildAuthHint(lines);
|
|
147
|
-
if (authHint) {
|
|
148
|
-
return authHint.slice(0, maxLen);
|
|
149
|
-
}
|
|
150
|
-
const codexRolloutHint = buildCodexRolloutPathHint(lines);
|
|
151
|
-
if (codexRolloutHint) {
|
|
152
|
-
return codexRolloutHint.slice(0, maxLen);
|
|
153
|
-
}
|
|
154
|
-
const actionableHint = buildGenericActionableHint(lines);
|
|
155
|
-
if (actionableHint) {
|
|
156
|
-
return actionableHint.slice(0, maxLen);
|
|
157
|
-
}
|
|
158
|
-
const fatalLine = lines.find((line) => /^Error:/i.test(line)) || lines[lines.length - 1];
|
|
159
|
-
return fatalLine.slice(0, maxLen);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
export { hasCodexMissingRolloutPathError as a, summarizeProviderProcessError as b, hasCodexPermissionError as h, streamChatWithProvider as s };
|
|
163
|
-
//# sourceMappingURL=providerProcessError.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"providerProcessError.mjs","sources":["../../../../server/utils/aiProvider.ts","../../../../server/utils/providerProcessError.ts"],"names":[],"mappings":"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"}
|