@tutti-os/agent-gui 0.0.132 → 0.0.134

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 (96) hide show
  1. package/README.md +21 -4
  2. package/dist/{AgentRichTextReadonly-PEKCMRPE.js → AgentRichTextReadonly-HCKTNAYO.js} +7 -6
  3. package/dist/agent-conversation/index.d.ts +4 -6
  4. package/dist/agent-conversation/index.js +10 -10
  5. package/dist/agent-env/index.d.ts +10 -27
  6. package/dist/agent-env/index.js +14 -290
  7. package/dist/agent-env/index.js.map +1 -1
  8. package/dist/agent-gui.d.ts +1118 -20
  9. package/dist/agent-gui.js +18 -18
  10. package/dist/agent-message-center/index.d.ts +42 -7
  11. package/dist/agent-message-center/index.js +7 -7
  12. package/dist/{agentConversationVM-BD0-gg6C.d.ts → agentConversationVM-DWEy7jzx.d.ts} +41 -2
  13. package/dist/{agentFileMentionContracts-CWAeuL7S.d.ts → agentFileMentionContracts-B0yQizXB.d.ts} +5 -0
  14. package/dist/{agentGuiNodeTypes-5TL1hyCN.d.ts → agentGuiNodeTypes-DV7KvZRe.d.ts} +10 -26
  15. package/dist/agents.d.ts +1 -1
  16. package/dist/agents.js +1 -1
  17. package/dist/app/renderer/agentactivity.css +7 -0
  18. package/dist/app/renderer/assets/icons/@-lined.svg +1 -8
  19. package/dist/{chunk-PQJXWXTS.js → chunk-25VMCMAQ.js} +4 -4
  20. package/dist/{chunk-T2NICA5D.js → chunk-5WOCGIXJ.js} +7 -1
  21. package/dist/chunk-5WOCGIXJ.js.map +1 -0
  22. package/dist/chunk-DLCZJKCA.js +1 -0
  23. package/dist/chunk-DLCZJKCA.js.map +1 -0
  24. package/dist/{chunk-QQRTUHCH.js → chunk-EU7DCT4F.js} +2 -2
  25. package/dist/chunk-FM42UN2J.js +462 -0
  26. package/dist/chunk-FM42UN2J.js.map +1 -0
  27. package/dist/{chunk-SZOTLVH6.js → chunk-GIYGO2PB.js} +2 -2
  28. package/dist/{chunk-GCQYN7BR.js → chunk-IN3HXYOO.js} +4 -4
  29. package/dist/{chunk-YWHGCKMT.js → chunk-IYZ4GOSN.js} +10 -10
  30. package/dist/chunk-IYZ4GOSN.js.map +1 -0
  31. package/dist/{chunk-JZS4SWFJ.js → chunk-JI5KND3K.js} +60 -56
  32. package/dist/chunk-JI5KND3K.js.map +1 -0
  33. package/dist/{chunk-J4TTEMRW.js → chunk-KWGMK4IZ.js} +4 -4
  34. package/dist/{chunk-NE6H7S5Z.js → chunk-OFJNIQWR.js} +2 -2
  35. package/dist/{chunk-NE6H7S5Z.js.map → chunk-OFJNIQWR.js.map} +1 -1
  36. package/dist/{chunk-UARZZJJB.js → chunk-OI6BYC7P.js} +4 -4
  37. package/dist/{chunk-OBWM2RFE.js → chunk-QPEO4OQS.js} +308 -8
  38. package/dist/chunk-QPEO4OQS.js.map +1 -0
  39. package/dist/{chunk-XNE2ROCP.js → chunk-UA75CGAG.js} +3 -3
  40. package/dist/{chunk-PVTAFUDS.js → chunk-VGS7S7YT.js} +2 -2
  41. package/dist/{chunk-OQR3HXPF.js → chunk-VUNVGEQG.js} +7 -1
  42. package/dist/chunk-VUNVGEQG.js.map +1 -0
  43. package/dist/{chunk-G75CPIVV.js → chunk-Y5HD6XHP.js} +1040 -797
  44. package/dist/chunk-Y5HD6XHP.js.map +1 -0
  45. package/dist/{chunk-KPMQGPYU.js → chunk-ZVYUTXQJ.js} +1 -1
  46. package/dist/chunk-ZVYUTXQJ.js.map +1 -0
  47. package/dist/context-mention-palette/index.d.ts +1 -1
  48. package/dist/context-mention-palette/index.js +8 -7
  49. package/dist/{contribution-yc4CGJmy.d.ts → contribution-CDdwTppn.d.ts} +54 -1
  50. package/dist/custom-mention.d.ts +4 -2
  51. package/dist/custom-mention.js +1 -0
  52. package/dist/i18n/index.d.ts +17 -6
  53. package/dist/i18n/index.js +2 -2
  54. package/dist/index.d.ts +8026 -33
  55. package/dist/index.js +21 -21
  56. package/dist/index.js.map +1 -1
  57. package/dist/mention-search.d.ts +1 -1
  58. package/dist/mention-search.js +6 -5
  59. package/dist/runtime-Dwf44VKc.d.ts +7 -0
  60. package/dist/{types-BicfRVrV.d.ts → types-ee3zJ6Cc.d.ts} +6 -5
  61. package/dist/workbench/browser-element-context/index.d.ts +37 -0
  62. package/dist/workbench/browser-element-context/index.js +750 -0
  63. package/dist/workbench/browser-element-context/index.js.map +1 -0
  64. package/dist/workbench/contribution.d.ts +1 -2
  65. package/dist/workbench/contribution.js +4 -4
  66. package/dist/workbench/index.d.ts +1 -2
  67. package/dist/workbench/index.js +4 -4
  68. package/dist/workbench/sessionTitle.js +2 -2
  69. package/dist/workbench/tool-sidebar/index.d.ts +189 -0
  70. package/dist/workbench/tool-sidebar/index.js +1492 -0
  71. package/dist/workbench/tool-sidebar/index.js.map +1 -0
  72. package/dist/workspace-agent-generated-files.d.ts +12 -1
  73. package/package.json +28 -13
  74. package/dist/AgentGUI-DxypmD7b.d.ts +0 -1080
  75. package/dist/agentPlanPromptDispatch-C7cCMjve.d.ts +0 -37
  76. package/dist/chunk-G75CPIVV.js.map +0 -1
  77. package/dist/chunk-JZS4SWFJ.js.map +0 -1
  78. package/dist/chunk-KPMQGPYU.js.map +0 -1
  79. package/dist/chunk-OBWM2RFE.js.map +0 -1
  80. package/dist/chunk-OQR3HXPF.js.map +0 -1
  81. package/dist/chunk-T2NICA5D.js.map +0 -1
  82. package/dist/chunk-VMQNG2KI.js +0 -178
  83. package/dist/chunk-VMQNG2KI.js.map +0 -1
  84. package/dist/chunk-YWHGCKMT.js.map +0 -1
  85. package/dist/pastedTextKinds-D-XuInaS.d.ts +0 -4
  86. package/dist/runtime-BBNdWgDU.d.ts +0 -10
  87. package/dist/workspaceAgentActivityListTypes-DZfS_HgG.d.ts +0 -48
  88. /package/dist/{AgentRichTextReadonly-PEKCMRPE.js.map → AgentRichTextReadonly-HCKTNAYO.js.map} +0 -0
  89. /package/dist/{chunk-PQJXWXTS.js.map → chunk-25VMCMAQ.js.map} +0 -0
  90. /package/dist/{chunk-QQRTUHCH.js.map → chunk-EU7DCT4F.js.map} +0 -0
  91. /package/dist/{chunk-SZOTLVH6.js.map → chunk-GIYGO2PB.js.map} +0 -0
  92. /package/dist/{chunk-GCQYN7BR.js.map → chunk-IN3HXYOO.js.map} +0 -0
  93. /package/dist/{chunk-J4TTEMRW.js.map → chunk-KWGMK4IZ.js.map} +0 -0
  94. /package/dist/{chunk-UARZZJJB.js.map → chunk-OI6BYC7P.js.map} +0 -0
  95. /package/dist/{chunk-XNE2ROCP.js.map → chunk-UA75CGAG.js.map} +0 -0
  96. /package/dist/{chunk-PVTAFUDS.js.map → chunk-VGS7S7YT.js.map} +0 -0
@@ -40,4 +40,4 @@ export {
40
40
  useAgentTargetPresentations,
41
41
  resolveAgentTargetPresentation
42
42
  };
43
- //# sourceMappingURL=chunk-KPMQGPYU.js.map
43
+ //# sourceMappingURL=chunk-ZVYUTXQJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../app/renderer/lib/utils.ts","../shared/AgentTargetPresentationContext.tsx"],"sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import { createContext, useContext, type JSX, type ReactNode } from \"react\";\n\nexport interface AgentMessageMarkdownAgentTarget {\n agentTargetId: string;\n iconUrl?: string | null;\n maskIconUrl?: string | null;\n name?: string | null;\n provider?: string | null;\n workspaceId?: string | null;\n}\n\nconst EMPTY_AGENT_TARGETS: readonly AgentMessageMarkdownAgentTarget[] =\n Object.freeze([]);\n\nconst AgentTargetPresentationContext =\n createContext<readonly AgentMessageMarkdownAgentTarget[]>(\n EMPTY_AGENT_TARGETS\n );\n\nexport function AgentTargetPresentationProvider({\n agentTargets,\n children\n}: {\n agentTargets: readonly AgentMessageMarkdownAgentTarget[];\n children: ReactNode;\n}): JSX.Element {\n return (\n <AgentTargetPresentationContext.Provider value={agentTargets}>\n {children}\n </AgentTargetPresentationContext.Provider>\n );\n}\n\nexport function useAgentTargetPresentations(): readonly AgentMessageMarkdownAgentTarget[] {\n return useContext(AgentTargetPresentationContext);\n}\n\nexport function resolveAgentTargetPresentation(input: {\n agentTargetId: string;\n agentTargets: readonly AgentMessageMarkdownAgentTarget[];\n workspaceId?: string | null;\n}): AgentMessageMarkdownAgentTarget | null {\n const agentTargetId = input.agentTargetId.trim();\n if (!agentTargetId) {\n return null;\n }\n const workspaceId = input.workspaceId?.trim() ?? \"\";\n return (\n input.agentTargets.find(\n (target) =>\n target.agentTargetId.trim() === agentTargetId &&\n (target.workspaceId?.trim() ?? \"\") === workspaceId\n ) ??\n input.agentTargets.find(\n (target) => target.agentTargetId.trim() === agentTargetId\n ) ??\n null\n );\n}\n"],"mappings":";AAAA,SAA0B,YAAY;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAA8B;AAClD,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ACLA,SAAS,eAAe,kBAA4C;AA2BhE;AAhBJ,IAAM,sBACJ,OAAO,OAAO,CAAC,CAAC;AAElB,IAAM,iCACJ;AAAA,EACE;AACF;AAEK,SAAS,gCAAgC;AAAA,EAC9C;AAAA,EACA;AACF,GAGgB;AACd,SACE,oBAAC,+BAA+B,UAA/B,EAAwC,OAAO,cAC7C,UACH;AAEJ;AAEO,SAAS,8BAA0E;AACxF,SAAO,WAAW,8BAA8B;AAClD;AAEO,SAAS,+BAA+B,OAIJ;AACzC,QAAM,gBAAgB,MAAM,cAAc,KAAK;AAC/C,MAAI,CAAC,eAAe;AAClB,WAAO;AAAA,EACT;AACA,QAAM,cAAc,MAAM,aAAa,KAAK,KAAK;AACjD,SACE,MAAM,aAAa;AAAA,IACjB,CAAC,WACC,OAAO,cAAc,KAAK,MAAM,kBAC/B,OAAO,aAAa,KAAK,KAAK,QAAQ;AAAA,EAC3C,KACA,MAAM,aAAa;AAAA,IACjB,CAAC,WAAW,OAAO,cAAc,KAAK,MAAM;AAAA,EAC9C,KACA;AAEJ;","names":[]}
@@ -1,4 +1,4 @@
1
- import { A as AgentContextMentionItem } from '../agentFileMentionContracts-CWAeuL7S.js';
1
+ import { A as AgentContextMentionItem } from '../agentFileMentionContracts-B0yQizXB.js';
2
2
  import { AgentMentionSearchState, AgentMentionBrowseCategory, AgentMentionFilterId, AgentMentionGroupId } from '../mention-search.js';
3
3
  export { AgentMentionGroup, AgentMentionSearchController } from '../mention-search.js';
4
4
  import { ReactNode } from 'react';
@@ -3,27 +3,28 @@ import {
3
3
  AgentFileMentionPalette,
4
4
  flattenAgentMentionPaletteEntries,
5
5
  groupStartKeys
6
- } from "../chunk-UARZZJJB.js";
6
+ } from "../chunk-OI6BYC7P.js";
7
7
  import {
8
8
  AgentMentionSearchController
9
- } from "../chunk-J4TTEMRW.js";
9
+ } from "../chunk-KWGMK4IZ.js";
10
10
  import "../chunk-USIFGHT3.js";
11
11
  import "../chunk-XJ34OIEQ.js";
12
12
  import "../chunk-R7AXDQCA.js";
13
- import "../chunk-OBWM2RFE.js";
13
+ import "../chunk-QPEO4OQS.js";
14
14
  import "../chunk-5QPOMKMQ.js";
15
15
  import {
16
16
  AGENT_CONTEXT_MENTION_PROVIDER_IDS
17
17
  } from "../chunk-RMQREVJY.js";
18
- import "../chunk-QQRTUHCH.js";
18
+ import "../chunk-FGLQZ6I4.js";
19
+ import "../chunk-EU7DCT4F.js";
19
20
  import "../chunk-YMXYBG7U.js";
20
- import "../chunk-NE6H7S5Z.js";
21
+ import "../chunk-OFJNIQWR.js";
21
22
  import "../chunk-F5UR6EJG.js";
22
23
  import "../chunk-EDNJMG5T.js";
23
- import "../chunk-SZOTLVH6.js";
24
+ import "../chunk-GIYGO2PB.js";
24
25
  import "../chunk-PJP5BUU6.js";
25
26
  import "../chunk-7KVZPJ3O.js";
26
- import "../chunk-OQR3HXPF.js";
27
+ import "../chunk-VUNVGEQG.js";
27
28
  import "../chunk-MIJXEELH.js";
28
29
  import "../chunk-D2JUDUYY.js";
29
30
  import "../chunk-6CUELYIF.js";
@@ -1,9 +1,62 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { AgentSessionEngineState, AgentSessionEngine } from '@tutti-os/agent-activity-core';
3
3
  import { WorkbenchFrame, WorkbenchHostDockEntry, WorkbenchHostLaunchRequest, WorkbenchHostNodeBodyContext, WorkbenchContribution } from '@tutti-os/workbench-surface';
4
- import { A as AgentGUIAgent, d as AgentGUIAgentDirectoryPort } from './types-BicfRVrV.js';
5
4
  import { AgentGuiWorkbenchProvider, AgentGuiWorkbenchState } from './workbench/types.js';
6
5
 
6
+ /**
7
+ * Open runtime metadata reported by an Agent Target.
8
+ *
9
+ * Built-in providers still use AgentProvider, while externally installed ACP
10
+ * extensions use namespaced values such as `acp:gemini`.
11
+ */
12
+ type AgentGUIProvider = string;
13
+ type AgentGUIAgentAvailabilityStatus = "ready" | "checking" | "coming_soon" | "not_installed" | "auth_required" | "unavailable";
14
+ type AgentGUIAgentAvailabilityAction = "install" | "login" | "refresh";
15
+ interface AgentGUIAgentAvailability {
16
+ status: AgentGUIAgentAvailabilityStatus;
17
+ reason?: string | null;
18
+ pendingAction?: AgentGUIAgentAvailabilityAction | null;
19
+ }
20
+ interface AgentGUIAgentOwner {
21
+ name?: string | null;
22
+ avatarUrl?: string | null;
23
+ }
24
+ /** Host-authoritative ownership classification for Agent directory entries. */
25
+ type AgentGUIAgentOwnership = "self" | "shared";
26
+ /**
27
+ * Host-projected entry from the workspace `/agents` directory.
28
+ *
29
+ * `agentTargetId` is the only UI and launch identity. `provider` remains
30
+ * execution metadata for provider-native composer/runtime policy and must not
31
+ * be used to group, deduplicate, name, or select entries.
32
+ */
33
+ interface AgentGUIAgent {
34
+ agentTargetId: string;
35
+ name: string;
36
+ iconUrl: string;
37
+ /** Single-color artwork rendered through the conversation rail CSS mask. */
38
+ maskIconUrl?: string | null;
39
+ sidebarIconUrl?: string | null;
40
+ heroImageUrl?: string | null;
41
+ description?: string | null;
42
+ owner?: AgentGUIAgentOwner | null;
43
+ ownership?: AgentGUIAgentOwnership | null;
44
+ availability: AgentGUIAgentAvailability;
45
+ provider: AgentGUIProvider;
46
+ setupKind?: "target_runtime" | null;
47
+ }
48
+ type AgentGUIAgentDirectoryStatus = "idle" | "loading" | "ready" | "error";
49
+ interface AgentGUIAgentDirectorySnapshot {
50
+ agents: readonly AgentGUIAgent[];
51
+ capturedAtUnixMs: number | null;
52
+ error: string | null;
53
+ status: AgentGUIAgentDirectoryStatus;
54
+ }
55
+ interface AgentGUIAgentDirectoryPort {
56
+ getSnapshot(): AgentGUIAgentDirectorySnapshot;
57
+ subscribe(listener: () => void): () => void;
58
+ }
59
+
7
60
  interface AgentGuiWorkbenchConversationIdentity {
8
61
  agentTitle?: string | null;
9
62
  iconUrl?: string | null;
@@ -1,5 +1,4 @@
1
1
  import { ReactNode } from 'react';
2
- export { A as AGENT_PASTED_TEXT_BLOCK_KIND, a as AGENT_PASTED_TEXT_MENTION_KIND } from './pastedTextKinds-D-XuInaS.js';
3
2
 
4
3
  interface AgentCustomMentionIdentity {
5
4
  entityId: string;
@@ -45,4 +44,7 @@ declare function registerAgentCustomMentionKind(definition: AgentCustomMentionKi
45
44
  declare function getAgentCustomMentionKind(kind: string): AgentCustomMentionKindDefinition | undefined;
46
45
  declare function resetAgentCustomMentionKindsForTests(): void;
47
46
 
48
- export { type AgentCustomMentionChipContext, type AgentCustomMentionIdentity, type AgentCustomMentionKindDefinition, type AgentCustomMentionPresentation, getAgentCustomMentionKind, registerAgentCustomMentionKind, resetAgentCustomMentionKindsForTests };
47
+ declare const AGENT_PASTED_TEXT_BLOCK_KIND = "pasted-text";
48
+ declare const AGENT_PASTED_TEXT_MENTION_KIND = "pasted-text";
49
+
50
+ export { AGENT_PASTED_TEXT_BLOCK_KIND, AGENT_PASTED_TEXT_MENTION_KIND, type AgentCustomMentionChipContext, type AgentCustomMentionIdentity, type AgentCustomMentionKindDefinition, type AgentCustomMentionPresentation, getAgentCustomMentionKind, registerAgentCustomMentionKind, resetAgentCustomMentionKindsForTests };
@@ -1,3 +1,4 @@
1
+ import "./chunk-DLCZJKCA.js";
1
2
  import {
2
3
  AGENT_PASTED_TEXT_BLOCK_KIND,
3
4
  AGENT_PASTED_TEXT_MENTION_KIND
@@ -1,8 +1,13 @@
1
1
  import * as _tutti_os_ui_i18n_runtime from '@tutti-os/ui-i18n-runtime';
2
- import { I18nRuntime } from '@tutti-os/ui-i18n-runtime';
3
- import react__default, { ReactNode } from 'react';
4
- import { A as AgentGuiI18nLocale, T as TranslateFn, g as getActiveUiLanguage$1, t as translate$1, b as translateInUiLanguage$1 } from '../runtime-BBNdWgDU.js';
5
- export { a as TranslateOptions } from '../runtime-BBNdWgDU.js';
2
+ import { I18nParams, I18nRuntime } from '@tutti-os/ui-i18n-runtime';
3
+ import React, { ReactNode } from 'react';
4
+
5
+ type AgentGuiI18nLocale = "en" | "zh-CN";
6
+ type TranslateOptions = I18nParams;
7
+ type TranslateFn = (key: string, options?: TranslateOptions) => string;
8
+ declare function translate$1(key: string, options?: TranslateOptions): string;
9
+ declare function translateInUiLanguage$1(locale: AgentGuiI18nLocale, key: string, options?: TranslateOptions): string;
10
+ declare function getActiveUiLanguage$1(): AgentGuiI18nLocale;
6
11
 
7
12
  declare const agentGuiI18nResources: {
8
13
  readonly en: {
@@ -365,6 +370,9 @@ declare const agentGuiI18nResources: {
365
370
  readonly fileMentionError: "Unable to search Files.";
366
371
  readonly fileMentionTabHint: "Tab switch category | ←→ enter/leave folder | ↑↓ switch selection";
367
372
  readonly fileDropHint: "Drop files to add them to the session";
373
+ readonly composerFileFolderUnsupported: "Folders cannot be attached here";
374
+ readonly composerFileTooLarge: "File is too large";
375
+ readonly composerFilePreparationFailed: "File preparation failed";
368
376
  readonly mentionPalette: "Mention context";
369
377
  readonly addReference: "Add reference";
370
378
  readonly addContent: "Add files and more";
@@ -2949,6 +2957,9 @@ declare const agentGuiI18nResources: {
2949
2957
  readonly fileMentionError: "无法搜索工作区文件。";
2950
2958
  readonly fileMentionTabHint: "Tab 切换分类 | ←→ 进入/返回文件夹 | ↑↓ 切换选中";
2951
2959
  readonly fileDropHint: "拖放文件以添加到会话";
2960
+ readonly composerFileFolderUnsupported: "暂不支持在这里附加文件夹";
2961
+ readonly composerFileTooLarge: "文件过大";
2962
+ readonly composerFilePreparationFailed: "文件处理失败";
2952
2963
  readonly mentionPalette: "提及上下文";
2953
2964
  readonly addReference: "添加引用";
2954
2965
  readonly addContent: "添加文件等内容";
@@ -5183,11 +5194,11 @@ declare function AgentGuiI18nProvider({ children, locale, runtime }: {
5183
5194
  children: ReactNode;
5184
5195
  locale?: AgentGuiI18nLocale;
5185
5196
  runtime?: I18nRuntime<string> | null;
5186
- }): react__default.ReactElement;
5197
+ }): React.ReactElement;
5187
5198
  declare function useTranslation(): {
5188
5199
  i18n: I18nRuntime<string>;
5189
5200
  locale: AgentGuiI18nLocale;
5190
5201
  t: TranslateFn;
5191
5202
  };
5192
5203
 
5193
- export { AgentGuiI18nLocale, AgentGuiI18nProvider, TranslateFn, agentGuiI18nModule, agentGuiI18nResources, getActiveUiLanguage, translate, translateInUiLanguage, useTranslation };
5204
+ export { type AgentGuiI18nLocale, AgentGuiI18nProvider, type TranslateFn, type TranslateOptions, agentGuiI18nModule, agentGuiI18nResources, getActiveUiLanguage, translate, translateInUiLanguage, useTranslation };
@@ -6,8 +6,8 @@ import {
6
6
  translate,
7
7
  translateInUiLanguage,
8
8
  useTranslation
9
- } from "../chunk-SZOTLVH6.js";
10
- import "../chunk-OQR3HXPF.js";
9
+ } from "../chunk-GIYGO2PB.js";
10
+ import "../chunk-VUNVGEQG.js";
11
11
  export {
12
12
  AgentGuiI18nProvider,
13
13
  agentGuiI18nModule,