@progmruansilva/omp-web 1.202608.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.
Files changed (234) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +181 -0
  3. package/dist/cli.js +1015 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/client/assets/CodeViewer-Da66baHj.js +4 -0
  6. package/dist/client/assets/TerminalPanel-Bj9an79F.js +126 -0
  7. package/dist/client/assets/UnifiedDiffViewer-eK_kynTO.js +34 -0
  8. package/dist/client/assets/index-DytaeWNd.js +3070 -0
  9. package/dist/client/assets/vendor-editor-core-CL2gOCIg.js +12 -0
  10. package/dist/client/assets/vendor-editor-languages-zOM9I4iZ.js +26 -0
  11. package/dist/client/assets/vendor-editor-legacy-B4QLsWF8.js +1 -0
  12. package/dist/client/assets/vendor-terminal-DDGTF8rc.css +1 -0
  13. package/dist/client/assets/vendor-terminal-DjQ08hXu.js +16 -0
  14. package/dist/client/favicon-16x16.png +0 -0
  15. package/dist/client/favicon-180x180.png +0 -0
  16. package/dist/client/favicon-192x192.png +0 -0
  17. package/dist/client/favicon-32x32.png +0 -0
  18. package/dist/client/favicon-512x512.png +0 -0
  19. package/dist/client/favicon.ico +0 -0
  20. package/dist/client/favicon.png +0 -0
  21. package/dist/client/favicon.svg +11 -0
  22. package/dist/client/index.html +67 -0
  23. package/dist/client/manifest.webmanifest +36 -0
  24. package/dist/config.js +272 -0
  25. package/dist/config.js.map +1 -0
  26. package/dist/docker/ompWebDockerCommandPlan.js +211 -0
  27. package/dist/docker/ompWebDockerCommandPlan.js.map +1 -0
  28. package/dist/omp-web-plugins/info/omp-web-plugin.js +51 -0
  29. package/dist/omp-web-plugins/info/package.json +9 -0
  30. package/dist/omp-web-plugins/schedule-prompts/omp-web-plugin.js +43 -0
  31. package/dist/omp-web-plugins/schedule-prompts/package.json +9 -0
  32. package/dist/omp-web-plugins/schedule-prompts/schedulePromptsPanelElement.js +242 -0
  33. package/dist/omp-web-plugins/schedule-prompts/types.js +2 -0
  34. package/dist/omp-web-plugins/updates/omp-web-plugin.js +173 -0
  35. package/dist/omp-web-plugins/updates/package.json +9 -0
  36. package/dist/omp-web-plugins/updates/updatesLogic.js +97 -0
  37. package/dist/ompWebVersionReport.js +217 -0
  38. package/dist/ompWebVersionReport.js.map +1 -0
  39. package/dist/plugin-api/unstable.d.ts +22 -0
  40. package/dist/plugin-api.d.ts +197 -0
  41. package/dist/server/activity/workspaceActivityRoutes.js +4 -0
  42. package/dist/server/activity/workspaceActivityRoutes.js.map +1 -0
  43. package/dist/server/activity/workspaceActivityService.js +98 -0
  44. package/dist/server/activity/workspaceActivityService.js.map +1 -0
  45. package/dist/server/app.js +162 -0
  46. package/dist/server/app.js.map +1 -0
  47. package/dist/server/configRoutes.js +270 -0
  48. package/dist/server/configRoutes.js.map +1 -0
  49. package/dist/server/diagnostics/nodePtySpawnHelper.js +130 -0
  50. package/dist/server/diagnostics/nodePtySpawnHelper.js.map +1 -0
  51. package/dist/server/git/gitEnv.js +15 -0
  52. package/dist/server/git/gitEnv.js.map +1 -0
  53. package/dist/server/git/gitService.js +119 -0
  54. package/dist/server/git/gitService.js.map +1 -0
  55. package/dist/server/gitRoutes.js +23 -0
  56. package/dist/server/gitRoutes.js.map +1 -0
  57. package/dist/server/index.js +7 -0
  58. package/dist/server/index.js.map +1 -0
  59. package/dist/server/machines/machineClient.js +162 -0
  60. package/dist/server/machines/machineClient.js.map +1 -0
  61. package/dist/server/machines/machinePluginProxyRoutes.js +157 -0
  62. package/dist/server/machines/machinePluginProxyRoutes.js.map +1 -0
  63. package/dist/server/machines/machineProxyRoutes.js +127 -0
  64. package/dist/server/machines/machineProxyRoutes.js.map +1 -0
  65. package/dist/server/machines/machineRoutes.js +54 -0
  66. package/dist/server/machines/machineRoutes.js.map +1 -0
  67. package/dist/server/machines/machineService.js +230 -0
  68. package/dist/server/machines/machineService.js.map +1 -0
  69. package/dist/server/machines/machineStore.js +123 -0
  70. package/dist/server/machines/machineStore.js.map +1 -0
  71. package/dist/server/machines/proxyUtils.js +30 -0
  72. package/dist/server/machines/proxyUtils.js.map +1 -0
  73. package/dist/server/ompWebPluginService.js +279 -0
  74. package/dist/server/ompWebPluginService.js.map +1 -0
  75. package/dist/server/ompWebStatus.js +601 -0
  76. package/dist/server/ompWebStatus.js.map +1 -0
  77. package/dist/server/ompWebStatusCache.js +31 -0
  78. package/dist/server/ompWebStatusCache.js.map +1 -0
  79. package/dist/server/piPackageRoutes.js +82 -0
  80. package/dist/server/piPackageRoutes.js.map +1 -0
  81. package/dist/server/piPackageService.js +65 -0
  82. package/dist/server/piPackageService.js.map +1 -0
  83. package/dist/server/projects/directorySuggestions.js +37 -0
  84. package/dist/server/projects/directorySuggestions.js.map +1 -0
  85. package/dist/server/projects/projectService.js +31 -0
  86. package/dist/server/projects/projectService.js.map +1 -0
  87. package/dist/server/push/PushNotificationService.js +137 -0
  88. package/dist/server/push/PushNotificationService.js.map +1 -0
  89. package/dist/server/push/pushRoutes.js +55 -0
  90. package/dist/server/push/pushRoutes.js.map +1 -0
  91. package/dist/server/realtime/sessionEventHub.js +39 -0
  92. package/dist/server/realtime/sessionEventHub.js.map +1 -0
  93. package/dist/server/sessiond/sessionProxyRoutes.js +61 -0
  94. package/dist/server/sessiond/sessionProxyRoutes.js.map +1 -0
  95. package/dist/server/sessiond.js +92 -0
  96. package/dist/server/sessiond.js.map +1 -0
  97. package/dist/server/sessions/attachmentService.js +112 -0
  98. package/dist/server/sessions/attachmentService.js.map +1 -0
  99. package/dist/server/sessions/authProviderOptions.js +52 -0
  100. package/dist/server/sessions/authProviderOptions.js.map +1 -0
  101. package/dist/server/sessions/authRoutes.js +59 -0
  102. package/dist/server/sessions/authRoutes.js.map +1 -0
  103. package/dist/server/sessions/authService.js +105 -0
  104. package/dist/server/sessions/authService.js.map +1 -0
  105. package/dist/server/sessions/builtinCommands.js +29 -0
  106. package/dist/server/sessions/builtinCommands.js.map +1 -0
  107. package/dist/server/sessions/editPreview.js +196 -0
  108. package/dist/server/sessions/editPreview.js.map +1 -0
  109. package/dist/server/sessions/messagePaging.js +41 -0
  110. package/dist/server/sessions/messagePaging.js.map +1 -0
  111. package/dist/server/sessions/oauthLoginFlowService.js +136 -0
  112. package/dist/server/sessions/oauthLoginFlowService.js.map +1 -0
  113. package/dist/server/sessions/piSessionManagerGateway.js +97 -0
  114. package/dist/server/sessions/piSessionManagerGateway.js.map +1 -0
  115. package/dist/server/sessions/piSessionService.js +2401 -0
  116. package/dist/server/sessions/piSessionService.js.map +1 -0
  117. package/dist/server/sessions/schedulePrompt/schedulePromptService.js +46 -0
  118. package/dist/server/sessions/schedulePrompt/schedulePromptService.js.map +1 -0
  119. package/dist/server/sessions/schedulePrompt/scheduler.js +315 -0
  120. package/dist/server/sessions/schedulePrompt/scheduler.js.map +1 -0
  121. package/dist/server/sessions/schedulePrompt/storage.js +118 -0
  122. package/dist/server/sessions/schedulePrompt/storage.js.map +1 -0
  123. package/dist/server/sessions/schedulePrompt/tool.js +252 -0
  124. package/dist/server/sessions/schedulePrompt/tool.js.map +1 -0
  125. package/dist/server/sessions/schedulePrompt/types.js +2 -0
  126. package/dist/server/sessions/schedulePrompt/types.js.map +1 -0
  127. package/dist/server/sessions/sessionArchiveStore.js +254 -0
  128. package/dist/server/sessions/sessionArchiveStore.js.map +1 -0
  129. package/dist/server/sessions/sessionArchiveTree.js +35 -0
  130. package/dist/server/sessions/sessionArchiveTree.js.map +1 -0
  131. package/dist/server/sessions/sessionCleanup.js +157 -0
  132. package/dist/server/sessions/sessionCleanup.js.map +1 -0
  133. package/dist/server/sessions/sessionCommandService.js +260 -0
  134. package/dist/server/sessions/sessionCommandService.js.map +1 -0
  135. package/dist/server/sessions/sessionNameGenerator.js +61 -0
  136. package/dist/server/sessions/sessionNameGenerator.js.map +1 -0
  137. package/dist/server/sessions/sessionRoutes.js +344 -0
  138. package/dist/server/sessions/sessionRoutes.js.map +1 -0
  139. package/dist/server/sessions/sessionRuntimeStore.js +2 -0
  140. package/dist/server/sessions/sessionRuntimeStore.js.map +1 -0
  141. package/dist/server/sessions/spawnSessionTool.js +41 -0
  142. package/dist/server/sessions/spawnSessionTool.js.map +1 -0
  143. package/dist/server/sessions/spawnSubsessionTool.js +203 -0
  144. package/dist/server/sessions/spawnSubsessionTool.js.map +1 -0
  145. package/dist/server/sessions/spawnTargetResolver.js +36 -0
  146. package/dist/server/sessions/spawnTargetResolver.js.map +1 -0
  147. package/dist/server/sessions/subsessionTranscript.js +233 -0
  148. package/dist/server/sessions/subsessionTranscript.js.map +1 -0
  149. package/dist/server/storage/projectStore.js +83 -0
  150. package/dist/server/storage/projectStore.js.map +1 -0
  151. package/dist/server/terminalProxyRoutes.js +140 -0
  152. package/dist/server/terminalProxyRoutes.js.map +1 -0
  153. package/dist/server/terminals/terminalRoutes.js +153 -0
  154. package/dist/server/terminals/terminalRoutes.js.map +1 -0
  155. package/dist/server/terminals/terminalService.js +320 -0
  156. package/dist/server/terminals/terminalService.js.map +1 -0
  157. package/dist/server/terminals/terminalSize.js +17 -0
  158. package/dist/server/terminals/terminalSize.js.map +1 -0
  159. package/dist/server/types.js +2 -0
  160. package/dist/server/types.js.map +1 -0
  161. package/dist/server/utils.js +8 -0
  162. package/dist/server/utils.js.map +1 -0
  163. package/dist/server/webSocketBridge.js +32 -0
  164. package/dist/server/webSocketBridge.js.map +1 -0
  165. package/dist/server/workingDirectory.js +44 -0
  166. package/dist/server/workingDirectory.js.map +1 -0
  167. package/dist/server/workspaceExplorerRoutes.js +109 -0
  168. package/dist/server/workspaceExplorerRoutes.js.map +1 -0
  169. package/dist/server/workspaces/effectivePathAccess.js +27 -0
  170. package/dist/server/workspaces/effectivePathAccess.js.map +1 -0
  171. package/dist/server/workspaces/fileContentService.js +181 -0
  172. package/dist/server/workspaces/fileContentService.js.map +1 -0
  173. package/dist/server/workspaces/fileSuggestions.js +512 -0
  174. package/dist/server/workspaces/fileSuggestions.js.map +1 -0
  175. package/dist/server/workspaces/fileTreeService.js +27 -0
  176. package/dist/server/workspaces/fileTreeService.js.map +1 -0
  177. package/dist/server/workspaces/gitWorktreeDiscovery.js +34 -0
  178. package/dist/server/workspaces/gitWorktreeDiscovery.js.map +1 -0
  179. package/dist/server/workspaces/imagePreviewService.js +40 -0
  180. package/dist/server/workspaces/imagePreviewService.js.map +1 -0
  181. package/dist/server/workspaces/pathAccessPolicy.js +87 -0
  182. package/dist/server/workspaces/pathAccessPolicy.js.map +1 -0
  183. package/dist/server/workspaces/pathSafety.js +54 -0
  184. package/dist/server/workspaces/pathSafety.js.map +1 -0
  185. package/dist/server/workspaces/projectOmpWebConfig.js +56 -0
  186. package/dist/server/workspaces/projectOmpWebConfig.js.map +1 -0
  187. package/dist/server/workspaces/workspaceContext.js +8 -0
  188. package/dist/server/workspaces/workspaceContext.js.map +1 -0
  189. package/dist/server/workspaces/workspaceDeletionRoutes.js +111 -0
  190. package/dist/server/workspaces/workspaceDeletionRoutes.js.map +1 -0
  191. package/dist/server/workspaces/workspaceService.js +39 -0
  192. package/dist/server/workspaces/workspaceService.js.map +1 -0
  193. package/dist/sessiond/config.js +9 -0
  194. package/dist/sessiond/config.js.map +1 -0
  195. package/dist/sessiond/sessionDaemonClient.js +65 -0
  196. package/dist/sessiond/sessionDaemonClient.js.map +1 -0
  197. package/dist/shared/activity.js +26 -0
  198. package/dist/shared/activity.js.map +1 -0
  199. package/dist/shared/apiTypes.d.ts +688 -0
  200. package/dist/shared/apiTypes.js +11 -0
  201. package/dist/shared/apiTypes.js.map +1 -0
  202. package/dist/shared/capabilities.js +52 -0
  203. package/dist/shared/capabilities.js.map +1 -0
  204. package/dist/shared/federatedRoutes.js +79 -0
  205. package/dist/shared/federatedRoutes.js.map +1 -0
  206. package/dist/shared/machinePluginIds.js +41 -0
  207. package/dist/shared/machinePluginIds.js.map +1 -0
  208. package/dist/shared/ompWebStatusParsing.js +100 -0
  209. package/dist/shared/ompWebStatusParsing.js.map +1 -0
  210. package/dist/shared/pluginIds.js +5 -0
  211. package/dist/shared/pluginIds.js.map +1 -0
  212. package/dist/shared/promptAttachments.js +90 -0
  213. package/dist/shared/promptAttachments.js.map +1 -0
  214. package/dist/shared/thinkingLevels.d.ts +19 -0
  215. package/dist/shared/thinkingLevels.js +24 -0
  216. package/dist/shared/thinkingLevels.js.map +1 -0
  217. package/dist/shared/utils.js +4 -0
  218. package/dist/shared/utils.js.map +1 -0
  219. package/dist/shared/workspaceDeletion.js +12 -0
  220. package/dist/shared/workspaceDeletion.js.map +1 -0
  221. package/dist/shared/workspaceFiles.js +3 -0
  222. package/dist/shared/workspaceFiles.js.map +1 -0
  223. package/docs/assets/favicon.svg +11 -0
  224. package/docs/assets/omp-web-banner.png +0 -0
  225. package/docs/assets/omp-web-desktop.png +0 -0
  226. package/docs/assets/omp-web-mobile.png +0 -0
  227. package/docs/assets/omp-web-tablet.png +0 -0
  228. package/docs/config.md +208 -0
  229. package/docs/plugins.md +916 -0
  230. package/extensions/omp-web.ts +133 -0
  231. package/install.sh +5 -0
  232. package/package.json +141 -0
  233. package/plugin-api/unstable.d.ts +1 -0
  234. package/plugin-api.d.ts +1 -0
@@ -0,0 +1,688 @@
1
+ export type MachineKind = "local" | "remote";
2
+ export type MachineStatus = "unknown" | "online" | "offline" | "error";
3
+ export declare const OMP_WEB_CAPABILITIES: {
4
+ readonly sessionsDeleteArchived: "sessions.deleteArchived";
5
+ readonly sessionsBulkMutations: "sessions.bulkMutations";
6
+ readonly sessionsCleanup: "sessions.cleanup";
7
+ readonly sessionsReload: "sessions.reload";
8
+ readonly promptAttachments: "prompt.attachments";
9
+ readonly workspaceFileSuggestions: "workspace.fileSuggestions";
10
+ readonly piPackagesManage: "piPackages.manage";
11
+ readonly selectedMachineSettings: "settings.selectedMachine";
12
+ };
13
+ export type OmpWebCapability = typeof OMP_WEB_CAPABILITIES[keyof typeof OMP_WEB_CAPABILITIES];
14
+ export interface Machine {
15
+ id: string;
16
+ name: string;
17
+ kind: MachineKind;
18
+ baseUrl?: string;
19
+ createdAt: string;
20
+ updatedAt: string;
21
+ status?: MachineStatus;
22
+ statusMessage?: string;
23
+ }
24
+ export interface MachineHealth {
25
+ machineId: string;
26
+ ok: boolean;
27
+ checkedAt: string;
28
+ status?: MachineStatus;
29
+ web?: OmpWebComponentStatus;
30
+ sessiond?: OmpWebComponentStatus;
31
+ error?: string;
32
+ }
33
+ export interface MachineRuntime {
34
+ machineId: string;
35
+ ok: boolean;
36
+ checkedAt: string;
37
+ packageName?: string;
38
+ generatedAt?: string;
39
+ components?: OmpWebRuntimeResponse["components"];
40
+ capabilities?: OmpWebCapability[];
41
+ error?: string;
42
+ }
43
+ export type OmpWebShortcutConfig = Record<string, string | null>;
44
+ export type OmpWebPluginSettings = Record<string, unknown>;
45
+ export type OmpWebPluginConfigMap = Record<string, OmpWebPluginConfig>;
46
+ export interface OmpWebPluginConfig {
47
+ enabled?: boolean;
48
+ settings?: OmpWebPluginSettings;
49
+ [key: string]: unknown;
50
+ }
51
+ export interface OmpWebPathAccessConfig {
52
+ allowedPaths?: string[];
53
+ }
54
+ export interface OmpWebUploadsConfig {
55
+ defaultFolder?: string;
56
+ }
57
+ export interface OmpWebConfigValues {
58
+ host?: string;
59
+ port?: number;
60
+ allowedHosts?: string[] | true;
61
+ shortcuts?: OmpWebShortcutConfig;
62
+ plugins?: OmpWebPluginConfigMap;
63
+ /** External filesystem roots PI WEB may expose outside a workspace. */
64
+ pathAccess?: OmpWebPathAccessConfig;
65
+ /** Workspace-relative defaults for manual file uploads. */
66
+ uploads?: OmpWebUploadsConfig;
67
+ /** Maximum accepted HTTP request body size in bytes (uploads/attachments). */
68
+ maxUploadBytes?: number;
69
+ /** When true, LLMs can start new sessions via the spawn_session tool. */
70
+ spawnSessions?: boolean;
71
+ /**
72
+ * Beta: when true, LLMs can start tracked child sessions via the
73
+ * spawn_subsession / list_subsessions / check_subsession / read_subsession
74
+ * tools. Off by default
75
+ * while the capability stabilizes. Requires spawnSessions to be enabled.
76
+ */
77
+ subsessions?: boolean;
78
+ }
79
+ export type OmpWebPluginScope = "bundled" | "local" | "user" | "project";
80
+ export interface OmpWebPluginInfo {
81
+ id: string;
82
+ module: string;
83
+ source: string;
84
+ scope: OmpWebPluginScope;
85
+ machineSpecific: boolean;
86
+ enabled: boolean;
87
+ }
88
+ export interface OmpWebPluginsResponse {
89
+ plugins: OmpWebPluginInfo[];
90
+ }
91
+ export type PiPackageScope = "user" | "project";
92
+ export interface PiPackageInfo {
93
+ source: string;
94
+ scope: PiPackageScope;
95
+ filtered: boolean;
96
+ installedPath?: string;
97
+ }
98
+ export interface PiPackagesResponse {
99
+ packages: PiPackageInfo[];
100
+ }
101
+ export interface PiPackageInstallRequest {
102
+ source: string;
103
+ }
104
+ export interface PiPackageRemoveRequest {
105
+ source: string;
106
+ /** Optional known scope from a listed package; not an install-location picker. */
107
+ scope?: PiPackageScope;
108
+ }
109
+ export interface PiPackageUpdateRequest {
110
+ /** Omit to update all configured Pi packages. */
111
+ source?: string;
112
+ }
113
+ export type PiPackageMutationAction = "install" | "remove" | "update";
114
+ export interface PiPackageMutationResponse extends PiPackagesResponse {
115
+ action: PiPackageMutationAction;
116
+ source?: string;
117
+ scope?: PiPackageScope;
118
+ removed?: boolean;
119
+ }
120
+ export interface OmpWebConfigEnvOverrides {
121
+ host: boolean;
122
+ port: boolean;
123
+ allowedHosts: boolean;
124
+ spawnSessions: boolean;
125
+ subsessions: boolean;
126
+ }
127
+ export interface OmpWebConfigResponse {
128
+ path: string;
129
+ exists: boolean;
130
+ config: OmpWebConfigValues;
131
+ effectiveConfig: OmpWebConfigValues;
132
+ envOverrides: OmpWebConfigEnvOverrides;
133
+ }
134
+ export interface Project {
135
+ id: string;
136
+ name: string;
137
+ path: string;
138
+ createdAt: string;
139
+ }
140
+ export interface WorkspaceEffectiveConfig {
141
+ uploads?: OmpWebUploadsConfig;
142
+ }
143
+ export interface Workspace {
144
+ id: string;
145
+ projectId: string;
146
+ path: string;
147
+ label: string;
148
+ branch?: string;
149
+ isMain: boolean;
150
+ isGitRepo: boolean;
151
+ isGitWorktree: boolean;
152
+ /** Workspace-effective project/global settings needed by workspace UI features. */
153
+ effectiveConfig?: WorkspaceEffectiveConfig;
154
+ }
155
+ export interface SessionRef {
156
+ id: string;
157
+ cwd: string;
158
+ }
159
+ export interface SessionInfo extends SessionRef {
160
+ path: string;
161
+ /** True when the server has verified a backing session file exists; false when known transient. */
162
+ persisted?: boolean;
163
+ name?: string;
164
+ created: string;
165
+ modified: string;
166
+ messageCount: number;
167
+ firstMessage: string;
168
+ parentSessionPath?: string;
169
+ archived?: boolean;
170
+ archivedAt?: string;
171
+ }
172
+ export interface ArchiveSessionsResponse {
173
+ archived: true;
174
+ sessionIds?: string[];
175
+ archivedCount?: number;
176
+ skippedAlreadyArchivedCount?: number;
177
+ }
178
+ export interface SessionBulkMutationRef {
179
+ id: string;
180
+ cwd?: string;
181
+ }
182
+ export interface SessionBulkMutationRequest {
183
+ sessions: SessionBulkMutationRef[];
184
+ }
185
+ export interface SessionBulkFailure {
186
+ sessionId: string;
187
+ error: string;
188
+ }
189
+ export interface SessionBulkArchiveResponse {
190
+ archived: true;
191
+ archivedSessionIds: string[];
192
+ failures: SessionBulkFailure[];
193
+ generatedAt: string;
194
+ }
195
+ export interface SessionBulkDeleteArchivedResponse {
196
+ deleted: true;
197
+ deletedSessionIds: string[];
198
+ failures: SessionBulkFailure[];
199
+ generatedAt: string;
200
+ }
201
+ export interface SessionCleanupRequest {
202
+ /** Archive non-archived sessions whose modified time is older than this many days. Omit/null to disable. */
203
+ archiveIdleDays?: number | null;
204
+ /** Permanently delete archived sessions whose archivedAt time is older than this many days. Omit/null to disable. */
205
+ deleteArchivedDays?: number | null;
206
+ /** Stored cwd paths selected from a preview. Omit/null to include all discovered project/workspace paths. */
207
+ projectCwds?: string[] | null;
208
+ }
209
+ export interface SessionCleanupThresholds {
210
+ archiveIdleDays?: number;
211
+ deleteArchivedDays?: number;
212
+ }
213
+ export interface SessionCleanupProjectSummary {
214
+ cwd: string;
215
+ archiveCount: number;
216
+ deleteCount: number;
217
+ }
218
+ export interface SessionCleanupTotals {
219
+ archiveCount: number;
220
+ deleteCount: number;
221
+ }
222
+ export interface SessionCleanupPreviewResponse {
223
+ generatedAt: string;
224
+ thresholds: SessionCleanupThresholds;
225
+ projects: SessionCleanupProjectSummary[];
226
+ totals: SessionCleanupTotals;
227
+ skippedBusySessionIds?: string[];
228
+ }
229
+ export interface SessionCleanupExecuteResponse extends SessionCleanupPreviewResponse {
230
+ archivedSessionIds: string[];
231
+ deletedSessionIds: string[];
232
+ }
233
+ export interface SessionActivity {
234
+ sessionId: string;
235
+ phase: "active" | "idle" | "error";
236
+ label: string;
237
+ detail?: string;
238
+ at: string;
239
+ }
240
+ export interface QueuedSessionMessage {
241
+ kind: "steer" | "followUp";
242
+ text: string;
243
+ }
244
+ /**
245
+ * A pi-native image attachment carried with a prompt. The wire format mirrors
246
+ * pi's own `ImageContent` shape (`{ type: "image", data, mimeType }`) so these
247
+ * attachments are compatible with native multimodal delivery after validation.
248
+ */
249
+ export interface PromptImageAttachment {
250
+ kind: "image";
251
+ /** Supported image MIME type (image/png, image/jpeg, image/gif, or image/webp). */
252
+ mimeType: string;
253
+ /** Base64-encoded binary payload (no data: URL prefix). */
254
+ data: string;
255
+ /** Optional original filename, used for previews and folder-mode filenames. */
256
+ name?: string;
257
+ }
258
+ /** A general file attachment that must be saved into the workspace before use. */
259
+ export interface PromptFileAttachment {
260
+ kind: "file";
261
+ /** Non-empty IANA MIME type (for example "application/pdf"). */
262
+ mimeType: string;
263
+ /** Base64-encoded binary payload (no data: URL prefix). Empty for zero-byte files. */
264
+ data: string;
265
+ /** Optional original filename, used for previews and folder-mode filenames. */
266
+ name?: string;
267
+ }
268
+ export type PromptAttachment = PromptImageAttachment | PromptFileAttachment;
269
+ /**
270
+ * How prompt attachments should be delivered to the session.
271
+ * - "inline": send the binary to pi as native image content (multimodal input).
272
+ * - "folder": save the file into the workspace and reference it from the prompt
273
+ * text so the agent reads it with its own tools.
274
+ */
275
+ export type PromptAttachmentDelivery = "inline" | "folder";
276
+ export interface SavedPromptAttachment {
277
+ /** Workspace-relative path the attachment was written to. */
278
+ path: string;
279
+ mimeType: string;
280
+ size: number;
281
+ }
282
+ export interface SessionModel {
283
+ provider?: string;
284
+ id?: string;
285
+ name?: string;
286
+ contextWindow?: number;
287
+ reasoning?: unknown;
288
+ }
289
+ export type { ThinkingLevel } from "./thinkingLevels.js";
290
+ export type AuthType = "oauth" | "api_key";
291
+ export type AuthStatusSource = "stored" | "runtime" | "environment" | "fallback" | "models_json_key" | "models_json_command";
292
+ export interface AuthProviderStatus {
293
+ configured: boolean;
294
+ source?: AuthStatusSource;
295
+ label?: string;
296
+ }
297
+ export interface AuthProviderOption {
298
+ id: string;
299
+ name: string;
300
+ authType: AuthType;
301
+ status: AuthProviderStatus;
302
+ }
303
+ export interface AuthProvidersResponse {
304
+ providers: AuthProviderOption[];
305
+ }
306
+ export interface OAuthFlowState {
307
+ flowId: string;
308
+ providerId: string;
309
+ providerName: string;
310
+ status: "running" | "complete" | "error" | "cancelled";
311
+ auth?: {
312
+ url: string;
313
+ instructions?: string;
314
+ };
315
+ prompt?: {
316
+ requestId: string;
317
+ message: string;
318
+ placeholder?: string;
319
+ allowEmpty?: boolean;
320
+ kind: "prompt" | "manual";
321
+ };
322
+ select?: {
323
+ requestId: string;
324
+ message: string;
325
+ options: CommandOption[];
326
+ };
327
+ progress: string[];
328
+ error?: string;
329
+ }
330
+ export interface ModelSelectionResponse {
331
+ models: SessionModel[];
332
+ }
333
+ export interface ThinkingLevelsResponse {
334
+ levels: string[];
335
+ }
336
+ export interface SessionStatus {
337
+ sessionId: string;
338
+ /** True when the server has verified a backing session file exists; false when known transient. */
339
+ persisted?: boolean;
340
+ model?: SessionModel;
341
+ thinkingLevel?: string;
342
+ isStreaming: boolean;
343
+ isCompacting: boolean;
344
+ isBashRunning: boolean;
345
+ pendingMessageCount: number;
346
+ queuedMessages: QueuedSessionMessage[];
347
+ messageCount?: number;
348
+ tokens: {
349
+ input: number;
350
+ output: number;
351
+ cacheRead: number;
352
+ cacheWrite: number;
353
+ total: number;
354
+ };
355
+ cost: number;
356
+ contextUsage?: {
357
+ tokens: number | null;
358
+ contextWindow: number;
359
+ percent: number | null;
360
+ };
361
+ }
362
+ export interface WorkspaceActivity {
363
+ cwd: string;
364
+ hasSessionActivity: boolean;
365
+ hasTerminalActivity: boolean;
366
+ updatedAt: string;
367
+ }
368
+ export interface WorkspaceActivityResponse {
369
+ workspaces: WorkspaceActivity[];
370
+ generatedAt: string;
371
+ }
372
+ export interface SlashCommand {
373
+ name: string;
374
+ description?: string;
375
+ source: "extension" | "prompt" | "skill" | "builtin";
376
+ }
377
+ export interface FileSuggestion {
378
+ path: string;
379
+ kind: "tracked" | "untracked" | "other";
380
+ }
381
+ export interface FileTreeEntry {
382
+ name: string;
383
+ path: string;
384
+ type: "file" | "directory" | "symlink";
385
+ size?: number;
386
+ modifiedAt?: string;
387
+ }
388
+ export interface FileTreeResponse {
389
+ path: string;
390
+ entries: FileTreeEntry[];
391
+ scannedAt: string;
392
+ truncated: boolean;
393
+ }
394
+ export type FileContentMediaType = "image";
395
+ export interface FileContentResponse {
396
+ path: string;
397
+ language?: string;
398
+ mediaType?: FileContentMediaType;
399
+ mimeType?: string;
400
+ encoding: "utf8";
401
+ size: number;
402
+ modifiedAt: string;
403
+ content: string;
404
+ truncated: boolean;
405
+ binary: boolean;
406
+ }
407
+ export interface WriteWorkspaceFileOptions {
408
+ createDirs?: boolean;
409
+ overwrite?: boolean;
410
+ }
411
+ export interface WriteWorkspaceFileResponse {
412
+ path: string;
413
+ size: number;
414
+ modifiedAt: string;
415
+ created: boolean;
416
+ }
417
+ export interface DeleteWorkspaceFileResponse {
418
+ path: string;
419
+ existed: boolean;
420
+ }
421
+ export interface MoveWorkspaceFileOptions {
422
+ createDirs?: boolean;
423
+ overwrite?: boolean;
424
+ }
425
+ export interface MoveWorkspaceFileResponse {
426
+ fromPath: string;
427
+ toPath: string;
428
+ size: number;
429
+ modifiedAt: string;
430
+ }
431
+ export type GitFileState = "unmodified" | "modified" | "added" | "deleted" | "renamed" | "copied" | "untracked" | "ignored" | "conflicted";
432
+ export interface GitStatusFile {
433
+ path: string;
434
+ oldPath?: string;
435
+ index: GitFileState;
436
+ workingTree: GitFileState;
437
+ }
438
+ export interface GitStatusResponse {
439
+ isGitRepo: boolean;
440
+ hash: string;
441
+ branch?: string;
442
+ upstream?: string;
443
+ ahead?: number;
444
+ behind?: number;
445
+ files: GitStatusFile[];
446
+ }
447
+ export interface GitDiffResponse {
448
+ path?: string;
449
+ staged: boolean;
450
+ hash: string;
451
+ diff: string;
452
+ truncated: boolean;
453
+ }
454
+ export interface TerminalInfo {
455
+ id: string;
456
+ cwd: string;
457
+ name: string;
458
+ createdAt: string;
459
+ exited: boolean;
460
+ exitCode?: number;
461
+ commandRunId?: string;
462
+ }
463
+ export type TerminalCommandRunStatus = "queued" | "running" | "succeeded" | "failed";
464
+ export interface TerminalCommandRun {
465
+ id: string;
466
+ origin: string;
467
+ projectId: string;
468
+ workspaceId: string;
469
+ terminalId: string;
470
+ title: string;
471
+ command: string;
472
+ status: TerminalCommandRunStatus;
473
+ exitCode?: number;
474
+ createdAt: string;
475
+ startedAt?: string;
476
+ completedAt?: string;
477
+ metadata: Record<string, string>;
478
+ }
479
+ export interface RunTerminalCommandInput {
480
+ workspace: Workspace;
481
+ title: string;
482
+ command: string;
483
+ metadata?: Record<string, string>;
484
+ open?: boolean;
485
+ }
486
+ export interface TerminalCommandRunHandle {
487
+ run: TerminalCommandRun;
488
+ completed: Promise<TerminalCommandRun>;
489
+ }
490
+ export interface TerminalCommandRunFilter {
491
+ projectId?: string;
492
+ workspaceId?: string;
493
+ terminalId?: string;
494
+ statuses?: TerminalCommandRunStatus[];
495
+ metadata?: Record<string, string>;
496
+ }
497
+ export type OmpWebServiceComponent = "web" | "sessiond";
498
+ export type OmpWebStatusSeverity = "info" | "warning" | "error";
499
+ export type OmpWebInstallationKind = "pi-package" | "npm-global" | "local" | "docker" | "unknown";
500
+ export type OmpWebDockerMode = "runtime" | "dev";
501
+ export interface OmpWebInstallationInfo {
502
+ kind: OmpWebInstallationKind;
503
+ path?: string;
504
+ source?: string;
505
+ scope?: "user" | "project";
506
+ npmRoot?: string;
507
+ dockerMode?: OmpWebDockerMode;
508
+ }
509
+ export interface OmpWebComponentStatus {
510
+ component: OmpWebServiceComponent;
511
+ label: string;
512
+ runtimeVersion?: string;
513
+ installedVersion?: string;
514
+ stale: boolean;
515
+ available: boolean;
516
+ installation?: OmpWebInstallationInfo;
517
+ error?: string;
518
+ }
519
+ export interface OmpWebRuntimeComponent {
520
+ component: OmpWebServiceComponent;
521
+ label: string;
522
+ runtimeVersion?: string;
523
+ available: boolean;
524
+ capabilities: OmpWebCapability[];
525
+ error?: string;
526
+ }
527
+ export interface OmpWebReleaseStatus {
528
+ packageName: string;
529
+ latestVersion?: string;
530
+ updateAvailable: boolean;
531
+ checkedAt?: string;
532
+ skipped?: boolean;
533
+ error?: string;
534
+ }
535
+ export interface OmpWebStatusMessage {
536
+ id: string;
537
+ severity: OmpWebStatusSeverity;
538
+ title: string;
539
+ body: string;
540
+ command?: string;
541
+ }
542
+ export interface OmpWebVersionResponse {
543
+ packageName: string;
544
+ generatedAt: string;
545
+ components: {
546
+ web: OmpWebComponentStatus;
547
+ sessiond: OmpWebComponentStatus;
548
+ };
549
+ }
550
+ export interface OmpWebRuntimeResponse {
551
+ packageName: string;
552
+ generatedAt: string;
553
+ components: {
554
+ web: OmpWebRuntimeComponent;
555
+ sessiond: OmpWebRuntimeComponent;
556
+ };
557
+ capabilities: OmpWebCapability[];
558
+ }
559
+ export interface OmpWebStatusResponse extends OmpWebVersionResponse {
560
+ release: OmpWebReleaseStatus;
561
+ commands: {
562
+ update?: string;
563
+ restart?: string;
564
+ restartWeb?: string;
565
+ restartSessiond?: string;
566
+ status?: string;
567
+ };
568
+ messages: OmpWebStatusMessage[];
569
+ }
570
+ export type TerminalUiEvent = {
571
+ type: "terminal.created";
572
+ terminal: TerminalInfo;
573
+ } | {
574
+ type: "terminal.exited";
575
+ terminal: TerminalInfo;
576
+ } | {
577
+ type: "terminal.closed";
578
+ terminalId: string;
579
+ cwd: string;
580
+ };
581
+ export interface WorkspaceActivityUiEvent {
582
+ type: "workspace.activity";
583
+ activity: WorkspaceActivity;
584
+ }
585
+ export interface CommandOption {
586
+ value: string;
587
+ label: string;
588
+ description?: string;
589
+ }
590
+ export interface MessagePage {
591
+ messages: unknown[];
592
+ start: number;
593
+ total: number;
594
+ }
595
+ export type CommandResult = {
596
+ type: "done";
597
+ message?: string;
598
+ session?: SessionInfo;
599
+ promptDraft?: string;
600
+ } | {
601
+ type: "select";
602
+ requestId: string;
603
+ title: string;
604
+ options: CommandOption[];
605
+ } | {
606
+ type: "unsupported";
607
+ message: string;
608
+ };
609
+ export type SessionUiEvent = {
610
+ type: "message.append";
611
+ message: unknown;
612
+ } | {
613
+ type: "assistant.delta";
614
+ text: string;
615
+ } | {
616
+ type: "assistant.thinking.delta";
617
+ text: string;
618
+ } | {
619
+ type: "tool.start";
620
+ toolName: string;
621
+ toolCallId: string;
622
+ summary: string;
623
+ args?: unknown;
624
+ } | {
625
+ type: "tool.update";
626
+ toolName: string;
627
+ toolCallId: string;
628
+ text: string;
629
+ content?: unknown;
630
+ details?: unknown;
631
+ } | {
632
+ type: "tool.end";
633
+ toolName: string;
634
+ toolCallId: string;
635
+ text: string;
636
+ isError: boolean;
637
+ content?: unknown;
638
+ details?: unknown;
639
+ } | {
640
+ type: "shell.start";
641
+ command: string;
642
+ excludeFromContext?: boolean;
643
+ } | {
644
+ type: "shell.chunk";
645
+ chunk: string;
646
+ } | {
647
+ type: "shell.end";
648
+ output?: string;
649
+ exitCode?: number | null;
650
+ cancelled?: boolean;
651
+ truncated?: boolean;
652
+ fullOutputPath?: string;
653
+ isError?: boolean;
654
+ } | {
655
+ type: "agent.start";
656
+ } | {
657
+ type: "agent.end";
658
+ } | {
659
+ type: "message.end";
660
+ message?: unknown;
661
+ } | {
662
+ type: "status.update";
663
+ status: SessionStatus;
664
+ } | {
665
+ type: "activity.update";
666
+ activity: SessionActivity;
667
+ } | {
668
+ type: "command.output";
669
+ level: "info" | "success" | "error";
670
+ message: string;
671
+ } | {
672
+ type: "session.error";
673
+ message: string;
674
+ } | {
675
+ type: "session.name";
676
+ sessionId: string;
677
+ name?: string;
678
+ } | {
679
+ type: "session.created";
680
+ session: SessionInfo;
681
+ } | {
682
+ type: "pi.event";
683
+ eventType: string;
684
+ };
685
+ export type GlobalSessionEvent = Extract<SessionUiEvent, {
686
+ type: "status.update" | "activity.update" | "session.name" | "session.created";
687
+ }>;
688
+ export type RealtimeEvent = GlobalSessionEvent | TerminalUiEvent | WorkspaceActivityUiEvent;
@@ -0,0 +1,11 @@
1
+ export const OMP_WEB_CAPABILITIES = {
2
+ sessionsDeleteArchived: "sessions.deleteArchived",
3
+ sessionsBulkMutations: "sessions.bulkMutations",
4
+ sessionsCleanup: "sessions.cleanup",
5
+ sessionsReload: "sessions.reload",
6
+ promptAttachments: "prompt.attachments",
7
+ workspaceFileSuggestions: "workspace.fileSuggestions",
8
+ piPackagesManage: "piPackages.manage",
9
+ selectedMachineSettings: "settings.selectedMachine",
10
+ };
11
+ //# sourceMappingURL=apiTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiTypes.js","sourceRoot":"","sources":["../../src/shared/apiTypes.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,sBAAsB,EAAE,yBAAyB;IACjD,qBAAqB,EAAE,wBAAwB;IAC/C,eAAe,EAAE,kBAAkB;IACnC,cAAc,EAAE,iBAAiB;IACjC,iBAAiB,EAAE,oBAAoB;IACvC,wBAAwB,EAAE,2BAA2B;IACrD,gBAAgB,EAAE,mBAAmB;IACrC,uBAAuB,EAAE,0BAA0B;CAC3C,CAAC"}