@gitkraken/core-gitlens 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -1
- package/dist/git/cache.d.ts +49 -9
- package/dist/git/cache.d.ts.map +1 -1
- package/dist/git/cache.js +174 -14
- package/dist/git/cache.js.map +1 -1
- package/dist/git/context.d.ts +11 -2
- package/dist/git/context.d.ts.map +1 -1
- package/dist/git/context.js.map +1 -1
- package/dist/git/models/branch.d.ts +1 -0
- package/dist/git/models/branch.d.ts.map +1 -1
- package/dist/git/models/branch.js.map +1 -1
- package/dist/git/models/commit.d.ts +1 -9
- package/dist/git/models/commit.d.ts.map +1 -1
- package/dist/git/models/commit.js +4 -9
- package/dist/git/models/commit.js.map +1 -1
- package/dist/git/models/graph.d.ts +2 -4
- package/dist/git/models/graph.d.ts.map +1 -1
- package/dist/git/models/reference.d.ts +31 -0
- package/dist/git/models/reference.d.ts.map +1 -1
- package/dist/git/models/remote.d.ts.map +1 -1
- package/dist/git/models/remote.js.map +1 -1
- package/dist/git/models/repository.d.ts +20 -3
- package/dist/git/models/repository.d.ts.map +1 -1
- package/dist/git/models/repository.js +42 -5
- package/dist/git/models/repository.js.map +1 -1
- package/dist/git/models/search.d.ts +2 -2
- package/dist/git/models/search.d.ts.map +1 -1
- package/dist/git/models/worktree.d.ts +4 -1
- package/dist/git/models/worktree.d.ts.map +1 -1
- package/dist/git/models/worktree.js +2 -2
- package/dist/git/models/worktree.js.map +1 -1
- package/dist/git/parsers/diffParser.d.ts +0 -1
- package/dist/git/parsers/diffParser.d.ts.map +1 -1
- package/dist/git/parsers/diffParser.js +22 -61
- package/dist/git/parsers/diffParser.js.map +1 -1
- package/dist/git/providers/branches.d.ts +18 -4
- package/dist/git/providers/branches.d.ts.map +1 -1
- package/dist/git/providers/commits.d.ts +6 -0
- package/dist/git/providers/commits.d.ts.map +1 -1
- package/dist/git/providers/config.d.ts +6 -1
- package/dist/git/providers/config.d.ts.map +1 -1
- package/dist/git/providers/diff.d.ts +2 -0
- package/dist/git/providers/diff.d.ts.map +1 -1
- package/dist/git/providers/operations.d.ts +39 -10
- package/dist/git/providers/operations.d.ts.map +1 -1
- package/dist/git/providers/pausedOperations.d.ts +3 -1
- package/dist/git/providers/pausedOperations.d.ts.map +1 -1
- package/dist/git/providers/refs.d.ts +23 -2
- package/dist/git/providers/refs.d.ts.map +1 -1
- package/dist/git/providers/revision.d.ts +1 -1
- package/dist/git/providers/revision.d.ts.map +1 -1
- package/dist/git/providers/staging.d.ts +18 -0
- package/dist/git/providers/staging.d.ts.map +1 -1
- package/dist/git/providers/status.d.ts +4 -1
- package/dist/git/providers/status.d.ts.map +1 -1
- package/dist/git/remotes/azure-devops.d.ts.map +1 -1
- package/dist/git/remotes/azure-devops.js.map +1 -1
- package/dist/git/{exec.types.d.ts → run.types.d.ts} +22 -3
- package/dist/git/run.types.d.ts.map +1 -0
- package/dist/git/run.types.js +2 -0
- package/dist/git/run.types.js.map +1 -0
- package/dist/git/service.d.ts.map +1 -1
- package/dist/git/service.js.map +1 -1
- package/dist/git/utils/autolink.utils.d.ts.map +1 -1
- package/dist/git/utils/autolink.utils.js.map +1 -1
- package/dist/git/utils/blame.utils.d.ts.map +1 -1
- package/dist/git/utils/blame.utils.js.map +1 -1
- package/dist/git/utils/conflictResolution.utils.d.ts +6 -0
- package/dist/git/utils/conflictResolution.utils.d.ts.map +1 -0
- package/dist/git/utils/conflictResolution.utils.js +25 -0
- package/dist/git/utils/conflictResolution.utils.js.map +1 -0
- package/dist/git/utils/fileStatus.utils.d.ts +2 -1
- package/dist/git/utils/fileStatus.utils.d.ts.map +1 -1
- package/dist/git/utils/fileStatus.utils.js +4 -0
- package/dist/git/utils/fileStatus.utils.js.map +1 -1
- package/dist/git/utils/search.utils.d.ts.map +1 -1
- package/dist/git/utils/search.utils.js +3 -0
- package/dist/git/utils/search.utils.js.map +1 -1
- package/dist/git/utils/sorting.d.ts +14 -0
- package/dist/git/utils/sorting.d.ts.map +1 -1
- package/dist/git/utils/sorting.js +34 -0
- package/dist/git/utils/sorting.js.map +1 -1
- package/dist/git/utils/status.utils.d.ts.map +1 -1
- package/dist/git/utils/status.utils.js.map +1 -1
- package/dist/git/watching/classifyChange.d.ts.map +1 -1
- package/dist/git/watching/classifyChange.js +8 -0
- package/dist/git/watching/classifyChange.js.map +1 -1
- package/dist/git/watching/gitIgnoreFilter.js +1 -1
- package/dist/git/watching/gitIgnoreFilter.js.map +1 -1
- package/dist/git/watching/initWatcher.d.ts.map +1 -1
- package/dist/git/watching/initWatcher.js.map +1 -1
- package/dist/git/watching/watchGroup.d.ts.map +1 -1
- package/dist/git/watching/watchGroup.js.map +1 -1
- package/dist/git/watching/watchService.d.ts.map +1 -1
- package/dist/git/watching/watchService.js +24 -4
- package/dist/git/watching/watchService.js.map +1 -1
- package/dist/git/watching/watchSession.d.ts.map +1 -1
- package/dist/git/watching/watchSession.js.map +1 -1
- package/dist/git-cli/cliGitProvider.js +1 -1
- package/dist/git-cli/cliGitProvider.js.map +1 -1
- package/dist/git-cli/exec/exec.types.d.ts +1 -1
- package/dist/git-cli/exec/exec.types.d.ts.map +1 -1
- package/dist/git-cli/exec/git.d.ts +31 -6
- package/dist/git-cli/exec/git.d.ts.map +1 -1
- package/dist/git-cli/exec/git.js +70 -9
- package/dist/git-cli/exec/git.js.map +1 -1
- package/dist/git-cli/exec/gitQueue.d.ts +22 -6
- package/dist/git-cli/exec/gitQueue.d.ts.map +1 -1
- package/dist/git-cli/exec/gitQueue.js +88 -24
- package/dist/git-cli/exec/gitQueue.js.map +1 -1
- package/dist/git-cli/parsers/blameParser.d.ts.map +1 -1
- package/dist/git-cli/parsers/blameParser.js.map +1 -1
- package/dist/git-cli/parsers/logParser.d.ts +1 -0
- package/dist/git-cli/parsers/logParser.d.ts.map +1 -1
- package/dist/git-cli/parsers/logParser.js +4 -0
- package/dist/git-cli/parsers/logParser.js.map +1 -1
- package/dist/git-cli/parsers/refParser.d.ts +3 -30
- package/dist/git-cli/parsers/refParser.d.ts.map +1 -1
- package/dist/git-cli/parsers/refParser.js +30 -30
- package/dist/git-cli/parsers/refParser.js.map +1 -1
- package/dist/git-cli/providers/blame.d.ts.map +1 -1
- package/dist/git-cli/providers/blame.js +1 -1
- package/dist/git-cli/providers/blame.js.map +1 -1
- package/dist/git-cli/providers/branches.d.ts +17 -5
- package/dist/git-cli/providers/branches.d.ts.map +1 -1
- package/dist/git-cli/providers/branches.js +245 -162
- package/dist/git-cli/providers/branches.js.map +1 -1
- package/dist/git-cli/providers/commits.d.ts +4 -0
- package/dist/git-cli/providers/commits.d.ts.map +1 -1
- package/dist/git-cli/providers/commits.js +120 -35
- package/dist/git-cli/providers/commits.js.map +1 -1
- package/dist/git-cli/providers/config.d.ts +11 -2
- package/dist/git-cli/providers/config.d.ts.map +1 -1
- package/dist/git-cli/providers/config.js +36 -11
- package/dist/git-cli/providers/config.js.map +1 -1
- package/dist/git-cli/providers/contributors.d.ts.map +1 -1
- package/dist/git-cli/providers/contributors.js +7 -4
- package/dist/git-cli/providers/contributors.js.map +1 -1
- package/dist/git-cli/providers/diff.d.ts +2 -0
- package/dist/git-cli/providers/diff.d.ts.map +1 -1
- package/dist/git-cli/providers/diff.js +92 -20
- package/dist/git-cli/providers/diff.js.map +1 -1
- package/dist/git-cli/providers/graph.d.ts.map +1 -1
- package/dist/git-cli/providers/graph.js +49 -28
- package/dist/git-cli/providers/graph.js.map +1 -1
- package/dist/git-cli/providers/operations.d.ts +30 -11
- package/dist/git-cli/providers/operations.d.ts.map +1 -1
- package/dist/git-cli/providers/operations.js +146 -43
- package/dist/git-cli/providers/operations.js.map +1 -1
- package/dist/git-cli/providers/patch.d.ts.map +1 -1
- package/dist/git-cli/providers/patch.js +15 -30
- package/dist/git-cli/providers/patch.js.map +1 -1
- package/dist/git-cli/providers/pausedOperations.d.ts +3 -1
- package/dist/git-cli/providers/pausedOperations.d.ts.map +1 -1
- package/dist/git-cli/providers/pausedOperations.js +13 -7
- package/dist/git-cli/providers/pausedOperations.js.map +1 -1
- package/dist/git-cli/providers/refs.d.ts +19 -2
- package/dist/git-cli/providers/refs.d.ts.map +1 -1
- package/dist/git-cli/providers/refs.js +312 -9
- package/dist/git-cli/providers/refs.js.map +1 -1
- package/dist/git-cli/providers/remotes.js +4 -4
- package/dist/git-cli/providers/remotes.js.map +1 -1
- package/dist/git-cli/providers/revision.d.ts +1 -1
- package/dist/git-cli/providers/revision.d.ts.map +1 -1
- package/dist/git-cli/providers/revision.js +15 -11
- package/dist/git-cli/providers/revision.js.map +1 -1
- package/dist/git-cli/providers/staging.d.ts +8 -0
- package/dist/git-cli/providers/staging.d.ts.map +1 -1
- package/dist/git-cli/providers/staging.js +52 -8
- package/dist/git-cli/providers/staging.js.map +1 -1
- package/dist/git-cli/providers/stash.d.ts +0 -8
- package/dist/git-cli/providers/stash.d.ts.map +1 -1
- package/dist/git-cli/providers/stash.js +63 -119
- package/dist/git-cli/providers/stash.js.map +1 -1
- package/dist/git-cli/providers/status.d.ts +4 -1
- package/dist/git-cli/providers/status.d.ts.map +1 -1
- package/dist/git-cli/providers/status.js +10 -9
- package/dist/git-cli/providers/status.js.map +1 -1
- package/dist/git-cli/providers/tags.d.ts.map +1 -1
- package/dist/git-cli/providers/tags.js +13 -9
- package/dist/git-cli/providers/tags.js.map +1 -1
- package/dist/git-cli/providers/worktrees.js +3 -3
- package/dist/git-cli/providers/worktrees.js.map +1 -1
- package/dist/ipc/discovery.d.ts +27 -0
- package/dist/ipc/discovery.d.ts.map +1 -0
- package/dist/ipc/discovery.js +38 -0
- package/dist/ipc/discovery.js.map +1 -0
- package/dist/ipc/ipcServer.d.ts +20 -0
- package/dist/ipc/ipcServer.d.ts.map +1 -0
- package/dist/ipc/ipcServer.js +162 -0
- package/dist/ipc/ipcServer.js.map +1 -0
- package/dist/plus/agents/providers/claudeCodeProvider.d.ts +114 -0
- package/dist/plus/agents/providers/claudeCodeProvider.d.ts.map +1 -0
- package/dist/plus/agents/providers/claudeCodeProvider.js +1480 -0
- package/dist/plus/agents/providers/claudeCodeProvider.js.map +1 -0
- package/dist/plus/agents/providers/claudeCodeTranscript.d.ts +36 -0
- package/dist/plus/agents/providers/claudeCodeTranscript.d.ts.map +1 -0
- package/dist/plus/agents/providers/claudeCodeTranscript.js +171 -0
- package/dist/plus/agents/providers/claudeCodeTranscript.js.map +1 -0
- package/dist/plus/agents/sanitizePrompt.d.ts +15 -0
- package/dist/plus/agents/sanitizePrompt.d.ts.map +1 -0
- package/dist/plus/agents/sanitizePrompt.js +103 -0
- package/dist/plus/agents/sanitizePrompt.js.map +1 -0
- package/dist/plus/agents/stateMachine.d.ts +32 -0
- package/dist/plus/agents/stateMachine.d.ts.map +1 -0
- package/dist/plus/agents/stateMachine.js +180 -0
- package/dist/plus/agents/stateMachine.js.map +1 -0
- package/dist/plus/agents/types.d.ts +203 -0
- package/dist/plus/agents/types.d.ts.map +1 -0
- package/dist/plus/agents/types.js +49 -0
- package/dist/plus/agents/types.js.map +1 -0
- package/dist/plus/ai/constants.d.ts +2 -1
- package/dist/plus/ai/constants.d.ts.map +1 -1
- package/dist/plus/ai/constants.js +7 -0
- package/dist/plus/ai/constants.js.map +1 -1
- package/dist/plus/ai/errors.d.ts +4 -1
- package/dist/plus/ai/errors.d.ts.map +1 -1
- package/dist/plus/ai/errors.js +38 -0
- package/dist/plus/ai/errors.js.map +1 -1
- package/dist/plus/ai/models/model.d.ts +1 -1
- package/dist/plus/ai/models/model.d.ts.map +1 -1
- package/dist/plus/ai/models/model.js.map +1 -1
- package/dist/plus/ai/models/promptTemplates.d.ts +28 -2
- package/dist/plus/ai/models/promptTemplates.d.ts.map +1 -1
- package/dist/plus/ai/models/results.d.ts +28 -0
- package/dist/plus/ai/models/results.d.ts.map +1 -1
- package/dist/plus/ai/prompts.d.ts +4 -0
- package/dist/plus/ai/prompts.d.ts.map +1 -1
- package/dist/plus/ai/prompts.js +167 -1
- package/dist/plus/ai/prompts.js.map +1 -1
- package/dist/plus/ai/utils/ai.utils.d.ts.map +1 -1
- package/dist/plus/ai/utils/ai.utils.js +2 -0
- package/dist/plus/ai/utils/ai.utils.js.map +1 -1
- package/dist/plus/ai/utils/results.utils.d.ts +3 -0
- package/dist/plus/ai/utils/results.utils.d.ts.map +1 -1
- package/dist/plus/ai/utils/results.utils.js +75 -0
- package/dist/plus/ai/utils/results.utils.js.map +1 -1
- package/dist/plus/ai/utils/truncation.utils.d.ts +1 -1
- package/dist/plus/ai/utils/truncation.utils.d.ts.map +1 -1
- package/dist/plus/ai/utils/truncation.utils.js.map +1 -1
- package/dist/plus/git-github/api/github.d.ts +10 -1
- package/dist/plus/git-github/api/github.d.ts.map +1 -1
- package/dist/plus/git-github/api/github.js +156 -49
- package/dist/plus/git-github/api/github.js.map +1 -1
- package/dist/plus/git-github/api/types.d.ts +8 -0
- package/dist/plus/git-github/api/types.d.ts.map +1 -1
- package/dist/plus/git-github/models.d.ts +1 -1
- package/dist/plus/git-github/models.d.ts.map +1 -1
- package/dist/plus/git-github/models.js.map +1 -1
- package/dist/plus/git-github/providers/github/blame.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/blame.js.map +1 -1
- package/dist/plus/git-github/providers/github/branches.d.ts +5 -1
- package/dist/plus/git-github/providers/github/branches.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/branches.js +60 -22
- package/dist/plus/git-github/providers/github/branches.js.map +1 -1
- package/dist/plus/git-github/providers/github/commits.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/commits.js +144 -92
- package/dist/plus/git-github/providers/github/commits.js.map +1 -1
- package/dist/plus/git-github/providers/github/diff.d.ts +3 -1
- package/dist/plus/git-github/providers/github/diff.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/diff.js +23 -9
- package/dist/plus/git-github/providers/github/diff.js.map +1 -1
- package/dist/plus/git-github/providers/github/refs.d.ts +9 -1
- package/dist/plus/git-github/providers/github/refs.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/refs.js +38 -13
- package/dist/plus/git-github/providers/github/refs.js.map +1 -1
- package/dist/plus/git-github/providers/github/revision.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/revision.js +1 -2
- package/dist/plus/git-github/providers/github/revision.js.map +1 -1
- package/dist/plus/git-github/providers/github/status.d.ts +4 -1
- package/dist/plus/git-github/providers/github/status.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/status.js +1 -1
- package/dist/plus/git-github/providers/github/status.js.map +1 -1
- package/dist/plus/git-github/providers/github/tags.d.ts.map +1 -1
- package/dist/plus/git-github/providers/github/tags.js +35 -36
- package/dist/plus/git-github/providers/github/tags.js.map +1 -1
- package/dist/plus/git-github/providers/githubGitProvider.d.ts.map +1 -1
- package/dist/plus/git-github/providers/githubGitProvider.js.map +1 -1
- package/dist/utils/color.d.ts.map +1 -1
- package/dist/utils/color.js.map +1 -1
- package/dist/utils/decorators/log.js +1 -1
- package/dist/utils/decorators/log.js.map +1 -1
- package/dist/utils/decorators/sequentialize.d.ts.map +1 -1
- package/dist/utils/decorators/sequentialize.js +4 -2
- package/dist/utils/decorators/sequentialize.js.map +1 -1
- package/dist/utils/decorators/serializable.d.ts.map +1 -1
- package/dist/utils/decorators/serializable.js.map +1 -1
- package/dist/utils/dedupedAsyncCache.d.ts +37 -0
- package/dist/utils/dedupedAsyncCache.d.ts.map +1 -0
- package/dist/utils/dedupedAsyncCache.js +68 -0
- package/dist/utils/dedupedAsyncCache.js.map +1 -0
- package/dist/utils/diff.d.ts +2 -0
- package/dist/utils/diff.d.ts.map +1 -0
- package/dist/utils/diff.js +53 -0
- package/dist/utils/diff.js.map +1 -0
- package/dist/utils/disposable.d.ts.map +1 -1
- package/dist/utils/disposable.js.map +1 -1
- package/dist/utils/env/node/base64.js.map +1 -1
- package/dist/utils/env/node/exec.d.ts.map +1 -1
- package/dist/utils/env/node/exec.js.map +1 -1
- package/dist/utils/error.d.ts.map +1 -1
- package/dist/utils/error.js.map +1 -1
- package/dist/utils/formatter.d.ts.map +1 -1
- package/dist/utils/formatter.js +4 -10
- package/dist/utils/formatter.js.map +1 -1
- package/dist/utils/iterable.d.ts.map +1 -1
- package/dist/utils/iterable.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/lruMap.d.ts +49 -0
- package/dist/utils/lruMap.d.ts.map +1 -0
- package/dist/utils/lruMap.js +103 -0
- package/dist/utils/lruMap.js.map +1 -0
- package/dist/utils/markdown.d.ts.map +1 -1
- package/dist/utils/markdown.js.map +1 -1
- package/dist/utils/mru.d.ts.map +1 -1
- package/dist/utils/mru.js.map +1 -1
- package/dist/utils/path.d.ts.map +1 -1
- package/dist/utils/path.js.map +1 -1
- package/dist/utils/promise.d.ts +1 -0
- package/dist/utils/promise.d.ts.map +1 -1
- package/dist/utils/promise.js +17 -0
- package/dist/utils/promise.js.map +1 -1
- package/dist/utils/promiseCache.d.ts +10 -0
- package/dist/utils/promiseCache.d.ts.map +1 -1
- package/dist/utils/promiseCache.js +22 -0
- package/dist/utils/promiseCache.js.map +1 -1
- package/dist/utils/string.d.ts.map +1 -1
- package/dist/utils/string.js.map +1 -1
- package/dist/utils/uri.d.ts.map +1 -1
- package/dist/utils/uri.js.map +1 -1
- package/dist/utils/version.d.ts +14 -0
- package/dist/utils/version.d.ts.map +1 -1
- package/dist/utils/version.js +48 -0
- package/dist/utils/version.js.map +1 -1
- package/package.json +13 -1
- package/src/git/cache.ts +309 -29
- package/src/git/context.ts +11 -2
- package/src/git/models/branch.ts +1 -0
- package/src/git/models/commit.ts +2 -17
- package/src/git/models/graph.ts +2 -4
- package/src/git/models/reference.ts +33 -0
- package/src/git/models/remote.ts +1 -0
- package/src/git/models/repository.ts +44 -6
- package/src/git/models/search.ts +2 -2
- package/src/git/models/worktree.ts +10 -2
- package/src/git/parsers/diffParser.ts +9 -44
- package/src/git/providers/branches.ts +25 -4
- package/src/git/providers/commits.ts +7 -0
- package/src/git/providers/config.ts +4 -0
- package/src/git/providers/diff.ts +8 -2
- package/src/git/providers/operations.ts +54 -3
- package/src/git/providers/pausedOperations.ts +1 -0
- package/src/git/providers/refs.ts +32 -3
- package/src/git/providers/revision.ts +5 -1
- package/src/git/providers/staging.ts +14 -0
- package/src/git/providers/status.ts +6 -1
- package/src/git/remotes/azure-devops.ts +2 -0
- package/src/git/{exec.types.ts → run.types.ts} +22 -2
- package/src/git/service.ts +1 -0
- package/src/git/utils/autolink.utils.ts +1 -0
- package/src/git/utils/blame.utils.ts +2 -0
- package/src/git/utils/conflictResolution.utils.ts +31 -0
- package/src/git/utils/fileStatus.utils.ts +7 -1
- package/src/git/utils/search.utils.ts +2 -0
- package/src/git/utils/sorting.ts +38 -0
- package/src/git/utils/status.utils.ts +1 -0
- package/src/git/watching/classifyChange.ts +9 -0
- package/src/git/watching/gitIgnoreFilter.ts +2 -2
- package/src/git/watching/initWatcher.ts +2 -0
- package/src/git/watching/watchGroup.ts +3 -0
- package/src/git/watching/watchService.ts +38 -5
- package/src/git/watching/watchSession.ts +10 -0
- package/src/git-cli/cliGitProvider.ts +1 -1
- package/src/git-cli/exec/exec.types.ts +2 -2
- package/src/git-cli/exec/git.ts +76 -23
- package/src/git-cli/exec/gitQueue.ts +98 -25
- package/src/git-cli/parsers/blameParser.ts +1 -0
- package/src/git-cli/parsers/logParser.ts +6 -1
- package/src/git-cli/parsers/refParser.ts +33 -34
- package/src/git-cli/providers/blame.ts +2 -1
- package/src/git-cli/providers/branches.ts +341 -196
- package/src/git-cli/providers/commits.ts +145 -46
- package/src/git-cli/providers/config.ts +50 -16
- package/src/git-cli/providers/contributors.ts +7 -12
- package/src/git-cli/providers/diff.ts +107 -20
- package/src/git-cli/providers/graph.ts +58 -29
- package/src/git-cli/providers/operations.ts +253 -57
- package/src/git-cli/providers/patch.ts +16 -37
- package/src/git-cli/providers/pausedOperations.ts +14 -6
- package/src/git-cli/providers/refs.ts +274 -11
- package/src/git-cli/providers/remotes.ts +4 -4
- package/src/git-cli/providers/revision.ts +22 -15
- package/src/git-cli/providers/staging.ts +51 -8
- package/src/git-cli/providers/stash.ts +67 -134
- package/src/git-cli/providers/status.ts +21 -10
- package/src/git-cli/providers/tags.ts +18 -19
- package/src/git-cli/providers/worktrees.ts +3 -3
- package/src/ipc/discovery.ts +56 -0
- package/src/ipc/ipcServer.ts +171 -0
- package/src/plus/agents/providers/claudeCodeProvider.ts +1782 -0
- package/src/plus/agents/providers/claudeCodeTranscript.ts +214 -0
- package/src/plus/agents/sanitizePrompt.ts +109 -0
- package/src/plus/agents/stateMachine.ts +197 -0
- package/src/plus/agents/types.ts +277 -0
- package/src/plus/ai/constants.ts +8 -0
- package/src/plus/ai/errors.ts +40 -0
- package/src/plus/ai/models/model.ts +1 -0
- package/src/plus/ai/models/promptTemplates.ts +42 -0
- package/src/plus/ai/models/results.ts +30 -0
- package/src/plus/ai/prompts.ts +171 -1
- package/src/plus/ai/utils/ai.utils.ts +2 -0
- package/src/plus/ai/utils/results.utils.ts +101 -0
- package/src/plus/ai/utils/truncation.utils.ts +3 -1
- package/src/plus/git-github/api/github.ts +199 -53
- package/src/plus/git-github/api/types.ts +15 -0
- package/src/plus/git-github/models.ts +1 -1
- package/src/plus/git-github/providers/github/blame.ts +2 -0
- package/src/plus/git-github/providers/github/branches.ts +75 -33
- package/src/plus/git-github/providers/github/commits.ts +231 -160
- package/src/plus/git-github/providers/github/diff.ts +35 -21
- package/src/plus/git-github/providers/github/refs.ts +57 -22
- package/src/plus/git-github/providers/github/revision.ts +1 -2
- package/src/plus/git-github/providers/github/status.ts +6 -1
- package/src/plus/git-github/providers/github/tags.ts +61 -62
- package/src/plus/git-github/providers/githubGitProvider.ts +1 -0
- package/src/utils/color.ts +2 -0
- package/src/utils/decorators/log.ts +1 -1
- package/src/utils/decorators/sequentialize.ts +8 -6
- package/src/utils/decorators/serializable.ts +1 -0
- package/src/utils/dedupedAsyncCache.ts +74 -0
- package/src/utils/diff.ts +61 -0
- package/src/utils/disposable.ts +2 -0
- package/src/utils/env/node/base64.ts +1 -1
- package/src/utils/env/node/exec.ts +4 -2
- package/src/utils/error.ts +1 -0
- package/src/utils/formatter.ts +4 -11
- package/src/utils/iterable.ts +4 -1
- package/src/utils/logger.ts +1 -0
- package/src/utils/lruMap.ts +112 -0
- package/src/utils/markdown.ts +1 -0
- package/src/utils/mru.ts +2 -0
- package/src/utils/path.ts +1 -0
- package/src/utils/promise.ts +22 -0
- package/src/utils/promiseCache.ts +24 -0
- package/src/utils/string.ts +2 -0
- package/src/utils/uri.ts +1 -0
- package/src/utils/version.ts +49 -0
- package/dist/git/exec.types.d.ts.map +0 -1
- package/dist/git/exec.types.js +0 -2
- package/dist/git/exec.types.js.map +0 -1
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { kill } from 'process';
|
|
2
|
+
/** Cap for derived plan / question summaries — short enough to clamp into a card row without
|
|
3
|
+
* truncation eating the leading content, long enough to convey what the prompt is about. */
|
|
4
|
+
const summaryMaxLength = 120;
|
|
5
|
+
export function deriveStatusFromEvent(event) {
|
|
6
|
+
switch (event) {
|
|
7
|
+
case 'SessionStart':
|
|
8
|
+
case 'Stop':
|
|
9
|
+
case 'StopFailure':
|
|
10
|
+
return 'idle';
|
|
11
|
+
case 'PreToolUse':
|
|
12
|
+
return 'tool_use';
|
|
13
|
+
case 'PreCompact':
|
|
14
|
+
return 'compacting';
|
|
15
|
+
case 'PermissionRequest':
|
|
16
|
+
case 'Elicitation':
|
|
17
|
+
return 'permission_requested';
|
|
18
|
+
case 'UserPromptSubmit':
|
|
19
|
+
case 'PostToolUse':
|
|
20
|
+
case 'PostToolUseFailure':
|
|
21
|
+
case 'PostCompact':
|
|
22
|
+
case 'PermissionDenied':
|
|
23
|
+
case 'ElicitationResult':
|
|
24
|
+
case 'SubagentStart':
|
|
25
|
+
case 'SubagentStop':
|
|
26
|
+
return 'thinking';
|
|
27
|
+
default:
|
|
28
|
+
return 'idle';
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export function isProcessAlive(pid) {
|
|
32
|
+
// `kill(0, ...)` and `kill(<negative>, ...)` have process-group semantics on POSIX
|
|
33
|
+
// (and target the current process under libuv on Windows), so they don't tell us
|
|
34
|
+
// anything about a specific pid. Reject anything that isn't a real, positive pid.
|
|
35
|
+
if (!Number.isInteger(pid) || pid <= 0)
|
|
36
|
+
return false;
|
|
37
|
+
try {
|
|
38
|
+
kill(pid, 0);
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
catch (ex) {
|
|
42
|
+
// The process exists but we can't signal it: sandboxed/different uid (POSIX
|
|
43
|
+
// EPERM) or `OpenProcess` access-denied (Windows EACCES). Treat as alive.
|
|
44
|
+
// ESRCH and everything else mean dead.
|
|
45
|
+
const code = ex?.code;
|
|
46
|
+
return code === 'EPERM' || code === 'EACCES';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export function rehydrateSubagents(subagents) {
|
|
50
|
+
if (subagents == null || subagents.length === 0)
|
|
51
|
+
return undefined;
|
|
52
|
+
return subagents.map(s => ({
|
|
53
|
+
...s,
|
|
54
|
+
lastActivity: new Date(s.lastActivity),
|
|
55
|
+
phaseSince: new Date(s.phaseSince),
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
export function describeToolInput(toolName, toolInput) {
|
|
59
|
+
let detail;
|
|
60
|
+
switch (toolName) {
|
|
61
|
+
case 'Bash':
|
|
62
|
+
detail = toolInput.command;
|
|
63
|
+
break;
|
|
64
|
+
case 'Edit':
|
|
65
|
+
case 'MultiEdit':
|
|
66
|
+
case 'Write':
|
|
67
|
+
case 'Read':
|
|
68
|
+
detail = toolInput.file_path;
|
|
69
|
+
break;
|
|
70
|
+
case 'Grep':
|
|
71
|
+
case 'Glob':
|
|
72
|
+
detail = toolInput.pattern;
|
|
73
|
+
break;
|
|
74
|
+
case 'WebFetch':
|
|
75
|
+
detail = toolInput.url;
|
|
76
|
+
break;
|
|
77
|
+
case 'WebSearch':
|
|
78
|
+
detail = toolInput.query;
|
|
79
|
+
break;
|
|
80
|
+
case 'NotebookEdit':
|
|
81
|
+
detail = toolInput.notebook_path;
|
|
82
|
+
break;
|
|
83
|
+
case 'ExitPlanMode':
|
|
84
|
+
detail = extractPlanSummary(toolInput);
|
|
85
|
+
break;
|
|
86
|
+
case 'AskUserQuestion':
|
|
87
|
+
detail = extractQuestionDetails(toolInput)?.text;
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
return detail != null ? `${toolName}(${detail})` : toolName;
|
|
91
|
+
}
|
|
92
|
+
/** Maps a Claude Code tool name to its UX-relevant prompt kind. `ExitPlanMode` and
|
|
93
|
+
* `AskUserQuestion` are the two tools whose semantics differ from a regular permission
|
|
94
|
+
* request — everything else falls through to the generic tool kind. */
|
|
95
|
+
export function classifyPermissionKind(toolName) {
|
|
96
|
+
switch (toolName) {
|
|
97
|
+
case 'ExitPlanMode':
|
|
98
|
+
return 'plan';
|
|
99
|
+
case 'AskUserQuestion':
|
|
100
|
+
return 'question';
|
|
101
|
+
default:
|
|
102
|
+
return 'tool';
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/** Extracts a short, scannable summary from an ExitPlanMode plan body. Prefers the first
|
|
106
|
+
* Markdown heading (stripped of leading `#`s) so the plan's title surfaces; falls back to
|
|
107
|
+
* the first non-empty line if no heading appears. Capped at {@link summaryMaxLength} with an
|
|
108
|
+
* ellipsis. */
|
|
109
|
+
export function extractPlanSummary(toolInput) {
|
|
110
|
+
const plan = toolInput.plan;
|
|
111
|
+
if (!plan)
|
|
112
|
+
return undefined;
|
|
113
|
+
let heading;
|
|
114
|
+
let firstNonEmpty;
|
|
115
|
+
for (const line of plan.split(/\r?\n/)) {
|
|
116
|
+
const trimmed = line.trim();
|
|
117
|
+
if (!trimmed)
|
|
118
|
+
continue;
|
|
119
|
+
if (trimmed.startsWith('#')) {
|
|
120
|
+
const stripped = trimmed.replace(/^#+\s*/, '').trim();
|
|
121
|
+
if (stripped) {
|
|
122
|
+
heading = stripped;
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
firstNonEmpty ??= trimmed;
|
|
127
|
+
}
|
|
128
|
+
const summary = heading ?? firstNonEmpty;
|
|
129
|
+
if (!summary)
|
|
130
|
+
return undefined;
|
|
131
|
+
return summary.length > summaryMaxLength ? `${summary.slice(0, summaryMaxLength).trimEnd()}…` : summary;
|
|
132
|
+
}
|
|
133
|
+
/** Extracts the leading question text + total question count from an AskUserQuestion call.
|
|
134
|
+
* Returns undefined if the input doesn't carry a recognisable `questions` array. */
|
|
135
|
+
export function extractQuestionDetails(toolInput) {
|
|
136
|
+
const questions = toolInput.questions;
|
|
137
|
+
if (!Array.isArray(questions) || questions.length === 0)
|
|
138
|
+
return undefined;
|
|
139
|
+
const first = questions[0]?.question;
|
|
140
|
+
if (typeof first !== 'string')
|
|
141
|
+
return undefined;
|
|
142
|
+
const trimmed = first.trim();
|
|
143
|
+
if (!trimmed)
|
|
144
|
+
return undefined;
|
|
145
|
+
const text = trimmed.length > summaryMaxLength ? `${trimmed.slice(0, summaryMaxLength).trimEnd()}…` : trimmed;
|
|
146
|
+
return { text: text, count: questions.length };
|
|
147
|
+
}
|
|
148
|
+
/** Returns the file path a file-mutating tool is targeting, or `undefined` for non-mutating /
|
|
149
|
+
* non-file tools. `Read` is intentionally excluded — "working on a file" means writing to it.
|
|
150
|
+
* Reads are surfaced separately via {@link getToolReadPath} so consumers (e.g. the treemap
|
|
151
|
+
* activity overlay) can render reads with a distinct visual treatment. */
|
|
152
|
+
export function getToolFilePath(toolName, toolInput) {
|
|
153
|
+
if (toolInput == null)
|
|
154
|
+
return undefined;
|
|
155
|
+
switch (toolName) {
|
|
156
|
+
case 'Edit':
|
|
157
|
+
case 'MultiEdit':
|
|
158
|
+
case 'Write':
|
|
159
|
+
return toolInput.file_path;
|
|
160
|
+
case 'NotebookEdit':
|
|
161
|
+
return toolInput.notebook_path;
|
|
162
|
+
default:
|
|
163
|
+
return undefined;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/** Returns the file path a read-only file tool is targeting, or `undefined` for non-read /
|
|
167
|
+
* non-file tools. Mirrors {@link getToolFilePath} but for `Read`/`NotebookRead`. */
|
|
168
|
+
export function getToolReadPath(toolName, toolInput) {
|
|
169
|
+
if (toolInput == null)
|
|
170
|
+
return undefined;
|
|
171
|
+
switch (toolName) {
|
|
172
|
+
case 'Read':
|
|
173
|
+
return toolInput.file_path;
|
|
174
|
+
case 'NotebookRead':
|
|
175
|
+
return toolInput.notebook_path;
|
|
176
|
+
default:
|
|
177
|
+
return undefined;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=stateMachine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stateMachine.js","sourceRoot":"","sources":["../../../src/plus/agents/stateMachine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import type { IpcHandler } from '../../ipc/ipcServer.js';
|
|
2
|
+
import type { UnifiedDisposable } from '../../utils/disposable.js';
|
|
3
|
+
import type { Event } from '../../utils/event.js';
|
|
4
|
+
export declare const claudeCodeNonBlockingHookEvents: readonly ["SessionStart", "SessionEnd", "UserPromptSubmit", "PreToolUse", "PostToolUse", "PostToolUseFailure", "Notification", "Stop", "StopFailure", "SubagentStart", "SubagentStop", "TeammateIdle", "TaskCompleted", "InstructionsLoaded", "ConfigChange", "WorktreeCreate", "WorktreeRemove", "PreCompact", "PostCompact", "Elicitation", "ElicitationResult", "PermissionDenied", "CwdChanged"];
|
|
5
|
+
export declare const claudeCodeBlockingHookEvents: readonly ["PermissionRequest"];
|
|
6
|
+
export type ClaudeCodeHookEvent = (typeof claudeCodeNonBlockingHookEvents)[number] | (typeof claudeCodeBlockingHookEvents)[number];
|
|
7
|
+
export type PermissionDecision = 'allow' | 'deny';
|
|
8
|
+
export type AgentSessionStatus = 'thinking' | 'tool_use' | 'responding' | 'waiting' | 'idle' | 'compacting' | 'permission_requested';
|
|
9
|
+
export type AgentSessionPhase = 'idle' | 'working' | 'waiting';
|
|
10
|
+
export declare function getPhaseForStatus(status: AgentSessionStatus): AgentSessionPhase;
|
|
11
|
+
/**
|
|
12
|
+
* Returns whether the given phase represents an agent that is actively doing work or
|
|
13
|
+
* awaiting input (as opposed to fully idle). Uses an explicit allowlist so new phases
|
|
14
|
+
* default to "not active" rather than being silently treated as live.
|
|
15
|
+
*/
|
|
16
|
+
export declare function isActiveAgentPhase(phase: AgentSessionPhase): boolean;
|
|
17
|
+
export interface PermissionSuggestion {
|
|
18
|
+
readonly type: string;
|
|
19
|
+
readonly tool?: string;
|
|
20
|
+
readonly rules?: readonly {
|
|
21
|
+
readonly toolName: string;
|
|
22
|
+
readonly ruleContent?: string;
|
|
23
|
+
}[];
|
|
24
|
+
readonly destination?: string;
|
|
25
|
+
}
|
|
26
|
+
/** Classification of what the agent is awaiting input for. Drives kind-aware UI: action button
|
|
27
|
+
* labels, phase wording, and which payload field carries the body. Detected at the provider
|
|
28
|
+
* boundary from the tool name / event so webviews don't grow their own classifiers.
|
|
29
|
+
* - `tool`: a regular tool permission (Bash, Edit, Read, …) — body is `toolDescription`.
|
|
30
|
+
* - `plan`: ExitPlanMode — body is `planSummary`; `planFilePath` may link the written plan.
|
|
31
|
+
* - `question`: AskUserQuestion — body is `questionText`; `questionCount` describes the batch.
|
|
32
|
+
* - `elicitation`: MCP elicitation — body is just `toolName`; user must respond in-session. */
|
|
33
|
+
export type PendingPermissionKind = 'tool' | 'plan' | 'question' | 'elicitation';
|
|
34
|
+
export interface PendingPermission {
|
|
35
|
+
readonly kind: PendingPermissionKind;
|
|
36
|
+
readonly toolName: string;
|
|
37
|
+
readonly toolDescription: string;
|
|
38
|
+
readonly toolInputDescription?: string;
|
|
39
|
+
readonly suggestions?: readonly PermissionSuggestion[];
|
|
40
|
+
/** Plan-mode (`kind === 'plan'`): on-disk path of the plan markdown, when the agent wrote one. */
|
|
41
|
+
readonly planFilePath?: string;
|
|
42
|
+
/** Plan-mode: short summary extracted from the plan content (first heading or leading sentence). */
|
|
43
|
+
readonly planSummary?: string;
|
|
44
|
+
/** Question-mode (`kind === 'question'`): the leading question text. */
|
|
45
|
+
readonly questionText?: string;
|
|
46
|
+
/** Question-mode: total number of questions in the batch. */
|
|
47
|
+
readonly questionCount?: number;
|
|
48
|
+
}
|
|
49
|
+
export interface AgentSession {
|
|
50
|
+
readonly id: string;
|
|
51
|
+
readonly providerId: string;
|
|
52
|
+
readonly providerName: string;
|
|
53
|
+
readonly name?: string;
|
|
54
|
+
readonly status: AgentSessionStatus;
|
|
55
|
+
readonly phase: AgentSessionPhase;
|
|
56
|
+
readonly statusDetail?: string;
|
|
57
|
+
readonly worktreePath?: string;
|
|
58
|
+
/** Common (parent) repo path shared by every worktree in this session's repo. Set together
|
|
59
|
+
* with `worktreePath` by `resolveGitInfo` — equal to `worktreePath` for a default-worktree
|
|
60
|
+
* session, otherwise the parent repo's common path. Use this for "same repo" identity
|
|
61
|
+
* checks; {@link workspacePath} is the matched workspace folder, not repo identity.
|
|
62
|
+
*
|
|
63
|
+
* `undefined` carries two meanings the host distinguishes internally (via the
|
|
64
|
+
* `gitInfoUnresolvable` bookkeeping flag) but consumers should treat identically: either
|
|
65
|
+
* "not yet resolved" (no probe completed) or "resolved but cwd is not inside any git repo".
|
|
66
|
+
* Either way, no repo identity is available — never attempt to `path.join`/`path.resolve`
|
|
67
|
+
* against it without an explicit `!= null` check. */
|
|
68
|
+
readonly commonPath?: string;
|
|
69
|
+
readonly pid?: number;
|
|
70
|
+
readonly lastActivity: Date;
|
|
71
|
+
readonly phaseSince: Date;
|
|
72
|
+
readonly isSubagent: boolean;
|
|
73
|
+
readonly parentId?: string;
|
|
74
|
+
readonly subagents?: readonly AgentSession[];
|
|
75
|
+
readonly pendingPermission?: PendingPermission;
|
|
76
|
+
/** The VS Code workspace folder containing the agent's cwd, or `undefined` if cwd is outside
|
|
77
|
+
* any open workspace folder. Used for `isInWorkspace` and "Open Folder" only — NOT for repo
|
|
78
|
+
* identity. For "what repo is this session in", use {@link commonPath}. */
|
|
79
|
+
readonly workspacePath?: string;
|
|
80
|
+
readonly cwd?: string;
|
|
81
|
+
readonly planFile?: string;
|
|
82
|
+
readonly isInWorkspace: boolean;
|
|
83
|
+
readonly lastPrompt?: string;
|
|
84
|
+
readonly firstPrompt?: string;
|
|
85
|
+
/** Absolute paths of files targeted by in-flight file-editing tool calls (Edit/Write/MultiEdit/
|
|
86
|
+
* NotebookEdit). Populated on PreToolUse, drained on PostToolUse/PermissionDenied, cleared on
|
|
87
|
+
* Stop/SessionEnd. Empty/undefined when no file-editing tool is active.
|
|
88
|
+
*
|
|
89
|
+
* Mutable array form so `Shape<AgentSession>` projects it as `string[]` (the `Shape<>` type
|
|
90
|
+
* mangles `readonly T[]` into a mapped object that loses its iterator). Treat as immutable. */
|
|
91
|
+
currentFiles?: string[];
|
|
92
|
+
/** Absolute paths of files the agent recently *read* (Read/NotebookRead). Populated on
|
|
93
|
+
* PreToolUse, drained on PostToolUse/PermissionDenied with the same cooldown as
|
|
94
|
+
* `currentFiles`. Distinct from `currentFiles` which tracks write-class tools so consumers can
|
|
95
|
+
* visualize "looking at" vs "working on" differently. Treat as immutable. */
|
|
96
|
+
currentReads?: string[];
|
|
97
|
+
/** `true` when the session was discovered via peer IPC sync (i.e. another GitLens window hosts
|
|
98
|
+
* the agent's hook flow and Claude Code extension panel). Locally-owned sessions leave this
|
|
99
|
+
* unset. The dispatcher uses this to route opens through the peer's IPC route + an OS-level
|
|
100
|
+
* window focus, since calling `claude-vscode.editor.open` in *our* extension only opens an
|
|
101
|
+
* inert local view that isn't connected to the live session running in the peer.
|
|
102
|
+
*
|
|
103
|
+
* Window-local: never serialized faithfully across the IPC wire. Each window decides locally
|
|
104
|
+
* based on how it received the session — `querySiblingWindowSessions` always overrides to
|
|
105
|
+
* `true` regardless of what the peer published. */
|
|
106
|
+
readonly isPeerOwned?: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Titles discovered by tailing the Claude Code transcript JSONL at
|
|
109
|
+
* `~/.claude/projects/<encoded-cwd>/<sessionId>.jsonl`. Populated by
|
|
110
|
+
* `ClaudeCodeTranscriptReader`; used by `getSessionDisplayName` as a fallback when no
|
|
111
|
+
* harness-supplied `name` is available. Last occurrence in the transcript wins per type.
|
|
112
|
+
*/
|
|
113
|
+
readonly transcriptTitles?: {
|
|
114
|
+
readonly custom?: string;
|
|
115
|
+
readonly ai?: string;
|
|
116
|
+
readonly agent?: string;
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
export interface AgentSessionProvider extends UnifiedDisposable {
|
|
120
|
+
readonly id: string;
|
|
121
|
+
readonly name: string;
|
|
122
|
+
readonly icon: string;
|
|
123
|
+
readonly onDidChangeSessions: Event<void>;
|
|
124
|
+
readonly sessions: readonly AgentSession[];
|
|
125
|
+
start(workspacePaths: string[]): void;
|
|
126
|
+
stop(): void;
|
|
127
|
+
updateWorkspacePaths?(workspacePaths: string[]): void;
|
|
128
|
+
/** Resolves a pending permission. Returns `true` when the resolve was routed (the local IPC
|
|
129
|
+
* owns the session's pending entry); `false` when no local entry exists (typically a peer-
|
|
130
|
+
* discovered session owned by another GitLens window). Callers use this to give the user
|
|
131
|
+
* feedback rather than a silent no-op. */
|
|
132
|
+
resolvePermission?(sessionId: string, decision: PermissionDecision, updatedPermissions?: PermissionSuggestion[]): boolean;
|
|
133
|
+
/** Asks the peer GitLens window that has `workspacePath` open (or any peer whose workspacePath
|
|
134
|
+
* contains, or is contained by, it) to open the given session in its Claude Code extension
|
|
135
|
+
* via the `agents/sessions/open` IPC route. Resolves to `true` when at least one peer claimed
|
|
136
|
+
* the workspace AND was reachable; `false` otherwise. Best-effort: never rejects. The boolean
|
|
137
|
+
* is currently a diagnostic signal only — the dispatcher fires this in parallel with
|
|
138
|
+
* `vscode.openFolder` and relies on VS Code's window-folder matching to focus the owning
|
|
139
|
+
* window (which works whether or not the peer runs GitLens). */
|
|
140
|
+
notifyPeerOpenSession?(workspacePath: string, sessionId: string): Promise<boolean>;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Host-supplied IPC service. The agents package registers handlers and publishes
|
|
144
|
+
* the agents discovery file via this interface so it doesn't depend on the host's
|
|
145
|
+
* IPC service directly.
|
|
146
|
+
*
|
|
147
|
+
* The agents package is the source of truth for the workspacePaths advertised in
|
|
148
|
+
* the agents discovery file — `publishAgents` takes them as an argument and the host
|
|
149
|
+
* is expected to re-publish whenever those paths change.
|
|
150
|
+
*/
|
|
151
|
+
export interface IpcRegistrar {
|
|
152
|
+
readonly port: number | undefined;
|
|
153
|
+
/** Directory scanned for peer-window agent discovery files. Omit to disable peer discovery (tests). */
|
|
154
|
+
readonly agentDiscoveryDir?: string;
|
|
155
|
+
registerHandler<Request = unknown, Response = unknown>(name: string, handler: IpcHandler<Request, Response>): UnifiedDisposable;
|
|
156
|
+
publishAgents(workspacePaths: string[]): Promise<void>;
|
|
157
|
+
unpublishAgents(): Promise<void>;
|
|
158
|
+
}
|
|
159
|
+
export interface AgentProviderCallbacks {
|
|
160
|
+
/** Host-supplied IPC service. Required for agents to receive hook events from the GK CLI. */
|
|
161
|
+
ipc: IpcRegistrar;
|
|
162
|
+
/** Report that an agent session started. No-op if the host has no telemetry. */
|
|
163
|
+
onSessionStarted?(provider: string): void;
|
|
164
|
+
/** Report that an agent session ended. No-op if the host has no telemetry. */
|
|
165
|
+
onSessionEnded?(provider: string): void;
|
|
166
|
+
/** Report that a permission request was resolved. No-op if the host has no telemetry. */
|
|
167
|
+
onPermissionResolved?(info: {
|
|
168
|
+
provider: string;
|
|
169
|
+
tool: string;
|
|
170
|
+
decision: PermissionDecision;
|
|
171
|
+
}): void;
|
|
172
|
+
/** Notify the host that a branch has agent activity. */
|
|
173
|
+
onBranchAgentActivity?(cwd: string): void;
|
|
174
|
+
/**
|
|
175
|
+
* Run the GK CLI with the given args. Returns stdout.
|
|
176
|
+
*
|
|
177
|
+
* Host responsibilities:
|
|
178
|
+
* - Resolve the CLI executable path (e.g. via `resolveCLIExecutable`)
|
|
179
|
+
* - Provide the default `cwd` if `options.cwd` is not set (e.g. `globalStorageUri.fsPath` in VS Code)
|
|
180
|
+
* - Inject any environment-specific flags (e.g. `--insiders` when the host has insiders mode enabled)
|
|
181
|
+
*/
|
|
182
|
+
runCLICommand(args: string[], options?: {
|
|
183
|
+
cwd?: string;
|
|
184
|
+
}): Promise<string>;
|
|
185
|
+
/**
|
|
186
|
+
* Resolve git metadata for a session's cwd. Returns the stable worktree path; the worktree's
|
|
187
|
+
* display name (branch name for branch-type worktrees) is intentionally NOT returned — it's
|
|
188
|
+
* resolved live at serialization time so `git checkout` updates display without restarting.
|
|
189
|
+
* Optional — if omitted, sessions won't have worktree metadata.
|
|
190
|
+
*/
|
|
191
|
+
resolveGitInfo?(cwd: string): Promise<{
|
|
192
|
+
repoRoot: string;
|
|
193
|
+
isWorktree: boolean;
|
|
194
|
+
worktreePath?: string;
|
|
195
|
+
} | undefined>;
|
|
196
|
+
/**
|
|
197
|
+
* Open a Claude Code session in the Claude Code VS Code extension. Invoked by the IPC handler
|
|
198
|
+
* when a peer GitLens window asks this window to open a session on its behalf — the host wires
|
|
199
|
+
* this to `claude-vscode.editor.open`. Throws if the extension isn't installed/active.
|
|
200
|
+
*/
|
|
201
|
+
openSessionInClaudeExtension?(sessionId: string): Promise<void>;
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plus/agents/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export const claudeCodeNonBlockingHookEvents = [
|
|
2
|
+
'SessionStart',
|
|
3
|
+
'SessionEnd',
|
|
4
|
+
'UserPromptSubmit',
|
|
5
|
+
'PreToolUse',
|
|
6
|
+
'PostToolUse',
|
|
7
|
+
'PostToolUseFailure',
|
|
8
|
+
'Notification',
|
|
9
|
+
'Stop',
|
|
10
|
+
'StopFailure',
|
|
11
|
+
'SubagentStart',
|
|
12
|
+
'SubagentStop',
|
|
13
|
+
'TeammateIdle',
|
|
14
|
+
'TaskCompleted',
|
|
15
|
+
'InstructionsLoaded',
|
|
16
|
+
'ConfigChange',
|
|
17
|
+
'WorktreeCreate',
|
|
18
|
+
'WorktreeRemove',
|
|
19
|
+
'PreCompact',
|
|
20
|
+
'PostCompact',
|
|
21
|
+
'Elicitation',
|
|
22
|
+
'ElicitationResult',
|
|
23
|
+
'PermissionDenied',
|
|
24
|
+
'CwdChanged',
|
|
25
|
+
];
|
|
26
|
+
export const claudeCodeBlockingHookEvents = ['PermissionRequest'];
|
|
27
|
+
export function getPhaseForStatus(status) {
|
|
28
|
+
switch (status) {
|
|
29
|
+
case 'thinking':
|
|
30
|
+
case 'tool_use':
|
|
31
|
+
case 'responding':
|
|
32
|
+
case 'compacting':
|
|
33
|
+
return 'working';
|
|
34
|
+
case 'waiting':
|
|
35
|
+
case 'permission_requested':
|
|
36
|
+
return 'waiting';
|
|
37
|
+
case 'idle':
|
|
38
|
+
return 'idle';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Returns whether the given phase represents an agent that is actively doing work or
|
|
43
|
+
* awaiting input (as opposed to fully idle). Uses an explicit allowlist so new phases
|
|
44
|
+
* default to "not active" rather than being silently treated as live.
|
|
45
|
+
*/
|
|
46
|
+
export function isActiveAgentPhase(phase) {
|
|
47
|
+
return phase === 'working' || phase === 'waiting';
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plus/agents/types.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC9C,cAAc;IACd,YAAY;IACZ,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,oBAAoB;IACpB,cAAc;IACd,MAAM;IACN,aAAa;IACb,eAAe;IACf,cAAc;IACd,cAAc;IACd,eAAe;IACf,oBAAoB;IACpB,cAAc;IACd,gBAAgB;IAChB,gBAAgB;IAChB,YAAY;IACZ,aAAa;IACb,aAAa;IACb,mBAAmB;IACnB,kBAAkB;IAClB,YAAY;CACH,CAAC;AAEX,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,mBAAmB,CAAU,CAAC;AAmB3E,MAAM,UAAU,iBAAiB,CAAC,MAA0B;IAC3D,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY;YAChB,OAAO,SAAS,CAAC;QAClB,KAAK,SAAS,CAAC;QACf,KAAK,sBAAsB;YAC1B,OAAO,SAAS,CAAC;QAClB,KAAK,MAAM;YACV,OAAO,MAAM,CAAC;IAChB,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAwB;IAC1D,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC;AACnD,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AIProviderDescriptor } from './models/model.js';
|
|
2
|
-
export type AIProviders = 'anthropic' | 'azure' | 'deepseek' | 'gemini' | 'github' | 'gitkraken' | 'huggingface' | 'mistral' | 'ollama' | 'openai' | 'openaicompatible' | 'openrouter' | 'vscode' | 'xai';
|
|
2
|
+
export type AIProviders = 'anthropic' | 'azure' | 'deepseek' | 'gemini' | 'github' | 'gitkraken' | 'huggingface' | 'mistral' | 'ollama' | 'openai' | 'openaicompatible' | 'openrouter' | 'simulator' | 'vscode' | 'xai';
|
|
3
3
|
export type AIPrimaryProviders = Extract<AIProviders, 'gitkraken' | 'vscode'>;
|
|
4
4
|
export type OpenAIProviders = 'azure' | 'openai' | 'openaicompatible';
|
|
5
5
|
export type AIProviderAndModel = `${string}:${string}`;
|
|
@@ -18,4 +18,5 @@ export declare const githubProviderDescriptor: AIProviderDescriptor<'github'>;
|
|
|
18
18
|
export declare const huggingFaceProviderDescriptor: AIProviderDescriptor<'huggingface'>;
|
|
19
19
|
export declare const openRouterProviderDescriptor: AIProviderDescriptor<'openrouter'>;
|
|
20
20
|
export declare const ollamaProviderDescriptor: AIProviderDescriptor<'ollama'>;
|
|
21
|
+
export declare const simulatorProviderDescriptor: AIProviderDescriptor<'simulator'>;
|
|
21
22
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/plus/ai/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,MAAM,MAAM,WAAW,GACpB,WAAW,GACX,OAAO,GACP,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,aAAa,GACb,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,kBAAkB,GAClB,YAAY,GACZ,QAAQ,GACR,KAAK,CAAC;AACT,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC;AAC9E,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,kBAAkB,CAAC;AAEtE,MAAM,MAAM,kBAAkB,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AACvD,MAAM,MAAM,iBAAiB,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,kBAAkB,CAAC,IAAI,MAAM,EAAE,GAAG,kBAAkB,CAAC;AAE7G,eAAO,MAAM,2BAA2B,EAAE,oBAAoB,CAAC,WAAW,CAMhE,CAAC;AACX,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,CAAC,QAAQ,CAM1D,CAAC;AACX,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,CAAC,QAAQ,CAM1D,CAAC;AACX,eAAO,MAAM,uBAAuB,EAAE,oBAAoB,CAAC,OAAO,CAMxD,CAAC;AACX,eAAO,MAAM,kCAAkC,EAAE,oBAAoB,CAAC,kBAAkB,CAM9E,CAAC;AACX,eAAO,MAAM,2BAA2B,EAAE,oBAAoB,CAAC,WAAW,CAMhE,CAAC;AACX,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,CAAC,QAAQ,CAM1D,CAAC;AACX,eAAO,MAAM,yBAAyB,EAAE,oBAAoB,CAAC,SAAS,CAM5D,CAAC;AACX,eAAO,MAAM,0BAA0B,EAAE,oBAAoB,CAAC,UAAU,CAM9D,CAAC;AACX,eAAO,MAAM,qBAAqB,EAAE,oBAAoB,CAAC,KAAK,CAMpD,CAAC;AACX,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,CAAC,QAAQ,CAM1D,CAAC;AACX,eAAO,MAAM,6BAA6B,EAAE,oBAAoB,CAAC,aAAa,CAMpE,CAAC;AACX,eAAO,MAAM,4BAA4B,EAAE,oBAAoB,CAAC,YAAY,CAMlE,CAAC;AACX,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,CAAC,QAAQ,CAM1D,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/plus/ai/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,MAAM,MAAM,WAAW,GACpB,WAAW,GACX,OAAO,GACP,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,aAAa,GACb,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,kBAAkB,GAClB,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,KAAK,CAAC;AACT,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC;AAC9E,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,kBAAkB,CAAC;AAEtE,MAAM,MAAM,kBAAkB,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AACvD,MAAM,MAAM,iBAAiB,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,kBAAkB,CAAC,IAAI,MAAM,EAAE,GAAG,kBAAkB,CAAC;AAE7G,eAAO,MAAM,2BAA2B,EAAE,oBAAoB,CAAC,WAAW,CAMhE,CAAC;AACX,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,CAAC,QAAQ,CAM1D,CAAC;AACX,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,CAAC,QAAQ,CAM1D,CAAC;AACX,eAAO,MAAM,uBAAuB,EAAE,oBAAoB,CAAC,OAAO,CAMxD,CAAC;AACX,eAAO,MAAM,kCAAkC,EAAE,oBAAoB,CAAC,kBAAkB,CAM9E,CAAC;AACX,eAAO,MAAM,2BAA2B,EAAE,oBAAoB,CAAC,WAAW,CAMhE,CAAC;AACX,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,CAAC,QAAQ,CAM1D,CAAC;AACX,eAAO,MAAM,yBAAyB,EAAE,oBAAoB,CAAC,SAAS,CAM5D,CAAC;AACX,eAAO,MAAM,0BAA0B,EAAE,oBAAoB,CAAC,UAAU,CAM9D,CAAC;AACX,eAAO,MAAM,qBAAqB,EAAE,oBAAoB,CAAC,KAAK,CAMpD,CAAC;AACX,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,CAAC,QAAQ,CAM1D,CAAC;AACX,eAAO,MAAM,6BAA6B,EAAE,oBAAoB,CAAC,aAAa,CAMpE,CAAC;AACX,eAAO,MAAM,4BAA4B,EAAE,oBAAoB,CAAC,YAAY,CAMlE,CAAC;AACX,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,CAAC,QAAQ,CAM1D,CAAC;AACX,eAAO,MAAM,2BAA2B,EAAE,oBAAoB,CAAC,WAAW,CAMhE,CAAC"}
|
|
@@ -96,4 +96,11 @@ export const ollamaProviderDescriptor = {
|
|
|
96
96
|
requiresAccount: true,
|
|
97
97
|
requiresUserKey: false,
|
|
98
98
|
};
|
|
99
|
+
export const simulatorProviderDescriptor = {
|
|
100
|
+
id: 'simulator',
|
|
101
|
+
name: 'Simulator (Debugging)',
|
|
102
|
+
primary: false,
|
|
103
|
+
requiresAccount: false,
|
|
104
|
+
requiresUserKey: false,
|
|
105
|
+
};
|
|
99
106
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/plus/ai/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/plus/ai/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/plus/ai/errors.d.ts
CHANGED
|
@@ -9,7 +9,9 @@ export declare const enum AIErrorReason {
|
|
|
9
9
|
ModelNotSupported = 7,
|
|
10
10
|
ServiceCapacityExceeded = 8,
|
|
11
11
|
Unauthorized = 9,
|
|
12
|
-
UserQuotaExceeded = 10
|
|
12
|
+
UserQuotaExceeded = 10,
|
|
13
|
+
NoNetwork = 11,
|
|
14
|
+
Unreachable = 12
|
|
13
15
|
}
|
|
14
16
|
export declare class AIError extends Error {
|
|
15
17
|
readonly original?: Error;
|
|
@@ -22,4 +24,5 @@ export declare class AuthenticationRequiredError extends Error {
|
|
|
22
24
|
export declare class AINoRequestDataError extends AIError {
|
|
23
25
|
constructor(message?: string);
|
|
24
26
|
}
|
|
27
|
+
export declare function classifyNetworkError(ex: unknown): AIErrorReason.NoNetwork | AIErrorReason.Unreachable | undefined;
|
|
25
28
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/plus/ai/errors.ts"],"names":[],"mappings":"AAAA,0BAAkB,aAAa;IAC9B,oBAAoB,IAAA;IACpB,YAAY,IAAA;IACZ,aAAa,IAAA;IACb,aAAa,IAAA;IACb,iBAAiB,IAAA;IACjB,wBAAwB,IAAA;IACxB,eAAe,IAAA;IACf,iBAAiB,IAAA;IACjB,uBAAuB,IAAA;IACvB,YAAY,IAAA;IACZ,iBAAiB,KAAA;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/plus/ai/errors.ts"],"names":[],"mappings":"AAAA,0BAAkB,aAAa;IAC9B,oBAAoB,IAAA;IACpB,YAAY,IAAA;IACZ,aAAa,IAAA;IACb,aAAa,IAAA;IACb,iBAAiB,IAAA;IACjB,wBAAwB,IAAA;IACxB,eAAe,IAAA;IACf,iBAAiB,IAAA;IACjB,uBAAuB,IAAA;IACvB,YAAY,IAAA;IACZ,iBAAiB,KAAA;IACjB,SAAS,KAAA;IACT,WAAW,KAAA;CACX;AAED,qBAAa,OAAQ,SAAQ,KAAK;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC;gBAE/B,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,KAAK;CAqDnD;AAED,qBAAa,2BAA4B,SAAQ,KAAK;;CAMrD;AAED,qBAAa,oBAAqB,SAAQ,OAAO;gBACpC,OAAO,CAAC,EAAE,MAAM;CAK5B;AAcD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO,GAAG,aAAa,CAAC,SAAS,GAAG,aAAa,CAAC,WAAW,GAAG,SAAS,CAkBjH"}
|
package/dist/plus/ai/errors.js
CHANGED
|
@@ -11,6 +11,8 @@ export var AIErrorReason;
|
|
|
11
11
|
AIErrorReason[AIErrorReason["ServiceCapacityExceeded"] = 8] = "ServiceCapacityExceeded";
|
|
12
12
|
AIErrorReason[AIErrorReason["Unauthorized"] = 9] = "Unauthorized";
|
|
13
13
|
AIErrorReason[AIErrorReason["UserQuotaExceeded"] = 10] = "UserQuotaExceeded";
|
|
14
|
+
AIErrorReason[AIErrorReason["NoNetwork"] = 11] = "NoNetwork";
|
|
15
|
+
AIErrorReason[AIErrorReason["Unreachable"] = 12] = "Unreachable";
|
|
14
16
|
})(AIErrorReason || (AIErrorReason = {}));
|
|
15
17
|
export class AIError extends Error {
|
|
16
18
|
original;
|
|
@@ -36,6 +38,12 @@ export class AIError extends Error {
|
|
|
36
38
|
case AIErrorReason.ServiceCapacityExceeded:
|
|
37
39
|
message = 'Service capacity exceeded';
|
|
38
40
|
break;
|
|
41
|
+
case AIErrorReason.NoNetwork:
|
|
42
|
+
message = 'Unable to reach the AI service. Please check your internet connection.';
|
|
43
|
+
break;
|
|
44
|
+
case AIErrorReason.Unreachable:
|
|
45
|
+
message = 'The AI service is temporarily unreachable.';
|
|
46
|
+
break;
|
|
39
47
|
case AIErrorReason.NoRequestData:
|
|
40
48
|
message = original?.message ?? 'No data was provided for the request';
|
|
41
49
|
break;
|
|
@@ -73,4 +81,34 @@ export class AINoRequestDataError extends AIError {
|
|
|
73
81
|
Error.captureStackTrace?.(this, new.target);
|
|
74
82
|
}
|
|
75
83
|
}
|
|
84
|
+
const noNetworkErrorCodes = new Set([
|
|
85
|
+
'ENOTFOUND',
|
|
86
|
+
'ECONNREFUSED',
|
|
87
|
+
'EAI_AGAIN',
|
|
88
|
+
'EHOSTUNREACH',
|
|
89
|
+
'ENETUNREACH',
|
|
90
|
+
'ENETDOWN',
|
|
91
|
+
'UND_ERR_CONNECT_TIMEOUT',
|
|
92
|
+
]);
|
|
93
|
+
const unreachableErrorCodes = new Set(['ECONNRESET', 'ETIMEDOUT', 'UND_ERR_SOCKET']);
|
|
94
|
+
export function classifyNetworkError(ex) {
|
|
95
|
+
let current = ex;
|
|
96
|
+
let sawFetchFailed = false;
|
|
97
|
+
for (let depth = 0; depth < 5 && current != null; depth++) {
|
|
98
|
+
if (!(current instanceof Error))
|
|
99
|
+
break;
|
|
100
|
+
if (current.name === 'TypeError' && current.message === 'fetch failed') {
|
|
101
|
+
sawFetchFailed = true;
|
|
102
|
+
}
|
|
103
|
+
const code = current.code;
|
|
104
|
+
if (typeof code === 'string') {
|
|
105
|
+
if (noNetworkErrorCodes.has(code))
|
|
106
|
+
return AIErrorReason.NoNetwork;
|
|
107
|
+
if (unreachableErrorCodes.has(code))
|
|
108
|
+
return AIErrorReason.Unreachable;
|
|
109
|
+
}
|
|
110
|
+
current = current.cause;
|
|
111
|
+
}
|
|
112
|
+
return sawFetchFailed ? AIErrorReason.NoNetwork : undefined;
|
|
113
|
+
}
|
|
76
114
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/plus/ai/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAkB,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/plus/ai/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ export interface AIModelDescriptor<Provider extends AIProviders = AIProviders, M
|
|
|
18
18
|
readonly provider: Provider;
|
|
19
19
|
readonly model: Model;
|
|
20
20
|
}
|
|
21
|
-
export type AIActionType = 'explain-changes' | 'generate-commitMessage' | 'generate-stashMessage' | 'generate-changelog' | `generate-create-${'cloudPatch' | 'codeSuggestion' | 'pullRequest'}` | 'generate-commits' | 'generate-searchQuery';
|
|
21
|
+
export type AIActionType = 'explain-changes' | 'review-changes' | 'generate-commitMessage' | 'generate-stashMessage' | 'generate-changelog' | `generate-create-${'cloudPatch' | 'codeSuggestion' | 'pullRequest'}` | 'generate-commits' | 'generate-searchQuery';
|
|
22
22
|
export interface AIProviderDescriptor<T extends AIProviders = AIProviders> {
|
|
23
23
|
readonly id: T;
|
|
24
24
|
readonly name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/models/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExF,MAAM,WAAW,OAAO,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW,EAAE,KAAK,SAAS,MAAM,GAAG,MAAM;IACjG,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACpF,QAAQ,CAAC,QAAQ,EAAE;QAClB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;QACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACtB,CAAC;IAEF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW,EAAE,KAAK,SAAS,MAAM,GAAG,MAAM;IAC3G,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,MAAM,YAAY,GACrB,iBAAiB,GACjB,wBAAwB,GACxB,uBAAuB,GACvB,oBAAoB,GACpB,mBAAmB,YAAY,GAAG,gBAAgB,GAAG,aAAa,EAAE,GACpE,kBAAkB,GAClB,sBAAsB,CAAC;AAE1B,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW;IACxE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,kBAAkB,GAAG,IAAI,GAAG,KAAK,CAAC;IAC9D,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAElC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,qCAAqC,CACrD,CAAC,SAAS,WAAW,GAAG,WAAW,CAClC,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,eAAe,EAAE,UAAU,oBAAoB,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAAC,EAyXrG,CAAC"}
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/models/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExF,MAAM,WAAW,OAAO,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW,EAAE,KAAK,SAAS,MAAM,GAAG,MAAM;IACjG,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACpF,QAAQ,CAAC,QAAQ,EAAE;QAClB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;QACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACtB,CAAC;IAEF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW,EAAE,KAAK,SAAS,MAAM,GAAG,MAAM;IAC3G,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,MAAM,YAAY,GACrB,iBAAiB,GACjB,gBAAgB,GAChB,wBAAwB,GACxB,uBAAuB,GACvB,oBAAoB,GACpB,mBAAmB,YAAY,GAAG,gBAAgB,GAAG,aAAa,EAAE,GACpE,kBAAkB,GAClB,sBAAsB,CAAC;AAE1B,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW;IACxE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,kBAAkB,GAAG,IAAI,GAAG,KAAK,CAAC;IAC9D,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAElC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,qCAAqC,CACrD,CAAC,SAAS,WAAW,GAAG,WAAW,CAClC,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,eAAe,EAAE,UAAU,oBAAoB,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAAC,EAyXrG,CAAC"}
|