@tutti-os/agent-gui 0.0.4 → 0.0.6

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 (51) hide show
  1. package/dist/agent-message-center/index.d.ts +1 -0
  2. package/dist/agent-message-center/index.js +23 -9
  3. package/dist/agent-message-center/index.js.map +1 -1
  4. package/dist/app/renderer/agentactivity.css +11 -0
  5. package/dist/app/renderer/assets/icons/arrow-left-filled.svg +1 -0
  6. package/dist/{chunk-RORLLV27.js → chunk-3735XYFZ.js} +2 -40
  7. package/dist/chunk-3735XYFZ.js.map +1 -0
  8. package/dist/{chunk-IVPB4MLI.js → chunk-6AZ2KF6R.js} +1 -1
  9. package/dist/chunk-6AZ2KF6R.js.map +1 -0
  10. package/dist/{chunk-ZX5PDYAS.js → chunk-C63Z2JWT.js} +8 -10
  11. package/dist/chunk-C63Z2JWT.js.map +1 -0
  12. package/dist/chunk-FKCXHCPO.js +3478 -0
  13. package/dist/chunk-FKCXHCPO.js.map +1 -0
  14. package/dist/{chunk-ZP7P7DYO.js → chunk-GEXHKJK5.js} +6 -47
  15. package/dist/chunk-GEXHKJK5.js.map +1 -0
  16. package/dist/{chunk-UJWUGMWC.js → chunk-GYG57VTA.js} +17 -32
  17. package/dist/{chunk-UJWUGMWC.js.map → chunk-GYG57VTA.js.map} +1 -1
  18. package/dist/{chunk-HSR5DI6O.js → chunk-JWVLIF5R.js} +5 -1
  19. package/dist/chunk-JWVLIF5R.js.map +1 -0
  20. package/dist/{chunk-UKQIGNN3.js → chunk-KGFWU4FL.js} +2 -2
  21. package/dist/{chunk-BABBC24I.js → chunk-LUGELG5V.js} +4 -1
  22. package/dist/chunk-LUGELG5V.js.map +1 -0
  23. package/dist/chunk-ZU3FKYMG.js +47 -0
  24. package/dist/chunk-ZU3FKYMG.js.map +1 -0
  25. package/dist/i18n/index.d.ts +4 -0
  26. package/dist/i18n/index.js +1 -1
  27. package/dist/index.d.ts +2 -11
  28. package/dist/index.js +176 -60
  29. package/dist/index.js.map +1 -1
  30. package/dist/mention-file-presentation.d.ts +2 -1
  31. package/dist/mention-file-presentation.js +1 -1
  32. package/dist/workbench/contribution.js +6 -5
  33. package/dist/workbench/index.d.ts +1 -1
  34. package/dist/workbench/index.js +6 -5
  35. package/dist/workbench/launch.d.ts +1 -7
  36. package/dist/workbench/launch.js +2 -2
  37. package/dist/workbench/state.js +1 -1
  38. package/dist/workbench/types.d.ts +1 -12
  39. package/dist/workbench/types.js +1 -1
  40. package/dist/workspace-agent-generated-files.js +2 -2
  41. package/package.json +10 -10
  42. package/dist/chunk-5Q36BEUM.js +0 -3478
  43. package/dist/chunk-5Q36BEUM.js.map +0 -1
  44. package/dist/chunk-BABBC24I.js.map +0 -1
  45. package/dist/chunk-HSR5DI6O.js.map +0 -1
  46. package/dist/chunk-IVPB4MLI.js.map +0 -1
  47. package/dist/chunk-RORLLV27.js.map +0 -1
  48. package/dist/chunk-ZP7P7DYO.js.map +0 -1
  49. package/dist/chunk-ZX5PDYAS.js.map +0 -1
  50. package/dist/user-avatar-placeholder-WP2373TS.png +0 -0
  51. /package/dist/{chunk-UKQIGNN3.js.map → chunk-KGFWU4FL.js.map} +0 -0
@@ -13,7 +13,6 @@ function createDefaultAgentGuiWorkbenchNodeState(provider = "codex") {
13
13
  conversationRailWidthPx: null,
14
14
  lastActiveAgentSessionId: null,
15
15
  lastActiveConversationTitle: null,
16
- pendingHandoff: null,
17
16
  provider
18
17
  };
19
18
  }
@@ -33,10 +32,7 @@ function normalizeAgentGuiWorkbenchState(state) {
33
32
  state.conversationRailWidthPx
34
33
  ),
35
34
  lastActiveAgentSessionId: typeof state.lastActiveAgentSessionId === "string" ? state.lastActiveAgentSessionId : null,
36
- lastActiveConversationTitle: typeof state.lastActiveConversationTitle === "string" ? state.lastActiveConversationTitle : null,
37
- pendingHandoff: normalizeAgentGuiWorkbenchPendingHandoff(
38
- state.pendingHandoff
39
- )
35
+ lastActiveConversationTitle: typeof state.lastActiveConversationTitle === "string" ? state.lastActiveConversationTitle : null
40
36
  };
41
37
  }
42
38
  function projectAgentGuiWorkbenchState(state) {
@@ -52,17 +48,14 @@ function projectAgentGuiWorkbenchState(state) {
52
48
  state.conversationRailWidthPx
53
49
  ),
54
50
  lastActiveAgentSessionId: state.lastActiveAgentSessionId ?? null,
55
- lastActiveConversationTitle: state.lastActiveConversationTitle ?? null,
56
- pendingHandoff: normalizeAgentGuiWorkbenchPendingHandoff(
57
- state.pendingHandoff
58
- )
51
+ lastActiveConversationTitle: state.lastActiveConversationTitle ?? null
59
52
  };
60
53
  }
61
54
  function areAgentGuiWorkbenchStatesEqual(left, right) {
62
55
  return composerOverridesEqual(left.composerOverrides, right.composerOverrides) && composerOverridesByProviderEqual(
63
56
  left.composerOverridesByProvider,
64
57
  right.composerOverridesByProvider
65
- ) && left.conversationRailCollapsed === right.conversationRailCollapsed && left.conversationRailWidthPx === right.conversationRailWidthPx && left.lastActiveAgentSessionId === right.lastActiveAgentSessionId && left.lastActiveConversationTitle === right.lastActiveConversationTitle && pendingHandoffEquals(left.pendingHandoff, right.pendingHandoff);
58
+ ) && left.conversationRailCollapsed === right.conversationRailCollapsed && left.conversationRailWidthPx === right.conversationRailWidthPx && left.lastActiveAgentSessionId === right.lastActiveAgentSessionId && left.lastActiveConversationTitle === right.lastActiveConversationTitle;
66
59
  }
67
60
  function normalizeAgentGuiWorkbenchNodeState(state, fallbackProvider = "codex") {
68
61
  const provider = normalizeAgentGuiWorkbenchProvider(
@@ -86,9 +79,6 @@ function normalizeAgentGuiWorkbenchNodeState(state, fallbackProvider = "codex")
86
79
  ),
87
80
  lastActiveAgentSessionId: typeof state?.lastActiveAgentSessionId === "string" ? state.lastActiveAgentSessionId : null,
88
81
  lastActiveConversationTitle: typeof state?.lastActiveConversationTitle === "string" ? state.lastActiveConversationTitle : null,
89
- pendingHandoff: normalizeAgentGuiWorkbenchPendingHandoff(
90
- state?.pendingHandoff
91
- ),
92
82
  provider
93
83
  };
94
84
  }
@@ -96,7 +86,7 @@ function areAgentGuiWorkbenchNodeStatesEqual(left, right) {
96
86
  return composerOverridesEqual(left.composerOverrides, right.composerOverrides) && composerOverridesByProviderEqual(
97
87
  left.composerOverridesByProvider,
98
88
  right.composerOverridesByProvider
99
- ) && left.conversationCount === right.conversationCount && left.conversationRailCollapsed === right.conversationRailCollapsed && left.conversationRailWidthPx === right.conversationRailWidthPx && left.lastActiveAgentSessionId === right.lastActiveAgentSessionId && left.lastActiveConversationTitle === right.lastActiveConversationTitle && left.provider === right.provider && pendingHandoffEquals(left.pendingHandoff, right.pendingHandoff);
89
+ ) && left.conversationCount === right.conversationCount && left.conversationRailCollapsed === right.conversationRailCollapsed && left.conversationRailWidthPx === right.conversationRailWidthPx && left.lastActiveAgentSessionId === right.lastActiveAgentSessionId && left.lastActiveConversationTitle === right.lastActiveConversationTitle && left.provider === right.provider;
100
90
  }
101
91
  function agentGuiWorkbenchProviderFromInstanceId(instanceId) {
102
92
  const normalized = instanceId?.trim();
@@ -168,8 +158,7 @@ function createDefaultAgentGuiWorkbenchState() {
168
158
  conversationRailCollapsed: false,
169
159
  conversationRailWidthPx: null,
170
160
  lastActiveAgentSessionId: null,
171
- lastActiveConversationTitle: null,
172
- pendingHandoff: null
161
+ lastActiveConversationTitle: null
173
162
  };
174
163
  }
175
164
  function normalizeAgentGuiWorkbenchComposerOverrides(value) {
@@ -206,27 +195,6 @@ function normalizeAgentGuiWorkbenchComposerOverridesByProvider(value) {
206
195
  }
207
196
  return Object.keys(result).length > 0 ? result : null;
208
197
  }
209
- function normalizeAgentGuiWorkbenchPendingHandoff(value) {
210
- if (!isRecord(value)) {
211
- return null;
212
- }
213
- const requestId = typeof value.requestId === "string" ? value.requestId : "";
214
- const prompt = typeof value.prompt === "string" ? value.prompt : "";
215
- const title = typeof value.title === "string" ? value.title : "";
216
- const taskTitle = typeof value.taskTitle === "string" ? value.taskTitle : title;
217
- if (!requestId.trim() || !prompt.trim() || !title.trim()) {
218
- return null;
219
- }
220
- return {
221
- issueId: typeof value.issueId === "string" && value.issueId.trim() ? value.issueId : null,
222
- issueTitle: typeof value.issueTitle === "string" && value.issueTitle.trim() ? value.issueTitle : null,
223
- prompt,
224
- requestId,
225
- taskId: typeof value.taskId === "string" && value.taskId.trim() ? value.taskId : null,
226
- taskTitle,
227
- title
228
- };
229
- }
230
198
  function normalizeOptionalPositiveNumber(value) {
231
199
  return typeof value === "number" && Number.isFinite(value) && value > 0 ? Math.round(value) : null;
232
200
  }
@@ -244,15 +212,6 @@ function composerOverridesByProviderEqual(left, right) {
244
212
  }
245
213
  return true;
246
214
  }
247
- function pendingHandoffEquals(left, right) {
248
- if (left === right) {
249
- return true;
250
- }
251
- if (!left || !right) {
252
- return false;
253
- }
254
- return left.requestId === right.requestId && left.title === right.title && left.prompt === right.prompt && left.taskId === right.taskId && left.issueId === right.issueId && left.taskTitle === right.taskTitle && left.issueTitle === right.issueTitle;
255
- }
256
215
  function isRecord(value) {
257
216
  return typeof value === "object" && value !== null;
258
217
  }
@@ -267,4 +226,4 @@ export {
267
226
  agentGuiWorkbenchProviderFromInstanceId,
268
227
  createAgentGuiWorkbenchNodeStateSource
269
228
  };
270
- //# sourceMappingURL=chunk-ZP7P7DYO.js.map
229
+ //# sourceMappingURL=chunk-GEXHKJK5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../workbench/state.ts"],"sourcesContent":["import type {\n WorkbenchHostExternalStateLookupInput,\n WorkbenchHostExternalStateSource\n} from \"@tutti-os/workbench-surface\";\nimport {\n agentGuiWorkbenchProviders,\n normalizeAgentGuiWorkbenchProvider\n} from \"./providerCatalog.ts\";\nimport type {\n AgentGuiWorkbenchComposerOverrides,\n AgentGuiWorkbenchComposerOverridesByProvider,\n AgentGuiWorkbenchNodeState,\n AgentGuiWorkbenchProvider,\n AgentGuiWorkbenchState,\n AgentGuiWorkbenchWorkspaceState\n} from \"./types.ts\";\n\nexport function createDefaultAgentGuiWorkbenchNodeState(\n provider: AgentGuiWorkbenchProvider = \"codex\"\n): AgentGuiWorkbenchNodeState {\n return {\n composerOverrides: null,\n composerOverridesByProvider: null,\n conversationCount: null,\n conversationRailCollapsed: false,\n conversationRailWidthPx: null,\n lastActiveAgentSessionId: null,\n lastActiveConversationTitle: null,\n provider\n };\n}\n\nexport function normalizeAgentGuiWorkbenchState(\n state: unknown\n): AgentGuiWorkbenchState {\n if (!isRecord(state)) {\n return createDefaultAgentGuiWorkbenchState();\n }\n return {\n composerOverrides: normalizeAgentGuiWorkbenchComposerOverrides(\n state.composerOverrides\n ),\n composerOverridesByProvider:\n normalizeAgentGuiWorkbenchComposerOverridesByProvider(\n state.composerOverridesByProvider\n ),\n conversationRailCollapsed: state.conversationRailCollapsed === true,\n conversationRailWidthPx: normalizeOptionalPositiveNumber(\n state.conversationRailWidthPx\n ),\n lastActiveAgentSessionId:\n typeof state.lastActiveAgentSessionId === \"string\"\n ? state.lastActiveAgentSessionId\n : null,\n lastActiveConversationTitle:\n typeof state.lastActiveConversationTitle === \"string\"\n ? state.lastActiveConversationTitle\n : null\n };\n}\n\nexport function projectAgentGuiWorkbenchState(\n state: AgentGuiWorkbenchNodeState\n): AgentGuiWorkbenchState {\n return {\n composerOverrides: normalizeAgentGuiWorkbenchComposerOverrides(\n state.composerOverrides\n ),\n composerOverridesByProvider:\n normalizeAgentGuiWorkbenchComposerOverridesByProvider(\n state.composerOverridesByProvider\n ),\n conversationRailCollapsed: state.conversationRailCollapsed === true,\n conversationRailWidthPx: normalizeOptionalPositiveNumber(\n state.conversationRailWidthPx\n ),\n lastActiveAgentSessionId: state.lastActiveAgentSessionId ?? null,\n lastActiveConversationTitle: state.lastActiveConversationTitle ?? null\n };\n}\n\nexport function areAgentGuiWorkbenchStatesEqual(\n left: AgentGuiWorkbenchState,\n right: AgentGuiWorkbenchState\n): boolean {\n return (\n composerOverridesEqual(left.composerOverrides, right.composerOverrides) &&\n composerOverridesByProviderEqual(\n left.composerOverridesByProvider,\n right.composerOverridesByProvider\n ) &&\n left.conversationRailCollapsed === right.conversationRailCollapsed &&\n left.conversationRailWidthPx === right.conversationRailWidthPx &&\n left.lastActiveAgentSessionId === right.lastActiveAgentSessionId &&\n left.lastActiveConversationTitle === right.lastActiveConversationTitle\n );\n}\n\nexport function normalizeAgentGuiWorkbenchNodeState(\n state: Partial<AgentGuiWorkbenchNodeState> | null | undefined,\n fallbackProvider: AgentGuiWorkbenchProvider = \"codex\"\n): AgentGuiWorkbenchNodeState {\n const provider = normalizeAgentGuiWorkbenchProvider(\n state?.provider,\n fallbackProvider\n );\n return {\n ...createDefaultAgentGuiWorkbenchNodeState(provider),\n composerOverrides: normalizeAgentGuiWorkbenchComposerOverrides(\n state?.composerOverrides\n ),\n composerOverridesByProvider:\n normalizeAgentGuiWorkbenchComposerOverridesByProvider(\n state?.composerOverridesByProvider\n ),\n conversationCount: normalizeOptionalNonNegativeNumber(\n state?.conversationCount\n ),\n conversationRailCollapsed: state?.conversationRailCollapsed === true,\n conversationRailWidthPx: normalizeOptionalPositiveNumber(\n state?.conversationRailWidthPx\n ),\n lastActiveAgentSessionId:\n typeof state?.lastActiveAgentSessionId === \"string\"\n ? state.lastActiveAgentSessionId\n : null,\n lastActiveConversationTitle:\n typeof state?.lastActiveConversationTitle === \"string\"\n ? state.lastActiveConversationTitle\n : null,\n provider\n };\n}\n\nexport function areAgentGuiWorkbenchNodeStatesEqual(\n left: AgentGuiWorkbenchNodeState,\n right: AgentGuiWorkbenchNodeState\n): boolean {\n return (\n composerOverridesEqual(left.composerOverrides, right.composerOverrides) &&\n composerOverridesByProviderEqual(\n left.composerOverridesByProvider,\n right.composerOverridesByProvider\n ) &&\n left.conversationCount === right.conversationCount &&\n left.conversationRailCollapsed === right.conversationRailCollapsed &&\n left.conversationRailWidthPx === right.conversationRailWidthPx &&\n left.lastActiveAgentSessionId === right.lastActiveAgentSessionId &&\n left.lastActiveConversationTitle === right.lastActiveConversationTitle &&\n left.provider === right.provider\n );\n}\n\nexport function agentGuiWorkbenchProviderFromInstanceId(\n instanceId: string | null | undefined\n): AgentGuiWorkbenchProvider {\n const normalized = instanceId?.trim();\n if (!normalized || normalized === \"agent-gui\") {\n return \"codex\";\n }\n const [, provider] = normalized.split(\":\", 3);\n return normalizeAgentGuiWorkbenchProvider(provider);\n}\n\nexport function createAgentGuiWorkbenchNodeStateSource(input: {\n typeId?: string;\n workspaceId: string;\n}): {\n externalStateSource: WorkbenchHostExternalStateSource<\n AgentGuiWorkbenchState | null,\n AgentGuiWorkbenchWorkspaceState\n >;\n readNodeState: (\n request: Pick<\n WorkbenchHostExternalStateLookupInput,\n \"instanceId\" | \"typeId\"\n >\n ) => AgentGuiWorkbenchState | null;\n writeNodeState: (\n request: Pick<\n WorkbenchHostExternalStateLookupInput,\n \"instanceId\" | \"typeId\"\n > & { state: AgentGuiWorkbenchState }\n ) => void;\n} {\n const typeId = input.typeId ?? \"agent-gui\";\n const nodeStateByInstanceId = new Map<string, AgentGuiWorkbenchState>();\n const listeners = new Set<() => void>();\n\n const notify = () => {\n for (const listener of listeners) {\n listener();\n }\n };\n\n return {\n externalStateSource: {\n getNodeState(request) {\n if (request.typeId !== typeId) {\n return null;\n }\n const state = nodeStateByInstanceId.get(request.instanceId);\n return state ? { ...state } : null;\n },\n getSnapshotNodeState(request) {\n if (request.typeId !== typeId) {\n return null;\n }\n const state = nodeStateByInstanceId.get(request.instanceId);\n return state ? { ...state } : null;\n },\n getWorkspaceState() {\n return {\n workspaceId: input.workspaceId\n };\n },\n subscribe(listener) {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n }\n },\n readNodeState(request) {\n if (request.typeId !== typeId) {\n return null;\n }\n const state = nodeStateByInstanceId.get(request.instanceId);\n return state ? { ...state } : null;\n },\n writeNodeState(request) {\n if (request.typeId !== typeId) {\n return;\n }\n nodeStateByInstanceId.set(request.instanceId, {\n ...normalizeAgentGuiWorkbenchState(request.state)\n });\n notify();\n }\n };\n}\n\nfunction createDefaultAgentGuiWorkbenchState(): AgentGuiWorkbenchState {\n return {\n composerOverrides: null,\n composerOverridesByProvider: null,\n conversationRailCollapsed: false,\n conversationRailWidthPx: null,\n lastActiveAgentSessionId: null,\n lastActiveConversationTitle: null\n };\n}\n\nfunction normalizeAgentGuiWorkbenchComposerOverrides(\n value: unknown\n): AgentGuiWorkbenchComposerOverrides | null {\n if (!isRecord(value)) {\n return null;\n }\n const composerOverrides: AgentGuiWorkbenchComposerOverrides = {};\n if (typeof value.model === \"string\" && value.model.trim()) {\n composerOverrides.model = value.model.trim();\n }\n if (\n typeof value.reasoningEffort === \"string\" &&\n value.reasoningEffort.trim()\n ) {\n composerOverrides.reasoningEffort = value.reasoningEffort.trim();\n }\n if (\n typeof value.permissionModeId === \"string\" &&\n value.permissionModeId.trim()\n ) {\n composerOverrides.permissionModeId = value.permissionModeId.trim();\n }\n if (typeof value.planMode === \"boolean\") {\n composerOverrides.planMode = value.planMode;\n }\n return Object.keys(composerOverrides).length > 0 ? composerOverrides : null;\n}\n\nfunction normalizeAgentGuiWorkbenchComposerOverridesByProvider(\n value: unknown\n): AgentGuiWorkbenchComposerOverridesByProvider | null {\n if (!isRecord(value)) {\n return null;\n }\n const result: AgentGuiWorkbenchComposerOverridesByProvider = {};\n for (const provider of agentGuiWorkbenchProviders) {\n const overrides = normalizeAgentGuiWorkbenchComposerOverrides(\n value[provider]\n );\n if (overrides) {\n result[provider] = overrides;\n }\n }\n return Object.keys(result).length > 0 ? result : null;\n}\n\nfunction normalizeOptionalPositiveNumber(value: unknown): number | null {\n return typeof value === \"number\" && Number.isFinite(value) && value > 0\n ? Math.round(value)\n : null;\n}\n\nfunction normalizeOptionalNonNegativeNumber(value: unknown): number | null {\n return typeof value === \"number\" && Number.isFinite(value) && value >= 0\n ? Math.round(value)\n : null;\n}\n\nfunction composerOverridesEqual(\n left: AgentGuiWorkbenchComposerOverrides | null | undefined,\n right: AgentGuiWorkbenchComposerOverrides | null | undefined\n): boolean {\n return (\n (left?.model ?? null) === (right?.model ?? null) &&\n (left?.permissionModeId ?? null) === (right?.permissionModeId ?? null) &&\n (left?.planMode ?? null) === (right?.planMode ?? null) &&\n (left?.reasoningEffort ?? null) === (right?.reasoningEffort ?? null)\n );\n}\n\nfunction composerOverridesByProviderEqual(\n left: AgentGuiWorkbenchComposerOverridesByProvider | null | undefined,\n right: AgentGuiWorkbenchComposerOverridesByProvider | null | undefined\n): boolean {\n for (const provider of agentGuiWorkbenchProviders) {\n if (!composerOverridesEqual(left?.[provider], right?.[provider])) {\n return false;\n }\n }\n return true;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n"],"mappings":"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","names":[]}
@@ -1,3 +1,12 @@
1
+ import {
2
+ codexRoundedUrl,
3
+ geminiRoundedUrl,
4
+ hermesRoundedUrl,
5
+ manageAgentClaudeCodeUrl,
6
+ manageAgentNextopUrl,
7
+ openclawRoundedUrl
8
+ } from "./chunk-ZU3FKYMG.js";
9
+
1
10
  // agent-gui/agentGuiNode/model/agentGuiRailLayout.ts
2
11
  function clamp(value, min, max) {
3
12
  return Math.min(max, Math.max(min, value));
@@ -79,38 +88,14 @@ function resolveAgentGUIExpandedWindowFrame(input) {
79
88
  }
80
89
 
81
90
  // dockIcons.ts
82
- var workspaceDockAgentClaudeCodeUrl = new URL(
83
- "./app/renderer/assets/icons/agents/workspace-dock-agent-claude-code.png",
84
- import.meta.url
85
- ).href;
86
- var workspaceDockAgentCodexUrl = new URL(
87
- "./app/renderer/assets/icons/agents/workspace-dock-agent-codex.png",
88
- import.meta.url
89
- ).href;
90
- var workspaceDockAgentGeminiUrl = new URL(
91
- "./app/renderer/assets/icons/agents/workspace-dock-agent-gemini.png",
92
- import.meta.url
93
- ).href;
94
- var workspaceDockAgentNexightUrl = new URL(
95
- "./app/renderer/assets/icons/agents/workspace-dock-agent-nexight.png",
96
- import.meta.url
97
- ).href;
98
- var workspaceDockAgentOpenclawUrl = new URL(
99
- "./app/renderer/assets/icons/agents/workspace-dock-agent-openclaw.png",
100
- import.meta.url
101
- ).href;
102
- var workspaceDockAgentHermesUrl = new URL(
103
- "./app/renderer/assets/icons/agents/manage-agent-hermes.png",
104
- import.meta.url
105
- ).href;
106
- var agentGuiDockIconUrl = workspaceDockAgentCodexUrl;
91
+ var agentGuiDockIconUrl = codexRoundedUrl;
107
92
  var agentGuiDockIconUrls = {
108
- "claude-code": workspaceDockAgentClaudeCodeUrl,
109
- codex: workspaceDockAgentCodexUrl,
110
- gemini: workspaceDockAgentGeminiUrl,
111
- hermes: workspaceDockAgentHermesUrl,
112
- nexight: workspaceDockAgentNexightUrl,
113
- openclaw: workspaceDockAgentOpenclawUrl
93
+ "claude-code": manageAgentClaudeCodeUrl,
94
+ codex: codexRoundedUrl,
95
+ gemini: geminiRoundedUrl,
96
+ hermes: hermesRoundedUrl,
97
+ nexight: manageAgentNextopUrl,
98
+ openclaw: openclawRoundedUrl
114
99
  };
115
100
 
116
101
  export {
@@ -125,4 +110,4 @@ export {
125
110
  agentGuiDockIconUrl,
126
111
  agentGuiDockIconUrls
127
112
  };
128
- //# sourceMappingURL=chunk-UJWUGMWC.js.map
113
+ //# sourceMappingURL=chunk-GYG57VTA.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../agent-gui/agentGuiNode/model/agentGuiRailLayout.ts","../dockIcons.ts"],"sourcesContent":["function clamp(value: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, value));\n}\n\n// Keep aligned with the issue manager task-list rail dimensions.\nexport const AGENT_GUI_CONVERSATION_RAIL_DEFAULT_WIDTH_PX = 280;\nexport const AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX = 248;\nexport const AGENT_GUI_CONVERSATION_RAIL_MAX_WIDTH_PX = 520;\nexport const AGENT_GUI_DETAIL_MIN_WIDTH_PX = 220;\nexport const AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX = 10;\nexport const AGENT_GUI_COLLAPSED_MIN_WIDTH_PX = 460;\nexport const AGENT_GUI_EXPANDED_MIN_WIDTH_PX =\n AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX +\n AGENT_GUI_DETAIL_MIN_WIDTH_PX +\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX;\nexport const AGENT_GUI_AUTO_COLLAPSE_WIDTH_PX = 610;\nexport const AGENT_GUI_EXPANDED_TARGET_WIDTH_PX = 800;\n\nexport interface AgentGUIExpandedWindowFrameInput {\n position: { x: number; y: number };\n width: number;\n height: number;\n desktopSize: { width: number; height: number };\n conversationRailWidthPx: number | null | undefined;\n}\n\nexport function shouldAutoCollapseAgentGUIConversationRail(\n containerWidthPx: number\n): boolean {\n return (\n Number.isFinite(containerWidthPx) &&\n containerWidthPx > 0 &&\n containerWidthPx <= AGENT_GUI_AUTO_COLLAPSE_WIDTH_PX\n );\n}\n\nexport function resolveAgentGUIConversationRailMaxWidthPx(\n containerWidthPx: number\n): number {\n const safeContainerWidth =\n Number.isFinite(containerWidthPx) && containerWidthPx > 0\n ? containerWidthPx\n : AGENT_GUI_CONVERSATION_RAIL_DEFAULT_WIDTH_PX +\n AGENT_GUI_DETAIL_MIN_WIDTH_PX +\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX;\n\n return Math.max(\n AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX,\n Math.min(\n AGENT_GUI_CONVERSATION_RAIL_MAX_WIDTH_PX,\n safeContainerWidth -\n AGENT_GUI_DETAIL_MIN_WIDTH_PX -\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX\n )\n );\n}\n\nexport function clampAgentGUIConversationRailWidthPx(\n widthPx: number | null | undefined,\n containerWidthPx: number\n): number {\n const preferredWidthPx =\n typeof widthPx === \"number\" && Number.isFinite(widthPx)\n ? Math.round(widthPx)\n : null;\n\n return clamp(\n preferredWidthPx ?? AGENT_GUI_CONVERSATION_RAIL_DEFAULT_WIDTH_PX,\n AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX,\n resolveAgentGUIConversationRailMaxWidthPx(containerWidthPx)\n );\n}\n\nexport function resolveNextAgentGUIConversationRailWidthPx(input: {\n currentWidthPx: number | null | undefined;\n requestedWidthPx: number;\n containerWidthPx: number;\n}): number | null {\n const nextWidthPx = clampAgentGUIConversationRailWidthPx(\n input.requestedWidthPx,\n input.containerWidthPx\n );\n if (input.currentWidthPx === nextWidthPx) {\n return input.currentWidthPx;\n }\n\n if (input.currentWidthPx === null || input.currentWidthPx === undefined) {\n const defaultWidthPx = clampAgentGUIConversationRailWidthPx(\n null,\n input.containerWidthPx\n );\n if (nextWidthPx === defaultWidthPx) {\n return null;\n }\n }\n\n return nextWidthPx;\n}\n\nexport function resolveAgentGUIExpandedWindowFrame(\n input: AgentGUIExpandedWindowFrameInput\n): {\n position: { x: number; y: number };\n size: { width: number; height: number };\n} {\n const desiredRailWidthPx = clampAgentGUIConversationRailWidthPx(\n input.conversationRailWidthPx,\n AGENT_GUI_CONVERSATION_RAIL_MAX_WIDTH_PX +\n AGENT_GUI_DETAIL_MIN_WIDTH_PX +\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX\n );\n const desiredWidthPx = Math.max(\n Math.round(input.width),\n desiredRailWidthPx +\n AGENT_GUI_DETAIL_MIN_WIDTH_PX +\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX,\n AGENT_GUI_EXPANDED_MIN_WIDTH_PX,\n AGENT_GUI_EXPANDED_TARGET_WIDTH_PX\n );\n const desktopWidthPx =\n Number.isFinite(input.desktopSize.width) && input.desktopSize.width > 0\n ? Math.round(input.desktopSize.width)\n : desiredWidthPx;\n const nextWidthPx = Math.min(desiredWidthPx, desktopWidthPx);\n const maxX = Math.max(0, desktopWidthPx - nextWidthPx);\n const nextX = clamp(Math.round(input.position.x), 0, maxX);\n\n return {\n position: {\n x: nextX,\n y: input.position.y\n },\n size: {\n width: nextWidthPx,\n height: input.height\n }\n };\n}\n","const workspaceDockAgentClaudeCodeUrl = new URL(\n \"./app/renderer/assets/icons/agents/workspace-dock-agent-claude-code.png\",\n import.meta.url\n).href;\nconst workspaceDockAgentCodexUrl = new URL(\n \"./app/renderer/assets/icons/agents/workspace-dock-agent-codex.png\",\n import.meta.url\n).href;\nconst workspaceDockAgentGeminiUrl = new URL(\n \"./app/renderer/assets/icons/agents/workspace-dock-agent-gemini.png\",\n import.meta.url\n).href;\nconst workspaceDockAgentNexightUrl = new URL(\n \"./app/renderer/assets/icons/agents/workspace-dock-agent-nexight.png\",\n import.meta.url\n).href;\nconst workspaceDockAgentOpenclawUrl = new URL(\n \"./app/renderer/assets/icons/agents/workspace-dock-agent-openclaw.png\",\n import.meta.url\n).href;\nconst workspaceDockAgentHermesUrl = new URL(\n \"./app/renderer/assets/icons/agents/manage-agent-hermes.png\",\n import.meta.url\n).href;\n\nexport const agentGuiDockIconUrl = workspaceDockAgentCodexUrl;\n\nexport const agentGuiDockIconUrls = {\n \"claude-code\": workspaceDockAgentClaudeCodeUrl,\n codex: workspaceDockAgentCodexUrl,\n gemini: workspaceDockAgentGeminiUrl,\n hermes: workspaceDockAgentHermesUrl,\n nexight: workspaceDockAgentNexightUrl,\n openclaw: workspaceDockAgentOpenclawUrl\n} as const;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../agent-gui/agentGuiNode/model/agentGuiRailLayout.ts","../dockIcons.ts"],"sourcesContent":["function clamp(value: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, value));\n}\n\n// Keep aligned with the issue manager task-list rail dimensions.\nexport const AGENT_GUI_CONVERSATION_RAIL_DEFAULT_WIDTH_PX = 280;\nexport const AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX = 248;\nexport const AGENT_GUI_CONVERSATION_RAIL_MAX_WIDTH_PX = 520;\nexport const AGENT_GUI_DETAIL_MIN_WIDTH_PX = 220;\nexport const AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX = 10;\nexport const AGENT_GUI_COLLAPSED_MIN_WIDTH_PX = 460;\nexport const AGENT_GUI_EXPANDED_MIN_WIDTH_PX =\n AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX +\n AGENT_GUI_DETAIL_MIN_WIDTH_PX +\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX;\nexport const AGENT_GUI_AUTO_COLLAPSE_WIDTH_PX = 610;\nexport const AGENT_GUI_EXPANDED_TARGET_WIDTH_PX = 800;\n\nexport interface AgentGUIExpandedWindowFrameInput {\n position: { x: number; y: number };\n width: number;\n height: number;\n desktopSize: { width: number; height: number };\n conversationRailWidthPx: number | null | undefined;\n}\n\nexport function shouldAutoCollapseAgentGUIConversationRail(\n containerWidthPx: number\n): boolean {\n return (\n Number.isFinite(containerWidthPx) &&\n containerWidthPx > 0 &&\n containerWidthPx <= AGENT_GUI_AUTO_COLLAPSE_WIDTH_PX\n );\n}\n\nexport function resolveAgentGUIConversationRailMaxWidthPx(\n containerWidthPx: number\n): number {\n const safeContainerWidth =\n Number.isFinite(containerWidthPx) && containerWidthPx > 0\n ? containerWidthPx\n : AGENT_GUI_CONVERSATION_RAIL_DEFAULT_WIDTH_PX +\n AGENT_GUI_DETAIL_MIN_WIDTH_PX +\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX;\n\n return Math.max(\n AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX,\n Math.min(\n AGENT_GUI_CONVERSATION_RAIL_MAX_WIDTH_PX,\n safeContainerWidth -\n AGENT_GUI_DETAIL_MIN_WIDTH_PX -\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX\n )\n );\n}\n\nexport function clampAgentGUIConversationRailWidthPx(\n widthPx: number | null | undefined,\n containerWidthPx: number\n): number {\n const preferredWidthPx =\n typeof widthPx === \"number\" && Number.isFinite(widthPx)\n ? Math.round(widthPx)\n : null;\n\n return clamp(\n preferredWidthPx ?? AGENT_GUI_CONVERSATION_RAIL_DEFAULT_WIDTH_PX,\n AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX,\n resolveAgentGUIConversationRailMaxWidthPx(containerWidthPx)\n );\n}\n\nexport function resolveNextAgentGUIConversationRailWidthPx(input: {\n currentWidthPx: number | null | undefined;\n requestedWidthPx: number;\n containerWidthPx: number;\n}): number | null {\n const nextWidthPx = clampAgentGUIConversationRailWidthPx(\n input.requestedWidthPx,\n input.containerWidthPx\n );\n if (input.currentWidthPx === nextWidthPx) {\n return input.currentWidthPx;\n }\n\n if (input.currentWidthPx === null || input.currentWidthPx === undefined) {\n const defaultWidthPx = clampAgentGUIConversationRailWidthPx(\n null,\n input.containerWidthPx\n );\n if (nextWidthPx === defaultWidthPx) {\n return null;\n }\n }\n\n return nextWidthPx;\n}\n\nexport function resolveAgentGUIExpandedWindowFrame(\n input: AgentGUIExpandedWindowFrameInput\n): {\n position: { x: number; y: number };\n size: { width: number; height: number };\n} {\n const desiredRailWidthPx = clampAgentGUIConversationRailWidthPx(\n input.conversationRailWidthPx,\n AGENT_GUI_CONVERSATION_RAIL_MAX_WIDTH_PX +\n AGENT_GUI_DETAIL_MIN_WIDTH_PX +\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX\n );\n const desiredWidthPx = Math.max(\n Math.round(input.width),\n desiredRailWidthPx +\n AGENT_GUI_DETAIL_MIN_WIDTH_PX +\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX,\n AGENT_GUI_EXPANDED_MIN_WIDTH_PX,\n AGENT_GUI_EXPANDED_TARGET_WIDTH_PX\n );\n const desktopWidthPx =\n Number.isFinite(input.desktopSize.width) && input.desktopSize.width > 0\n ? Math.round(input.desktopSize.width)\n : desiredWidthPx;\n const nextWidthPx = Math.min(desiredWidthPx, desktopWidthPx);\n const maxX = Math.max(0, desktopWidthPx - nextWidthPx);\n const nextX = clamp(Math.round(input.position.x), 0, maxX);\n\n return {\n position: {\n x: nextX,\n y: input.position.y\n },\n size: {\n width: nextWidthPx,\n height: input.height\n }\n };\n}\n","import {\n codexRoundedUrl,\n geminiRoundedUrl,\n hermesRoundedUrl,\n manageAgentClaudeCodeUrl,\n manageAgentNextopUrl,\n openclawRoundedUrl\n} from \"./managedAgentIconAssets.ts\";\n\nexport const agentGuiDockIconUrl = codexRoundedUrl;\n\nexport const agentGuiDockIconUrls = {\n \"claude-code\": manageAgentClaudeCodeUrl,\n codex: codexRoundedUrl,\n gemini: geminiRoundedUrl,\n hermes: hermesRoundedUrl,\n nexight: manageAgentNextopUrl,\n openclaw: openclawRoundedUrl\n} as const;\n"],"mappings":";;;;;;;;;;AAAA,SAAS,MAAM,OAAe,KAAa,KAAqB;AAC9D,SAAO,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC;AAC3C;AAGO,IAAM,+CAA+C;AACrD,IAAM,2CAA2C;AACjD,IAAM,2CAA2C;AACjD,IAAM,gCAAgC;AACtC,IAAM,wCAAwC;AAC9C,IAAM,mCAAmC;AACzC,IAAM,kCACX,2CACA,gCACA;AACK,IAAM,mCAAmC;AACzC,IAAM,qCAAqC;AAU3C,SAAS,2CACd,kBACS;AACT,SACE,OAAO,SAAS,gBAAgB,KAChC,mBAAmB,KACnB,oBAAoB;AAExB;AAEO,SAAS,0CACd,kBACQ;AACR,QAAM,qBACJ,OAAO,SAAS,gBAAgB,KAAK,mBAAmB,IACpD,mBACA,+CACA,gCACA;AAEN,SAAO,KAAK;AAAA,IACV;AAAA,IACA,KAAK;AAAA,MACH;AAAA,MACA,qBACE,gCACA;AAAA,IACJ;AAAA,EACF;AACF;AAEO,SAAS,qCACd,SACA,kBACQ;AACR,QAAM,mBACJ,OAAO,YAAY,YAAY,OAAO,SAAS,OAAO,IAClD,KAAK,MAAM,OAAO,IAClB;AAEN,SAAO;AAAA,IACL,oBAAoB;AAAA,IACpB;AAAA,IACA,0CAA0C,gBAAgB;AAAA,EAC5D;AACF;AAEO,SAAS,2CAA2C,OAIzC;AAChB,QAAM,cAAc;AAAA,IAClB,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AACA,MAAI,MAAM,mBAAmB,aAAa;AACxC,WAAO,MAAM;AAAA,EACf;AAEA,MAAI,MAAM,mBAAmB,QAAQ,MAAM,mBAAmB,QAAW;AACvE,UAAM,iBAAiB;AAAA,MACrB;AAAA,MACA,MAAM;AAAA,IACR;AACA,QAAI,gBAAgB,gBAAgB;AAClC,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,mCACd,OAIA;AACA,QAAM,qBAAqB;AAAA,IACzB,MAAM;AAAA,IACN,2CACE,gCACA;AAAA,EACJ;AACA,QAAM,iBAAiB,KAAK;AAAA,IAC1B,KAAK,MAAM,MAAM,KAAK;AAAA,IACtB,qBACE,gCACA;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACA,QAAM,iBACJ,OAAO,SAAS,MAAM,YAAY,KAAK,KAAK,MAAM,YAAY,QAAQ,IAClE,KAAK,MAAM,MAAM,YAAY,KAAK,IAClC;AACN,QAAM,cAAc,KAAK,IAAI,gBAAgB,cAAc;AAC3D,QAAM,OAAO,KAAK,IAAI,GAAG,iBAAiB,WAAW;AACrD,QAAM,QAAQ,MAAM,KAAK,MAAM,MAAM,SAAS,CAAC,GAAG,GAAG,IAAI;AAEzD,SAAO;AAAA,IACL,UAAU;AAAA,MACR,GAAG;AAAA,MACH,GAAG,MAAM,SAAS;AAAA,IACpB;AAAA,IACA,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,QAAQ,MAAM;AAAA,IAChB;AAAA,EACF;AACF;;;AChIO,IAAM,sBAAsB;AAE5B,IAAM,uBAAuB;AAAA,EAClC,eAAe;AAAA,EACf,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AACZ;","names":[]}
@@ -718,6 +718,7 @@ var en = {
718
718
  approvalUnavailable: "No choices are available.",
719
719
  approvalOptions: {
720
720
  allowOnce: "Yes, proceed",
721
+ allowForSession: "Yes, for this session",
721
722
  allowAlways: "Yes, and don't ask again",
722
723
  allowAlwaysForCommandPrefix: "Yes, and don't ask again for commands that start with `{{command}}`",
723
724
  allowAlwaysForCommandPrefixLead: "Yes, and don't ask again for commands that start with",
@@ -1583,6 +1584,7 @@ var en = {
1583
1584
  taskCompletedCount: "{{count}} completed",
1584
1585
  issueStatusNotStarted: "To run",
1585
1586
  issueStatusRunning: "Running",
1587
+ issueStatusInProgress: "Progress started",
1586
1588
  issueStatusPendingAcceptance: "Pending acceptance",
1587
1589
  issueStatusCompleted: "Completed",
1588
1590
  issueStatusFailed: "Failed",
@@ -3007,6 +3009,7 @@ var zhCN = {
3007
3009
  approvalUnavailable: "\u6CA1\u6709\u53EF\u7528\u9009\u9879\u3002",
3008
3010
  approvalOptions: {
3009
3011
  allowOnce: "\u5141\u8BB8\u6267\u884C",
3012
+ allowForSession: "\u672C\u6B21\u4F1A\u8BDD\u5141\u8BB8",
3010
3013
  allowAlways: "\u5141\u8BB8\uFF0C\u5E76\u4E14\u4E0D\u518D\u8BE2\u95EE",
3011
3014
  allowAlwaysForCommandPrefix: "\u5141\u8BB8\uFF0C\u5E76\u4E14\u4E0D\u518D\u8BE2\u95EE\u4EE5 `{{command}}` \u5F00\u5934\u7684\u547D\u4EE4",
3012
3015
  allowAlwaysForCommandPrefixLead: "\u5141\u8BB8\uFF0C\u5E76\u4E14\u4E0D\u518D\u8BE2\u95EE\u4EE5\u4E0B\u5217\u5185\u5BB9\u5F00\u5934\u7684\u547D\u4EE4",
@@ -3871,6 +3874,7 @@ var zhCN = {
3871
3874
  taskCompletedCount: "{{count}} \u4E2A\u5DF2\u5B8C\u6210",
3872
3875
  issueStatusNotStarted: "\u672A\u542F\u52A8",
3873
3876
  issueStatusRunning: "\u6267\u884C\u4E2D",
3877
+ issueStatusInProgress: "\u5DF2\u63A8\u8FDB",
3874
3878
  issueStatusPendingAcceptance: "\u5F85\u9A8C\u6536",
3875
3879
  issueStatusCompleted: "\u5DF2\u5B8C\u6210",
3876
3880
  issueStatusFailed: "\u5931\u8D25",
@@ -4692,4 +4696,4 @@ export {
4692
4696
  AgentGuiI18nProvider,
4693
4697
  useTranslation
4694
4698
  };
4695
- //# sourceMappingURL=chunk-HSR5DI6O.js.map
4699
+ //# sourceMappingURL=chunk-JWVLIF5R.js.map