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.
- package/CHANGELOG.md +150 -0
- package/README.md +310 -34
- package/dist/src/cli/commands/content.d.ts.map +1 -1
- package/dist/src/cli/commands/content.js +37 -0
- package/dist/src/cli/commands/content.js.map +1 -1
- package/dist/src/cli/commands/core.d.ts.map +1 -1
- package/dist/src/cli/commands/core.js +21 -4
- package/dist/src/cli/commands/core.js.map +1 -1
- package/dist/src/cli/commands/interaction.d.ts.map +1 -1
- package/dist/src/cli/commands/interaction.js +5 -14
- package/dist/src/cli/commands/interaction.js.map +1 -1
- package/dist/src/cli/commands/navigation.d.ts.map +1 -1
- package/dist/src/cli/commands/navigation.js +12 -6
- package/dist/src/cli/commands/navigation.js.map +1 -1
- package/dist/src/cli/commands/server.d.ts.map +1 -1
- package/dist/src/cli/commands/server.js +9 -3
- package/dist/src/cli/commands/server.js.map +1 -1
- package/dist/src/cli/commands/session.d.ts.map +1 -1
- package/dist/src/cli/commands/session.js +23 -5
- package/dist/src/cli/commands/session.js.map +1 -1
- package/dist/src/cli/server/manager.d.ts +1 -0
- package/dist/src/cli/server/manager.d.ts.map +1 -1
- package/dist/src/cli/server/manager.js +7 -12
- package/dist/src/cli/server/manager.js.map +1 -1
- package/dist/src/middleware/lifecycle-activity.d.ts +9 -0
- package/dist/src/middleware/lifecycle-activity.d.ts.map +1 -0
- package/dist/src/middleware/lifecycle-activity.js +21 -0
- package/dist/src/middleware/lifecycle-activity.js.map +1 -0
- package/dist/src/openapi/spec.d.ts +4 -0
- package/dist/src/openapi/spec.d.ts.map +1 -0
- package/dist/src/openapi/spec.js +730 -0
- package/dist/src/openapi/spec.js.map +1 -0
- package/dist/src/routes/core.d.ts.map +1 -1
- package/dist/src/routes/core.js +545 -58
- package/dist/src/routes/core.js.map +1 -1
- package/dist/src/routes/docs.d.ts +3 -0
- package/dist/src/routes/docs.d.ts.map +1 -0
- package/dist/src/routes/docs.js +23 -0
- package/dist/src/routes/docs.js.map +1 -0
- package/dist/src/routes/openclaw.d.ts.map +1 -1
- package/dist/src/routes/openclaw.js +317 -90
- package/dist/src/routes/openclaw.js.map +1 -1
- package/dist/src/server.js +55 -4
- package/dist/src/server.js.map +1 -1
- package/dist/src/services/context-pool.d.ts +21 -4
- package/dist/src/services/context-pool.d.ts.map +1 -1
- package/dist/src/services/context-pool.js +290 -71
- package/dist/src/services/context-pool.js.map +1 -1
- package/dist/src/services/download.d.ts +2 -0
- package/dist/src/services/download.d.ts.map +1 -1
- package/dist/src/services/download.js +110 -80
- package/dist/src/services/download.js.map +1 -1
- package/dist/src/services/lifecycle-controller.d.ts +40 -0
- package/dist/src/services/lifecycle-controller.d.ts.map +1 -0
- package/dist/src/services/lifecycle-controller.js +106 -0
- package/dist/src/services/lifecycle-controller.js.map +1 -0
- package/dist/src/services/resource-extractor.d.ts +1 -0
- package/dist/src/services/resource-extractor.d.ts.map +1 -1
- package/dist/src/services/resource-extractor.js +7 -0
- package/dist/src/services/resource-extractor.js.map +1 -1
- package/dist/src/services/session.d.ts +109 -4
- package/dist/src/services/session.d.ts.map +1 -1
- package/dist/src/services/session.js +622 -64
- package/dist/src/services/session.js.map +1 -1
- package/dist/src/services/structured-extractor.d.ts +39 -0
- package/dist/src/services/structured-extractor.d.ts.map +1 -0
- package/dist/src/services/structured-extractor.js +487 -0
- package/dist/src/services/structured-extractor.js.map +1 -0
- package/dist/src/services/tab.d.ts +30 -3
- package/dist/src/services/tab.d.ts.map +1 -1
- package/dist/src/services/tab.js +872 -124
- package/dist/src/services/tab.js.map +1 -1
- package/dist/src/services/tracing.d.ts +7 -0
- package/dist/src/services/tracing.d.ts.map +1 -1
- package/dist/src/services/tracing.js +200 -19
- package/dist/src/services/tracing.js.map +1 -1
- package/dist/src/services/vnc.d.ts.map +1 -1
- package/dist/src/services/vnc.js +5 -3
- package/dist/src/services/vnc.js.map +1 -1
- package/dist/src/services/youtube.js +1 -1
- package/dist/src/services/youtube.js.map +1 -1
- package/dist/src/types.d.ts +71 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/config.d.ts +79 -3
- package/dist/src/utils/config.d.ts.map +1 -1
- package/dist/src/utils/config.js +145 -3
- package/dist/src/utils/config.js.map +1 -1
- package/dist/src/utils/presets.d.ts.map +1 -1
- package/dist/src/utils/presets.js +3 -1
- package/dist/src/utils/presets.js.map +1 -1
- package/dist/src/utils/proxy-profiles.d.ts +18 -0
- package/dist/src/utils/proxy-profiles.d.ts.map +1 -0
- package/dist/src/utils/proxy-profiles.js +197 -0
- package/dist/src/utils/proxy-profiles.js.map +1 -0
- package/dist/src/utils/sidecar-version.d.ts +12 -0
- package/dist/src/utils/sidecar-version.d.ts.map +1 -0
- package/dist/src/utils/sidecar-version.js +63 -0
- package/dist/src/utils/sidecar-version.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/openclaw.plugin.json +39 -0
- package/package.json +16 -4
- 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,
|
|
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
|
|
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
|
|
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":"
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/services/session.ts"],"names":[],"mappings":"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"}
|