@ottocode/web-sdk 0.1.311 → 0.1.313
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/assets/provider-logos.d.ts +1 -0
- package/dist/assets/provider-logos.d.ts.map +1 -1
- package/dist/components/common/ProviderLogo.d.ts.map +1 -1
- package/dist/components/index.js +260 -2
- package/dist/components/index.js.map +14 -14
- package/dist/components/messages/MessageThread.d.ts +1 -0
- package/dist/components/messages/MessageThread.d.ts.map +1 -1
- package/dist/components/onboarding/OnboardingModal.d.ts.map +1 -1
- package/dist/components/onboarding/steps/ProviderSetupStep.d.ts +10 -0
- package/dist/components/onboarding/steps/ProviderSetupStep.d.ts.map +1 -1
- package/dist/hooks/index.js +28 -1
- package/dist/hooks/index.js.map +8 -8
- package/dist/hooks/useAgents.d.ts.map +1 -1
- package/dist/hooks/useAuthStatus.d.ts +5 -0
- package/dist/hooks/useAuthStatus.d.ts.map +1 -1
- package/dist/hooks/useConfig.d.ts +1 -1
- package/dist/hooks/useConfig.d.ts.map +1 -1
- package/dist/hooks/useSkills.d.ts +0 -1
- package/dist/hooks/useSkills.d.ts.map +1 -1
- package/dist/index.js +260 -2
- package/dist/index.js.map +14 -14
- package/dist/lib/api-client/auth.d.ts +10 -0
- package/dist/lib/api-client/auth.d.ts.map +1 -1
- package/dist/lib/api-client/index.d.ts +10 -1
- package/dist/lib/api-client/index.d.ts.map +1 -1
- package/dist/lib/api-client/skills.d.ts +0 -1
- package/dist/lib/api-client/skills.d.ts.map +1 -1
- package/dist/lib/index.js +19 -1
- package/dist/lib/index.js.map +5 -5
- package/package.json +3 -3
|
@@ -9,6 +9,7 @@ export declare const xaiLogo = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 40
|
|
|
9
9
|
export declare const zaiLogo = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M20.1312 7.50002L17.4088 11.1913H5.81625L8.5375 7.50002H20.1325H20.1312ZM34.0675 28.81L31.3475 32.5H19.795L22.5125 28.81H34.0675ZM35 7.50002L16.58 32.5H5L23.42 7.50002H35Z\" fill=\"currentColor\"/>\n</svg>";
|
|
10
10
|
export declare const ottorouterLogo = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M55.0151 11H45.7732C42.9871 11 41.594 11 40.5458 11.7564C39.4977 12.5128 39.0587 13.8349 38.1807 16.479L28.4934 45.6545C26.899 50.4561 26.1019 52.8569 27.2993 54.5162C28.4967 56.1754 31.0264 56.1754 36.0858 56.1754H38.1307C41.9554 56.1754 43.8677 56.1754 45.0206 57.2527C45.2855 57.5002 45.5155 57.7825 45.7043 58.092C46.5262 59.4389 46.1395 61.3117 45.3662 65.0574C42.291 79.9519 40.7534 87.3991 43.0079 88.8933C43.4871 89.2109 44.0292 89.4215 44.5971 89.5107C47.2691 89.9303 51.1621 83.398 58.9481 70.3336L70.7118 50.5949C72.8831 46.9517 73.9687 45.13 73.6853 43.639C73.5201 42.7697 73.0712 41.9797 72.4091 41.3927C71.2734 40.386 69.1528 40.386 64.9115 40.386C61.2258 40.386 59.3829 40.386 58.2863 39.5068C57.6438 38.9916 57.176 38.2907 56.9467 37.4998C56.5553 36.1498 57.2621 34.4479 58.6757 31.044L62.4033 22.0683C64.4825 17.0618 65.5221 14.5585 64.3345 12.7793C63.1468 11 60.4362 11 55.0151 11Z\" fill=\"currentColor\"/>\n</svg>";
|
|
11
11
|
export declare const minimaxLogo = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M6 32V12L13 22L20 12V32H17V20L13 26L9 20V32H6ZM22 32V12L29 22L36 12V32H33V20L29 26L25 20V32H22Z\" fill=\"currentColor\"/>\n</svg>";
|
|
12
|
+
export declare const kimiLogo = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M21.846 0a1.923 1.923 0 110 3.846H20.15a.226.226 0 01-.227-.226V1.923C19.923.861 20.784 0 21.846 0z\" fill=\"currentColor\"/>\n<path d=\"M11.065 11.199l7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.164.164 0 00-.117.051l-7.82 7.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23H3.186c-.103 0-.186.103-.186.23V19.77c0 .128.083.23.186.23h2.69c.103 0 .186-.102.186-.23v-3.25c0-.069.025-.135.069-.178l2.424-2.406a.158.158 0 01.205-.023l6.484 4.772a7.677 7.677 0 003.453 1.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5.028 5.028 0 01-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381z\" fill=\"currentColor\"/>\n</svg>";
|
|
12
13
|
export declare const opencodeLogo = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path opacity=\"0.2\" d=\"M19.2002 17.4H8.40017V13.8H15.6002V10.2H19.2002V17.4ZM8.40017 13.8H4.80017V10.2H8.40017V13.8Z\" fill=\"currentColor\"/>\n<path d=\"M8.40005 17.4H19.2001V21H4.80005V13.8H8.40005V17.4ZM15.6001 10.2V13.8H8.40005V10.2H15.6001ZM19.2001 10.2H15.6001V6.6H4.80005V3H19.2001V10.2Z\" fill=\"currentColor\"/>\n</svg>";
|
|
13
14
|
export declare const copilotLogo = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M35.3993 26.4544C34.2871 28.3855 27.8314 32.9425 20 32.9425C12.1686 32.9425 5.71288 28.3855 4.60075 26.4544C4.5427 26.3532 4.50826 26.2401 4.5 26.1237V22.418C4.51199 22.3209 4.53496 22.2256 4.56846 22.1338C5.04896 20.9261 6.30833 19.1733 7.93325 18.7031C8.14896 18.149 8.468 17.3404 8.76508 16.7437C8.71727 16.2776 8.69485 15.8094 8.69792 15.3409C8.69792 13.6217 9.06217 12.113 10.1601 10.9906C10.6729 10.4662 11.3097 10.0644 12.064 9.76091C13.871 8.29357 16.4453 7.05745 19.9716 7.05745C23.4978 7.05745 26.129 8.29357 27.936 9.76091C28.6903 10.0644 29.3271 10.4662 29.8399 10.9906C30.9378 12.113 31.3021 13.6217 31.3021 15.3409C31.3021 15.8162 31.284 16.2877 31.2349 16.7437C31.532 17.3404 31.851 18.149 32.0667 18.7031C33.6917 19.1733 34.951 20.9261 35.4315 22.1338C35.4677 22.2248 35.4908 22.3205 35.5 22.418V26.1237C35.4917 26.2401 35.4573 26.3532 35.3993 26.4544ZM20.2222 18.7147H19.7778C19.6422 18.945 19.4889 19.1644 19.3193 19.3709C18.3247 20.5941 16.8419 21.2981 14.7881 21.2981C12.56 21.2981 10.9273 20.8344 9.90304 19.6719C9.86495 19.6283 9.82833 19.5835 9.79325 19.5375L9.66667 19.6719V28.1775C11.5202 29.1837 15.4972 30.992 20 30.992C24.5028 30.992 28.4798 29.1837 30.3333 28.1775V19.6719L30.2067 19.5375C30.2067 19.5375 30.1641 19.5957 30.097 19.6719C29.0727 20.8344 27.44 21.2981 25.2119 21.2981C23.1581 21.2981 21.6753 20.5941 20.6807 19.3709C20.5111 19.1644 20.3578 18.945 20.2222 18.7147ZM23.2292 22.9127C23.9383 22.9127 24.5208 23.4952 24.5208 24.2043V26.7877C24.5208 27.4968 23.9383 28.0793 23.2292 28.0793C22.52 28.0793 21.9375 27.4968 21.9375 26.7877V24.2043C21.9375 23.4952 22.52 22.9127 23.2292 22.9127ZM16.7708 22.9127C17.48 22.9127 18.0625 23.4952 18.0625 24.2043V26.7877C18.0625 27.4968 17.48 28.0793 16.7708 28.0793C16.0617 28.0793 15.4792 27.4968 15.4792 26.7877V24.2043C15.4792 23.4952 16.0617 22.9127 16.7708 22.9127ZM21.0501 14.9237C21.2258 16.289 21.5707 17.3947 22.1842 18.149C22.7551 18.8517 23.649 19.3606 25.2119 19.3606C27.2437 19.3606 28.1724 18.9253 28.6438 18.3905C29.1398 17.8287 29.3646 16.9051 29.3646 15.3409C29.3646 13.8684 29.0507 12.9552 28.454 12.3455C27.8378 11.7152 26.7502 11.2321 24.8063 11.0216C22.8856 10.8136 21.975 11.1998 21.5345 11.7049C21.187 12.1014 20.97 12.7485 20.9688 13.7431V13.7702C20.9688 14.1121 20.9959 14.4966 21.0501 14.9237ZM18.9499 14.9237C19.0041 14.4966 19.0312 14.1117 19.0312 13.7689V13.7431C19.03 12.7485 18.813 12.1014 18.4655 11.7049C18.025 11.1998 17.1144 10.8136 15.1937 11.0216C13.2498 11.2321 12.1622 11.7152 11.546 12.3455C10.9493 12.9552 10.6354 13.8684 10.6354 15.3409C10.6354 16.9051 10.8615 17.8287 11.3562 18.3905C11.8276 18.9253 12.7563 19.3606 14.7881 19.3606C16.351 19.3606 17.2449 18.8517 17.8158 18.149C18.4293 17.3947 18.7742 16.289 18.9499 14.9237Z\" fill=\"currentColor\"/>\n</svg>";
|
|
14
15
|
//# sourceMappingURL=provider-logos.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-logos.d.ts","sourceRoot":"","sources":["../../src/assets/provider-logos.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,sXAEnB,CAAC;AAER,eAAO,MAAM,UAAU,ioHAEhB,CAAC;AAER,eAAO,MAAM,UAAU,+VAEhB,CAAC;AAER,eAAO,MAAM,eAAe,2lLAMrB,CAAC;AAER,eAAO,MAAM,cAAc,yrCAOpB,CAAC;AAER,eAAO,MAAM,QAAQ,0rBAEd,CAAC;AAER,eAAO,MAAM,YAAY,y2HAElB,CAAC;AAER,eAAO,MAAM,OAAO,8XAEb,CAAC;AAER,eAAO,MAAM,OAAO,yTAEb,CAAC;AAER,eAAO,MAAM,cAAc,iiCAEpB,CAAC;AAER,eAAO,MAAM,WAAW,6OAEjB,CAAC;AAER,eAAO,MAAM,YAAY,2bAGlB,CAAC;AAER,eAAO,MAAM,WAAW,w0FAEjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"provider-logos.d.ts","sourceRoot":"","sources":["../../src/assets/provider-logos.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,sXAEnB,CAAC;AAER,eAAO,MAAM,UAAU,ioHAEhB,CAAC;AAER,eAAO,MAAM,UAAU,+VAEhB,CAAC;AAER,eAAO,MAAM,eAAe,2lLAMrB,CAAC;AAER,eAAO,MAAM,cAAc,yrCAOpB,CAAC;AAER,eAAO,MAAM,QAAQ,0rBAEd,CAAC;AAER,eAAO,MAAM,YAAY,y2HAElB,CAAC;AAER,eAAO,MAAM,OAAO,8XAEb,CAAC;AAER,eAAO,MAAM,OAAO,yTAEb,CAAC;AAER,eAAO,MAAM,cAAc,iiCAEpB,CAAC;AAER,eAAO,MAAM,WAAW,6OAEjB,CAAC;AAER,eAAO,MAAM,QAAQ,4uBAGd,CAAC;AAER,eAAO,MAAM,YAAY,2bAGlB,CAAC;AAER,eAAO,MAAM,WAAW,w0FAEjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderLogo.d.ts","sourceRoot":"","sources":["../../../src/components/common/ProviderLogo.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProviderLogo.d.ts","sourceRoot":"","sources":["../../../src/components/common/ProviderLogo.tsx"],"names":[],"mappings":"AAuCA,UAAU,iBAAiB;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,YAAY,yDAoCvB,CAAC"}
|
package/dist/components/index.js
CHANGED
|
@@ -2520,6 +2520,8 @@ import {
|
|
|
2520
2520
|
pollOpenAiDeviceFlow as apiPollOpenAiDeviceFlow,
|
|
2521
2521
|
startCopilotDeviceFlow as apiStartCopilotDeviceFlow,
|
|
2522
2522
|
pollCopilotDeviceFlow as apiPollCopilotDeviceFlow,
|
|
2523
|
+
startKimiDeviceFlow as apiStartKimiDeviceFlow,
|
|
2524
|
+
pollKimiDeviceFlow as apiPollKimiDeviceFlow,
|
|
2523
2525
|
getCopilotAuthMethods as apiGetCopilotAuthMethods,
|
|
2524
2526
|
saveCopilotToken as apiSaveCopilotToken,
|
|
2525
2527
|
importCopilotTokenFromGh as apiImportCopilotTokenFromGh,
|
|
@@ -2626,6 +2628,20 @@ var authMixin = {
|
|
|
2626
2628
|
throw new Error(extractErrorMessage(response.error));
|
|
2627
2629
|
return response.data;
|
|
2628
2630
|
},
|
|
2631
|
+
async startKimiDeviceFlow() {
|
|
2632
|
+
const response = await apiStartKimiDeviceFlow();
|
|
2633
|
+
if (response.error)
|
|
2634
|
+
throw new Error(extractErrorMessage(response.error));
|
|
2635
|
+
return response.data;
|
|
2636
|
+
},
|
|
2637
|
+
async pollKimiDeviceFlow(sessionId) {
|
|
2638
|
+
const response = await apiPollKimiDeviceFlow({
|
|
2639
|
+
body: { sessionId }
|
|
2640
|
+
});
|
|
2641
|
+
if (response.error)
|
|
2642
|
+
throw new Error(extractErrorMessage(response.error));
|
|
2643
|
+
return response.data;
|
|
2644
|
+
},
|
|
2629
2645
|
async getCopilotAuthMethods() {
|
|
2630
2646
|
const response = await apiGetCopilotAuthMethods();
|
|
2631
2647
|
if (response.error)
|
|
@@ -2938,6 +2954,8 @@ class ApiClient {
|
|
|
2938
2954
|
pollOpenAIDeviceFlow = authMixin.pollOpenAIDeviceFlow;
|
|
2939
2955
|
startCopilotDeviceFlow = authMixin.startCopilotDeviceFlow;
|
|
2940
2956
|
pollCopilotDeviceFlow = authMixin.pollCopilotDeviceFlow;
|
|
2957
|
+
startKimiDeviceFlow = authMixin.startKimiDeviceFlow;
|
|
2958
|
+
pollKimiDeviceFlow = authMixin.pollKimiDeviceFlow;
|
|
2941
2959
|
getCopilotAuthMethods = authMixin.getCopilotAuthMethods;
|
|
2942
2960
|
saveCopilotToken = authMixin.saveCopilotToken;
|
|
2943
2961
|
importCopilotTokenFromGh = authMixin.importCopilotTokenFromGh;
|
|
@@ -3924,6 +3942,10 @@ var ottorouterLogo = `<svg width="24" height="24" viewBox="0 0 100 100" fill="no
|
|
|
3924
3942
|
var minimaxLogo = `<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
|
|
3925
3943
|
<path d="M6 32V12L13 22L20 12V32H17V20L13 26L9 20V32H6ZM22 32V12L29 22L36 12V32H33V20L29 26L25 20V32H22Z" fill="currentColor"/>
|
|
3926
3944
|
</svg>`;
|
|
3945
|
+
var kimiLogo = `<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
3946
|
+
<path d="M21.846 0a1.923 1.923 0 110 3.846H20.15a.226.226 0 01-.227-.226V1.923C19.923.861 20.784 0 21.846 0z" fill="currentColor"/>
|
|
3947
|
+
<path d="M11.065 11.199l7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.164.164 0 00-.117.051l-7.82 7.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23H3.186c-.103 0-.186.103-.186.23V19.77c0 .128.083.23.186.23h2.69c.103 0 .186-.102.186-.23v-3.25c0-.069.025-.135.069-.178l2.424-2.406a.158.158 0 01.205-.023l6.484 4.772a7.677 7.677 0 003.453 1.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5.028 5.028 0 01-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381z" fill="currentColor"/>
|
|
3948
|
+
</svg>`;
|
|
3927
3949
|
var opencodeLogo = `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
3928
3950
|
<path opacity="0.2" d="M19.2002 17.4H8.40017V13.8H15.6002V10.2H19.2002V17.4ZM8.40017 13.8H4.80017V10.2H8.40017V13.8Z" fill="currentColor"/>
|
|
3929
3951
|
<path d="M8.40005 17.4H19.2001V21H4.80005V13.8H8.40005V17.4ZM15.6001 10.2V13.8H8.40005V10.2H15.6001ZM19.2001 10.2H15.6001V6.6H4.80005V3H19.2001V10.2Z" fill="currentColor"/>
|
|
@@ -3948,6 +3970,8 @@ var providerLogos = {
|
|
|
3948
3970
|
"zai-coding": zaiLogo,
|
|
3949
3971
|
ottorouter: ottorouterLogo,
|
|
3950
3972
|
minimax: minimaxLogo,
|
|
3973
|
+
moonshot: kimiLogo,
|
|
3974
|
+
kimi: kimiLogo,
|
|
3951
3975
|
opencode: opencodeLogo,
|
|
3952
3976
|
copilot: copilotLogo
|
|
3953
3977
|
};
|
|
@@ -24654,6 +24678,7 @@ var MessageThread = memo25(function MessageThread2({
|
|
|
24654
24678
|
sessionId,
|
|
24655
24679
|
isGenerating,
|
|
24656
24680
|
compact = false,
|
|
24681
|
+
responsiveCompact = true,
|
|
24657
24682
|
disableAutoScroll = false,
|
|
24658
24683
|
onSelectSession,
|
|
24659
24684
|
footerBottomPaddingClass: footerBottomPaddingClassOverride
|
|
@@ -24665,7 +24690,7 @@ var MessageThread = memo25(function MessageThread2({
|
|
|
24665
24690
|
const sessionHeaderRef = useRef23(null);
|
|
24666
24691
|
const threadRootRef = useRef23(null);
|
|
24667
24692
|
const threadWidth = useContainerWidth(threadRootRef);
|
|
24668
|
-
const density = threadWidth > 0 && threadWidth < 640 ? "compact" : "normal";
|
|
24693
|
+
const density = compact || responsiveCompact && threadWidth > 0 && threadWidth < 640 ? "compact" : "normal";
|
|
24669
24694
|
const [autoScroll, setAutoScroll] = useState44(true);
|
|
24670
24695
|
const [isThreadScrolling, setIsThreadScrolling] = useState44(false);
|
|
24671
24696
|
const autoScrollRef = useRef23(true);
|
|
@@ -25943,6 +25968,7 @@ var MessageThreadData = memo28(function MessageThreadData2({
|
|
|
25943
25968
|
session,
|
|
25944
25969
|
isGenerating,
|
|
25945
25970
|
compact: isOttoThread || preferences.compactThread,
|
|
25971
|
+
responsiveCompact: preferences.compactThread,
|
|
25946
25972
|
onSelectSession,
|
|
25947
25973
|
footerBottomPaddingClass
|
|
25948
25974
|
});
|
|
@@ -32613,6 +32639,13 @@ function useAuthStatus() {
|
|
|
32613
32639
|
}
|
|
32614
32640
|
return result;
|
|
32615
32641
|
}, [fetchAuthStatus]);
|
|
32642
|
+
const pollKimiDeviceFlow = useCallback42(async (sessionId) => {
|
|
32643
|
+
const result = await apiClient.pollKimiDeviceFlow(sessionId);
|
|
32644
|
+
if (result.status === "complete") {
|
|
32645
|
+
await fetchAuthStatus();
|
|
32646
|
+
}
|
|
32647
|
+
return result;
|
|
32648
|
+
}, [fetchAuthStatus]);
|
|
32616
32649
|
const saveCopilotToken = useCallback42(async (token) => {
|
|
32617
32650
|
setLoading(true);
|
|
32618
32651
|
setError(null);
|
|
@@ -32662,6 +32695,8 @@ function useAuthStatus() {
|
|
|
32662
32695
|
pollOpenAIDeviceFlow,
|
|
32663
32696
|
startCopilotDeviceFlow: apiClient.startCopilotDeviceFlow.bind(apiClient),
|
|
32664
32697
|
pollCopilotDeviceFlow,
|
|
32698
|
+
startKimiDeviceFlow: apiClient.startKimiDeviceFlow.bind(apiClient),
|
|
32699
|
+
pollKimiDeviceFlow,
|
|
32665
32700
|
getCopilotAuthMethods: apiClient.getCopilotAuthMethods.bind(apiClient),
|
|
32666
32701
|
saveCopilotToken,
|
|
32667
32702
|
importCopilotTokenFromGh,
|
|
@@ -41329,6 +41364,8 @@ var ProviderSetupStep = memo75(function ProviderSetupStep2({
|
|
|
41329
41364
|
hideHeader = false,
|
|
41330
41365
|
onStartCopilotDeviceFlow,
|
|
41331
41366
|
onPollCopilotDeviceFlow,
|
|
41367
|
+
onStartKimiDeviceFlow,
|
|
41368
|
+
onPollKimiDeviceFlow,
|
|
41332
41369
|
onGetCopilotAuthMethods,
|
|
41333
41370
|
onSaveCopilotToken,
|
|
41334
41371
|
onImportCopilotTokenFromGh,
|
|
@@ -41380,6 +41417,12 @@ var ProviderSetupStep = memo75(function ProviderSetupStep2({
|
|
|
41380
41417
|
const [copilotCodeCopied, setCopilotCodeCopied] = useState69(false);
|
|
41381
41418
|
const [copilotModalOpen, setCopilotModalOpen] = useState69(false);
|
|
41382
41419
|
const [copilotLoading, setCopilotLoading] = useState69(false);
|
|
41420
|
+
const [kimiDevice, setKimiDevice] = useState69(null);
|
|
41421
|
+
const [kimiPolling, setKimiPolling] = useState69(false);
|
|
41422
|
+
const [kimiError, setKimiError] = useState69(null);
|
|
41423
|
+
const [kimiCodeCopied, setKimiCodeCopied] = useState69(false);
|
|
41424
|
+
const [kimiModalOpen, setKimiModalOpen] = useState69(false);
|
|
41425
|
+
const [kimiLoading, setKimiLoading] = useState69(false);
|
|
41383
41426
|
const copilotPollRef = useRef49(undefined);
|
|
41384
41427
|
const copilotCancelledRef = useRef49(false);
|
|
41385
41428
|
const copilotPollFnRef = useRef49(onPollCopilotDeviceFlow);
|
|
@@ -41388,6 +41431,10 @@ var ProviderSetupStep = memo75(function ProviderSetupStep2({
|
|
|
41388
41431
|
const openAICancelledRef = useRef49(false);
|
|
41389
41432
|
const openAIPollFnRef = useRef49(onPollOpenAIDeviceFlow);
|
|
41390
41433
|
openAIPollFnRef.current = onPollOpenAIDeviceFlow;
|
|
41434
|
+
const kimiPollRef = useRef49(undefined);
|
|
41435
|
+
const kimiCancelledRef = useRef49(false);
|
|
41436
|
+
const kimiPollFnRef = useRef49(onPollKimiDeviceFlow);
|
|
41437
|
+
kimiPollFnRef.current = onPollKimiDeviceFlow;
|
|
41391
41438
|
const balance = useOttoRouterStore((s) => s.balance);
|
|
41392
41439
|
const usdcBalance = useOttoRouterStore((s) => s.usdcBalance);
|
|
41393
41440
|
const payg = useOttoRouterStore((s) => s.payg);
|
|
@@ -41518,6 +41565,51 @@ var ProviderSetupStep = memo75(function ProviderSetupStep2({
|
|
|
41518
41565
|
clearTimeout(timeout);
|
|
41519
41566
|
};
|
|
41520
41567
|
}, [openAIPolling, openAIDevice]);
|
|
41568
|
+
useEffect71(() => {
|
|
41569
|
+
if (!kimiPolling || !kimiDevice || !kimiPollFnRef.current)
|
|
41570
|
+
return;
|
|
41571
|
+
kimiCancelledRef.current = false;
|
|
41572
|
+
const pollIntervalMs = Math.max((kimiDevice.interval || 5) * 1000 + 2000, 7000);
|
|
41573
|
+
const schedulePoll = () => {
|
|
41574
|
+
kimiPollRef.current = setTimeout(async () => {
|
|
41575
|
+
if (kimiCancelledRef.current)
|
|
41576
|
+
return;
|
|
41577
|
+
try {
|
|
41578
|
+
const pollFn = kimiPollFnRef.current;
|
|
41579
|
+
if (!pollFn)
|
|
41580
|
+
return;
|
|
41581
|
+
const result = await pollFn(kimiDevice.sessionId);
|
|
41582
|
+
if (kimiCancelledRef.current)
|
|
41583
|
+
return;
|
|
41584
|
+
if (result.status === "complete") {
|
|
41585
|
+
setKimiDevice(null);
|
|
41586
|
+
setKimiPolling(false);
|
|
41587
|
+
setKimiError(null);
|
|
41588
|
+
setKimiModalOpen(false);
|
|
41589
|
+
} else if (result.status === "error") {
|
|
41590
|
+
setKimiError(result.error || "Authorization failed");
|
|
41591
|
+
setKimiPolling(false);
|
|
41592
|
+
} else {
|
|
41593
|
+
schedulePoll();
|
|
41594
|
+
}
|
|
41595
|
+
} catch {
|
|
41596
|
+
if (!kimiCancelledRef.current)
|
|
41597
|
+
schedulePoll();
|
|
41598
|
+
}
|
|
41599
|
+
}, pollIntervalMs);
|
|
41600
|
+
};
|
|
41601
|
+
schedulePoll();
|
|
41602
|
+
const timeout = setTimeout(() => {
|
|
41603
|
+
setKimiPolling(false);
|
|
41604
|
+
setKimiError("Authorization timed out. Please try again.");
|
|
41605
|
+
}, 15 * 60 * 1000);
|
|
41606
|
+
return () => {
|
|
41607
|
+
kimiCancelledRef.current = true;
|
|
41608
|
+
if (kimiPollRef.current)
|
|
41609
|
+
clearTimeout(kimiPollRef.current);
|
|
41610
|
+
clearTimeout(timeout);
|
|
41611
|
+
};
|
|
41612
|
+
}, [kimiPolling, kimiDevice]);
|
|
41521
41613
|
const handleCopy = async () => {
|
|
41522
41614
|
if (authStatus.ottorouter.publicKey) {
|
|
41523
41615
|
await navigator.clipboard.writeText(authStatus.ottorouter.publicKey);
|
|
@@ -41654,6 +41746,19 @@ var ProviderSetupStep = memo75(function ProviderSetupStep2({
|
|
|
41654
41746
|
setOpenAILoading(false);
|
|
41655
41747
|
});
|
|
41656
41748
|
};
|
|
41749
|
+
const startKimiDeviceAuthorization = () => {
|
|
41750
|
+
if (!onStartKimiDeviceFlow)
|
|
41751
|
+
return;
|
|
41752
|
+
setKimiLoading(true);
|
|
41753
|
+
setKimiError(null);
|
|
41754
|
+
onStartKimiDeviceFlow().then((data) => {
|
|
41755
|
+
setKimiDevice(data);
|
|
41756
|
+
setKimiLoading(false);
|
|
41757
|
+
}).catch((err) => {
|
|
41758
|
+
setKimiError(err instanceof Error ? err.message : "Failed to start device flow");
|
|
41759
|
+
setKimiLoading(false);
|
|
41760
|
+
});
|
|
41761
|
+
};
|
|
41657
41762
|
const handleStartOAuth = async (providerId, mode) => {
|
|
41658
41763
|
if (providerId === "anthropic") {
|
|
41659
41764
|
setOauthSession({ provider: providerId, sessionId: null, mode });
|
|
@@ -41664,6 +41769,13 @@ var ProviderSetupStep = memo75(function ProviderSetupStep2({
|
|
|
41664
41769
|
setOpenAICodeCopied(false);
|
|
41665
41770
|
setOpenAIAuthMode("choice");
|
|
41666
41771
|
setOpenAIModalOpen(true);
|
|
41772
|
+
} else if (providerId === "moonshot" && onStartKimiDeviceFlow) {
|
|
41773
|
+
setKimiPolling(false);
|
|
41774
|
+
setKimiDevice(null);
|
|
41775
|
+
setKimiError(null);
|
|
41776
|
+
setKimiCodeCopied(false);
|
|
41777
|
+
setKimiModalOpen(true);
|
|
41778
|
+
startKimiDeviceAuthorization();
|
|
41667
41779
|
} else if (providerId === "copilot") {
|
|
41668
41780
|
setCopilotAuthMode("oauth");
|
|
41669
41781
|
setCopilotTokenInput("");
|
|
@@ -41746,6 +41858,32 @@ var ProviderSetupStep = memo75(function ProviderSetupStep2({
|
|
|
41746
41858
|
openAIPollRef.current = undefined;
|
|
41747
41859
|
}
|
|
41748
41860
|
};
|
|
41861
|
+
const handleKimiOpenAuth = () => {
|
|
41862
|
+
if (!kimiDevice)
|
|
41863
|
+
return;
|
|
41864
|
+
openUrl(kimiDevice.verificationUri);
|
|
41865
|
+
setKimiPolling(true);
|
|
41866
|
+
};
|
|
41867
|
+
const handleKimiCopyCode = async () => {
|
|
41868
|
+
if (!kimiDevice)
|
|
41869
|
+
return;
|
|
41870
|
+
await navigator.clipboard.writeText(kimiDevice.userCode);
|
|
41871
|
+
setKimiCodeCopied(true);
|
|
41872
|
+
setTimeout(() => setKimiCodeCopied(false), 2000);
|
|
41873
|
+
};
|
|
41874
|
+
const handleCancelKimi = () => {
|
|
41875
|
+
setKimiDevice(null);
|
|
41876
|
+
setKimiPolling(false);
|
|
41877
|
+
setKimiError(null);
|
|
41878
|
+
setKimiCodeCopied(false);
|
|
41879
|
+
setKimiModalOpen(false);
|
|
41880
|
+
setKimiLoading(false);
|
|
41881
|
+
kimiCancelledRef.current = true;
|
|
41882
|
+
if (kimiPollRef.current) {
|
|
41883
|
+
clearTimeout(kimiPollRef.current);
|
|
41884
|
+
kimiPollRef.current = undefined;
|
|
41885
|
+
}
|
|
41886
|
+
};
|
|
41749
41887
|
const handleCopilotOpenGithub = () => {
|
|
41750
41888
|
if (!copilotDevice)
|
|
41751
41889
|
return;
|
|
@@ -41890,6 +42028,23 @@ var ProviderSetupStep = memo75(function ProviderSetupStep2({
|
|
|
41890
42028
|
}
|
|
41891
42029
|
return;
|
|
41892
42030
|
}
|
|
42031
|
+
if (kimiModalOpen) {
|
|
42032
|
+
markHandled();
|
|
42033
|
+
if (!kimiLoading) {
|
|
42034
|
+
setKimiDevice(null);
|
|
42035
|
+
setKimiPolling(false);
|
|
42036
|
+
setKimiError(null);
|
|
42037
|
+
setKimiCodeCopied(false);
|
|
42038
|
+
setKimiModalOpen(false);
|
|
42039
|
+
setKimiLoading(false);
|
|
42040
|
+
kimiCancelledRef.current = true;
|
|
42041
|
+
if (kimiPollRef.current) {
|
|
42042
|
+
clearTimeout(kimiPollRef.current);
|
|
42043
|
+
kimiPollRef.current = undefined;
|
|
42044
|
+
}
|
|
42045
|
+
}
|
|
42046
|
+
return;
|
|
42047
|
+
}
|
|
41893
42048
|
if (addingProvider) {
|
|
41894
42049
|
markHandled();
|
|
41895
42050
|
setAddingProvider(null);
|
|
@@ -41916,6 +42071,8 @@ var ProviderSetupStep = memo75(function ProviderSetupStep2({
|
|
|
41916
42071
|
isImportingWallet,
|
|
41917
42072
|
isImportModalOpen,
|
|
41918
42073
|
isOpeningPopup,
|
|
42074
|
+
kimiLoading,
|
|
42075
|
+
kimiModalOpen,
|
|
41919
42076
|
oauthSession
|
|
41920
42077
|
]);
|
|
41921
42078
|
const handleImportWallet = async () => {
|
|
@@ -43007,6 +43164,103 @@ var ProviderSetupStep = memo75(function ProviderSetupStep2({
|
|
|
43007
43164
|
]
|
|
43008
43165
|
})
|
|
43009
43166
|
}),
|
|
43167
|
+
kimiModalOpen && /* @__PURE__ */ jsx154("div", {
|
|
43168
|
+
"data-otto-nested-modal": "true",
|
|
43169
|
+
className: "fixed inset-0 z-[9999] flex items-center justify-center bg-black/60 backdrop-blur-sm",
|
|
43170
|
+
children: /* @__PURE__ */ jsxs134("div", {
|
|
43171
|
+
className: "bg-background border border-border rounded-xl w-full max-w-lg mx-6 shadow-2xl",
|
|
43172
|
+
children: [
|
|
43173
|
+
/* @__PURE__ */ jsxs134("div", {
|
|
43174
|
+
className: "flex items-center gap-3 p-6 border-b border-border",
|
|
43175
|
+
children: [
|
|
43176
|
+
/* @__PURE__ */ jsx154(ProviderLogo, {
|
|
43177
|
+
provider: "moonshot",
|
|
43178
|
+
size: 24
|
|
43179
|
+
}),
|
|
43180
|
+
/* @__PURE__ */ jsx154("h3", {
|
|
43181
|
+
className: "text-lg font-semibold",
|
|
43182
|
+
children: "Connect Kimi"
|
|
43183
|
+
})
|
|
43184
|
+
]
|
|
43185
|
+
}),
|
|
43186
|
+
/* @__PURE__ */ jsxs134("div", {
|
|
43187
|
+
className: "p-6 space-y-4",
|
|
43188
|
+
children: [
|
|
43189
|
+
/* @__PURE__ */ jsx154("p", {
|
|
43190
|
+
className: "text-sm text-muted-foreground",
|
|
43191
|
+
children: "Open the Kimi sign-in page, then enter this one-time code. This works from remote browsers, tunnels, and SSH sessions."
|
|
43192
|
+
}),
|
|
43193
|
+
/* @__PURE__ */ jsx154("div", {
|
|
43194
|
+
className: "flex items-center justify-center gap-3",
|
|
43195
|
+
children: kimiLoading ? /* @__PURE__ */ jsx154("div", {
|
|
43196
|
+
className: "bg-muted px-6 py-3 rounded-lg animate-pulse",
|
|
43197
|
+
children: /* @__PURE__ */ jsx154("div", {
|
|
43198
|
+
className: "h-9 w-48 bg-muted-foreground/20 rounded"
|
|
43199
|
+
})
|
|
43200
|
+
}) : kimiDevice ? /* @__PURE__ */ jsxs134(Fragment60, {
|
|
43201
|
+
children: [
|
|
43202
|
+
/* @__PURE__ */ jsx154("code", {
|
|
43203
|
+
className: "text-3xl font-mono font-bold tracking-widest text-foreground bg-muted px-6 py-3 rounded-lg select-all",
|
|
43204
|
+
children: kimiDevice.userCode
|
|
43205
|
+
}),
|
|
43206
|
+
/* @__PURE__ */ jsx154("button", {
|
|
43207
|
+
type: "button",
|
|
43208
|
+
onClick: handleKimiCopyCode,
|
|
43209
|
+
className: "p-2 text-muted-foreground hover:text-foreground transition-colors",
|
|
43210
|
+
children: kimiCodeCopied ? /* @__PURE__ */ jsx154(Check17, {
|
|
43211
|
+
className: "w-5 h-5 text-green-500"
|
|
43212
|
+
}) : /* @__PURE__ */ jsx154(Copy5, {
|
|
43213
|
+
className: "w-5 h-5"
|
|
43214
|
+
})
|
|
43215
|
+
})
|
|
43216
|
+
]
|
|
43217
|
+
}) : null
|
|
43218
|
+
}),
|
|
43219
|
+
kimiError && /* @__PURE__ */ jsx154("p", {
|
|
43220
|
+
className: "text-sm text-red-500 text-center",
|
|
43221
|
+
children: kimiError
|
|
43222
|
+
}),
|
|
43223
|
+
kimiPolling && /* @__PURE__ */ jsxs134("div", {
|
|
43224
|
+
className: "flex items-center justify-center gap-2 text-sm text-muted-foreground",
|
|
43225
|
+
children: [
|
|
43226
|
+
/* @__PURE__ */ jsx154(StableSpinner, {
|
|
43227
|
+
title: "Waiting for Kimi authorization"
|
|
43228
|
+
}),
|
|
43229
|
+
"Waiting for authorization..."
|
|
43230
|
+
]
|
|
43231
|
+
}),
|
|
43232
|
+
/* @__PURE__ */ jsxs134("div", {
|
|
43233
|
+
className: "flex gap-3",
|
|
43234
|
+
children: [
|
|
43235
|
+
/* @__PURE__ */ jsx154("button", {
|
|
43236
|
+
type: "button",
|
|
43237
|
+
onClick: handleCancelKimi,
|
|
43238
|
+
className: "flex-1 h-11 px-4 bg-transparent border border-border text-foreground rounded-lg font-medium hover:bg-muted/50 transition-colors",
|
|
43239
|
+
children: "Cancel"
|
|
43240
|
+
}),
|
|
43241
|
+
/* @__PURE__ */ jsx154("button", {
|
|
43242
|
+
type: "button",
|
|
43243
|
+
onClick: handleKimiOpenAuth,
|
|
43244
|
+
disabled: kimiPolling || kimiLoading,
|
|
43245
|
+
className: "flex-1 h-11 px-4 bg-foreground text-background rounded-lg font-medium hover:bg-foreground/90 transition-colors disabled:opacity-50 flex items-center justify-center gap-2",
|
|
43246
|
+
children: kimiPolling || kimiLoading ? /* @__PURE__ */ jsx154(StableSpinner, {
|
|
43247
|
+
title: "Opening Kimi"
|
|
43248
|
+
}) : /* @__PURE__ */ jsxs134(Fragment60, {
|
|
43249
|
+
children: [
|
|
43250
|
+
"Open Kimi",
|
|
43251
|
+
/* @__PURE__ */ jsx154(ExternalLink13, {
|
|
43252
|
+
className: "w-4 h-4"
|
|
43253
|
+
})
|
|
43254
|
+
]
|
|
43255
|
+
})
|
|
43256
|
+
})
|
|
43257
|
+
]
|
|
43258
|
+
})
|
|
43259
|
+
]
|
|
43260
|
+
})
|
|
43261
|
+
]
|
|
43262
|
+
})
|
|
43263
|
+
}),
|
|
43010
43264
|
copilotModalOpen && /* @__PURE__ */ jsx154("div", {
|
|
43011
43265
|
"data-otto-nested-modal": "true",
|
|
43012
43266
|
className: "fixed inset-0 z-[9999] flex items-center justify-center bg-black/60 backdrop-blur-sm",
|
|
@@ -43571,6 +43825,8 @@ var OnboardingModal = memo77(function OnboardingModal2({
|
|
|
43571
43825
|
pollOpenAIDeviceFlow,
|
|
43572
43826
|
startCopilotDeviceFlow,
|
|
43573
43827
|
pollCopilotDeviceFlow,
|
|
43828
|
+
startKimiDeviceFlow,
|
|
43829
|
+
pollKimiDeviceFlow,
|
|
43574
43830
|
getCopilotAuthMethods,
|
|
43575
43831
|
saveCopilotToken,
|
|
43576
43832
|
importCopilotTokenFromGh,
|
|
@@ -43644,6 +43900,8 @@ var OnboardingModal = memo77(function OnboardingModal2({
|
|
|
43644
43900
|
hideHeader,
|
|
43645
43901
|
onStartCopilotDeviceFlow: startCopilotDeviceFlow,
|
|
43646
43902
|
onPollCopilotDeviceFlow: pollCopilotDeviceFlow,
|
|
43903
|
+
onStartKimiDeviceFlow: startKimiDeviceFlow,
|
|
43904
|
+
onPollKimiDeviceFlow: pollKimiDeviceFlow,
|
|
43647
43905
|
onGetCopilotAuthMethods: getCopilotAuthMethods,
|
|
43648
43906
|
onSaveCopilotToken: saveCopilotToken,
|
|
43649
43907
|
onImportCopilotTokenFromGh: importCopilotTokenFromGh,
|
|
@@ -44725,4 +44983,4 @@ export {
|
|
|
44725
44983
|
AgentProviderModelFields
|
|
44726
44984
|
};
|
|
44727
44985
|
|
|
44728
|
-
//# debugId=
|
|
44986
|
+
//# debugId=B662143DFDACA04964756E2164756E21
|