donobu 2.23.0 → 2.23.1
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/package.json +1 -1
- package/dist/apis/EnvironmentDataApi.d.ts +0 -26
- package/dist/apis/EnvironmentDataApi.d.ts.map +0 -1
- package/dist/apis/EnvironmentDataApi.js +0 -59
- package/dist/apis/EnvironmentDataApi.js.map +0 -1
- package/dist/assets/donobu-virtual-mouse.svg +0 -11
- package/dist/assets/donobu.css +0 -62
- package/dist/assets/generated/parameter-schemas.json +0 -2241
- package/dist/assets/record.umd.min.cjs +0 -10399
- package/dist/bindings/FocusPage.d.ts +0 -23
- package/dist/bindings/FocusPage.d.ts.map +0 -1
- package/dist/bindings/FocusPage.js +0 -20
- package/dist/bindings/FocusPage.js.map +0 -1
- package/dist/bindings/ToggleDonobuAnnotations.d.ts +0 -21
- package/dist/bindings/ToggleDonobuAnnotations.d.ts.map +0 -1
- package/dist/bindings/ToggleDonobuAnnotations.js +0 -51
- package/dist/bindings/ToggleDonobuAnnotations.js.map +0 -1
- package/dist/esm/apis/EnvironmentDataApi.d.ts +0 -26
- package/dist/esm/apis/EnvironmentDataApi.d.ts.map +0 -1
- package/dist/esm/apis/EnvironmentDataApi.js +0 -59
- package/dist/esm/apis/EnvironmentDataApi.js.map +0 -1
- package/dist/esm/assets/donobu-virtual-mouse.svg +0 -11
- package/dist/esm/assets/donobu.css +0 -62
- package/dist/esm/assets/generated/parameter-schemas.json +0 -2241
- package/dist/esm/assets/record.umd.min.cjs +0 -10399
- package/dist/esm/bindings/FocusPage.d.ts +0 -23
- package/dist/esm/bindings/FocusPage.d.ts.map +0 -1
- package/dist/esm/bindings/FocusPage.js +0 -20
- package/dist/esm/bindings/FocusPage.js.map +0 -1
- package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts +0 -21
- package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts.map +0 -1
- package/dist/esm/bindings/ToggleDonobuAnnotations.js +0 -51
- package/dist/esm/bindings/ToggleDonobuAnnotations.js.map +0 -1
- package/dist/esm/lib/constants.d.ts +0 -8
- package/dist/esm/lib/constants.d.ts.map +0 -1
- package/dist/esm/lib/constants.js +0 -14
- package/dist/esm/lib/constants.js.map +0 -1
- package/dist/esm/lib/fixtures/testExtension.d.ts +0 -10
- package/dist/esm/lib/fixtures/testExtension.d.ts.map +0 -1
- package/dist/esm/lib/fixtures/testExtension.js +0 -383
- package/dist/esm/lib/fixtures/testExtension.js.map +0 -1
- package/dist/esm/lib/types.d.ts +0 -106
- package/dist/esm/lib/types.d.ts.map +0 -1
- package/dist/esm/lib/types.js +0 -3
- package/dist/esm/lib/types.js.map +0 -1
- package/dist/esm/managers/EnvironmentDataManager.d.ts +0 -58
- package/dist/esm/managers/EnvironmentDataManager.d.ts.map +0 -1
- package/dist/esm/managers/EnvironmentDataManager.js +0 -134
- package/dist/esm/managers/EnvironmentDataManager.js.map +0 -1
- package/dist/esm/managers/ProjectStructureGenerator.d.ts +0 -62
- package/dist/esm/managers/ProjectStructureGenerator.d.ts.map +0 -1
- package/dist/esm/managers/ProjectStructureGenerator.js +0 -234
- package/dist/esm/managers/ProjectStructureGenerator.js.map +0 -1
- package/dist/esm/managers/TestFileUpdater.d.ts +0 -56
- package/dist/esm/managers/TestFileUpdater.d.ts.map +0 -1
- package/dist/esm/managers/TestFileUpdater.js +0 -224
- package/dist/esm/managers/TestFileUpdater.js.map +0 -1
- package/dist/esm/models/AskAiRequest.d.ts +0 -15
- package/dist/esm/models/AskAiRequest.d.ts.map +0 -1
- package/dist/esm/models/AskAiRequest.js +0 -3
- package/dist/esm/models/AskAiRequest.js.map +0 -1
- package/dist/esm/models/BaseToolGptParameters.d.ts +0 -10
- package/dist/esm/models/BaseToolGptParameters.d.ts.map +0 -1
- package/dist/esm/models/BaseToolGptParameters.js +0 -3
- package/dist/esm/models/BaseToolGptParameters.js.map +0 -1
- package/dist/esm/models/BrowserFramework.d.ts +0 -61
- package/dist/esm/models/BrowserFramework.d.ts.map +0 -1
- package/dist/esm/models/BrowserFramework.js +0 -339
- package/dist/esm/models/BrowserFramework.js.map +0 -1
- package/dist/esm/models/EnvironmentDatum.d.ts +0 -54
- package/dist/esm/models/EnvironmentDatum.d.ts.map +0 -1
- package/dist/esm/models/EnvironmentDatum.js +0 -57
- package/dist/esm/models/EnvironmentDatum.js.map +0 -1
- package/dist/esm/models/FlowsQuery.d.ts +0 -12
- package/dist/esm/models/FlowsQuery.d.ts.map +0 -1
- package/dist/esm/models/FlowsQuery.js +0 -3
- package/dist/esm/models/FlowsQuery.js.map +0 -1
- package/dist/esm/persistence/AgentsPersistence.d.ts +0 -12
- package/dist/esm/persistence/AgentsPersistence.d.ts.map +0 -1
- package/dist/esm/persistence/AgentsPersistence.js +0 -3
- package/dist/esm/persistence/AgentsPersistence.js.map +0 -1
- package/dist/esm/persistence/AgentsPersistenceSqlite.d.ts +0 -15
- package/dist/esm/persistence/AgentsPersistenceSqlite.d.ts.map +0 -1
- package/dist/esm/persistence/AgentsPersistenceSqlite.js +0 -50
- package/dist/esm/persistence/AgentsPersistenceSqlite.js.map +0 -1
- package/dist/esm/persistence/AgentsPersistenceVolatile.d.ts +0 -14
- package/dist/esm/persistence/AgentsPersistenceVolatile.d.ts.map +0 -1
- package/dist/esm/persistence/AgentsPersistenceVolatile.js +0 -26
- package/dist/esm/persistence/AgentsPersistenceVolatile.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistence.d.ts +0 -104
- package/dist/esm/persistence/FlowsPersistence.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistence.js +0 -3
- package/dist/esm/persistence/FlowsPersistence.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts +0 -75
- package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceAwsS3.js +0 -525
- package/dist/esm/persistence/FlowsPersistenceAwsS3.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceFactory.d.ts +0 -10
- package/dist/esm/persistence/FlowsPersistenceFactory.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceFactory.js +0 -3
- package/dist/esm/persistence/FlowsPersistenceFactory.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceFactoryImpl.d.ts +0 -57
- package/dist/esm/persistence/FlowsPersistenceFactoryImpl.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js +0 -235
- package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceFactoryPreset.d.ts +0 -13
- package/dist/esm/persistence/FlowsPersistenceFactoryPreset.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceFactoryPreset.js +0 -24
- package/dist/esm/persistence/FlowsPersistenceFactoryPreset.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts +0 -69
- package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceFilesystem.js +0 -381
- package/dist/esm/persistence/FlowsPersistenceFilesystem.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +0 -75
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js +0 -485
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts +0 -44
- package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceSqlite.js +0 -264
- package/dist/esm/persistence/FlowsPersistenceSqlite.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts +0 -44
- package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceSupabase.js +0 -262
- package/dist/esm/persistence/FlowsPersistenceSupabase.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts +0 -41
- package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceVolatile.js +0 -171
- package/dist/esm/persistence/FlowsPersistenceVolatile.js.map +0 -1
- package/dist/esm/persistence/GptConfigsPersistence.d.ts +0 -12
- package/dist/esm/persistence/GptConfigsPersistence.d.ts.map +0 -1
- package/dist/esm/persistence/GptConfigsPersistence.js +0 -3
- package/dist/esm/persistence/GptConfigsPersistence.js.map +0 -1
- package/dist/esm/persistence/GptConfigsPersistenceSqlite.d.ts +0 -13
- package/dist/esm/persistence/GptConfigsPersistenceSqlite.d.ts.map +0 -1
- package/dist/esm/persistence/GptConfigsPersistenceSqlite.js +0 -35
- package/dist/esm/persistence/GptConfigsPersistenceSqlite.js.map +0 -1
- package/dist/esm/persistence/GptConfigsPersistenceVolatile.d.ts +0 -15
- package/dist/esm/persistence/GptConfigsPersistenceVolatile.d.ts.map +0 -1
- package/dist/esm/persistence/GptConfigsPersistenceVolatile.js +0 -31
- package/dist/esm/persistence/GptConfigsPersistenceVolatile.js.map +0 -1
- package/dist/esm/playwrightTestExtensions.d.ts +0 -155
- package/dist/esm/playwrightTestExtensions.d.ts.map +0 -1
- package/dist/esm/playwrightTestExtensions.js +0 -688
- package/dist/esm/playwrightTestExtensions.js.map +0 -1
- package/dist/esm/utils/ToolsPluginsLoader.d.ts +0 -52
- package/dist/esm/utils/ToolsPluginsLoader.d.ts.map +0 -1
- package/dist/esm/utils/ToolsPluginsLoader.js +0 -301
- package/dist/esm/utils/ToolsPluginsLoader.js.map +0 -1
- package/dist/lib/autoTest.d.ts +0 -2
- package/dist/lib/autoTest.d.ts.map +0 -1
- package/dist/lib/autoTest.js +0 -17
- package/dist/lib/autoTest.js.map +0 -1
- package/dist/lib/constants.d.ts +0 -8
- package/dist/lib/constants.d.ts.map +0 -1
- package/dist/lib/constants.js +0 -14
- package/dist/lib/constants.js.map +0 -1
- package/dist/lib/fixtures/testExtension.d.ts +0 -10
- package/dist/lib/fixtures/testExtension.d.ts.map +0 -1
- package/dist/lib/fixtures/testExtension.js +0 -383
- package/dist/lib/fixtures/testExtension.js.map +0 -1
- package/dist/lib/types.d.ts +0 -106
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/types.js +0 -3
- package/dist/lib/types.js.map +0 -1
- package/dist/managers/EnvironmentDataManager.d.ts +0 -58
- package/dist/managers/EnvironmentDataManager.d.ts.map +0 -1
- package/dist/managers/EnvironmentDataManager.js +0 -134
- package/dist/managers/EnvironmentDataManager.js.map +0 -1
- package/dist/managers/ProjectStructureGenerator.d.ts +0 -62
- package/dist/managers/ProjectStructureGenerator.d.ts.map +0 -1
- package/dist/managers/ProjectStructureGenerator.js +0 -234
- package/dist/managers/ProjectStructureGenerator.js.map +0 -1
- package/dist/managers/TestFileUpdater.d.ts +0 -56
- package/dist/managers/TestFileUpdater.d.ts.map +0 -1
- package/dist/managers/TestFileUpdater.js +0 -224
- package/dist/managers/TestFileUpdater.js.map +0 -1
- package/dist/models/AskAiRequest.d.ts +0 -15
- package/dist/models/AskAiRequest.d.ts.map +0 -1
- package/dist/models/AskAiRequest.js +0 -3
- package/dist/models/AskAiRequest.js.map +0 -1
- package/dist/models/BaseToolGptParameters.d.ts +0 -10
- package/dist/models/BaseToolGptParameters.d.ts.map +0 -1
- package/dist/models/BaseToolGptParameters.js +0 -3
- package/dist/models/BaseToolGptParameters.js.map +0 -1
- package/dist/models/BrowserFramework.d.ts +0 -51
- package/dist/models/BrowserFramework.d.ts.map +0 -1
- package/dist/models/BrowserFramework.js +0 -364
- package/dist/models/BrowserFramework.js.map +0 -1
- package/dist/models/EnvironmentDatum.d.ts +0 -54
- package/dist/models/EnvironmentDatum.d.ts.map +0 -1
- package/dist/models/EnvironmentDatum.js +0 -57
- package/dist/models/EnvironmentDatum.js.map +0 -1
- package/dist/models/FlowsQuery.d.ts +0 -12
- package/dist/models/FlowsQuery.d.ts.map +0 -1
- package/dist/models/FlowsQuery.js +0 -3
- package/dist/models/FlowsQuery.js.map +0 -1
- package/dist/persistence/AgentsPersistence.d.ts +0 -12
- package/dist/persistence/AgentsPersistence.d.ts.map +0 -1
- package/dist/persistence/AgentsPersistence.js +0 -3
- package/dist/persistence/AgentsPersistence.js.map +0 -1
- package/dist/persistence/AgentsPersistenceSqlite.d.ts +0 -15
- package/dist/persistence/AgentsPersistenceSqlite.d.ts.map +0 -1
- package/dist/persistence/AgentsPersistenceSqlite.js +0 -50
- package/dist/persistence/AgentsPersistenceSqlite.js.map +0 -1
- package/dist/persistence/AgentsPersistenceVolatile.d.ts +0 -14
- package/dist/persistence/AgentsPersistenceVolatile.d.ts.map +0 -1
- package/dist/persistence/AgentsPersistenceVolatile.js +0 -26
- package/dist/persistence/AgentsPersistenceVolatile.js.map +0 -1
- package/dist/persistence/FlowsPersistence.d.ts +0 -104
- package/dist/persistence/FlowsPersistence.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistence.js +0 -3
- package/dist/persistence/FlowsPersistence.js.map +0 -1
- package/dist/persistence/FlowsPersistenceAwsS3.d.ts +0 -75
- package/dist/persistence/FlowsPersistenceAwsS3.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistenceAwsS3.js +0 -525
- package/dist/persistence/FlowsPersistenceAwsS3.js.map +0 -1
- package/dist/persistence/FlowsPersistenceFactory.d.ts +0 -10
- package/dist/persistence/FlowsPersistenceFactory.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistenceFactory.js +0 -3
- package/dist/persistence/FlowsPersistenceFactory.js.map +0 -1
- package/dist/persistence/FlowsPersistenceFactoryImpl.d.ts +0 -57
- package/dist/persistence/FlowsPersistenceFactoryImpl.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistenceFactoryImpl.js +0 -235
- package/dist/persistence/FlowsPersistenceFactoryImpl.js.map +0 -1
- package/dist/persistence/FlowsPersistenceFactoryPreset.d.ts +0 -13
- package/dist/persistence/FlowsPersistenceFactoryPreset.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistenceFactoryPreset.js +0 -24
- package/dist/persistence/FlowsPersistenceFactoryPreset.js.map +0 -1
- package/dist/persistence/FlowsPersistenceFilesystem.d.ts +0 -69
- package/dist/persistence/FlowsPersistenceFilesystem.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistenceFilesystem.js +0 -381
- package/dist/persistence/FlowsPersistenceFilesystem.js.map +0 -1
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +0 -75
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js +0 -485
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js.map +0 -1
- package/dist/persistence/FlowsPersistenceSqlite.d.ts +0 -44
- package/dist/persistence/FlowsPersistenceSqlite.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistenceSqlite.js +0 -264
- package/dist/persistence/FlowsPersistenceSqlite.js.map +0 -1
- package/dist/persistence/FlowsPersistenceSupabase.d.ts +0 -44
- package/dist/persistence/FlowsPersistenceSupabase.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistenceSupabase.js +0 -262
- package/dist/persistence/FlowsPersistenceSupabase.js.map +0 -1
- package/dist/persistence/FlowsPersistenceVolatile.d.ts +0 -41
- package/dist/persistence/FlowsPersistenceVolatile.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistenceVolatile.js +0 -171
- package/dist/persistence/FlowsPersistenceVolatile.js.map +0 -1
- package/dist/persistence/GptConfigsPersistence.d.ts +0 -12
- package/dist/persistence/GptConfigsPersistence.d.ts.map +0 -1
- package/dist/persistence/GptConfigsPersistence.js +0 -3
- package/dist/persistence/GptConfigsPersistence.js.map +0 -1
- package/dist/persistence/GptConfigsPersistenceSqlite.d.ts +0 -13
- package/dist/persistence/GptConfigsPersistenceSqlite.d.ts.map +0 -1
- package/dist/persistence/GptConfigsPersistenceSqlite.js +0 -35
- package/dist/persistence/GptConfigsPersistenceSqlite.js.map +0 -1
- package/dist/persistence/GptConfigsPersistenceVolatile.d.ts +0 -15
- package/dist/persistence/GptConfigsPersistenceVolatile.d.ts.map +0 -1
- package/dist/persistence/GptConfigsPersistenceVolatile.js +0 -31
- package/dist/persistence/GptConfigsPersistenceVolatile.js.map +0 -1
- package/dist/playwrightTestExtensions.d.ts +0 -155
- package/dist/playwrightTestExtensions.d.ts.map +0 -1
- package/dist/playwrightTestExtensions.js +0 -688
- package/dist/playwrightTestExtensions.js.map +0 -1
- package/dist/tools/CreatePageObjectModel.d.ts +0 -16
- package/dist/tools/CreatePageObjectModel.d.ts.map +0 -1
- package/dist/tools/CreatePageObjectModel.js +0 -33
- package/dist/tools/CreatePageObjectModel.js.map +0 -1
- package/dist/utils/ToolsPluginsLoader.d.ts +0 -52
- package/dist/utils/ToolsPluginsLoader.d.ts.map +0 -1
- package/dist/utils/ToolsPluginsLoader.js +0 -301
- package/dist/utils/ToolsPluginsLoader.js.map +0 -1
- /package/dist/utils/{jsonSchemaUtils.d.ts → JsonSchemaUtils.d.ts} +0 -0
- /package/dist/utils/{jsonSchemaUtils.d.ts.map → JsonSchemaUtils.d.ts.map} +0 -0
- /package/dist/utils/{jsonSchemaUtils.js → JsonSchemaUtils.js} +0 -0
- /package/dist/utils/{jsonSchemaUtils.js.map → JsonSchemaUtils.js.map} +0 -0
|
@@ -1,264 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FlowsPersistenceSqlite = void 0;
|
|
4
|
-
const FlowNotFoundException_1 = require("../exceptions/FlowNotFoundException");
|
|
5
|
-
const JsonUtils_1 = require("../utils/JsonUtils");
|
|
6
|
-
const MiscUtils_1 = require("../utils/MiscUtils");
|
|
7
|
-
/**
|
|
8
|
-
* A persistence implementation that uses SQLite for all data storage, including binary files.
|
|
9
|
-
*/
|
|
10
|
-
class FlowsPersistenceSqlite {
|
|
11
|
-
constructor(db) {
|
|
12
|
-
this.db = db;
|
|
13
|
-
}
|
|
14
|
-
static async create(db) {
|
|
15
|
-
return new FlowsPersistenceSqlite(db);
|
|
16
|
-
}
|
|
17
|
-
async setEnvironmentDatum(key, value) {
|
|
18
|
-
if (!key) {
|
|
19
|
-
throw new Error('Key cannot be empty');
|
|
20
|
-
}
|
|
21
|
-
const stmt = this.db.prepare('INSERT OR REPLACE INTO environment_data (name, value) VALUES (?, ?)');
|
|
22
|
-
stmt.run(key, value);
|
|
23
|
-
}
|
|
24
|
-
async deleteEnvironmentDatum(key) {
|
|
25
|
-
if (!key) {
|
|
26
|
-
return; // No-op if key is empty
|
|
27
|
-
}
|
|
28
|
-
const stmt = this.db.prepare('DELETE FROM environment_data WHERE name = ?');
|
|
29
|
-
stmt.run(key);
|
|
30
|
-
}
|
|
31
|
-
async getEnvironmentDatum(key) {
|
|
32
|
-
if (!key) {
|
|
33
|
-
return undefined;
|
|
34
|
-
}
|
|
35
|
-
const stmt = this.db.prepare('SELECT value FROM environment_data WHERE name = ?');
|
|
36
|
-
const row = stmt.get(key);
|
|
37
|
-
return row ? row.value : undefined;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Get all environment data.
|
|
41
|
-
*/
|
|
42
|
-
async getEnvironmentData() {
|
|
43
|
-
const result = {};
|
|
44
|
-
const stmt = this.db.prepare('SELECT name, value FROM environment_data');
|
|
45
|
-
const rows = stmt.all();
|
|
46
|
-
for (const row of rows) {
|
|
47
|
-
result[row.name] = row.value;
|
|
48
|
-
}
|
|
49
|
-
return result;
|
|
50
|
-
}
|
|
51
|
-
async setMetadata(flowMetadata) {
|
|
52
|
-
// Check if the flow already exists.
|
|
53
|
-
const existingFlowStmt = this.db.prepare('SELECT id FROM flow_metadata WHERE id = ?');
|
|
54
|
-
const existingFlow = existingFlowStmt.get(flowMetadata.id);
|
|
55
|
-
// Start a transaction for data consistency.
|
|
56
|
-
const transaction = this.db.transaction(() => {
|
|
57
|
-
if (existingFlow) {
|
|
58
|
-
// If flow exists, use UPDATE instead of REPLACE to avoid triggering ON DELETE CASCADE.
|
|
59
|
-
const updateStmt = this.db.prepare('UPDATE flow_metadata SET name = ?, metadata = ?, created_at = ?, run_mode = ?, state = ? WHERE id = ?');
|
|
60
|
-
updateStmt.run(flowMetadata.name, JSON.stringify(flowMetadata), flowMetadata.startedAt || new Date().getTime(), flowMetadata.runMode, flowMetadata.state, flowMetadata.id);
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
// If it is a new flow, use INSERT.
|
|
64
|
-
const insertStmt = this.db.prepare('INSERT INTO flow_metadata (id, name, metadata, created_at, run_mode, state) VALUES (?, ?, ?, ?, ?, ?)');
|
|
65
|
-
insertStmt.run(flowMetadata.id, flowMetadata.name, JSON.stringify(flowMetadata), flowMetadata.startedAt || new Date().getTime(), flowMetadata.runMode, flowMetadata.state);
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
transaction();
|
|
69
|
-
}
|
|
70
|
-
async getMetadataByFlowId(flowId) {
|
|
71
|
-
const stmt = this.db.prepare('SELECT metadata FROM flow_metadata WHERE id = ?');
|
|
72
|
-
const row = stmt.get(flowId);
|
|
73
|
-
if (!row) {
|
|
74
|
-
throw FlowNotFoundException_1.FlowNotFoundException.forId(flowId);
|
|
75
|
-
}
|
|
76
|
-
return JSON.parse(row.metadata);
|
|
77
|
-
}
|
|
78
|
-
async getMetadataByFlowName(flowName) {
|
|
79
|
-
const stmt = this.db.prepare('SELECT metadata FROM flow_metadata WHERE name = ? LIMIT 1');
|
|
80
|
-
const row = stmt.get(flowName);
|
|
81
|
-
if (!row) {
|
|
82
|
-
throw FlowNotFoundException_1.FlowNotFoundException.forName(flowName);
|
|
83
|
-
}
|
|
84
|
-
return JSON.parse(row.metadata);
|
|
85
|
-
}
|
|
86
|
-
async saveScreenShot(flowId, bytes) {
|
|
87
|
-
// Ensure flow exists.
|
|
88
|
-
await this.getMetadataByFlowId(flowId);
|
|
89
|
-
const imageType = MiscUtils_1.MiscUtils.detectImageType(bytes);
|
|
90
|
-
const mimeType = `image/${imageType}`;
|
|
91
|
-
// Generate a unique filename.
|
|
92
|
-
const fileId = `${new Date().toISOString()}.screenshot.${imageType}`;
|
|
93
|
-
const binaryId = `${flowId}-${fileId}`;
|
|
94
|
-
const stmt = this.db.prepare('INSERT INTO binary_files (id, flow_id, file_id, mime_type, content) VALUES (?, ?, ?, ?, ?)');
|
|
95
|
-
stmt.run(binaryId, flowId, fileId, mimeType, bytes);
|
|
96
|
-
return fileId;
|
|
97
|
-
}
|
|
98
|
-
async getScreenShot(flowId, screenShotId) {
|
|
99
|
-
const stmt = this.db.prepare('SELECT mime_type, content FROM binary_files WHERE flow_id = ? AND file_id = ?');
|
|
100
|
-
const row = stmt.get(flowId, screenShotId);
|
|
101
|
-
if (row && row.mime_type.startsWith('image')) {
|
|
102
|
-
return row.content;
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
return null;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
async saveToolCall(flowId, toolCall) {
|
|
109
|
-
const stmt = this.db.prepare('INSERT OR REPLACE INTO tool_calls (id, flow_id, created_at, tool_call) VALUES (?, ?, ?, ?)');
|
|
110
|
-
stmt.run(toolCall.id, flowId, toolCall.startedAt, JSON.stringify(toolCall));
|
|
111
|
-
}
|
|
112
|
-
async getToolCalls(flowId) {
|
|
113
|
-
// Check if flow exists
|
|
114
|
-
await this.getMetadataByFlowId(flowId);
|
|
115
|
-
const stmt = this.db.prepare('SELECT tool_call FROM tool_calls WHERE flow_id = ? ORDER BY created_at');
|
|
116
|
-
const rows = stmt.all(flowId);
|
|
117
|
-
return rows.map((row) => JSON.parse(row.tool_call));
|
|
118
|
-
}
|
|
119
|
-
async getFlows(query) {
|
|
120
|
-
// Sanitize inputs
|
|
121
|
-
const validLimit = Math.max(1, Math.min(100, query.limit || 100));
|
|
122
|
-
const offset = query.pageToken ? parseInt(query.pageToken, 10) || 0 : 0;
|
|
123
|
-
// Build the WHERE clause dynamically based on query parameters
|
|
124
|
-
let whereConditions = [];
|
|
125
|
-
let params = [];
|
|
126
|
-
if (query.name) {
|
|
127
|
-
whereConditions.push('name = ?');
|
|
128
|
-
params.push(query.name);
|
|
129
|
-
}
|
|
130
|
-
if (query.runMode) {
|
|
131
|
-
whereConditions.push('run_mode = ?');
|
|
132
|
-
params.push(query.runMode);
|
|
133
|
-
}
|
|
134
|
-
if (query.state) {
|
|
135
|
-
whereConditions.push('state = ?');
|
|
136
|
-
params.push(query.state);
|
|
137
|
-
}
|
|
138
|
-
// Add startedAfter condition if provided
|
|
139
|
-
if (query.startedAfter !== undefined) {
|
|
140
|
-
whereConditions.push('created_at >= ?');
|
|
141
|
-
params.push(query.startedAfter);
|
|
142
|
-
}
|
|
143
|
-
// Add startedBefore condition if provided
|
|
144
|
-
if (query.startedBefore !== undefined) {
|
|
145
|
-
whereConditions.push('created_at <= ?');
|
|
146
|
-
params.push(query.startedBefore);
|
|
147
|
-
}
|
|
148
|
-
// Build the full SQL query
|
|
149
|
-
let sql = 'SELECT metadata FROM flow_metadata';
|
|
150
|
-
if (whereConditions.length > 0) {
|
|
151
|
-
sql += ' WHERE ' + whereConditions.join(' AND ');
|
|
152
|
-
}
|
|
153
|
-
// Always order by created_at descending
|
|
154
|
-
sql += ' ORDER BY created_at DESC LIMIT ? OFFSET ?';
|
|
155
|
-
// Add limit and offset to params
|
|
156
|
-
params.push(validLimit + 1);
|
|
157
|
-
params.push(offset);
|
|
158
|
-
// Execute the query with parameters
|
|
159
|
-
const stmt = this.db.prepare(sql);
|
|
160
|
-
const rows = stmt.all(...params);
|
|
161
|
-
// Check if there are more results by fetching one extra
|
|
162
|
-
const hasMore = rows.length > validLimit;
|
|
163
|
-
const results = hasMore ? rows.slice(0, validLimit) : rows;
|
|
164
|
-
// Generate next token if needed
|
|
165
|
-
const nextPageToken = hasMore ? `${offset + validLimit}` : undefined;
|
|
166
|
-
return {
|
|
167
|
-
items: results.map((row) => JSON.parse(row.metadata)),
|
|
168
|
-
nextPageToken,
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
async setVideo(flowId, bytes) {
|
|
172
|
-
// Ensure flow exists.
|
|
173
|
-
await this.getMetadataByFlowId(flowId);
|
|
174
|
-
const binaryId = `${flowId}-${FlowsPersistenceSqlite.VIDEO_FILE_ID}`;
|
|
175
|
-
const stmt = this.db.prepare('INSERT OR REPLACE INTO binary_files (id, flow_id, file_id, mime_type, content) VALUES (?, ?, ?, ?, ?)');
|
|
176
|
-
stmt.run(binaryId, flowId, FlowsPersistenceSqlite.VIDEO_FILE_ID, FlowsPersistenceSqlite.VIDEO_MIME_TYPE, bytes);
|
|
177
|
-
}
|
|
178
|
-
async getVideoSegment(flowId, startOffset, length) {
|
|
179
|
-
const stmt = this.db.prepare('SELECT content FROM binary_files WHERE flow_id = ? AND file_id = ?');
|
|
180
|
-
const row = stmt.get(flowId, FlowsPersistenceSqlite.VIDEO_FILE_ID);
|
|
181
|
-
if (!row) {
|
|
182
|
-
return null;
|
|
183
|
-
}
|
|
184
|
-
const videoBuffer = row.content;
|
|
185
|
-
const totalLength = videoBuffer.length;
|
|
186
|
-
if (startOffset >= totalLength) {
|
|
187
|
-
return null;
|
|
188
|
-
}
|
|
189
|
-
const adjustedLength = Math.min(length, totalLength - startOffset);
|
|
190
|
-
const segmentBuffer = Buffer.alloc(adjustedLength);
|
|
191
|
-
// Copy the segment from the full video buffer.
|
|
192
|
-
videoBuffer.copy(segmentBuffer, 0, startOffset, startOffset + adjustedLength);
|
|
193
|
-
return {
|
|
194
|
-
bytes: segmentBuffer,
|
|
195
|
-
totalLength: totalLength,
|
|
196
|
-
startOffset: startOffset,
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
async getFlowFile(flowId, fileId) {
|
|
200
|
-
const stmt = this.db.prepare('SELECT content FROM binary_files WHERE flow_id = ? AND file_id = ?');
|
|
201
|
-
const row = stmt.get(flowId, fileId);
|
|
202
|
-
return row ? row.content : null;
|
|
203
|
-
}
|
|
204
|
-
async setFlowFile(flowId, fileId, fileBytes) {
|
|
205
|
-
// Ensure flow exists
|
|
206
|
-
await this.getMetadataByFlowId(flowId);
|
|
207
|
-
const binaryId = `${flowId}-${fileId}`;
|
|
208
|
-
const mimeType = this.getMimeTypeFromFileId(fileId);
|
|
209
|
-
const stmt = this.db.prepare('INSERT OR REPLACE INTO binary_files (id, flow_id, file_id, mime_type, content) VALUES (?, ?, ?, ?, ?)');
|
|
210
|
-
stmt.run(binaryId, flowId, fileId, mimeType, fileBytes);
|
|
211
|
-
}
|
|
212
|
-
async setBrowserState(flowId, browserState) {
|
|
213
|
-
const serializedBrowserState = Buffer.from(JSON.stringify(browserState), 'utf-8');
|
|
214
|
-
await this.setFlowFile(flowId, FlowsPersistenceSqlite.BROWSER_STATE_FILE_ID, serializedBrowserState);
|
|
215
|
-
}
|
|
216
|
-
async getBrowserState(flowId) {
|
|
217
|
-
const browserStateRaw = await this.getFlowFile(flowId, FlowsPersistenceSqlite.BROWSER_STATE_FILE_ID);
|
|
218
|
-
if (browserStateRaw) {
|
|
219
|
-
const browserState = JsonUtils_1.JsonUtils.jsonStringToJsonObject(browserStateRaw.toString('utf-8'));
|
|
220
|
-
if (browserState) {
|
|
221
|
-
return browserState;
|
|
222
|
-
}
|
|
223
|
-
else {
|
|
224
|
-
throw new Error(`Cannot load malformed browser state from flow ${flowId}`);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
else {
|
|
228
|
-
return null;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
async deleteFlow(flowId) {
|
|
232
|
-
// Delete from database with cascading delete to related tables
|
|
233
|
-
const stmt = this.db.prepare('DELETE FROM flow_metadata WHERE id = ?');
|
|
234
|
-
stmt.run(flowId);
|
|
235
|
-
}
|
|
236
|
-
// Database management
|
|
237
|
-
close() {
|
|
238
|
-
this.db.close();
|
|
239
|
-
}
|
|
240
|
-
// Utility functions
|
|
241
|
-
getMimeTypeFromFileId(fileId) {
|
|
242
|
-
if (fileId.endsWith('.png'))
|
|
243
|
-
return 'image/png';
|
|
244
|
-
if (fileId.endsWith('.jpg') || fileId.endsWith('.jpeg'))
|
|
245
|
-
return 'image/jpeg';
|
|
246
|
-
if (fileId.endsWith('.webm'))
|
|
247
|
-
return 'video/webm';
|
|
248
|
-
if (fileId.endsWith('.mp4'))
|
|
249
|
-
return 'video/mp4';
|
|
250
|
-
if (fileId.endsWith('.json'))
|
|
251
|
-
return 'application/json';
|
|
252
|
-
return 'application/octet-stream';
|
|
253
|
-
}
|
|
254
|
-
// Adds possibility to vacuum/optimize the database
|
|
255
|
-
async optimize() {
|
|
256
|
-
this.db.pragma('vacuum');
|
|
257
|
-
this.db.pragma('optimize');
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
exports.FlowsPersistenceSqlite = FlowsPersistenceSqlite;
|
|
261
|
-
FlowsPersistenceSqlite.VIDEO_MIME_TYPE = 'video/webm';
|
|
262
|
-
FlowsPersistenceSqlite.BROWSER_STATE_FILE_ID = 'browserstate.json';
|
|
263
|
-
FlowsPersistenceSqlite.VIDEO_FILE_ID = 'video.webm';
|
|
264
|
-
//# sourceMappingURL=FlowsPersistenceSqlite.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FlowsPersistenceSqlite.js","sourceRoot":"","sources":["../../src/persistence/FlowsPersistenceSqlite.ts"],"names":[],"mappings":";;;AAKA,+EAA4E;AAE5E,kDAA+C;AAC/C,kDAA+C;AAG/C;;GAEG;AACH,MAAa,sBAAsB;IAKjC,YAAqC,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAEvD,MAAM,CAAC,KAAK,CAAC,MAAM,CACxB,EAAqB;QAErB,OAAO,IAAI,sBAAsB,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,GAAW,EAAE,KAAa;QACzD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,qEAAqE,CACtE,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,GAAW;QAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,wBAAwB;QAClC,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;QAC5E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,GAAW;QAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,mDAAmD,CACpD,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAkC,CAAC;QAC3D,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,kBAAkB;QAC7B,MAAM,MAAM,GAA2B,EAAE,CAAC;QAE1C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAuC,CAAC;QAE7D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;QAC/B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,YAA0B;QACjD,oCAAoC;QACpC,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACtC,2CAA2C,CAC5C,CAAC;QACF,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAE3D,4CAA4C;QAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAC3C,IAAI,YAAY,EAAE,CAAC;gBACjB,uFAAuF;gBACvF,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAChC,uGAAuG,CACxG,CAAC;gBAEF,UAAU,CAAC,GAAG,CACZ,YAAY,CAAC,IAAI,EACjB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAC5B,YAAY,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,EAC9C,YAAY,CAAC,OAAO,EACpB,YAAY,CAAC,KAAK,EAClB,YAAY,CAAC,EAAE,CAChB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,mCAAmC;gBACnC,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAChC,uGAAuG,CACxG,CAAC;gBAEF,UAAU,CAAC,GAAG,CACZ,YAAY,CAAC,EAAE,EACf,YAAY,CAAC,IAAI,EACjB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAC5B,YAAY,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,EAC9C,YAAY,CAAC,OAAO,EACpB,YAAY,CAAC,KAAK,CACnB,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,WAAW,EAAE,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,MAAc;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,iDAAiD,CAClD,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAId,CAAC;QAEd,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,6CAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAiB,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,QAAgB;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,2DAA2D,CAC5D,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAIhB,CAAC;QAEd,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,6CAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAiB,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,KAAa;QACvD,sBAAsB;QACtB,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,qBAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,SAAS,SAAS,EAAE,CAAC;QAEtC,8BAA8B;QAC9B,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,eAAe,SAAS,EAAE,CAAC;QACrE,MAAM,QAAQ,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;QAEvC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,4FAA4F,CAC7F,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAEpD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,MAAc,EACd,YAAoB;QAEpB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,+EAA+E,CAChF,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAE5B,CAAC;QAEd,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,OAAO,GAAG,CAAC,OAAO,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,QAAkB;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,4FAA4F,CAC7F,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9E,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,MAAc;QACtC,uBAAuB;QACvB,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAEvC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,wEAAwE,CACzE,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAA4B,CAAC;QAEzD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAa,CAAC,CAAC;IAClE,CAAC;IAEM,KAAK,CAAC,QAAQ,CACnB,KAAiB;QAEjB,kBAAkB;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAExE,+DAA+D;QAC/D,IAAI,eAAe,GAAa,EAAE,CAAC;QACnC,IAAI,MAAM,GAAU,EAAE,CAAC;QAEvB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,yCAAyC;QACzC,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACrC,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QAED,0CAA0C;QAC1C,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACtC,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACnC,CAAC;QAED,2BAA2B;QAC3B,IAAI,GAAG,GAAG,oCAAoC,CAAC;QAE/C,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,GAAG,IAAI,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QAED,wCAAwC;QACxC,GAAG,IAAI,4CAA4C,CAAC;QAEpD,iCAAiC;QACjC,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEpB,oCAAoC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAA2B,CAAC;QAE3D,wDAAwD;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE3D,gCAAgC;QAChC,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAErE,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAiB,CAAC;YACrE,aAAa;SACd,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,KAAa;QACjD,sBAAsB;QACtB,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAEvC,MAAM,QAAQ,GAAG,GAAG,MAAM,IAAI,sBAAsB,CAAC,aAAa,EAAE,CAAC;QAErE,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,uGAAuG,CACxG,CAAC;QAEF,IAAI,CAAC,GAAG,CACN,QAAQ,EACR,MAAM,EACN,sBAAsB,CAAC,aAAa,EACpC,sBAAsB,CAAC,eAAe,EACtC,KAAK,CACN,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,eAAe,CAC1B,MAAc,EACd,WAAmB,EACnB,MAAc;QAEd,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,oEAAoE,CACrE,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,aAAa,CAEpD,CAAC;QAEd,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC;QAChC,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;QAEvC,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC;QACnE,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEnD,+CAA+C;QAC/C,WAAW,CAAC,IAAI,CACd,aAAa,EACb,CAAC,EACD,WAAW,EACX,WAAW,GAAG,cAAc,CAC7B,CAAC;QAEF,OAAO;YACL,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE,WAAW;SACF,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,WAAW,CACtB,MAAc,EACd,MAAc;QAEd,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,oEAAoE,CACrE,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAoC,CAAC;QAExE,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,WAAW,CACtB,MAAc,EACd,MAAc,EACd,SAAiB;QAEjB,qBAAqB;QACrB,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAEvC,MAAM,QAAQ,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,uGAAuG,CACxG,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,MAAc,EACd,YAAiC;QAEjC,MAAM,sBAAsB,GAAG,MAAM,CAAC,IAAI,CACxC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAC5B,OAAO,CACR,CAAC;QAEF,MAAM,IAAI,CAAC,WAAW,CACpB,MAAM,EACN,sBAAsB,CAAC,qBAAqB,EAC5C,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc;QAClC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW,CAC5C,MAAM,EACN,sBAAsB,CAAC,qBAAqB,CAC7C,CAAC;QAEF,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,YAAY,GAAG,qBAAS,CAAC,sBAAsB,CACnD,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAClC,CAAC;YAEF,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,YAAmC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,iDAAiD,MAAM,EAAE,CAC1D,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,MAAc;QACpC,+DAA+D;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;QACvE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IAED,sBAAsB;IACf,KAAK;QACV,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAED,oBAAoB;IACZ,qBAAqB,CAAC,MAAc;QAC1C,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,WAAW,CAAC;QAChD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YACrD,OAAO,YAAY,CAAC;QACtB,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,YAAY,CAAC;QAClD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,WAAW,CAAC;QAChD,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,kBAAkB,CAAC;QACxD,OAAO,0BAA0B,CAAC;IACpC,CAAC;IAED,mDAAmD;IAC5C,KAAK,CAAC,QAAQ;QACnB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC;;AAzaH,wDA0aC;AAzayB,sCAAe,GAAG,YAAY,CAAC;AAC/B,4CAAqB,GAAG,mBAAmB,CAAC;AAC5C,oCAAa,GAAG,YAAY,CAAC"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { FlowMetadata, FlowsQuery } from '../models/FlowMetadata';
|
|
2
|
-
import { ToolCall } from '../models/ToolCall';
|
|
3
|
-
import { VideoSegment } from '../models/VideoSegment';
|
|
4
|
-
import { FlowsPersistence } from './FlowsPersistence';
|
|
5
|
-
import { SupabaseClient } from '../clients/SupabaseClient';
|
|
6
|
-
import { BrowserStorageState } from '../models/BrowserStorageState';
|
|
7
|
-
import { PaginatedResult } from '../models/PaginatedResult';
|
|
8
|
-
/**
|
|
9
|
-
* A persistence implementation that uses Supabase for storage via
|
|
10
|
-
* its PostgREST endpoints. This implementation assumes that row-Level Security (RLS) is enabled and
|
|
11
|
-
* enforced by Supabase.
|
|
12
|
-
*/
|
|
13
|
-
export declare class FlowsPersistenceSupabase implements FlowsPersistence {
|
|
14
|
-
private readonly supabaseHttpClient;
|
|
15
|
-
private static readonly ENVIRONMENT_DATA_TABLE;
|
|
16
|
-
private static readonly FLOW_METADATA_TABLE;
|
|
17
|
-
private static readonly BROWSER_STATE_FILENAME;
|
|
18
|
-
private static readonly TOOL_CALLS_TABLE;
|
|
19
|
-
private static readonly FLOW_FILES_TABLE;
|
|
20
|
-
constructor(supabaseHttpClient: SupabaseClient);
|
|
21
|
-
setEnvironmentDatum(key: string, value: string): Promise<void>;
|
|
22
|
-
deleteEnvironmentDatum(key: string): Promise<void>;
|
|
23
|
-
getEnvironmentDatum(key: string): Promise<string | undefined>;
|
|
24
|
-
getEnvironmentData(): Promise<Record<string, string>>;
|
|
25
|
-
setMetadata(flowMetadata: FlowMetadata): Promise<void>;
|
|
26
|
-
getMetadataByFlowId(flowId: string): Promise<FlowMetadata>;
|
|
27
|
-
/**
|
|
28
|
-
* Get flow metadata by name using the indexed name column
|
|
29
|
-
*/
|
|
30
|
-
getMetadataByFlowName(flowName: string): Promise<FlowMetadata>;
|
|
31
|
-
saveScreenShot(flowId: string, bytes: Buffer): Promise<string>;
|
|
32
|
-
getScreenShot(flowId: string, screenShotId: string): Promise<Buffer | null>;
|
|
33
|
-
saveToolCall(flowId: string, toolCall: ToolCall): Promise<void>;
|
|
34
|
-
getToolCalls(flowId: string): Promise<ToolCall[]>;
|
|
35
|
-
getFlows(query: FlowsQuery): Promise<PaginatedResult<FlowMetadata>>;
|
|
36
|
-
setVideo(flowId: string, bytes: Buffer): Promise<void>;
|
|
37
|
-
getVideoSegment(flowId: string, startOffset: number, length: number): Promise<VideoSegment | null>;
|
|
38
|
-
getFlowFile(flowId: string, fileId: string): Promise<Buffer | null>;
|
|
39
|
-
setFlowFile(flowId: string, fileId: string, fileBytes: Buffer): Promise<void>;
|
|
40
|
-
setBrowserState(flowId: string, browserState: BrowserStorageState): Promise<void>;
|
|
41
|
-
getBrowserState(flowId: string): Promise<BrowserStorageState | null>;
|
|
42
|
-
deleteFlow(flowId: string): Promise<void>;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=FlowsPersistenceSupabase.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FlowsPersistenceSupabase.d.ts","sourceRoot":"","sources":["../../src/persistence/FlowsPersistenceSupabase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FlowsPersistenceSupabase = void 0;
|
|
4
|
-
const FlowNotFoundException_1 = require("../exceptions/FlowNotFoundException");
|
|
5
|
-
const JsonUtils_1 = require("../utils/JsonUtils");
|
|
6
|
-
const MiscUtils_1 = require("../utils/MiscUtils");
|
|
7
|
-
/**
|
|
8
|
-
* A persistence implementation that uses Supabase for storage via
|
|
9
|
-
* its PostgREST endpoints. This implementation assumes that row-Level Security (RLS) is enabled and
|
|
10
|
-
* enforced by Supabase.
|
|
11
|
-
*/
|
|
12
|
-
class FlowsPersistenceSupabase {
|
|
13
|
-
constructor(supabaseHttpClient) {
|
|
14
|
-
this.supabaseHttpClient = supabaseHttpClient;
|
|
15
|
-
}
|
|
16
|
-
async setEnvironmentDatum(key, value) {
|
|
17
|
-
if (!key) {
|
|
18
|
-
throw new Error('Key cannot be empty');
|
|
19
|
-
}
|
|
20
|
-
const root = {
|
|
21
|
-
name: key,
|
|
22
|
-
value: value,
|
|
23
|
-
};
|
|
24
|
-
await this.supabaseHttpClient.executeMethod(`rest/v1/${FlowsPersistenceSupabase.ENVIRONMENT_DATA_TABLE}?on_conflict=name`, 'POST', JSON.stringify(root));
|
|
25
|
-
}
|
|
26
|
-
async deleteEnvironmentDatum(key) {
|
|
27
|
-
if (!key) {
|
|
28
|
-
return; // No-op if key is empty
|
|
29
|
-
}
|
|
30
|
-
const encodedKey = encodeURIComponent(key);
|
|
31
|
-
await this.supabaseHttpClient.executeMethod(`rest/v1/${FlowsPersistenceSupabase.ENVIRONMENT_DATA_TABLE}?name=eq.${encodedKey}`, 'DELETE');
|
|
32
|
-
}
|
|
33
|
-
async getEnvironmentDatum(key) {
|
|
34
|
-
if (!key) {
|
|
35
|
-
return undefined;
|
|
36
|
-
}
|
|
37
|
-
const encodedKey = encodeURIComponent(key);
|
|
38
|
-
const response = await this.supabaseHttpClient.executeGet(`rest/v1/${FlowsPersistenceSupabase.ENVIRONMENT_DATA_TABLE}?name=eq.${encodedKey}&select=value`);
|
|
39
|
-
if (!response) {
|
|
40
|
-
return undefined;
|
|
41
|
-
}
|
|
42
|
-
const records = JSON.parse(response);
|
|
43
|
-
if (records.length === 0) {
|
|
44
|
-
return undefined;
|
|
45
|
-
}
|
|
46
|
-
return records[0].value;
|
|
47
|
-
}
|
|
48
|
-
async getEnvironmentData() {
|
|
49
|
-
const result = {};
|
|
50
|
-
const response = await this.supabaseHttpClient.executeGet(`rest/v1/${FlowsPersistenceSupabase.ENVIRONMENT_DATA_TABLE}?select=name,value`);
|
|
51
|
-
if (!response) {
|
|
52
|
-
return result;
|
|
53
|
-
}
|
|
54
|
-
const records = JSON.parse(response);
|
|
55
|
-
for (const record of records) {
|
|
56
|
-
result[record.name] = record.value;
|
|
57
|
-
}
|
|
58
|
-
return result;
|
|
59
|
-
}
|
|
60
|
-
async setMetadata(flowMetadata) {
|
|
61
|
-
const startedAtEpochMs = flowMetadata.startedAt || new Date().getTime();
|
|
62
|
-
const root = {
|
|
63
|
-
id: flowMetadata.id,
|
|
64
|
-
startedat: startedAtEpochMs,
|
|
65
|
-
runmode: flowMetadata.runMode,
|
|
66
|
-
state: flowMetadata.state,
|
|
67
|
-
name: flowMetadata.name,
|
|
68
|
-
jsonrecord: flowMetadata,
|
|
69
|
-
};
|
|
70
|
-
await this.supabaseHttpClient.executeMethod(`rest/v1/${FlowsPersistenceSupabase.FLOW_METADATA_TABLE}?on_conflict=id`, 'POST', JSON.stringify(root));
|
|
71
|
-
}
|
|
72
|
-
async getMetadataByFlowId(flowId) {
|
|
73
|
-
const response = await this.supabaseHttpClient.executeGet(`rest/v1/${FlowsPersistenceSupabase.FLOW_METADATA_TABLE}?id=eq.${flowId}`);
|
|
74
|
-
if (!response) {
|
|
75
|
-
throw FlowNotFoundException_1.FlowNotFoundException.forId(flowId);
|
|
76
|
-
}
|
|
77
|
-
const records = JSON.parse(response);
|
|
78
|
-
if (records.length === 0) {
|
|
79
|
-
throw FlowNotFoundException_1.FlowNotFoundException.forId(flowId);
|
|
80
|
-
}
|
|
81
|
-
return records[0].jsonrecord;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Get flow metadata by name using the indexed name column
|
|
85
|
-
*/
|
|
86
|
-
async getMetadataByFlowName(flowName) {
|
|
87
|
-
if (!flowName) {
|
|
88
|
-
throw FlowNotFoundException_1.FlowNotFoundException.forName(flowName);
|
|
89
|
-
}
|
|
90
|
-
// Use the indexed name column for direct lookup.
|
|
91
|
-
const encodedName = encodeURIComponent(flowName);
|
|
92
|
-
const response = await this.supabaseHttpClient.executeGet(`rest/v1/${FlowsPersistenceSupabase.FLOW_METADATA_TABLE}?name=eq.${encodedName}`);
|
|
93
|
-
if (!response) {
|
|
94
|
-
throw FlowNotFoundException_1.FlowNotFoundException.forName(flowName);
|
|
95
|
-
}
|
|
96
|
-
const records = JSON.parse(response);
|
|
97
|
-
if (records.length === 0) {
|
|
98
|
-
throw FlowNotFoundException_1.FlowNotFoundException.forName(flowName);
|
|
99
|
-
}
|
|
100
|
-
return records[0].jsonrecord;
|
|
101
|
-
}
|
|
102
|
-
async saveScreenShot(flowId, bytes) {
|
|
103
|
-
const imageType = MiscUtils_1.MiscUtils.detectImageType(bytes);
|
|
104
|
-
const fileId = `${new Date().toISOString()}.screenshot.${imageType}`;
|
|
105
|
-
await this.setFlowFile(flowId, fileId, bytes);
|
|
106
|
-
return fileId;
|
|
107
|
-
}
|
|
108
|
-
async getScreenShot(flowId, screenShotId) {
|
|
109
|
-
return this.getFlowFile(flowId, screenShotId);
|
|
110
|
-
}
|
|
111
|
-
async saveToolCall(flowId, toolCall) {
|
|
112
|
-
const root = {
|
|
113
|
-
id: toolCall.id,
|
|
114
|
-
flowid: flowId,
|
|
115
|
-
startedat: toolCall.startedAt,
|
|
116
|
-
jsonrecord: toolCall,
|
|
117
|
-
};
|
|
118
|
-
await this.supabaseHttpClient.executeMethod(`rest/v1/${FlowsPersistenceSupabase.TOOL_CALLS_TABLE}`, 'POST', JSON.stringify(root));
|
|
119
|
-
}
|
|
120
|
-
async getToolCalls(flowId) {
|
|
121
|
-
const response = await this.supabaseHttpClient.executeGet(`rest/v1/${FlowsPersistenceSupabase.TOOL_CALLS_TABLE}?flowid=eq.${flowId}`);
|
|
122
|
-
if (!response) {
|
|
123
|
-
await this.getMetadataByFlowId(flowId); // Verify flow exists
|
|
124
|
-
return [];
|
|
125
|
-
}
|
|
126
|
-
const records = JSON.parse(response);
|
|
127
|
-
const toolCalls = records
|
|
128
|
-
.map((record) => record.jsonrecord)
|
|
129
|
-
.sort((a, b) => a.startedAt - b.startedAt);
|
|
130
|
-
return toolCalls;
|
|
131
|
-
}
|
|
132
|
-
async getFlows(query) {
|
|
133
|
-
const { limit = 20, pageToken, name, runMode, state, startedAfter, startedBefore, } = query || {};
|
|
134
|
-
// Validate and sanitize inputs.
|
|
135
|
-
const validLimit = Math.min(Math.max(1, limit), 100);
|
|
136
|
-
// Create query parameters
|
|
137
|
-
const queryParams = new URLSearchParams();
|
|
138
|
-
// Set ordering by most recent first.
|
|
139
|
-
queryParams.append('order', 'startedat.desc');
|
|
140
|
-
// Set pagination limit.
|
|
141
|
-
queryParams.append('limit', validLimit.toString());
|
|
142
|
-
// Apply offset from page token if available.
|
|
143
|
-
if (pageToken) {
|
|
144
|
-
queryParams.append('offset', pageToken);
|
|
145
|
-
}
|
|
146
|
-
// Add filters for each query parameter
|
|
147
|
-
if (name) {
|
|
148
|
-
queryParams.append('name', `eq.${encodeURIComponent(name)}`);
|
|
149
|
-
}
|
|
150
|
-
if (runMode) {
|
|
151
|
-
queryParams.append('runmode', `eq.${encodeURIComponent(runMode)}`);
|
|
152
|
-
}
|
|
153
|
-
if (state) {
|
|
154
|
-
queryParams.append('state', `eq.${encodeURIComponent(state)}`);
|
|
155
|
-
}
|
|
156
|
-
if (startedAfter !== undefined && startedBefore !== undefined) {
|
|
157
|
-
// Range query with both boundaries.
|
|
158
|
-
queryParams.append('startedat', `gte.${startedAfter},lte.${startedBefore}`);
|
|
159
|
-
}
|
|
160
|
-
else if (startedAfter !== undefined) {
|
|
161
|
-
// Only lower boundary.
|
|
162
|
-
queryParams.append('startedat', `gte.${startedAfter}`);
|
|
163
|
-
}
|
|
164
|
-
else if (startedBefore !== undefined) {
|
|
165
|
-
// Only upper boundary.
|
|
166
|
-
queryParams.append('startedat', `lte.${startedBefore}`);
|
|
167
|
-
}
|
|
168
|
-
// Build the URL with all parameters
|
|
169
|
-
const url = `rest/v1/${FlowsPersistenceSupabase.FLOW_METADATA_TABLE}?${queryParams.toString()}`;
|
|
170
|
-
// Include the total count in headers.
|
|
171
|
-
const response = await this.supabaseHttpClient.executeGet(url, {
|
|
172
|
-
Prefer: 'count=exact',
|
|
173
|
-
});
|
|
174
|
-
if (!response) {
|
|
175
|
-
return { items: [] };
|
|
176
|
-
}
|
|
177
|
-
// Parse the response.
|
|
178
|
-
const records = JSON.parse(response);
|
|
179
|
-
const flows = records.map((record) => record.jsonrecord);
|
|
180
|
-
// Check if we have more results.
|
|
181
|
-
const hasMore = flows.length === validLimit;
|
|
182
|
-
// Calculate next page token (offset).
|
|
183
|
-
const nextOffset = pageToken
|
|
184
|
-
? parseInt(pageToken, 10) + validLimit
|
|
185
|
-
: validLimit;
|
|
186
|
-
return {
|
|
187
|
-
items: flows,
|
|
188
|
-
nextPageToken: hasMore ? nextOffset.toString() : undefined,
|
|
189
|
-
};
|
|
190
|
-
}
|
|
191
|
-
async setVideo(flowId, bytes) {
|
|
192
|
-
await this.setFlowFile(flowId, 'video.webm', bytes);
|
|
193
|
-
}
|
|
194
|
-
async getVideoSegment(flowId, startOffset, length) {
|
|
195
|
-
const video = await this.getFlowFile(flowId, 'video.webm');
|
|
196
|
-
if (!video) {
|
|
197
|
-
return null;
|
|
198
|
-
}
|
|
199
|
-
const totalLength = video.length;
|
|
200
|
-
const adjustedLength = Math.min(length, totalLength - startOffset);
|
|
201
|
-
if (adjustedLength <= 0) {
|
|
202
|
-
return null;
|
|
203
|
-
}
|
|
204
|
-
const segment = video.subarray(startOffset, startOffset + adjustedLength);
|
|
205
|
-
return {
|
|
206
|
-
bytes: segment,
|
|
207
|
-
totalLength: totalLength,
|
|
208
|
-
startOffset: startOffset,
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
async getFlowFile(flowId, fileId) {
|
|
212
|
-
const response = await this.supabaseHttpClient.executeGet(`rest/v1/${FlowsPersistenceSupabase.FLOW_FILES_TABLE}?flowid=eq.${flowId}&id=eq.${encodeURIComponent(fileId)}&select=data`);
|
|
213
|
-
if (!response) {
|
|
214
|
-
await this.getMetadataByFlowId(flowId); // Verify flow exists
|
|
215
|
-
return null;
|
|
216
|
-
}
|
|
217
|
-
const records = JSON.parse(response);
|
|
218
|
-
if (records.length === 0) {
|
|
219
|
-
return null;
|
|
220
|
-
}
|
|
221
|
-
return Buffer.from(records[0].data, 'base64');
|
|
222
|
-
}
|
|
223
|
-
async setFlowFile(flowId, fileId, fileBytes) {
|
|
224
|
-
const root = {
|
|
225
|
-
id: fileId,
|
|
226
|
-
flowid: flowId,
|
|
227
|
-
data: fileBytes.toString('base64'),
|
|
228
|
-
};
|
|
229
|
-
await this.supabaseHttpClient.executeMethod(`rest/v1/${FlowsPersistenceSupabase.FLOW_FILES_TABLE}?on_conflict=id`, 'POST', JSON.stringify(root));
|
|
230
|
-
}
|
|
231
|
-
async setBrowserState(flowId, browserState) {
|
|
232
|
-
const serializedBrowserState = Buffer.from(JSON.stringify(browserState), 'utf-8');
|
|
233
|
-
await this.setFlowFile(flowId, FlowsPersistenceSupabase.BROWSER_STATE_FILENAME, serializedBrowserState);
|
|
234
|
-
}
|
|
235
|
-
async getBrowserState(flowId) {
|
|
236
|
-
const browserStateRaw = await this.getFlowFile(flowId, FlowsPersistenceSupabase.BROWSER_STATE_FILENAME);
|
|
237
|
-
if (browserStateRaw) {
|
|
238
|
-
const browserState = JsonUtils_1.JsonUtils.jsonStringToJsonObject(browserStateRaw.toString('utf-8'));
|
|
239
|
-
if (browserState) {
|
|
240
|
-
return browserState;
|
|
241
|
-
}
|
|
242
|
-
else {
|
|
243
|
-
throw new Error(`Cannot load malformed browser state from flow ${flowId}`);
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
else {
|
|
247
|
-
return null;
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
async deleteFlow(flowId) {
|
|
251
|
-
await this.supabaseHttpClient.executeMethod(`rest/v1/${FlowsPersistenceSupabase.TOOL_CALLS_TABLE}?flowid=eq.${flowId}`, 'DELETE');
|
|
252
|
-
await this.supabaseHttpClient.executeMethod(`rest/v1/${FlowsPersistenceSupabase.FLOW_FILES_TABLE}?flowid=eq.${flowId}`, 'DELETE');
|
|
253
|
-
await this.supabaseHttpClient.executeMethod(`rest/v1/${FlowsPersistenceSupabase.FLOW_METADATA_TABLE}?id=eq.${flowId}`, 'DELETE');
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
exports.FlowsPersistenceSupabase = FlowsPersistenceSupabase;
|
|
257
|
-
FlowsPersistenceSupabase.ENVIRONMENT_DATA_TABLE = 'environment_data_v1';
|
|
258
|
-
FlowsPersistenceSupabase.FLOW_METADATA_TABLE = 'flowmetadatav1';
|
|
259
|
-
FlowsPersistenceSupabase.BROWSER_STATE_FILENAME = 'browserstate.json';
|
|
260
|
-
FlowsPersistenceSupabase.TOOL_CALLS_TABLE = 'toolcallsv1';
|
|
261
|
-
FlowsPersistenceSupabase.FLOW_FILES_TABLE = 'flowfilesv1';
|
|
262
|
-
//# sourceMappingURL=FlowsPersistenceSupabase.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FlowsPersistenceSupabase.js","sourceRoot":"","sources":["../../src/persistence/FlowsPersistenceSupabase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { FlowMetadata, FlowsQuery } from '../models/FlowMetadata';
|
|
2
|
-
import { ToolCall } from '../models/ToolCall';
|
|
3
|
-
import { VideoSegment } from '../models/VideoSegment';
|
|
4
|
-
import { FlowsPersistence } from './FlowsPersistence';
|
|
5
|
-
import { BrowserStorageState } from '../models/BrowserStorageState';
|
|
6
|
-
import { PaginatedResult } from '../models/PaginatedResult';
|
|
7
|
-
/**
|
|
8
|
-
* A volatile (in-memory) implementation of FlowsPersistence.
|
|
9
|
-
*/
|
|
10
|
-
export declare class FlowsPersistenceVolatile implements FlowsPersistence {
|
|
11
|
-
private readonly environmentData;
|
|
12
|
-
private readonly flows;
|
|
13
|
-
private readonly screenshots;
|
|
14
|
-
private readonly toolCalls;
|
|
15
|
-
private readonly videos;
|
|
16
|
-
private readonly files;
|
|
17
|
-
private readonly browserStates;
|
|
18
|
-
setEnvironmentDatum(key: string, value: string): Promise<void>;
|
|
19
|
-
deleteEnvironmentDatum(key: string): Promise<void>;
|
|
20
|
-
getEnvironmentDatum(key: string): Promise<string | undefined>;
|
|
21
|
-
getEnvironmentData(): Promise<Record<string, string>>;
|
|
22
|
-
setMetadata(flowMetadata: FlowMetadata): Promise<void>;
|
|
23
|
-
getMetadataByFlowId(flowId: string): Promise<FlowMetadata>;
|
|
24
|
-
getMetadataByFlowName(flowName: string): Promise<FlowMetadata>;
|
|
25
|
-
saveScreenShot(flowId: string, bytes: Buffer): Promise<string>;
|
|
26
|
-
getScreenShot(flowId: string, screenShotId: string): Promise<Buffer | null>;
|
|
27
|
-
saveToolCall(flowId: string, toolCall: ToolCall): Promise<void>;
|
|
28
|
-
getToolCalls(flowId: string): Promise<ToolCall[]>;
|
|
29
|
-
/**
|
|
30
|
-
* Get flows with pagination and filtering from in-memory storage.
|
|
31
|
-
*/
|
|
32
|
-
getFlows(query: FlowsQuery): Promise<PaginatedResult<FlowMetadata>>;
|
|
33
|
-
setVideo(flowId: string, bytes: Buffer): Promise<void>;
|
|
34
|
-
getVideoSegment(flowId: string, startOffset: number, length: number): Promise<VideoSegment | null>;
|
|
35
|
-
getFlowFile(flowId: string, fileId: string): Promise<Buffer | null>;
|
|
36
|
-
setFlowFile(flowId: string, fileId: string, fileBytes: Buffer): Promise<void>;
|
|
37
|
-
setBrowserState(flowId: string, browserState: BrowserStorageState): Promise<void>;
|
|
38
|
-
getBrowserState(flowId: string): Promise<BrowserStorageState | null>;
|
|
39
|
-
deleteFlow(flowId: string): Promise<void>;
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=FlowsPersistenceVolatile.d.ts.map
|