@thelioo/opencode-balancer 0.1.6 → 0.1.8

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 (52) hide show
  1. package/dist/server/auth-watcher.d.ts +1 -0
  2. package/dist/server/auth-watcher.js +1 -1
  3. package/dist/server/auth-watcher.js.map +1 -1
  4. package/dist/tui/actions.d.ts +1 -1
  5. package/dist/tui/actions.js +6 -2
  6. package/dist/tui/actions.js.map +1 -1
  7. package/dist/tui/actions.ts +7 -3
  8. package/dist/tui/components/priority-screen.d.ts +1 -1
  9. package/dist/tui/components/priority-screen.tsx +4 -3
  10. package/dist/tui/components/provider-model-dialog.d.ts +2 -1
  11. package/dist/tui/components/provider-model-dialog.tsx +21 -11
  12. package/dist/tui/connect.js +5 -3
  13. package/dist/tui/connect.js.map +1 -1
  14. package/dist/tui/connect.ts +5 -3
  15. package/dist/tui/selected-account-bar-sync.d.ts +10 -0
  16. package/dist/tui/selected-account-bar-sync.js +26 -0
  17. package/dist/tui/selected-account-bar-sync.js.map +1 -0
  18. package/dist/tui/selected-account-bar-sync.ts +32 -0
  19. package/dist/tui/tui.js +39 -6
  20. package/dist/tui/tui.js.map +1 -1
  21. package/dist/tui/tui.tsx +40 -8
  22. package/package.json +1 -1
  23. package/dist/balancer/accounts.d.ts +0 -9
  24. package/dist/balancer/accounts.js +0 -102
  25. package/dist/balancer/accounts.js.map +0 -1
  26. package/dist/balancer/auth-watcher.d.ts +0 -1
  27. package/dist/balancer/auth-watcher.js +0 -30
  28. package/dist/balancer/auth-watcher.js.map +0 -1
  29. package/dist/balancer/commands.d.ts +0 -1
  30. package/dist/balancer/commands.js +0 -94
  31. package/dist/balancer/commands.js.map +0 -1
  32. package/dist/balancer/core.d.ts +0 -6
  33. package/dist/balancer/core.js +0 -7
  34. package/dist/balancer/core.js.map +0 -1
  35. package/dist/balancer/fetch-patch.d.ts +0 -1
  36. package/dist/balancer/fetch-patch.js +0 -110
  37. package/dist/balancer/fetch-patch.js.map +0 -1
  38. package/dist/balancer/http.d.ts +0 -40
  39. package/dist/balancer/http.js +0 -199
  40. package/dist/balancer/http.js.map +0 -1
  41. package/dist/balancer/native.d.ts +0 -3
  42. package/dist/balancer/native.js +0 -16
  43. package/dist/balancer/native.js.map +0 -1
  44. package/dist/balancer/state.d.ts +0 -14
  45. package/dist/balancer/state.js +0 -16
  46. package/dist/balancer/state.js.map +0 -1
  47. package/dist/balancer/storage.d.ts +0 -8
  48. package/dist/balancer/storage.js +0 -92
  49. package/dist/balancer/storage.js.map +0 -1
  50. package/dist/balancer/types.d.ts +0 -44
  51. package/dist/balancer/types.js +0 -2
  52. package/dist/balancer/types.js.map +0 -1
@@ -18,6 +18,7 @@ type AuthWatcherOptions = {
18
18
  };
19
19
  declare function parseNativeAuthContent(content: string): NativeAuthReadResult;
20
20
  export declare function readNativeAuth(): NativeAuthReadResult;
21
+ export declare function sameSavedAuth(saved: AuthInfo, current: AuthInfo): boolean;
21
22
  export declare function captureUnknownNativeAuth(db: Database, providerID: string, auth: AuthInfo): boolean;
22
23
  declare function initialAuthSnapshot(db: Database, authByProvider: Record<string, AuthInfo>): Record<string, AuthInfo>;
23
24
  export declare function startAuthWatcher(client: any, db: Database): void;
@@ -116,7 +116,7 @@ function oauthAccountID(auth) {
116
116
  const accountID = claim.chatgpt_account_id;
117
117
  return typeof accountID === "string" && accountID.length > 0 ? accountID : undefined;
118
118
  }
119
- function sameSavedAuth(saved, current) {
119
+ export function sameSavedAuth(saved, current) {
120
120
  if (saved.type !== current.type)
121
121
  return false;
122
122
  if (saved.type === "api" && current.type === "api")
@@ -1 +1 @@
1
- {"version":3,"file":"auth-watcher.js","sourceRoot":"","sources":["../../src/server/auth-watcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,6BAA6B,IAAI,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AACnH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,6BAA6B,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAExF,IAAI,OAAO,GAAG,KAAK,CAAC;AA2BpB,SAAS,QAAQ,CAAC,KAAc;IAC5B,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IAClC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,IAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC3E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,CAAC;IAEpD,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,CAAC;QAC7D,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAa,EAAE,QAAQ,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,cAAc,CAAqB,IAAO,EAAE,KAAc;IAC/D,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IACjC,IAAI,MAAM,CAAC,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACrD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACjC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAEzE,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACxD,OAAO,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3E,CAAC;IAED,IACI,KAAK,CAAC,IAAI,KAAK,OAAO;QACtB,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QACjC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;QAChC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QACjC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAChC,CAAC;QACC,MAAM,IAAI,GAAa;YACnB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;SACzB,CAAC;QACF,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;YAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAC1E,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ;YAAE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QACtF,OAAO,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,IACI,KAAK,CAAC,IAAI,KAAK,WAAW;QAC1B,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;QAC7B,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EACjC,CAAC;QACC,OAAO,cAAc,CACjB,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EACzD,KAAK,CAAC,QAAQ,CACjB,CAAC;IACN,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe;IAC3C,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IAEzC,MAAM,cAAc,GAA6B,EAAE,CAAC;IACpD,KAAK,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QAClC,cAAc,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc;IAC1B,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAClD,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAE1E,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAErD,IAAI,CAAC;QACD,OAAO,sBAAsB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,QAA8B,EAAE,OAAiB;IAClE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACnC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAY,CAAC;QAC1F,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,IAA0C;IAC9D,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1C,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC;IAC7E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,SAAS,GAAG,KAAK,CAAC,kBAAkB,CAAC;IAC3C,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACzF,CAAC;AAED,SAAS,aAAa,CAAC,KAAe,EAAE,OAAiB;IACrD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9C,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;IACrF,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC;IAClI,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACrD,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,cAAc,IAAI,gBAAgB;YAAE,OAAO,cAAc,KAAK,gBAAgB,CAAC;QACnF,OAAO,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAY,EAAE,UAAkB,EAAE,IAAc;IACzE,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACtG,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,EAAY,EAAE,UAAkB,EAAE,IAAc;IACrF,IAAI,mBAAmB,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5D,uBAAuB,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAY,EAAE,cAAwC;IAC/E,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9D,IAAI,YAAY,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YACpF,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAChC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,iBAAiB,CAAC,OAA2B;IAClD,IAAI,gBAAgB,GAAG,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC;IACrD,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,IAAI,gBAAgB,CAAC;IACrD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,uBAAuB,CAAC;IACvE,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC,UAAkB,EAAE,EAAE;QACjE,OAAO,6BAA6B,CAAC,UAAU,CAAC,IAAI,+BAA+B,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAChH,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,KAAK,CAAC,IAAI;YACN,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAClC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAAE,OAAO;gBAEvB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBACzB,MAAM,OAAO,GAA8B,EAAE,CAAC;gBAC9C,KAAK,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpD,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC3B,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;wBACxD,IAAI,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;4BAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;wBAC9G,gBAAgB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;wBACpC,SAAS;oBACb,CAAC;oBACD,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC;wBACpD,gBAAgB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;wBACpC,SAAS;oBACb,CAAC;oBACD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;wBAAE,SAAS;oBAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;gBACrC,CAAC;gBAED,KAAK,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;oBACvC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;oBACzD,gBAAgB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;oBACpC,MAAM,MAAM,CACR,OAAO,CAAC,MAAM,EACd,uBAAuB,UAAU,kDAAkD,EACnF,MAAM,CACT,CAAC;gBACN,CAAC;gBAED,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACrD,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;wBAAE,OAAO,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBACnE,CAAC;YACL,CAAC;oBAAS,CAAC;gBACP,QAAQ,GAAG,KAAK,CAAC;YACrB,CAAC;QACL,CAAC;KACJ,CAAC;AACN,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAW,EAAE,EAAY;IACtD,IAAI,OAAO;QAAE,OAAO;IACpB,OAAO,GAAG,IAAI,CAAC;IACf,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,iBAAiB,CAAC;QAC9B,EAAE;QACF,MAAM;QACN,eAAe,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QACxE,QAAQ,EAAE,cAAc;KAC3B,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IAC3D,KAAgC,CAAC,KAAK,EAAE,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,sBAAsB,CAAC;AAEnE,MAAM,CAAC,MAAM,yBAAyB,GAAG,mBAAmB,CAAC;AAE7D,MAAM,UAAU,uBAAuB,CACnC,OAA8D;IAE9D,OAAO,iBAAiB,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;AAC3E,CAAC"}
1
+ {"version":3,"file":"auth-watcher.js","sourceRoot":"","sources":["../../src/server/auth-watcher.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ type AuthSetApi = {
18
18
  };
19
19
  type ActivateAccountOptions = {
20
20
  sessionProviderID?: string;
21
- openProviderModelPicker?: (providerID: string) => void;
21
+ applyNativeProviderModel?: (providerID: string) => Promise<boolean>;
22
22
  };
23
23
  type ToastApi = {
24
24
  ui: {
@@ -1,4 +1,4 @@
1
- import { getAccount, getActiveAccount, removeAccount, renameAccount, setActiveAccount } from "../core/accounts";
1
+ import { getAccount, getActiveAccount, getSelectedAccount, removeAccount, renameAccount, setActiveAccount } from "../core/accounts";
2
2
  import { appendEvent } from "../core/events";
3
3
  import { completePendingConnection, removePendingConnection } from "../core/pending";
4
4
  import { refreshAccountUsage } from "../core/usage";
@@ -10,6 +10,7 @@ export function savePendingAlias(state, pendingID, alias) {
10
10
  return account;
11
11
  }
12
12
  export async function activateAccount(api, state, providerID, alias, options = {}) {
13
+ const previousProviderID = getSelectedAccount(state.db)?.providerID;
13
14
  const account = setActiveAccount(state.db, providerID, alias) ?? getActiveAccount(state.db, providerID);
14
15
  if (account) {
15
16
  try {
@@ -19,8 +20,11 @@ export async function activateAccount(api, state, providerID, alias, options = {
19
20
  catch { }
20
21
  }
21
22
  state.refresh();
23
+ const providerChanged = (options.sessionProviderID ?? previousProviderID) !== providerID;
24
+ if (providerChanged) {
25
+ await options.applyNativeProviderModel?.(providerID);
26
+ }
22
27
  api.ui?.toast({ variant: "success", message: `Activated ${providerID}/${alias}.` });
23
- options.openProviderModelPicker?.(providerID);
24
28
  }
25
29
  export async function refreshUsageForAccount(api, state, providerID, alias, options = {}) {
26
30
  const account = getAccount(state.db, providerID, alias) ?? state.accounts().find((candidate) => {
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/tui/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAChH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAiC5E,MAAM,UAAU,gBAAgB,CAAC,KAAuB,EAAE,SAAiB,EAAE,KAAa;IACtF,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACtE,KAAK,CAAC,OAAO,EAAE,CAAC;IAChB,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,GAAe,EACf,KAAuB,EACvB,UAAkB,EAClB,KAAa,EACb,UAAkC,EAAE;IAEpC,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAExG,IAAI,OAAO,EAAE,CAAC;QACV,IAAI,CAAC;YACD,yBAAyB,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YAChD,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAChF,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAO,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;IACpF,OAAO,CAAC,uBAAuB,EAAE,CAAC,UAAU,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CACxC,GAAa,EACb,KAAuB,EACvB,UAAkB,EAClB,KAAa,EACb,UAA+B,EAAE;IAEjC,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;QAC3F,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,UAAU,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;QACzF,OAAO;IACX,CAAC;IAED,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,IAAI,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC;QAC9E,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACtC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE;YAClB,IAAI,EAAE,QAAQ,CAAC,UAAU,KAAK,aAAa,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB;YACrF,UAAU;YACV,KAAK;YACL,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC5B,CAAC,CAAC;QACH,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAClB,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;gBACT,OAAO,EAAE,QAAQ,CAAC,UAAU,KAAK,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBACtE,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC5B,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC;QACjF,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAa,EAAE,KAAuB,EAAE,UAAkB,EAAE,KAAa;IAC1G,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAC3D,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,UAAU,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;QACzF,OAAO;IACX,CAAC;IAED,MAAM,OAAO,GAAG,mBAAmB,UAAU,IAAI,KAAK,GAAG,CAAC;IAC1D,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE;QAClB,IAAI,EAAE,iBAAiB;QACvB,UAAU;QACV,KAAK;QACL,OAAO;KACV,CAAC,CAAC;IACH,KAAK,CAAC,OAAO,EAAE,CAAC;IAChB,KAAK,CAAC,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC3C,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAa,EAAE,KAAuB,EAAE,UAAkB,EAAE,KAAa,EAAE,SAAiB;IAC7H,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACtE,KAAK,CAAC,OAAO,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,UAAU,IAAI,KAAK,OAAO,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACrG,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAa,EAAE,KAAuB,EAAE,SAAiB;IAC1F,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAC7D,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC,CAAC;QAC7E,OAAO;IACX,CAAC;IAED,KAAK,CAAC,OAAO,EAAE,CAAC;IAChB,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACnC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/tui/actions.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { getAccount, getActiveAccount, removeAccount, renameAccount, setActiveAccount } from "../core/accounts";
1
+ import { getAccount, getActiveAccount, getSelectedAccount, removeAccount, renameAccount, setActiveAccount } from "../core/accounts";
2
2
  import { appendEvent } from "../core/events";
3
3
  import { completePendingConnection, removePendingConnection } from "../core/pending";
4
4
  import { refreshAccountUsage } from "../core/usage";
@@ -22,7 +22,7 @@ type AuthSetApi = {
22
22
 
23
23
  type ActivateAccountOptions = {
24
24
  sessionProviderID?: string;
25
- openProviderModelPicker?: (providerID: string) => void;
25
+ applyNativeProviderModel?: (providerID: string) => Promise<boolean>;
26
26
  };
27
27
 
28
28
  type ToastApi = {
@@ -49,6 +49,7 @@ export async function activateAccount(
49
49
  alias: string,
50
50
  options: ActivateAccountOptions = {},
51
51
  ) {
52
+ const previousProviderID = getSelectedAccount(state.db)?.providerID;
52
53
  const account = setActiveAccount(state.db, providerID, alias) ?? getActiveAccount(state.db, providerID);
53
54
 
54
55
  if (account) {
@@ -59,8 +60,11 @@ export async function activateAccount(
59
60
  }
60
61
 
61
62
  state.refresh();
63
+ const providerChanged = (options.sessionProviderID ?? previousProviderID) !== providerID;
64
+ if (providerChanged) {
65
+ await options.applyNativeProviderModel?.(providerID);
66
+ }
62
67
  api.ui?.toast({ variant: "success", message: `Activated ${providerID}/${alias}.` });
63
- options.openProviderModelPicker?.(providerID);
64
68
  }
65
69
 
66
70
  export async function refreshUsageForAccount(
@@ -5,5 +5,5 @@ export declare function PriorityScreen(props: {
5
5
  api: TuiPluginApi;
6
6
  state: BalancerTuiState;
7
7
  onBack: () => void;
8
- openModelPicker: (providerID: string) => void;
8
+ openModelPicker: (providerID: string, onComplete?: () => void) => void;
9
9
  }): any;
@@ -34,7 +34,7 @@ export function PriorityScreen(props: {
34
34
  api: TuiPluginApi;
35
35
  state: BalancerTuiState;
36
36
  onBack: () => void;
37
- openModelPicker: (providerID: string) => void;
37
+ openModelPicker: (providerID: string, onComplete?: () => void) => void;
38
38
  }) {
39
39
  const theme = () => props.api.theme.current;
40
40
  const selectedColors = () => selectedRowColors(theme());
@@ -114,7 +114,7 @@ export function PriorityScreen(props: {
114
114
  case "open-model": {
115
115
  if (focusArea() === "header") return props.onBack();
116
116
  const entry = current();
117
- if (entry) props.openModelPicker(entry.providerID);
117
+ if (entry) props.openModelPicker(entry.providerID, restoreFocus);
118
118
  return;
119
119
  }
120
120
  case "toggle-balancing":
@@ -129,6 +129,7 @@ export function PriorityScreen(props: {
129
129
  };
130
130
 
131
131
  let container: { focus?: () => void } | undefined;
132
+ const restoreFocus = () => queueMicrotask(() => container?.focus?.());
132
133
  onMount(() => container?.focus?.());
133
134
 
134
135
  const Hint = (hintProps: { children: string }) => (
@@ -259,7 +260,7 @@ export function PriorityScreen(props: {
259
260
  flexGrow={1}
260
261
  minWidth={0}
261
262
  backgroundColor={selected() ? selectedColors().bg : undefined}
262
- onMouseUp={() => props.openModelPicker(entry.providerID)}
263
+ onMouseUp={() => props.openModelPicker(entry.providerID, restoreFocus)}
263
264
  >
264
265
  <text fg={selected() ? selectedColors().fg : entry.modelID ? rowColor() : theme().warning} wrapMode="none" overflow="hidden" truncate>
265
266
  {modelLabel(props.api, entry)}
@@ -3,7 +3,8 @@ import type { TuiPluginApi } from "@opencode-ai/plugin/tui";
3
3
  import { type NativeModelApplier } from "../native-model-apply";
4
4
  import type { BalancerTuiState } from "../state";
5
5
  type OpenProviderModelDialogOptions = {
6
- applyNativeSelection?: NativeModelApplier;
6
+ applyNativeSelection?: NativeModelApplier | false;
7
+ onComplete?: () => void;
7
8
  onSelected?: (model: {
8
9
  providerID: string;
9
10
  modelID: string;
@@ -9,7 +9,8 @@ import type { BalancerTuiState } from "../state";
9
9
  type OpenProviderModelDialogOptions = {
10
10
  // Test seam: replays the chosen model into opencode's native dialog so the
11
11
  // native model bar updates. Defaults to driving opencode via simulated keys.
12
- applyNativeSelection?: NativeModelApplier;
12
+ applyNativeSelection?: NativeModelApplier | false;
13
+ onComplete?: () => void;
13
14
  onSelected?: (model: { providerID: string; modelID: string }) => void;
14
15
  };
15
16
 
@@ -52,19 +53,28 @@ export function openProviderModelDialog(
52
53
  // model dialog so its bottom model bar reflects the selection.
53
54
  api.ui.dialog.clear();
54
55
 
55
- void Promise.resolve(applyNativeSelection(model, option.value.title)).then((applied) => {
56
- if (applied) {
56
+ if (applyNativeSelection === false) {
57
+ options.onComplete?.();
58
+ return;
59
+ }
60
+
61
+ void Promise.resolve(applyNativeSelection(model, option.value.title))
62
+ .then((applied) => {
63
+ if (applied) {
64
+ api.ui.toast({
65
+ variant: "success",
66
+ message: `Switched to ${option.value.providerName}/${option.value.title}.`,
67
+ });
68
+ return;
69
+ }
57
70
  api.ui.toast({
58
- variant: "success",
59
- message: `Switched to ${option.value.providerName}/${option.value.title}.`,
71
+ variant: "warning",
72
+ message: `Selected ${option.value.providerName}/${option.value.title}; prompts will use it, but opencode's model bar may not have refreshed.`,
60
73
  });
61
- return;
62
- }
63
- api.ui.toast({
64
- variant: "warning",
65
- message: `Selected ${option.value.providerName}/${option.value.title}; prompts will use it, but opencode's model bar may not have refreshed.`,
74
+ })
75
+ .finally(() => {
76
+ options.onComplete?.();
66
77
  });
67
- });
68
78
  }}
69
79
  />
70
80
  ));
@@ -1,6 +1,6 @@
1
- import { saveAccount } from "../core/accounts";
1
+ import { listAccounts, saveAccount } from "../core/accounts";
2
2
  import { clearNativeConnectInProgress, markNativeConnectInProgress } from "../core/native-connect";
3
- import { readNativeAuth } from "../server/auth-watcher";
3
+ import { readNativeAuth, sameSavedAuth } from "../server/auth-watcher";
4
4
  const aliasAlphabet = "abcdefghijklmnopqrstuvwxyz0123456789";
5
5
  function generatedAlias() {
6
6
  let alias = "";
@@ -55,7 +55,9 @@ export async function openNativeConnect(api) {
55
55
  });
56
56
  if (changed) {
57
57
  const [providerID, auth] = changed;
58
- const account = saveAccount(api.db, providerID, uniqueAlias(api.db, providerID, api.generateAlias ?? generatedAlias), auth);
58
+ const existing = listAccounts(api.db, providerID).find((candidate) => sameSavedAuth(candidate.auth, auth));
59
+ const alias = existing?.alias ?? uniqueAlias(api.db, providerID, api.generateAlias ?? generatedAlias);
60
+ const account = saveAccount(api.db, providerID, alias, auth);
59
61
  api.ui?.toast?.({ variant: "success", message: `Saved ${account.providerID}/${account.alias}.` });
60
62
  }
61
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/tui/connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/tui/connect.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { Database } from "bun:sqlite";
2
- import { saveAccount } from "../core/accounts";
2
+ import { listAccounts, saveAccount } from "../core/accounts";
3
3
  import { clearNativeConnectInProgress, markNativeConnectInProgress } from "../core/native-connect";
4
- import { readNativeAuth } from "../server/auth-watcher";
4
+ import { readNativeAuth, sameSavedAuth } from "../server/auth-watcher";
5
5
  import type { AuthInfo } from "../core/types";
6
6
 
7
7
  type NativeAuthReadResult =
@@ -83,7 +83,9 @@ export async function openNativeConnect(api: ConnectApi) {
83
83
  });
84
84
  if (changed) {
85
85
  const [providerID, auth] = changed;
86
- const account = saveAccount(api.db, providerID, uniqueAlias(api.db, providerID, api.generateAlias ?? generatedAlias), auth);
86
+ const existing = listAccounts(api.db, providerID).find((candidate) => sameSavedAuth(candidate.auth, auth));
87
+ const alias = existing?.alias ?? uniqueAlias(api.db, providerID, api.generateAlias ?? generatedAlias);
88
+ const account = saveAccount(api.db, providerID, alias, auth);
87
89
  api.ui?.toast?.({ variant: "success", message: `Saved ${account.providerID}/${account.alias}.` });
88
90
  }
89
91
  } finally {
@@ -0,0 +1,10 @@
1
+ export type SelectedAccountBarSyncDeps = {
2
+ dialogOpen: () => boolean;
3
+ selectedProvider: () => string | undefined;
4
+ currentProvider: () => string | undefined;
5
+ applyProvider: (providerID: string) => Promise<boolean>;
6
+ };
7
+ export declare function createSelectedAccountBarSync(deps: SelectedAccountBarSyncDeps): {
8
+ currentProvider: () => string | undefined;
9
+ maybeSync: () => Promise<boolean>;
10
+ };
@@ -0,0 +1,26 @@
1
+ export function createSelectedAccountBarSync(deps) {
2
+ let applying = false;
3
+ let appliedProvider;
4
+ const currentProvider = () => appliedProvider ?? deps.currentProvider();
5
+ return {
6
+ currentProvider,
7
+ maybeSync: async () => {
8
+ if (applying || deps.dialogOpen())
9
+ return false;
10
+ const selected = deps.selectedProvider();
11
+ if (!selected || selected === currentProvider())
12
+ return false;
13
+ applying = true;
14
+ try {
15
+ const applied = await deps.applyProvider(selected);
16
+ if (applied)
17
+ appliedProvider = selected;
18
+ return applied;
19
+ }
20
+ finally {
21
+ applying = false;
22
+ }
23
+ },
24
+ };
25
+ }
26
+ //# sourceMappingURL=selected-account-bar-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selected-account-bar-sync.js","sourceRoot":"","sources":["../../src/tui/selected-account-bar-sync.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,4BAA4B,CAAC,IAAgC;IACzE,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,eAAmC,CAAC;IAExC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;IAExE,OAAO;QACH,eAAe;QACf,SAAS,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;gBAAE,OAAO,KAAK,CAAC;YAEhD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,eAAe,EAAE;gBAAE,OAAO,KAAK,CAAC;YAE9D,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACnD,IAAI,OAAO;oBAAE,eAAe,GAAG,QAAQ,CAAC;gBACxC,OAAO,OAAO,CAAC;YACnB,CAAC;oBAAS,CAAC;gBACP,QAAQ,GAAG,KAAK,CAAC;YACrB,CAAC;QACL,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,32 @@
1
+ export type SelectedAccountBarSyncDeps = {
2
+ dialogOpen: () => boolean;
3
+ selectedProvider: () => string | undefined;
4
+ currentProvider: () => string | undefined;
5
+ applyProvider: (providerID: string) => Promise<boolean>;
6
+ };
7
+
8
+ export function createSelectedAccountBarSync(deps: SelectedAccountBarSyncDeps) {
9
+ let applying = false;
10
+ let appliedProvider: string | undefined;
11
+
12
+ const currentProvider = () => appliedProvider ?? deps.currentProvider();
13
+
14
+ return {
15
+ currentProvider,
16
+ maybeSync: async () => {
17
+ if (applying || deps.dialogOpen()) return false;
18
+
19
+ const selected = deps.selectedProvider();
20
+ if (!selected || selected === currentProvider()) return false;
21
+
22
+ applying = true;
23
+ try {
24
+ const applied = await deps.applyProvider(selected);
25
+ if (applied) appliedProvider = selected;
26
+ return applied;
27
+ } finally {
28
+ applying = false;
29
+ }
30
+ },
31
+ };
32
+ }
package/dist/tui/tui.js CHANGED
@@ -1,9 +1,13 @@
1
1
  /** @jsxImportSource @opentui/solid */
2
2
  import { createComponent } from "solid-js";
3
- import { setProviderModel } from "../core/priority";
3
+ import { getSelectedAccount, getSelectedModel } from "../core/accounts";
4
+ import { getBalancingEnabled, setProviderModel } from "../core/priority";
4
5
  import { activateAccount, removeAccountFromTui } from "./actions";
5
6
  import { createTuiBalancerBarSync } from "./balancer-bar-sync";
6
7
  import { openNativeConnect } from "./connect";
8
+ import { createNativeModelApplier } from "./native-model-apply";
9
+ import { providerModelOptions } from "./provider-models";
10
+ import { createSelectedAccountBarSync } from "./selected-account-bar-sync";
7
11
  import { createBalancerTuiState } from "./state";
8
12
  import { createUsageAutoRefresh } from "./usage-auto-refresh";
9
13
  function inferProviderID(session) {
@@ -28,7 +32,30 @@ const tui = async (api) => {
28
32
  const state = createBalancerTuiState();
29
33
  const usageAutoRefresh = createUsageAutoRefresh(api, state);
30
34
  const balancerBarSync = createTuiBalancerBarSync(api, state);
35
+ const nativeModelApplier = createNativeModelApplier(api);
31
36
  let dashboardReturnRoute;
37
+ let nativeProviderID;
38
+ let sessionProviderID;
39
+ const applyNativeProviderModel = async (providerID) => {
40
+ const modelOptions = providerModelOptions(api.state.provider, providerID);
41
+ const selected = getSelectedModel(state.db, providerID);
42
+ const option = modelOptions.find((item) => item.modelID === selected?.modelID) ?? modelOptions[0];
43
+ if (!option)
44
+ return false;
45
+ return nativeModelApplier({ providerID: option.providerID, modelID: option.modelID }, option.title);
46
+ };
47
+ const applyNativeProviderModelAndTrack = async (providerID) => {
48
+ const applied = await applyNativeProviderModel(providerID);
49
+ if (applied)
50
+ nativeProviderID = providerID;
51
+ return applied;
52
+ };
53
+ const selectedAccountBarSync = createSelectedAccountBarSync({
54
+ dialogOpen: () => api.ui.dialog.open,
55
+ selectedProvider: () => (getBalancingEnabled(state.db) ? undefined : getSelectedAccount(state.db)?.providerID),
56
+ currentProvider: () => nativeProviderID ?? sessionProviderID,
57
+ applyProvider: applyNativeProviderModelAndTrack,
58
+ });
32
59
  api.lifecycle.onDispose(() => {
33
60
  usageAutoRefresh.dispose();
34
61
  state.dispose();
@@ -68,8 +95,10 @@ const tui = async (api) => {
68
95
  api,
69
96
  state,
70
97
  onBack: () => api.route.navigate("balancer.dashboard"),
71
- openModelPicker: (providerID) => providerModelDialogModule.openProviderModelDialog(api, state, providerID, {
98
+ openModelPicker: (providerID, onComplete) => providerModelDialogModule.openProviderModelDialog(api, state, providerID, {
99
+ applyNativeSelection: false,
72
100
  onSelected: (model) => setProviderModel(state.db, model.providerID, model.modelID),
101
+ onComplete,
73
102
  }),
74
103
  }),
75
104
  },
@@ -94,7 +123,9 @@ const tui = async (api) => {
94
123
  api.slots.register({
95
124
  slots: {
96
125
  session_prompt_right(_ctx, value) {
126
+ sessionProviderID = inferProviderID(api.state.session.get(value.session_id));
97
127
  void usageAutoRefresh.refreshForPrompt();
128
+ void selectedAccountBarSync.maybeSync();
98
129
  void balancerBarSync.maybeSync();
99
130
  return createComponent(statusIndicatorModule.BalancerStatusIndicator, {
100
131
  api,
@@ -107,10 +138,12 @@ const tui = async (api) => {
107
138
  api,
108
139
  state,
109
140
  openDashboard,
110
- activateAccount: (providerID, alias) => activateAccount(api, state, providerID, alias, {
111
- sessionProviderID: inferProviderID(api.state.session.get(value.session_id)),
112
- openProviderModelPicker: (targetProviderID) => providerModelDialogModule.openProviderModelDialog(api, state, targetProviderID),
113
- }),
141
+ activateAccount: (providerID, alias) => {
142
+ return activateAccount(api, state, providerID, alias, {
143
+ sessionProviderID: nativeProviderID ?? inferProviderID(api.state.session.get(value.session_id)),
144
+ applyNativeProviderModel: applyNativeProviderModelAndTrack,
145
+ });
146
+ },
114
147
  });
115
148
  },
116
149
  },
@@ -1 +1 @@
1
- {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/tui/tui.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/tui/tui.tsx"],"names":[],"mappings":"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"}
package/dist/tui/tui.tsx CHANGED
@@ -2,10 +2,14 @@
2
2
 
3
3
  import type { TuiPlugin, TuiPluginModule, TuiRouteCurrent } from "@opencode-ai/plugin/tui";
4
4
  import { createComponent } from "solid-js";
5
- import { setProviderModel } from "../core/priority";
5
+ import { getSelectedAccount, getSelectedModel } from "../core/accounts";
6
+ import { getBalancingEnabled, setProviderModel } from "../core/priority";
6
7
  import { activateAccount, removeAccountFromTui } from "./actions";
7
8
  import { createTuiBalancerBarSync } from "./balancer-bar-sync";
8
9
  import { openNativeConnect } from "./connect";
10
+ import { createNativeModelApplier } from "./native-model-apply";
11
+ import { providerModelOptions } from "./provider-models";
12
+ import { createSelectedAccountBarSync } from "./selected-account-bar-sync";
9
13
  import { createBalancerTuiState } from "./state";
10
14
  import { createUsageAutoRefresh } from "./usage-auto-refresh";
11
15
 
@@ -41,7 +45,31 @@ const tui: TuiPlugin = async (api) => {
41
45
  const state = createBalancerTuiState();
42
46
  const usageAutoRefresh = createUsageAutoRefresh(api, state);
43
47
  const balancerBarSync = createTuiBalancerBarSync(api, state);
48
+ const nativeModelApplier = createNativeModelApplier(api);
44
49
  let dashboardReturnRoute: TuiRouteCurrent | undefined;
50
+ let nativeProviderID: string | undefined;
51
+ let sessionProviderID: string | undefined;
52
+
53
+ const applyNativeProviderModel = async (providerID: string) => {
54
+ const modelOptions = providerModelOptions(api.state.provider, providerID);
55
+ const selected = getSelectedModel(state.db, providerID);
56
+ const option = modelOptions.find((item) => item.modelID === selected?.modelID) ?? modelOptions[0];
57
+ if (!option) return false;
58
+ return nativeModelApplier({ providerID: option.providerID, modelID: option.modelID }, option.title);
59
+ };
60
+
61
+ const applyNativeProviderModelAndTrack = async (providerID: string) => {
62
+ const applied = await applyNativeProviderModel(providerID);
63
+ if (applied) nativeProviderID = providerID;
64
+ return applied;
65
+ };
66
+
67
+ const selectedAccountBarSync = createSelectedAccountBarSync({
68
+ dialogOpen: () => api.ui.dialog.open,
69
+ selectedProvider: () => (getBalancingEnabled(state.db) ? undefined : getSelectedAccount(state.db)?.providerID),
70
+ currentProvider: () => nativeProviderID ?? sessionProviderID,
71
+ applyProvider: applyNativeProviderModelAndTrack,
72
+ });
45
73
 
46
74
  api.lifecycle.onDispose(() => {
47
75
  usageAutoRefresh.dispose();
@@ -85,9 +113,11 @@ const tui: TuiPlugin = async (api) => {
85
113
  api,
86
114
  state,
87
115
  onBack: () => api.route.navigate("balancer.dashboard"),
88
- openModelPicker: (providerID) =>
116
+ openModelPicker: (providerID, onComplete) =>
89
117
  providerModelDialogModule.openProviderModelDialog(api, state, providerID, {
118
+ applyNativeSelection: false,
90
119
  onSelected: (model) => setProviderModel(state.db, model.providerID, model.modelID),
120
+ onComplete,
91
121
  }),
92
122
  }),
93
123
  },
@@ -114,7 +144,9 @@ const tui: TuiPlugin = async (api) => {
114
144
  api.slots.register({
115
145
  slots: {
116
146
  session_prompt_right(_ctx, value) {
147
+ sessionProviderID = inferProviderID(api.state.session.get(value.session_id));
117
148
  void usageAutoRefresh.refreshForPrompt();
149
+ void selectedAccountBarSync.maybeSync();
118
150
  void balancerBarSync.maybeSync();
119
151
  return createComponent(statusIndicatorModule.BalancerStatusIndicator, {
120
152
  api,
@@ -127,12 +159,12 @@ const tui: TuiPlugin = async (api) => {
127
159
  api,
128
160
  state,
129
161
  openDashboard,
130
- activateAccount: (providerID, alias) =>
131
- activateAccount(api, state, providerID, alias, {
132
- sessionProviderID: inferProviderID(api.state.session.get(value.session_id)),
133
- openProviderModelPicker: (targetProviderID) =>
134
- providerModelDialogModule.openProviderModelDialog(api, state, targetProviderID),
135
- }),
162
+ activateAccount: (providerID, alias) => {
163
+ return activateAccount(api, state, providerID, alias, {
164
+ sessionProviderID: nativeProviderID ?? inferProviderID(api.state.session.get(value.session_id)),
165
+ applyNativeProviderModel: applyNativeProviderModelAndTrack,
166
+ });
167
+ },
136
168
  });
137
169
  },
138
170
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thelioo/opencode-balancer",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "Account balancer plugin for opencode.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,9 +0,0 @@
1
- import type { Account, AuthInfo, ProviderState } from "./types";
2
- export declare function normalizeAlias(alias: string): string;
3
- export declare function saveAccount(providerID: string, aliasInput: string, auth: AuthInfo): Promise<Account>;
4
- export declare function getProviderState(providerID: string): Promise<ProviderState | undefined>;
5
- export declare function getActiveAccount(providerID: string): Promise<Account | undefined>;
6
- export declare function listAccountsText(): Promise<string>;
7
- export declare function nextAvailableAccount(providerID: string, currentAlias?: string): Promise<Account | undefined>;
8
- export declare function markRateLimited(providerID: string, alias: string, retryAfterMs?: number): Promise<void>;
9
- export declare function markUsed(providerID: string, alias: string): Promise<void>;