donobu 3.5.5 → 3.6.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/dist/apis/GptConfigsApi.d.ts.map +1 -1
- package/dist/apis/GptConfigsApi.js +0 -2
- package/dist/apis/GptConfigsApi.js.map +1 -1
- package/dist/assets/donobu-namespace.js +54 -0
- package/dist/assets/interactive-elements-tracker.js +9 -9
- package/dist/assets/page-interactions-tracker.js +21 -22
- package/dist/assets/smart-selector-generator.js +11 -13
- package/dist/bindings/PageInteractionTracker.d.ts.map +1 -1
- package/dist/bindings/PageInteractionTracker.js +1 -0
- package/dist/bindings/PageInteractionTracker.js.map +1 -1
- package/dist/envVars.d.ts +0 -2
- package/dist/envVars.d.ts.map +1 -1
- package/dist/envVars.js +0 -4
- package/dist/envVars.js.map +1 -1
- package/dist/esm/apis/GptConfigsApi.d.ts.map +1 -1
- package/dist/esm/apis/GptConfigsApi.js +0 -2
- package/dist/esm/apis/GptConfigsApi.js.map +1 -1
- package/dist/esm/assets/donobu-namespace.js +54 -0
- package/dist/esm/assets/interactive-elements-tracker.js +9 -9
- package/dist/esm/assets/page-interactions-tracker.js +21 -22
- package/dist/esm/assets/smart-selector-generator.js +11 -13
- package/dist/esm/bindings/PageInteractionTracker.d.ts.map +1 -1
- package/dist/esm/bindings/PageInteractionTracker.js +1 -0
- package/dist/esm/bindings/PageInteractionTracker.js.map +1 -1
- package/dist/esm/envVars.d.ts +0 -2
- package/dist/esm/envVars.d.ts.map +1 -1
- package/dist/esm/envVars.js +0 -4
- package/dist/esm/envVars.js.map +1 -1
- package/dist/esm/lib/PageAi.d.ts +1 -1
- package/dist/esm/lib/PageAi.js +1 -1
- package/dist/esm/lib/PageAi.js.map +1 -1
- package/dist/esm/lib/createDonobuExtendedPage.js +1 -1
- package/dist/esm/lib/createDonobuExtendedPage.js.map +1 -1
- package/dist/esm/lib/fixtures/gptClients.d.ts +7 -61
- package/dist/esm/lib/fixtures/gptClients.d.ts.map +1 -1
- package/dist/esm/lib/fixtures/gptClients.js +48 -160
- package/dist/esm/lib/fixtures/gptClients.js.map +1 -1
- package/dist/esm/lib/utils/donobuTestStack.d.ts +4 -2
- package/dist/esm/lib/utils/donobuTestStack.d.ts.map +1 -1
- package/dist/esm/lib/utils/donobuTestStack.js +1 -1
- package/dist/esm/lib/utils/donobuTestStack.js.map +1 -1
- package/dist/esm/managers/AdminApiController.d.ts +1 -5
- package/dist/esm/managers/AdminApiController.d.ts.map +1 -1
- package/dist/esm/managers/AdminApiController.js +0 -13
- package/dist/esm/managers/AdminApiController.js.map +1 -1
- package/dist/esm/managers/AgentsManager.d.ts +1 -17
- package/dist/esm/managers/AgentsManager.d.ts.map +1 -1
- package/dist/esm/managers/AgentsManager.js +1 -64
- package/dist/esm/managers/AgentsManager.js.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.d.ts +13 -40
- package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.js +45 -316
- package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/esm/managers/DonobuStack.d.ts +4 -2
- package/dist/esm/managers/DonobuStack.d.ts.map +1 -1
- package/dist/esm/managers/DonobuStack.js +3 -3
- package/dist/esm/managers/DonobuStack.js.map +1 -1
- package/dist/esm/managers/EnvDataManager.d.ts +11 -0
- package/dist/esm/managers/EnvDataManager.d.ts.map +1 -1
- package/dist/esm/managers/EnvDataManager.js +20 -0
- package/dist/esm/managers/EnvDataManager.js.map +1 -1
- package/dist/esm/managers/FlowCatalog.d.ts +29 -0
- package/dist/esm/managers/FlowCatalog.d.ts.map +1 -0
- package/dist/esm/managers/FlowCatalog.js +153 -0
- package/dist/esm/managers/FlowCatalog.js.map +1 -0
- package/dist/esm/managers/FlowDependencyResolver.d.ts +20 -0
- package/dist/esm/managers/FlowDependencyResolver.d.ts.map +1 -0
- package/dist/esm/managers/FlowDependencyResolver.js +101 -0
- package/dist/esm/managers/FlowDependencyResolver.js.map +1 -0
- package/dist/esm/managers/FlowRuntime.d.ts +18 -0
- package/dist/esm/managers/FlowRuntime.d.ts.map +1 -0
- package/dist/esm/managers/FlowRuntime.js +33 -0
- package/dist/esm/managers/FlowRuntime.js.map +1 -0
- package/dist/esm/managers/GptConfigsManager.d.ts +1 -8
- package/dist/esm/managers/GptConfigsManager.d.ts.map +1 -1
- package/dist/esm/managers/GptConfigsManager.js +1 -177
- package/dist/esm/managers/GptConfigsManager.js.map +1 -1
- package/dist/esm/managers/PageInspector.d.ts +1 -1
- package/dist/esm/managers/PageInspector.js +1 -1
- package/dist/esm/models/FlowHandle.d.ts +12 -0
- package/dist/esm/models/FlowHandle.d.ts.map +1 -0
- package/dist/esm/models/FlowHandle.js +3 -0
- package/dist/esm/models/FlowHandle.js.map +1 -0
- package/dist/esm/tools/InputRandomizedEmailAddressTool.js +2 -2
- package/dist/esm/utils/Logger.d.ts +1 -0
- package/dist/esm/utils/Logger.d.ts.map +1 -1
- package/dist/esm/utils/Logger.js +100 -12
- package/dist/esm/utils/Logger.js.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.d.ts +4 -0
- package/dist/esm/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.js +5 -0
- package/dist/esm/utils/PlaywrightUtils.js.map +1 -1
- package/dist/lib/PageAi.d.ts +1 -1
- package/dist/lib/PageAi.js +1 -1
- package/dist/lib/PageAi.js.map +1 -1
- package/dist/lib/createDonobuExtendedPage.js +1 -1
- package/dist/lib/createDonobuExtendedPage.js.map +1 -1
- package/dist/lib/fixtures/gptClients.d.ts +7 -61
- package/dist/lib/fixtures/gptClients.d.ts.map +1 -1
- package/dist/lib/fixtures/gptClients.js +48 -160
- package/dist/lib/fixtures/gptClients.js.map +1 -1
- package/dist/lib/utils/donobuTestStack.d.ts +4 -2
- package/dist/lib/utils/donobuTestStack.d.ts.map +1 -1
- package/dist/lib/utils/donobuTestStack.js +1 -1
- package/dist/lib/utils/donobuTestStack.js.map +1 -1
- package/dist/managers/AdminApiController.d.ts +1 -5
- package/dist/managers/AdminApiController.d.ts.map +1 -1
- package/dist/managers/AdminApiController.js +0 -13
- package/dist/managers/AdminApiController.js.map +1 -1
- package/dist/managers/AgentsManager.d.ts +1 -17
- package/dist/managers/AgentsManager.d.ts.map +1 -1
- package/dist/managers/AgentsManager.js +1 -64
- package/dist/managers/AgentsManager.js.map +1 -1
- package/dist/managers/DonobuFlowsManager.d.ts +13 -40
- package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/managers/DonobuFlowsManager.js +45 -316
- package/dist/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/managers/DonobuStack.d.ts +4 -2
- package/dist/managers/DonobuStack.d.ts.map +1 -1
- package/dist/managers/DonobuStack.js +3 -3
- package/dist/managers/DonobuStack.js.map +1 -1
- package/dist/managers/EnvDataManager.d.ts +11 -0
- package/dist/managers/EnvDataManager.d.ts.map +1 -1
- package/dist/managers/EnvDataManager.js +20 -0
- package/dist/managers/EnvDataManager.js.map +1 -1
- package/dist/managers/FlowCatalog.d.ts +29 -0
- package/dist/managers/FlowCatalog.d.ts.map +1 -0
- package/dist/managers/FlowCatalog.js +153 -0
- package/dist/managers/FlowCatalog.js.map +1 -0
- package/dist/managers/FlowDependencyResolver.d.ts +20 -0
- package/dist/managers/FlowDependencyResolver.d.ts.map +1 -0
- package/dist/managers/FlowDependencyResolver.js +101 -0
- package/dist/managers/FlowDependencyResolver.js.map +1 -0
- package/dist/managers/FlowRuntime.d.ts +18 -0
- package/dist/managers/FlowRuntime.d.ts.map +1 -0
- package/dist/managers/FlowRuntime.js +33 -0
- package/dist/managers/FlowRuntime.js.map +1 -0
- package/dist/managers/GptConfigsManager.d.ts +1 -8
- package/dist/managers/GptConfigsManager.d.ts.map +1 -1
- package/dist/managers/GptConfigsManager.js +1 -177
- package/dist/managers/GptConfigsManager.js.map +1 -1
- package/dist/managers/PageInspector.d.ts +1 -1
- package/dist/managers/PageInspector.js +1 -1
- package/dist/models/FlowHandle.d.ts +12 -0
- package/dist/models/FlowHandle.d.ts.map +1 -0
- package/dist/models/FlowHandle.js +3 -0
- package/dist/models/FlowHandle.js.map +1 -0
- package/dist/tools/InputRandomizedEmailAddressTool.js +2 -2
- package/dist/utils/Logger.d.ts +1 -0
- package/dist/utils/Logger.d.ts.map +1 -1
- package/dist/utils/Logger.js +100 -12
- package/dist/utils/Logger.js.map +1 -1
- package/dist/utils/PlaywrightUtils.d.ts +4 -0
- package/dist/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/utils/PlaywrightUtils.js +5 -0
- package/dist/utils/PlaywrightUtils.js.map +1 -1
- package/package.json +1 -1
- package/dist/apis/SpecialFlowsApi.d.ts +0 -20
- package/dist/apis/SpecialFlowsApi.d.ts.map +0 -1
- package/dist/apis/SpecialFlowsApi.js +0 -466
- package/dist/apis/SpecialFlowsApi.js.map +0 -1
- package/dist/esm/apis/SpecialFlowsApi.d.ts +0 -20
- package/dist/esm/apis/SpecialFlowsApi.d.ts.map +0 -1
- package/dist/esm/apis/SpecialFlowsApi.js +0 -466
- package/dist/esm/apis/SpecialFlowsApi.js.map +0 -1
|
@@ -42,11 +42,12 @@ export declare function setupDonobuStack(donobuDeploymentEnvironment: DonobuDepl
|
|
|
42
42
|
GOOGLE_GENERATIVE_AI_MODEL_NAME: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
43
43
|
OPENAI_API_KEY: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
44
44
|
OPENAI_API_MODEL_NAME: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
45
|
-
DEFAULT_FLOW_RUNNER_GPT_CONFIG_NAME: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
46
45
|
AWS_S3_BUCKET: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
47
46
|
AWS_S3_REGION: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
48
47
|
AWS_BEDROCK_MODEL_NAME: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
49
48
|
AWS_REGION: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
49
|
+
AWS_ACCESS_KEY_ID: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
50
|
+
AWS_SECRET_ACCESS_KEY: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
50
51
|
DONOBU_API_KEY: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
51
52
|
GOOGLE_CLOUD_STORAGE_BUCKET: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
52
53
|
SUPABASE_JWT_SECRET_KEY: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
@@ -60,11 +61,12 @@ export declare function setupDonobuStack(donobuDeploymentEnvironment: DonobuDepl
|
|
|
60
61
|
GOOGLE_GENERATIVE_AI_MODEL_NAME?: string | undefined;
|
|
61
62
|
OPENAI_API_KEY?: string | undefined;
|
|
62
63
|
OPENAI_API_MODEL_NAME?: string | undefined;
|
|
63
|
-
DEFAULT_FLOW_RUNNER_GPT_CONFIG_NAME?: string | undefined;
|
|
64
64
|
AWS_S3_BUCKET?: string | undefined;
|
|
65
65
|
AWS_S3_REGION?: string | undefined;
|
|
66
66
|
AWS_BEDROCK_MODEL_NAME?: string | undefined;
|
|
67
67
|
AWS_REGION?: string | undefined;
|
|
68
|
+
AWS_ACCESS_KEY_ID?: string | undefined;
|
|
69
|
+
AWS_SECRET_ACCESS_KEY?: string | undefined;
|
|
68
70
|
DONOBU_API_KEY?: string | undefined;
|
|
69
71
|
GOOGLE_CLOUD_STORAGE_BUCKET?: string | undefined;
|
|
70
72
|
SUPABASE_JWT_SECRET_KEY?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DonobuStack.d.ts","sourceRoot":"","sources":["../../src/managers/DonobuStack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAIjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAE5F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAE7F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG;IACxB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,aAAa,EAAE,aAAa,CAAC;IAC7B,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,YAAY,EAAE,kBAAkB,CAAC;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,2BAA2B,EAAE,2BAA2B,EACxD,mBAAmB,EAAE,mBAAmB,EACxC,sBAAsB,CAAC,EAAE,sBAAsB,EAC/C,OAAO
|
|
1
|
+
{"version":3,"file":"DonobuStack.d.ts","sourceRoot":"","sources":["../../src/managers/DonobuStack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAIjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAE5F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAE7F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG;IACxB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,aAAa,EAAE,aAAa,CAAC;IAC7B,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,YAAY,EAAE,kBAAkB,CAAC;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,2BAA2B,EAAE,2BAA2B,EACxD,mBAAmB,EAAE,mBAAmB,EACxC,sBAAsB,CAAC,EAAE,sBAAsB,EAC/C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBN,GACA,OAAO,CAAC,WAAW,CAAC,CAiDtB"}
|
|
@@ -24,14 +24,14 @@ const RequestContextHolder_1 = require("./RequestContextHolder");
|
|
|
24
24
|
* then having this snapshot is relevant so that tests can use normal
|
|
25
25
|
* environment variables.
|
|
26
26
|
*/
|
|
27
|
-
async function setupDonobuStack(donobuDeploymentEnvironment, controlPanelFactory, envPersistenceVolatile, environ = envVars_1.env.pick('ANTHROPIC_API_KEY', 'ANTHROPIC_MODEL_NAME', 'AWS_BEDROCK_MODEL_NAME', 'AWS_S3_BUCKET', 'AWS_S3_REGION', '
|
|
27
|
+
async function setupDonobuStack(donobuDeploymentEnvironment, controlPanelFactory, envPersistenceVolatile, environ = envVars_1.env.pick('ANTHROPIC_API_KEY', 'ANTHROPIC_MODEL_NAME', 'AWS_ACCESS_KEY_ID', 'AWS_BEDROCK_MODEL_NAME', 'AWS_REGION', 'AWS_S3_BUCKET', 'AWS_S3_REGION', 'AWS_SECRET_ACCESS_KEY', 'BASE64_GPT_CONFIG', 'BROWSERBASE_API_KEY', 'BROWSERBASE_PROJECT_ID', 'DONOBU_API_KEY', 'GOOGLE_GENERATIVE_AI_API_KEY', 'GOOGLE_GENERATIVE_AI_MODEL_NAME', 'GOOGLE_CLOUD_STORAGE_BUCKET', 'OPENAI_API_KEY', 'OPENAI_API_MODEL_NAME', 'SUPABASE_JWT_SECRET_KEY')) {
|
|
28
28
|
const gptClientFactory = new GptClientFactory_1.GptClientFactoryImpl();
|
|
29
29
|
const requestContextHolder = new RequestContextHolder_1.RequestContextHolder();
|
|
30
30
|
const sqliteDb = await (0, DonobuSqliteDb_1.getDonobuSqliteDatabase)();
|
|
31
31
|
const gptConfigsPersistence = await GptConfigsPersistenceSqlite_1.GptConfigsPersistenceSqlite.create(sqliteDb);
|
|
32
|
-
const gptConfigsManager = await GptConfigsManager_1.GptConfigsManager.create(gptConfigsPersistence, gptClientFactory
|
|
32
|
+
const gptConfigsManager = await GptConfigsManager_1.GptConfigsManager.create(gptConfigsPersistence, gptClientFactory);
|
|
33
33
|
const agentsPersistence = await AgentsPersistenceSqlite_1.AgentsPersistenceSqlite.create(sqliteDb);
|
|
34
|
-
const agentsManager = await AgentsManager_1.AgentsManager.create(agentsPersistence, gptConfigsManager
|
|
34
|
+
const agentsManager = await AgentsManager_1.AgentsManager.create(agentsPersistence, gptConfigsManager);
|
|
35
35
|
const flowsPersistenceFactory = await FlowsPersistenceFactoryImpl_1.FlowsPersistenceFactoryImpl.fromEnvironment(donobuDeploymentEnvironment, requestContextHolder, environ);
|
|
36
36
|
const envPersistenceFactory = await EnvPersistenceFactoryImpl_1.EnvPersistenceFactoryImpl.fromEnvironment(donobuDeploymentEnvironment, requestContextHolder, envPersistenceVolatile ?? null, environ);
|
|
37
37
|
const envDataManager = new EnvDataManager_1.EnvDataManager(envPersistenceFactory);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DonobuStack.js","sourceRoot":"","sources":["../../src/managers/DonobuStack.ts"],"names":[],"mappings":";;AA2CA,
|
|
1
|
+
{"version":3,"file":"DonobuStack.js","sourceRoot":"","sources":["../../src/managers/DonobuStack.ts"],"names":[],"mappings":";;AA2CA,4CAyEC;AAnHD,kEAAmE;AACnE,wCAAiC;AAIjC,2FAAwF;AACxF,kEAAwE;AACxE,4FAAyF;AAGzF,kGAA+F;AAE/F,uGAAoG;AACpG,mDAAgD;AAChD,6DAA0D;AAC1D,qDAAkD;AAClD,2DAAwD;AACxD,iEAA8D;AAc9D;;;;;;;;;;GAUG;AACI,KAAK,UAAU,gBAAgB,CACpC,2BAAwD,EACxD,mBAAwC,EACxC,sBAA+C,EAC/C,OAAO,GAAG,aAAG,CAAC,IAAI,CAChB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,8BAA8B,EAC9B,iCAAiC,EACjC,6BAA6B,EAC7B,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,CAC1B;IAED,MAAM,gBAAgB,GAAG,IAAI,uCAAoB,EAAE,CAAC;IACpD,MAAM,oBAAoB,GAAG,IAAI,2CAAoB,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,MAAM,IAAA,wCAAuB,GAAE,CAAC;IACjD,MAAM,qBAAqB,GACzB,MAAM,yDAA2B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,iBAAiB,GAAG,MAAM,qCAAiB,CAAC,MAAM,CACtD,qBAAqB,EACrB,gBAAgB,CACjB,CAAC;IACF,MAAM,iBAAiB,GAAG,MAAM,iDAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,MAAM,6BAAa,CAAC,MAAM,CAC9C,iBAAiB,EACjB,iBAAiB,CAClB,CAAC;IACF,MAAM,uBAAuB,GAC3B,MAAM,yDAA2B,CAAC,eAAe,CAC/C,2BAA2B,EAC3B,oBAAoB,EACpB,OAAO,CACR,CAAC;IACJ,MAAM,qBAAqB,GAAG,MAAM,qDAAyB,CAAC,eAAe,CAC3E,2BAA2B,EAC3B,oBAAoB,EACpB,sBAAsB,IAAI,IAAI,EAC9B,OAAO,CACR,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,qBAAqB,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,IAAI,uCAAkB,CACzC,2BAA2B,EAC3B,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,OAAO,CACR,CAAC;IACF,OAAO;QACL,gBAAgB;QAChB,qBAAqB;QACrB,iBAAiB;QACjB,iBAAiB;QACjB,aAAa;QACb,uBAAuB;QACvB,YAAY;QACZ,cAAc;QACd,oBAAoB;KACrB,CAAC;AACJ,CAAC"}
|
|
@@ -42,6 +42,17 @@ export declare class EnvDataManager {
|
|
|
42
42
|
* @returns A record of all environment data where keys are datum keys and values are datum values
|
|
43
43
|
*/
|
|
44
44
|
getEnvironmentData(): Promise<Record<string, string>>;
|
|
45
|
+
/**
|
|
46
|
+
* Returns a dictionary of environment variable values for the provided names.
|
|
47
|
+
* Missing variables are simply omitted so callers can pass optional names
|
|
48
|
+
* without extra guards. Used by flows to hydrate runtime env data from the
|
|
49
|
+
* persisted allow-list.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* await getByNames(["API_KEY", "BASE_URL", "MISSING_VAR"]);
|
|
53
|
+
* // => { API_KEY: "abc123", BASE_URL: "https://example.com" }
|
|
54
|
+
*/
|
|
55
|
+
getByNames(envVarNames: string[]): Promise<Record<string, string>>;
|
|
45
56
|
/**
|
|
46
57
|
* Validates an environment data key against business rules.
|
|
47
58
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvDataManager.d.ts","sourceRoot":"","sources":["../../src/managers/EnvDataManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAGtF;;GAEG;AACH,qBAAa,cAAc;IAYvB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;aACtB,YAAY,EAAE,MAAM;aACpB,cAAc,EAAE,MAAM;IAbxC;;OAEG;IACH,gBAAuB,sBAAsB,OAAO;IAEpD;;OAEG;IACH,gBAAuB,wBAAwB,SAAe;gBAG3C,qBAAqB,EAAE,qBAAqB,EAC7C,YAAY,GAAE,MAA8C,EAC5D,cAAc,GAAE,MAAgD;IAGlF;;;;;;OAMG;IACU,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3E;;;;OAIG;IACU,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/D;;;;;OAKG;IACU,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAuB1E;;;;OAIG;IACU,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAyBlE;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAcnB;;;;OAIG;IACH,OAAO,CAAC,aAAa;CAKtB"}
|
|
1
|
+
{"version":3,"file":"EnvDataManager.d.ts","sourceRoot":"","sources":["../../src/managers/EnvDataManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAGtF;;GAEG;AACH,qBAAa,cAAc;IAYvB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;aACtB,YAAY,EAAE,MAAM;aACpB,cAAc,EAAE,MAAM;IAbxC;;OAEG;IACH,gBAAuB,sBAAsB,OAAO;IAEpD;;OAEG;IACH,gBAAuB,wBAAwB,SAAe;gBAG3C,qBAAqB,EAAE,qBAAqB,EAC7C,YAAY,GAAE,MAA8C,EAC5D,cAAc,GAAE,MAAgD;IAGlF;;;;;;OAMG;IACU,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3E;;;;OAIG;IACU,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/D;;;;;OAKG;IACU,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAuB1E;;;;OAIG;IACU,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAyBlE;;;;;;;;;OASG;IACU,UAAU,CACrB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAalC;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAcnB;;;;OAIG;IACH,OAAO,CAAC,aAAa;CAKtB"}
|
|
@@ -87,6 +87,26 @@ class EnvDataManager {
|
|
|
87
87
|
}
|
|
88
88
|
return result;
|
|
89
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Returns a dictionary of environment variable values for the provided names.
|
|
92
|
+
* Missing variables are simply omitted so callers can pass optional names
|
|
93
|
+
* without extra guards. Used by flows to hydrate runtime env data from the
|
|
94
|
+
* persisted allow-list.
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* await getByNames(["API_KEY", "BASE_URL", "MISSING_VAR"]);
|
|
98
|
+
* // => { API_KEY: "abc123", BASE_URL: "https://example.com" }
|
|
99
|
+
*/
|
|
100
|
+
async getByNames(envVarNames) {
|
|
101
|
+
const result = {};
|
|
102
|
+
for (const envVarName of envVarNames) {
|
|
103
|
+
const envVarValue = await this.getEnvironmentDatum(envVarName);
|
|
104
|
+
if (envVarValue) {
|
|
105
|
+
result[envVarName] = envVarValue;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return result;
|
|
109
|
+
}
|
|
90
110
|
/**
|
|
91
111
|
* Validates an environment data key against business rules.
|
|
92
112
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvDataManager.js","sourceRoot":"","sources":["../../src/managers/EnvDataManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"EnvDataManager.js","sourceRoot":"","sources":["../../src/managers/EnvDataManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { BrowserStorageState } from '../models/BrowserStorageState';
|
|
2
|
+
import type { DonobuDeploymentEnvironment } from '../models/DonobuDeploymentEnvironment';
|
|
3
|
+
import type { FlowMetadata, FlowsQuery } from '../models/FlowMetadata';
|
|
4
|
+
import type { PaginatedResult } from '../models/PaginatedResult';
|
|
5
|
+
import type { ToolCall } from '../models/ToolCall';
|
|
6
|
+
import type { FlowsPersistenceFactory } from '../persistence/flows/FlowsPersistenceFactory';
|
|
7
|
+
import type { FlowRuntime } from './FlowRuntime';
|
|
8
|
+
/**
|
|
9
|
+
* Centralized access layer for flow metadata, tool calls, and browser state.
|
|
10
|
+
*
|
|
11
|
+
* Responsibilities:
|
|
12
|
+
* - Prefer in-memory runtime state when running locally (so callers see live mutations)
|
|
13
|
+
* - Federate reads across all configured persistence layers with simple pagination merge
|
|
14
|
+
* - Provide a single surface for flow metadata, tool call history, browser state, and deletes
|
|
15
|
+
*/
|
|
16
|
+
export declare class FlowCatalog {
|
|
17
|
+
private readonly flowsPersistenceFactory;
|
|
18
|
+
private readonly flowRuntime;
|
|
19
|
+
private readonly deploymentEnvironment;
|
|
20
|
+
constructor(flowsPersistenceFactory: FlowsPersistenceFactory, flowRuntime: FlowRuntime, deploymentEnvironment: DonobuDeploymentEnvironment);
|
|
21
|
+
getFlowById(flowId: string): Promise<FlowMetadata>;
|
|
22
|
+
getFlowByName(flowName: string): Promise<FlowMetadata>;
|
|
23
|
+
getToolCalls(flowId: string): Promise<ToolCall[]>;
|
|
24
|
+
deleteFlow(flowId: string): Promise<void>;
|
|
25
|
+
getBrowserState(flowId: string): Promise<BrowserStorageState | null>;
|
|
26
|
+
getFlows(query: FlowsQuery): Promise<PaginatedResult<FlowMetadata>>;
|
|
27
|
+
private isLocal;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=FlowCatalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowCatalog.d.ts","sourceRoot":"","sources":["../../src/managers/FlowCatalog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAC5F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQjD;;;;;;;GAOG;AACH,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBAFrB,uBAAuB,EAAE,uBAAuB,EAChD,WAAW,EAAE,WAAW,EACxB,qBAAqB,EAAE,2BAA2B;IAGxD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAqBlD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IActD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAwBjD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzC,eAAe,CAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAgBzB,QAAQ,CACnB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IA2DzC,OAAO,CAAC,OAAO;CAGhB"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlowCatalog = void 0;
|
|
4
|
+
const FlowNotFoundException_1 = require("../exceptions/FlowNotFoundException");
|
|
5
|
+
/**
|
|
6
|
+
* Centralized access layer for flow metadata, tool calls, and browser state.
|
|
7
|
+
*
|
|
8
|
+
* Responsibilities:
|
|
9
|
+
* - Prefer in-memory runtime state when running locally (so callers see live mutations)
|
|
10
|
+
* - Federate reads across all configured persistence layers with simple pagination merge
|
|
11
|
+
* - Provide a single surface for flow metadata, tool call history, browser state, and deletes
|
|
12
|
+
*/
|
|
13
|
+
class FlowCatalog {
|
|
14
|
+
constructor(flowsPersistenceFactory, flowRuntime, deploymentEnvironment) {
|
|
15
|
+
this.flowsPersistenceFactory = flowsPersistenceFactory;
|
|
16
|
+
this.flowRuntime = flowRuntime;
|
|
17
|
+
this.deploymentEnvironment = deploymentEnvironment;
|
|
18
|
+
}
|
|
19
|
+
async getFlowById(flowId) {
|
|
20
|
+
if (this.isLocal()) {
|
|
21
|
+
const activeMetadata = this.flowRuntime.metadataFor(flowId);
|
|
22
|
+
if (activeMetadata) {
|
|
23
|
+
return activeMetadata;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
for (const persistence of await this.flowsPersistenceFactory.createPersistenceLayers()) {
|
|
27
|
+
try {
|
|
28
|
+
return await persistence.getFlowMetadataById(flowId);
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
if (!(error instanceof FlowNotFoundException_1.FlowNotFoundException)) {
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
throw FlowNotFoundException_1.FlowNotFoundException.forId(flowId);
|
|
37
|
+
}
|
|
38
|
+
async getFlowByName(flowName) {
|
|
39
|
+
for (const persistence of await this.flowsPersistenceFactory.createPersistenceLayers()) {
|
|
40
|
+
try {
|
|
41
|
+
return await persistence.getFlowMetadataByName(flowName);
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
if (!(error instanceof FlowNotFoundException_1.FlowNotFoundException)) {
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
throw FlowNotFoundException_1.FlowNotFoundException.forName(flowName);
|
|
50
|
+
}
|
|
51
|
+
async getToolCalls(flowId) {
|
|
52
|
+
if (this.isLocal()) {
|
|
53
|
+
const activeHandle = this.flowRuntime.get(flowId);
|
|
54
|
+
if (activeHandle) {
|
|
55
|
+
return [...activeHandle.donobuFlow.invokedToolCalls].sort((a, b) => new Date(a.startedAt).getTime() - new Date(b.startedAt).getTime());
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
for (const persistence of await this.flowsPersistenceFactory.createPersistenceLayers()) {
|
|
59
|
+
try {
|
|
60
|
+
return await persistence.getToolCalls(flowId);
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
if (!(error instanceof FlowNotFoundException_1.FlowNotFoundException)) {
|
|
64
|
+
throw error;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
throw FlowNotFoundException_1.FlowNotFoundException.forId(flowId);
|
|
69
|
+
}
|
|
70
|
+
async deleteFlow(flowId) {
|
|
71
|
+
for (const persistence of await this.flowsPersistenceFactory.createPersistenceLayers()) {
|
|
72
|
+
await persistence.deleteFlow(flowId);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async getBrowserState(flowId) {
|
|
76
|
+
for (const persistence of await this.flowsPersistenceFactory.createPersistenceLayers()) {
|
|
77
|
+
try {
|
|
78
|
+
const browserState = await persistence.getBrowserState(flowId);
|
|
79
|
+
if (browserState) {
|
|
80
|
+
return browserState;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
if (!(error instanceof FlowNotFoundException_1.FlowNotFoundException)) {
|
|
85
|
+
throw error;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
async getFlows(query) {
|
|
92
|
+
const paginationState = parseCompositePageToken(query.pageToken);
|
|
93
|
+
const requestedLimit = Math.min(Math.max(1, query.limit || 100), 100);
|
|
94
|
+
const combinedResults = [];
|
|
95
|
+
const persistenceLayers = await this.flowsPersistenceFactory.createPersistenceLayers();
|
|
96
|
+
for (let i = 0; i < persistenceLayers.length; i++) {
|
|
97
|
+
if (paginationState.exhaustedSources.includes(i)) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
const sourceLimit = Math.min(requestedLimit * 2, 100);
|
|
101
|
+
const sourceQuery = {
|
|
102
|
+
...query,
|
|
103
|
+
limit: sourceLimit,
|
|
104
|
+
pageToken: paginationState.sourceTokens[i],
|
|
105
|
+
};
|
|
106
|
+
const sourceResult = await persistenceLayers[i].getFlowsMetadata(sourceQuery);
|
|
107
|
+
const itemsWithSource = sourceResult.items.map((flow) => ({
|
|
108
|
+
flow,
|
|
109
|
+
sourceIndex: i,
|
|
110
|
+
}));
|
|
111
|
+
combinedResults.push(...itemsWithSource);
|
|
112
|
+
if (sourceResult.nextPageToken) {
|
|
113
|
+
paginationState.sourceTokens[i] = sourceResult.nextPageToken;
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
paginationState.exhaustedSources.push(i);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
combinedResults.sort((a, b) => (b.flow.startedAt || 0) - (a.flow.startedAt || 0));
|
|
120
|
+
const limitedResults = combinedResults.slice(0, requestedLimit);
|
|
121
|
+
const lastTimestamp = limitedResults.length > 0
|
|
122
|
+
? limitedResults[limitedResults.length - 1].flow.startedAt
|
|
123
|
+
: null;
|
|
124
|
+
paginationState.cursorTimestamp = lastTimestamp;
|
|
125
|
+
const hasMore = combinedResults.length > requestedLimit ||
|
|
126
|
+
paginationState.exhaustedSources.length < persistenceLayers.length;
|
|
127
|
+
return {
|
|
128
|
+
items: limitedResults.map((item) => item.flow),
|
|
129
|
+
nextPageToken: hasMore
|
|
130
|
+
? createCompositePageToken(paginationState)
|
|
131
|
+
: undefined,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
isLocal() {
|
|
135
|
+
return this.deploymentEnvironment === 'LOCAL';
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
exports.FlowCatalog = FlowCatalog;
|
|
139
|
+
function createCompositePageToken(state) {
|
|
140
|
+
return Buffer.from(JSON.stringify(state)).toString('base64');
|
|
141
|
+
}
|
|
142
|
+
function parseCompositePageToken(token) {
|
|
143
|
+
if (!token) {
|
|
144
|
+
return { sourceTokens: {}, exhaustedSources: [], cursorTimestamp: null };
|
|
145
|
+
}
|
|
146
|
+
try {
|
|
147
|
+
return JSON.parse(Buffer.from(token, 'base64').toString());
|
|
148
|
+
}
|
|
149
|
+
catch (_error) {
|
|
150
|
+
return { sourceTokens: {}, exhaustedSources: [], cursorTimestamp: null };
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=FlowCatalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowCatalog.js","sourceRoot":"","sources":["../../src/managers/FlowCatalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { FlowCatalog } from './FlowCatalog';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves flow dependencies (for example, browser state references) across persistence layers.
|
|
4
|
+
*
|
|
5
|
+
* Given a set of root flow IDs, this helper discovers transitive dependencies
|
|
6
|
+
* by following `browser.initialState` references (by ID or name) and returns a
|
|
7
|
+
* breadth-first ordered list of all flows that must be present to replay the
|
|
8
|
+
* graph. It defers retrieval and error handling to FlowCatalog, so it stays
|
|
9
|
+
* agnostic of storage concerns.
|
|
10
|
+
*/
|
|
11
|
+
export declare class FlowDependencyResolver {
|
|
12
|
+
private readonly flowCatalog;
|
|
13
|
+
constructor(flowCatalog: FlowCatalog);
|
|
14
|
+
resolveFlowDependencies(initialFlowIds: string[]): Promise<string[]>;
|
|
15
|
+
private shouldReplaceFlowMapping;
|
|
16
|
+
private extractFlowDependencies;
|
|
17
|
+
private resolveIdReference;
|
|
18
|
+
private resolveNameReference;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=FlowDependencyResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowDependencyResolver.d.ts","sourceRoot":"","sources":["../../src/managers/FlowDependencyResolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD;;;;;;;;GAQG;AACH,qBAAa,sBAAsB;IACd,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAE/C,uBAAuB,CAClC,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,MAAM,EAAE,CAAC;YA4CN,wBAAwB;YAaxB,uBAAuB;YAqBvB,kBAAkB;YAWlB,oBAAoB;CAoBnC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlowDependencyResolver = void 0;
|
|
4
|
+
const FlowDependencyAnalyzer_1 = require("./FlowDependencyAnalyzer");
|
|
5
|
+
/**
|
|
6
|
+
* Resolves flow dependencies (for example, browser state references) across persistence layers.
|
|
7
|
+
*
|
|
8
|
+
* Given a set of root flow IDs, this helper discovers transitive dependencies
|
|
9
|
+
* by following `browser.initialState` references (by ID or name) and returns a
|
|
10
|
+
* breadth-first ordered list of all flows that must be present to replay the
|
|
11
|
+
* graph. It defers retrieval and error handling to FlowCatalog, so it stays
|
|
12
|
+
* agnostic of storage concerns.
|
|
13
|
+
*/
|
|
14
|
+
class FlowDependencyResolver {
|
|
15
|
+
constructor(flowCatalog) {
|
|
16
|
+
this.flowCatalog = flowCatalog;
|
|
17
|
+
}
|
|
18
|
+
async resolveFlowDependencies(initialFlowIds) {
|
|
19
|
+
const resolvedFlowIds = new Set();
|
|
20
|
+
const flowsToProcess = [...initialFlowIds];
|
|
21
|
+
const nameToIdMap = new Map();
|
|
22
|
+
while (flowsToProcess.length > 0) {
|
|
23
|
+
const currentFlowId = flowsToProcess.shift();
|
|
24
|
+
if (resolvedFlowIds.has(currentFlowId)) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
const flowMetadata = await this.flowCatalog.getFlowById(currentFlowId);
|
|
29
|
+
resolvedFlowIds.add(currentFlowId);
|
|
30
|
+
if (flowMetadata.name) {
|
|
31
|
+
const existingFlowId = nameToIdMap.get(flowMetadata.name);
|
|
32
|
+
if (!existingFlowId ||
|
|
33
|
+
(await this.shouldReplaceFlowMapping(existingFlowId, currentFlowId))) {
|
|
34
|
+
nameToIdMap.set(flowMetadata.name, currentFlowId);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const dependencies = await this.extractFlowDependencies(flowMetadata, nameToIdMap);
|
|
38
|
+
dependencies.forEach((depId) => {
|
|
39
|
+
if (!resolvedFlowIds.has(depId)) {
|
|
40
|
+
flowsToProcess.push(depId);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
catch (_error) {
|
|
45
|
+
// Skip missing flows but continue resolving others.
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return Array.from(resolvedFlowIds);
|
|
49
|
+
}
|
|
50
|
+
async shouldReplaceFlowMapping(existingFlowId, newFlowId) {
|
|
51
|
+
try {
|
|
52
|
+
const existingFlow = await this.flowCatalog.getFlowById(existingFlowId);
|
|
53
|
+
const newFlow = await this.flowCatalog.getFlowById(newFlowId);
|
|
54
|
+
return FlowDependencyAnalyzer_1.FlowDependencyAnalyzer.shouldReplaceFlow(existingFlow, newFlow);
|
|
55
|
+
}
|
|
56
|
+
catch (_error) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async extractFlowDependencies(flow, nameToIdMap) {
|
|
61
|
+
const initialState = flow.browser?.initialState;
|
|
62
|
+
if (!initialState) {
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
switch (initialState.type) {
|
|
66
|
+
case 'id':
|
|
67
|
+
return this.resolveIdReference(initialState);
|
|
68
|
+
case 'name':
|
|
69
|
+
return this.resolveNameReference(initialState, nameToIdMap);
|
|
70
|
+
case 'json':
|
|
71
|
+
return [];
|
|
72
|
+
default:
|
|
73
|
+
return [];
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async resolveIdReference(initialState) {
|
|
77
|
+
try {
|
|
78
|
+
await this.flowCatalog.getFlowById(initialState.value);
|
|
79
|
+
return [initialState.value];
|
|
80
|
+
}
|
|
81
|
+
catch (_error) {
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async resolveNameReference(initialState, nameToIdMap) {
|
|
86
|
+
const cachedFlowId = nameToIdMap.get(initialState.value);
|
|
87
|
+
if (cachedFlowId) {
|
|
88
|
+
return [cachedFlowId];
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
const dependentFlow = await this.flowCatalog.getFlowByName(initialState.value);
|
|
92
|
+
nameToIdMap.set(initialState.value, dependentFlow.id);
|
|
93
|
+
return [dependentFlow.id];
|
|
94
|
+
}
|
|
95
|
+
catch (_error) {
|
|
96
|
+
return [];
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.FlowDependencyResolver = FlowDependencyResolver;
|
|
101
|
+
//# sourceMappingURL=FlowDependencyResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowDependencyResolver.js","sourceRoot":"","sources":["../../src/managers/FlowDependencyResolver.ts"],"names":[],"mappings":";;;AAGA,qEAAkE;AAElE;;;;;;;;GAQG;AACH,MAAa,sBAAsB;IACjC,YAAoC,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAG,CAAC;IAEzD,KAAK,CAAC,uBAAuB,CAClC,cAAwB;QAExB,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,MAAM,cAAc,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE9C,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,EAAG,CAAC;YAE9C,IAAI,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;gBACvC,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBACvE,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAEnC,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;oBACtB,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oBAC1D,IACE,CAAC,cAAc;wBACf,CAAC,MAAM,IAAI,CAAC,wBAAwB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,EACpE,CAAC;wBACD,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;gBAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,uBAAuB,CACrD,YAAY,EACZ,WAAW,CACZ,CAAC;gBAEF,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC7B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;wBAChC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBAChB,oDAAoD;YACtD,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,wBAAwB,CACpC,cAAsB,EACtB,SAAiB;QAEjB,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;YACxE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC9D,OAAO,+CAAsB,CAAC,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,IAAkB,EAClB,WAAgC;QAEhC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;QAChD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,QAAQ,YAAY,CAAC,IAAI,EAAE,CAAC;YAC1B,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YAC/C,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YAC9D,KAAK,MAAM;gBACT,OAAO,EAAE,CAAC;YACZ;gBACE,OAAO,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,YAAoD;QAEpD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACvD,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,YAAsD,EACtD,WAAgC;QAEhC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAEzD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,YAAY,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CACxD,YAAY,CAAC,KAAK,CACnB,CAAC;YACF,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AAlHD,wDAkHC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { FlowHandle } from '../models/FlowHandle';
|
|
2
|
+
import type { FlowMetadata } from '../models/FlowMetadata';
|
|
3
|
+
/**
|
|
4
|
+
* Tracks active Donobu flows and their associated metadata.
|
|
5
|
+
*
|
|
6
|
+
* This class is intentionally tiny: it is the single source of truth for
|
|
7
|
+
* in-memory flow state so consumers don't need to juggle multiple maps or
|
|
8
|
+
* embed lifecycle bookkeeping in higher-level managers.
|
|
9
|
+
*/
|
|
10
|
+
export declare class FlowRuntime {
|
|
11
|
+
private readonly activeFlows;
|
|
12
|
+
register(flowHandle: FlowHandle): void;
|
|
13
|
+
get(flowId: string): FlowHandle | undefined;
|
|
14
|
+
remove(flowId: string): void;
|
|
15
|
+
metadataFor(flowId: string): FlowMetadata | undefined;
|
|
16
|
+
handles(): Iterable<FlowHandle>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=FlowRuntime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowRuntime.d.ts","sourceRoot":"","sources":["../../src/managers/FlowRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;;;;GAMG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAE3D,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAItC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAI3C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAKrD,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC;CAGvC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlowRuntime = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Tracks active Donobu flows and their associated metadata.
|
|
6
|
+
*
|
|
7
|
+
* This class is intentionally tiny: it is the single source of truth for
|
|
8
|
+
* in-memory flow state so consumers don't need to juggle multiple maps or
|
|
9
|
+
* embed lifecycle bookkeeping in higher-level managers.
|
|
10
|
+
*/
|
|
11
|
+
class FlowRuntime {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.activeFlows = new Map();
|
|
14
|
+
}
|
|
15
|
+
register(flowHandle) {
|
|
16
|
+
this.activeFlows.set(flowHandle.donobuFlow.metadata.id, flowHandle);
|
|
17
|
+
}
|
|
18
|
+
get(flowId) {
|
|
19
|
+
return this.activeFlows.get(flowId);
|
|
20
|
+
}
|
|
21
|
+
remove(flowId) {
|
|
22
|
+
this.activeFlows.delete(flowId);
|
|
23
|
+
}
|
|
24
|
+
metadataFor(flowId) {
|
|
25
|
+
const handle = this.activeFlows.get(flowId);
|
|
26
|
+
return handle?.donobuFlow.metadata;
|
|
27
|
+
}
|
|
28
|
+
handles() {
|
|
29
|
+
return this.activeFlows.values();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.FlowRuntime = FlowRuntime;
|
|
33
|
+
//# sourceMappingURL=FlowRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowRuntime.js","sourceRoot":"","sources":["../../src/managers/FlowRuntime.ts"],"names":[],"mappings":";;;AAGA;;;;;;GAMG;AACH,MAAa,WAAW;IAAxB;QACmB,gBAAW,GAA4B,IAAI,GAAG,EAAE,CAAC;IAsBpE,CAAC;IApBQ,QAAQ,CAAC,UAAsB;QACpC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACtE,CAAC;IAEM,GAAG,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,MAAc;QAC1B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAEM,WAAW,CAAC,MAAc;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,OAAO,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC;IACrC,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;CACF;AAvBD,kCAuBC"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import type { EnvPick } from 'env-struct';
|
|
2
1
|
import type { GptClientFactory } from '../clients/GptClientFactory';
|
|
3
|
-
import type { env } from '../envVars';
|
|
4
2
|
import type { GptConfig } from '../models/GptConfig';
|
|
5
3
|
import type { GptConfigsPersistence } from '../persistence/gptconfigs/GptConfigsPersistence';
|
|
6
4
|
/**
|
|
@@ -11,7 +9,7 @@ export declare class GptConfigsManager {
|
|
|
11
9
|
private readonly persistence;
|
|
12
10
|
private readonly gptClientFactory;
|
|
13
11
|
private constructor();
|
|
14
|
-
static create(persistence: GptConfigsPersistence, gptClientFactory: GptClientFactory
|
|
12
|
+
static create(persistence: GptConfigsPersistence, gptClientFactory: GptClientFactory): Promise<GptConfigsManager>;
|
|
15
13
|
/**
|
|
16
14
|
* Attempt to save the given GPT config. Where possible, a zero-cost
|
|
17
15
|
* request is attempted to be made with the GPT config before saving it.
|
|
@@ -34,10 +32,5 @@ export declare class GptConfigsManager {
|
|
|
34
32
|
* Verifies the given GPT config and name or throws if they are invalid.
|
|
35
33
|
*/
|
|
36
34
|
private verifyGptConfigOrThrow;
|
|
37
|
-
/**
|
|
38
|
-
* Inspects environment variables and legacy GPT platform keys files to
|
|
39
|
-
* initialize default GPT configurations.
|
|
40
|
-
*/
|
|
41
|
-
private initializeDefaultConfigurations;
|
|
42
35
|
}
|
|
43
36
|
//# sourceMappingURL=GptConfigsManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GptConfigsManager.d.ts","sourceRoot":"","sources":["../../src/managers/GptConfigsManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GptConfigsManager.d.ts","sourceRoot":"","sources":["../../src/managers/GptConfigsManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAE7F;;;GAGG;AACH,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAFnC,OAAO;WAKa,MAAM,CACxB,WAAW,EAAE,qBAAqB,EAClC,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC,iBAAiB,CAAC;IAK7B;;;;OAIG;IACU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhE;;OAEG;IACU,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAIlD;;OAEG;IACU,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAItD;;OAEG;IACU,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD;;OAEG;YACW,sBAAsB;CAQrC"}
|