@cryptiklemur/lattice 0.0.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/.editorconfig +12 -0
- package/.github/workflows/release.yml +44 -0
- package/.impeccable.md +66 -0
- package/.releaserc.json +32 -0
- package/.serena/project.yml +138 -0
- package/CLAUDE.md +35 -0
- package/CONTRIBUTING.md +93 -0
- package/LICENSE +21 -0
- package/README.md +83 -0
- package/bun.lock +1459 -0
- package/bunfig.toml +2 -0
- package/client/index.html +32 -0
- package/client/package.json +37 -0
- package/client/public/icons/icon-192.svg +11 -0
- package/client/public/icons/icon-512.svg +11 -0
- package/client/public/manifest.json +24 -0
- package/client/public/sw.js +61 -0
- package/client/src/App.tsx +28 -0
- package/client/src/components/auth/PassphrasePrompt.tsx +70 -0
- package/client/src/components/chat/ChatInput.tsx +241 -0
- package/client/src/components/chat/ChatView.tsx +727 -0
- package/client/src/components/chat/Message.tsx +362 -0
- package/client/src/components/chat/ModelSelector.tsx +87 -0
- package/client/src/components/chat/PermissionModeSelector.tsx +41 -0
- package/client/src/components/chat/StatusBar.tsx +50 -0
- package/client/src/components/chat/ToolGroup.tsx +129 -0
- package/client/src/components/chat/ToolResultRenderer.tsx +343 -0
- package/client/src/components/chat/toolSummary.ts +41 -0
- package/client/src/components/dashboard/DashboardView.tsx +219 -0
- package/client/src/components/dashboard/ProjectDashboardView.tsx +168 -0
- package/client/src/components/mesh/NodeBadge.tsx +24 -0
- package/client/src/components/mesh/PairingDialog.tsx +281 -0
- package/client/src/components/panels/FileBrowser.tsx +241 -0
- package/client/src/components/panels/StickyNotes.tsx +187 -0
- package/client/src/components/panels/Terminal.tsx +128 -0
- package/client/src/components/project-settings/ProjectClaude.tsx +304 -0
- package/client/src/components/project-settings/ProjectEnvironment.tsx +235 -0
- package/client/src/components/project-settings/ProjectGeneral.tsx +76 -0
- package/client/src/components/project-settings/ProjectMcp.tsx +232 -0
- package/client/src/components/project-settings/ProjectPermissions.tsx +209 -0
- package/client/src/components/project-settings/ProjectRules.tsx +277 -0
- package/client/src/components/project-settings/ProjectSettingsView.tsx +99 -0
- package/client/src/components/project-settings/ProjectSkills.tsx +91 -0
- package/client/src/components/settings/Appearance.tsx +151 -0
- package/client/src/components/settings/ClaudeSettings.tsx +151 -0
- package/client/src/components/settings/Environment.tsx +185 -0
- package/client/src/components/settings/GlobalMcp.tsx +207 -0
- package/client/src/components/settings/GlobalSkills.tsx +125 -0
- package/client/src/components/settings/MeshStatus.tsx +145 -0
- package/client/src/components/settings/SettingsView.tsx +57 -0
- package/client/src/components/settings/SkillMarketplace.tsx +175 -0
- package/client/src/components/settings/mcp-shared.tsx +194 -0
- package/client/src/components/settings/skill-shared.tsx +177 -0
- package/client/src/components/setup/SetupWizard.tsx +750 -0
- package/client/src/components/sidebar/NodeSettingsModal.tsx +180 -0
- package/client/src/components/sidebar/ProjectDropdown.tsx +43 -0
- package/client/src/components/sidebar/ProjectRail.tsx +291 -0
- package/client/src/components/sidebar/SearchFilter.tsx +52 -0
- package/client/src/components/sidebar/SessionList.tsx +384 -0
- package/client/src/components/sidebar/SettingsSidebar.tsx +128 -0
- package/client/src/components/sidebar/Sidebar.tsx +209 -0
- package/client/src/components/sidebar/UserIsland.tsx +59 -0
- package/client/src/components/sidebar/UserMenu.tsx +101 -0
- package/client/src/components/ui/CommandPalette.tsx +321 -0
- package/client/src/components/ui/ErrorBoundary.tsx +56 -0
- package/client/src/components/ui/IconPicker.tsx +209 -0
- package/client/src/components/ui/LatticeLogomark.tsx +19 -0
- package/client/src/components/ui/PopupMenu.tsx +98 -0
- package/client/src/components/ui/SaveFooter.tsx +38 -0
- package/client/src/components/ui/Toast.tsx +112 -0
- package/client/src/hooks/useMesh.ts +89 -0
- package/client/src/hooks/useProjectSettings.ts +56 -0
- package/client/src/hooks/useProjects.ts +66 -0
- package/client/src/hooks/useSaveState.ts +59 -0
- package/client/src/hooks/useSession.ts +317 -0
- package/client/src/hooks/useSidebar.ts +74 -0
- package/client/src/hooks/useSkills.ts +30 -0
- package/client/src/hooks/useTheme.ts +114 -0
- package/client/src/hooks/useWebSocket.ts +26 -0
- package/client/src/main.tsx +10 -0
- package/client/src/providers/WebSocketProvider.tsx +146 -0
- package/client/src/router.tsx +391 -0
- package/client/src/stores/mesh.ts +78 -0
- package/client/src/stores/session.ts +322 -0
- package/client/src/stores/sidebar.ts +336 -0
- package/client/src/stores/theme.ts +44 -0
- package/client/src/styles/global.css +167 -0
- package/client/src/styles/theme-vars.css +18 -0
- package/client/src/themes/index.ts +79 -0
- package/client/src/utils/findDuplicateKeys.ts +12 -0
- package/client/tsconfig.json +14 -0
- package/client/vite.config.ts +20 -0
- package/package.json +46 -0
- package/server/package.json +22 -0
- package/server/src/auth/passphrase.ts +48 -0
- package/server/src/config.ts +55 -0
- package/server/src/daemon.ts +338 -0
- package/server/src/features/ralph-loop.ts +173 -0
- package/server/src/features/scheduler.ts +281 -0
- package/server/src/features/sticky-notes.ts +102 -0
- package/server/src/handlers/chat.ts +194 -0
- package/server/src/handlers/fs.ts +84 -0
- package/server/src/handlers/loop.ts +37 -0
- package/server/src/handlers/mesh.ts +125 -0
- package/server/src/handlers/notes.ts +45 -0
- package/server/src/handlers/project-settings.ts +174 -0
- package/server/src/handlers/scheduler.ts +47 -0
- package/server/src/handlers/session.ts +159 -0
- package/server/src/handlers/settings.ts +109 -0
- package/server/src/handlers/skills.ts +380 -0
- package/server/src/handlers/terminal.ts +70 -0
- package/server/src/identity.ts +26 -0
- package/server/src/index.ts +190 -0
- package/server/src/mesh/connector.ts +209 -0
- package/server/src/mesh/discovery.ts +123 -0
- package/server/src/mesh/pairing.ts +94 -0
- package/server/src/mesh/peers.ts +52 -0
- package/server/src/mesh/proxy.ts +103 -0
- package/server/src/mesh/session-sync.ts +107 -0
- package/server/src/project/context-breakdown.ts +289 -0
- package/server/src/project/file-browser.ts +106 -0
- package/server/src/project/project-files.ts +267 -0
- package/server/src/project/registry.ts +57 -0
- package/server/src/project/sdk-bridge.ts +566 -0
- package/server/src/project/session.ts +432 -0
- package/server/src/project/terminal.ts +69 -0
- package/server/src/tls.ts +51 -0
- package/server/src/ws/broadcast.ts +31 -0
- package/server/src/ws/router.ts +104 -0
- package/server/src/ws/server.ts +2 -0
- package/server/tsconfig.json +16 -0
- package/shared/package.json +11 -0
- package/shared/src/constants.ts +7 -0
- package/shared/src/index.ts +4 -0
- package/shared/src/messages.ts +638 -0
- package/shared/src/models.ts +136 -0
- package/shared/src/project-settings.ts +45 -0
- package/shared/tsconfig.json +11 -0
- package/themes/amoled.json +20 -0
- package/themes/ayu-light.json +9 -0
- package/themes/catppuccin-latte.json +9 -0
- package/themes/catppuccin-mocha.json +9 -0
- package/themes/clay-light.json +10 -0
- package/themes/clay.json +10 -0
- package/themes/dracula.json +9 -0
- package/themes/everforest-light.json +9 -0
- package/themes/everforest.json +9 -0
- package/themes/github-light.json +9 -0
- package/themes/gruvbox-dark.json +9 -0
- package/themes/gruvbox-light.json +9 -0
- package/themes/monokai.json +9 -0
- package/themes/nord-light.json +9 -0
- package/themes/nord.json +9 -0
- package/themes/one-dark.json +9 -0
- package/themes/one-light.json +9 -0
- package/themes/rose-pine-dawn.json +9 -0
- package/themes/rose-pine.json +9 -0
- package/themes/solarized-dark.json +9 -0
- package/themes/solarized-light.json +9 -0
- package/themes/tokyo-night-light.json +9 -0
- package/themes/tokyo-night.json +9 -0
- package/tsconfig.json +26 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var DEFAULT_PORT = 7654;
|
|
2
|
+
export var PROTOCOL_VERSION = 1;
|
|
3
|
+
export var MDNS_SERVICE_TYPE = "_lattice._tcp";
|
|
4
|
+
export var LATTICE_HOME_DIR = ".lattice";
|
|
5
|
+
export var DAEMON_SOCKET_NAME = "daemon.sock";
|
|
6
|
+
export var DAEMON_PID_FILE = "daemon.pid";
|
|
7
|
+
export var DAEMON_LOG_FILE = "daemon.log";
|
|
@@ -0,0 +1,638 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Attachment,
|
|
3
|
+
FileEntry,
|
|
4
|
+
HistoryMessage,
|
|
5
|
+
LatticeConfig,
|
|
6
|
+
LoopStatus,
|
|
7
|
+
MarketplaceSkill,
|
|
8
|
+
NodeInfo,
|
|
9
|
+
ProjectInfo,
|
|
10
|
+
ScheduledTask,
|
|
11
|
+
SessionSummary,
|
|
12
|
+
SkillInfo,
|
|
13
|
+
StickyNote,
|
|
14
|
+
} from "./models.js";
|
|
15
|
+
import type { McpServerConfig, ProjectSettings } from "./project-settings.js";
|
|
16
|
+
|
|
17
|
+
export interface SessionCreateMessage {
|
|
18
|
+
type: "session:create";
|
|
19
|
+
projectSlug: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface SessionActivateMessage {
|
|
23
|
+
type: "session:activate";
|
|
24
|
+
projectSlug: string;
|
|
25
|
+
sessionId: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface SessionRenameMessage {
|
|
29
|
+
type: "session:rename";
|
|
30
|
+
sessionId: string;
|
|
31
|
+
title: string;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface SessionDeleteMessage {
|
|
35
|
+
type: "session:delete";
|
|
36
|
+
sessionId: string;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export interface SessionListRequestMessage {
|
|
40
|
+
type: "session:list_request";
|
|
41
|
+
projectSlug: string;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface ChatSendMessage {
|
|
45
|
+
type: "chat:send";
|
|
46
|
+
text: string;
|
|
47
|
+
attachments?: Attachment[];
|
|
48
|
+
model?: string;
|
|
49
|
+
effort?: string;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export interface ChatPermissionResponseMessage {
|
|
53
|
+
type: "chat:permission_response";
|
|
54
|
+
requestId: string;
|
|
55
|
+
allow: boolean;
|
|
56
|
+
alwaysAllow?: boolean;
|
|
57
|
+
alwaysAllowScope?: "session" | "project";
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export interface ChatRewindMessage {
|
|
61
|
+
type: "chat:rewind";
|
|
62
|
+
messageUuid: string;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export interface ChatCancelMessage {
|
|
66
|
+
type: "chat:cancel";
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface ChatSetPermissionModeMessage {
|
|
70
|
+
type: "chat:set_permission_mode";
|
|
71
|
+
mode: "default" | "acceptEdits" | "plan" | "dontAsk";
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface FsListMessage {
|
|
75
|
+
type: "fs:list";
|
|
76
|
+
path: string;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export interface FsReadMessage {
|
|
80
|
+
type: "fs:read";
|
|
81
|
+
path: string;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export interface FsWriteMessage {
|
|
85
|
+
type: "fs:write";
|
|
86
|
+
path: string;
|
|
87
|
+
content: string;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export interface TerminalCreateMessage {
|
|
91
|
+
type: "terminal:create";
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export interface TerminalInputMessage {
|
|
95
|
+
type: "terminal:input";
|
|
96
|
+
termId: string;
|
|
97
|
+
data: string;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export interface TerminalResizeMessage {
|
|
101
|
+
type: "terminal:resize";
|
|
102
|
+
termId: string;
|
|
103
|
+
cols: number;
|
|
104
|
+
rows: number;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export interface SettingsGetMessage {
|
|
108
|
+
type: "settings:get";
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export interface SettingsUpdateMessage {
|
|
112
|
+
type: "settings:update";
|
|
113
|
+
settings: Partial<LatticeConfig>;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export interface SettingsRestartMessage {
|
|
117
|
+
type: "settings:restart";
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export interface MeshPairMessage {
|
|
121
|
+
type: "mesh:pair";
|
|
122
|
+
code: string;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export interface MeshGenerateInviteMessage {
|
|
126
|
+
type: "mesh:generate_invite";
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export interface MeshUnpairMessage {
|
|
130
|
+
type: "mesh:unpair";
|
|
131
|
+
nodeId: string;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export interface LoopStartMessage {
|
|
135
|
+
type: "loop:start";
|
|
136
|
+
projectSlug: string;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export interface LoopStopMessage {
|
|
140
|
+
type: "loop:stop";
|
|
141
|
+
loopId: string;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export interface LoopStatusRequestMessage {
|
|
145
|
+
type: "loop:status";
|
|
146
|
+
loopId: string;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export interface SchedulerListMessage {
|
|
150
|
+
type: "scheduler:list";
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export interface SchedulerCreateMessage {
|
|
154
|
+
type: "scheduler:create";
|
|
155
|
+
name: string;
|
|
156
|
+
prompt: string;
|
|
157
|
+
cron: string;
|
|
158
|
+
projectSlug: string;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export interface SchedulerDeleteMessage {
|
|
162
|
+
type: "scheduler:delete";
|
|
163
|
+
taskId: string;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
export interface SchedulerToggleMessage {
|
|
167
|
+
type: "scheduler:toggle";
|
|
168
|
+
taskId: string;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export interface NotesListMessage {
|
|
172
|
+
type: "notes:list";
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export interface NotesCreateMessage {
|
|
176
|
+
type: "notes:create";
|
|
177
|
+
content: string;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
export interface NotesUpdateMessage {
|
|
181
|
+
type: "notes:update";
|
|
182
|
+
id: string;
|
|
183
|
+
content: string;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export interface NotesDeleteMessage {
|
|
187
|
+
type: "notes:delete";
|
|
188
|
+
id: string;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
export interface SkillsListRequestMessage {
|
|
192
|
+
type: "skills:list_request";
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
export interface SessionListAllRequestMessage {
|
|
196
|
+
type: "session:list_all_request";
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
export interface SkillsSearchMessage {
|
|
200
|
+
type: "skills:search";
|
|
201
|
+
query: string;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
export interface SkillsInstallMessage {
|
|
205
|
+
type: "skills:install";
|
|
206
|
+
source: string;
|
|
207
|
+
scope: "global" | "project";
|
|
208
|
+
projectSlug?: string;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
export interface SkillsViewMessage {
|
|
212
|
+
type: "skills:view";
|
|
213
|
+
path: string;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
export interface SkillsDeleteMessage {
|
|
217
|
+
type: "skills:delete";
|
|
218
|
+
path: string;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export interface SkillsUpdateMessage {
|
|
222
|
+
type: "skills:update";
|
|
223
|
+
source: string;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
export interface ProjectSettingsGetMessage {
|
|
227
|
+
type: "project-settings:get";
|
|
228
|
+
projectSlug: string;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
export interface ProjectSettingsUpdateMessage {
|
|
232
|
+
type: "project-settings:update";
|
|
233
|
+
projectSlug: string;
|
|
234
|
+
section: string;
|
|
235
|
+
settings: Record<string, unknown>;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
export interface ProjectSettingsDataMessage {
|
|
239
|
+
type: "project-settings:data";
|
|
240
|
+
projectSlug: string;
|
|
241
|
+
settings: ProjectSettings;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
export interface ProjectSettingsErrorMessage {
|
|
245
|
+
type: "project-settings:error";
|
|
246
|
+
projectSlug: string;
|
|
247
|
+
message: string;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
export type ClientMessage =
|
|
251
|
+
| SessionCreateMessage
|
|
252
|
+
| SessionActivateMessage
|
|
253
|
+
| SessionRenameMessage
|
|
254
|
+
| SessionDeleteMessage
|
|
255
|
+
| SessionListRequestMessage
|
|
256
|
+
| ChatSendMessage
|
|
257
|
+
| ChatPermissionResponseMessage
|
|
258
|
+
| ChatRewindMessage
|
|
259
|
+
| ChatCancelMessage
|
|
260
|
+
| FsListMessage
|
|
261
|
+
| FsReadMessage
|
|
262
|
+
| FsWriteMessage
|
|
263
|
+
| TerminalCreateMessage
|
|
264
|
+
| TerminalInputMessage
|
|
265
|
+
| TerminalResizeMessage
|
|
266
|
+
| SettingsGetMessage
|
|
267
|
+
| SettingsUpdateMessage
|
|
268
|
+
| SettingsRestartMessage
|
|
269
|
+
| MeshPairMessage
|
|
270
|
+
| MeshGenerateInviteMessage
|
|
271
|
+
| MeshUnpairMessage
|
|
272
|
+
| LoopStartMessage
|
|
273
|
+
| LoopStopMessage
|
|
274
|
+
| LoopStatusRequestMessage
|
|
275
|
+
| SchedulerListMessage
|
|
276
|
+
| SchedulerCreateMessage
|
|
277
|
+
| SchedulerDeleteMessage
|
|
278
|
+
| SchedulerToggleMessage
|
|
279
|
+
| NotesListMessage
|
|
280
|
+
| NotesCreateMessage
|
|
281
|
+
| NotesUpdateMessage
|
|
282
|
+
| NotesDeleteMessage
|
|
283
|
+
| SkillsListRequestMessage
|
|
284
|
+
| ChatSetPermissionModeMessage
|
|
285
|
+
| ProjectSettingsGetMessage
|
|
286
|
+
| ProjectSettingsUpdateMessage
|
|
287
|
+
| SessionListAllRequestMessage
|
|
288
|
+
| SkillsSearchMessage
|
|
289
|
+
| SkillsInstallMessage
|
|
290
|
+
| SkillsViewMessage
|
|
291
|
+
| SkillsDeleteMessage
|
|
292
|
+
| SkillsUpdateMessage;
|
|
293
|
+
|
|
294
|
+
export interface SessionListMessage {
|
|
295
|
+
type: "session:list";
|
|
296
|
+
projectSlug: string;
|
|
297
|
+
sessions: SessionSummary[];
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
export interface SessionCreatedMessage {
|
|
301
|
+
type: "session:created";
|
|
302
|
+
session: SessionSummary;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
export interface SessionHistoryMessage {
|
|
306
|
+
type: "session:history";
|
|
307
|
+
projectSlug: string;
|
|
308
|
+
sessionId: string;
|
|
309
|
+
messages: HistoryMessage[];
|
|
310
|
+
title?: string;
|
|
311
|
+
interrupted?: boolean;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
export interface ChatUserMessage {
|
|
315
|
+
type: "chat:user_message";
|
|
316
|
+
text: string;
|
|
317
|
+
uuid: string;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
export interface ChatDeltaMessage {
|
|
321
|
+
type: "chat:delta";
|
|
322
|
+
text: string;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
export interface ChatToolStartMessage {
|
|
326
|
+
type: "chat:tool_start";
|
|
327
|
+
toolId: string;
|
|
328
|
+
name: string;
|
|
329
|
+
args: string;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
export interface ChatToolResultMessage {
|
|
333
|
+
type: "chat:tool_result";
|
|
334
|
+
toolId: string;
|
|
335
|
+
content: string;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
export interface ChatDoneMessage {
|
|
339
|
+
type: "chat:done";
|
|
340
|
+
cost: number;
|
|
341
|
+
duration: number;
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
export interface ChatErrorMessage {
|
|
345
|
+
type: "chat:error";
|
|
346
|
+
message: string;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
export interface ChatPermissionRequestMessage {
|
|
350
|
+
type: "chat:permission_request";
|
|
351
|
+
requestId: string;
|
|
352
|
+
tool: string;
|
|
353
|
+
args: string;
|
|
354
|
+
title?: string;
|
|
355
|
+
decisionReason?: string;
|
|
356
|
+
permissionRule?: string;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
export interface ChatPermissionResolvedMessage {
|
|
360
|
+
type: "chat:permission_resolved";
|
|
361
|
+
requestId: string;
|
|
362
|
+
status: "allowed" | "denied" | "always_allowed";
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
export interface ChatStatusMessage {
|
|
366
|
+
type: "chat:status";
|
|
367
|
+
phase: "thinking" | "tool_call" | "tool_result";
|
|
368
|
+
toolName?: string;
|
|
369
|
+
elapsed?: number;
|
|
370
|
+
summary?: string;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
export interface ChatContextUsageMessage {
|
|
374
|
+
type: "chat:context_usage";
|
|
375
|
+
inputTokens: number;
|
|
376
|
+
outputTokens: number;
|
|
377
|
+
cacheReadTokens: number;
|
|
378
|
+
cacheCreationTokens: number;
|
|
379
|
+
contextWindow: number;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
export interface ContextBreakdownSegment {
|
|
383
|
+
label: string;
|
|
384
|
+
tokens: number;
|
|
385
|
+
id: string;
|
|
386
|
+
estimated: boolean;
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
export interface ChatContextBreakdownMessage {
|
|
390
|
+
type: "chat:context_breakdown";
|
|
391
|
+
segments: ContextBreakdownSegment[];
|
|
392
|
+
contextWindow: number;
|
|
393
|
+
autocompactAt: number;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
export interface FsListResultMessage {
|
|
397
|
+
type: "fs:list_result";
|
|
398
|
+
path: string;
|
|
399
|
+
entries: FileEntry[];
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
export interface FsReadResultMessage {
|
|
403
|
+
type: "fs:read_result";
|
|
404
|
+
path: string;
|
|
405
|
+
content: string;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
export interface FsChangedMessage {
|
|
409
|
+
type: "fs:changed";
|
|
410
|
+
path: string;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
export interface TerminalCreatedMessage {
|
|
414
|
+
type: "terminal:created";
|
|
415
|
+
termId: string;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
export interface TerminalOutputMessage {
|
|
419
|
+
type: "terminal:output";
|
|
420
|
+
termId: string;
|
|
421
|
+
data: string;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
export interface TerminalExitedMessage {
|
|
425
|
+
type: "terminal:exited";
|
|
426
|
+
termId: string;
|
|
427
|
+
code: number;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
export interface MeshNodesMessage {
|
|
431
|
+
type: "mesh:nodes";
|
|
432
|
+
nodes: NodeInfo[];
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
export interface MeshInviteCodeMessage {
|
|
436
|
+
type: "mesh:invite_code";
|
|
437
|
+
code: string;
|
|
438
|
+
qrDataUrl: string;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
export interface MeshPairedMessage {
|
|
442
|
+
type: "mesh:paired";
|
|
443
|
+
node: NodeInfo;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
export interface MeshNodeOnlineMessage {
|
|
447
|
+
type: "mesh:node_online";
|
|
448
|
+
nodeId: string;
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
export interface MeshNodeOfflineMessage {
|
|
452
|
+
type: "mesh:node_offline";
|
|
453
|
+
nodeId: string;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
export interface ProjectsListMessage {
|
|
457
|
+
type: "projects:list";
|
|
458
|
+
projects: ProjectInfo[];
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
export interface SettingsDataMessage {
|
|
462
|
+
type: "settings:data";
|
|
463
|
+
config: LatticeConfig;
|
|
464
|
+
mcpServers?: Record<string, McpServerConfig>;
|
|
465
|
+
globalSkills?: SkillInfo[];
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
export interface LoopStatusMessage {
|
|
469
|
+
type: "loop:status_update";
|
|
470
|
+
loop: LoopStatus;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
export interface LoopStartedMessage {
|
|
474
|
+
type: "loop:started";
|
|
475
|
+
loop: LoopStatus;
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
export interface LoopDeltaMessage {
|
|
479
|
+
type: "loop:delta";
|
|
480
|
+
loopId: string;
|
|
481
|
+
iteration: number;
|
|
482
|
+
text: string;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
export interface SchedulerTasksMessage {
|
|
486
|
+
type: "scheduler:tasks";
|
|
487
|
+
tasks: ScheduledTask[];
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
export interface SchedulerTaskCreatedMessage {
|
|
491
|
+
type: "scheduler:task_created";
|
|
492
|
+
task: ScheduledTask;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
export interface NotesListResultMessage {
|
|
496
|
+
type: "notes:list_result";
|
|
497
|
+
notes: StickyNote[];
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
export interface NoteCreatedMessage {
|
|
501
|
+
type: "notes:created";
|
|
502
|
+
note: StickyNote;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
export interface NoteUpdatedMessage {
|
|
506
|
+
type: "notes:updated";
|
|
507
|
+
note: StickyNote;
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
export interface NoteDeletedMessage {
|
|
511
|
+
type: "notes:deleted";
|
|
512
|
+
id: string;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
export interface SkillsListMessage {
|
|
516
|
+
type: "skills:list";
|
|
517
|
+
skills: SkillInfo[];
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
export interface SessionListAllMessage {
|
|
521
|
+
type: "session:list_all";
|
|
522
|
+
sessions: SessionSummary[];
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
export interface SkillsSearchResultsMessage {
|
|
526
|
+
type: "skills:search_results";
|
|
527
|
+
query: string;
|
|
528
|
+
skills: MarketplaceSkill[];
|
|
529
|
+
count: number;
|
|
530
|
+
error?: string;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
export interface SkillsInstallResultMessage {
|
|
534
|
+
type: "skills:install_result";
|
|
535
|
+
success: boolean;
|
|
536
|
+
message?: string;
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
export interface SkillsViewResultMessage {
|
|
540
|
+
type: "skills:view_result";
|
|
541
|
+
path: string;
|
|
542
|
+
content: string;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
export interface SkillsDeleteResultMessage {
|
|
546
|
+
type: "skills:delete_result";
|
|
547
|
+
success: boolean;
|
|
548
|
+
message?: string;
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
export type ServerMessage =
|
|
552
|
+
| SessionListMessage
|
|
553
|
+
| SessionCreatedMessage
|
|
554
|
+
| SessionHistoryMessage
|
|
555
|
+
| ChatUserMessage
|
|
556
|
+
| ChatDeltaMessage
|
|
557
|
+
| ChatToolStartMessage
|
|
558
|
+
| ChatToolResultMessage
|
|
559
|
+
| ChatDoneMessage
|
|
560
|
+
| ChatErrorMessage
|
|
561
|
+
| ChatPermissionRequestMessage
|
|
562
|
+
| ChatStatusMessage
|
|
563
|
+
| ChatContextUsageMessage
|
|
564
|
+
| ChatContextBreakdownMessage
|
|
565
|
+
| FsListResultMessage
|
|
566
|
+
| FsReadResultMessage
|
|
567
|
+
| FsChangedMessage
|
|
568
|
+
| TerminalCreatedMessage
|
|
569
|
+
| TerminalOutputMessage
|
|
570
|
+
| TerminalExitedMessage
|
|
571
|
+
| MeshNodesMessage
|
|
572
|
+
| MeshInviteCodeMessage
|
|
573
|
+
| MeshPairedMessage
|
|
574
|
+
| MeshNodeOnlineMessage
|
|
575
|
+
| MeshNodeOfflineMessage
|
|
576
|
+
| ProjectsListMessage
|
|
577
|
+
| SettingsDataMessage
|
|
578
|
+
| LoopStatusMessage
|
|
579
|
+
| LoopStartedMessage
|
|
580
|
+
| LoopDeltaMessage
|
|
581
|
+
| SchedulerTasksMessage
|
|
582
|
+
| SchedulerTaskCreatedMessage
|
|
583
|
+
| NotesListResultMessage
|
|
584
|
+
| NoteCreatedMessage
|
|
585
|
+
| NoteUpdatedMessage
|
|
586
|
+
| NoteDeletedMessage
|
|
587
|
+
| SkillsListMessage
|
|
588
|
+
| ChatPermissionResolvedMessage
|
|
589
|
+
| ProjectSettingsDataMessage
|
|
590
|
+
| ProjectSettingsErrorMessage
|
|
591
|
+
| SessionListAllMessage
|
|
592
|
+
| SkillsSearchResultsMessage
|
|
593
|
+
| SkillsInstallResultMessage
|
|
594
|
+
| SkillsViewResultMessage
|
|
595
|
+
| SkillsDeleteResultMessage;
|
|
596
|
+
|
|
597
|
+
export interface MeshHelloMessage {
|
|
598
|
+
type: "mesh:hello";
|
|
599
|
+
nodeId: string;
|
|
600
|
+
name: string;
|
|
601
|
+
projects: Array<{ slug: string; title: string }>;
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
export interface MeshProxyRequestMessage {
|
|
605
|
+
type: "mesh:proxy_request";
|
|
606
|
+
projectSlug: string;
|
|
607
|
+
requestId: string;
|
|
608
|
+
payload: ClientMessage;
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
export interface MeshProxyResponseMessage {
|
|
612
|
+
type: "mesh:proxy_response";
|
|
613
|
+
projectSlug: string;
|
|
614
|
+
requestId: string;
|
|
615
|
+
payload: ServerMessage;
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
export interface MeshSessionSyncMessage {
|
|
619
|
+
type: "mesh:session_sync";
|
|
620
|
+
projectSlug: string;
|
|
621
|
+
sessionId: string;
|
|
622
|
+
lines: string[];
|
|
623
|
+
offset: number;
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
export interface MeshSessionRequestMessage {
|
|
627
|
+
type: "mesh:session_request";
|
|
628
|
+
projectSlug: string;
|
|
629
|
+
sessionId: string;
|
|
630
|
+
fromOffset: number;
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
export type MeshMessage =
|
|
634
|
+
| MeshHelloMessage
|
|
635
|
+
| MeshProxyRequestMessage
|
|
636
|
+
| MeshProxyResponseMessage
|
|
637
|
+
| MeshSessionSyncMessage
|
|
638
|
+
| MeshSessionRequestMessage;
|