@tutti-os/agent-gui 0.0.93 → 0.0.95

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 (164) hide show
  1. package/README.md +48 -32
  2. package/dist/AgentGUI-CwBLYtv-.d.ts +992 -0
  3. package/dist/agent-conversation/index.d.ts +5 -7
  4. package/dist/agent-conversation/index.js +13 -9
  5. package/dist/agent-conversation/index.js.map +1 -1
  6. package/dist/agent-env/index.d.ts +14 -38
  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 +145 -122
  12. package/dist/agent-message-center/index.js +1473 -1398
  13. package/dist/agent-message-center/index.js.map +1 -1
  14. package/dist/{agentConversationVM-CfXN_TQ2.d.ts → agentConversationVM-C335TR6S.d.ts} +112 -7
  15. package/dist/agentFileMentionContracts-Czvz6YMI.d.ts +107 -0
  16. package/dist/{agentGuiNodeTypes-rGaDqxVR.d.ts → agentGuiNodeTypes-DppADPHW.d.ts} +102 -149
  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 +431 -75
  21. package/dist/app/renderer/assets/icons/agent-vinyl-player-chassis.png +0 -0
  22. package/dist/app/renderer/assets/icons/agent-vinyl-tonearm.png +0 -0
  23. package/dist/app/renderer/assets/icons/agent-vinyls/claude-vinyl.png +0 -0
  24. package/dist/app/renderer/assets/icons/agent-vinyls/codex-vinyl.png +0 -0
  25. package/dist/app/renderer/assets/icons/agent-vinyls/cursor-vinyl.png +0 -0
  26. package/dist/app/renderer/assets/icons/agent-vinyls/hermes-vinyl.png +0 -0
  27. package/dist/app/renderer/assets/icons/agent-vinyls/openclaw-vinyl.png +0 -0
  28. package/dist/app/renderer/assets/icons/agent-vinyls/opencode-vinyl.png +0 -0
  29. package/dist/app/renderer/assets/icons/agent-vinyls/tutti-vinyl.png +0 -0
  30. package/dist/app/renderer/assets/icons/open-link-lined.svg +4 -0
  31. package/dist/{chunk-7QHBFRG5.js → chunk-3R2D4E57.js} +3137 -3396
  32. package/dist/chunk-3R2D4E57.js.map +1 -0
  33. package/dist/chunk-4YG7YK7S.js +23 -0
  34. package/dist/chunk-4YG7YK7S.js.map +1 -0
  35. package/dist/chunk-5X7YDOC6.js +42 -0
  36. package/dist/chunk-5X7YDOC6.js.map +1 -0
  37. package/dist/{chunk-IBIMGLCD.js → chunk-7J4K6WKB.js} +1 -1
  38. package/dist/chunk-7J4K6WKB.js.map +1 -0
  39. package/dist/{chunk-KQE5KV2V.js → chunk-7PFDA2HQ.js} +505 -504
  40. package/dist/chunk-7PFDA2HQ.js.map +1 -0
  41. package/dist/{chunk-M2LWH54R.js → chunk-7RDD3EWP.js} +557 -569
  42. package/dist/chunk-7RDD3EWP.js.map +1 -0
  43. package/dist/{chunk-VWXFFSIM.js → chunk-AOS2VWU6.js} +1357 -1301
  44. package/dist/chunk-AOS2VWU6.js.map +1 -0
  45. package/dist/{chunk-3HARXLAZ.js → chunk-BFNJKTDV.js} +295 -255
  46. package/dist/chunk-BFNJKTDV.js.map +1 -0
  47. package/dist/{chunk-U7D7G3UU.js → chunk-BIHBXWK5.js} +2 -2
  48. package/dist/{chunk-XQUUELKF.js → chunk-C5FV4UGI.js} +2921 -2944
  49. package/dist/chunk-C5FV4UGI.js.map +1 -0
  50. package/dist/{chunk-HOSX5C5V.js → chunk-CRO2MV2Y.js} +36 -46
  51. package/dist/chunk-CRO2MV2Y.js.map +1 -0
  52. package/dist/chunk-FGLQZ6I4.js +9 -0
  53. package/dist/chunk-FGLQZ6I4.js.map +1 -0
  54. package/dist/chunk-H6IQ63DQ.js +14 -0
  55. package/dist/chunk-H6IQ63DQ.js.map +1 -0
  56. package/dist/{chunk-4SQNOOJ3.js → chunk-JX2SIXNL.js} +1293 -1702
  57. package/dist/chunk-JX2SIXNL.js.map +1 -0
  58. package/dist/chunk-KAL4XZMA.js +231 -0
  59. package/dist/chunk-KAL4XZMA.js.map +1 -0
  60. package/dist/chunk-KJQERFKX.js +259 -0
  61. package/dist/chunk-KJQERFKX.js.map +1 -0
  62. package/dist/chunk-LQVXBT65.js +491 -0
  63. package/dist/chunk-LQVXBT65.js.map +1 -0
  64. package/dist/{chunk-AOVPGJBC.js → chunk-NITOD7WF.js} +2 -2
  65. package/dist/{chunk-7LMJXF4R.js → chunk-NJAZ7LQM.js} +20 -16
  66. package/dist/chunk-NJAZ7LQM.js.map +1 -0
  67. package/dist/chunk-NX3CZJXW.js +25 -0
  68. package/dist/chunk-NX3CZJXW.js.map +1 -0
  69. package/dist/chunk-O6W72SEP.js +93 -0
  70. package/dist/chunk-O6W72SEP.js.map +1 -0
  71. package/dist/{chunk-PSLAWU25.js → chunk-R2EWECUP.js} +7 -1
  72. package/dist/chunk-R2EWECUP.js.map +1 -0
  73. package/dist/chunk-RY6GIO3K.js +31700 -0
  74. package/dist/chunk-RY6GIO3K.js.map +1 -0
  75. package/dist/{chunk-XDV4ZRVK.js → chunk-UGVI47X6.js} +98 -37
  76. package/dist/chunk-UGVI47X6.js.map +1 -0
  77. package/dist/{chunk-XW4CVBUH.js → chunk-UQJPV6HP.js} +18 -11
  78. package/dist/chunk-UQJPV6HP.js.map +1 -0
  79. package/dist/{chunk-GAPTLVII.js → chunk-VF22EG3F.js} +1 -1
  80. package/dist/{chunk-GAPTLVII.js.map → chunk-VF22EG3F.js.map} +1 -1
  81. package/dist/{chunk-45FF4DQU.js → chunk-WEDMAVX2.js} +22 -24
  82. package/dist/chunk-WEDMAVX2.js.map +1 -0
  83. package/dist/{chunk-SXDLSEHO.js → chunk-XMO45GKA.js} +531 -401
  84. package/dist/chunk-XMO45GKA.js.map +1 -0
  85. package/dist/{chunk-UNO7CEAF.js → chunk-YE25HN6T.js} +6 -9
  86. package/dist/chunk-YE25HN6T.js.map +1 -0
  87. package/dist/context-mention-palette/index.d.ts +3 -2
  88. package/dist/context-mention-palette/index.js +19 -14
  89. package/dist/custom-mention.d.ts +44 -0
  90. package/dist/custom-mention.js +17 -0
  91. package/dist/custom-mention.js.map +1 -0
  92. package/dist/dock-icons.d.ts +6 -0
  93. package/dist/dock-icons.js +11 -0
  94. package/dist/dock-icons.js.map +1 -0
  95. package/dist/i18n/index.d.ts +852 -837
  96. package/dist/i18n/index.js +2 -2
  97. package/dist/index.d.ts +52 -1061
  98. package/dist/index.js +72 -35254
  99. package/dist/index.js.map +1 -1
  100. package/dist/mention-search.d.ts +226 -0
  101. package/dist/mention-search.js +29 -0
  102. package/dist/mention-search.js.map +1 -0
  103. package/dist/open-link-lined-JWEKUKME.svg +4 -0
  104. package/dist/provider-icons.d.ts +6 -0
  105. package/dist/provider-icons.js +12 -0
  106. package/dist/provider-icons.js.map +1 -0
  107. package/dist/provider-identity.d.ts +9 -0
  108. package/dist/provider-identity.js +21 -0
  109. package/dist/provider-identity.js.map +1 -0
  110. package/dist/runtime-BBNdWgDU.d.ts +10 -0
  111. package/dist/{types-PLFZ8SBX.d.ts → types-DX2bxgB8.d.ts} +28 -83
  112. package/dist/workbench/contribution.d.ts +32 -40
  113. package/dist/workbench/contribution.js +10 -6
  114. package/dist/workbench/index.d.ts +6 -2
  115. package/dist/workbench/index.js +24 -20
  116. package/dist/workbench/launch.d.ts +2 -5
  117. package/dist/workbench/launch.js +4 -3
  118. package/dist/workbench/providerCatalog.js +2 -1
  119. package/dist/workbench/sessionTitle.d.ts +4 -3
  120. package/dist/workbench/sessionTitle.js +4 -3
  121. package/dist/workbench/state.d.ts +1 -1
  122. package/dist/workbench/state.js +3 -2
  123. package/dist/workbench/types.d.ts +0 -3
  124. package/dist/workbench/types.js +1 -1
  125. package/dist/workspace-agent-generated-files.d.ts +20 -2
  126. package/dist/workspace-agent-generated-files.js +7 -6
  127. package/dist/workspaceAgentActivityListTypes-C7gPWYiA.d.ts +71 -0
  128. package/package.json +65 -28
  129. package/dist/AgentMentionSearchController-DD_WOred.d.ts +0 -241
  130. package/dist/AgentMessageMarkdown-DeYPURtF.d.ts +0 -7
  131. package/dist/chunk-3HARXLAZ.js.map +0 -1
  132. package/dist/chunk-45FF4DQU.js.map +0 -1
  133. package/dist/chunk-4HP6V2YA.js +0 -207
  134. package/dist/chunk-4HP6V2YA.js.map +0 -1
  135. package/dist/chunk-4SQNOOJ3.js.map +0 -1
  136. package/dist/chunk-7LMJXF4R.js.map +0 -1
  137. package/dist/chunk-7QHBFRG5.js.map +0 -1
  138. package/dist/chunk-HOSX5C5V.js.map +0 -1
  139. package/dist/chunk-IBIMGLCD.js.map +0 -1
  140. package/dist/chunk-KQE5KV2V.js.map +0 -1
  141. package/dist/chunk-LR4FA5X6.js +0 -368
  142. package/dist/chunk-LR4FA5X6.js.map +0 -1
  143. package/dist/chunk-M2LWH54R.js.map +0 -1
  144. package/dist/chunk-MKHDRIGN.js +0 -71
  145. package/dist/chunk-MKHDRIGN.js.map +0 -1
  146. package/dist/chunk-PSLAWU25.js.map +0 -1
  147. package/dist/chunk-SXDLSEHO.js.map +0 -1
  148. package/dist/chunk-UNO7CEAF.js.map +0 -1
  149. package/dist/chunk-VAKFNNKT.js +0 -410
  150. package/dist/chunk-VAKFNNKT.js.map +0 -1
  151. package/dist/chunk-VWXFFSIM.js.map +0 -1
  152. package/dist/chunk-XDV4ZRVK.js.map +0 -1
  153. package/dist/chunk-XQUUELKF.js.map +0 -1
  154. package/dist/chunk-XW4CVBUH.js.map +0 -1
  155. package/dist/plan-decision-ops.d.ts +0 -70
  156. package/dist/plan-decision-ops.js +0 -19
  157. package/dist/queued-prompt-runtime.d.ts +0 -115
  158. package/dist/queued-prompt-runtime.js +0 -9
  159. package/dist/workspaceAgentActivityListViewModel-TXH1VXrk.d.ts +0 -339
  160. package/dist/workspaceLinkActions-DS9LWqzI.d.ts +0 -74
  161. /package/dist/{plan-decision-ops.js.map → agent-gui.js.map} +0 -0
  162. /package/dist/{queued-prompt-runtime.js.map → agents.js.map} +0 -0
  163. /package/dist/{chunk-U7D7G3UU.js.map → chunk-BIHBXWK5.js.map} +0 -0
  164. /package/dist/{chunk-AOVPGJBC.js.map → chunk-NITOD7WF.js.map} +0 -0
package/README.md CHANGED
@@ -5,25 +5,21 @@ UI. It is a UI package, not a host transport or business-core package.
5
5
 
6
6
  Before changing AgentGUI, AgentGuiNode, or the agent conversation module, read
7
7
  [AgentGuiNode Architecture and Troubleshooting](../../../docs/architecture/agent-gui-node.md).
8
- It records the source-of-truth rules, common chains, debugging playbooks, and
9
- the self-evolution loop for durable lessons.
8
+ It defines daemon, workspace-engine, GUI-module, provider, and desktop-host
9
+ ownership.
10
10
 
11
11
  ## Data Source
12
12
 
13
- `AgentActivityRuntime` is the AgentGUI source for agent activity data.
13
+ The injected workspace `AgentSessionEngine`, reached through
14
+ `AgentActivityRuntime`, is AgentGUI's only source for canonical agent activity
15
+ data.
14
16
 
15
17
  Runtime-owned data includes:
16
18
 
17
- - workspace activity snapshots
18
- - session lists
19
- - paged session messages
20
- - retained live session events
21
- - session event subscriptions
22
- - session create, activate, unactivate, input, cancel, interactive submit,
23
- delete, pin, settings update, control-state read, composer-options read, and
24
- get session operations
25
- - provider/session preparation hooks that directly gate activity flow, such as
26
- OpenClaw gateway warmup
19
+ - canonical sessions, turns, interactions, and operation state
20
+ - prompt queue and correlated optimistic intents
21
+ - stable selector projections
22
+ - semantic session, turn, prompt, interaction, settings, and goal commands
27
23
 
28
24
  Runtime-owned capability declarations are optional and default to enabled:
29
25
 
@@ -49,34 +45,29 @@ render-state changes, and caught errors. Set
49
45
  fallback. Production builds stay silent unless the host provides
50
46
  `reportDiagnostic`.
51
47
 
52
- `AgentHostApi` is still accepted for host capabilities that are not agent
53
- activity data:
48
+ Host capabilities remain separate from activity data. `AgentHostApi` is still
49
+ accepted for host capabilities that are not agent activity data:
54
50
 
55
51
  - workspace files and file references
56
52
  - clipboard
57
- - runtime metadata and diagnostics
58
53
  - account/user lookup
59
54
  - user-project selection
60
55
  - local file picking/reading and batch export helpers
61
56
 
62
- Production AgentGUI must receive `agentActivityRuntime` and must not use legacy
63
- Host API methods as an agent data fallback. Compatibility helpers remain only
64
- for projection boundaries, non-desktop legacy hosts, and tests.
57
+ AgentGUI has no host-API activity fallback. A host must inject the runtime and
58
+ the grouped `AgentGUINodeProps` responsibility objects.
65
59
 
66
60
  ## Boundary Rule
67
61
 
68
62
  `AgentActivity*` types from `@tutti-os/agent-activity-core` are the canonical
69
- frontend agent activity model.
70
-
71
- `AgentHostWorkspaceAgent*` DTOs are allowed only in compatibility/projection
72
- code that adapts legacy AgentGUI internals. New production read paths should use
73
- `useAgentActivityRuntime()` or `useOptionalAgentActivityRuntime()` instead of
74
- calling `workspaceAgents.list`, `workspaceAgents.listSessionMessages`,
75
- `agentSessions.retainEventStream`, `agentSessions.subscribeEvents`, or
76
- `agentSessions.getState` directly. Production writes should call runtime methods
77
- instead of `agentSessions.activate`, `agentSessions.unactivate`,
78
- `agentSessions.exec`, `agentSessions.cancel`, `agentSessions.submitInteractive`,
79
- `agentSessions.updateSettings`, or `agentSessions.pinSession`.
63
+ frontend agent activity model. Production reads use exported engine selectors;
64
+ production writes use engine commands. GUI modules must not read entity maps,
65
+ subscribe to daemon streams, or reconstruct session/turn lifecycle from
66
+ messages.
67
+
68
+ Runtime identity is explicit: each consumer resolves the injected engine and
69
+ verifies its `(workspaceId, origin)` identity. Module-global runtime slots and
70
+ hidden origin registries are forbidden.
80
71
 
81
72
  Run this boundary check after changing AgentGUI data flow:
82
73
 
@@ -84,6 +75,13 @@ Run this boundary check after changing AgentGUI data flow:
84
75
  pnpm check:agent-activity-runtime-boundaries
85
76
  ```
86
77
 
78
+ ## Node Contract
79
+
80
+ `AgentGUINodeProps` has eight required top-level responsibilities:
81
+ `identity`, `workspace`, `frame`, `state`, `runtimeRequests`,
82
+ `hostCapabilities`, `hostActions`, and `renderSlots`. Extend the owning object;
83
+ do not restore flat compatibility props.
84
+
87
85
  ## Agent Directory
88
86
 
89
87
  `AgentGUI` requires the host's `/agents` projection through its `agents` prop.
@@ -121,6 +119,10 @@ may share the same `provider` and remain distinct. `provider` is runtime metadat
121
119
  for provider-native execution, composer policy, probes, and capabilities; it
122
120
  must not be used to group, deduplicate, name, icon, or select agents.
123
121
 
122
+ Runnable provider targets are host-supplied. If the target catalog is absent,
123
+ AgentGUI presents an explicit unavailable state; it does not synthesize local
124
+ targets from presentation metadata.
125
+
124
126
  Agent names and primary icons always come from `agents[].name` and
125
127
  `agents[].iconUrl`. `owner.avatarUrl` is rendered separately as an ownership
126
128
  badge. Invalid entries and duplicate `agentTargetId` values are discarded by
@@ -131,6 +133,19 @@ directly. With multiple agents, it shows `All` plus the host-ordered agent rail
131
133
  and empty-home carousel. Hosts may customize the aggregate icon with
132
134
  `allAgentsPresentation.iconUrl`.
133
135
 
136
+ Hosts adapting daemon-owned agent targets must resolve the target's descriptor
137
+ `iconKey` instead of assuming it equals the provider ID. The narrow
138
+ `@tutti-os/agent-gui/provider-icons` subpath exports
139
+ `resolveProviderIconAsset(iconKey, variant)` for that adapter seam. Unknown
140
+ keys return `null`; hosts should render a neutral icon rather than silently
141
+ substituting another provider's icon.
142
+
143
+ Hosts that need provider identity presentation may call
144
+ `resolveAgentGUIProviderIdentity(value)` from the narrow
145
+ `@tutti-os/agent-gui/provider-identity` subpath. Migrated providers resolve from
146
+ the generated descriptor catalog, which is checked against the daemon provider
147
+ registry and OpenAPI provider enums.
148
+
134
149
  Inside AgentGUI, normalized directory entries use the canonical
135
150
  `AgentGUIAgentTarget` / `agentTargets` vocabulary. `provider` is execution
136
151
  metadata, not target identity. Rail tiles, the single-agent empty state, and
@@ -143,8 +158,9 @@ for that asset. The WebGL carousel keeps a local programmatic owner marker when
143
158
  the remote image cannot be decoded or uploaded safely, while DOM avatar
144
159
  surfaces continue using the same shared presentation.
145
160
 
146
- Use `agentsLoading` for directory hydration and `renderAgentsEmpty` for a
147
- host-specific loaded-empty state. Use `renderAgentUnavailableState` or
161
+ Pass the full `agentDirectory` lifecycle snapshot for directory hydration and
162
+ use `renderAgentsEmpty` for a host-specific loaded-empty state. Use
163
+ `renderAgentUnavailableState` or
148
164
  `renderAgentReadinessState` for host-specific availability presentation, and
149
165
  handle install/login/refresh requests through `onAgentAvailabilityAction`.
150
166