oc-codex-multi-account 1.0.0

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 (70) hide show
  1. package/README.md +321 -0
  2. package/dist/auth-sync.d.ts +3 -0
  3. package/dist/auth-sync.d.ts.map +1 -0
  4. package/dist/auth-sync.js +105 -0
  5. package/dist/auth-sync.js.map +1 -0
  6. package/dist/auth.d.ts +15 -0
  7. package/dist/auth.d.ts.map +1 -0
  8. package/dist/auth.js +236 -0
  9. package/dist/auth.js.map +1 -0
  10. package/dist/cli.d.ts +3 -0
  11. package/dist/cli.d.ts.map +1 -0
  12. package/dist/cli.js +160 -0
  13. package/dist/cli.js.map +1 -0
  14. package/dist/codex-auth.d.ts +28 -0
  15. package/dist/codex-auth.d.ts.map +1 -0
  16. package/dist/codex-auth.js +174 -0
  17. package/dist/codex-auth.js.map +1 -0
  18. package/dist/index.d.ts +9 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +730 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/limits-refresh.d.ts +9 -0
  23. package/dist/limits-refresh.d.ts.map +1 -0
  24. package/dist/limits-refresh.js +48 -0
  25. package/dist/limits-refresh.js.map +1 -0
  26. package/dist/logger.d.ts +6 -0
  27. package/dist/logger.d.ts.map +1 -0
  28. package/dist/logger.js +52 -0
  29. package/dist/logger.js.map +1 -0
  30. package/dist/models.d.ts +7 -0
  31. package/dist/models.d.ts.map +1 -0
  32. package/dist/models.js +121 -0
  33. package/dist/models.js.map +1 -0
  34. package/dist/probe-limits.d.ts +10 -0
  35. package/dist/probe-limits.d.ts.map +1 -0
  36. package/dist/probe-limits.js +160 -0
  37. package/dist/probe-limits.js.map +1 -0
  38. package/dist/rate-limits.d.ts +6 -0
  39. package/dist/rate-limits.d.ts.map +1 -0
  40. package/dist/rate-limits.js +117 -0
  41. package/dist/rate-limits.js.map +1 -0
  42. package/dist/refresh-queue.d.ts +18 -0
  43. package/dist/refresh-queue.d.ts.map +1 -0
  44. package/dist/refresh-queue.js +78 -0
  45. package/dist/refresh-queue.js.map +1 -0
  46. package/dist/rotation.d.ts +20 -0
  47. package/dist/rotation.d.ts.map +1 -0
  48. package/dist/rotation.js +273 -0
  49. package/dist/rotation.js.map +1 -0
  50. package/dist/sessions-limits.d.ts +11 -0
  51. package/dist/sessions-limits.d.ts.map +1 -0
  52. package/dist/sessions-limits.js +123 -0
  53. package/dist/sessions-limits.js.map +1 -0
  54. package/dist/store.d.ts +23 -0
  55. package/dist/store.d.ts.map +1 -0
  56. package/dist/store.js +339 -0
  57. package/dist/store.js.map +1 -0
  58. package/dist/systemd.d.ts +10 -0
  59. package/dist/systemd.d.ts.map +1 -0
  60. package/dist/systemd.js +53 -0
  61. package/dist/systemd.js.map +1 -0
  62. package/dist/types.d.ts +98 -0
  63. package/dist/types.d.ts.map +1 -0
  64. package/dist/types.js +12 -0
  65. package/dist/types.js.map +1 -0
  66. package/dist/web.d.ts +6 -0
  67. package/dist/web.d.ts.map +1 -0
  68. package/dist/web.js +1857 -0
  69. package/dist/web.js.map +1 -0
  70. package/package.json +53 -0
@@ -0,0 +1,98 @@
1
+ export interface AccountCredentials {
2
+ alias: string;
3
+ accessToken: string;
4
+ refreshToken: string;
5
+ idToken?: string;
6
+ accountId?: string;
7
+ expiresAt: number;
8
+ email?: string;
9
+ lastRefresh?: string;
10
+ lastSeenAt?: number;
11
+ lastActiveUntil?: number;
12
+ lastUsed?: number;
13
+ usageCount: number;
14
+ rateLimitedUntil?: number;
15
+ modelUnsupportedUntil?: number;
16
+ modelUnsupportedAt?: number;
17
+ modelUnsupportedModel?: string;
18
+ modelUnsupportedError?: string;
19
+ workspaceDeactivatedUntil?: number;
20
+ workspaceDeactivatedAt?: number;
21
+ workspaceDeactivatedError?: string;
22
+ authInvalid?: boolean;
23
+ authInvalidatedAt?: number;
24
+ rateLimits?: AccountRateLimits;
25
+ rateLimitHistory?: RateLimitHistoryEntry[];
26
+ limitStatus?: LimitStatus;
27
+ limitError?: string;
28
+ lastLimitProbeAt?: number;
29
+ lastLimitErrorAt?: number;
30
+ tags?: string[];
31
+ notes?: string;
32
+ source?: 'opencode' | 'codex';
33
+ }
34
+ export interface RateLimitWindow {
35
+ limit?: number;
36
+ remaining?: number;
37
+ resetAt?: number;
38
+ updatedAt?: number;
39
+ }
40
+ export interface AccountRateLimits {
41
+ fiveHour?: RateLimitWindow;
42
+ weekly?: RateLimitWindow;
43
+ }
44
+ export interface RateLimitSnapshot {
45
+ remaining?: number;
46
+ limit?: number;
47
+ resetAt?: number;
48
+ }
49
+ export interface RateLimitHistoryEntry {
50
+ at: number;
51
+ fiveHour?: RateLimitSnapshot;
52
+ weekly?: RateLimitSnapshot;
53
+ }
54
+ export type LimitStatus = 'idle' | 'queued' | 'running' | 'success' | 'error' | 'stopped';
55
+ export interface AccountStore {
56
+ accounts: Record<string, AccountCredentials>;
57
+ activeAlias: string | null;
58
+ rotationIndex: number;
59
+ lastRotation: number;
60
+ lastPrimaryCheck?: number;
61
+ }
62
+ export interface OpenAIModel {
63
+ id: string;
64
+ object: string;
65
+ created: number;
66
+ owned_by: string;
67
+ }
68
+ export interface PluginConfig {
69
+ rotationStrategy: 'sticky-threshold' | 'round-robin' | 'least-used' | 'random';
70
+ autoRefreshTokens: boolean;
71
+ rateLimitCooldownMs: number;
72
+ modelUnsupportedCooldownMs: number;
73
+ workspaceDeactivatedCooldownMs: number;
74
+ stickyThresholdFiveHour: number;
75
+ stickyThresholdWeekly: number;
76
+ stickyRecoveryCheckIntervalMs: number;
77
+ modelFilter: RegExp;
78
+ }
79
+ export interface ProviderModel {
80
+ name: string;
81
+ limit: {
82
+ context: number;
83
+ output: number;
84
+ };
85
+ modalities: {
86
+ input: string[];
87
+ output: string[];
88
+ };
89
+ options: {
90
+ reasoningEffort: string;
91
+ reasoningSummary: string;
92
+ textVerbosity: string;
93
+ include: string[];
94
+ store: boolean;
95
+ };
96
+ }
97
+ export declare const DEFAULT_CONFIG: PluginConfig;
98
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,12 @@
1
+ export const DEFAULT_CONFIG = {
2
+ rotationStrategy: 'sticky-threshold',
3
+ autoRefreshTokens: true,
4
+ rateLimitCooldownMs: 5 * 60 * 1000, // 5 minutes
5
+ modelUnsupportedCooldownMs: 30 * 60 * 1000, // 30 minutes
6
+ workspaceDeactivatedCooldownMs: 30 * 60 * 1000, // 30 minutes
7
+ stickyThresholdFiveHour: 0.7,
8
+ stickyThresholdWeekly: 0.7,
9
+ stickyRecoveryCheckIntervalMs: 60 * 60 * 1000,
10
+ modelFilter: /^gpt-5/
11
+ };
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAmHA,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY;IAChD,0BAA0B,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACzD,8BAA8B,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IAC7D,uBAAuB,EAAE,GAAG;IAC5B,qBAAqB,EAAE,GAAG;IAC1B,6BAA6B,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IAC7C,WAAW,EAAE,QAAQ;CACtB,CAAA"}
package/dist/web.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import * as http from 'node:http';
2
+ export declare function startWebConsole(options?: {
3
+ port?: number;
4
+ host?: string;
5
+ }): http.Server;
6
+ //# sourceMappingURL=web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AA4sDjC,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,MAAM,CA2NvF"}