@agentuity/workbench 1.0.5 → 1.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 (35) hide show
  1. package/dist/components/internal/chat.d.ts.map +1 -1
  2. package/dist/components/internal/chat.js +1 -1
  3. package/dist/components/internal/chat.js.map +1 -1
  4. package/dist/components/internal/input-section.d.ts.map +1 -1
  5. package/dist/components/internal/input-section.js +10 -10
  6. package/dist/components/internal/input-section.js.map +1 -1
  7. package/dist/components/internal/workbench-provider.d.ts +13 -1
  8. package/dist/components/internal/workbench-provider.d.ts.map +1 -1
  9. package/dist/components/internal/workbench-provider.js +96 -44
  10. package/dist/components/internal/workbench-provider.js.map +1 -1
  11. package/dist/components/ui/button.d.ts +1 -1
  12. package/dist/hooks/useAgentSchemas.d.ts +3 -0
  13. package/dist/hooks/useAgentSchemas.d.ts.map +1 -1
  14. package/dist/hooks/useAgentSchemas.js +18 -3
  15. package/dist/hooks/useAgentSchemas.js.map +1 -1
  16. package/dist/hooks/useLogger.d.ts.map +1 -1
  17. package/dist/hooks/useLogger.js +18 -14
  18. package/dist/hooks/useLogger.js.map +1 -1
  19. package/dist/hooks/useWorkbenchWebsocket.d.ts +1 -0
  20. package/dist/hooks/useWorkbenchWebsocket.d.ts.map +1 -1
  21. package/dist/hooks/useWorkbenchWebsocket.js +13 -2
  22. package/dist/hooks/useWorkbenchWebsocket.js.map +1 -1
  23. package/dist/index.d.ts +1 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/standalone.css +11 -0
  28. package/package.json +4 -4
  29. package/src/components/internal/chat.tsx +15 -5
  30. package/src/components/internal/input-section.tsx +17 -14
  31. package/src/components/internal/workbench-provider.tsx +133 -55
  32. package/src/hooks/useAgentSchemas.ts +23 -4
  33. package/src/hooks/useLogger.ts +15 -13
  34. package/src/hooks/useWorkbenchWebsocket.ts +16 -2
  35. package/src/index.ts +5 -1
@@ -1,4 +1,4 @@
1
- import { useCallback, useEffect, useState } from 'react';
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
2
  import { useLogger } from './useLogger';
3
3
  /**
4
4
  * React hook for fetching agent schemas from the workbench metadata endpoint
@@ -21,11 +21,14 @@ import { useLogger } from './useLogger';
21
21
  * ```
22
22
  */
23
23
  export function useAgentSchemas(options = {}) {
24
- const { baseUrl = '', apiKey, enabled = true } = options;
24
+ const { baseUrl = '', apiKey, enabled = true, headers: configHeaders, getAuthHeaders } = options;
25
25
  const logger = useLogger('useAgentSchemas');
26
26
  const [data, setData] = useState(null);
27
27
  const [isLoading, setIsLoading] = useState(false);
28
28
  const [error, setError] = useState(null);
29
+ // Use ref to avoid re-render loops when getAuthHeaders changes
30
+ const getAuthHeadersRef = useRef(getAuthHeaders);
31
+ getAuthHeadersRef.current = getAuthHeaders;
29
32
  const fetchSchemas = useCallback(async () => {
30
33
  if (!enabled)
31
34
  return;
@@ -34,11 +37,22 @@ export function useAgentSchemas(options = {}) {
34
37
  try {
35
38
  const url = `${baseUrl}/_agentuity/workbench/metadata.json`;
36
39
  const headers = {
40
+ ...(configHeaders || {}),
37
41
  'Content-Type': 'application/json',
38
42
  };
39
43
  if (apiKey) {
40
44
  headers.Authorization = `Bearer ${apiKey}`;
41
45
  }
46
+ // Get auth headers if callback is provided
47
+ if (getAuthHeadersRef.current) {
48
+ try {
49
+ const authHeaders = await getAuthHeadersRef.current('');
50
+ Object.assign(headers, authHeaders);
51
+ }
52
+ catch (err) {
53
+ logger.warn('Failed to get auth headers:', err);
54
+ }
55
+ }
42
56
  const response = await fetch(url, {
43
57
  method: 'GET',
44
58
  headers,
@@ -73,7 +87,8 @@ export function useAgentSchemas(options = {}) {
73
87
  finally {
74
88
  setIsLoading(false);
75
89
  }
76
- }, [baseUrl, apiKey, enabled]);
90
+ // eslint-disable-next-line -- getAuthHeadersRef is a ref
91
+ }, [baseUrl, apiKey, enabled, configHeaders, logger]);
77
92
  const refetch = useCallback(() => {
78
93
  void fetchSchemas();
79
94
  }, [fetchSchemas]);
@@ -1 +1 @@
1
- {"version":3,"file":"useAgentSchemas.js","sourceRoot":"","sources":["../../src/hooks/useAgentSchemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAgentSchemas.js","sourceRoot":"","sources":["../../src/hooks/useAgentSchemas.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLogger.d.ts","sourceRoot":"","sources":["../../src/hooks/useLogger.ts"],"names":[],"mappings":"AAIA,UAAU,MAAM;IACf,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACpC;AA+BD,wBAAgB,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAsBpD"}
1
+ {"version":3,"file":"useLogger.d.ts","sourceRoot":"","sources":["../../src/hooks/useLogger.ts"],"names":[],"mappings":"AAIA,UAAU,MAAM;IACf,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACpC;AA+BD,wBAAgB,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAwBpD"}
@@ -1,4 +1,4 @@
1
- import { useCallback } from 'react';
1
+ import { useMemo } from 'react';
2
2
  const getLogLevel = () => {
3
3
  try {
4
4
  const level = localStorage.getItem('AGENTUITY_LOG_LEVEL');
@@ -24,19 +24,23 @@ const shouldLog = (messageLevel) => {
24
24
  return levels[messageLevel] >= levels[currentLevel];
25
25
  };
26
26
  export function useLogger(component) {
27
- const createLogFunction = useCallback((level) => (...args) => {
28
- if (!shouldLog(level)) {
29
- return;
30
- }
31
- const prefix = component ? `[${component}]` : '[Workbench]';
32
- const consoleFn = console[level] || console.log;
33
- consoleFn(prefix, ...args);
27
+ // Memoize the entire logger object to prevent re-render loops
28
+ // when logger is used as a dependency in useCallback/useEffect
29
+ return useMemo(() => {
30
+ const createLogFunction = (level) => (...args) => {
31
+ if (!shouldLog(level)) {
32
+ return;
33
+ }
34
+ const prefix = component ? `[${component}]` : '[Workbench]';
35
+ const consoleFn = console[level] || console.log;
36
+ consoleFn(prefix, ...args);
37
+ };
38
+ return {
39
+ debug: createLogFunction('debug'),
40
+ info: createLogFunction('info'),
41
+ warn: createLogFunction('warn'),
42
+ error: createLogFunction('error'),
43
+ };
34
44
  }, [component]);
35
- return {
36
- debug: createLogFunction('debug'),
37
- info: createLogFunction('info'),
38
- warn: createLogFunction('warn'),
39
- error: createLogFunction('error'),
40
- };
41
45
  }
42
46
  //# sourceMappingURL=useLogger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLogger.js","sourceRoot":"","sources":["../../src/hooks/useLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAWpC,MAAM,WAAW,GAAG,GAAoB,EAAE;IACzC,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAE1D,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACjE,OAAO,KAAiB,CAAC;QAC1B,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,YAAsB,EAAW,EAAE;IACrD,MAAM,YAAY,GAAG,WAAW,EAAE,CAAC;IAEnC,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAEhC,MAAM,MAAM,GAA6B;QACxC,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;KACR,CAAC;IAEF,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,SAAkB;IAC3C,MAAM,iBAAiB,GAAG,WAAW,CACpC,CAAC,KAAe,EAAE,EAAE,CACnB,CAAC,GAAG,IAAe,EAAE,EAAE;QACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO;QACR,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC;QAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC;QAEhD,SAAS,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5B,CAAC,EACF,CAAC,SAAS,CAAC,CACX,CAAC;IAEF,OAAO;QACN,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC;QACjC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC;QAC/B,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC;QAC/B,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC;KACjC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"useLogger.js","sourceRoot":"","sources":["../../src/hooks/useLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAWhC,MAAM,WAAW,GAAG,GAAoB,EAAE;IACzC,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAE1D,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACjE,OAAO,KAAiB,CAAC;QAC1B,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,YAAsB,EAAW,EAAE;IACrD,MAAM,YAAY,GAAG,WAAW,EAAE,CAAC;IAEnC,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAEhC,MAAM,MAAM,GAA6B;QACxC,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;KACR,CAAC;IAEF,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,SAAkB;IAC3C,8DAA8D;IAC9D,+DAA+D;IAC/D,OAAO,OAAO,CAAC,GAAG,EAAE;QACnB,MAAM,iBAAiB,GACtB,CAAC,KAAe,EAAE,EAAE,CACpB,CAAC,GAAG,IAAe,EAAE,EAAE;YACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO;YACR,CAAC;YAED,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC;YAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC;YAEhD,SAAS,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEH,OAAO;YACN,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC;YACjC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC;YAC/B,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC;YAC/B,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC;SACjC,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACjB,CAAC"}
@@ -2,6 +2,7 @@ export interface UseWorkbenchWebsocketOptions {
2
2
  apiKey?: string;
3
3
  baseUrl?: string;
4
4
  enabled?: boolean;
5
+ headers?: Record<string, string>;
5
6
  onAlive?: () => void;
6
7
  onConnect?: () => void;
7
8
  onReconnect?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useWorkbenchWebsocket.d.ts","sourceRoot":"","sources":["../../src/hooks/useWorkbenchWebsocket.ts"],"names":[],"mappings":"AAsFA,MAAM,WAAW,4BAA4B;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,2BAA2B;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CACpC,OAAO,GAAE,4BAAiC,GACxC,2BAA2B,CAwJ7B"}
1
+ {"version":3,"file":"useWorkbenchWebsocket.d.ts","sourceRoot":"","sources":["../../src/hooks/useWorkbenchWebsocket.ts"],"names":[],"mappings":"AAuFA,MAAM,WAAW,4BAA4B;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,2BAA2B;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CACpC,OAAO,GAAE,4BAAiC,GACxC,2BAA2B,CAoK7B"}
@@ -46,7 +46,7 @@ function createReconnectManager(opts) {
46
46
  return { recordFailure, recordSuccess, cancel, reset, dispose, getAttempts };
47
47
  }
48
48
  export function useWorkbenchWebsocket(options = {}) {
49
- const { baseUrl, apiKey, onConnect, onReconnect, onAlive, onRestarting } = options;
49
+ const { baseUrl, apiKey, headers, onConnect, onReconnect, onAlive, onRestarting } = options;
50
50
  const [connected, setConnected] = useState(false);
51
51
  const [error, setError] = useState(null);
52
52
  const hasConnectedOnce = useRef(false);
@@ -73,8 +73,19 @@ export function useWorkbenchWebsocket(options = {}) {
73
73
  if (apiKey) {
74
74
  url.searchParams.set('apiKey', apiKey);
75
75
  }
76
+ // Pass any manual headers as query params (WebSocket can't use custom headers in browser)
77
+ if (headers) {
78
+ const signature = headers['X-Agentuity-Workbench-Signature'];
79
+ const timestamp = headers['X-Agentuity-Workbench-Timestamp'];
80
+ if (signature) {
81
+ url.searchParams.set('signature', signature);
82
+ }
83
+ if (timestamp) {
84
+ url.searchParams.set('timestamp', timestamp);
85
+ }
86
+ }
76
87
  return url.toString();
77
- }, [baseUrl, apiKey]);
88
+ }, [baseUrl, apiKey, headers]);
78
89
  const connect = useCallback(() => {
79
90
  if (manualClose.current || !options.enabled) {
80
91
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"useWorkbenchWebsocket.js","sourceRoot":"","sources":["../../src/hooks/useWorkbenchWebsocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useWorkbenchWebsocket.js","sourceRoot":"","sources":["../../src/hooks/useWorkbenchWebsocket.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ export { default as App } from './components/App';
2
2
  export { Chat } from './components/internal/chat';
3
3
  export { StatusIndicator } from './components/internal/header';
4
4
  export { Schema } from './components/internal/schema';
5
- export { useWorkbench, WorkbenchProvider } from './components/internal/workbench-provider';
5
+ export { useWorkbench, WorkbenchProvider, type GetAuthHeaders, } from './components/internal/workbench-provider';
6
6
  export type { WorkbenchInstance } from './types';
7
7
  export type { ConnectionStatus, WorkbenchMessage } from './types/config';
8
8
  export { createWorkbench } from './workbench';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC3F,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EACN,YAAY,EACZ,iBAAiB,EACjB,KAAK,cAAc,GACnB,MAAM,0CAA0C,CAAC;AAClD,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -2,6 +2,6 @@ export { default as App } from './components/App';
2
2
  export { Chat } from './components/internal/chat';
3
3
  export { StatusIndicator } from './components/internal/header';
4
4
  export { Schema } from './components/internal/schema';
5
- export { useWorkbench, WorkbenchProvider } from './components/internal/workbench-provider';
5
+ export { useWorkbench, WorkbenchProvider, } from './components/internal/workbench-provider';
6
6
  export { createWorkbench } from './workbench';
7
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAG3F,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EACN,YAAY,EACZ,iBAAiB,GAEjB,MAAM,0CAA0C,CAAC;AAGlD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
@@ -540,6 +540,9 @@ button:not([disabled]):not([aria-disabled='true']), [role='button']:not([disable
540
540
  .min-h-16 {
541
541
  min-height: calc(var(--spacing) * 16);
542
542
  }
543
+ .min-h-\[120px\] {
544
+ min-height: 120px;
545
+ }
543
546
  .w-0 {
544
547
  width: calc(var(--spacing) * 0);
545
548
  }
@@ -996,6 +999,9 @@ button:not([disabled]):not([aria-disabled='true']), [role='button']:not([disable
996
999
  .py-8 {
997
1000
  padding-block: calc(var(--spacing) * 8);
998
1001
  }
1002
+ .py-12 {
1003
+ padding-block: calc(var(--spacing) * 12);
1004
+ }
999
1005
  .pt-0 {
1000
1006
  padding-top: calc(var(--spacing) * 0);
1001
1007
  }
@@ -1208,6 +1214,11 @@ button:not([disabled]):not([aria-disabled='true']), [role='button']:not([disable
1208
1214
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1209
1215
  transition-duration: var(--tw-duration, var(--default-transition-duration));
1210
1216
  }
1217
+ .transition-\[min-height\] {
1218
+ transition-property: min-height;
1219
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1220
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1221
+ }
1211
1222
  .transition-all {
1212
1223
  transition-property: all;
1213
1224
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentuity/workbench",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Agentuity",
6
6
  "type": "module",
@@ -38,8 +38,8 @@
38
38
  "prepublishOnly": "bun run clean && bun run build"
39
39
  },
40
40
  "dependencies": {
41
- "@agentuity/core": "1.0.5",
42
- "@agentuity/react": "1.0.5",
41
+ "@agentuity/core": "1.0.6",
42
+ "@agentuity/react": "1.0.6",
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": "1.0.5",
71
+ "@agentuity/test-utils": "1.0.6",
72
72
  "@tailwindcss/cli": "^4.1.12",
73
73
  "@tailwindcss/vite": "^4.1.12",
74
74
  "@vitejs/plugin-react": "^4.5.3",
@@ -77,11 +77,21 @@ export function Chat({
77
77
  className="flex-1 overflow-y-auto [&>div]:overflow-y-auto"
78
78
  id="chat-conversation"
79
79
  >
80
- {connectionStatus === 'disconnected' && emptyState ? (
81
- <div className="flex flex-col h-full">{emptyState}</div>
82
- ) : (
83
- <ConversationContent>
84
- {messages.map((message) => {
80
+ {connectionStatus === 'disconnected' && emptyState ? (
81
+ <div className="flex flex-col h-full">{emptyState}</div>
82
+ ) : messages.length === 0 ? (
83
+ <ConversationContent>
84
+ <div className="flex items-center justify-center h-full py-12 text-muted-foreground">
85
+ {isLoading ? (
86
+ <Loader className="size-5 animate-spin" />
87
+ ) : (
88
+ <p className="text-sm">Send a message to get started.</p>
89
+ )}
90
+ </div>
91
+ </ConversationContent>
92
+ ) : (
93
+ <ConversationContent>
94
+ {messages.map((message) => {
85
95
  const { role, parts, id, tokens, duration, sessionId } = message;
86
96
 
87
97
  const isStreaming = parts.some(
@@ -396,10 +396,11 @@ export function InputSection({
396
396
  )}
397
397
  </div>
398
398
 
399
- <PromptInput onSubmit={onSubmit}>
400
- <PromptInputBody>
399
+ <PromptInput onSubmit={onSubmit}>
400
+ <PromptInputBody>
401
+ <div className="min-h-[120px] w-full flex flex-col transition-[min-height] duration-200">
401
402
  {!selectedAgent ? (
402
- <div className="flex flex-col items-center justify-center py-6 px-4 text-center">
403
+ <div className="flex flex-col flex-1 items-center justify-center py-6 px-4 text-center">
403
404
  <p className="text-sm text-muted-foreground/70">
404
405
  Select an agent to get started.
405
406
  </p>
@@ -420,17 +421,18 @@ export function InputSection({
420
421
  />
421
422
  );
422
423
 
423
- case 'string':
424
- return (
425
- <PromptInputTextarea
426
- onChange={(e) => onChange(e.target.value)}
427
- placeholder="Enter a message to send..."
428
- value={value}
429
- />
430
- );
424
+ case 'string':
425
+ return (
426
+ <PromptInputTextarea
427
+ className="min-h-[120px]"
428
+ onChange={(e) => onChange(e.target.value)}
429
+ placeholder="Enter a message to send..."
430
+ value={value}
431
+ />
432
+ );
431
433
  default:
432
434
  return (
433
- <div className="flex flex-col items-center justify-center py-8 px-4 text-center ">
435
+ <div className="flex flex-col flex-1 items-center justify-center py-8 px-4 text-center">
434
436
  <p className="text-sm text-muted-foreground">
435
437
  <span className="font-medium">
436
438
  This agent has no input schema.
@@ -456,8 +458,9 @@ export function InputSection({
456
458
  );
457
459
  }
458
460
  })()
459
- )}
460
- </PromptInputBody>
461
+ )}
462
+ </div>
463
+ </PromptInputBody>
461
464
 
462
465
  <PromptInputFooter className={cn('pt-0', !selectedAgent && 'pb-0')}>
463
466
  {selectedAgent && inputType !== 'none' && (