@tutti-os/agent-gui 0.0.94 → 0.0.96

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 (163) hide show
  1. package/README.md +86 -38
  2. package/dist/AgentGUI-DWdvUV4x.d.ts +1038 -0
  3. package/dist/agent-conversation/index.d.ts +6 -7
  4. package/dist/agent-conversation/index.js +15 -10
  5. package/dist/agent-conversation/index.js.map +1 -1
  6. package/dist/agent-env/index.d.ts +10 -36
  7. package/dist/agent-env/index.js +2 -57
  8. package/dist/agent-env/index.js.map +1 -1
  9. package/dist/agent-gui.d.ts +21 -0
  10. package/dist/agent-gui.js +39 -0
  11. package/dist/agent-message-center/index.d.ts +156 -124
  12. package/dist/agent-message-center/index.js +1656 -1463
  13. package/dist/agent-message-center/index.js.map +1 -1
  14. package/dist/{agentConversationVM-Cl4G0Lln.d.ts → agentConversationVM-C335TR6S.d.ts} +112 -7
  15. package/dist/agentFileMentionContracts-58IjMU-u.d.ts +108 -0
  16. package/dist/{agentGuiNodeTypes-CAioPXK9.d.ts → agentGuiNodeTypes-B9X4aWfv.d.ts} +123 -163
  17. package/dist/agentPlanPromptDispatch-C7cCMjve.d.ts +37 -0
  18. package/dist/agents.d.ts +13 -0
  19. package/dist/agents.js +13 -0
  20. package/dist/app/renderer/agentactivity.css +276 -83
  21. package/dist/app/renderer/assets/icons/agent-vinyls/tutti-vinyl.png +0 -0
  22. package/dist/app/renderer/assets/icons/open-link-lined.svg +4 -0
  23. package/dist/{chunk-7BUYFVRI.js → chunk-2HJEOO7W.js} +2931 -2946
  24. package/dist/chunk-2HJEOO7W.js.map +1 -0
  25. package/dist/{chunk-E5FOXRUM.js → chunk-3XXBDYAI.js} +293 -258
  26. package/dist/chunk-3XXBDYAI.js.map +1 -0
  27. package/dist/{chunk-ZUW4B5AT.js → chunk-3Y3F7CS5.js} +21 -32
  28. package/dist/chunk-3Y3F7CS5.js.map +1 -0
  29. package/dist/{chunk-SCLLP5DO.js → chunk-4PQPJ5OY.js} +50 -155
  30. package/dist/chunk-4PQPJ5OY.js.map +1 -0
  31. package/dist/chunk-4YG7YK7S.js +23 -0
  32. package/dist/chunk-4YG7YK7S.js.map +1 -0
  33. package/dist/chunk-5X7YDOC6.js +42 -0
  34. package/dist/chunk-5X7YDOC6.js.map +1 -0
  35. package/dist/{chunk-R2EWECUP.js → chunk-7BXWPI4F.js} +17 -2
  36. package/dist/{chunk-R2EWECUP.js.map → chunk-7BXWPI4F.js.map} +1 -1
  37. package/dist/chunk-AGT7MUTV.js +491 -0
  38. package/dist/chunk-AGT7MUTV.js.map +1 -0
  39. package/dist/chunk-C35SNDVZ.js +96 -0
  40. package/dist/chunk-C35SNDVZ.js.map +1 -0
  41. package/dist/{chunk-5FE7M42A.js → chunk-E4HQUTM3.js} +2 -2
  42. package/dist/chunk-FGLQZ6I4.js +9 -0
  43. package/dist/chunk-FGLQZ6I4.js.map +1 -0
  44. package/dist/chunk-H5F3QSCF.js +25 -0
  45. package/dist/chunk-H5F3QSCF.js.map +1 -0
  46. package/dist/chunk-H6IQ63DQ.js +14 -0
  47. package/dist/chunk-H6IQ63DQ.js.map +1 -0
  48. package/dist/{chunk-45FF4DQU.js → chunk-IYEXLOUE.js} +22 -27
  49. package/dist/chunk-IYEXLOUE.js.map +1 -0
  50. package/dist/{chunk-P72YLKC6.js → chunk-JKIZA7EJ.js} +3573 -3755
  51. package/dist/chunk-JKIZA7EJ.js.map +1 -0
  52. package/dist/chunk-KJQERFKX.js +259 -0
  53. package/dist/chunk-KJQERFKX.js.map +1 -0
  54. package/dist/{chunk-XW4CVBUH.js → chunk-L3GMMGRS.js} +25 -16
  55. package/dist/chunk-L3GMMGRS.js.map +1 -0
  56. package/dist/chunk-MASXZENX.js +231 -0
  57. package/dist/chunk-MASXZENX.js.map +1 -0
  58. package/dist/{chunk-BXVPOGYK.js → chunk-O3Q5SIJH.js} +505 -504
  59. package/dist/chunk-O3Q5SIJH.js.map +1 -0
  60. package/dist/{chunk-554VG7ZW.js → chunk-QVBF5BN5.js} +2 -2
  61. package/dist/{chunk-AWAIUYG4.js → chunk-RE4AXS27.js} +532 -565
  62. package/dist/chunk-RE4AXS27.js.map +1 -0
  63. package/dist/{chunk-7LMJXF4R.js → chunk-TVIGLNNI.js} +20 -16
  64. package/dist/chunk-TVIGLNNI.js.map +1 -0
  65. package/dist/{chunk-XDV4ZRVK.js → chunk-UGVI47X6.js} +98 -37
  66. package/dist/chunk-UGVI47X6.js.map +1 -0
  67. package/dist/{chunk-GAPTLVII.js → chunk-UHBCM6RO.js} +1 -1
  68. package/dist/chunk-UHBCM6RO.js.map +1 -0
  69. package/dist/{chunk-UBDPV34P.js → chunk-W6WAGPMD.js} +1385 -1305
  70. package/dist/chunk-W6WAGPMD.js.map +1 -0
  71. package/dist/chunk-WKSFPJHZ.js +33054 -0
  72. package/dist/chunk-WKSFPJHZ.js.map +1 -0
  73. package/dist/{chunk-IGY4ASUF.js → chunk-WMNS4MAQ.js} +1288 -1696
  74. package/dist/chunk-WMNS4MAQ.js.map +1 -0
  75. package/dist/{chunk-MATIJPGF.js → chunk-XPFHJMZP.js} +541 -401
  76. package/dist/chunk-XPFHJMZP.js.map +1 -0
  77. package/dist/chunk-YMXYBG7U.js +12 -0
  78. package/dist/chunk-YMXYBG7U.js.map +1 -0
  79. package/dist/context-mention-palette/index.d.ts +3 -2
  80. package/dist/context-mention-palette/index.js +17 -12
  81. package/dist/custom-mention.d.ts +42 -0
  82. package/dist/custom-mention.js +17 -0
  83. package/dist/custom-mention.js.map +1 -0
  84. package/dist/dock-icons.d.ts +4 -0
  85. package/dist/dock-icons.js +11 -0
  86. package/dist/dock-icons.js.map +1 -0
  87. package/dist/i18n/index.d.ts +880 -841
  88. package/dist/i18n/index.js +2 -2
  89. package/dist/index.d.ts +56 -1063
  90. package/dist/index.js +78 -35532
  91. package/dist/index.js.map +1 -1
  92. package/dist/mention-search.d.ts +226 -0
  93. package/dist/mention-search.js +29 -0
  94. package/dist/mention-search.js.map +1 -0
  95. package/dist/open-link-lined-JWEKUKME.svg +4 -0
  96. package/dist/pastedTextKinds-D-XuInaS.d.ts +4 -0
  97. package/dist/provider-icons.d.ts +6 -0
  98. package/dist/provider-icons.js +12 -0
  99. package/dist/provider-icons.js.map +1 -0
  100. package/dist/provider-identity.d.ts +9 -0
  101. package/dist/provider-identity.js +21 -0
  102. package/dist/provider-identity.js.map +1 -0
  103. package/dist/runtime-BBNdWgDU.d.ts +10 -0
  104. package/dist/startup-shell.d.ts +8 -0
  105. package/dist/startup-shell.js +184 -0
  106. package/dist/startup-shell.js.map +1 -0
  107. package/dist/{types-PLFZ8SBX.d.ts → types-CnT8rNUI.d.ts} +43 -87
  108. package/dist/workbench/contribution.d.ts +34 -41
  109. package/dist/workbench/contribution.js +10 -6
  110. package/dist/workbench/index.d.ts +5 -4
  111. package/dist/workbench/index.js +27 -25
  112. package/dist/workbench/launch.d.ts +4 -7
  113. package/dist/workbench/launch.js +4 -3
  114. package/dist/workbench/providerCatalog.d.ts +2 -2
  115. package/dist/workbench/providerCatalog.js +2 -1
  116. package/dist/workbench/sessionTitle.d.ts +11 -14
  117. package/dist/workbench/sessionTitle.js +6 -7
  118. package/dist/workbench/state.d.ts +1 -1
  119. package/dist/workbench/state.js +3 -2
  120. package/dist/workbench/types.d.ts +2 -4
  121. package/dist/workbench/types.js +1 -1
  122. package/dist/workspace-agent-generated-files.d.ts +20 -2
  123. package/dist/workspace-agent-generated-files.js +6 -5
  124. package/dist/workspaceAgentActivityListTypes-C7gPWYiA.d.ts +71 -0
  125. package/package.json +70 -26
  126. package/dist/AgentMentionSearchController-DD_WOred.d.ts +0 -241
  127. package/dist/AgentMessageMarkdown-DeYPURtF.d.ts +0 -7
  128. package/dist/chunk-45FF4DQU.js.map +0 -1
  129. package/dist/chunk-4HP6V2YA.js +0 -207
  130. package/dist/chunk-4HP6V2YA.js.map +0 -1
  131. package/dist/chunk-7BUYFVRI.js.map +0 -1
  132. package/dist/chunk-7LMJXF4R.js.map +0 -1
  133. package/dist/chunk-AWAIUYG4.js.map +0 -1
  134. package/dist/chunk-BXVPOGYK.js.map +0 -1
  135. package/dist/chunk-E5FOXRUM.js.map +0 -1
  136. package/dist/chunk-GAPTLVII.js.map +0 -1
  137. package/dist/chunk-IBIMGLCD.js +0 -66
  138. package/dist/chunk-IBIMGLCD.js.map +0 -1
  139. package/dist/chunk-IGY4ASUF.js.map +0 -1
  140. package/dist/chunk-LR4FA5X6.js +0 -368
  141. package/dist/chunk-LR4FA5X6.js.map +0 -1
  142. package/dist/chunk-MATIJPGF.js.map +0 -1
  143. package/dist/chunk-MKHDRIGN.js +0 -71
  144. package/dist/chunk-MKHDRIGN.js.map +0 -1
  145. package/dist/chunk-P72YLKC6.js.map +0 -1
  146. package/dist/chunk-SCLLP5DO.js.map +0 -1
  147. package/dist/chunk-UBDPV34P.js.map +0 -1
  148. package/dist/chunk-VAKFNNKT.js +0 -410
  149. package/dist/chunk-VAKFNNKT.js.map +0 -1
  150. package/dist/chunk-XDV4ZRVK.js.map +0 -1
  151. package/dist/chunk-XW4CVBUH.js.map +0 -1
  152. package/dist/chunk-ZUW4B5AT.js.map +0 -1
  153. package/dist/plan-decision-ops.d.ts +0 -70
  154. package/dist/plan-decision-ops.js +0 -19
  155. package/dist/queued-prompt-runtime.d.ts +0 -115
  156. package/dist/queued-prompt-runtime.js +0 -9
  157. package/dist/uiSettings-BQS9r2eo.d.ts +0 -6
  158. package/dist/workspaceAgentActivityListViewModel-BzV-cf0D.d.ts +0 -340
  159. package/dist/workspaceLinkActions-DS9LWqzI.d.ts +0 -74
  160. /package/dist/{plan-decision-ops.js.map → agent-gui.js.map} +0 -0
  161. /package/dist/{queued-prompt-runtime.js.map → agents.js.map} +0 -0
  162. /package/dist/{chunk-5FE7M42A.js.map → chunk-E4HQUTM3.js.map} +0 -0
  163. /package/dist/{chunk-554VG7ZW.js.map → chunk-QVBF5BN5.js.map} +0 -0
@@ -1,8 +1,9 @@
1
- import { AgentActivityUsage } from '@tutti-os/agent-activity-core';
2
- import { k as AgentHostAgentSessionCommand, l as AgentHostAgentSessionComposerSettings, n as AgentHostAgentSessionReasoningEffort, o as AgentHostAgentSessionSpeed, m as AgentHostAgentSessionPermissionConfig, p as AgentHostAgentSessionState, h as AgentGUIProvider, s as AgentPromptContentBlock, g as AgentGUINodeData, e as AgentGUIAgentTarget, i as AgentGUIProviderReadinessGate } from './types-PLFZ8SBX.js';
3
- import { A as AgentHostBatchUserInfoInput, a as AgentHostBatchUserInfoResult, b as AgentHostDeleteWorkspaceAgentSessionInput, k as AgentHostWorkspaceAgentSessionSummaryInput, j as AgentHostWorkspaceAgentSessionSummary, e as AgentHostWorkspaceAgentListInput, l as AgentHostWorkspaceAgentSnapshot, i as AgentHostWorkspaceAgentSessionMessagesInput, h as AgentHostWorkspaceAgentSessionMessages, p as WorkspaceAgentActivitySyncState } from './workspaceAgentActivityListViewModel-BzV-cf0D.js';
4
- import { A as AgentApprovalItemVM, a as AgentAskUserQuestionVM, b as AgentConversationPromptVM, c as AgentConversationVM, W as WorkspaceAgentSessionDetailViewModel } from './agentConversationVM-Cl4G0Lln.js';
1
+ import { AgentActivitySession, AgentActivitySlashCommandPolicy, AgentActivityUsage, CanonicalAgentSession } from '@tutti-os/agent-activity-core';
2
+ import { t as AgentHostAgentSessionCommand, u as AgentHostAgentSessionComposerSettings, w as AgentHostAgentSessionReasoningEffort, x as AgentHostAgentSessionSpeed, v as AgentHostAgentSessionPermissionConfig, n as AgentGUIProvider, z as AgentPromptContentBlock, m as AgentGUINodeData, h as AgentGUIAgentTarget, p as AgentGUIProviderRailMode, q as AgentGUIProviderReadinessGate } from './types-CnT8rNUI.js';
3
+ import { A as AgentApprovalItemVM, a as AgentAskUserQuestionVM, b as AgentConversationPromptVM, c as AgentConversationVM, d as WorkspaceAgentSessionDetailViewModel } from './agentConversationVM-C335TR6S.js';
4
+ import { A as AgentHostBatchUserInfoInput, a as AgentHostBatchUserInfoResult } from './workspaceAgentActivityListTypes-C7gPWYiA.js';
5
5
  import { WorkspaceUserProjectService } from '@tutti-os/workspace-user-project/contracts';
6
+ import { A as AGENT_PASTED_TEXT_BLOCK_KIND } from './pastedTextKinds-D-XuInaS.js';
6
7
 
7
8
  declare const APP_ERROR_CODES: readonly ["common.invalid_input", "common.approved_path_required", "common.unavailable", "common.unexpected", "session.not_found", "control_surface.unauthorized", "workspace.select_directory_failed", "workspace.select_files_failed", "workspace.ensure_directory_failed", "workspace.import_files_failed", "workspace.read_file_failed", "workspace.write_file_failed", "workspace.export_file_failed", "workspace.copy_path_failed", "workspace.host_unsupported", "workspace.runtime_artifact_unavailable", "runtime.guest_agent_lane_unavailable", "workspace.room_full", "workspace.room_delete_forbidden", "workspace.room_delete_not_found", "filesystem.create_directory_failed", "filesystem.read_file_bytes_failed", "filesystem.read_file_text_failed", "filesystem.write_file_text_failed", "filesystem.copy_entry_failed", "filesystem.move_entry_failed", "filesystem.rename_entry_failed", "filesystem.delete_entry_failed", "filesystem.read_directory_failed", "filesystem.stat_failed", "terminal.spawn_failed", "terminal.write_failed", "terminal.resize_failed", "terminal.close_failed", "terminal.attach_failed", "terminal.detach_failed", "terminal.snapshot_failed", "agent.list_models_failed", "agent.launch_failed", "agent.read_last_message_failed", "agent.provider_session_not_found", "agent.resume_session_not_local", "agent.resume_session_resolve_failed", "agent.settings_require_new_session", "task.suggest_title_failed", "persistence.unavailable", "persistence.quota_exceeded", "persistence.payload_too_large", "persistence.io_failed", "persistence.invalid_state", "persistence.invalid_node_id", "update.get_state_failed", "update.configure_failed", "update.check_failed", "update.download_failed", "update.install_failed", "PACKAGE_DOWNLOAD_INTERRUPTED", "PACKAGE_DOWNLOAD_HTTP_STATUS", "PACKAGE_DOWNLOAD_INVALID", "PACKAGE_DOWNLOAD_DISK_ERROR"];
8
9
  type AppErrorCode = (typeof APP_ERROR_CODES)[number];
@@ -112,35 +113,9 @@ interface ReadWorkspaceFileResult {
112
113
  bytes: Uint8Array;
113
114
  }
114
115
 
115
- type AgentSessionCommand = AgentHostAgentSessionCommand;
116
- type AgentSessionComposerSettings = AgentHostAgentSessionComposerSettings;
117
- type AgentSessionPermissionConfig = AgentHostAgentSessionPermissionConfig;
118
- type AgentSessionReasoningEffort = AgentHostAgentSessionReasoningEffort;
119
- type AgentSessionSpeed = AgentHostAgentSessionSpeed;
120
- type AgentSessionState = AgentHostAgentSessionState;
121
-
122
- type AgentGUIConversationFilter = {
123
- kind: "all";
124
- } | {
125
- kind: "agentTarget";
126
- agentTargetId: string;
127
- };
128
-
129
- type AgentGUIResolvedProvider = AgentGUIProvider | "unknown";
130
- type AgentGUIConversationTitleFallback = "generic-agent" | null;
131
-
132
116
  type AgentHostAsyncResult<T = any> = Promise<T>;
133
117
  type AgentHostRecord = Record<string, unknown>;
134
118
  type AgentHostUnsubscribe = () => void;
135
- type AgentHostWorkspaceScopedInput<T extends {
136
- workspaceId?: string | null;
137
- }> = Omit<T, "workspaceId"> & {
138
- workspaceId: string;
139
- };
140
- type AgentHostWorkspaceAgentsListInput = AgentHostWorkspaceScopedInput<AgentHostWorkspaceAgentListInput>;
141
- type AgentHostWorkspaceAgentSessionMessagesRuntimeInput = AgentHostWorkspaceScopedInput<AgentHostWorkspaceAgentSessionMessagesInput>;
142
- type AgentHostWorkspaceAgentSessionSummaryRuntimeInput = AgentHostWorkspaceScopedInput<AgentHostWorkspaceAgentSessionSummaryInput>;
143
- type AgentHostDeleteWorkspaceAgentSessionRuntimeInput = AgentHostWorkspaceScopedInput<AgentHostDeleteWorkspaceAgentSessionInput>;
144
119
  type AgentHostClipboardApi = {
145
120
  writeImage?: (input: {
146
121
  data: string;
@@ -172,7 +147,6 @@ type AgentHostMetaApi = AgentHostRecord & {
172
147
  };
173
148
  type AgentHostEnvironmentApi = AgentHostRecord & {
174
149
  getBaseUrl?: () => AgentHostAsyncResult<string>;
175
- warmupOpenclawGateway?: (input?: unknown) => AgentHostAsyncResult<unknown>;
176
150
  };
177
151
  type AgentHostPersistenceApi = AgentHostRecord & {
178
152
  readWorkspaceAgentReadState: (input: ReadWorkspaceAgentReadStateInput) => AgentHostAsyncResult<WorkspaceAgentReadStateSnapshot>;
@@ -260,7 +234,6 @@ interface AgentHostInputApi {
260
234
  userProjects?: AgentHostUserProjectsApi;
261
235
  workspace: AgentHostWorkspaceApi;
262
236
  workspaceAgentProbes?: AgentHostWorkspaceAgentProbesApi;
263
- workspaceAgents?: AgentHostWorkspaceAgentsApi;
264
237
  }
265
238
  type AgentHostApi = AgentHostInputApi;
266
239
  type AgentHostAccountApi = AgentHostRecord & {
@@ -331,67 +304,13 @@ type AgentHostUserProjectsApi = AgentHostRecord & {
331
304
  };
332
305
  type AgentHostAgentSessionsApi = AgentHostRecord & {
333
306
  activate: (input: any) => AgentHostAsyncResult<any>;
334
- /**
335
- * @deprecated AgentGUI production writes must use AgentActivityRuntime.cancelSession.
336
- */
337
- cancel: (input: any) => AgentHostAsyncResult<any>;
338
- /**
339
- * @deprecated AgentGUI production writes must use AgentActivityRuntime.sendInput.
340
- */
341
- exec: (input: any) => AgentHostAsyncResult<any>;
342
307
  getComposerOptions?: (input: any) => AgentHostAsyncResult<any>;
343
308
  getState: (input: any) => AgentHostAsyncResult<any>;
344
309
  onEvent?: (listener: (event: any) => void) => AgentHostUnsubscribe;
345
- /**
346
- * @deprecated AgentGUI production writes must use AgentActivityRuntime.setSessionPinned.
347
- */
348
- pinSession?: (input: any) => AgentHostAsyncResult<any>;
349
- /**
350
- * @deprecated AgentGUI production sync must use AgentActivityRuntime.ensureSessionSynchronized.
351
- */
352
- releaseEventStream?: (input?: any) => AgentHostAsyncResult;
353
- /**
354
- * @deprecated AgentGUI production sync must use AgentActivityRuntime.ensureSessionSynchronized.
355
- */
356
- retainEventStream?: (input: any) => AgentHostAsyncResult;
357
- /**
358
- * @deprecated AgentGUI production writes must use AgentActivityRuntime.submitInteractive.
359
- */
360
- submitInteractive: (input: any) => AgentHostAsyncResult<any>;
361
- /**
362
- * @deprecated AgentGUI production UI must derive events from AgentActivityRuntime snapshots.
363
- */
364
- trackSettingsProjectChange?: (input: {
365
- action: "clear" | "create_new" | "select_existing";
366
- agentSessionId: string;
367
- provider?: string | null;
368
- }) => AgentHostAsyncResult<void>;
369
310
  subscribeEvents: (input: any, listener: (event: any) => void) => AgentHostUnsubscribe;
370
311
  unactivate: (input: any) => AgentHostAsyncResult<any>;
371
312
  updateSettings: (input: any) => AgentHostAsyncResult<any>;
372
313
  };
373
- /**
374
- * @deprecated Legacy host DTO projection. AgentGUI production reads and writes
375
- * must use AgentActivityRuntime and AgentActivity* models.
376
- */
377
- type AgentHostWorkspaceAgentsApi = AgentHostRecord & {
378
- /**
379
- * @deprecated Use AgentActivityRuntime.deleteSession.
380
- */
381
- deleteSession: (input: AgentHostDeleteWorkspaceAgentSessionRuntimeInput) => AgentHostAsyncResult<any>;
382
- /**
383
- * @deprecated Derive summaries from AgentActivitySnapshot/session messages.
384
- */
385
- getSessionSummary: (input: AgentHostWorkspaceAgentSessionSummaryRuntimeInput) => AgentHostAsyncResult<AgentHostWorkspaceAgentSessionSummary>;
386
- /**
387
- * @deprecated Use AgentActivityRuntime.load/getSnapshot.
388
- */
389
- list: (input: string | AgentHostWorkspaceAgentsListInput) => AgentHostAsyncResult<AgentHostWorkspaceAgentSnapshot>;
390
- /**
391
- * @deprecated Use AgentActivityRuntime.listSessionMessages.
392
- */
393
- listSessionMessages: (input: AgentHostWorkspaceAgentSessionMessagesRuntimeInput) => AgentHostAsyncResult<AgentHostWorkspaceAgentSessionMessages>;
394
- };
395
314
  interface AgentHostRuntimeApi {
396
315
  account?: AgentHostAccountApi;
397
316
  clipboard: AgentHostClipboardApi;
@@ -407,6 +326,21 @@ interface AgentHostRuntimeApi {
407
326
  workspaceAgentProbes?: AgentHostWorkspaceAgentProbesApi;
408
327
  }
409
328
 
329
+ interface AgentMessageMarkdownWorkspaceAppIcon {
330
+ appId: string;
331
+ iconUrl: string | null;
332
+ workspaceId?: string | null;
333
+ }
334
+
335
+ type AgentSessionCommand = AgentHostAgentSessionCommand;
336
+ type AgentSessionComposerSettings = AgentHostAgentSessionComposerSettings;
337
+ type AgentSessionPermissionConfig = AgentHostAgentSessionPermissionConfig;
338
+ type AgentSessionReasoningEffort = AgentHostAgentSessionReasoningEffort;
339
+ type AgentSessionSpeed = AgentHostAgentSessionSpeed;
340
+
341
+ type AgentGUIResolvedProvider = AgentGUIProvider | "unknown";
342
+ type AgentGUIConversationTitleFallback = "generic-agent" | null;
343
+
410
344
  interface AgentGUIConversationProjectSummary {
411
345
  id: string;
412
346
  path: string;
@@ -418,6 +352,13 @@ interface AgentGUIConversationProjectSummary {
418
352
  }
419
353
  type AgentGUIConversationUserProject = Pick<AgentHostUserProject, "id" | "path" | "label" | "sectionKey" | "createdAtUnixMs" | "updatedAtUnixMs" | "lastUsedAtUnixMs">;
420
354
 
355
+ type AgentGUIConversationFilter = {
356
+ kind: "all";
357
+ } | {
358
+ kind: "agentTarget";
359
+ agentTargetId: string;
360
+ };
361
+
421
362
  interface AgentGUIConversationSummary {
422
363
  id: string;
423
364
  userId?: string;
@@ -435,8 +376,9 @@ interface AgentGUIConversationSummary {
435
376
  updatedAtUnixMs: number;
436
377
  hasUnreadCompletion?: boolean;
437
378
  unreadCompletionKey?: string | null;
379
+ projectionSource?: "pending_activation";
438
380
  isImported?: boolean;
439
- syncState?: WorkspaceAgentActivitySyncState;
381
+ activeTurn?: AgentActivitySession["activeTurn"];
440
382
  }
441
383
  type AgentGUIConversationStatus = "working" | "waiting" | "ready" | "completed" | "failed" | "canceled";
442
384
  type AgentGUIApprovalRequest = AgentApprovalItemVM;
@@ -454,6 +396,14 @@ type AgentGUIInteractivePrompt = AgentGUIApprovalRequest | {
454
396
  kind: "plan-implementation";
455
397
  }>;
456
398
 
399
+ interface AgentSlashCommandCapability {
400
+ aliases?: readonly string[];
401
+ capability: "browserUse" | "computerUse";
402
+ kind: "capability";
403
+ name: string;
404
+ }
405
+ type AgentSlashCommandPolicy = AgentActivitySlashCommandPolicy;
406
+
457
407
  interface AgentGUISessionChrome {
458
408
  auth: {
459
409
  message: string;
@@ -470,11 +420,7 @@ interface AgentGUISessionChrome {
470
420
  followupAction: "continue-in-new-conversation";
471
421
  canRetry?: never;
472
422
  } | null;
473
- rawState: AgentSessionState | null;
474
- }
475
- interface OpenclawGatewayViewState {
476
- status: "starting" | "ready" | "failed";
477
- error: string | null;
423
+ rawState: CanonicalAgentSession | null;
478
424
  }
479
425
  interface AgentGUIInlineNotice {
480
426
  id: string;
@@ -483,13 +429,10 @@ interface AgentGUIInlineNotice {
483
429
  autoDismissMs: number | null;
484
430
  }
485
431
  interface AgentGUIProjectConversationDeleteTarget {
486
- conversationCount: number | null;
432
+ conversationCount: number;
487
433
  label: string;
488
434
  path: string;
489
435
  }
490
- interface AgentGUIConversationSectionDeleteTarget {
491
- conversationCount: number | null;
492
- }
493
436
  interface AgentGUIComposerSettingOption {
494
437
  value: string;
495
438
  label: string;
@@ -499,13 +442,20 @@ interface AgentGUIComposerSettingOption {
499
442
  interface AgentGUIProviderSkillOption {
500
443
  name: string;
501
444
  trigger: string;
445
+ /** Daemon-issued invocation contract; never infer this from provider id. */
446
+ invocation?: "promptItem" | "textTrigger";
502
447
  sourceKind: "project" | "personal" | "bundled" | "plugin" | "system" | "tutti-injected" | "connector";
503
448
  description?: string;
504
449
  pluginName?: string;
505
450
  path?: string;
506
451
  kind?: "skill" | "connector";
507
452
  }
508
- interface AgentComposerDraftImage {
453
+ interface AgentComposerTextBlock {
454
+ type: "text";
455
+ text: string;
456
+ }
457
+ interface AgentComposerImageBlock {
458
+ type: "image";
509
459
  id: string;
510
460
  name: string;
511
461
  mimeType: "image/png" | "image/jpeg" | "image/webp";
@@ -517,7 +467,8 @@ interface AgentComposerDraftImage {
517
467
  uploading?: boolean;
518
468
  uploadError?: string;
519
469
  }
520
- interface AgentComposerDraftFile {
470
+ interface AgentComposerFileBlockBase {
471
+ type: "file";
521
472
  id: string;
522
473
  name: string;
523
474
  mimeType?: string;
@@ -528,36 +479,23 @@ interface AgentComposerDraftFile {
528
479
  uploading?: boolean;
529
480
  uploadError?: string;
530
481
  }
531
- interface AgentComposerDraftLargeText {
532
- id: string;
533
- name: string;
534
- text: string;
535
- sizeBytes?: number;
536
- path?: string;
537
- uploading?: boolean;
538
- uploadError?: string;
482
+ interface AgentComposerRegularFileBlock extends AgentComposerFileBlockBase {
483
+ kind: "file";
484
+ text?: never;
539
485
  }
540
- /**
541
- * Marks a prompt `file` content block as a pasted-text attachment (as opposed
542
- * to a user-attached file). Carried on the block `kind` so the round-trip
543
- * (submit → queue → edit-restore) can rebuild a large-text chip instead of a
544
- * regular file chip, and so the codex-style "read this file" instruction is
545
- * materialized only for these blocks at send time.
546
- */
547
- declare const AGENT_PASTED_TEXT_BLOCK_KIND = "pasted-text";
548
- /**
549
- * Provider id of the custom mention kind used to render a pasted-text chip in
550
- * the conversation flow. The mention href (`mention://pasted-text/...`) carries
551
- * the landed archive path + size so the host can render the chip and open a
552
- * preview on click. Registered via registerAgentCustomMentionKind.
553
- */
554
- declare const AGENT_PASTED_TEXT_MENTION_KIND = "pasted-text";
555
- interface AgentComposerDraft {
556
- prompt: string;
557
- images: AgentComposerDraftImage[];
558
- files?: AgentComposerDraftFile[];
559
- largeTexts?: AgentComposerDraftLargeText[];
486
+ interface AgentComposerPastedTextBlock extends AgentComposerFileBlockBase {
487
+ kind: typeof AGENT_PASTED_TEXT_BLOCK_KIND;
488
+ /** Empty only when a queued pasted-text attachment is restored by path. */
489
+ text: string;
560
490
  }
491
+ type AgentComposerFileBlock = AgentComposerRegularFileBlock | AgentComposerPastedTextBlock;
492
+ type AgentComposerAttachmentBlock = AgentComposerImageBlock | AgentComposerFileBlock;
493
+ type AgentComposerDraftContent = [
494
+ AgentComposerTextBlock,
495
+ ...AgentComposerAttachmentBlock[]
496
+ ];
497
+ /** One atomic, unsent composer message. */
498
+ type AgentComposerDraft = AgentComposerDraftContent;
561
499
  interface AgentGUIComposerSettingsVM {
562
500
  sessionSettings: AgentSessionComposerSettings | null;
563
501
  draftSettings: {
@@ -577,7 +515,11 @@ interface AgentGUIComposerSettingsVM {
577
515
  planExclusiveWithPermissionMode?: boolean;
578
516
  supportsBrowser?: boolean;
579
517
  supportsComputerUse?: boolean;
518
+ permissionModeChangeDuringTurn?: boolean;
519
+ slashCommandPolicy?: AgentSlashCommandPolicy | null;
580
520
  isSettingsLoading: boolean;
521
+ /** Initial slash command and capability catalog request is in flight. */
522
+ isCapabilityOptionsLoading?: boolean;
581
523
  isModelOptionsLoading?: boolean;
582
524
  modelUnavailable: boolean;
583
525
  reasoningUnavailable: boolean;
@@ -591,7 +533,7 @@ interface AgentGUIComposerSettingsVM {
591
533
  selectedProjectPath?: string | null;
592
534
  projectLocked?: boolean;
593
535
  projectPathIsRemote?: boolean;
594
- modelListCollapsedToLatest?: boolean;
536
+ collapseModelOptionsToLatest?: boolean;
595
537
  availableModels: AgentGUIComposerSettingOption[];
596
538
  availableReasoningEfforts: AgentGUIComposerSettingOption[];
597
539
  availableSpeeds: AgentGUIComposerSettingOption[];
@@ -604,71 +546,89 @@ interface AgentGUIQueuedPromptVM {
604
546
  displayPrompt?: string;
605
547
  createdAtUnixMs: number;
606
548
  }
607
- interface AgentGUINodeViewModel {
549
+ type AgentGUIQueueStatus = "active" | "paused_by_user";
550
+ interface AgentGUIShellViewModel {
608
551
  workspaceId: string;
609
552
  workspacePath?: string | null;
610
553
  currentUserId?: string | null;
611
554
  data: AgentGUINodeData;
555
+ }
556
+ interface AgentGUIRailViewModel {
612
557
  selectedAgentTarget: AgentGUIAgentTarget;
613
558
  agentTargets: readonly AgentGUIAgentTarget[];
614
- handoffAgentTargets: readonly AgentGUIAgentTarget[];
615
559
  agentTargetsLoading: boolean;
560
+ /** How the rail composes its list — "exact" renders targets verbatim with no static injection. */
561
+ providerRailMode: AgentGUIProviderRailMode;
562
+ /** Providers gated by the host (feature-gated) — rail renders coming-soon placeholders. */
563
+ comingSoonProviders: readonly AgentGUIProvider[];
616
564
  conversationFilter: AgentGUIConversationFilter;
617
565
  conversations: AgentGUIConversationSummary[];
618
566
  userProjects: AgentGUIConversationUserProject[];
619
567
  activeConversation: AgentGUIConversationSummary | null;
620
568
  activeConversationId: string | null;
621
- availableCommands: AgentSessionCommand[];
622
- availableSkills: AgentGUIProviderSkillOption[];
623
- draftPrompt: string;
624
- draftContent: AgentComposerDraft;
625
569
  isLoadingConversations: boolean;
570
+ listError: string | null;
571
+ }
572
+ interface AgentGUIDetailViewModel {
573
+ availability: "loading" | "ready" | "not_found" | "error";
626
574
  isLoadingMessages: boolean;
627
575
  isLoadingOlderMessages: boolean;
628
576
  hasOlderMessages: boolean;
577
+ usage: AgentActivityUsage | null;
578
+ backgroundAgentCount: number;
579
+ hasSentUserMessage: boolean;
580
+ avoidGroupingEdits: boolean;
581
+ conversation?: AgentConversationVM | null;
582
+ conversationDetail: WorkspaceAgentSessionDetailViewModel | null;
583
+ }
584
+ interface AgentGUIComposerViewModel {
585
+ handoffAgentTargets: readonly AgentGUIAgentTarget[];
586
+ availableCommands: AgentSessionCommand[];
587
+ availableSkills: AgentGUIProviderSkillOption[];
588
+ draftPrompt: string;
589
+ draftContent: AgentComposerDraft;
629
590
  isCreatingConversation: boolean;
630
591
  isSubmitting: boolean;
631
592
  isInterrupting: boolean;
632
593
  isCancelPending: boolean;
633
- isRespondingApproval: boolean;
634
- canCancel: boolean;
635
- canSubmitInteractive: boolean;
636
- canGoalControl: boolean;
637
- canUploadAttachment: boolean;
638
594
  promptImagesSupported: boolean;
639
595
  compactSupported: boolean | null;
640
- /**
641
- * Provider goal supports a real paused state (codex thread goals). Claude
642
- * Code's goal has none — the banner then omits pause/resume controls.
643
- */
596
+ /** Provider goal exposes a real paused state and pause/resume controls. */
644
597
  goalPauseSupported: boolean;
645
- usage: AgentActivityUsage | null;
646
- backgroundAgentCount: number;
647
- /** Codex plan turn finished: offer the TUI-equivalent implement prompt. */
648
- listError: string | null;
649
- isDeletingConversation: boolean;
650
- isDeletingProjectConversations: boolean;
651
- pendingDeleteConversation: AgentGUIConversationSummary | null;
652
- pendingDeleteProjectConversations: AgentGUIProjectConversationDeleteTarget | null;
653
- pendingDeleteConversations: AgentGUIConversationSectionDeleteTarget | null;
654
- pendingApproval: AgentGUIApprovalRequest | null;
655
- pendingInteractivePrompt: AgentGUIInteractivePrompt | null;
656
- activeLiveState: "inactive" | "activating" | "active" | "failed";
657
- activationError: string | null;
658
- openclawGateway: OpenclawGatewayViewState | null;
659
- activeConversationBusy: boolean;
660
598
  canSubmit: boolean;
661
599
  composerSettings: AgentGUIComposerSettingsVM;
662
- queuedPrompts: readonly AgentGUIQueuedPromptVM[];
600
+ queuedPrompts: AgentGUIQueuedPromptVM[];
601
+ queueStatus: AgentGUIQueueStatus;
663
602
  drainingQueuedPromptId: string | null;
664
603
  canQueueWhileBusy: boolean;
665
- hasSentUserMessage: boolean;
666
- avoidGroupingEdits: boolean;
667
- conversation?: AgentConversationVM | null;
668
- conversationDetail: WorkspaceAgentSessionDetailViewModel | null;
604
+ }
605
+ interface AgentGUIInteractionViewModel {
606
+ isRespondingApproval: boolean;
607
+ pendingApproval: AgentGUIApprovalRequest | null;
608
+ pendingInteractivePrompt: AgentGUIInteractivePrompt | null;
669
609
  sessionChrome: AgentGUISessionChrome;
670
610
  inlineNotice: AgentGUIInlineNotice | null;
611
+ }
612
+ interface AgentGUIReadinessViewModel {
613
+ activeLiveState: "inactive" | "activating" | "active" | "failed";
614
+ activationError: string | null;
615
+ activeConversationBusy: boolean;
671
616
  providerReadinessGate: AgentGUIProviderReadinessGate | null;
672
617
  }
618
+ interface AgentGUIOperationsViewModel {
619
+ isDeletingConversation: boolean;
620
+ isDeletingProjectConversations: boolean;
621
+ pendingDeleteConversation: AgentGUIConversationSummary | null;
622
+ pendingDeleteProjectConversations: AgentGUIProjectConversationDeleteTarget | null;
623
+ }
624
+ interface AgentGUINodeViewModel {
625
+ shell: AgentGUIShellViewModel;
626
+ rail: AgentGUIRailViewModel;
627
+ detail: AgentGUIDetailViewModel;
628
+ composer: AgentGUIComposerViewModel;
629
+ interaction: AgentGUIInteractionViewModel;
630
+ readiness: AgentGUIReadinessViewModel;
631
+ operations: AgentGUIOperationsViewModel;
632
+ }
673
633
 
674
- export { AGENT_PASTED_TEXT_BLOCK_KIND as A, type PersistWriteResult as P, type ReadWorkspaceAgentReadStateInput as R, type WorkspaceAgentReadStateSnapshot as W, AGENT_PASTED_TEXT_MENTION_KIND as a, type AgentComposerDraft as b, type AgentGUIComposerSettingsVM as c, type AgentGUINodeViewModel as d, type AgentGUIProviderSkillOption as e, type AgentGUIQueuedPromptVM as f, type AgentHostApi as g, type AgentHostApplyWorkspaceGitPatchInput as h, type AgentHostInputApi as i, type AgentHostRuntimeApi as j, type AgentHostSelectFilesInput as k, type AgentProbeProvider as l, type AgentProbeSnapshot as m, type AgentProviderProbeListInput as n, type AgentProviderProbeListResult as o, type AgentSessionCommand as p, type AgentUsageQuota as q, type AgentUsageSnapshot as r, type WriteWorkspaceAgentReadStateInput as s };
634
+ export type { AgentComposerDraft as A, PersistWriteResult as P, ReadWorkspaceAgentReadStateInput as R, WorkspaceAgentReadStateSnapshot as W, AgentGUIComposerSettingsVM as a, AgentGUINodeViewModel as b, AgentGUIProviderSkillOption as c, AgentGUIQueueStatus as d, AgentGUIQueuedPromptVM as e, AgentHostApi as f, AgentHostApplyWorkspaceGitPatchInput as g, AgentHostInputApi as h, AgentHostRuntimeApi as i, AgentHostSelectFilesInput as j, AgentMessageMarkdownWorkspaceAppIcon as k, AgentProbeProvider as l, AgentProbeSnapshot as m, AgentProviderProbeListInput as n, AgentProviderProbeListResult as o, AgentSessionCommand as p, AgentSlashCommandCapability as q, AgentUsageQuota as r, AgentUsageSnapshot as s, WriteWorkspaceAgentReadStateInput as t };
@@ -0,0 +1,37 @@
1
+ import * as _tutti_os_agent_activity_core from '@tutti-os/agent-activity-core';
2
+ import { AgentSessionEngine, AgentSessionEngineState } from '@tutti-os/agent-activity-core';
3
+
4
+ /**
5
+ * Structural surface the binding needs from an engine instance. Matches
6
+ * AgentSessionEngine from @tutti-os/agent-activity-core, but stays structural
7
+ * so focused tests and future engine slices can bind without the full engine.
8
+ *
9
+ * Contract: `subscribe` and `getSnapshot` must be stable, this-free function
10
+ * references for the lifetime of the instance (the engine factory returns
11
+ * closures, satisfying this by construction). A fresh `subscribe` identity per
12
+ * render would force useSyncExternalStore to resubscribe on every render.
13
+ */
14
+ interface EngineStateStore<TState> {
15
+ getSnapshot(): TState;
16
+ subscribe(listener: (state: TState) => void): () => void;
17
+ }
18
+ declare function useEngineSelector<TState, TSelected>(engine: EngineStateStore<TState>, selector: (state: TState) => TSelected, isEqual?: (a: TSelected, b: TSelected) => boolean): TSelected;
19
+
20
+ declare const PLAN_IMPLEMENTATION_PROMPT = "Implement the plan.";
21
+ declare const PLAN_IMPLEMENTATION_ACTION_IMPLEMENT = "implement";
22
+ declare const PLAN_IMPLEMENTATION_ACTION_FEEDBACK = "feedback";
23
+ declare const PLAN_IMPLEMENTATION_ACTION_SKIP = "skip";
24
+
25
+ type AgentPlanPromptAction = typeof PLAN_IMPLEMENTATION_ACTION_IMPLEMENT | typeof PLAN_IMPLEMENTATION_ACTION_FEEDBACK | typeof PLAN_IMPLEMENTATION_ACTION_SKIP;
26
+ declare function selectAgentPlanPromptTurn(state: AgentSessionEngineState, agentSessionId: string, requestId: string): _tutti_os_agent_activity_core.AgentActivityTurn | null;
27
+ declare function dispatchAgentPlanPromptAction(input: {
28
+ action: AgentPlanPromptAction;
29
+ agentSessionId: string;
30
+ engine: AgentSessionEngine;
31
+ feedbackText?: string;
32
+ nowUnixMs?: () => number;
33
+ requestId: string;
34
+ workspaceId: string;
35
+ }): boolean;
36
+
37
+ export { type AgentPlanPromptAction as A, type EngineStateStore as E, PLAN_IMPLEMENTATION_ACTION_IMPLEMENT as P, PLAN_IMPLEMENTATION_PROMPT as a, dispatchAgentPlanPromptAction as d, selectAgentPlanPromptTurn as s, useEngineSelector as u };
@@ -0,0 +1,13 @@
1
+ import { A as AgentGUIAgent, h as AgentGUIAgentTarget } from './types-CnT8rNUI.js';
2
+
3
+ declare function normalizeAgentGUIAgents(agents: readonly AgentGUIAgent[] | null | undefined): AgentGUIAgent[];
4
+ declare function agentGUIAgentIsReady(agent: AgentGUIAgent): boolean;
5
+ declare function resolveAgentGUISelectedDirectoryAgent(input: {
6
+ agents: readonly AgentGUIAgent[];
7
+ agentTargetId?: string | null;
8
+ defaultAgentTargetId?: string | null;
9
+ }): AgentGUIAgent | null;
10
+ /** Package-internal bridge while the carried node is migrated to agent names. */
11
+ declare function projectAgentGUIAgentsToInternalTargets(agents: readonly AgentGUIAgent[]): AgentGUIAgentTarget[];
12
+
13
+ export { agentGUIAgentIsReady, normalizeAgentGUIAgents, projectAgentGUIAgentsToInternalTargets, resolveAgentGUISelectedDirectoryAgent };
package/dist/agents.js ADDED
@@ -0,0 +1,13 @@
1
+ import {
2
+ agentGUIAgentIsReady,
3
+ normalizeAgentGUIAgents,
4
+ projectAgentGUIAgentsToInternalTargets,
5
+ resolveAgentGUISelectedDirectoryAgent
6
+ } from "./chunk-C35SNDVZ.js";
7
+ export {
8
+ agentGUIAgentIsReady,
9
+ normalizeAgentGUIAgents,
10
+ projectAgentGUIAgentsToInternalTargets,
11
+ resolveAgentGUISelectedDirectoryAgent
12
+ };
13
+ //# sourceMappingURL=agents.js.map