@agentuity/workbench 0.0.105 → 0.0.107

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 (171) hide show
  1. package/dist/components/App.d.ts.map +1 -1
  2. package/dist/components/App.js +15 -13
  3. package/dist/components/App.js.map +1 -1
  4. package/dist/components/ai-elements/actions.d.ts +1 -1
  5. package/dist/components/ai-elements/actions.d.ts.map +1 -1
  6. package/dist/components/ai-elements/actions.js +1 -1
  7. package/dist/components/ai-elements/actions.js.map +1 -1
  8. package/dist/components/ai-elements/code-block.d.ts +1 -1
  9. package/dist/components/ai-elements/code-block.d.ts.map +1 -1
  10. package/dist/components/ai-elements/code-block.js +22 -20
  11. package/dist/components/ai-elements/code-block.js.map +1 -1
  12. package/dist/components/ai-elements/conversation.d.ts +2 -2
  13. package/dist/components/ai-elements/conversation.d.ts.map +1 -1
  14. package/dist/components/ai-elements/conversation.js +5 -3
  15. package/dist/components/ai-elements/conversation.js.map +1 -1
  16. package/dist/components/ai-elements/message.d.ts +1 -1
  17. package/dist/components/ai-elements/message.d.ts.map +1 -1
  18. package/dist/components/ai-elements/message.js +4 -9
  19. package/dist/components/ai-elements/message.js.map +1 -1
  20. package/dist/components/ai-elements/prompt-input.d.ts.map +1 -1
  21. package/dist/components/ai-elements/prompt-input.js +1 -1
  22. package/dist/components/ai-elements/prompt-input.js.map +1 -1
  23. package/dist/components/ai-elements/shimmer.d.ts.map +1 -1
  24. package/dist/components/ai-elements/shimmer.js +1 -1
  25. package/dist/components/ai-elements/shimmer.js.map +1 -1
  26. package/dist/components/internal/chat.d.ts +10 -0
  27. package/dist/components/internal/chat.d.ts.map +1 -0
  28. package/dist/components/internal/chat.js +104 -0
  29. package/dist/components/internal/chat.js.map +1 -0
  30. package/dist/components/internal/{Header.d.ts → header.d.ts} +4 -6
  31. package/dist/components/internal/header.d.ts.map +1 -0
  32. package/dist/components/internal/header.js +25 -0
  33. package/dist/components/internal/header.js.map +1 -0
  34. package/dist/components/internal/{InputSection.d.ts → input-section.d.ts} +9 -9
  35. package/dist/components/internal/input-section.d.ts.map +1 -0
  36. package/dist/components/internal/input-section.js +162 -0
  37. package/dist/components/internal/input-section.js.map +1 -0
  38. package/dist/components/internal/json-editor.d.ts +14 -0
  39. package/dist/components/internal/json-editor.d.ts.map +1 -0
  40. package/dist/components/internal/{MonacoJsonEditor.js → json-editor.js} +40 -37
  41. package/dist/components/internal/json-editor.js.map +1 -0
  42. package/dist/components/internal/logo.d.ts +2 -3
  43. package/dist/components/internal/logo.d.ts.map +1 -1
  44. package/dist/components/internal/logo.js +2 -2
  45. package/dist/components/internal/logo.js.map +1 -1
  46. package/dist/components/internal/resizable-provider.d.ts.map +1 -0
  47. package/dist/components/internal/resizable-provider.js.map +1 -0
  48. package/dist/components/internal/{Schema.d.ts → schema.d.ts} +2 -2
  49. package/dist/components/internal/schema.d.ts.map +1 -0
  50. package/dist/components/internal/schema.js +13 -0
  51. package/dist/components/internal/schema.js.map +1 -0
  52. package/dist/components/internal/{WorkbenchProvider.d.ts → workbench-provider.d.ts} +8 -4
  53. package/dist/components/internal/workbench-provider.d.ts.map +1 -0
  54. package/dist/components/internal/{WorkbenchProvider.js → workbench-provider.js} +87 -60
  55. package/dist/components/internal/workbench-provider.js.map +1 -0
  56. package/dist/components/ui/avatar.d.ts +1 -1
  57. package/dist/components/ui/avatar.d.ts.map +1 -1
  58. package/dist/components/ui/avatar.js.map +1 -1
  59. package/dist/components/ui/button.d.ts +1 -1
  60. package/dist/components/ui/command.d.ts +1 -1
  61. package/dist/components/ui/command.d.ts.map +1 -1
  62. package/dist/components/ui/command.js.map +1 -1
  63. package/dist/components/ui/dialog.d.ts +1 -1
  64. package/dist/components/ui/dialog.d.ts.map +1 -1
  65. package/dist/components/ui/dialog.js.map +1 -1
  66. package/dist/components/ui/dropdown-menu.d.ts +1 -1
  67. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  68. package/dist/components/ui/dropdown-menu.js.map +1 -1
  69. package/dist/components/ui/hover-card.d.ts +1 -1
  70. package/dist/components/ui/hover-card.d.ts.map +1 -1
  71. package/dist/components/ui/hover-card.js.map +1 -1
  72. package/dist/components/ui/input-group.d.ts +2 -2
  73. package/dist/components/ui/input-group.d.ts.map +1 -1
  74. package/dist/components/ui/input-group.js.map +1 -1
  75. package/dist/components/ui/input.d.ts +1 -1
  76. package/dist/components/ui/input.d.ts.map +1 -1
  77. package/dist/components/ui/scroll-area.d.ts +1 -1
  78. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  79. package/dist/components/ui/scroll-area.js.map +1 -1
  80. package/dist/components/ui/textarea.d.ts +1 -1
  81. package/dist/components/ui/textarea.d.ts.map +1 -1
  82. package/dist/components/ui/theme-provider.d.ts.map +1 -1
  83. package/dist/components/ui/theme-provider.js +1 -1
  84. package/dist/components/ui/theme-provider.js.map +1 -1
  85. package/dist/components/ui/tooltip.d.ts +1 -1
  86. package/dist/components/ui/tooltip.d.ts.map +1 -1
  87. package/dist/components/ui/tooltip.js.map +1 -1
  88. package/dist/hooks/useAgentSchemas.d.ts +10 -10
  89. package/dist/hooks/useAgentSchemas.d.ts.map +1 -1
  90. package/dist/hooks/useAgentSchemas.js +9 -7
  91. package/dist/hooks/useAgentSchemas.js.map +1 -1
  92. package/dist/hooks/useLogger.d.ts.map +1 -1
  93. package/dist/hooks/useLogger.js +2 -1
  94. package/dist/hooks/useLogger.js.map +1 -1
  95. package/dist/hooks/useWorkbenchWebsocket.d.ts +2 -2
  96. package/dist/hooks/useWorkbenchWebsocket.d.ts.map +1 -1
  97. package/dist/hooks/useWorkbenchWebsocket.js +24 -20
  98. package/dist/hooks/useWorkbenchWebsocket.js.map +1 -1
  99. package/dist/index.d.ts +5 -5
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +4 -6
  102. package/dist/index.js.map +1 -1
  103. package/dist/lib/utils.d.ts +3 -0
  104. package/dist/lib/utils.d.ts.map +1 -1
  105. package/dist/lib/utils.js +59 -0
  106. package/dist/lib/utils.js.map +1 -1
  107. package/dist/server.d.ts +1 -1
  108. package/dist/server.d.ts.map +1 -1
  109. package/dist/server.js.map +1 -1
  110. package/dist/standalone.css +360 -295
  111. package/dist/types/config.d.ts +27 -18
  112. package/dist/types/config.d.ts.map +1 -1
  113. package/package.json +5 -5
  114. package/src/base.css +186 -158
  115. package/src/components/App.tsx +31 -16
  116. package/src/components/ai-elements/actions.tsx +2 -2
  117. package/src/components/ai-elements/code-block.tsx +46 -32
  118. package/src/components/ai-elements/conversation.tsx +18 -17
  119. package/src/components/ai-elements/message.tsx +4 -9
  120. package/src/components/ai-elements/prompt-input.tsx +1 -1
  121. package/src/components/ai-elements/shimmer.tsx +1 -1
  122. package/src/components/internal/chat.tsx +326 -0
  123. package/src/components/internal/{Header.tsx → header.tsx} +37 -40
  124. package/src/components/internal/{InputSection.tsx → input-section.tsx} +173 -119
  125. package/src/components/internal/{MonacoJsonEditor.tsx → json-editor.tsx} +77 -49
  126. package/src/components/internal/logo.tsx +3 -5
  127. package/src/components/internal/schema.tsx +96 -0
  128. package/src/components/internal/{WorkbenchProvider.tsx → workbench-provider.tsx} +194 -68
  129. package/src/components/ui/avatar.tsx +1 -1
  130. package/src/components/ui/command.tsx +1 -1
  131. package/src/components/ui/dialog.tsx +1 -1
  132. package/src/components/ui/dropdown-menu.tsx +1 -1
  133. package/src/components/ui/hover-card.tsx +1 -1
  134. package/src/components/ui/input-group.tsx +1 -1
  135. package/src/components/ui/input.tsx +1 -1
  136. package/src/components/ui/scroll-area.tsx +1 -1
  137. package/src/components/ui/textarea.tsx +1 -1
  138. package/src/components/ui/theme-provider.tsx +1 -1
  139. package/src/components/ui/tooltip.tsx +1 -1
  140. package/src/hooks/useAgentSchemas.ts +26 -15
  141. package/src/hooks/useLogger.ts +7 -1
  142. package/src/hooks/useWorkbenchWebsocket.ts +67 -32
  143. package/src/index.ts +5 -9
  144. package/src/lib/utils.ts +88 -0
  145. package/src/server.ts +1 -1
  146. package/src/types/config.ts +28 -21
  147. package/dist/components/internal/Chat.d.ts +0 -14
  148. package/dist/components/internal/Chat.d.ts.map +0 -1
  149. package/dist/components/internal/Chat.js +0 -61
  150. package/dist/components/internal/Chat.js.map +0 -1
  151. package/dist/components/internal/Header.d.ts.map +0 -1
  152. package/dist/components/internal/Header.js +0 -31
  153. package/dist/components/internal/Header.js.map +0 -1
  154. package/dist/components/internal/InputSection.d.ts.map +0 -1
  155. package/dist/components/internal/InputSection.js +0 -152
  156. package/dist/components/internal/InputSection.js.map +0 -1
  157. package/dist/components/internal/MonacoJsonEditor.d.ts +0 -13
  158. package/dist/components/internal/MonacoJsonEditor.d.ts.map +0 -1
  159. package/dist/components/internal/MonacoJsonEditor.js.map +0 -1
  160. package/dist/components/internal/Schema.d.ts.map +0 -1
  161. package/dist/components/internal/Schema.js +0 -13
  162. package/dist/components/internal/Schema.js.map +0 -1
  163. package/dist/components/internal/WorkbenchProvider.d.ts.map +0 -1
  164. package/dist/components/internal/WorkbenchProvider.js.map +0 -1
  165. package/dist/components/ui/resizable-provider.d.ts.map +0 -1
  166. package/dist/components/ui/resizable-provider.js.map +0 -1
  167. package/src/components/internal/Chat.tsx +0 -201
  168. package/src/components/internal/Schema.tsx +0 -100
  169. /package/dist/components/{ui → internal}/resizable-provider.d.ts +0 -0
  170. /package/dist/components/{ui → internal}/resizable-provider.js +0 -0
  171. /package/src/components/{ui → internal}/resizable-provider.tsx +0 -0
@@ -1,33 +1,42 @@
1
- import type { UIMessage } from 'ai';
2
1
  import type { WorkbenchConfig } from '@agentuity/core/workbench';
2
+ import type { UIMessage } from 'ai';
3
3
  import type { AgentSchemaData, AgentSchemasResponse } from '../hooks/useAgentSchemas';
4
4
  export interface Agent {
5
+ avatar?: string;
6
+ description?: string;
5
7
  id: string;
6
8
  name: string;
7
- description?: string;
8
- avatar?: string;
9
9
  }
10
10
  export type ConnectionStatus = 'connected' | 'restarting' | 'disconnected';
11
11
  export interface WorkbenchContextType {
12
- config: WorkbenchConfig;
13
12
  agents: Record<string, AgentSchemaData>;
14
- suggestions: string[];
15
- messages: UIMessage[];
16
- setMessages: (messages: UIMessage[] | ((prev: UIMessage[]) => UIMessage[])) => void;
17
- selectedAgent: string;
18
- setSelectedAgent: (agentId: string) => void;
19
- inputMode: 'text' | 'form';
20
- setInputMode: (mode: 'text' | 'form') => void;
21
- isLoading: boolean;
22
- submitMessage: (value: string, mode?: 'text' | 'form') => Promise<void>;
13
+ clearAgentState: (agentId: string) => Promise<void>;
14
+ config: WorkbenchConfig;
15
+ connectionStatus: ConnectionStatus;
16
+ env: {
17
+ agentuity: boolean;
18
+ authenticated: boolean;
19
+ cloud: boolean;
20
+ };
23
21
  generateSample: (agentId: string) => Promise<string>;
22
+ inputMode: 'text' | 'form';
24
23
  isGeneratingSample: boolean;
25
- isAuthenticated: boolean;
24
+ isLoading: boolean;
25
+ messages: UIMessage[];
26
+ refetchSchemas: () => void;
26
27
  schemas: AgentSchemasResponse | null;
27
- schemasLoading: boolean;
28
28
  schemasError: Error | null;
29
- refetchSchemas: () => void;
30
- connectionStatus: ConnectionStatus;
31
- clearAgentState: (agentId: string) => Promise<void>;
29
+ schemasLoading: boolean;
30
+ selectedAgent: string;
31
+ setInputMode: (mode: 'text' | 'form') => void;
32
+ setMessages: (messages: UIMessage[] | ((prev: UIMessage[]) => UIMessage[])) => void;
33
+ setSelectedAgent: (agentId: string) => void;
34
+ submitMessage: (value: string, mode?: 'text' | 'form') => Promise<void>;
35
+ }
36
+ export interface ErrorInfo {
37
+ message: string;
38
+ stack?: string;
39
+ code?: string;
40
+ cause?: unknown;
32
41
  }
33
42
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,MAAM,WAAW,KAAK;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,YAAY,GAAG,cAAc,CAAC;AAG3E,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACxC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,WAAW,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;IACpF,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC9C,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IAEzB,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACrC,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,KAAK,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,IAAI,CAAC;IAE3B,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,MAAM,WAAW,KAAK;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,YAAY,GAAG,cAAc,CAAC;AAG3E,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACxC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,EAAE,eAAe,CAAC;IACxB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,GAAG,EAAE;QACJ,SAAS,EAAE,OAAO,CAAC;QACnB,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,OAAO,CAAC;KACf,CAAC;IACF,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACrC,YAAY,EAAE,KAAK,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;IACpF,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE;AAED,MAAM,WAAW,SAAS;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@agentuity/workbench",
3
- "version": "0.0.105",
3
+ "version": "0.0.107",
4
4
  "license": "Apache-2.0",
5
- "author": "Agentuity employees and contributors",
5
+ "author": "Agentuity",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
8
8
  "types": "./dist/index.d.ts",
@@ -38,8 +38,8 @@
38
38
  "prepublishOnly": "bun run clean && bun run build"
39
39
  },
40
40
  "dependencies": {
41
- "@agentuity/core": "0.0.105",
42
- "@agentuity/react": "0.0.105",
41
+ "@agentuity/core": "0.0.107",
42
+ "@agentuity/react": "0.0.107",
43
43
  "@ai-sdk/react": "^3.0.1",
44
44
  "@hookform/resolvers": "^5.2.2",
45
45
  "@monaco-editor/react": "^4.6.0",
@@ -68,7 +68,7 @@
68
68
  "zod-from-json-schema": "^0.5.2"
69
69
  },
70
70
  "devDependencies": {
71
- "@agentuity/test-utils": "0.0.105",
71
+ "@agentuity/test-utils": "0.0.107",
72
72
  "@tailwindcss/cli": "^4.1.12",
73
73
  "@tailwindcss/vite": "^4.1.12",
74
74
  "@vitejs/plugin-react": "^4.5.3",
package/src/base.css CHANGED
@@ -2,171 +2,190 @@
2
2
  /* This file contains CSS variables, theme, and keyframes used by both versions */
3
3
 
4
4
  :root {
5
- --background: hsl(0 0% 100%);
6
- --foreground: hsl(240 10% 3.9%);
7
- --card: hsl(0 0% 100%);
8
- --card-foreground: hsl(240 10% 3.9%);
9
- --popover: hsl(0 0% 100%);
10
- --popover-foreground: hsl(240 10% 3.9%);
11
- --primary: hsl(240 5.9% 10%);
12
- --primary-foreground: hsl(0 0% 98%);
13
- --secondary: hsl(240 4.8% 95.9%);
14
- --secondary-foreground: hsl(240 5.9% 10%);
15
- --muted: hsl(240 4.8% 95.9%);
16
- --muted-foreground: hsl(240 3.8% 46.1%);
17
- --accent: hsl(240 4.8% 95.9%);
18
- --accent-foreground: hsl(240 5.9% 10%);
19
- --destructive: hsl(347 77% 50%);
20
- --destructive-foreground: hsl(0 0% 98%);
21
- --border: hsl(240 5.9% 90%);
22
- --input: hsl(240 5.9% 90%);
23
- --ring: hsl(240 10% 3.9%);
24
- --chart-1: hsl(12 76% 61%);
25
- --chart-2: hsl(173 58% 39%);
26
- --chart-3: hsl(197 37% 24%);
27
- --chart-4: hsl(43 74% 66%);
28
- --chart-5: hsl(27 87% 67%);
5
+ --background: 0 0% 100%;
6
+ --foreground: 240 10% 3.9%;
7
+ --card: 0 0% 100%;
8
+ --card-foreground: 240 10% 3.9%;
9
+ --popover: 0 0% 100%;
10
+ --popover-foreground: 240 10% 3.9%;
11
+ --primary: 240 5.9% 10%;
12
+ --primary-foreground: 0 0% 98%;
13
+ --secondary: 240 4.8% 95.9%;
14
+ --secondary-foreground: 240 5.9% 10%;
15
+ --muted: 240 4.8% 95.9%;
16
+ --muted-foreground: 240 3.8% 46.1%;
17
+ --accent: 240 4.8% 95.9%;
18
+ --accent-foreground: 240 5.9% 10%;
19
+ --destructive: 347 77% 50%;
20
+ --destructive-foreground: 0 0% 98%;
21
+ --border: 240 5.9% 90%;
22
+ --input: 240 5.9% 90%;
23
+ --ring: 240 10% 3.9%;
24
+ --chart-1: 12 76% 61%;
25
+ --chart-2: 173 58% 39%;
26
+ --chart-3: 197 37% 24%;
27
+ --chart-4: 43 74% 66%;
28
+ --chart-5: 27 87% 67%;
29
29
  --radius: 0.5rem;
30
- --sidebar-background: hsl(0 0% 98%);
31
- --sidebar-foreground: hsl(240 5.3% 26.1%);
32
- --sidebar-primary: hsl(240 5.9% 10%);
33
- --sidebar-primary-foreground: hsl(0 0% 98%);
34
- --sidebar-accent: hsl(240 4.8% 95.9%);
35
- --sidebar-accent-foreground: hsl(240 5.9% 10%);
36
- --sidebar-border: hsl(220 13% 91%);
37
- --sidebar-ring: hsl(217.2 91.2% 59.8%);
30
+ --sidebar-background: 0 0% 98%;
31
+ --sidebar-foreground: 240 5.3% 26.1%;
32
+ --sidebar-primary: 240 5.9% 10%;
33
+ --sidebar-primary-foreground: 0 0% 98%;
34
+ --sidebar-accent: 240 4.8% 95.9%;
35
+ --sidebar-accent-foreground: 240 5.9% 10%;
36
+ --sidebar-border: 220 13% 91%;
37
+ --sidebar-ring: 217.2 91.2% 59.8%;
38
38
  }
39
39
 
40
40
  .dark {
41
- --background: hsl(240 10% 3.9%);
42
- --foreground: hsl(0 0% 98%);
43
- --card: hsl(240 10% 3.9%);
44
- --card-foreground: hsl(0 0% 98%);
45
- --popover: hsl(240 10% 3.9%);
46
- --popover-foreground: hsl(0 0% 98%);
47
- --primary: hsl(0 0% 98%);
48
- --primary-foreground: hsl(240 5.9% 10%);
49
- --secondary: hsl(240 3.7% 15.9%);
50
- --secondary-foreground: hsl(0 0% 98%);
51
- --muted: hsl(240 3.7% 15.9%);
52
- --muted-foreground: hsl(240 5% 64.9%);
53
- --accent: hsl(240 3.7% 15.9%);
54
- --accent-foreground: hsl(0 0% 98%);
55
- --destructive: hsl(345 83% 41%);
56
- --destructive-foreground: hsl(0 0% 98%);
57
- --border: hsl(240 3.7% 15.9%);
58
- --input: hsl(240 3.7% 15.9%);
59
- --ring: hsl(240 4.9% 83.9%);
60
- --chart-1: hsl(220 70% 50%);
61
- --chart-2: hsl(160 60% 45%);
62
- --chart-3: hsl(30 80% 55%);
63
- --chart-4: hsl(280 65% 60%);
64
- --chart-5: hsl(340 75% 55%);
65
- --sidebar-background: hsl(240 5.9% 10%);
66
- --sidebar-foreground: hsl(240 4.8% 95.9%);
67
- --sidebar-primary: hsl(224.3 76.3% 48%);
68
- --sidebar-primary-foreground: hsl(0 0% 100%);
69
- --sidebar-accent: hsl(240 3.7% 15.9%);
70
- --sidebar-accent-foreground: hsl(240 4.8% 95.9%);
71
- --sidebar-border: hsl(240 3.7% 15.9%);
72
- --sidebar-ring: hsl(217.2 91.2% 59.8%);
41
+ --background: 240 10% 3.9%;
42
+ --foreground: 0 0% 98%;
43
+ --card: 240 10% 3.9%;
44
+ --card-foreground: 0 0% 98%;
45
+ --popover: 240 10% 3.9%;
46
+ --popover-foreground: 0 0% 98%;
47
+ --primary: 0 0% 98%;
48
+ --primary-foreground: 240 5.9% 10%;
49
+ --secondary: 240 3.7% 15.9%;
50
+ --secondary-foreground: 0 0% 98%;
51
+ --muted: 240 3.7% 15.9%;
52
+ --muted-foreground: 240 5% 64.9%;
53
+ --accent: 240 3.7% 15.9%;
54
+ --accent-foreground: 0 0% 98%;
55
+ --destructive: 345 83% 41%;
56
+ --destructive-foreground: 0 0% 98%;
57
+ --border: 240 3.7% 15.9%;
58
+ --input: 240 3.7% 15.9%;
59
+ --ring: 240 4.9% 83.9%;
60
+ --chart-1: 220 70% 50%;
61
+ --chart-2: 160 60% 45%;
62
+ --chart-3: 30 80% 55%;
63
+ --chart-4: 280 65% 60%;
64
+ --chart-5: 340 75% 55%;
65
+ --sidebar-background: 240 5.9% 10%;
66
+ --sidebar-foreground: 240 4.8% 95.9%;
67
+ --sidebar-primary: 224.3 76.3% 48%;
68
+ --sidebar-primary-foreground: 0 0% 100%;
69
+ --sidebar-accent: 240 3.7% 15.9%;
70
+ --sidebar-accent-foreground: 240 4.8% 95.9%;
71
+ --sidebar-border: 240 3.7% 15.9%;
72
+ --sidebar-ring: 217.2 91.2% 59.8%;
73
73
  }
74
74
 
75
75
  @theme inline {
76
- --font-sans: 'Geist';
77
- --font-mono: 'Geist Mono';
78
- --color-cyan-50: #e5ffff;
79
- --color-cyan-100: #ccffff;
80
- --color-cyan-200: #99ffff;
81
- --color-cyan-300: #66ffff;
82
- --color-cyan-400: #33ffff;
83
- --color-cyan-500: #00ffff;
84
- --color-cyan-600: #00cccc;
85
- --color-cyan-700: #009999;
86
- --color-cyan-800: #006666;
87
- --color-cyan-900: #003333;
88
- --color-cyan-950: #001919;
89
- --color-gray-50: var(--color-zinc-50);
90
- --color-gray-100: var(--color-zinc-100);
91
- --color-gray-200: var(--color-zinc-200);
92
- --color-gray-300: var(--color-zinc-300);
93
- --color-gray-400: var(--color-zinc-400);
94
- --color-gray-500: var(--color-zinc-500);
95
- --color-gray-600: var(--color-zinc-600);
96
- --color-gray-700: var(--color-zinc-700);
97
- --color-gray-800: var(--color-zinc-800);
98
- --color-gray-900: var(--color-zinc-900);
99
- --color-gray-950: var(--color-zinc-950);
100
- --color-red-50: var(--color-rose-50);
101
- --color-red-100: var(--color-rose-100);
102
- --color-red-200: var(--color-rose-200);
103
- --color-red-300: var(--color-rose-300);
104
- --color-red-400: var(--color-rose-400);
105
- --color-red-500: var(--color-rose-500);
106
- --color-red-600: var(--color-rose-600);
107
- --color-red-700: var(--color-rose-700);
108
- --color-red-800: var(--color-rose-800);
109
- --color-red-900: var(--color-rose-900);
110
- --color-red-950: var(--color-rose-950);
111
- --color-green-50: var(--color-emerald-50);
112
- --color-green-100: var(--color-emerald-100);
113
- --color-green-200: var(--color-emerald-200);
114
- --color-green-300: var(--color-emerald-300);
115
- --color-green-400: var(--color-emerald-400);
116
- --color-green-500: var(--color-emerald-500);
117
- --color-green-600: var(--color-emerald-600);
118
- --color-green-700: var(--color-emerald-700);
119
- --color-green-800: var(--color-emerald-800);
120
- --color-green-900: var(--color-emerald-900);
121
- --color-green-950: var(--color-emerald-950);
122
- --color-blue-50: var(--color-sky-50);
123
- --color-blue-100: var(--color-sky-100);
124
- --color-blue-200: var(--color-sky-200);
125
- --color-blue-300: var(--color-sky-300);
126
- --color-blue-400: var(--color-sky-400);
127
- --color-blue-500: var(--color-sky-500);
128
- --color-blue-600: var(--color-sky-600);
129
- --color-blue-700: var(--color-sky-700);
130
- --color-blue-800: var(--color-sky-800);
131
- --color-blue-900: var(--color-sky-900);
132
- --color-blue-950: var(--color-sky-950);
133
-
134
- --color-background: var(--background);
135
- --color-foreground: var(--foreground);
136
- --color-card: var(--card);
137
- --color-card-foreground: var(--card-foreground);
138
- --color-popover: var(--popover);
139
- --color-popover-foreground: var(--popover-foreground);
140
- --color-primary: var(--primary);
141
- --color-primary-foreground: var(--primary-foreground);
142
- --color-secondary: var(--secondary);
143
- --color-secondary-foreground: var(--secondary-foreground);
144
- --color-muted: var(--muted);
145
- --color-muted-foreground: var(--muted-foreground);
146
- --color-accent: var(--accent);
147
- --color-accent-foreground: var(--accent-foreground);
148
- --color-destructive: var(--destructive);
149
- --color-destructive-foreground: var(--destructive-foreground);
150
- --color-border: var(--border);
151
- --color-input: var(--input);
152
- --color-ring: var(--ring);
153
- --color-chart-1: var(--chart-1);
154
- --color-chart-2: var(--chart-2);
155
- --color-chart-3: var(--chart-3);
156
- --color-chart-4: var(--chart-4);
157
- --color-chart-5: var(--chart-5);
158
- --radius-sm: calc(var(--radius) - 4px);
159
- --radius-md: calc(var(--radius) - 2px);
76
+ /* Cyan (Custom) */
77
+ --color-cyan-50: oklch(0.9812 0.027 196.72);
78
+ --color-cyan-100: oklch(0.965 0.0516 196.33);
79
+ --color-cyan-200: oklch(0.938 0.0956 195.64);
80
+ --color-cyan-300: oklch(0.9193 0.1285 195.15);
81
+ --color-cyan-400: oklch(0.9089 0.1478 194.87);
82
+ --color-cyan-500: oklch(0.9054 0.15455 194.769);
83
+ --color-cyan-600: oklch(0.7653 0.1306 194.77);
84
+ --color-cyan-700: oklch(0.6183 0.10555 194.769);
85
+ --color-cyan-800: oklch(0.462 0.078864 194.769);
86
+ --color-cyan-900: oklch(0.2907 0.0496 194.77);
87
+ --color-cyan-950: oklch(0.1932 0.033 194.77);
88
+
89
+ /* Gray (Zinc) */
90
+ --color-gray-50: oklch(0.985 0 0);
91
+ --color-gray-100: oklch(0.967 0.001 286.375);
92
+ --color-gray-200: oklch(0.92 0.004 286.32);
93
+ --color-gray-300: oklch(0.871 0.006 286.286);
94
+ --color-gray-400: oklch(0.705 0.015 286.067);
95
+ --color-gray-500: oklch(0.552 0.016 285.938);
96
+ --color-gray-600: oklch(0.442 0.017 285.786);
97
+ --color-gray-700: oklch(0.37 0.013 285.805);
98
+ --color-gray-800: oklch(0.274 0.006 286.033);
99
+ --color-gray-900: oklch(0.21 0.006 285.885);
100
+ --color-gray-950: oklch(0.141 0.005 285.823);
101
+
102
+ /* Red (Rose) */
103
+ --color-red-50: oklch(0.969 0.015 12.422);
104
+ --color-red-100: oklch(0.941 0.03 12.58);
105
+ --color-red-200: oklch(0.892 0.058 10.001);
106
+ --color-red-300: oklch(0.81 0.117 11.638);
107
+ --color-red-400: oklch(0.712 0.194 13.428);
108
+ --color-red-500: oklch(0.645 0.246 16.439);
109
+ --color-red-600: oklch(0.586 0.253 17.585);
110
+ --color-red-700: oklch(0.514 0.222 16.935);
111
+ --color-red-800: oklch(0.455 0.188 13.697);
112
+ --color-red-900: oklch(0.41 0.159 10.272);
113
+ --color-red-950: oklch(0.271 0.105 12.094);
114
+
115
+ /* Green (Emerald) */
116
+ --color-green-50: oklch(0.979 0.021 166.113);
117
+ --color-green-100: oklch(0.95 0.052 163.051);
118
+ --color-green-200: oklch(0.905 0.093 164.15);
119
+ --color-green-300: oklch(0.845 0.143 164.978);
120
+ --color-green-400: oklch(0.765 0.177 163.223);
121
+ --color-green-500: oklch(0.696 0.17 162.48);
122
+ --color-green-600: oklch(0.596 0.145 163.225);
123
+ --color-green-700: oklch(0.508 0.118 165.612);
124
+ --color-green-800: oklch(0.432 0.095 166.913);
125
+ --color-green-900: oklch(0.378 0.077 168.94);
126
+ --color-green-950: oklch(0.262 0.051 172.552);
127
+
128
+ /* Blue (Sky) */
129
+ --color-blue-50: oklch(0.977 0.013 236.62);
130
+ --color-blue-100: oklch(0.951 0.026 236.824);
131
+ --color-blue-200: oklch(0.901 0.058 230.902);
132
+ --color-blue-300: oklch(0.828 0.111 230.318);
133
+ --color-blue-400: oklch(0.746 0.16 232.661);
134
+ --color-blue-500: oklch(0.685 0.169 237.323);
135
+ --color-blue-600: oklch(0.588 0.158 241.966);
136
+ --color-blue-700: oklch(0.5 0.134 242.749);
137
+ --color-blue-800: oklch(0.443 0.11 240.79);
138
+ --color-blue-900: oklch(0.391 0.09 240.876);
139
+ --color-blue-950: oklch(0.293 0.066 243.157);
140
+
141
+ /* Theme Colors */
142
+ --color-accent-foreground: hsl(var(--accent-foreground));
143
+ --color-accent: hsl(var(--accent));
144
+ --color-background: hsl(var(--background));
145
+ --color-border: hsl(var(--border));
146
+ --color-card-foreground: hsl(var(--card-foreground));
147
+ --color-card: hsl(var(--card));
148
+ --color-chart-1: hsl(var(--chart-1));
149
+ --color-chart-2: hsl(var(--chart-2));
150
+ --color-chart-3: hsl(var(--chart-3));
151
+ --color-chart-4: hsl(var(--chart-4));
152
+ --color-chart-5: hsl(var(--chart-5));
153
+ --color-destructive-foreground: hsl(var(--destructive-foreground));
154
+ --color-destructive: hsl(var(--destructive));
155
+ --color-foreground: hsl(var(--foreground));
156
+ --color-input: hsl(var(--input));
157
+ --color-muted-foreground: hsl(var(--muted-foreground));
158
+ --color-muted: hsl(var(--muted));
159
+ --color-popover-foreground: hsl(var(--popover-foreground));
160
+ --color-popover: hsl(var(--popover));
161
+ --color-primary-foreground: hsl(var(--primary-foreground));
162
+ --color-primary: hsl(var(--primary));
163
+ --color-ring: hsl(var(--ring));
164
+ --color-secondary-foreground: hsl(var(--secondary-foreground));
165
+ --color-secondary: hsl(var(--secondary));
166
+ --color-sidebar-accent-foreground: hsl(var(--sidebar-accent-foreground));
167
+ --color-sidebar-accent: hsl(var(--sidebar-accent));
168
+ --color-sidebar-border: hsl(var(--sidebar-border));
169
+ --color-sidebar-foreground: hsl(var(--sidebar-foreground));
170
+ --color-sidebar-primary-foreground: hsl(var(--sidebar-primary-foreground));
171
+ --color-sidebar-primary: hsl(var(--sidebar-primary));
172
+ --color-sidebar-ring: hsl(var(--sidebar-ring));
173
+ --color-sidebar: hsl(var(--sidebar-background));
174
+
175
+ /* Screens */
176
+ --breakpoint-3xl: 1920px;
177
+ --breakpoint-4xl: 2560px;
178
+
179
+ /* Fonts */
180
+ --font-sans: 'Geist', ui-sans-serif, system-ui, sans-serif;
181
+ --font-mono: 'Geist Mono', ui-monospace, monospace;
182
+
183
+ /* Border Radiuses */
160
184
  --radius-lg: var(--radius);
161
- --radius-xl: calc(var(--radius) + 4px);
162
- --color-sidebar-ring: var(--sidebar-ring);
163
- --color-sidebar-border: var(--sidebar-border);
164
- --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
165
- --color-sidebar-accent: var(--sidebar-accent);
166
- --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
167
- --color-sidebar-primary: var(--sidebar-primary);
168
- --color-sidebar-foreground: var(--sidebar-foreground);
169
- --color-sidebar: var(--sidebar-background);
185
+ --radius-md: calc(var(--radius) - 2px);
186
+ --radius-sm: calc(var(--radius) - 4px);
187
+
188
+ /* Animations */
170
189
  --animate-accordion-down: accordion-down 0.2s ease-out;
171
190
  --animate-accordion-up: accordion-up 0.2s ease-out;
172
191
  --animate-ellipsis: ellipsis 1.5s steps(4, end) infinite;
@@ -205,7 +224,15 @@
205
224
  }
206
225
  }
207
226
 
208
- /* Shared base styles for buttons and loading indicators */
227
+ body {
228
+ scrollbar-width: thin;
229
+ scrollbar-color: var(--color-gray-200) transparent;
230
+ }
231
+
232
+ .dark body {
233
+ scrollbar-color: var(--color-gray-800) transparent;
234
+ }
235
+
209
236
  button:not([disabled]):not([aria-disabled='true']),
210
237
  [role='button']:not([disabled]):not([aria-disabled='true']) {
211
238
  cursor: pointer;
@@ -215,5 +242,6 @@ button:not([disabled]):not([aria-disabled='true']),
215
242
  content: '.';
216
243
  display: inline-block;
217
244
  width: 1em;
245
+ text-align: left;
218
246
  animation: ellipsis 1.5s steps(4, end) infinite;
219
247
  }
@@ -1,14 +1,13 @@
1
- import React, { useState } from 'react';
2
- import { WorkbenchProvider } from './internal/WorkbenchProvider';
3
- import { Header } from './internal/Header';
4
- import { Chat } from './internal/Chat';
5
- import { Schema } from './internal/Schema';
1
+ import { decodeWorkbenchConfig } from '@agentuity/core/workbench';
2
+ import { useState } from 'react';
3
+ import { Chat } from './internal/chat';
4
+ import { Header } from './internal/header';
5
+ import { ResizableProvider, useResizable } from './internal/resizable-provider';
6
+ import { Schema } from './internal/schema';
7
+ import { WorkbenchProvider } from './internal/workbench-provider';
8
+ import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from './ui/resizable';
6
9
  import { ThemeProvider } from './ui/theme-provider';
7
- import { ResizableProvider } from './ui/resizable-provider';
8
- import { ResizablePanelGroup, ResizablePanel, ResizableHandle } from './ui/resizable';
9
- import { useResizable } from './ui/resizable-provider';
10
10
  import { TooltipProvider } from './ui/tooltip';
11
- import { decodeWorkbenchConfig } from '@agentuity/core/workbench';
12
11
 
13
12
  export interface AppProps {
14
13
  configBase64: string;
@@ -17,13 +16,12 @@ export interface AppProps {
17
16
  function AppContent() {
18
17
  const [schemaOpen, setSchemaOpen] = useState(false);
19
18
  const { getPanelSizes, setPanelSizes } = useResizable();
20
-
21
- const defaultSizes = [55, 45];
22
- const panelSizes = getPanelSizes('main-layout') || defaultSizes;
19
+ const panelSizes = getPanelSizes('main-layout') || [70, 30];
23
20
 
24
21
  return (
25
22
  <div className="flex flex-col h-full">
26
23
  <Header />
24
+
27
25
  <ResizablePanelGroup
28
26
  direction="horizontal"
29
27
  className="flex-1"
@@ -34,13 +32,26 @@ function AppContent() {
34
32
  }
35
33
  }}
36
34
  >
37
- <ResizablePanel defaultSize={panelSizes[0]} minSize={30} className="flex flex-col">
35
+ <ResizablePanel
36
+ defaultSize={schemaOpen ? panelSizes[0] : 100}
37
+ minSize={50}
38
+ id="chat-panel"
39
+ order={0}
40
+ >
38
41
  <Chat schemaOpen={schemaOpen} onSchemaToggle={() => setSchemaOpen(!schemaOpen)} />
39
42
  </ResizablePanel>
43
+
40
44
  {schemaOpen && (
41
45
  <>
42
46
  <ResizableHandle withHandle />
43
- <ResizablePanel defaultSize={panelSizes[1]} minSize={20} maxSize={50}>
47
+
48
+ <ResizablePanel
49
+ defaultSize={panelSizes[1]}
50
+ minSize={25}
51
+ maxSize={50}
52
+ id="schema-panel"
53
+ order={1}
54
+ >
44
55
  <Schema onOpenChange={setSchemaOpen} />
45
56
  </ResizablePanel>
46
57
  </>
@@ -52,10 +63,14 @@ function AppContent() {
52
63
 
53
64
  export function App({ configBase64 }: AppProps) {
54
65
  const decodedConfig = decodeWorkbenchConfig(configBase64);
55
- const isAuthenticated = import.meta.env.AGENTUITY_PUBLIC_HAS_SDK_KEY === 'true';
66
+ const env = {
67
+ agentuity: true,
68
+ authenticated: import.meta.env.AGENTUITY_PUBLIC_HAS_SDK_KEY === 'true',
69
+ cloud: false,
70
+ };
56
71
 
57
72
  return (
58
- <WorkbenchProvider config={decodedConfig} isAuthenticated={isAuthenticated}>
73
+ <WorkbenchProvider config={decodedConfig} env={env}>
59
74
  <ThemeProvider>
60
75
  <TooltipProvider>
61
76
  <ResizableProvider>
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
 
3
+ import type { ComponentProps } from 'react';
4
+ import { cn } from '../../lib/utils';
3
5
  import { Button } from '../ui/button';
4
6
  import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../ui/tooltip';
5
- import { cn } from '../../lib/utils';
6
- import type { ComponentProps } from 'react';
7
7
 
8
8
  export type ActionsProps = ComponentProps<'div'>;
9
9