@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.
- package/README.md +86 -38
- package/dist/AgentGUI-DWdvUV4x.d.ts +1038 -0
- package/dist/agent-conversation/index.d.ts +6 -7
- package/dist/agent-conversation/index.js +15 -10
- package/dist/agent-conversation/index.js.map +1 -1
- package/dist/agent-env/index.d.ts +10 -36
- package/dist/agent-env/index.js +2 -57
- package/dist/agent-env/index.js.map +1 -1
- package/dist/agent-gui.d.ts +21 -0
- package/dist/agent-gui.js +39 -0
- package/dist/agent-message-center/index.d.ts +156 -124
- package/dist/agent-message-center/index.js +1656 -1463
- package/dist/agent-message-center/index.js.map +1 -1
- package/dist/{agentConversationVM-Cl4G0Lln.d.ts → agentConversationVM-C335TR6S.d.ts} +112 -7
- package/dist/agentFileMentionContracts-58IjMU-u.d.ts +108 -0
- package/dist/{agentGuiNodeTypes-CAioPXK9.d.ts → agentGuiNodeTypes-B9X4aWfv.d.ts} +123 -163
- package/dist/agentPlanPromptDispatch-C7cCMjve.d.ts +37 -0
- package/dist/agents.d.ts +13 -0
- package/dist/agents.js +13 -0
- package/dist/app/renderer/agentactivity.css +276 -83
- package/dist/app/renderer/assets/icons/agent-vinyls/tutti-vinyl.png +0 -0
- package/dist/app/renderer/assets/icons/open-link-lined.svg +4 -0
- package/dist/{chunk-7BUYFVRI.js → chunk-2HJEOO7W.js} +2931 -2946
- package/dist/chunk-2HJEOO7W.js.map +1 -0
- package/dist/{chunk-E5FOXRUM.js → chunk-3XXBDYAI.js} +293 -258
- package/dist/chunk-3XXBDYAI.js.map +1 -0
- package/dist/{chunk-ZUW4B5AT.js → chunk-3Y3F7CS5.js} +21 -32
- package/dist/chunk-3Y3F7CS5.js.map +1 -0
- package/dist/{chunk-SCLLP5DO.js → chunk-4PQPJ5OY.js} +50 -155
- package/dist/chunk-4PQPJ5OY.js.map +1 -0
- package/dist/chunk-4YG7YK7S.js +23 -0
- package/dist/chunk-4YG7YK7S.js.map +1 -0
- package/dist/chunk-5X7YDOC6.js +42 -0
- package/dist/chunk-5X7YDOC6.js.map +1 -0
- package/dist/{chunk-R2EWECUP.js → chunk-7BXWPI4F.js} +17 -2
- package/dist/{chunk-R2EWECUP.js.map → chunk-7BXWPI4F.js.map} +1 -1
- package/dist/chunk-AGT7MUTV.js +491 -0
- package/dist/chunk-AGT7MUTV.js.map +1 -0
- package/dist/chunk-C35SNDVZ.js +96 -0
- package/dist/chunk-C35SNDVZ.js.map +1 -0
- package/dist/{chunk-5FE7M42A.js → chunk-E4HQUTM3.js} +2 -2
- package/dist/chunk-FGLQZ6I4.js +9 -0
- package/dist/chunk-FGLQZ6I4.js.map +1 -0
- package/dist/chunk-H5F3QSCF.js +25 -0
- package/dist/chunk-H5F3QSCF.js.map +1 -0
- package/dist/chunk-H6IQ63DQ.js +14 -0
- package/dist/chunk-H6IQ63DQ.js.map +1 -0
- package/dist/{chunk-45FF4DQU.js → chunk-IYEXLOUE.js} +22 -27
- package/dist/chunk-IYEXLOUE.js.map +1 -0
- package/dist/{chunk-P72YLKC6.js → chunk-JKIZA7EJ.js} +3573 -3755
- package/dist/chunk-JKIZA7EJ.js.map +1 -0
- package/dist/chunk-KJQERFKX.js +259 -0
- package/dist/chunk-KJQERFKX.js.map +1 -0
- package/dist/{chunk-XW4CVBUH.js → chunk-L3GMMGRS.js} +25 -16
- package/dist/chunk-L3GMMGRS.js.map +1 -0
- package/dist/chunk-MASXZENX.js +231 -0
- package/dist/chunk-MASXZENX.js.map +1 -0
- package/dist/{chunk-BXVPOGYK.js → chunk-O3Q5SIJH.js} +505 -504
- package/dist/chunk-O3Q5SIJH.js.map +1 -0
- package/dist/{chunk-554VG7ZW.js → chunk-QVBF5BN5.js} +2 -2
- package/dist/{chunk-AWAIUYG4.js → chunk-RE4AXS27.js} +532 -565
- package/dist/chunk-RE4AXS27.js.map +1 -0
- package/dist/{chunk-7LMJXF4R.js → chunk-TVIGLNNI.js} +20 -16
- package/dist/chunk-TVIGLNNI.js.map +1 -0
- package/dist/{chunk-XDV4ZRVK.js → chunk-UGVI47X6.js} +98 -37
- package/dist/chunk-UGVI47X6.js.map +1 -0
- package/dist/{chunk-GAPTLVII.js → chunk-UHBCM6RO.js} +1 -1
- package/dist/chunk-UHBCM6RO.js.map +1 -0
- package/dist/{chunk-UBDPV34P.js → chunk-W6WAGPMD.js} +1385 -1305
- package/dist/chunk-W6WAGPMD.js.map +1 -0
- package/dist/chunk-WKSFPJHZ.js +33054 -0
- package/dist/chunk-WKSFPJHZ.js.map +1 -0
- package/dist/{chunk-IGY4ASUF.js → chunk-WMNS4MAQ.js} +1288 -1696
- package/dist/chunk-WMNS4MAQ.js.map +1 -0
- package/dist/{chunk-MATIJPGF.js → chunk-XPFHJMZP.js} +541 -401
- package/dist/chunk-XPFHJMZP.js.map +1 -0
- package/dist/chunk-YMXYBG7U.js +12 -0
- package/dist/chunk-YMXYBG7U.js.map +1 -0
- package/dist/context-mention-palette/index.d.ts +3 -2
- package/dist/context-mention-palette/index.js +17 -12
- package/dist/custom-mention.d.ts +42 -0
- package/dist/custom-mention.js +17 -0
- package/dist/custom-mention.js.map +1 -0
- package/dist/dock-icons.d.ts +4 -0
- package/dist/dock-icons.js +11 -0
- package/dist/dock-icons.js.map +1 -0
- package/dist/i18n/index.d.ts +880 -841
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +56 -1063
- package/dist/index.js +78 -35532
- package/dist/index.js.map +1 -1
- package/dist/mention-search.d.ts +226 -0
- package/dist/mention-search.js +29 -0
- package/dist/mention-search.js.map +1 -0
- package/dist/open-link-lined-JWEKUKME.svg +4 -0
- package/dist/pastedTextKinds-D-XuInaS.d.ts +4 -0
- package/dist/provider-icons.d.ts +6 -0
- package/dist/provider-icons.js +12 -0
- package/dist/provider-icons.js.map +1 -0
- package/dist/provider-identity.d.ts +9 -0
- package/dist/provider-identity.js +21 -0
- package/dist/provider-identity.js.map +1 -0
- package/dist/runtime-BBNdWgDU.d.ts +10 -0
- package/dist/startup-shell.d.ts +8 -0
- package/dist/startup-shell.js +184 -0
- package/dist/startup-shell.js.map +1 -0
- package/dist/{types-PLFZ8SBX.d.ts → types-CnT8rNUI.d.ts} +43 -87
- package/dist/workbench/contribution.d.ts +34 -41
- package/dist/workbench/contribution.js +10 -6
- package/dist/workbench/index.d.ts +5 -4
- package/dist/workbench/index.js +27 -25
- package/dist/workbench/launch.d.ts +4 -7
- package/dist/workbench/launch.js +4 -3
- package/dist/workbench/providerCatalog.d.ts +2 -2
- package/dist/workbench/providerCatalog.js +2 -1
- package/dist/workbench/sessionTitle.d.ts +11 -14
- package/dist/workbench/sessionTitle.js +6 -7
- package/dist/workbench/state.d.ts +1 -1
- package/dist/workbench/state.js +3 -2
- package/dist/workbench/types.d.ts +2 -4
- package/dist/workbench/types.js +1 -1
- package/dist/workspace-agent-generated-files.d.ts +20 -2
- package/dist/workspace-agent-generated-files.js +6 -5
- package/dist/workspaceAgentActivityListTypes-C7gPWYiA.d.ts +71 -0
- package/package.json +70 -26
- package/dist/AgentMentionSearchController-DD_WOred.d.ts +0 -241
- package/dist/AgentMessageMarkdown-DeYPURtF.d.ts +0 -7
- package/dist/chunk-45FF4DQU.js.map +0 -1
- package/dist/chunk-4HP6V2YA.js +0 -207
- package/dist/chunk-4HP6V2YA.js.map +0 -1
- package/dist/chunk-7BUYFVRI.js.map +0 -1
- package/dist/chunk-7LMJXF4R.js.map +0 -1
- package/dist/chunk-AWAIUYG4.js.map +0 -1
- package/dist/chunk-BXVPOGYK.js.map +0 -1
- package/dist/chunk-E5FOXRUM.js.map +0 -1
- package/dist/chunk-GAPTLVII.js.map +0 -1
- package/dist/chunk-IBIMGLCD.js +0 -66
- package/dist/chunk-IBIMGLCD.js.map +0 -1
- package/dist/chunk-IGY4ASUF.js.map +0 -1
- package/dist/chunk-LR4FA5X6.js +0 -368
- package/dist/chunk-LR4FA5X6.js.map +0 -1
- package/dist/chunk-MATIJPGF.js.map +0 -1
- package/dist/chunk-MKHDRIGN.js +0 -71
- package/dist/chunk-MKHDRIGN.js.map +0 -1
- package/dist/chunk-P72YLKC6.js.map +0 -1
- package/dist/chunk-SCLLP5DO.js.map +0 -1
- package/dist/chunk-UBDPV34P.js.map +0 -1
- package/dist/chunk-VAKFNNKT.js +0 -410
- package/dist/chunk-VAKFNNKT.js.map +0 -1
- package/dist/chunk-XDV4ZRVK.js.map +0 -1
- package/dist/chunk-XW4CVBUH.js.map +0 -1
- package/dist/chunk-ZUW4B5AT.js.map +0 -1
- package/dist/plan-decision-ops.d.ts +0 -70
- package/dist/plan-decision-ops.js +0 -19
- package/dist/queued-prompt-runtime.d.ts +0 -115
- package/dist/queued-prompt-runtime.js +0 -9
- package/dist/uiSettings-BQS9r2eo.d.ts +0 -6
- package/dist/workspaceAgentActivityListViewModel-BzV-cf0D.d.ts +0 -340
- package/dist/workspaceLinkActions-DS9LWqzI.d.ts +0 -74
- /package/dist/{plan-decision-ops.js.map → agent-gui.js.map} +0 -0
- /package/dist/{queued-prompt-runtime.js.map → agents.js.map} +0 -0
- /package/dist/{chunk-5FE7M42A.js.map → chunk-E4HQUTM3.js.map} +0 -0
- /package/dist/{chunk-554VG7ZW.js.map → chunk-QVBF5BN5.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
|
|
9
|
-
|
|
8
|
+
It defines daemon, workspace-engine, GUI-module, provider, and desktop-host
|
|
9
|
+
ownership.
|
|
10
10
|
|
|
11
11
|
## Data Source
|
|
12
12
|
|
|
13
|
-
|
|
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
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
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
|
|
|
@@ -31,9 +27,25 @@ Runtime-owned capability declarations are optional and default to enabled:
|
|
|
31
27
|
- `canSubmitInteractive`: shows approval, ask-user, and plan-decision
|
|
32
28
|
interaction entries.
|
|
33
29
|
- `canGoalControl`: shows goal banner controls, `/goal`, and the goal badge.
|
|
34
|
-
- `canUploadAttachment`: enables prompt attachment
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
- `canUploadAttachment`: enables prompt attachment paths. Pasted large text
|
|
31
|
+
additionally requires the explicit `AgentActivityRuntime.stagePastedText`
|
|
32
|
+
host method; AgentGUI does not infer that capability from generic file
|
|
33
|
+
upload support. Ordinary `@` references and workspace-reference mentions
|
|
34
|
+
remain available.
|
|
35
|
+
|
|
36
|
+
## Pasted Text Staging
|
|
37
|
+
|
|
38
|
+
AgentGUI classifies plain-text clipboard content before delegating structured
|
|
39
|
+
mention HTML. A trimmed payload of at least 5,000 characters is never inserted
|
|
40
|
+
into the prompt automatically. It becomes a pasted-text draft attachment and
|
|
41
|
+
is passed as raw text to `AgentActivityRuntime.stagePastedText`; the host owns
|
|
42
|
+
local persistence and returns `{ path, name, sizeBytes }`.
|
|
43
|
+
|
|
44
|
+
If the method is absent or staging fails, the attachment remains in an explicit
|
|
45
|
+
failed state and retains its in-memory text. AgentGUI must not silently put the
|
|
46
|
+
payload back into the input. The user can explicitly choose “Show in text
|
|
47
|
+
field” to do that. Generic `uploadPromptContent` remains the contract for
|
|
48
|
+
images and host-local files; it is not a pasted-text capability signal.
|
|
37
49
|
|
|
38
50
|
Slash commands come from the runtime session command snapshot. AgentGUI keeps
|
|
39
51
|
legacy provider-default slash entries unless the host passes
|
|
@@ -49,34 +61,29 @@ render-state changes, and caught errors. Set
|
|
|
49
61
|
fallback. Production builds stay silent unless the host provides
|
|
50
62
|
`reportDiagnostic`.
|
|
51
63
|
|
|
52
|
-
|
|
53
|
-
activity data:
|
|
64
|
+
Host capabilities remain separate from activity data. `AgentHostApi` is still
|
|
65
|
+
accepted for host capabilities that are not agent activity data:
|
|
54
66
|
|
|
55
67
|
- workspace files and file references
|
|
56
68
|
- clipboard
|
|
57
|
-
- runtime metadata and diagnostics
|
|
58
69
|
- account/user lookup
|
|
59
70
|
- user-project selection
|
|
60
71
|
- local file picking/reading and batch export helpers
|
|
61
72
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
for projection boundaries, non-desktop legacy hosts, and tests.
|
|
73
|
+
AgentGUI has no host-API activity fallback. A host must inject the runtime and
|
|
74
|
+
the grouped `AgentGUINodeProps` responsibility objects.
|
|
65
75
|
|
|
66
76
|
## Boundary Rule
|
|
67
77
|
|
|
68
78
|
`AgentActivity*` types from `@tutti-os/agent-activity-core` are the canonical
|
|
69
|
-
frontend agent activity model.
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
`
|
|
76
|
-
|
|
77
|
-
instead of `agentSessions.activate`, `agentSessions.unactivate`,
|
|
78
|
-
`agentSessions.exec`, `agentSessions.cancel`, `agentSessions.submitInteractive`,
|
|
79
|
-
`agentSessions.updateSettings`, or `agentSessions.pinSession`.
|
|
79
|
+
frontend agent activity model. Production reads use exported engine selectors;
|
|
80
|
+
production writes use engine commands. GUI modules must not read entity maps,
|
|
81
|
+
subscribe to daemon streams, or reconstruct session/turn lifecycle from
|
|
82
|
+
messages.
|
|
83
|
+
|
|
84
|
+
Runtime identity is explicit: each consumer resolves the injected engine and
|
|
85
|
+
verifies its `(workspaceId, origin)` identity. Module-global runtime slots and
|
|
86
|
+
hidden origin registries are forbidden.
|
|
80
87
|
|
|
81
88
|
Run this boundary check after changing AgentGUI data flow:
|
|
82
89
|
|
|
@@ -84,6 +91,27 @@ Run this boundary check after changing AgentGUI data flow:
|
|
|
84
91
|
pnpm check:agent-activity-runtime-boundaries
|
|
85
92
|
```
|
|
86
93
|
|
|
94
|
+
## Node Contract
|
|
95
|
+
|
|
96
|
+
`AgentGUINodeProps` has eight required top-level responsibilities:
|
|
97
|
+
`identity`, `workspace`, `frame`, `state`, `runtimeRequests`,
|
|
98
|
+
`hostCapabilities`, `hostActions`, and `renderSlots`. Extend the owning object;
|
|
99
|
+
do not restore flat compatibility props.
|
|
100
|
+
|
|
101
|
+
## Home Suggestions
|
|
102
|
+
|
|
103
|
+
The five starter entries below the empty new-session composer are enabled by
|
|
104
|
+
default. External hosts can hide individual entries with the public
|
|
105
|
+
`AgentGUI.disabled` array:
|
|
106
|
+
|
|
107
|
+
```tsx
|
|
108
|
+
<AgentGUI disabled={["meet-tutti", "import-session"]} {...props} />
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
The supported stable IDs are `meet-tutti`, `task-breakdown`, `quality-review`,
|
|
112
|
+
`agent-interaction`, and `import-session`. Omitting `disabled` (or passing an
|
|
113
|
+
empty array) renders all five entries.
|
|
114
|
+
|
|
87
115
|
## Agent Directory
|
|
88
116
|
|
|
89
117
|
`AgentGUI` requires the host's `/agents` projection through its `agents` prop.
|
|
@@ -95,6 +123,7 @@ export interface AgentGUIAgent {
|
|
|
95
123
|
agentTargetId: string;
|
|
96
124
|
name: string;
|
|
97
125
|
iconUrl: string;
|
|
126
|
+
heroImageUrl?: string | null;
|
|
98
127
|
description?: string | null;
|
|
99
128
|
owner?: {
|
|
100
129
|
name?: string | null;
|
|
@@ -121,9 +150,14 @@ may share the same `provider` and remain distinct. `provider` is runtime metadat
|
|
|
121
150
|
for provider-native execution, composer policy, probes, and capabilities; it
|
|
122
151
|
must not be used to group, deduplicate, name, icon, or select agents.
|
|
123
152
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
153
|
+
Runnable provider targets are host-supplied. If the target catalog is absent,
|
|
154
|
+
AgentGUI presents an explicit unavailable state; it does not synthesize local
|
|
155
|
+
targets from presentation metadata.
|
|
156
|
+
|
|
157
|
+
Agent names, primary icons, and optional home-carousel artwork come from
|
|
158
|
+
`agents[].name`, `agents[].iconUrl`, and `agents[].heroImageUrl`.
|
|
159
|
+
`owner.avatarUrl` is rendered separately as an ownership badge. Invalid entries
|
|
160
|
+
and duplicate `agentTargetId` values are discarded by
|
|
127
161
|
`normalizeAgentGUIAgents`, with the first occurrence preserving host order.
|
|
128
162
|
|
|
129
163
|
With one agent, AgentGUI hides the aggregate `All` entry and renders that agent
|
|
@@ -131,6 +165,19 @@ directly. With multiple agents, it shows `All` plus the host-ordered agent rail
|
|
|
131
165
|
and empty-home carousel. Hosts may customize the aggregate icon with
|
|
132
166
|
`allAgentsPresentation.iconUrl`.
|
|
133
167
|
|
|
168
|
+
Hosts adapting daemon-owned agent targets must resolve the target's descriptor
|
|
169
|
+
`iconKey` instead of assuming it equals the provider ID. The narrow
|
|
170
|
+
`@tutti-os/agent-gui/provider-icons` subpath exports
|
|
171
|
+
`resolveProviderIconAsset(iconKey, variant)` for that adapter seam. Unknown
|
|
172
|
+
keys return `null`; hosts should render a neutral icon rather than silently
|
|
173
|
+
substituting another provider's icon.
|
|
174
|
+
|
|
175
|
+
Hosts that need provider identity presentation may call
|
|
176
|
+
`resolveAgentGUIProviderIdentity(value)` from the narrow
|
|
177
|
+
`@tutti-os/agent-gui/provider-identity` subpath. Migrated providers resolve from
|
|
178
|
+
the generated descriptor catalog, which is checked against the daemon provider
|
|
179
|
+
registry and OpenAPI provider enums.
|
|
180
|
+
|
|
134
181
|
Inside AgentGUI, normalized directory entries use the canonical
|
|
135
182
|
`AgentGUIAgentTarget` / `agentTargets` vocabulary. `provider` is execution
|
|
136
183
|
metadata, not target identity. Rail tiles, the single-agent empty state, and
|
|
@@ -143,8 +190,9 @@ for that asset. The WebGL carousel keeps a local programmatic owner marker when
|
|
|
143
190
|
the remote image cannot be decoded or uploaded safely, while DOM avatar
|
|
144
191
|
surfaces continue using the same shared presentation.
|
|
145
192
|
|
|
146
|
-
|
|
147
|
-
host-specific loaded-empty state. Use
|
|
193
|
+
Pass the full `agentDirectory` lifecycle snapshot for directory hydration and
|
|
194
|
+
use `renderAgentsEmpty` for a host-specific loaded-empty state. Use
|
|
195
|
+
`renderAgentUnavailableState` or
|
|
148
196
|
`renderAgentReadinessState` for host-specific availability presentation, and
|
|
149
197
|
handle install/login/refresh requests through `onAgentAvailabilityAction`.
|
|
150
198
|
|