mstro-app 0.4.35 → 0.4.37
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/server/cli/headless/claude-invoker-stream.d.ts +76 -1
- package/dist/server/cli/headless/claude-invoker-stream.d.ts.map +1 -1
- package/dist/server/cli/headless/claude-invoker-stream.js +28 -16
- package/dist/server/cli/headless/claude-invoker-stream.js.map +1 -1
- package/dist/server/cli/headless/claude-invoker.d.ts.map +1 -1
- package/dist/server/cli/headless/claude-invoker.js +2 -0
- package/dist/server/cli/headless/claude-invoker.js.map +1 -1
- package/dist/server/cli/improvisation-session-manager.d.ts +3 -0
- package/dist/server/cli/improvisation-session-manager.d.ts.map +1 -1
- package/dist/server/cli/improvisation-session-manager.js +50 -39
- package/dist/server/cli/improvisation-session-manager.js.map +1 -1
- package/dist/server/services/websocket/git-worktree-handlers.js +25 -16
- package/dist/server/services/websocket/git-worktree-handlers.js.map +1 -1
- package/dist/server/services/websocket/session-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/session-handlers.js +11 -1
- package/dist/server/services/websocket/session-handlers.js.map +1 -1
- package/dist/server/services/websocket/skill-handlers.d.ts +9 -0
- package/dist/server/services/websocket/skill-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/skill-handlers.js +244 -3
- package/dist/server/services/websocket/skill-handlers.js.map +1 -1
- package/dist/server/services/websocket/types.d.ts +44 -3
- package/dist/server/services/websocket/types.d.ts.map +1 -1
- package/dist/server/services/websocket/types.js +38 -0
- package/dist/server/services/websocket/types.js.map +1 -1
- package/package.json +1 -1
- package/server/cli/headless/claude-invoker-stream.ts +114 -32
- package/server/cli/headless/claude-invoker.ts +2 -0
- package/server/cli/improvisation-session-manager.ts +59 -43
- package/server/services/websocket/git-worktree-handlers.ts +30 -14
- package/server/services/websocket/session-handlers.ts +17 -1
- package/server/services/websocket/skill-handlers.ts +260 -3
- package/server/services/websocket/types.ts +123 -329
|
@@ -20,345 +20,139 @@ export interface WSContext {
|
|
|
20
20
|
_ws?: unknown
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
const CoreMessages = ['execute', 'cancel', 'getHistory', 'getSessions', 'getSessionsCount', 'deleteSession', 'getSessionById', 'clearHistory', 'searchHistory', 'new', 'autocomplete', 'readFile', 'ping', 'initTab', 'resumeSession', 'approve', 'reject', 'recordSelection', 'requestNotificationSummary'] as const;
|
|
24
|
+
|
|
25
|
+
const TerminalMessages = ['terminalInit', 'terminalReconnect', 'terminalList', 'terminalInput', 'terminalResize', 'terminalClose'] as const;
|
|
26
|
+
|
|
27
|
+
const FileExplorerMessages = ['listDirectory', 'writeFile', 'createFile', 'createDirectory', 'deleteFile', 'renameFile', 'notifyFileOpened', 'searchFileContents', 'cancelSearch', 'findDefinition'] as const;
|
|
28
|
+
|
|
29
|
+
const GitMessages = ['gitStatus', 'gitStage', 'gitUnstage', 'gitCommit', 'gitCommitWithAI', 'gitPush', 'gitPull', 'gitLog', 'gitDiscoverRepos', 'gitSetDirectory', 'gitGetRemoteInfo', 'gitCreatePR', 'gitGeneratePRDescription'] as const;
|
|
30
|
+
|
|
31
|
+
const GitBranchMessages = ['gitListBranches', 'gitCheckout', 'gitCreateBranch', 'gitDeleteBranch'] as const;
|
|
32
|
+
|
|
33
|
+
const GitDiffMessages = ['gitDiff', 'gitShowCommit', 'gitCommitDiff'] as const;
|
|
34
|
+
|
|
35
|
+
const GitTagMessages = ['gitListTags', 'gitCreateTag', 'gitPushTag'] as const;
|
|
36
|
+
|
|
37
|
+
const GitWorktreeMessages = ['gitWorktreeList', 'gitWorktreeCreate', 'gitWorktreeCreateAndAssign', 'gitWorktreeRemove', 'tabWorktreeSwitch', 'gitWorktreePush', 'gitWorktreeCreatePR'] as const;
|
|
38
|
+
|
|
39
|
+
const GitMergeMessages = ['gitMergePreview', 'gitWorktreeMerge', 'gitMergeAbort', 'gitMergeComplete'] as const;
|
|
40
|
+
|
|
41
|
+
const SessionSyncMessages = ['getActiveTabs', 'createTab', 'reorderTabs', 'syncTabMeta', 'syncPromptText', 'removeTab', 'markTabViewed'] as const;
|
|
42
|
+
|
|
43
|
+
const SettingsMessages = ['getSettings', 'updateSettings'] as const;
|
|
44
|
+
|
|
45
|
+
const QualityMessages = ['qualityDetectTools', 'qualityScan', 'qualityInstallTools', 'qualityCodeReview', 'qualityFixIssues', 'qualityLoadState', 'qualitySaveDirectories'] as const;
|
|
46
|
+
|
|
47
|
+
const FileUploadMessages = ['fileUploadStart', 'fileUploadChunk', 'fileUploadComplete', 'fileUploadCancel'] as const;
|
|
48
|
+
|
|
49
|
+
const PlanMessages = ['planInit', 'planGetState', 'planListIssues', 'planGetIssue', 'planGetSprint', 'planGetMilestone', 'planCreateIssue', 'planUpdateIssue', 'planDeleteIssue', 'planScaffold', 'planPrompt', 'planExecute', 'planExecuteEpic', 'planPause', 'planStop', 'planResume'] as const;
|
|
50
|
+
|
|
51
|
+
const PlanBoardMessages = ['planCreateBoard', 'planUpdateBoard', 'planArchiveBoard', 'planGetBoard', 'planGetBoardState', 'planReorderBoards', 'planSetActiveBoard', 'planGetBoardArtifacts'] as const;
|
|
52
|
+
|
|
53
|
+
const PlanSprintMessages = ['planCreateSprint', 'planActivateSprint', 'planCompleteSprint', 'planGetSprintArtifacts'] as const;
|
|
54
|
+
|
|
55
|
+
const DeployMessages = ['deployCreate', 'deployStop', 'deployResume', 'deployDelete', 'deployList', 'deployGetStatus', 'deployUpdateConfig', 'deploySetApiKey', 'deployValidateApiKey'] as const;
|
|
56
|
+
|
|
57
|
+
const DeployRelayMessages = ['deployHttpRequest', 'deployUsageReport', 'deployAiHealthUpdate'] as const;
|
|
58
|
+
|
|
59
|
+
const SkillMessages = ['listSkills', 'chatToBoard'] as const;
|
|
60
|
+
|
|
61
|
+
type WebSocketMessageType =
|
|
62
|
+
| typeof CoreMessages[number]
|
|
63
|
+
| typeof TerminalMessages[number]
|
|
64
|
+
| typeof FileExplorerMessages[number]
|
|
65
|
+
| typeof GitMessages[number]
|
|
66
|
+
| typeof GitBranchMessages[number]
|
|
67
|
+
| typeof GitDiffMessages[number]
|
|
68
|
+
| typeof GitTagMessages[number]
|
|
69
|
+
| typeof GitWorktreeMessages[number]
|
|
70
|
+
| typeof GitMergeMessages[number]
|
|
71
|
+
| typeof SessionSyncMessages[number]
|
|
72
|
+
| typeof SettingsMessages[number]
|
|
73
|
+
| typeof QualityMessages[number]
|
|
74
|
+
| typeof FileUploadMessages[number]
|
|
75
|
+
| typeof PlanMessages[number]
|
|
76
|
+
| typeof PlanBoardMessages[number]
|
|
77
|
+
| typeof PlanSprintMessages[number]
|
|
78
|
+
| typeof DeployMessages[number]
|
|
79
|
+
| typeof DeployRelayMessages[number]
|
|
80
|
+
| typeof SkillMessages[number];
|
|
81
|
+
|
|
23
82
|
export interface WebSocketMessage {
|
|
24
|
-
type:
|
|
25
|
-
| 'execute'
|
|
26
|
-
| 'cancel'
|
|
27
|
-
| 'getHistory'
|
|
28
|
-
| 'getSessions'
|
|
29
|
-
| 'getSessionsCount'
|
|
30
|
-
| 'deleteSession'
|
|
31
|
-
| 'getSessionById'
|
|
32
|
-
| 'clearHistory'
|
|
33
|
-
| 'searchHistory'
|
|
34
|
-
| 'new'
|
|
35
|
-
| 'autocomplete'
|
|
36
|
-
| 'readFile'
|
|
37
|
-
| 'ping'
|
|
38
|
-
| 'initTab'
|
|
39
|
-
| 'resumeSession'
|
|
40
|
-
| 'approve'
|
|
41
|
-
| 'reject'
|
|
42
|
-
| 'recordSelection'
|
|
43
|
-
| 'requestNotificationSummary'
|
|
44
|
-
| 'terminalInit'
|
|
45
|
-
| 'terminalReconnect'
|
|
46
|
-
| 'terminalList'
|
|
47
|
-
| 'terminalInput'
|
|
48
|
-
| 'terminalResize'
|
|
49
|
-
| 'terminalClose'
|
|
50
|
-
// File explorer message types
|
|
51
|
-
| 'listDirectory'
|
|
52
|
-
| 'writeFile'
|
|
53
|
-
| 'createFile'
|
|
54
|
-
| 'createDirectory'
|
|
55
|
-
| 'deleteFile'
|
|
56
|
-
| 'renameFile'
|
|
57
|
-
| 'notifyFileOpened'
|
|
58
|
-
| 'searchFileContents'
|
|
59
|
-
| 'cancelSearch'
|
|
60
|
-
| 'findDefinition'
|
|
61
|
-
// Git message types
|
|
62
|
-
| 'gitStatus'
|
|
63
|
-
| 'gitStage'
|
|
64
|
-
| 'gitUnstage'
|
|
65
|
-
| 'gitCommit'
|
|
66
|
-
| 'gitCommitWithAI'
|
|
67
|
-
| 'gitPush'
|
|
68
|
-
| 'gitPull'
|
|
69
|
-
| 'gitLog'
|
|
70
|
-
| 'gitDiscoverRepos'
|
|
71
|
-
| 'gitSetDirectory'
|
|
72
|
-
| 'gitGetRemoteInfo'
|
|
73
|
-
| 'gitCreatePR'
|
|
74
|
-
| 'gitGeneratePRDescription'
|
|
75
|
-
// Branch operations
|
|
76
|
-
| 'gitListBranches'
|
|
77
|
-
| 'gitCheckout'
|
|
78
|
-
| 'gitCreateBranch'
|
|
79
|
-
| 'gitDeleteBranch'
|
|
80
|
-
// Diff operations
|
|
81
|
-
| 'gitDiff'
|
|
82
|
-
// Commit detail operations
|
|
83
|
-
| 'gitShowCommit'
|
|
84
|
-
| 'gitCommitDiff'
|
|
85
|
-
// Tag operations
|
|
86
|
-
| 'gitListTags'
|
|
87
|
-
| 'gitCreateTag'
|
|
88
|
-
| 'gitPushTag'
|
|
89
|
-
// Worktree operations
|
|
90
|
-
| 'gitWorktreeList'
|
|
91
|
-
| 'gitWorktreeCreate'
|
|
92
|
-
| 'gitWorktreeCreateAndAssign'
|
|
93
|
-
| 'gitWorktreeRemove'
|
|
94
|
-
| 'tabWorktreeSwitch'
|
|
95
|
-
| 'gitWorktreePush'
|
|
96
|
-
| 'gitWorktreeCreatePR'
|
|
97
|
-
// Merge operations
|
|
98
|
-
| 'gitMergePreview'
|
|
99
|
-
| 'gitWorktreeMerge'
|
|
100
|
-
| 'gitMergeAbort'
|
|
101
|
-
| 'gitMergeComplete'
|
|
102
|
-
// Session sync message types
|
|
103
|
-
| 'getActiveTabs'
|
|
104
|
-
| 'createTab'
|
|
105
|
-
| 'reorderTabs'
|
|
106
|
-
| 'syncTabMeta'
|
|
107
|
-
| 'syncPromptText'
|
|
108
|
-
| 'removeTab'
|
|
109
|
-
| 'markTabViewed'
|
|
110
|
-
// Settings message types
|
|
111
|
-
| 'getSettings'
|
|
112
|
-
| 'updateSettings'
|
|
113
|
-
// Quality message types
|
|
114
|
-
| 'qualityDetectTools'
|
|
115
|
-
| 'qualityScan'
|
|
116
|
-
| 'qualityInstallTools'
|
|
117
|
-
| 'qualityCodeReview'
|
|
118
|
-
| 'qualityFixIssues'
|
|
119
|
-
| 'qualityLoadState'
|
|
120
|
-
| 'qualitySaveDirectories'
|
|
121
|
-
// File upload message types (chunked remote uploads)
|
|
122
|
-
| 'fileUploadStart'
|
|
123
|
-
| 'fileUploadChunk'
|
|
124
|
-
| 'fileUploadComplete'
|
|
125
|
-
| 'fileUploadCancel'
|
|
126
|
-
// Plan message types
|
|
127
|
-
| 'planInit'
|
|
128
|
-
| 'planGetState'
|
|
129
|
-
| 'planListIssues'
|
|
130
|
-
| 'planGetIssue'
|
|
131
|
-
| 'planGetSprint'
|
|
132
|
-
| 'planGetMilestone'
|
|
133
|
-
| 'planCreateIssue'
|
|
134
|
-
| 'planUpdateIssue'
|
|
135
|
-
| 'planDeleteIssue'
|
|
136
|
-
| 'planScaffold'
|
|
137
|
-
| 'planPrompt'
|
|
138
|
-
| 'planExecute'
|
|
139
|
-
| 'planExecuteEpic'
|
|
140
|
-
| 'planPause'
|
|
141
|
-
| 'planStop'
|
|
142
|
-
| 'planResume'
|
|
143
|
-
// Board lifecycle message types
|
|
144
|
-
| 'planCreateBoard'
|
|
145
|
-
| 'planUpdateBoard'
|
|
146
|
-
| 'planArchiveBoard'
|
|
147
|
-
| 'planGetBoard'
|
|
148
|
-
| 'planGetBoardState'
|
|
149
|
-
| 'planReorderBoards'
|
|
150
|
-
| 'planSetActiveBoard'
|
|
151
|
-
| 'planGetBoardArtifacts'
|
|
152
|
-
// Sprint lifecycle message types (legacy)
|
|
153
|
-
| 'planCreateSprint'
|
|
154
|
-
| 'planActivateSprint'
|
|
155
|
-
| 'planCompleteSprint'
|
|
156
|
-
| 'planGetSprintArtifacts'
|
|
157
|
-
// Deploy message types
|
|
158
|
-
| 'deployCreate'
|
|
159
|
-
| 'deployStop'
|
|
160
|
-
| 'deployResume'
|
|
161
|
-
| 'deployDelete'
|
|
162
|
-
| 'deployList'
|
|
163
|
-
| 'deployGetStatus'
|
|
164
|
-
| 'deployUpdateConfig'
|
|
165
|
-
| 'deploySetApiKey'
|
|
166
|
-
| 'deployValidateApiKey'
|
|
167
|
-
// Deploy HTTP relay message types (server→cli)
|
|
168
|
-
| 'deployHttpRequest'
|
|
169
|
-
// Deploy usage/health message types (cli→server)
|
|
170
|
-
| 'deployUsageReport'
|
|
171
|
-
| 'deployAiHealthUpdate'
|
|
172
|
-
// Skill discovery
|
|
173
|
-
| 'listSkills'
|
|
174
|
-
// Chat-to-board (cross-view skill actions)
|
|
175
|
-
| 'chatToBoard';
|
|
83
|
+
type: WebSocketMessageType;
|
|
176
84
|
tabId?: string;
|
|
177
85
|
terminalId?: string;
|
|
178
|
-
// biome-ignore lint/suspicious/noExplicitAny: message envelope carries heterogeneous payloads
|
|
86
|
+
// biome-ignore lint/suspicious/noExplicitAny: message envelope carries heterogeneous payloads — typed per-handler via destructuring
|
|
179
87
|
data?: any;
|
|
180
88
|
/** Injected by server relay for view-only shared users */
|
|
181
89
|
_permission?: 'view';
|
|
182
90
|
}
|
|
183
91
|
|
|
92
|
+
const CoreResponseMessages = ['output', 'thinking', 'movementStart', 'movementComplete', 'movementError', 'sessionUpdate', 'history', 'sessions', 'sessionsCount', 'sessionDeleted', 'sessionData', 'historyCleared', 'searchResults', 'newSession', 'autocomplete', 'fileContent', 'error', 'pong', 'tabInitialized', 'approvalRequired', 'toolUse', 'streamingTokens', 'notificationSummary'] as const;
|
|
93
|
+
|
|
94
|
+
const TerminalResponseMessages = ['terminalOutput', 'terminalReady', 'terminalExit', 'terminalError', 'terminalList', 'terminalScrollback', 'terminalCreated', 'terminalClosed'] as const;
|
|
95
|
+
|
|
96
|
+
const FileExplorerResponseMessages = ['directoryListing', 'fileWritten', 'fileCreated', 'directoryCreated', 'fileDeleted', 'fileRenamed', 'fileOpened', 'fileContentChanged', 'contentSearchResults', 'contentSearchComplete', 'contentSearchError', 'definitionResult', 'fileError'] as const;
|
|
97
|
+
|
|
98
|
+
const GitResponseMessages = ['gitStatus', 'gitStaged', 'gitUnstaged', 'gitCommitted', 'gitCommitMessage', 'gitPushed', 'gitPulled', 'gitLog', 'gitError', 'gitReposDiscovered', 'gitDirectorySet', 'gitRemoteInfo', 'gitPRCreated', 'gitPRDescription'] as const;
|
|
99
|
+
|
|
100
|
+
const GitBranchResponseMessages = ['gitBranchList', 'gitCheckedOut', 'gitBranchCreated', 'gitBranchDeleted'] as const;
|
|
101
|
+
|
|
102
|
+
const GitDiffResponseMessages = ['gitDiffResult', 'gitCommitDetail', 'gitCommitDiffResult'] as const;
|
|
103
|
+
|
|
104
|
+
const GitTagResponseMessages = ['gitTagList', 'gitTagCreated', 'gitTagPushed'] as const;
|
|
105
|
+
|
|
106
|
+
const GitWorktreeResponseMessages = ['gitWorktreeListResult', 'gitWorktreeCreated', 'gitWorktreeCreatedAndAssigned', 'gitWorktreeRemoved', 'tabWorktreeSwitched', 'gitBranchChanged', 'gitWorktreePushed', 'gitWorktreePRCreated'] as const;
|
|
107
|
+
|
|
108
|
+
const GitMergeResponseMessages = ['gitMergePreviewResult', 'gitWorktreeMergeResult', 'gitMergeAborted', 'gitMergeCompleted'] as const;
|
|
109
|
+
|
|
110
|
+
const SessionSyncResponseMessages = ['activeTabs', 'tabCreated', 'tabRemoved', 'tabRenamed', 'tabsReordered', 'promptTextSync', 'tabViewed', 'tabStateChanged'] as const;
|
|
111
|
+
|
|
112
|
+
const SettingsResponseMessages = ['settings', 'settingsUpdated'] as const;
|
|
113
|
+
|
|
114
|
+
const QualityResponseMessages = ['qualityToolsDetected', 'qualityScanProgress', 'qualityScanResults', 'qualityInstallProgress', 'qualityInstallComplete', 'qualityCodeReview', 'qualityCodeReviewProgress', 'qualityPostSession', 'qualityFixProgress', 'qualityFixComplete', 'qualityError', 'qualityStateLoaded'] as const;
|
|
115
|
+
|
|
116
|
+
const FileUploadResponseMessages = ['fileUploadAck', 'fileUploadReady', 'fileUploadError'] as const;
|
|
117
|
+
|
|
118
|
+
const PlanResponseMessages = ['planState', 'planIssueList', 'planIssue', 'planSprint', 'planMilestone', 'planNotFound', 'planStateUpdated', 'planIssueUpdated', 'planIssueCreated', 'planIssueDeleted', 'planScaffolded', 'planPromptStreaming', 'planPromptProgress', 'planPromptResponse', 'planExecutionStarted', 'planExecutionProgress', 'planExecutionOutput', 'planExecutionMetrics', 'planExecutionComplete', 'planExecutionError', 'planError'] as const;
|
|
119
|
+
|
|
120
|
+
const PlanBoardResponseMessages = ['planBoardCreated', 'planBoardUpdated', 'planBoardArchived', 'planBoardState', 'planBoardArtifacts', 'planWorkspaceUpdated'] as const;
|
|
121
|
+
|
|
122
|
+
const PlanSprintResponseMessages = ['planSprintCreated', 'planSprintUpdated', 'planSprintCompleted', 'planSprintArtifacts', 'planReviewProgress'] as const;
|
|
123
|
+
|
|
124
|
+
const DeployResponseMessages = ['deployCreated', 'deployStopped', 'deployResumed', 'deployDeleted', 'deployListResult', 'deployStatusResult', 'deployConfigUpdated', 'deployApiKeyStatus', 'deployError'] as const;
|
|
125
|
+
|
|
126
|
+
const DeployRelayResponseMessages = ['deployHttpResponse', 'deployHttpResponseChunk', 'deployStatus', 'deployUsageReportAck', 'deployAiHealthAck'] as const;
|
|
127
|
+
|
|
128
|
+
const SkillResponseMessages = ['skillsList', 'chatToBoardCreated'] as const;
|
|
129
|
+
|
|
130
|
+
type WebSocketResponseType =
|
|
131
|
+
| typeof CoreResponseMessages[number]
|
|
132
|
+
| typeof TerminalResponseMessages[number]
|
|
133
|
+
| typeof FileExplorerResponseMessages[number]
|
|
134
|
+
| typeof GitResponseMessages[number]
|
|
135
|
+
| typeof GitBranchResponseMessages[number]
|
|
136
|
+
| typeof GitDiffResponseMessages[number]
|
|
137
|
+
| typeof GitTagResponseMessages[number]
|
|
138
|
+
| typeof GitWorktreeResponseMessages[number]
|
|
139
|
+
| typeof GitMergeResponseMessages[number]
|
|
140
|
+
| typeof SessionSyncResponseMessages[number]
|
|
141
|
+
| typeof SettingsResponseMessages[number]
|
|
142
|
+
| typeof QualityResponseMessages[number]
|
|
143
|
+
| typeof FileUploadResponseMessages[number]
|
|
144
|
+
| typeof PlanResponseMessages[number]
|
|
145
|
+
| typeof PlanBoardResponseMessages[number]
|
|
146
|
+
| typeof PlanSprintResponseMessages[number]
|
|
147
|
+
| typeof DeployResponseMessages[number]
|
|
148
|
+
| typeof DeployRelayResponseMessages[number]
|
|
149
|
+
| typeof SkillResponseMessages[number];
|
|
150
|
+
|
|
184
151
|
export interface WebSocketResponse {
|
|
185
|
-
type:
|
|
186
|
-
| 'output'
|
|
187
|
-
| 'thinking'
|
|
188
|
-
| 'movementStart'
|
|
189
|
-
| 'movementComplete'
|
|
190
|
-
| 'movementError'
|
|
191
|
-
| 'sessionUpdate'
|
|
192
|
-
| 'history'
|
|
193
|
-
| 'sessions'
|
|
194
|
-
| 'sessionsCount'
|
|
195
|
-
| 'sessionDeleted'
|
|
196
|
-
| 'sessionData'
|
|
197
|
-
| 'historyCleared'
|
|
198
|
-
| 'searchResults'
|
|
199
|
-
| 'newSession'
|
|
200
|
-
| 'autocomplete'
|
|
201
|
-
| 'fileContent'
|
|
202
|
-
| 'error'
|
|
203
|
-
| 'pong'
|
|
204
|
-
| 'tabInitialized'
|
|
205
|
-
| 'approvalRequired'
|
|
206
|
-
| 'toolUse'
|
|
207
|
-
| 'streamingTokens'
|
|
208
|
-
| 'notificationSummary'
|
|
209
|
-
| 'terminalOutput'
|
|
210
|
-
| 'terminalReady'
|
|
211
|
-
| 'terminalExit'
|
|
212
|
-
| 'terminalError'
|
|
213
|
-
| 'terminalList'
|
|
214
|
-
// File explorer response types
|
|
215
|
-
| 'directoryListing'
|
|
216
|
-
| 'fileWritten'
|
|
217
|
-
| 'fileCreated'
|
|
218
|
-
| 'directoryCreated'
|
|
219
|
-
| 'fileDeleted'
|
|
220
|
-
| 'fileRenamed'
|
|
221
|
-
| 'fileOpened'
|
|
222
|
-
| 'fileContentChanged'
|
|
223
|
-
| 'contentSearchResults'
|
|
224
|
-
| 'contentSearchComplete'
|
|
225
|
-
| 'contentSearchError'
|
|
226
|
-
| 'definitionResult'
|
|
227
|
-
| 'fileError'
|
|
228
|
-
| 'terminalScrollback'
|
|
229
|
-
// Terminal sync response types
|
|
230
|
-
| 'terminalCreated'
|
|
231
|
-
| 'terminalClosed'
|
|
232
|
-
// Git response types
|
|
233
|
-
| 'gitStatus'
|
|
234
|
-
| 'gitStaged'
|
|
235
|
-
| 'gitUnstaged'
|
|
236
|
-
| 'gitCommitted'
|
|
237
|
-
| 'gitCommitMessage'
|
|
238
|
-
| 'gitPushed'
|
|
239
|
-
| 'gitPulled'
|
|
240
|
-
| 'gitLog'
|
|
241
|
-
| 'gitError'
|
|
242
|
-
| 'gitReposDiscovered'
|
|
243
|
-
| 'gitDirectorySet'
|
|
244
|
-
| 'gitRemoteInfo'
|
|
245
|
-
| 'gitPRCreated'
|
|
246
|
-
| 'gitPRDescription'
|
|
247
|
-
// Branch response types
|
|
248
|
-
| 'gitBranchList'
|
|
249
|
-
| 'gitCheckedOut'
|
|
250
|
-
| 'gitBranchCreated'
|
|
251
|
-
| 'gitBranchDeleted'
|
|
252
|
-
// Diff response types
|
|
253
|
-
| 'gitDiffResult'
|
|
254
|
-
// Commit detail response types
|
|
255
|
-
| 'gitCommitDetail'
|
|
256
|
-
| 'gitCommitDiffResult'
|
|
257
|
-
// Tag response types
|
|
258
|
-
| 'gitTagList'
|
|
259
|
-
| 'gitTagCreated'
|
|
260
|
-
| 'gitTagPushed'
|
|
261
|
-
// Worktree response types
|
|
262
|
-
| 'gitWorktreeListResult'
|
|
263
|
-
| 'gitWorktreeCreated'
|
|
264
|
-
| 'gitWorktreeCreatedAndAssigned'
|
|
265
|
-
| 'gitWorktreeRemoved'
|
|
266
|
-
| 'tabWorktreeSwitched'
|
|
267
|
-
| 'gitBranchChanged'
|
|
268
|
-
| 'gitWorktreePushed'
|
|
269
|
-
| 'gitWorktreePRCreated'
|
|
270
|
-
// Merge response types
|
|
271
|
-
| 'gitMergePreviewResult'
|
|
272
|
-
| 'gitWorktreeMergeResult'
|
|
273
|
-
| 'gitMergeAborted'
|
|
274
|
-
| 'gitMergeCompleted'
|
|
275
|
-
// Session sync response types
|
|
276
|
-
| 'activeTabs'
|
|
277
|
-
| 'tabCreated'
|
|
278
|
-
| 'tabRemoved'
|
|
279
|
-
| 'tabRenamed'
|
|
280
|
-
| 'tabsReordered'
|
|
281
|
-
| 'promptTextSync'
|
|
282
|
-
| 'tabViewed'
|
|
283
|
-
| 'tabStateChanged'
|
|
284
|
-
// Settings response types
|
|
285
|
-
| 'settings'
|
|
286
|
-
| 'settingsUpdated'
|
|
287
|
-
// Quality response types
|
|
288
|
-
| 'qualityToolsDetected'
|
|
289
|
-
| 'qualityScanProgress'
|
|
290
|
-
| 'qualityScanResults'
|
|
291
|
-
| 'qualityInstallProgress'
|
|
292
|
-
| 'qualityInstallComplete'
|
|
293
|
-
| 'qualityCodeReview'
|
|
294
|
-
| 'qualityCodeReviewProgress'
|
|
295
|
-
| 'qualityPostSession'
|
|
296
|
-
| 'qualityFixProgress'
|
|
297
|
-
| 'qualityFixComplete'
|
|
298
|
-
| 'qualityError'
|
|
299
|
-
| 'qualityStateLoaded'
|
|
300
|
-
// File upload response types
|
|
301
|
-
| 'fileUploadAck'
|
|
302
|
-
| 'fileUploadReady'
|
|
303
|
-
| 'fileUploadError'
|
|
304
|
-
// Plan response types
|
|
305
|
-
| 'planState'
|
|
306
|
-
| 'planIssueList'
|
|
307
|
-
| 'planIssue'
|
|
308
|
-
| 'planSprint'
|
|
309
|
-
| 'planMilestone'
|
|
310
|
-
| 'planNotFound'
|
|
311
|
-
| 'planStateUpdated'
|
|
312
|
-
| 'planIssueUpdated'
|
|
313
|
-
| 'planIssueCreated'
|
|
314
|
-
| 'planIssueDeleted'
|
|
315
|
-
| 'planScaffolded'
|
|
316
|
-
| 'planPromptStreaming'
|
|
317
|
-
| 'planPromptProgress'
|
|
318
|
-
| 'planPromptResponse'
|
|
319
|
-
| 'planExecutionStarted'
|
|
320
|
-
| 'planExecutionProgress'
|
|
321
|
-
| 'planExecutionOutput'
|
|
322
|
-
| 'planExecutionMetrics'
|
|
323
|
-
| 'planExecutionComplete'
|
|
324
|
-
| 'planExecutionError'
|
|
325
|
-
| 'planError'
|
|
326
|
-
// Board lifecycle response types
|
|
327
|
-
| 'planBoardCreated'
|
|
328
|
-
| 'planBoardUpdated'
|
|
329
|
-
| 'planBoardArchived'
|
|
330
|
-
| 'planBoardState'
|
|
331
|
-
| 'planBoardArtifacts'
|
|
332
|
-
| 'planWorkspaceUpdated'
|
|
333
|
-
// Sprint lifecycle response types (legacy)
|
|
334
|
-
| 'planSprintCreated'
|
|
335
|
-
| 'planSprintUpdated'
|
|
336
|
-
| 'planSprintCompleted'
|
|
337
|
-
| 'planSprintArtifacts'
|
|
338
|
-
| 'planReviewProgress'
|
|
339
|
-
// Deploy response types
|
|
340
|
-
| 'deployCreated'
|
|
341
|
-
| 'deployStopped'
|
|
342
|
-
| 'deployResumed'
|
|
343
|
-
| 'deployDeleted'
|
|
344
|
-
| 'deployListResult'
|
|
345
|
-
| 'deployStatusResult'
|
|
346
|
-
| 'deployConfigUpdated'
|
|
347
|
-
| 'deployApiKeyStatus'
|
|
348
|
-
| 'deployError'
|
|
349
|
-
// Deploy HTTP relay response types (cli→server)
|
|
350
|
-
| 'deployHttpResponse'
|
|
351
|
-
| 'deployHttpResponseChunk'
|
|
352
|
-
| 'deployStatus'
|
|
353
|
-
| 'deployUsageReportAck'
|
|
354
|
-
| 'deployAiHealthAck'
|
|
355
|
-
// Skill discovery response types
|
|
356
|
-
| 'skillsList'
|
|
357
|
-
// Chat-to-board response types
|
|
358
|
-
| 'chatToBoardCreated';
|
|
152
|
+
type: WebSocketResponseType;
|
|
359
153
|
tabId?: string;
|
|
360
154
|
terminalId?: string;
|
|
361
|
-
// biome-ignore lint/suspicious/noExplicitAny: message envelope carries heterogeneous payloads
|
|
155
|
+
// biome-ignore lint/suspicious/noExplicitAny: message envelope carries heterogeneous payloads — typed per-handler via destructuring
|
|
362
156
|
data?: any;
|
|
363
157
|
}
|
|
364
158
|
|
|
@@ -371,7 +165,7 @@ export interface SkillEntry {
|
|
|
371
165
|
name: string;
|
|
372
166
|
displayName: string;
|
|
373
167
|
description: string;
|
|
374
|
-
source: 'project' | 'system' | 'builtin';
|
|
168
|
+
source: 'project' | 'user' | 'system' | 'builtin' | 'platform';
|
|
375
169
|
}
|
|
376
170
|
|
|
377
171
|
// Extended autocomplete option with metadata
|