@ottocode/web-sdk 0.1.299 → 0.1.301
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/dist/components/agents/AgentEditor.d.ts +9 -0
- package/dist/components/agents/AgentEditor.d.ts.map +1 -0
- package/dist/components/agents/AgentList.d.ts +10 -0
- package/dist/components/agents/AgentList.d.ts.map +1 -0
- package/dist/components/agents/AgentProviderModelFields.d.ts +10 -0
- package/dist/components/agents/AgentProviderModelFields.d.ts.map +1 -0
- package/dist/components/agents/AgentToolList.d.ts +14 -0
- package/dist/components/agents/AgentToolList.d.ts.map +1 -0
- package/dist/components/agents/AgentsManagerModal.d.ts +2 -0
- package/dist/components/agents/AgentsManagerModal.d.ts.map +1 -0
- package/dist/components/agents/AgentsSidebar.d.ts +3 -0
- package/dist/components/agents/AgentsSidebar.d.ts.map +1 -0
- package/dist/components/agents/AgentsSidebarToggle.d.ts +2 -0
- package/dist/components/agents/AgentsSidebarToggle.d.ts.map +1 -0
- package/dist/components/agents/CreateAgentModal.d.ts +8 -0
- package/dist/components/agents/CreateAgentModal.d.ts.map +1 -0
- package/dist/components/agents/agentConstants.d.ts +50 -0
- package/dist/components/agents/agentConstants.d.ts.map +1 -0
- package/dist/components/agents/index.d.ts +10 -0
- package/dist/components/agents/index.d.ts.map +1 -0
- package/dist/components/btw/BtwFloatingChat.d.ts +2 -0
- package/dist/components/btw/BtwFloatingChat.d.ts.map +1 -0
- package/dist/components/chat/ChatInput.d.ts +5 -0
- package/dist/components/chat/ChatInput.d.ts.map +1 -1
- package/dist/components/chat/ChatInputContainer.d.ts.map +1 -1
- package/dist/components/chat/NewSessionLanding.d.ts.map +1 -1
- package/dist/components/chat/UnifiedModelSelector.d.ts +2 -1
- package/dist/components/chat/UnifiedModelSelector.d.ts.map +1 -1
- package/dist/components/file-browser/FileViewerPanel.d.ts.map +1 -1
- package/dist/components/index.d.ts +5 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +17348 -14788
- package/dist/components/index.js.map +33 -20
- package/dist/components/messages/ActionToolBox.d.ts.map +1 -1
- package/dist/components/messages/MessageThread.d.ts +1 -0
- package/dist/components/messages/MessageThread.d.ts.map +1 -1
- package/dist/components/messages/MessageThreadContainer.d.ts +1 -0
- package/dist/components/messages/MessageThreadContainer.d.ts.map +1 -1
- package/dist/components/messages/UserMessageGroup.d.ts.map +1 -1
- package/dist/components/ui/CodeMirrorViewer.d.ts +3 -1
- package/dist/components/ui/CodeMirrorViewer.d.ts.map +1 -1
- package/dist/components/ui/Modal.d.ts +1 -1
- package/dist/components/ui/Modal.d.ts.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +236 -15
- package/dist/hooks/index.js.map +8 -6
- package/dist/hooks/useAgents.d.ts +156 -0
- package/dist/hooks/useAgents.d.ts.map +1 -0
- package/dist/hooks/useConfig.d.ts.map +1 -1
- package/dist/hooks/useSessionStream.d.ts.map +1 -1
- package/dist/index.js +17390 -14819
- package/dist/index.js.map +33 -20
- package/dist/lib/api-client/config.d.ts +14 -0
- package/dist/lib/api-client/config.d.ts.map +1 -1
- package/dist/lib/api-client/index.d.ts +5 -0
- package/dist/lib/api-client/index.d.ts.map +1 -1
- package/dist/lib/fileSelectionContext.d.ts +48 -0
- package/dist/lib/fileSelectionContext.d.ts.map +1 -0
- package/dist/lib/index.js +48 -2
- package/dist/lib/index.js.map +4 -4
- package/dist/stores/agentsStore.d.ts +28 -0
- package/dist/stores/agentsStore.d.ts.map +1 -0
- package/dist/stores/btwStore.d.ts +24 -0
- package/dist/stores/btwStore.d.ts.map +1 -0
- package/dist/stores/fileSelectionStore.d.ts +16 -0
- package/dist/stores/fileSelectionStore.d.ts.map +1 -0
- package/dist/stores/index.d.ts +3 -0
- package/dist/stores/index.d.ts.map +1 -1
- package/dist/stores/index.js +140 -8
- package/dist/stores/index.js.map +6 -3
- package/dist/types/api.d.ts +3 -1
- package/dist/types/api.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionToolBox.d.ts","sourceRoot":"","sources":["../../../src/components/messages/ActionToolBox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"ActionToolBox.d.ts","sourceRoot":"","sources":["../../../src/components/messages/ActionToolBox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAqLnD,UAAU,kBAAkB;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,kBAAkB,+BAyS5E"}
|
|
@@ -7,6 +7,7 @@ interface MessageThreadProps {
|
|
|
7
7
|
compact?: boolean;
|
|
8
8
|
disableAutoScroll?: boolean;
|
|
9
9
|
onSelectSession?: (sessionId: string) => void;
|
|
10
|
+
footerBottomPaddingClass?: string;
|
|
10
11
|
}
|
|
11
12
|
export declare const MessageThread: import("react").NamedExoticComponent<MessageThreadProps>;
|
|
12
13
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageThread.d.ts","sourceRoot":"","sources":["../../../src/components/messages/MessageThread.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAe,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAmBrE,UAAU,kBAAkB;IAC3B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"MessageThread.d.ts","sourceRoot":"","sources":["../../../src/components/messages/MessageThread.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAe,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAmBrE,UAAU,kBAAkB;IAC3B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,wBAAwB,CAAC,EAAE,MAAM,CAAC;CAClC;AA6YD,eAAO,MAAM,aAAa,0DAuZxB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
interface MessageThreadContainerProps {
|
|
2
2
|
sessionId: string;
|
|
3
3
|
onSelectSession?: (sessionId: string) => void;
|
|
4
|
+
footerBottomPaddingClass?: string;
|
|
4
5
|
}
|
|
5
6
|
export declare const MessageThreadContainer: import("react").NamedExoticComponent<MessageThreadContainerProps>;
|
|
6
7
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageThreadContainer.d.ts","sourceRoot":"","sources":["../../../src/components/messages/MessageThreadContainer.tsx"],"names":[],"mappings":"AAUA,UAAU,2BAA2B;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"MessageThreadContainer.d.ts","sourceRoot":"","sources":["../../../src/components/messages/MessageThreadContainer.tsx"],"names":[],"mappings":"AAUA,UAAU,2BAA2B;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,wBAAwB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,eAAO,MAAM,sBAAsB,mEAiBjC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserMessageGroup.d.ts","sourceRoot":"","sources":["../../../src/components/messages/UserMessageGroup.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UserMessageGroup.d.ts","sourceRoot":"","sources":["../../../src/components/messages/UserMessageGroup.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAU/C,UAAU,qBAAqB;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAChC;AAkBD,eAAO,MAAM,gBAAgB,6DAiX5B,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CodeMirrorTextSelection } from '../../lib/fileSelectionContext';
|
|
1
2
|
export type CodeMirrorLineTone = 'add' | 'remove' | 'primary';
|
|
2
3
|
type CodeMirrorLineNumberFormatter = (lineNumber: number) => string;
|
|
3
4
|
interface CodeMirrorViewerProps {
|
|
@@ -11,7 +12,8 @@ interface CodeMirrorViewerProps {
|
|
|
11
12
|
scrollToEndSignal?: string | number;
|
|
12
13
|
disableMarkdownSyntax?: boolean;
|
|
13
14
|
lineNumberFormatter?: CodeMirrorLineNumberFormatter;
|
|
15
|
+
onSelectionChange?: (selection: CodeMirrorTextSelection | null) => void;
|
|
14
16
|
}
|
|
15
|
-
export declare function CodeMirrorViewer({ content, path, className, highlightedLines, highlightTone, lineTones, scrollToLine, scrollToEndSignal, disableMarkdownSyntax, lineNumberFormatter, }: CodeMirrorViewerProps): import("react").JSX.Element;
|
|
17
|
+
export declare function CodeMirrorViewer({ content, path, className, highlightedLines, highlightTone, lineTones, scrollToLine, scrollToEndSignal, disableMarkdownSyntax, lineNumberFormatter, onSelectionChange, }: CodeMirrorViewerProps): import("react").JSX.Element;
|
|
16
18
|
export {};
|
|
17
19
|
//# sourceMappingURL=CodeMirrorViewer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeMirrorViewer.d.ts","sourceRoot":"","sources":["../../../src/components/ui/CodeMirrorViewer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CodeMirrorViewer.d.ts","sourceRoot":"","sources":["../../../src/components/ui/CodeMirrorViewer.tsx"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAE9E,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC9D,KAAK,6BAA6B,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;AAEpE,UAAU,qBAAqB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,6BAA6B,CAAC;IACpD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,uBAAuB,GAAG,IAAI,KAAK,IAAI,CAAC;CACxE;AA0SD,wBAAgB,gBAAgB,CAAC,EAChC,OAAO,EACP,IAAI,EACJ,SAAS,EACT,gBAAgB,EAChB,aAAyB,EACzB,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,qBAA6B,EAC7B,mBAAmB,EACnB,iBAAiB,GACjB,EAAE,qBAAqB,+BAoLvB"}
|
|
@@ -7,7 +7,7 @@ interface ModalProps {
|
|
|
7
7
|
showCloseButton?: boolean;
|
|
8
8
|
closeOnBackdropClick?: boolean;
|
|
9
9
|
closeOnEscape?: boolean;
|
|
10
|
-
maxWidth?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '4xl';
|
|
10
|
+
maxWidth?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '4xl' | '5xl';
|
|
11
11
|
position?: 'fixed' | 'absolute';
|
|
12
12
|
}
|
|
13
13
|
export declare function Modal({ isOpen, onClose, title, children, showCloseButton, closeOnBackdropClick, closeOnEscape, maxWidth, position, }: ModalProps): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/ui/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlD,UAAU,UAAU;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/ui/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlD,UAAU,UAAU;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAC7D,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CAChC;AAYD,wBAAgB,KAAK,CAAC,EACrB,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,EACR,eAAsB,EACtB,oBAA2B,EAC3B,aAAoB,EACpB,QAAe,EACf,QAAkB,GAClB,EAAE,UAAU,+BA4GZ"}
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export * from './useProviderUsage';
|
|
|
26
26
|
export * from './useFileBrowser';
|
|
27
27
|
export * from './useMCP';
|
|
28
28
|
export * from './useSkills';
|
|
29
|
+
export * from './useAgents';
|
|
29
30
|
export * from './useContainerWidth';
|
|
30
31
|
export * from './useVoiceInput';
|
|
31
32
|
export * from './useDictationModels';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
|
package/dist/hooks/index.js
CHANGED
|
@@ -560,6 +560,11 @@ import {
|
|
|
560
560
|
getConfig as apiGetConfig,
|
|
561
561
|
getProviderModels as apiGetProviderModels,
|
|
562
562
|
getAllModels as apiGetAllModels,
|
|
563
|
+
getAgentDetails as apiGetAgentDetails,
|
|
564
|
+
getAgent as apiGetAgent,
|
|
565
|
+
getConfigTools as apiGetConfigTools,
|
|
566
|
+
upsertAgent as apiUpsertAgent,
|
|
567
|
+
deleteAgent as apiDeleteAgent,
|
|
563
568
|
discoverProviderModels as apiDiscoverProviderModels,
|
|
564
569
|
updateDefaults as apiUpdateDefaults,
|
|
565
570
|
updateProviderSettings as apiUpdateProviderSettings,
|
|
@@ -572,6 +577,42 @@ var configMixin = {
|
|
|
572
577
|
throw new Error(extractErrorMessage(response.error));
|
|
573
578
|
return response.data;
|
|
574
579
|
},
|
|
580
|
+
async getAgentDetails() {
|
|
581
|
+
const response = await apiGetAgentDetails();
|
|
582
|
+
if (response.error)
|
|
583
|
+
throw new Error(extractErrorMessage(response.error));
|
|
584
|
+
return response.data;
|
|
585
|
+
},
|
|
586
|
+
async getAgent(name) {
|
|
587
|
+
const response = await apiGetAgent({ path: { agent: name } });
|
|
588
|
+
if (response.error)
|
|
589
|
+
throw new Error(extractErrorMessage(response.error));
|
|
590
|
+
return response.data;
|
|
591
|
+
},
|
|
592
|
+
async getConfigTools() {
|
|
593
|
+
const response = await apiGetConfigTools();
|
|
594
|
+
if (response.error)
|
|
595
|
+
throw new Error(extractErrorMessage(response.error));
|
|
596
|
+
return response.data;
|
|
597
|
+
},
|
|
598
|
+
async updateAgent(name, input) {
|
|
599
|
+
const response = await apiUpsertAgent({
|
|
600
|
+
path: { agent: name },
|
|
601
|
+
body: input
|
|
602
|
+
});
|
|
603
|
+
if (response.error)
|
|
604
|
+
throw new Error(extractErrorMessage(response.error));
|
|
605
|
+
return response.data;
|
|
606
|
+
},
|
|
607
|
+
async deleteAgent(name, scope = "local") {
|
|
608
|
+
const response = await apiDeleteAgent({
|
|
609
|
+
path: { agent: name },
|
|
610
|
+
query: { scope }
|
|
611
|
+
});
|
|
612
|
+
if (response.error)
|
|
613
|
+
throw new Error(extractErrorMessage(response.error));
|
|
614
|
+
return response.data;
|
|
615
|
+
},
|
|
575
616
|
async getModels(providerId) {
|
|
576
617
|
const response = await apiGetProviderModels({
|
|
577
618
|
path: { provider: providerId }
|
|
@@ -613,7 +654,7 @@ var configMixin = {
|
|
|
613
654
|
},
|
|
614
655
|
async updateDefaults(data) {
|
|
615
656
|
const response = await apiUpdateDefaults({
|
|
616
|
-
body: data
|
|
657
|
+
body: { scope: "global", ...data }
|
|
617
658
|
});
|
|
618
659
|
if (response.error)
|
|
619
660
|
throw new Error(extractErrorMessage(response.error));
|
|
@@ -1250,6 +1291,11 @@ class ApiClient {
|
|
|
1250
1291
|
checkoutBranch = gitMixin.checkoutBranch;
|
|
1251
1292
|
createGitBranch = gitMixin.createGitBranch;
|
|
1252
1293
|
getConfig = configMixin.getConfig;
|
|
1294
|
+
getAgentDetails = configMixin.getAgentDetails;
|
|
1295
|
+
getAgent = configMixin.getAgent;
|
|
1296
|
+
getConfigTools = configMixin.getConfigTools;
|
|
1297
|
+
updateAgent = configMixin.updateAgent;
|
|
1298
|
+
deleteAgent = configMixin.deleteAgent;
|
|
1253
1299
|
getModels = configMixin.getModels;
|
|
1254
1300
|
getAllModels = configMixin.getAllModels;
|
|
1255
1301
|
discoverProviderModels = configMixin.discoverProviderModels;
|
|
@@ -4035,6 +4081,7 @@ ${bestEffortUnescapeJsonString(rawTail)}`;
|
|
|
4035
4081
|
if (!callId)
|
|
4036
4082
|
return;
|
|
4037
4083
|
const payloadName = getToolEventName(payload);
|
|
4084
|
+
const payloadMessageId = typeof payload?.messageId === "string" ? payload.messageId : null;
|
|
4038
4085
|
const payloadStepIndex = typeof payload?.stepIndex === "number" ? payload.stepIndex : null;
|
|
4039
4086
|
const payloadResult = payload?.result;
|
|
4040
4087
|
const payloadArtifact = payload?.artifact;
|
|
@@ -4045,6 +4092,9 @@ ${bestEffortUnescapeJsonString(rawTail)}`;
|
|
|
4045
4092
|
let changed = false;
|
|
4046
4093
|
const now = Date.now();
|
|
4047
4094
|
const nextMessages = oldMessages.map((message) => {
|
|
4095
|
+
if (payloadMessageId && message.id !== payloadMessageId) {
|
|
4096
|
+
return message;
|
|
4097
|
+
}
|
|
4048
4098
|
if (!message.parts?.length)
|
|
4049
4099
|
return message;
|
|
4050
4100
|
let messageChanged = false;
|
|
@@ -7248,11 +7298,175 @@ function useSkillFileContent(name, filePath) {
|
|
|
7248
7298
|
enabled: !!name && !!filePath
|
|
7249
7299
|
});
|
|
7250
7300
|
}
|
|
7301
|
+
// src/hooks/useAgents.ts
|
|
7302
|
+
import { useEffect as useEffect18 } from "react";
|
|
7303
|
+
import { useMutation as useMutation10, useQuery as useQuery14, useQueryClient as useQueryClient13 } from "@tanstack/react-query";
|
|
7304
|
+
|
|
7305
|
+
// src/stores/agentsStore.ts
|
|
7306
|
+
import { create as create22 } from "zustand";
|
|
7307
|
+
function collapseOtherRightPanels() {
|
|
7308
|
+
useGitStore.getState().collapseSidebar();
|
|
7309
|
+
useSessionFilesStore.getState().collapseSidebar();
|
|
7310
|
+
useResearchStore.getState().collapseSidebar();
|
|
7311
|
+
useSettingsStore.getState().collapseSidebar();
|
|
7312
|
+
useTunnelStore.getState().collapseSidebar();
|
|
7313
|
+
useFileBrowserStore.getState().collapseSidebar();
|
|
7314
|
+
useMCPStore.getState().collapseSidebar();
|
|
7315
|
+
useSkillsStore.getState().collapseSidebar();
|
|
7316
|
+
}
|
|
7317
|
+
var useAgentsStore = create22((set) => ({
|
|
7318
|
+
isExpanded: false,
|
|
7319
|
+
isManagerOpen: false,
|
|
7320
|
+
managerMode: "library",
|
|
7321
|
+
editorPage: "overview",
|
|
7322
|
+
agents: [],
|
|
7323
|
+
defaultAgent: null,
|
|
7324
|
+
selectedAgent: null,
|
|
7325
|
+
isCreateModalOpen: false,
|
|
7326
|
+
setManagerMode: (mode) => set({ managerMode: mode }),
|
|
7327
|
+
openManager: () => {
|
|
7328
|
+
collapseOtherRightPanels();
|
|
7329
|
+
set({ isManagerOpen: true, isExpanded: true, managerMode: "library" });
|
|
7330
|
+
},
|
|
7331
|
+
closeManager: () => set({
|
|
7332
|
+
isManagerOpen: false,
|
|
7333
|
+
isExpanded: false,
|
|
7334
|
+
isCreateModalOpen: false,
|
|
7335
|
+
managerMode: "library",
|
|
7336
|
+
editorPage: "overview"
|
|
7337
|
+
}),
|
|
7338
|
+
toggleManager: () => {
|
|
7339
|
+
const open = useAgentsStore.getState().isManagerOpen;
|
|
7340
|
+
if (open) {
|
|
7341
|
+
useAgentsStore.getState().closeManager();
|
|
7342
|
+
} else {
|
|
7343
|
+
useAgentsStore.getState().openManager();
|
|
7344
|
+
}
|
|
7345
|
+
},
|
|
7346
|
+
setAgents: (agents, defaultAgent) => set((state) => ({
|
|
7347
|
+
agents,
|
|
7348
|
+
defaultAgent,
|
|
7349
|
+
selectedAgent: state.selectedAgent && agents.some((a) => a.name === state.selectedAgent) ? state.selectedAgent : agents.find((a) => a.name === defaultAgent)?.name ?? agents[0]?.name ?? null
|
|
7350
|
+
})),
|
|
7351
|
+
selectAgent: (agent) => set({ selectedAgent: agent }),
|
|
7352
|
+
backToList: () => set({ selectedAgent: null, editorPage: "overview" }),
|
|
7353
|
+
openAgentInManager: (agent) => set({
|
|
7354
|
+
isManagerOpen: true,
|
|
7355
|
+
isExpanded: true,
|
|
7356
|
+
managerMode: "workspace",
|
|
7357
|
+
selectedAgent: agent,
|
|
7358
|
+
editorPage: "overview",
|
|
7359
|
+
isCreateModalOpen: false
|
|
7360
|
+
}),
|
|
7361
|
+
setEditorPage: (page) => set({ editorPage: page }),
|
|
7362
|
+
openCreateModal: () => set({ isManagerOpen: true, isExpanded: true, isCreateModalOpen: true }),
|
|
7363
|
+
closeCreateModal: () => set({ isCreateModalOpen: false })
|
|
7364
|
+
}));
|
|
7365
|
+
|
|
7366
|
+
// src/hooks/useAgents.ts
|
|
7367
|
+
function useAgentDetails(options = {}) {
|
|
7368
|
+
const managerOpen = useAgentsStore((s) => s.isManagerOpen);
|
|
7369
|
+
const createOpen = useAgentsStore((s) => s.isCreateModalOpen);
|
|
7370
|
+
const enabled = options.enabled ?? (managerOpen || createOpen);
|
|
7371
|
+
const setAgents = useAgentsStore((s) => s.setAgents);
|
|
7372
|
+
const selectedAgent = useAgentsStore((s) => s.selectedAgent);
|
|
7373
|
+
const selectAgent = useAgentsStore((s) => s.selectAgent);
|
|
7374
|
+
const query = useQuery14({
|
|
7375
|
+
queryKey: ["config", "agents"],
|
|
7376
|
+
queryFn: () => apiClient.getAgentDetails(),
|
|
7377
|
+
enabled,
|
|
7378
|
+
staleTime: 15000
|
|
7379
|
+
});
|
|
7380
|
+
useEffect18(() => {
|
|
7381
|
+
if (!query.data)
|
|
7382
|
+
return;
|
|
7383
|
+
setAgents(query.data.agents, query.data.default);
|
|
7384
|
+
if (!selectedAgent && query.data.agents.length > 0) {
|
|
7385
|
+
const defaultAgent = query.data.agents.find((agent) => agent.name === query.data.default);
|
|
7386
|
+
selectAgent(defaultAgent?.name ?? query.data.agents[0].name);
|
|
7387
|
+
}
|
|
7388
|
+
}, [query.data, selectAgent, selectedAgent, setAgents]);
|
|
7389
|
+
return query;
|
|
7390
|
+
}
|
|
7391
|
+
function useAgent(agentName) {
|
|
7392
|
+
return useQuery14({
|
|
7393
|
+
queryKey: ["config", "agents", agentName],
|
|
7394
|
+
queryFn: async () => {
|
|
7395
|
+
if (!agentName)
|
|
7396
|
+
return null;
|
|
7397
|
+
return apiClient.getAgent(agentName);
|
|
7398
|
+
},
|
|
7399
|
+
enabled: Boolean(agentName),
|
|
7400
|
+
staleTime: 15000
|
|
7401
|
+
});
|
|
7402
|
+
}
|
|
7403
|
+
function useConfigTools(options = {}) {
|
|
7404
|
+
const managerOpen = useAgentsStore((s) => s.isManagerOpen);
|
|
7405
|
+
const createOpen = useAgentsStore((s) => s.isCreateModalOpen);
|
|
7406
|
+
const enabled = options.enabled ?? (managerOpen || createOpen);
|
|
7407
|
+
return useQuery14({
|
|
7408
|
+
queryKey: ["config", "tools"],
|
|
7409
|
+
queryFn: () => apiClient.getConfigTools(),
|
|
7410
|
+
enabled,
|
|
7411
|
+
staleTime: 30000
|
|
7412
|
+
});
|
|
7413
|
+
}
|
|
7414
|
+
function useUpdateAgent() {
|
|
7415
|
+
const queryClient = useQueryClient13();
|
|
7416
|
+
return useMutation10({
|
|
7417
|
+
mutationFn: ({ name, input }) => apiClient.updateAgent(name, input),
|
|
7418
|
+
onSuccess: (data, variables) => {
|
|
7419
|
+
queryClient.setQueryData(["config", "agents", variables.name], data);
|
|
7420
|
+
queryClient.invalidateQueries({ queryKey: ["config", "agents"] });
|
|
7421
|
+
}
|
|
7422
|
+
});
|
|
7423
|
+
}
|
|
7424
|
+
function useDeleteAgent() {
|
|
7425
|
+
const queryClient = useQueryClient13();
|
|
7426
|
+
const setAgents = useAgentsStore((s) => s.setAgents);
|
|
7427
|
+
const selectAgent = useAgentsStore((s) => s.selectAgent);
|
|
7428
|
+
return useMutation10({
|
|
7429
|
+
mutationFn: ({
|
|
7430
|
+
name,
|
|
7431
|
+
scope = "local"
|
|
7432
|
+
}) => apiClient.deleteAgent(name, scope),
|
|
7433
|
+
onSuccess: async (_data, variables) => {
|
|
7434
|
+
await queryClient.invalidateQueries({ queryKey: ["config", "agents"] });
|
|
7435
|
+
const refreshed = await queryClient.fetchQuery({
|
|
7436
|
+
queryKey: ["config", "agents"],
|
|
7437
|
+
queryFn: () => apiClient.getAgentDetails()
|
|
7438
|
+
});
|
|
7439
|
+
setAgents(refreshed.agents, refreshed.default);
|
|
7440
|
+
if (variables.name === useAgentsStore.getState().selectedAgent) {
|
|
7441
|
+
const next = refreshed.agents.find((a) => a.name === refreshed.default)?.name ?? refreshed.agents[0]?.name ?? null;
|
|
7442
|
+
selectAgent(next);
|
|
7443
|
+
}
|
|
7444
|
+
}
|
|
7445
|
+
});
|
|
7446
|
+
}
|
|
7447
|
+
function useSetDefaultAgent() {
|
|
7448
|
+
const queryClient = useQueryClient13();
|
|
7449
|
+
return useMutation10({
|
|
7450
|
+
mutationFn: (name) => apiClient.updateDefaults({ agent: name, scope: "global" }),
|
|
7451
|
+
onSuccess: () => {
|
|
7452
|
+
queryClient.invalidateQueries({ queryKey: ["config", "agents"] });
|
|
7453
|
+
queryClient.invalidateQueries({ queryKey: ["config"] });
|
|
7454
|
+
}
|
|
7455
|
+
});
|
|
7456
|
+
}
|
|
7457
|
+
function getAgentToolCount(agent) {
|
|
7458
|
+
if (!agent)
|
|
7459
|
+
return 0;
|
|
7460
|
+
return Array.from(new Set([
|
|
7461
|
+
...agent.toolConfig.firstClass ?? [],
|
|
7462
|
+
...agent.toolConfig.loadable ?? []
|
|
7463
|
+
])).length;
|
|
7464
|
+
}
|
|
7251
7465
|
// src/hooks/useContainerWidth.ts
|
|
7252
|
-
import { useEffect as
|
|
7466
|
+
import { useEffect as useEffect19, useState as useState6 } from "react";
|
|
7253
7467
|
function useContainerWidth(ref) {
|
|
7254
7468
|
const [width, setWidth] = useState6(0);
|
|
7255
|
-
|
|
7469
|
+
useEffect19(() => {
|
|
7256
7470
|
const el = ref.current;
|
|
7257
7471
|
if (!el)
|
|
7258
7472
|
return;
|
|
@@ -7265,7 +7479,7 @@ function useContainerWidth(ref) {
|
|
|
7265
7479
|
return width;
|
|
7266
7480
|
}
|
|
7267
7481
|
// src/hooks/useVoiceInput.ts
|
|
7268
|
-
import { useCallback as useCallback12, useEffect as
|
|
7482
|
+
import { useCallback as useCallback12, useEffect as useEffect20, useRef as useRef9, useState as useState7 } from "react";
|
|
7269
7483
|
var TARGET_SAMPLE_RATE = 16000;
|
|
7270
7484
|
var PCM_FRAME_BYTES = 3200;
|
|
7271
7485
|
function getAudioContextConstructor() {
|
|
@@ -7337,7 +7551,7 @@ function useVoiceInput({
|
|
|
7337
7551
|
const onTranscriptRef = useRef9(onTranscript);
|
|
7338
7552
|
const onErrorRef = useRef9(onError);
|
|
7339
7553
|
const onNeedsInstallRef = useRef9(onNeedsInstall);
|
|
7340
|
-
|
|
7554
|
+
useEffect20(() => {
|
|
7341
7555
|
onTranscriptRef.current = onTranscript;
|
|
7342
7556
|
onErrorRef.current = onError;
|
|
7343
7557
|
onNeedsInstallRef.current = onNeedsInstall;
|
|
@@ -7548,7 +7762,7 @@ function useVoiceInput({
|
|
|
7548
7762
|
isSupported,
|
|
7549
7763
|
lang
|
|
7550
7764
|
]);
|
|
7551
|
-
|
|
7765
|
+
useEffect20(() => cleanup, [cleanup]);
|
|
7552
7766
|
return {
|
|
7553
7767
|
isListening,
|
|
7554
7768
|
isTranscribing,
|
|
@@ -7560,8 +7774,8 @@ function useVoiceInput({
|
|
|
7560
7774
|
};
|
|
7561
7775
|
}
|
|
7562
7776
|
// src/hooks/useDictationModels.ts
|
|
7563
|
-
import { useCallback as useCallback13, useEffect as
|
|
7564
|
-
import { useMutation as
|
|
7777
|
+
import { useCallback as useCallback13, useEffect as useEffect21, useRef as useRef10, useState as useState8 } from "react";
|
|
7778
|
+
import { useMutation as useMutation11, useQuery as useQuery15, useQueryClient as useQueryClient14 } from "@tanstack/react-query";
|
|
7565
7779
|
var DICTATION_STATUS_QUERY_KEY = ["dictation", "status"];
|
|
7566
7780
|
function mergeModelState(current, model) {
|
|
7567
7781
|
if (!current)
|
|
@@ -7582,12 +7796,12 @@ function parseInstallEvent(raw) {
|
|
|
7582
7796
|
}
|
|
7583
7797
|
}
|
|
7584
7798
|
function useDictationModels() {
|
|
7585
|
-
const queryClient =
|
|
7799
|
+
const queryClient = useQueryClient14();
|
|
7586
7800
|
const eventSourceRef = useRef10(null);
|
|
7587
7801
|
const [activeInstallModelId, setActiveInstallModelId] = useState8(null);
|
|
7588
7802
|
const [installProgress, setInstallProgress] = useState8(null);
|
|
7589
7803
|
const [installStreamError, setInstallStreamError] = useState8(null);
|
|
7590
|
-
const statusQuery =
|
|
7804
|
+
const statusQuery = useQuery15({
|
|
7591
7805
|
queryKey: DICTATION_STATUS_QUERY_KEY,
|
|
7592
7806
|
queryFn: () => apiClient.getDictationStatus(),
|
|
7593
7807
|
refetchInterval: (query) => query.state.data?.models.some((model) => model.installing) ? 1000 : 30000
|
|
@@ -7629,8 +7843,8 @@ function useDictationModels() {
|
|
|
7629
7843
|
});
|
|
7630
7844
|
};
|
|
7631
7845
|
}, [closeInstallStream, queryClient]);
|
|
7632
|
-
|
|
7633
|
-
const installMutation =
|
|
7846
|
+
useEffect21(() => closeInstallStream, [closeInstallStream]);
|
|
7847
|
+
const installMutation = useMutation11({
|
|
7634
7848
|
mutationFn: (input) => apiClient.installDictationModel(input),
|
|
7635
7849
|
onSuccess: (data) => {
|
|
7636
7850
|
setInstallProgress(data.model);
|
|
@@ -7646,7 +7860,7 @@ function useDictationModels() {
|
|
|
7646
7860
|
}
|
|
7647
7861
|
}
|
|
7648
7862
|
});
|
|
7649
|
-
const removeMutation =
|
|
7863
|
+
const removeMutation = useMutation11({
|
|
7650
7864
|
mutationFn: (model) => apiClient.removeDictationModel(model),
|
|
7651
7865
|
onSuccess: (data) => {
|
|
7652
7866
|
queryClient.setQueryData(DICTATION_STATUS_QUERY_KEY, (current) => mergeModelState(current, data.model));
|
|
@@ -7680,6 +7894,7 @@ export {
|
|
|
7680
7894
|
useUpdateSkillsConfig,
|
|
7681
7895
|
useUpdateSession,
|
|
7682
7896
|
useUpdateDefaults,
|
|
7897
|
+
useUpdateAgent,
|
|
7683
7898
|
useUnstageFiles,
|
|
7684
7899
|
useTunnelStream,
|
|
7685
7900
|
useTunnelStatus,
|
|
@@ -7698,6 +7913,7 @@ export {
|
|
|
7698
7913
|
useSkillDetail,
|
|
7699
7914
|
useShareStatus,
|
|
7700
7915
|
useSetSessionPinned,
|
|
7916
|
+
useSetDefaultAgent,
|
|
7701
7917
|
useSessionsInfinite,
|
|
7702
7918
|
useSessions,
|
|
7703
7919
|
useSessionStream,
|
|
@@ -7744,12 +7960,14 @@ export {
|
|
|
7744
7960
|
useDeleteSession,
|
|
7745
7961
|
useDeleteResearchSession,
|
|
7746
7962
|
useDeleteFiles,
|
|
7963
|
+
useDeleteAgent,
|
|
7747
7964
|
useCreateSession,
|
|
7748
7965
|
useCreateResearchSession,
|
|
7749
7966
|
useCreateGitBranch,
|
|
7750
7967
|
useCreateBranch,
|
|
7751
7968
|
useCopilotDevicePoller,
|
|
7752
7969
|
useContainerWidth,
|
|
7970
|
+
useConfigTools,
|
|
7753
7971
|
useConfig,
|
|
7754
7972
|
useCommitChanges,
|
|
7755
7973
|
useClientEvents,
|
|
@@ -7758,11 +7976,14 @@ export {
|
|
|
7758
7976
|
useAuthenticateMCPServer,
|
|
7759
7977
|
useAuthStatus,
|
|
7760
7978
|
useAllModels,
|
|
7979
|
+
useAgentDetails,
|
|
7980
|
+
useAgent,
|
|
7761
7981
|
useAddRemote,
|
|
7762
7982
|
useAddMCPServer,
|
|
7763
7983
|
sessionsQueryKey,
|
|
7764
7984
|
optimisticallyQueueMessage,
|
|
7765
|
-
normalizeQueueState
|
|
7985
|
+
normalizeQueueState,
|
|
7986
|
+
getAgentToolCount
|
|
7766
7987
|
};
|
|
7767
7988
|
|
|
7768
|
-
//# debugId=
|
|
7989
|
+
//# debugId=7F6554123FAE14B564756E2164756E21
|