camofox-browser 2.1.1 → 2.4.3

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 (102) hide show
  1. package/CHANGELOG.md +150 -0
  2. package/README.md +310 -34
  3. package/dist/src/cli/commands/content.d.ts.map +1 -1
  4. package/dist/src/cli/commands/content.js +37 -0
  5. package/dist/src/cli/commands/content.js.map +1 -1
  6. package/dist/src/cli/commands/core.d.ts.map +1 -1
  7. package/dist/src/cli/commands/core.js +21 -4
  8. package/dist/src/cli/commands/core.js.map +1 -1
  9. package/dist/src/cli/commands/interaction.d.ts.map +1 -1
  10. package/dist/src/cli/commands/interaction.js +5 -14
  11. package/dist/src/cli/commands/interaction.js.map +1 -1
  12. package/dist/src/cli/commands/navigation.d.ts.map +1 -1
  13. package/dist/src/cli/commands/navigation.js +12 -6
  14. package/dist/src/cli/commands/navigation.js.map +1 -1
  15. package/dist/src/cli/commands/server.d.ts.map +1 -1
  16. package/dist/src/cli/commands/server.js +9 -3
  17. package/dist/src/cli/commands/server.js.map +1 -1
  18. package/dist/src/cli/commands/session.d.ts.map +1 -1
  19. package/dist/src/cli/commands/session.js +23 -5
  20. package/dist/src/cli/commands/session.js.map +1 -1
  21. package/dist/src/cli/server/manager.d.ts +1 -0
  22. package/dist/src/cli/server/manager.d.ts.map +1 -1
  23. package/dist/src/cli/server/manager.js +7 -12
  24. package/dist/src/cli/server/manager.js.map +1 -1
  25. package/dist/src/middleware/lifecycle-activity.d.ts +9 -0
  26. package/dist/src/middleware/lifecycle-activity.d.ts.map +1 -0
  27. package/dist/src/middleware/lifecycle-activity.js +21 -0
  28. package/dist/src/middleware/lifecycle-activity.js.map +1 -0
  29. package/dist/src/openapi/spec.d.ts +4 -0
  30. package/dist/src/openapi/spec.d.ts.map +1 -0
  31. package/dist/src/openapi/spec.js +730 -0
  32. package/dist/src/openapi/spec.js.map +1 -0
  33. package/dist/src/routes/core.d.ts.map +1 -1
  34. package/dist/src/routes/core.js +545 -58
  35. package/dist/src/routes/core.js.map +1 -1
  36. package/dist/src/routes/docs.d.ts +3 -0
  37. package/dist/src/routes/docs.d.ts.map +1 -0
  38. package/dist/src/routes/docs.js +23 -0
  39. package/dist/src/routes/docs.js.map +1 -0
  40. package/dist/src/routes/openclaw.d.ts.map +1 -1
  41. package/dist/src/routes/openclaw.js +317 -90
  42. package/dist/src/routes/openclaw.js.map +1 -1
  43. package/dist/src/server.js +55 -4
  44. package/dist/src/server.js.map +1 -1
  45. package/dist/src/services/context-pool.d.ts +21 -4
  46. package/dist/src/services/context-pool.d.ts.map +1 -1
  47. package/dist/src/services/context-pool.js +290 -71
  48. package/dist/src/services/context-pool.js.map +1 -1
  49. package/dist/src/services/download.d.ts +2 -0
  50. package/dist/src/services/download.d.ts.map +1 -1
  51. package/dist/src/services/download.js +110 -80
  52. package/dist/src/services/download.js.map +1 -1
  53. package/dist/src/services/lifecycle-controller.d.ts +40 -0
  54. package/dist/src/services/lifecycle-controller.d.ts.map +1 -0
  55. package/dist/src/services/lifecycle-controller.js +106 -0
  56. package/dist/src/services/lifecycle-controller.js.map +1 -0
  57. package/dist/src/services/resource-extractor.d.ts +1 -0
  58. package/dist/src/services/resource-extractor.d.ts.map +1 -1
  59. package/dist/src/services/resource-extractor.js +7 -0
  60. package/dist/src/services/resource-extractor.js.map +1 -1
  61. package/dist/src/services/session.d.ts +109 -4
  62. package/dist/src/services/session.d.ts.map +1 -1
  63. package/dist/src/services/session.js +622 -64
  64. package/dist/src/services/session.js.map +1 -1
  65. package/dist/src/services/structured-extractor.d.ts +39 -0
  66. package/dist/src/services/structured-extractor.d.ts.map +1 -0
  67. package/dist/src/services/structured-extractor.js +487 -0
  68. package/dist/src/services/structured-extractor.js.map +1 -0
  69. package/dist/src/services/tab.d.ts +30 -3
  70. package/dist/src/services/tab.d.ts.map +1 -1
  71. package/dist/src/services/tab.js +872 -124
  72. package/dist/src/services/tab.js.map +1 -1
  73. package/dist/src/services/tracing.d.ts +7 -0
  74. package/dist/src/services/tracing.d.ts.map +1 -1
  75. package/dist/src/services/tracing.js +200 -19
  76. package/dist/src/services/tracing.js.map +1 -1
  77. package/dist/src/services/vnc.d.ts.map +1 -1
  78. package/dist/src/services/vnc.js +5 -3
  79. package/dist/src/services/vnc.js.map +1 -1
  80. package/dist/src/services/youtube.js +1 -1
  81. package/dist/src/services/youtube.js.map +1 -1
  82. package/dist/src/types.d.ts +71 -1
  83. package/dist/src/types.d.ts.map +1 -1
  84. package/dist/src/utils/config.d.ts +79 -3
  85. package/dist/src/utils/config.d.ts.map +1 -1
  86. package/dist/src/utils/config.js +145 -3
  87. package/dist/src/utils/config.js.map +1 -1
  88. package/dist/src/utils/presets.d.ts.map +1 -1
  89. package/dist/src/utils/presets.js +3 -1
  90. package/dist/src/utils/presets.js.map +1 -1
  91. package/dist/src/utils/proxy-profiles.d.ts +18 -0
  92. package/dist/src/utils/proxy-profiles.d.ts.map +1 -0
  93. package/dist/src/utils/proxy-profiles.js +197 -0
  94. package/dist/src/utils/proxy-profiles.js.map +1 -0
  95. package/dist/src/utils/sidecar-version.d.ts +12 -0
  96. package/dist/src/utils/sidecar-version.d.ts.map +1 -0
  97. package/dist/src/utils/sidecar-version.js +63 -0
  98. package/dist/src/utils/sidecar-version.js.map +1 -0
  99. package/dist/tsconfig.tsbuildinfo +1 -1
  100. package/openclaw.plugin.json +39 -0
  101. package/package.json +16 -4
  102. package/plugin.ts +949 -0
@@ -1,17 +1,95 @@
1
- import type { ContextOverrides, SessionData, TabState } from '../types';
1
+ import type { ContextOverrides, ResolvedSessionProfile, SessionData, TabState } from '../types';
2
+ import type { ResolvedContextOptions } from '../utils/presets';
3
+ import { type PoolEntry } from './context-pool';
4
+ export interface CanonicalProfile {
5
+ resolvedOverrides: ResolvedContextOptions | null;
6
+ hash: string;
7
+ establishedAt: number;
8
+ }
9
+ export interface EstablishedSessionProfile {
10
+ userId: string;
11
+ sessionKey: string;
12
+ signature: string;
13
+ resolvedProfile: ResolvedSessionProfile;
14
+ establishedAt: number;
15
+ }
16
+ export interface SessionProfileLaunchSettings {
17
+ contextOverrides: ContextOverrides | null;
18
+ proxy: ResolvedSessionProfile['proxy'];
19
+ }
20
+ interface CleanupSessionsForUserIdOptions {
21
+ allowInternalSessionKey?: boolean;
22
+ }
2
23
  export declare function __getUserConcurrencyStateForTests(userId: string): {
3
24
  active: number;
4
25
  queueLength: number;
5
26
  } | null;
27
+ export declare function __getSessionsMapForTests(): Map<string, SessionData>;
6
28
  export declare function withUserLimit<T>(userId: string, maxConcurrent: number, operation: () => Promise<T>, operationTimeoutMs?: number): Promise<T>;
29
+ export declare function cleanupSessionsForUserId(userId: string, reason: string, clearCanonical?: boolean, options?: CleanupSessionsForUserIdOptions): void;
7
30
  export declare const SESSION_TIMEOUT_MS: number;
8
31
  export declare const MAX_SESSIONS: number;
9
32
  export declare const MAX_TABS_PER_SESSION: number;
10
33
  export declare function normalizeUserId(userId: unknown): string;
11
- export declare function getSessionMapKey(userId: unknown, contextOverrides: ContextOverrides | null | undefined): string;
34
+ export declare function getSessionMapKey(userId: unknown, contextOverridesOrSessionKey: ContextOverrides | null | undefined | string, profileSignature?: string): string;
35
+ export declare function getEstablishedSessionProfile(userId: unknown, sessionKey: string): EstablishedSessionProfile | undefined;
36
+ export declare function hasDefaultSessionProfileRuntime(userId: unknown, sessionKey: string): boolean;
37
+ export declare function claimDefaultSessionProfileRuntime(userId: unknown, sessionKey: string): boolean;
38
+ export declare function clearDefaultSessionProfileClaim(userId: unknown, sessionKey: string): void;
39
+ export declare function getSessionProfileLaunchSettings(userId: unknown, profileKey: string): SessionProfileLaunchSettings | undefined;
40
+ export declare function getCanonicalProfile(userId: unknown): CanonicalProfile | undefined;
41
+ export declare function hasCanonicalProfile(userId: unknown): boolean;
42
+ /**
43
+ * Try to acquire the first-create mutex for a user.
44
+ * Returns { acquired: true } if we are the first creator (mutex acquired).
45
+ * Returns { acquired: false, wait: Promise<boolean> } if another request is first-creating.
46
+ * The promise resolves to true (committed) or false (rolled back).
47
+ * If canonical already exists (committed), returns { acquired: false, wait: resolved-true }.
48
+ */
49
+ export declare function acquireFirstCreateMutex(userId: unknown): {
50
+ acquired: true;
51
+ } | {
52
+ acquired: false;
53
+ wait: Promise<boolean>;
54
+ };
55
+ /**
56
+ * Commit: store the canonical profile and release the mutex (signaling success to waiters).
57
+ */
58
+ export declare function commitCanonicalProfile(userId: unknown, resolved: ResolvedContextOptions | null): CanonicalProfile;
59
+ /**
60
+ * Rollback: release the mutex (signaling failure to waiters). No canonical is stored.
61
+ */
62
+ export declare function rollbackCanonicalMutex(userId: unknown): void;
63
+ /**
64
+ * Create a CanonicalProfile object without storing it (for hash comparison during first-create).
65
+ */
66
+ export declare function createCanonicalProfile(resolved: ResolvedContextOptions | null): CanonicalProfile;
67
+ export declare function clearCanonicalProfile(userId: unknown): void;
68
+ /**
69
+ * Store or validate a session profile for a specific userId + sessionKey combination.
70
+ * Returns the established profile if successful.
71
+ * Throws if a conflicting profile is already established for the same userId + sessionKey.
72
+ */
73
+ export declare function establishSessionProfile(userId: unknown, sessionKey: string, profile: ResolvedSessionProfile): EstablishedSessionProfile;
74
+ export declare function clearSessionProfile(userId: unknown, sessionKey: string): void;
75
+ export declare function acquireSessionProfileCreateMutex(userId: unknown, sessionKey: string, signature: string): {
76
+ acquired: true;
77
+ release: (committed: boolean) => void;
78
+ } | {
79
+ acquired: false;
80
+ wait: Promise<boolean>;
81
+ };
82
+ export declare function waitForSessionProfileCreate(userId: unknown, sessionKey: string): Promise<void>;
83
+ export declare function rollbackSessionProfileRuntime(userId: unknown, sessionKey: string, profileSignature: string): Promise<void>;
12
84
  export declare function getSessionsForUser(userId: unknown): Array<[string, SessionData]>;
13
85
  export declare function getAllSessions(): Map<string, SessionData>;
14
86
  export declare function countTotalTabsForSessions(sessionsForUser?: Array<[string, SessionData]>): number;
87
+ export declare function getLifecycleSessionSnapshot(): {
88
+ liveSessions: number;
89
+ liveTabs: number;
90
+ stagedCreates: number;
91
+ };
92
+ export declare function getSessionsSnapshot(): Map<string, SessionData>;
15
93
  export declare function getTabGroup(session: SessionData, sessionKey: string): Map<string, TabState>;
16
94
  declare function findTab(session: SessionData, tabId: string): {
17
95
  tabState: TabState;
@@ -23,13 +101,40 @@ export declare function findTabById(tabId: string, userId: unknown): (ReturnType
23
101
  sessionKey: string;
24
102
  session: SessionData;
25
103
  }) | null;
26
- export declare function getSession(userId: unknown, contextOverrides?: ContextOverrides | null): Promise<SessionData>;
104
+ export interface StagedFirstUse {
105
+ session: SessionData;
106
+ contextEntry: PoolEntry;
107
+ generation: string;
108
+ }
109
+ export declare function createStagedSession(userId: unknown, contextOverrides?: ContextOverrides | null, sessionKey?: string): Promise<StagedFirstUse>;
110
+ export declare function commitStagedFirstUse(userId: unknown, session: SessionData, contextOverrides: ContextOverrides | null, tabInfo: {
111
+ tabId: string;
112
+ sessionMapKey: string;
113
+ sessionKey: string;
114
+ tabState: TabState;
115
+ }, generation: string): boolean;
116
+ export declare function rollbackStagedFirstUse(userId: unknown, generation: string): Promise<void>;
117
+ export declare function getSession(userId: unknown, contextOverrides?: ContextOverrides | null, sessionKey?: string): Promise<SessionData>;
27
118
  export declare function indexTab(tabId: string, sessionKey: string): void;
28
119
  export declare function unindexTab(tabId: string): void;
29
120
  export declare function clearAllState(): void;
30
- export declare function closeSessionsForUser(userId: string): Promise<void>;
121
+ export interface CloseSessionsForUserOptions {
122
+ clearProfiles?: boolean;
123
+ }
124
+ export declare function closeSessionsForUser(userId: string, options?: CloseSessionsForUserOptions): Promise<void>;
31
125
  export declare function closeAllSessions(): Promise<void>;
32
126
  export declare function startCleanupInterval(): NodeJS.Timeout;
33
127
  export declare function stopCleanupInterval(): void;
128
+ /**
129
+ * Stage 1 idle cleanup: close runtime state (contexts, session data) for users with no tabs.
130
+ * Does NOT clear stored session profiles - they survive idle cleanup.
131
+ * Does NOT exit the daemon - that is Stage 2 (Task 4).
132
+ * @param sessionSnapshot Snapshot of sessions map taken before cleanup started
133
+ * @param contextSnapshot Snapshot of context pool entries taken before cleanup started
134
+ * @param cleanupStartedMs Timestamp when cleanup was triggered (used to avoid closing newly-created contexts)
135
+ */
136
+ export declare function runLifecycleIdleCleanup(sessionSnapshot: Map<string, SessionData>, contextSnapshot: Map<string, PoolEntry>, cleanupStartedMs: number): Promise<{
137
+ closedUsers: string[];
138
+ }>;
34
139
  export {};
35
140
  //# sourceMappingURL=session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/services/session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AA0BxE,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAKhH;AAED,wBAAsB,aAAa,CAAC,CAAC,EACpC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,kBAAkB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,CAAC,CAAC,CAkDZ;AAgCD,eAAO,MAAM,kBAAkB,QAA6F,CAAC;AAC7H,eAAO,MAAM,YAAY,QAAiF,CAAC;AAC3G,eAAO,MAAM,oBAAoB,QAA6E,CAAC;AAE/G,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAEvD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAI/G;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAQhF;AAED,wBAAgB,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAEzD;AAED,wBAAgB,yBAAyB,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,MAAM,CAOhG;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAO3F;AAED,iBAAS,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CAAE,GAAG,IAAI,CASrI;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAQ7D;AAED,wBAAgB,WAAW,CAC1B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,GAEb,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;CACrB,CAAC,GACD,IAAI,CA6BN;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CA4DlH;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAEhE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG9C;AAED,wBAAgB,aAAa,IAAI,IAAI,CAKpC;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIxE;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CActD;AAID,wBAAgB,oBAAoB,IAAI,MAAM,CAAC,OAAO,CAgBrD;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAK1C"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/services/session.ts"],"names":[],"mappings":"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"}