@cuongtran001/kanna 1.3.0 → 1.4.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/dist/client/assets/{arc-CAysfmX5.js → arc-BHj370W7.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-BKqRYsm4.js → architectureDiagram-3BPJPVTR-1G88q1PY.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-Ce7Eorec.js → blockDiagram-GPEHLZMM-D0L3Co5v.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-CJ77zauH.js → c4Diagram-AAUBKEIU-CQtERl3H.js} +1 -1
- package/dist/client/assets/channel-BP9IMEvd.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-Rk_3zLxJ.js → chunk-2J33WTMH-DxOwt09f.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-DPIz6Nvf.js → chunk-4BX2VUAB-Wry66y9R.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-D-TkbGh2.js → chunk-55IACEB6-D6p-Hi4x.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-B4NOSIZV.js → chunk-727SXJPM-CRQZt23N.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-Cm_TGLYm.js → chunk-AQP2D5EJ-BzgTKOM9.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-Bu45BUVh.js → chunk-FMBD7UC4-CKfD-91C.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-C1Bw8_gg.js → chunk-ND2GUHAM-a71B27wc.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-DueG15o0.js → chunk-QZHKN3VN-vv9gJwx0.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK--W6Wt7FF.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2--W6Wt7FF.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-YgpMurXf.js → cose-bilkent-S5V4N54A-Cu-dCCaI.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-Dop7Oq67.js → dagre-BM42HDAG-D8coOWLK.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-unMfBEJH.js → diagram-2AECGRRQ-NIwZ65jE.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-D9EJ9qMI.js → diagram-5GNKFQAL-d46aE_le.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-C5IykOIR.js → diagram-KO2AKTUF-xdm2UxWc.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-DJAuPngz.js → diagram-LMA3HP47-hDbLwC5K.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-B3wHFtS-.js → diagram-OG6HWLK6-MHUGG7ki.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-Dm7kt9o5.js → erDiagram-TEJ5UH35-Ro6n9X70.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-s9Lds3ny.js → flowDiagram-I6XJVG4X-DOZqvRMu.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-CRQNYdAf.js → ganttDiagram-6RSMTGT7-Bn2NXYIy.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DhYjK4Jb.js → gitGraphDiagram-PVQCEYII-DK44bfbC.js} +1 -1
- package/dist/client/assets/{index-C0U2kwuB.js → index-CWJpHyQy.js} +115 -115
- package/dist/client/assets/{index-CLsOWXff.css → index-Cyzd4zZx.css} +1 -1
- package/dist/client/assets/{index-CbSY9HfS.js → index-DU56d4oC.js} +1 -1
- package/dist/client/assets/{infoDiagram-5YYISTIA-CRKJ0PSH.js → infoDiagram-5YYISTIA-C2tW_Dwj.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-CEAkB0IY.js → ishikawaDiagram-YF4QCWOH-C__4Z1wz.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-CyOK5_DG.js → journeyDiagram-JHISSGLW-Bbn5EawR.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-BfKjiJSo.js → kanban-definition-UN3LZRKU-RgS5IRWl.js} +1 -1
- package/dist/client/assets/{linear-DLR6miy3.js → linear-DfI0qBO_.js} +1 -1
- package/dist/client/assets/{mermaid.core-D7AdC_lE.js → mermaid.core-BiN10VHc.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-zYyJtDSa.js → mindmap-definition-RKZ34NQL-BQhibhh3.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-BgP8PFlo.js → pieDiagram-4H26LBE5-BEfLRn7a.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-Di8h7J96.js → quadrantDiagram-W4KKPZXB-ba641Y2x.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-DuTzFl3R.js → requirementDiagram-4Y6WPE33-BGtl-tVO.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DBRoMm_T.js → sankeyDiagram-5OEKKPKP-DyziaSFr.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-Bmb-1HUN.js → sequenceDiagram-3UESZ5HK-BfYBAYga.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-fnv5ayn-.js → stateDiagram-AJRCARHV-BfUfmLYA.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-CdGcgYEq.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-ByWRdpQX.js → timeline-definition-PNZ67QCA-T6z7dEFl.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN--2WGpVXW.js → vennDiagram-CIIHVFJN-BAwQbFFd.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-24zlnzxK.js → wardley-L42UT6IY-DF1cRKsP.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-Cllvqb3K.js → wardleyDiagram-YWT4CUSO-BRtAZ8za.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-ZcdC6nPE.js → xychartDiagram-2RQKCTM6-Brb-q76h.js} +1 -1
- package/dist/client/index.html +2 -2
- package/package.json +1 -1
- package/src/server/agent-coordinator-types.ts +158 -0
- package/src/server/agent-coordinator.ts +919 -0
- package/src/server/agent-deps-builders.ts +425 -0
- package/src/server/agent.test.ts +22 -6
- package/src/server/agent.ts +35 -4987
- package/src/server/chat-op-log.test.ts +63 -0
- package/src/server/chat-op-log.ts +71 -0
- package/src/server/chat-ops-diff.test.ts +120 -0
- package/src/server/chat-ops-diff.ts +97 -0
- package/src/server/chat-ops-parity.test.ts +140 -0
- package/src/server/claude-autocontinue-commands.test.ts +494 -0
- package/src/server/claude-autocontinue-commands.ts +256 -0
- package/src/server/claude-cancel-handler.test.ts +472 -0
- package/src/server/claude-cancel-handler.ts +241 -0
- package/src/server/claude-chat-management.test.ts +395 -0
- package/src/server/claude-chat-management.ts +251 -0
- package/src/server/claude-harness-stream.test.ts +273 -0
- package/src/server/claude-harness-stream.ts +158 -0
- package/src/server/claude-loop-orch-commands.test.ts +579 -0
- package/src/server/claude-loop-orch-commands.ts +466 -0
- package/src/server/claude-message-normalizer.test.ts +213 -0
- package/src/server/claude-message-normalizer.ts +436 -0
- package/src/server/claude-prompt-helpers.test.ts +248 -0
- package/src/server/claude-prompt-helpers.ts +139 -0
- package/src/server/claude-sdk-queue.test.ts +169 -0
- package/src/server/claude-sdk-queue.ts +82 -0
- package/src/server/claude-send-command.test.ts +414 -0
- package/src/server/claude-send-command.ts +420 -0
- package/src/server/claude-session-config-helpers.test.ts +279 -0
- package/src/server/claude-session-config-helpers.ts +151 -0
- package/src/server/claude-session-config.test.ts +250 -0
- package/src/server/claude-session-config.ts +159 -0
- package/src/server/claude-session-error-handler.test.ts +498 -0
- package/src/server/claude-session-error-handler.ts +361 -0
- package/src/server/claude-session-lifecycle.test.ts +669 -0
- package/src/server/claude-session-lifecycle.ts +283 -0
- package/src/server/claude-session-rebuild.test.ts +224 -0
- package/src/server/claude-session-rebuild.ts +101 -0
- package/src/server/claude-session-runner.test.ts +523 -0
- package/src/server/claude-session-runner.ts +521 -0
- package/src/server/claude-session-spawner.test.ts +401 -0
- package/src/server/claude-session-spawner.ts +401 -0
- package/src/server/claude-session-start.test.ts +205 -0
- package/src/server/claude-session-start.ts +277 -0
- package/src/server/claude-session-state-queries.test.ts +344 -0
- package/src/server/claude-session-state-queries.ts +160 -0
- package/src/server/claude-session-state.ts +104 -0
- package/src/server/claude-slash-commands.test.ts +277 -0
- package/src/server/claude-slash-commands.ts +234 -0
- package/src/server/claude-spawn-helpers.test.ts +221 -0
- package/src/server/claude-spawn-helpers.ts +179 -0
- package/src/server/claude-steer-log.test.ts +243 -0
- package/src/server/claude-steer-log.ts +58 -0
- package/src/server/claude-subagent-tool-response.test.ts +213 -0
- package/src/server/claude-subagent-tool-response.ts +165 -0
- package/src/server/claude-subagent-wiring.test.ts +263 -0
- package/src/server/claude-subagent-wiring.ts +324 -0
- package/src/server/claude-tool-respond.test.ts +321 -0
- package/src/server/claude-tool-respond.ts +142 -0
- package/src/server/claude-turn-runner.test.ts +310 -0
- package/src/server/claude-turn-runner.ts +228 -0
- package/src/server/claude-turn-starter.test.ts +266 -0
- package/src/server/claude-turn-starter.ts +566 -0
- package/src/server/claude-usage-math.test.ts +169 -0
- package/src/server/claude-usage-math.ts +132 -0
- package/src/server/diff-store-branch-ops.adapter.test.ts +332 -0
- package/src/server/diff-store-branch-ops.adapter.ts +602 -0
- package/src/server/diff-store-commit-ops.adapter.test.ts +358 -0
- package/src/server/diff-store-commit-ops.adapter.ts +258 -0
- package/src/server/diff-store-errors.ts +85 -0
- package/src/server/diff-store-file-ops.adapter.ts +212 -0
- package/src/server/diff-store-git-branch.adapter.ts +686 -0
- package/src/server/diff-store-io.adapter.ts +27 -0
- package/src/server/diff-store-parse.test.ts +212 -0
- package/src/server/diff-store-parse.ts +122 -0
- package/src/server/diff-store-state.ts +82 -0
- package/src/server/diff-store.ts +76 -1854
- package/src/server/event-store-apply.test.ts +280 -0
- package/src/server/event-store-apply.ts +132 -0
- package/src/server/event-store-chat-lifecycle.test.ts +408 -0
- package/src/server/event-store-chat-lifecycle.ts +441 -0
- package/src/server/event-store-entity-write.ts +356 -0
- package/src/server/event-store-helpers.test.ts +230 -0
- package/src/server/event-store-helpers.ts +235 -0
- package/src/server/event-store-init.ts +276 -0
- package/src/server/event-store-messages.adapter.test.ts +532 -0
- package/src/server/event-store-messages.adapter.ts +455 -0
- package/src/server/event-store-orch-subscription.ts +124 -0
- package/src/server/event-store-orch.test.ts +462 -0
- package/src/server/event-store-orch.ts +312 -0
- package/src/server/event-store-peripheral-events.adapter.test.ts +254 -0
- package/src/server/event-store-peripheral-events.adapter.ts +105 -0
- package/src/server/event-store-snapshot.test.ts +597 -0
- package/src/server/event-store-snapshot.ts +658 -0
- package/src/server/event-store-subagent.test.ts +408 -0
- package/src/server/event-store-subagent.ts +198 -0
- package/src/server/event-store-tool-requests.test.ts +210 -0
- package/src/server/event-store-tool-requests.ts +131 -0
- package/src/server/event-store-transcript-write.adapter.ts +291 -0
- package/src/server/event-store-write-ops.test.ts +554 -0
- package/src/server/event-store-write-ops.ts +529 -0
- package/src/server/event-store.test.ts +75 -0
- package/src/server/event-store.ts +257 -2285
- package/src/server/events.ts +1 -1
- package/src/server/harness-types.ts +15 -1
- package/src/server/oauth-errors.ts +19 -0
- package/src/server/storage/backend.ts +7 -0
- package/src/server/storage/fs-storage.adapter.ts +21 -1
- package/src/server/storage/in-memory-storage.ts +12 -0
- package/src/server/ws-router-agent-ctrl.test.ts +187 -0
- package/src/server/ws-router-agent-ctrl.ts +137 -0
- package/src/server/ws-router-broadcast.ts +560 -0
- package/src/server/ws-router-chat.test.ts +461 -0
- package/src/server/ws-router-chat.ts +279 -0
- package/src/server/ws-router-defaults.test.ts +283 -0
- package/src/server/ws-router-defaults.ts +434 -0
- package/src/server/ws-router-diff.test.ts +167 -0
- package/src/server/ws-router-diff.ts +250 -0
- package/src/server/ws-router-envelope.ts +360 -0
- package/src/server/ws-router-misc.test.ts +422 -0
- package/src/server/ws-router-misc.ts +265 -0
- package/src/server/ws-router-orch.test.ts +190 -0
- package/src/server/ws-router-orch.ts +93 -0
- package/src/server/ws-router-project.test.ts +403 -0
- package/src/server/ws-router-project.ts +256 -0
- package/src/server/ws-router-push.test.ts +193 -0
- package/src/server/ws-router-push.ts +120 -0
- package/src/server/ws-router-settings.test.ts +173 -0
- package/src/server/ws-router-settings.ts +416 -0
- package/src/server/ws-router-skills.test.ts +194 -0
- package/src/server/ws-router-skills.ts +204 -0
- package/src/server/ws-router-utils.ts +238 -0
- package/src/server/ws-router.test.ts +90 -0
- package/src/server/ws-router.ts +340 -2254
- package/src/shared/app-settings-types.ts +365 -0
- package/src/shared/chat-ops.test.ts +138 -0
- package/src/shared/chat-ops.ts +71 -0
- package/src/shared/core-types.ts +27 -0
- package/src/shared/git-diff-types.ts +165 -0
- package/src/shared/mcp-types.ts +105 -0
- package/src/shared/protocol.ts +3 -2
- package/src/shared/provider-model-types.ts +437 -0
- package/src/shared/subagent-types.ts +198 -0
- package/src/shared/tool-call-types.ts +314 -0
- package/src/shared/transcript-types.ts +270 -0
- package/src/shared/types.ts +31 -1711
- package/dist/client/assets/channel-KQhRwDzJ.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-ChxT1GNq.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-ChxT1GNq.js +0 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-D4X-ZnLV.js +0 -1
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
// Git diff, branch, and worktree types.
|
|
2
|
+
// Extracted from types.ts to keep the barrel lean.
|
|
3
|
+
// All external consumers importing from "../shared/types" continue to work unchanged.
|
|
4
|
+
|
|
5
|
+
export interface ChatDiffFile {
|
|
6
|
+
path: string
|
|
7
|
+
changeType: "added" | "deleted" | "modified" | "renamed"
|
|
8
|
+
isUntracked: boolean
|
|
9
|
+
additions: number
|
|
10
|
+
deletions: number
|
|
11
|
+
patchDigest: string
|
|
12
|
+
mimeType?: string
|
|
13
|
+
size?: number
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface ChatBranchHistoryEntry {
|
|
17
|
+
sha: string
|
|
18
|
+
summary: string
|
|
19
|
+
description: string
|
|
20
|
+
authorName?: string
|
|
21
|
+
authoredAt: string
|
|
22
|
+
tags: string[]
|
|
23
|
+
githubUrl?: string
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface ChatBranchHistorySnapshot {
|
|
27
|
+
entries: ChatBranchHistoryEntry[]
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export type ChatBranchListEntryKind = "local" | "remote" | "pull_request"
|
|
31
|
+
|
|
32
|
+
export interface ChatBranchListEntry {
|
|
33
|
+
id: string
|
|
34
|
+
kind: ChatBranchListEntryKind
|
|
35
|
+
name: string
|
|
36
|
+
displayName: string
|
|
37
|
+
updatedAt?: string
|
|
38
|
+
description?: string
|
|
39
|
+
remoteRef?: string
|
|
40
|
+
prNumber?: number
|
|
41
|
+
prTitle?: string
|
|
42
|
+
headRefName?: string
|
|
43
|
+
headLabel?: string
|
|
44
|
+
headRepoCloneUrl?: string
|
|
45
|
+
isCrossRepository?: boolean
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface ChatBranchListResult {
|
|
49
|
+
currentBranchName?: string
|
|
50
|
+
defaultBranchName?: string
|
|
51
|
+
recent: ChatBranchListEntry[]
|
|
52
|
+
local: ChatBranchListEntry[]
|
|
53
|
+
remote: ChatBranchListEntry[]
|
|
54
|
+
pullRequests: ChatBranchListEntry[]
|
|
55
|
+
pullRequestsStatus: "available" | "unavailable" | "error"
|
|
56
|
+
pullRequestsError?: string
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export interface GitHubPublishInfo {
|
|
60
|
+
ghInstalled: boolean
|
|
61
|
+
authenticated: boolean
|
|
62
|
+
activeAccountLogin?: string
|
|
63
|
+
owners: string[]
|
|
64
|
+
suggestedRepoName: string
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface GitHubRepoAvailabilityResult {
|
|
68
|
+
available: boolean
|
|
69
|
+
message: string
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export interface BranchMetadata {
|
|
73
|
+
branchName?: string
|
|
74
|
+
defaultBranchName?: string
|
|
75
|
+
hasOriginRemote?: boolean
|
|
76
|
+
originRepoSlug?: string
|
|
77
|
+
hasUpstream?: boolean
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface UpstreamStatus {
|
|
81
|
+
aheadCount?: number
|
|
82
|
+
behindCount?: number
|
|
83
|
+
lastFetchedAt?: string
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export interface ChatDiffSnapshot extends BranchMetadata, UpstreamStatus {
|
|
87
|
+
status: "unknown" | "ready" | "no_repo"
|
|
88
|
+
files: ChatDiffFile[]
|
|
89
|
+
branchHistory?: ChatBranchHistorySnapshot
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export interface BranchActionSuccess {
|
|
93
|
+
ok: true
|
|
94
|
+
branchName?: string
|
|
95
|
+
snapshotChanged: boolean
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export interface BranchActionFailure {
|
|
99
|
+
ok: false
|
|
100
|
+
title: string
|
|
101
|
+
message: string
|
|
102
|
+
detail?: string
|
|
103
|
+
cancelled?: boolean
|
|
104
|
+
snapshotChanged?: boolean
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export type ChatSyncSuccess = BranchActionSuccess & {
|
|
108
|
+
action: "fetch" | "pull" | "push" | "publish"
|
|
109
|
+
aheadCount?: number
|
|
110
|
+
behindCount?: number
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export type ChatSyncFailure = BranchActionFailure & {
|
|
114
|
+
action: "fetch" | "pull" | "push" | "publish"
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export type ChatSyncResult = ChatSyncSuccess | ChatSyncFailure
|
|
118
|
+
|
|
119
|
+
export type DiffCommitMode = "commit_and_push" | "commit_only"
|
|
120
|
+
|
|
121
|
+
export type ChatCheckoutBranchSuccess = BranchActionSuccess
|
|
122
|
+
export type ChatCheckoutBranchFailure = BranchActionFailure
|
|
123
|
+
export type ChatCheckoutBranchResult = ChatCheckoutBranchSuccess | ChatCheckoutBranchFailure
|
|
124
|
+
|
|
125
|
+
export type ChatCreateBranchSuccess = BranchActionSuccess & { branchName: string }
|
|
126
|
+
export type ChatCreateBranchFailure = BranchActionFailure
|
|
127
|
+
export type ChatCreateBranchResult = ChatCreateBranchSuccess | ChatCreateBranchFailure
|
|
128
|
+
|
|
129
|
+
export type ChatMergePreviewStatus = "up_to_date" | "mergeable" | "conflicts" | "error"
|
|
130
|
+
|
|
131
|
+
export interface ChatMergePreviewResult {
|
|
132
|
+
currentBranchName?: string
|
|
133
|
+
targetBranchName: string
|
|
134
|
+
targetDisplayName: string
|
|
135
|
+
status: ChatMergePreviewStatus
|
|
136
|
+
commitCount: number
|
|
137
|
+
hasConflicts: boolean
|
|
138
|
+
message: string
|
|
139
|
+
detail?: string
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
export type ChatMergeBranchSuccess = BranchActionSuccess
|
|
143
|
+
export type ChatMergeBranchFailure = BranchActionFailure
|
|
144
|
+
export type ChatMergeBranchResult = ChatMergeBranchSuccess | ChatMergeBranchFailure
|
|
145
|
+
|
|
146
|
+
export type DiffCommitSuccess = BranchActionSuccess & {
|
|
147
|
+
mode: DiffCommitMode
|
|
148
|
+
pushed: boolean
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export type DiffCommitFailure = BranchActionFailure & {
|
|
152
|
+
mode: DiffCommitMode
|
|
153
|
+
phase: "commit" | "push"
|
|
154
|
+
localCommitCreated?: boolean
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
export type DiffCommitResult = DiffCommitSuccess | DiffCommitFailure
|
|
158
|
+
|
|
159
|
+
export interface GitWorktree {
|
|
160
|
+
path: string // absolute
|
|
161
|
+
branch: string // e.g. "main", "feat/x", "(detached)"
|
|
162
|
+
sha: string // HEAD commit sha
|
|
163
|
+
isPrimary: boolean
|
|
164
|
+
isLocked: boolean // git has flagged this worktree as locked (pruning inhibited)
|
|
165
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// MCP (Model Context Protocol) server types.
|
|
2
|
+
// Extracted from types.ts to keep the barrel lean.
|
|
3
|
+
// All external consumers importing from "../shared/types" continue to work unchanged.
|
|
4
|
+
|
|
5
|
+
import type {
|
|
6
|
+
OAuthTokens,
|
|
7
|
+
OAuthClientInformationFull,
|
|
8
|
+
AuthorizationServerMetadata,
|
|
9
|
+
} from "@modelcontextprotocol/sdk/shared/auth.js"
|
|
10
|
+
|
|
11
|
+
export type McpServerTransport = "stdio" | "http" | "sse" | "ws"
|
|
12
|
+
|
|
13
|
+
export type McpServerTestResult =
|
|
14
|
+
| { status: "untested" }
|
|
15
|
+
| { status: "pending"; startedAt: string }
|
|
16
|
+
| { status: "ok"; testedAt: string; toolCount: number }
|
|
17
|
+
| { status: "error"; testedAt: string; message: string }
|
|
18
|
+
|
|
19
|
+
export interface McpOAuthFlowState {
|
|
20
|
+
codeVerifier: string
|
|
21
|
+
state: string
|
|
22
|
+
issuer: string
|
|
23
|
+
authorizationUrl: string
|
|
24
|
+
// AS metadata cached between start and complete (avoids re-discovery)
|
|
25
|
+
metadata: AuthorizationServerMetadata
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface McpOAuthState {
|
|
29
|
+
enabled: boolean
|
|
30
|
+
status: "unauthenticated" | "authenticated" | "error"
|
|
31
|
+
errorMessage?: string
|
|
32
|
+
// resolved AS issuer (set on complete; used by refresh without re-discovery)
|
|
33
|
+
issuer?: string
|
|
34
|
+
// cached AS metadata (token_endpoint, etc.) persisted at complete so refresh
|
|
35
|
+
// uses it directly instead of re-discovering from issuer (which may be a
|
|
36
|
+
// non-resolvable resource URL, e.g. claude.ai design MCP)
|
|
37
|
+
metadata?: AuthorizationServerMetadata
|
|
38
|
+
// DCR result keyed by AS issuer (SEP-2352)
|
|
39
|
+
clientByIssuer?: Record<string, OAuthClientInformationFull>
|
|
40
|
+
tokens?: OAuthTokens
|
|
41
|
+
obtainedAt?: number
|
|
42
|
+
// present only mid-flow; cleared on complete/cancel
|
|
43
|
+
flow?: McpOAuthFlowState
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
interface McpServerBase {
|
|
47
|
+
id: string
|
|
48
|
+
name: string
|
|
49
|
+
enabled: boolean
|
|
50
|
+
createdAt: string
|
|
51
|
+
updatedAt: string
|
|
52
|
+
lastTest: McpServerTestResult
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface McpServerStdioFields {
|
|
56
|
+
transport: "stdio"
|
|
57
|
+
command: string
|
|
58
|
+
args: string[]
|
|
59
|
+
env: Record<string, string>
|
|
60
|
+
cwd?: string
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export interface McpServerNetworkFields {
|
|
64
|
+
transport: "http" | "sse" | "ws"
|
|
65
|
+
url: string
|
|
66
|
+
headers: Record<string, string>
|
|
67
|
+
oauth?: McpOAuthState
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export type McpServerConfig =
|
|
71
|
+
| (McpServerBase & McpServerStdioFields)
|
|
72
|
+
| (McpServerBase & McpServerNetworkFields)
|
|
73
|
+
|
|
74
|
+
export type McpServerInput =
|
|
75
|
+
| (McpServerStdioFields & { name: string; enabled?: boolean })
|
|
76
|
+
| (McpServerNetworkFields & { name: string; enabled?: boolean })
|
|
77
|
+
|
|
78
|
+
export type McpServerPatch = Partial<{
|
|
79
|
+
name: string
|
|
80
|
+
enabled: boolean
|
|
81
|
+
transport: McpServerTransport
|
|
82
|
+
command: string
|
|
83
|
+
args: string[]
|
|
84
|
+
env: Record<string, string>
|
|
85
|
+
cwd: string | undefined
|
|
86
|
+
url: string
|
|
87
|
+
headers: Record<string, string>
|
|
88
|
+
oauth: McpOAuthState
|
|
89
|
+
}>
|
|
90
|
+
|
|
91
|
+
export interface McpValidationError {
|
|
92
|
+
code:
|
|
93
|
+
| "INVALID_NAME"
|
|
94
|
+
| "DUPLICATE_NAME"
|
|
95
|
+
| "RESERVED_NAME"
|
|
96
|
+
| "INVALID_TRANSPORT"
|
|
97
|
+
| "MISSING_COMMAND"
|
|
98
|
+
| "INVALID_URL"
|
|
99
|
+
| "INVALID_HEADER_KEY"
|
|
100
|
+
| "INVALID_ENV_KEY"
|
|
101
|
+
| "NOT_FOUND"
|
|
102
|
+
| "INVALID_OAUTH_TRANSPORT"
|
|
103
|
+
field?: string
|
|
104
|
+
message: string
|
|
105
|
+
}
|
package/src/shared/protocol.ts
CHANGED
|
@@ -26,6 +26,7 @@ import type {
|
|
|
26
26
|
UpdateSnapshot,
|
|
27
27
|
EditorPreset,
|
|
28
28
|
} from "./types"
|
|
29
|
+
import type { ChatOpsEvent } from "./chat-ops"
|
|
29
30
|
import type { ChatPermissionPolicyOverride, ToolRequestDecision } from "./permission-policy"
|
|
30
31
|
import type { PtyInstanceDelta, PtyInstancesSnapshot } from "./pty-instance"
|
|
31
32
|
import type { WorkflowRunSummary } from "./workflow-types"
|
|
@@ -45,7 +46,7 @@ export type SubscriptionTopic =
|
|
|
45
46
|
| { type: "keybindings" }
|
|
46
47
|
| { type: "app-settings" }
|
|
47
48
|
| { type: "push-config" }
|
|
48
|
-
| { type: "chat"; chatId: string; recentLimit?: number }
|
|
49
|
+
| { type: "chat"; chatId: string; recentLimit?: number; since?: number }
|
|
49
50
|
| { type: "project-git"; projectId: string }
|
|
50
51
|
| { type: "terminal"; terminalId: string }
|
|
51
52
|
| { type: "pty-instances" }
|
|
@@ -90,7 +91,7 @@ export interface OrchRunsSnapshot {
|
|
|
90
91
|
runs: OrchRunSummary[]
|
|
91
92
|
}
|
|
92
93
|
|
|
93
|
-
export type WsEvent = TerminalEvent | PtyInstancesEvent
|
|
94
|
+
export type WsEvent = TerminalEvent | PtyInstancesEvent | ChatOpsEvent
|
|
94
95
|
|
|
95
96
|
export type ClientCommand =
|
|
96
97
|
| { type: "project.open"; localPath: string }
|