@tutti-os/agent-gui 0.0.3
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/LICENSE +202 -0
- package/README.md +56 -0
- package/dist/agent-message-center/index.d.ts +218 -0
- package/dist/agent-message-center/index.js +1962 -0
- package/dist/agent-message-center/index.js.map +1 -0
- package/dist/agent-rich-text-at-provider.d.ts +49 -0
- package/dist/agent-rich-text-at-provider.js +7 -0
- package/dist/agent-rich-text-at-provider.js.map +1 -0
- package/dist/agent-title-text.d.ts +3 -0
- package/dist/agent-title-text.js +7 -0
- package/dist/agent-title-text.js.map +1 -0
- package/dist/app/renderer/agentactivity.css +6773 -0
- package/dist/app/renderer/assets/icons/agent-sessions-filled.svg +1 -0
- package/dist/app/renderer/assets/icons/agents/claude-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/codex-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/gemini-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/hermes-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/manage-agent-claude-code.png +0 -0
- package/dist/app/renderer/assets/icons/agents/manage-agent-codex.png +0 -0
- package/dist/app/renderer/assets/icons/agents/manage-agent-gemini.png +0 -0
- package/dist/app/renderer/assets/icons/agents/manage-agent-hermes.png +0 -0
- package/dist/app/renderer/assets/icons/agents/manage-agent-nextop.png +0 -0
- package/dist/app/renderer/assets/icons/agents/manage-agent-openclaw.png +0 -0
- package/dist/app/renderer/assets/icons/agents/nextop-doc-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/openclaw-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-claude-code.png +0 -0
- package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-codex.png +0 -0
- package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-gemini.png +0 -0
- package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-nexight.png +0 -0
- package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-openclaw.png +0 -0
- package/dist/app/renderer/assets/icons/code-filled.svg +1 -0
- package/dist/app/renderer/assets/icons/doc-filled.svg +1 -0
- package/dist/app/renderer/assets/icons/folder-filled.svg +1 -0
- package/dist/app/renderer/assets/icons/image-filled.svg +1 -0
- package/dist/app/renderer/assets/icons/issue-filled.svg +1 -0
- package/dist/app/renderer/assets/icons/product-filled.svg +1 -0
- package/dist/app/renderer/assets/icons/user-avatar-placeholder.png +0 -0
- package/dist/app/renderer/assets/icons/video-filled.svg +1 -0
- package/dist/chunk-22L4VWUR.js +70 -0
- package/dist/chunk-22L4VWUR.js.map +1 -0
- package/dist/chunk-3D5VTIKP.js +93 -0
- package/dist/chunk-3D5VTIKP.js.map +1 -0
- package/dist/chunk-AF5CXBJN.js +3075 -0
- package/dist/chunk-AF5CXBJN.js.map +1 -0
- package/dist/chunk-BABBC24I.js +28 -0
- package/dist/chunk-BABBC24I.js.map +1 -0
- package/dist/chunk-GCBDIQDX.js +22 -0
- package/dist/chunk-GCBDIQDX.js.map +1 -0
- package/dist/chunk-HSR5DI6O.js +4695 -0
- package/dist/chunk-HSR5DI6O.js.map +1 -0
- package/dist/chunk-IVPB4MLI.js +7 -0
- package/dist/chunk-IVPB4MLI.js.map +1 -0
- package/dist/chunk-KCC3GNPB.js +13 -0
- package/dist/chunk-KCC3GNPB.js.map +1 -0
- package/dist/chunk-PJP5BUU6.js +18 -0
- package/dist/chunk-PJP5BUU6.js.map +1 -0
- package/dist/chunk-RORLLV27.js +144 -0
- package/dist/chunk-RORLLV27.js.map +1 -0
- package/dist/chunk-UJWUGMWC.js +128 -0
- package/dist/chunk-UJWUGMWC.js.map +1 -0
- package/dist/chunk-UKQIGNN3.js +921 -0
- package/dist/chunk-UKQIGNN3.js.map +1 -0
- package/dist/chunk-ZP7P7DYO.js +270 -0
- package/dist/chunk-ZP7P7DYO.js.map +1 -0
- package/dist/chunk-ZX5PDYAS.js +346 -0
- package/dist/chunk-ZX5PDYAS.js.map +1 -0
- package/dist/claude-rounded-F6VPQETB.png +0 -0
- package/dist/codex-rounded-SC63MZAW.png +0 -0
- package/dist/gemini-rounded-O4KAJFIM.png +0 -0
- package/dist/hermes-rounded-QGDHBNRJ.png +0 -0
- package/dist/i18n/index.d.ts +4580 -0
- package/dist/i18n/index.js +19 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/index.d.ts +775 -0
- package/dist/index.js +33699 -0
- package/dist/index.js.map +1 -0
- package/dist/manage-agent-claude-code-F6VPQETB.png +0 -0
- package/dist/manage-agent-codex-SC63MZAW.png +0 -0
- package/dist/manage-agent-gemini-O4KAJFIM.png +0 -0
- package/dist/manage-agent-hermes-QGDHBNRJ.png +0 -0
- package/dist/manage-agent-nextop-UFAQ22K2.png +0 -0
- package/dist/manage-agent-openclaw-24U7O6CA.png +0 -0
- package/dist/mention-file-presentation.d.ts +16 -0
- package/dist/mention-file-presentation.js +10 -0
- package/dist/mention-file-presentation.js.map +1 -0
- package/dist/nextop-doc-rounded-UFAQ22K2.png +0 -0
- package/dist/openclaw-rounded-24U7O6CA.png +0 -0
- package/dist/user-avatar-placeholder-WP2373TS.png +0 -0
- package/dist/workbench/contribution.d.ts +42 -0
- package/dist/workbench/contribution.js +24 -0
- package/dist/workbench/contribution.js.map +1 -0
- package/dist/workbench/index.d.ts +24 -0
- package/dist/workbench/index.js +82 -0
- package/dist/workbench/index.js.map +1 -0
- package/dist/workbench/launch.d.ts +49 -0
- package/dist/workbench/launch.js +23 -0
- package/dist/workbench/launch.js.map +1 -0
- package/dist/workbench/providerCatalog.d.ts +15 -0
- package/dist/workbench/providerCatalog.js +27 -0
- package/dist/workbench/providerCatalog.js.map +1 -0
- package/dist/workbench/state.d.ts +22 -0
- package/dist/workbench/state.js +22 -0
- package/dist/workbench/state.js.map +1 -0
- package/dist/workbench/types.d.ts +43 -0
- package/dist/workbench/types.js +7 -0
- package/dist/workbench/types.js.map +1 -0
- package/dist/workspace-agent-generated-files.d.ts +2 -0
- package/dist/workspace-agent-generated-files.js +21 -0
- package/dist/workspace-agent-generated-files.js.map +1 -0
- package/dist/workspaceAgentActivityListViewModel-PvLQDj60.d.ts +309 -0
- package/dist/workspaceLinkActions-Bwa-phu8.d.ts +51 -0
- package/package.json +166 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25"><path fill="#000" d="M20.833 2.125a3.085 3.085 0 0 1 3.083 3.083v12.5a3.084 3.084 0 0 1-3.083 3.084H7.113c-.288 0-.563.114-.766.317l-2.294 2.294a1.74 1.74 0 0 1-2.97-1.23V5.208a3.084 3.084 0 0 1 3.083-3.083zM8.5 9A1.5 1.5 0 0 0 7 10.5v2a1.5 1.5 0 0 0 3 0v-2A1.5 1.5 0 0 0 8.5 9m8 0a1.5 1.5 0 0 0-1.5 1.5v2a1.5 1.5 0 0 0 3 0v-2A1.5 1.5 0 0 0 16.5 9"/></svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="#000" d="M14 1.001a3.4 3.4 0 0 1 2.411.998l3.586 3.586.116.121A3.4 3.4 0 0 1 21 8v12a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm-3.375 10.718a1 1 0 0 0-1.406.156l-2 2.5a1 1 0 0 0 0 1.25l2 2.5a1.001 1.001 0 0 0 1.562-1.25L9.281 15l1.5-1.875a1 1 0 0 0-.156-1.406m4.156.156a1.001 1.001 0 0 0-1.562 1.25l1.5 1.875-1.5 1.875a1.001 1.001 0 0 0 1.562 1.25l2-2.5a1 1 0 0 0 0-1.25zM14.5 6.5a1 1 0 0 0 1 1h4l-5-5z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="#000" d="M14 1.001a3.4 3.4 0 0 1 2.411.998l3.586 3.586.116.121A3.4 3.4 0 0 1 21 8v12a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm.5 5.499a1 1 0 0 0 1 1h4l-5-5z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="#000" d="M8.93 2a3 3 0 0 1 2.505 1.35l.804 1.19.006.01a1 1 0 0 0 .845.45H20a3 3 0 0 1 3 3v11a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="#000" d="M14 1.001a3.4 3.4 0 0 1 2.411.998l3.586 3.586.116.121A3.4 3.4 0 0 1 21 8v12a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm2.102 13.444a2 2 0 0 0-3.132.057L8 21l9.418-.006c1.59-.116 2.429-2.001 1.388-3.265zM9 10a2 2 0 1 0 0 4 2 2 0 0 0 0-4m5.5-3.5a1 1 0 0 0 1 1h4l-5-5z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="#000" d="M18.75 2a3.4 3.4 0 0 1 2.255.838c.62.55.995 1.326.995 2.162v14c0 .836-.375 1.611-.995 2.162A3.4 3.4 0 0 1 18.75 22H5.25a3.4 3.4 0 0 1-2.255-.838A2.9 2.9 0 0 1 2 19V5c0-.836.375-1.611.995-2.162A3.4 3.4 0 0 1 5.25 2zm-7.912 12.115a1 1 0 0 0-1.414 0l-2.047 2.047-.67-.67a1 1 0 0 0-1.414 1.414l1.377 1.377a1 1 0 0 0 1.414 0l2.754-2.754a1 1 0 0 0 0-1.414m3.046 2.298a1 1 0 0 0 0 2h4a1 1 0 1 0 0-2zm0-5.5a1 1 0 0 0 0 2h4a1 1 0 1 0 0-2zM6.688 5.25C5.756 5.25 5 6.006 5 6.938v2.754c0 .933.756 1.689 1.688 1.689h2.754a1.69 1.69 0 0 0 1.689-1.689V6.938c0-.932-.756-1.688-1.689-1.688zm2.443 2v2.13H7V7.25zm4.753-1.837a1 1 0 0 0 0 2h4a1 1 0 0 0 0-2z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="#000" d="M14 1.001a3.4 3.4 0 0 1 2.411.998l3.586 3.586.116.121A3.4 3.4 0 0 1 21 8v12a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zM8 16a1 1 0 1 0 0 2h8a1 1 0 1 0 0-2zm0-4a1 1 0 1 0 0 2h8a1 1 0 1 0 0-2zm0-4a1 1 0 0 0 0 2h2a1 1 0 1 0 0-2zm6.5-1.5a1 1 0 0 0 1 1h4l-5-5z"/></svg>
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="#000" d="M14 1.001a3.4 3.4 0 0 1 2.411.998l3.586 3.586.116.121A3.4 3.4 0 0 1 21 8v12a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm-3.355 10.001a.647.647 0 0 0-.645.646v4.704a.646.646 0 0 0 .968.56l4.065-2.352a.647.647 0 0 0 0-1.12l-4.066-2.352a.65.65 0 0 0-.322-.086M14.5 6.5a1 1 0 0 0 1 1h4l-5-5z"/></svg>
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// workbench/providerCatalog.ts
|
|
2
|
+
var agentGuiWorkbenchProviders = [
|
|
3
|
+
"claude-code",
|
|
4
|
+
"codex",
|
|
5
|
+
"nexight",
|
|
6
|
+
"hermes",
|
|
7
|
+
"gemini",
|
|
8
|
+
"openclaw"
|
|
9
|
+
];
|
|
10
|
+
var agentGuiWorkbenchDefaultDockProviders = [
|
|
11
|
+
"codex",
|
|
12
|
+
"claude-code"
|
|
13
|
+
];
|
|
14
|
+
var agentGuiWorkbenchDockSuppressedProviders = [
|
|
15
|
+
"hermes",
|
|
16
|
+
"gemini"
|
|
17
|
+
];
|
|
18
|
+
var agentGuiWorkbenchComingSoonProviders = [
|
|
19
|
+
"nexight"
|
|
20
|
+
];
|
|
21
|
+
var defaultDockProviderSet = new Set(
|
|
22
|
+
agentGuiWorkbenchDefaultDockProviders
|
|
23
|
+
);
|
|
24
|
+
var dockSuppressedProviderSet = new Set(
|
|
25
|
+
agentGuiWorkbenchDockSuppressedProviders
|
|
26
|
+
);
|
|
27
|
+
var comingSoonProviderSet = new Set(
|
|
28
|
+
agentGuiWorkbenchComingSoonProviders
|
|
29
|
+
);
|
|
30
|
+
var agentGuiWorkbenchProviderLabels = {
|
|
31
|
+
"claude-code": "Claude Code",
|
|
32
|
+
codex: "Codex",
|
|
33
|
+
gemini: "Gemini CLI",
|
|
34
|
+
hermes: "Hermes Agent",
|
|
35
|
+
nexight: "Nexight",
|
|
36
|
+
openclaw: "OpenClaw"
|
|
37
|
+
};
|
|
38
|
+
function resolveAgentGuiWorkbenchProviderLabel(provider) {
|
|
39
|
+
return agentGuiWorkbenchProviderLabels[provider];
|
|
40
|
+
}
|
|
41
|
+
function isAgentGuiWorkbenchDefaultDockProvider(provider) {
|
|
42
|
+
return defaultDockProviderSet.has(provider);
|
|
43
|
+
}
|
|
44
|
+
function isAgentGuiWorkbenchDockSuppressedProvider(provider) {
|
|
45
|
+
return dockSuppressedProviderSet.has(provider);
|
|
46
|
+
}
|
|
47
|
+
function isAgentGuiWorkbenchComingSoonProvider(provider) {
|
|
48
|
+
return comingSoonProviderSet.has(provider);
|
|
49
|
+
}
|
|
50
|
+
function isAgentGuiWorkbenchProvider(value) {
|
|
51
|
+
return typeof value === "string" && agentGuiWorkbenchProviders.includes(value);
|
|
52
|
+
}
|
|
53
|
+
function normalizeAgentGuiWorkbenchProvider(value, fallbackProvider = "codex") {
|
|
54
|
+
return isAgentGuiWorkbenchProvider(value) ? value : fallbackProvider;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export {
|
|
58
|
+
agentGuiWorkbenchProviders,
|
|
59
|
+
agentGuiWorkbenchDefaultDockProviders,
|
|
60
|
+
agentGuiWorkbenchDockSuppressedProviders,
|
|
61
|
+
agentGuiWorkbenchComingSoonProviders,
|
|
62
|
+
agentGuiWorkbenchProviderLabels,
|
|
63
|
+
resolveAgentGuiWorkbenchProviderLabel,
|
|
64
|
+
isAgentGuiWorkbenchDefaultDockProvider,
|
|
65
|
+
isAgentGuiWorkbenchDockSuppressedProvider,
|
|
66
|
+
isAgentGuiWorkbenchComingSoonProvider,
|
|
67
|
+
isAgentGuiWorkbenchProvider,
|
|
68
|
+
normalizeAgentGuiWorkbenchProvider
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=chunk-22L4VWUR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../workbench/providerCatalog.ts"],"sourcesContent":["import type { AgentGuiWorkbenchProvider } from \"./types.ts\";\n\nexport const agentGuiWorkbenchProviders = [\n \"claude-code\",\n \"codex\",\n \"nexight\",\n \"hermes\",\n \"gemini\",\n \"openclaw\"\n] as const satisfies readonly AgentGuiWorkbenchProvider[];\n\nexport const agentGuiWorkbenchDefaultDockProviders = [\n \"codex\",\n \"claude-code\"\n] as const satisfies readonly AgentGuiWorkbenchProvider[];\n\nexport const agentGuiWorkbenchDockSuppressedProviders = [\n \"hermes\",\n \"gemini\"\n] as const satisfies readonly AgentGuiWorkbenchProvider[];\n\nexport const agentGuiWorkbenchComingSoonProviders = [\n \"nexight\"\n] as const satisfies readonly AgentGuiWorkbenchProvider[];\n\nconst defaultDockProviderSet = new Set<AgentGuiWorkbenchProvider>(\n agentGuiWorkbenchDefaultDockProviders\n);\nconst dockSuppressedProviderSet = new Set<AgentGuiWorkbenchProvider>(\n agentGuiWorkbenchDockSuppressedProviders\n);\nconst comingSoonProviderSet = new Set<AgentGuiWorkbenchProvider>(\n agentGuiWorkbenchComingSoonProviders\n);\n\n// i18n-check-ignore: provider brand names.\nexport const agentGuiWorkbenchProviderLabels: Record<\n AgentGuiWorkbenchProvider,\n string\n> = {\n \"claude-code\": \"Claude Code\",\n codex: \"Codex\",\n gemini: \"Gemini CLI\",\n hermes: \"Hermes Agent\",\n nexight: \"Nexight\",\n openclaw: \"OpenClaw\"\n};\n\nexport function resolveAgentGuiWorkbenchProviderLabel(\n provider: AgentGuiWorkbenchProvider\n): string {\n return agentGuiWorkbenchProviderLabels[provider];\n}\n\nexport function isAgentGuiWorkbenchDefaultDockProvider(\n provider: AgentGuiWorkbenchProvider\n): boolean {\n return defaultDockProviderSet.has(provider);\n}\n\nexport function isAgentGuiWorkbenchDockSuppressedProvider(\n provider: AgentGuiWorkbenchProvider\n): boolean {\n return dockSuppressedProviderSet.has(provider);\n}\n\nexport function isAgentGuiWorkbenchComingSoonProvider(\n provider: AgentGuiWorkbenchProvider\n): boolean {\n return comingSoonProviderSet.has(provider);\n}\n\nexport function isAgentGuiWorkbenchProvider(\n value: unknown\n): value is AgentGuiWorkbenchProvider {\n return (\n typeof value === \"string\" &&\n agentGuiWorkbenchProviders.includes(value as AgentGuiWorkbenchProvider)\n );\n}\n\nexport function normalizeAgentGuiWorkbenchProvider(\n value: unknown,\n fallbackProvider: AgentGuiWorkbenchProvider = \"codex\"\n): AgentGuiWorkbenchProvider {\n return isAgentGuiWorkbenchProvider(value) ? value : fallbackProvider;\n}\n"],"mappings":";AAEO,IAAM,6BAA6B;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,wCAAwC;AAAA,EACnD;AAAA,EACA;AACF;AAEO,IAAM,2CAA2C;AAAA,EACtD;AAAA,EACA;AACF;AAEO,IAAM,uCAAuC;AAAA,EAClD;AACF;AAEA,IAAM,yBAAyB,IAAI;AAAA,EACjC;AACF;AACA,IAAM,4BAA4B,IAAI;AAAA,EACpC;AACF;AACA,IAAM,wBAAwB,IAAI;AAAA,EAChC;AACF;AAGO,IAAM,kCAGT;AAAA,EACF,eAAe;AAAA,EACf,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AACZ;AAEO,SAAS,sCACd,UACQ;AACR,SAAO,gCAAgC,QAAQ;AACjD;AAEO,SAAS,uCACd,UACS;AACT,SAAO,uBAAuB,IAAI,QAAQ;AAC5C;AAEO,SAAS,0CACd,UACS;AACT,SAAO,0BAA0B,IAAI,QAAQ;AAC/C;AAEO,SAAS,sCACd,UACS;AACT,SAAO,sBAAsB,IAAI,QAAQ;AAC3C;AAEO,SAAS,4BACd,OACoC;AACpC,SACE,OAAO,UAAU,YACjB,2BAA2B,SAAS,KAAkC;AAE1E;AAEO,SAAS,mCACd,OACA,mBAA8C,SACnB;AAC3B,SAAO,4BAA4B,KAAK,IAAI,QAAQ;AACtD;","names":[]}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
// shared/workspaceAgentProviderLabel.ts
|
|
2
|
+
function workspaceAgentProviderLabel(provider) {
|
|
3
|
+
const normalized = provider.trim().toLowerCase();
|
|
4
|
+
switch (normalized) {
|
|
5
|
+
case "codex":
|
|
6
|
+
return "Codex";
|
|
7
|
+
case "claude-code":
|
|
8
|
+
return "Claude Code";
|
|
9
|
+
case "gemini":
|
|
10
|
+
return "Gemini";
|
|
11
|
+
case "openclaw":
|
|
12
|
+
return "OpenClaw";
|
|
13
|
+
case "hermes":
|
|
14
|
+
return "Hermes";
|
|
15
|
+
case "nexight":
|
|
16
|
+
return "Nexight";
|
|
17
|
+
case "unknown":
|
|
18
|
+
return "Unknown";
|
|
19
|
+
default:
|
|
20
|
+
return titleCase(provider);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function titleCase(value) {
|
|
24
|
+
return value.split(/[-_\s]+/).filter(Boolean).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join(" ");
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// shared/workspaceAgentSessionSortTime.ts
|
|
28
|
+
function resolveWorkspaceAgentSessionSortTimeUnixMs(session, context = {}) {
|
|
29
|
+
const hasSortContext = hasWorkspaceAgentSessionSortContext(context);
|
|
30
|
+
const fallbackUpdatedAtUnixMs = hasSortContext ? null : positiveNumber(session.updatedAtUnixMs);
|
|
31
|
+
return latestUserTurnStartTimeUnixMs(session, context) ?? positiveNumber(session.endedAtUnixMs) ?? fallbackUpdatedAtUnixMs ?? positiveNumber(session.startedAtUnixMs) ?? positiveNumber(session.createdAtUnixMs) ?? positiveNumber(session.id) ?? 0;
|
|
32
|
+
}
|
|
33
|
+
function hasWorkspaceAgentSessionSortContext(context) {
|
|
34
|
+
return Boolean(context.messages?.length);
|
|
35
|
+
}
|
|
36
|
+
function latestUserTurnStartTimeUnixMs(session, context) {
|
|
37
|
+
const sessionIds = new Set(
|
|
38
|
+
[session.agentSessionId, session.providerSessionId].map((value) => value?.trim()).filter((value) => Boolean(value))
|
|
39
|
+
);
|
|
40
|
+
const startsByTurnId = /* @__PURE__ */ new Map();
|
|
41
|
+
for (const message of context.messages ?? []) {
|
|
42
|
+
if (!matchesSession(message.agentSessionId, sessionIds)) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
const turnId = message.turnId?.trim();
|
|
46
|
+
if (!turnId) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const role = normalizeToken(message.role);
|
|
50
|
+
if (role === "user") {
|
|
51
|
+
const startedAtUnixMs = positiveNumber(message.occurredAtUnixMs);
|
|
52
|
+
if (startedAtUnixMs !== null) {
|
|
53
|
+
startsByTurnId.set(
|
|
54
|
+
turnId,
|
|
55
|
+
minNullable(startsByTurnId.get(turnId) ?? null, startedAtUnixMs)
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
let latest = null;
|
|
61
|
+
for (const startedAtUnixMs of startsByTurnId.values()) {
|
|
62
|
+
latest = latest === null ? startedAtUnixMs : Math.max(latest, startedAtUnixMs);
|
|
63
|
+
}
|
|
64
|
+
return latest;
|
|
65
|
+
}
|
|
66
|
+
function matchesSession(agentSessionId, sessionIds) {
|
|
67
|
+
if (sessionIds.size === 0) {
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
const normalized = agentSessionId?.trim();
|
|
71
|
+
return Boolean(normalized && sessionIds.has(normalized));
|
|
72
|
+
}
|
|
73
|
+
function minNullable(left, right) {
|
|
74
|
+
if (left === null) {
|
|
75
|
+
return right;
|
|
76
|
+
}
|
|
77
|
+
if (right === null) {
|
|
78
|
+
return left;
|
|
79
|
+
}
|
|
80
|
+
return Math.min(left, right);
|
|
81
|
+
}
|
|
82
|
+
function normalizeToken(value) {
|
|
83
|
+
return value?.trim().toLowerCase() ?? "";
|
|
84
|
+
}
|
|
85
|
+
function positiveNumber(value) {
|
|
86
|
+
return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : null;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export {
|
|
90
|
+
workspaceAgentProviderLabel,
|
|
91
|
+
resolveWorkspaceAgentSessionSortTimeUnixMs
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=chunk-3D5VTIKP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../shared/workspaceAgentProviderLabel.ts","../shared/workspaceAgentSessionSortTime.ts"],"sourcesContent":["export function workspaceAgentProviderLabel(provider: string): string {\n const normalized = provider.trim().toLowerCase();\n switch (normalized) {\n case \"codex\":\n return \"Codex\";\n case \"claude-code\":\n return \"Claude Code\";\n case \"gemini\":\n return \"Gemini\";\n case \"openclaw\":\n return \"OpenClaw\";\n case \"hermes\":\n return \"Hermes\";\n case \"nexight\":\n return \"Nexight\";\n case \"unknown\":\n return \"Unknown\";\n default:\n return titleCase(provider);\n }\n}\n\nfunction titleCase(value: string): string {\n return value\n .split(/[-_\\s]+/)\n .filter(Boolean)\n .map((part) => part.charAt(0).toUpperCase() + part.slice(1))\n .join(\" \");\n}\n","export interface WorkspaceAgentSessionSortTimeSession {\n createdAtUnixMs?: number;\n endedAtUnixMs?: number;\n id?: number;\n agentSessionId?: string;\n providerSessionId?: string | null;\n startedAtUnixMs?: number;\n updatedAtUnixMs?: number;\n}\n\nexport interface WorkspaceAgentSessionSortTimeMessage {\n agentSessionId?: string;\n occurredAtUnixMs?: number;\n role?: string;\n turnId?: string | null;\n}\n\nexport interface WorkspaceAgentSessionSortTimeContext {\n messages?: readonly WorkspaceAgentSessionSortTimeMessage[];\n}\n\nexport function resolveWorkspaceAgentSessionSortTimeUnixMs(\n session: WorkspaceAgentSessionSortTimeSession,\n context: WorkspaceAgentSessionSortTimeContext = {}\n): number {\n const hasSortContext = hasWorkspaceAgentSessionSortContext(context);\n const fallbackUpdatedAtUnixMs = hasSortContext\n ? null\n : positiveNumber(session.updatedAtUnixMs);\n return (\n latestUserTurnStartTimeUnixMs(session, context) ??\n positiveNumber(session.endedAtUnixMs) ??\n fallbackUpdatedAtUnixMs ??\n positiveNumber(session.startedAtUnixMs) ??\n positiveNumber(session.createdAtUnixMs) ??\n positiveNumber(session.id) ??\n 0\n );\n}\n\nfunction hasWorkspaceAgentSessionSortContext(\n context: WorkspaceAgentSessionSortTimeContext\n): boolean {\n return Boolean(context.messages?.length);\n}\n\nfunction latestUserTurnStartTimeUnixMs(\n session: WorkspaceAgentSessionSortTimeSession,\n context: WorkspaceAgentSessionSortTimeContext\n): number | null {\n const sessionIds = new Set(\n [session.agentSessionId, session.providerSessionId]\n .map((value) => value?.trim())\n .filter((value): value is string => Boolean(value))\n );\n const startsByTurnId = new Map<string, number>();\n for (const message of context.messages ?? []) {\n if (!matchesSession(message.agentSessionId, sessionIds)) {\n continue;\n }\n const turnId = message.turnId?.trim();\n if (!turnId) {\n continue;\n }\n const role = normalizeToken(message.role);\n if (role === \"user\") {\n const startedAtUnixMs = positiveNumber(message.occurredAtUnixMs);\n if (startedAtUnixMs !== null) {\n startsByTurnId.set(\n turnId,\n minNullable(startsByTurnId.get(turnId) ?? null, startedAtUnixMs)!\n );\n }\n }\n }\n let latest: number | null = null;\n for (const startedAtUnixMs of startsByTurnId.values()) {\n latest =\n latest === null ? startedAtUnixMs : Math.max(latest, startedAtUnixMs);\n }\n return latest;\n}\n\nfunction matchesSession(\n agentSessionId: string | undefined,\n sessionIds: ReadonlySet<string>\n): boolean {\n if (sessionIds.size === 0) {\n return true;\n }\n const normalized = agentSessionId?.trim();\n return Boolean(normalized && sessionIds.has(normalized));\n}\n\nfunction minNullable(left: number | null, right: number | null): number | null {\n if (left === null) {\n return right;\n }\n if (right === null) {\n return left;\n }\n return Math.min(left, right);\n}\n\nfunction normalizeToken(value: string | undefined): string {\n return value?.trim().toLowerCase() ?? \"\";\n}\n\nfunction positiveNumber(value: unknown): number | null {\n return typeof value === \"number\" && Number.isFinite(value) && value > 0\n ? value\n : null;\n}\n"],"mappings":";AAAO,SAAS,4BAA4B,UAA0B;AACpE,QAAM,aAAa,SAAS,KAAK,EAAE,YAAY;AAC/C,UAAQ,YAAY;AAAA,IAClB,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO,UAAU,QAAQ;AAAA,EAC7B;AACF;AAEA,SAAS,UAAU,OAAuB;AACxC,SAAO,MACJ,MAAM,SAAS,EACf,OAAO,OAAO,EACd,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,YAAY,IAAI,KAAK,MAAM,CAAC,CAAC,EAC1D,KAAK,GAAG;AACb;;;ACPO,SAAS,2CACd,SACA,UAAgD,CAAC,GACzC;AACR,QAAM,iBAAiB,oCAAoC,OAAO;AAClE,QAAM,0BAA0B,iBAC5B,OACA,eAAe,QAAQ,eAAe;AAC1C,SACE,8BAA8B,SAAS,OAAO,KAC9C,eAAe,QAAQ,aAAa,KACpC,2BACA,eAAe,QAAQ,eAAe,KACtC,eAAe,QAAQ,eAAe,KACtC,eAAe,QAAQ,EAAE,KACzB;AAEJ;AAEA,SAAS,oCACP,SACS;AACT,SAAO,QAAQ,QAAQ,UAAU,MAAM;AACzC;AAEA,SAAS,8BACP,SACA,SACe;AACf,QAAM,aAAa,IAAI;AAAA,IACrB,CAAC,QAAQ,gBAAgB,QAAQ,iBAAiB,EAC/C,IAAI,CAAC,UAAU,OAAO,KAAK,CAAC,EAC5B,OAAO,CAAC,UAA2B,QAAQ,KAAK,CAAC;AAAA,EACtD;AACA,QAAM,iBAAiB,oBAAI,IAAoB;AAC/C,aAAW,WAAW,QAAQ,YAAY,CAAC,GAAG;AAC5C,QAAI,CAAC,eAAe,QAAQ,gBAAgB,UAAU,GAAG;AACvD;AAAA,IACF;AACA,UAAM,SAAS,QAAQ,QAAQ,KAAK;AACpC,QAAI,CAAC,QAAQ;AACX;AAAA,IACF;AACA,UAAM,OAAO,eAAe,QAAQ,IAAI;AACxC,QAAI,SAAS,QAAQ;AACnB,YAAM,kBAAkB,eAAe,QAAQ,gBAAgB;AAC/D,UAAI,oBAAoB,MAAM;AAC5B,uBAAe;AAAA,UACb;AAAA,UACA,YAAY,eAAe,IAAI,MAAM,KAAK,MAAM,eAAe;AAAA,QACjE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,MAAI,SAAwB;AAC5B,aAAW,mBAAmB,eAAe,OAAO,GAAG;AACrD,aACE,WAAW,OAAO,kBAAkB,KAAK,IAAI,QAAQ,eAAe;AAAA,EACxE;AACA,SAAO;AACT;AAEA,SAAS,eACP,gBACA,YACS;AACT,MAAI,WAAW,SAAS,GAAG;AACzB,WAAO;AAAA,EACT;AACA,QAAM,aAAa,gBAAgB,KAAK;AACxC,SAAO,QAAQ,cAAc,WAAW,IAAI,UAAU,CAAC;AACzD;AAEA,SAAS,YAAY,MAAqB,OAAqC;AAC7E,MAAI,SAAS,MAAM;AACjB,WAAO;AAAA,EACT;AACA,MAAI,UAAU,MAAM;AAClB,WAAO;AAAA,EACT;AACA,SAAO,KAAK,IAAI,MAAM,KAAK;AAC7B;AAEA,SAAS,eAAe,OAAmC;AACzD,SAAO,OAAO,KAAK,EAAE,YAAY,KAAK;AACxC;AAEA,SAAS,eAAe,OAA+B;AACrD,SAAO,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,KAAK,QAAQ,IAClE,QACA;AACN;","names":[]}
|