donobu 5.50.0 → 5.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -50,7 +50,7 @@ export declare class DonobuFlowsManager {
50
50
  static readonly DEFAULT_MESSAGE_DURATION = 2247;
51
51
  static readonly DEFAULT_MAX_TOOL_CALLS = 50;
52
52
  static readonly DEFAULT_BROWSER_STATE_FILENAME = "browserstate.json";
53
- static readonly FLOW_NAME_MAX_LENGTH = 255;
53
+ static readonly FLOW_NAME_MAX_LENGTH = 1024;
54
54
  private readonly flowRuntime;
55
55
  private readonly flowCatalog;
56
56
  constructor(deploymentEnvironment: DonobuDeploymentEnvironment, gptClientFactory: GptClientFactory, gptConfigsManager: GptConfigsManager, agentsManager: AgentsManager, flowsPersistenceRegistry: FlowsPersistenceRegistry, envDataManager: EnvDataManager, controlPanelFactory: ControlPanelFactory, environ: EnvPick<typeof env, 'ANTHROPIC_API_KEY' | 'ANTHROPIC_MODEL_NAME' | 'AWS_ACCESS_KEY_ID' | 'AWS_BEDROCK_MODEL_NAME' | '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' | 'OLLAMA_API_URL' | 'OLLAMA_MODEL_NAME' | 'OPENAI_API_KEY' | 'OPENAI_API_MODEL_NAME'>, toolRegistry: ToolRegistry, targetRuntimePlugins: TargetRuntimePluginRegistry, testsPersistenceRegistry: TestsPersistenceRegistry);
@@ -51,6 +51,7 @@ const InvalidParamValueException_1 = require("../exceptions/InvalidParamValueExc
51
51
  const TestNotFoundException_1 = require("../exceptions/TestNotFoundException");
52
52
  const ToolRequiresGptException_1 = require("../exceptions/ToolRequiresGptException");
53
53
  const UnknownToolException_1 = require("../exceptions/UnknownToolException");
54
+ const CreateDonobuFlow_1 = require("../models/CreateDonobuFlow");
54
55
  const GptConfig_1 = require("../models/GptConfig");
55
56
  const resolveTargetRuntime_1 = require("../targets/resolveTargetRuntime");
56
57
  const CustomToolRunnerTool_1 = require("../tools/CustomToolRunnerTool");
@@ -736,7 +737,10 @@ DonobuFlowsManager.DEFAULT_MESSAGE_DURATION = 2247;
736
737
  // value in createFlowDefaults in flow-types.ts.
737
738
  DonobuFlowsManager.DEFAULT_MAX_TOOL_CALLS = 50;
738
739
  DonobuFlowsManager.DEFAULT_BROWSER_STATE_FILENAME = 'browserstate.json';
739
- DonobuFlowsManager.FLOW_NAME_MAX_LENGTH = 255;
740
+ // Re-exported from models/CreateDonobuFlow so existing callers can keep using
741
+ // DonobuFlowsManager.FLOW_NAME_MAX_LENGTH. The source of truth (and the
742
+ // rationale for keeping it in sync with the donobu-api gateway) lives there.
743
+ DonobuFlowsManager.FLOW_NAME_MAX_LENGTH = CreateDonobuFlow_1.FLOW_NAME_MAX_LENGTH;
740
744
  /**
741
745
  * Extracts environment variable names from the given objective and combines
742
746
  * it with the given explicitly allowed variables.
@@ -1,4 +1,11 @@
1
1
  import { z } from 'zod/v4';
2
+ /**
3
+ * Maximum length for a flow's human-readable name. Must stay in sync with the
4
+ * limit enforced by the donobu-api gateway (z.string().max(...) in its flow
5
+ * schema); a longer name causes the remote setFlowMetadata request to be
6
+ * rejected. Also re-exported as DonobuFlowsManager.FLOW_NAME_MAX_LENGTH.
7
+ */
8
+ export declare const FLOW_NAME_MAX_LENGTH = 1024;
2
9
  export declare const CreateDonobuFlowSchema: z.ZodObject<{
3
10
  id: z.ZodOptional<z.ZodString>;
4
11
  target: z.ZodString;
@@ -1,11 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CreateDonobuFlowSchema = void 0;
3
+ exports.CreateDonobuFlowSchema = exports.FLOW_NAME_MAX_LENGTH = void 0;
4
4
  const v4_1 = require("zod/v4");
5
5
  const BrowserConfig_1 = require("./BrowserConfig");
6
6
  const FlowMetadata_1 = require("./FlowMetadata");
7
7
  const ProposedToolCall_1 = require("./ProposedToolCall");
8
8
  const RunMode_1 = require("./RunMode");
9
+ /**
10
+ * Maximum length for a flow's human-readable name. Must stay in sync with the
11
+ * limit enforced by the donobu-api gateway (z.string().max(...) in its flow
12
+ * schema); a longer name causes the remote setFlowMetadata request to be
13
+ * rejected. Also re-exported as DonobuFlowsManager.FLOW_NAME_MAX_LENGTH.
14
+ */
15
+ exports.FLOW_NAME_MAX_LENGTH = 1024;
9
16
  exports.CreateDonobuFlowSchema = v4_1.z
10
17
  .looseObject({
11
18
  id: v4_1.z
@@ -38,10 +45,10 @@ not need this, omit it and let the SDK mint an ID.`),
38
45
  // -- Target-invariant fields --
39
46
  name: v4_1.z
40
47
  .string()
41
- .max(256)
48
+ .max(exports.FLOW_NAME_MAX_LENGTH)
42
49
  .nullable()
43
50
  .optional()
44
- .describe('The name for this Donobu flow; if present, must be fewer than 256 characters'),
51
+ .describe(`The name for this Donobu flow; if present, must be at most ${exports.FLOW_NAME_MAX_LENGTH} characters`),
45
52
  envVars: FlowMetadata_1.FlowMetadataSchema.shape.envVars.nullable().optional(),
46
53
  customTools: FlowMetadata_1.FlowMetadataSchema.shape.customTools.nullable().optional(),
47
54
  defaultMessageDuration: FlowMetadata_1.FlowMetadataSchema.shape.defaultMessageDuration
@@ -1,4 +1,10 @@
1
1
  import { z } from 'zod/v4';
2
+ /**
3
+ * Maximum length for a suite's human-readable name. Must stay in sync with the
4
+ * limit enforced by the donobu-api gateway (z.string().max(...) in its suite
5
+ * schema); a longer name causes the remote metadata request to be rejected.
6
+ */
7
+ export declare const SUITE_NAME_MAX_LENGTH = 1024;
2
8
  /**
3
9
  * Payload for creating a new suite. Uses the RunConfig fields (all made
4
10
  * optional as defaults) plus suite-specific fields like name and description.
@@ -1,16 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CreateSuiteSchema = void 0;
3
+ exports.CreateSuiteSchema = exports.SUITE_NAME_MAX_LENGTH = void 0;
4
4
  const v4_1 = require("zod/v4");
5
5
  const BrowserConfig_1 = require("./BrowserConfig");
6
6
  const RunConfig_1 = require("./RunConfig");
7
+ /**
8
+ * Maximum length for a suite's human-readable name. Must stay in sync with the
9
+ * limit enforced by the donobu-api gateway (z.string().max(...) in its suite
10
+ * schema); a longer name causes the remote metadata request to be rejected.
11
+ */
12
+ exports.SUITE_NAME_MAX_LENGTH = 1024;
7
13
  /**
8
14
  * Payload for creating a new suite. Uses the RunConfig fields (all made
9
15
  * optional as defaults) plus suite-specific fields like name and description.
10
16
  */
11
17
  exports.CreateSuiteSchema = RunConfig_1.RunConfigSchema.partial()
12
18
  .extend({
13
- name: v4_1.z.string().max(256).describe('The name for this suite (required).'),
19
+ name: v4_1.z
20
+ .string()
21
+ .max(exports.SUITE_NAME_MAX_LENGTH)
22
+ .describe('The name for this suite (required).'),
14
23
  description: v4_1.z
15
24
  .string()
16
25
  .nullable()
@@ -1,4 +1,10 @@
1
1
  import { z } from 'zod/v4';
2
+ /**
3
+ * Maximum length for a test's human-readable name. Must stay in sync with the
4
+ * limit enforced by the donobu-api gateway (z.string().max(...) in its test
5
+ * schema); a longer name causes the remote metadata request to be rejected.
6
+ */
7
+ export declare const TEST_NAME_MAX_LENGTH = 1024;
2
8
  /**
3
9
  * Payload for creating a new test. Uses the RunConfig fields (all made
4
10
  * nullable/optional for creation) plus test-specific fields like suiteId
@@ -1,10 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CreateTestSchema = void 0;
3
+ exports.CreateTestSchema = exports.TEST_NAME_MAX_LENGTH = void 0;
4
4
  const v4_1 = require("zod/v4");
5
5
  const BrowserConfig_1 = require("./BrowserConfig");
6
6
  const RunConfig_1 = require("./RunConfig");
7
7
  const RunMode_1 = require("./RunMode");
8
+ /**
9
+ * Maximum length for a test's human-readable name. Must stay in sync with the
10
+ * limit enforced by the donobu-api gateway (z.string().max(...) in its test
11
+ * schema); a longer name causes the remote metadata request to be rejected.
12
+ */
13
+ exports.TEST_NAME_MAX_LENGTH = 1024;
8
14
  /**
9
15
  * Payload for creating a new test. Uses the RunConfig fields (all made
10
16
  * nullable/optional for creation) plus test-specific fields like suiteId
@@ -24,7 +30,7 @@ exports.CreateTestSchema = RunConfig_1.RunConfigSchema.partial()
24
30
  .describe('Web target configuration. Required when target is "web".'),
25
31
  name: v4_1.z
26
32
  .string()
27
- .max(256)
33
+ .max(exports.TEST_NAME_MAX_LENGTH)
28
34
  .nullable()
29
35
  .optional()
30
36
  .describe('The name for this test.'),
@@ -50,7 +50,7 @@ export declare class DonobuFlowsManager {
50
50
  static readonly DEFAULT_MESSAGE_DURATION = 2247;
51
51
  static readonly DEFAULT_MAX_TOOL_CALLS = 50;
52
52
  static readonly DEFAULT_BROWSER_STATE_FILENAME = "browserstate.json";
53
- static readonly FLOW_NAME_MAX_LENGTH = 255;
53
+ static readonly FLOW_NAME_MAX_LENGTH = 1024;
54
54
  private readonly flowRuntime;
55
55
  private readonly flowCatalog;
56
56
  constructor(deploymentEnvironment: DonobuDeploymentEnvironment, gptClientFactory: GptClientFactory, gptConfigsManager: GptConfigsManager, agentsManager: AgentsManager, flowsPersistenceRegistry: FlowsPersistenceRegistry, envDataManager: EnvDataManager, controlPanelFactory: ControlPanelFactory, environ: EnvPick<typeof env, 'ANTHROPIC_API_KEY' | 'ANTHROPIC_MODEL_NAME' | 'AWS_ACCESS_KEY_ID' | 'AWS_BEDROCK_MODEL_NAME' | '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' | 'OLLAMA_API_URL' | 'OLLAMA_MODEL_NAME' | 'OPENAI_API_KEY' | 'OPENAI_API_MODEL_NAME'>, toolRegistry: ToolRegistry, targetRuntimePlugins: TargetRuntimePluginRegistry, testsPersistenceRegistry: TestsPersistenceRegistry);
@@ -51,6 +51,7 @@ const InvalidParamValueException_1 = require("../exceptions/InvalidParamValueExc
51
51
  const TestNotFoundException_1 = require("../exceptions/TestNotFoundException");
52
52
  const ToolRequiresGptException_1 = require("../exceptions/ToolRequiresGptException");
53
53
  const UnknownToolException_1 = require("../exceptions/UnknownToolException");
54
+ const CreateDonobuFlow_1 = require("../models/CreateDonobuFlow");
54
55
  const GptConfig_1 = require("../models/GptConfig");
55
56
  const resolveTargetRuntime_1 = require("../targets/resolveTargetRuntime");
56
57
  const CustomToolRunnerTool_1 = require("../tools/CustomToolRunnerTool");
@@ -736,7 +737,10 @@ DonobuFlowsManager.DEFAULT_MESSAGE_DURATION = 2247;
736
737
  // value in createFlowDefaults in flow-types.ts.
737
738
  DonobuFlowsManager.DEFAULT_MAX_TOOL_CALLS = 50;
738
739
  DonobuFlowsManager.DEFAULT_BROWSER_STATE_FILENAME = 'browserstate.json';
739
- DonobuFlowsManager.FLOW_NAME_MAX_LENGTH = 255;
740
+ // Re-exported from models/CreateDonobuFlow so existing callers can keep using
741
+ // DonobuFlowsManager.FLOW_NAME_MAX_LENGTH. The source of truth (and the
742
+ // rationale for keeping it in sync with the donobu-api gateway) lives there.
743
+ DonobuFlowsManager.FLOW_NAME_MAX_LENGTH = CreateDonobuFlow_1.FLOW_NAME_MAX_LENGTH;
740
744
  /**
741
745
  * Extracts environment variable names from the given objective and combines
742
746
  * it with the given explicitly allowed variables.
@@ -1,4 +1,11 @@
1
1
  import { z } from 'zod/v4';
2
+ /**
3
+ * Maximum length for a flow's human-readable name. Must stay in sync with the
4
+ * limit enforced by the donobu-api gateway (z.string().max(...) in its flow
5
+ * schema); a longer name causes the remote setFlowMetadata request to be
6
+ * rejected. Also re-exported as DonobuFlowsManager.FLOW_NAME_MAX_LENGTH.
7
+ */
8
+ export declare const FLOW_NAME_MAX_LENGTH = 1024;
2
9
  export declare const CreateDonobuFlowSchema: z.ZodObject<{
3
10
  id: z.ZodOptional<z.ZodString>;
4
11
  target: z.ZodString;
@@ -1,11 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CreateDonobuFlowSchema = void 0;
3
+ exports.CreateDonobuFlowSchema = exports.FLOW_NAME_MAX_LENGTH = void 0;
4
4
  const v4_1 = require("zod/v4");
5
5
  const BrowserConfig_1 = require("./BrowserConfig");
6
6
  const FlowMetadata_1 = require("./FlowMetadata");
7
7
  const ProposedToolCall_1 = require("./ProposedToolCall");
8
8
  const RunMode_1 = require("./RunMode");
9
+ /**
10
+ * Maximum length for a flow's human-readable name. Must stay in sync with the
11
+ * limit enforced by the donobu-api gateway (z.string().max(...) in its flow
12
+ * schema); a longer name causes the remote setFlowMetadata request to be
13
+ * rejected. Also re-exported as DonobuFlowsManager.FLOW_NAME_MAX_LENGTH.
14
+ */
15
+ exports.FLOW_NAME_MAX_LENGTH = 1024;
9
16
  exports.CreateDonobuFlowSchema = v4_1.z
10
17
  .looseObject({
11
18
  id: v4_1.z
@@ -38,10 +45,10 @@ not need this, omit it and let the SDK mint an ID.`),
38
45
  // -- Target-invariant fields --
39
46
  name: v4_1.z
40
47
  .string()
41
- .max(256)
48
+ .max(exports.FLOW_NAME_MAX_LENGTH)
42
49
  .nullable()
43
50
  .optional()
44
- .describe('The name for this Donobu flow; if present, must be fewer than 256 characters'),
51
+ .describe(`The name for this Donobu flow; if present, must be at most ${exports.FLOW_NAME_MAX_LENGTH} characters`),
45
52
  envVars: FlowMetadata_1.FlowMetadataSchema.shape.envVars.nullable().optional(),
46
53
  customTools: FlowMetadata_1.FlowMetadataSchema.shape.customTools.nullable().optional(),
47
54
  defaultMessageDuration: FlowMetadata_1.FlowMetadataSchema.shape.defaultMessageDuration
@@ -1,4 +1,10 @@
1
1
  import { z } from 'zod/v4';
2
+ /**
3
+ * Maximum length for a suite's human-readable name. Must stay in sync with the
4
+ * limit enforced by the donobu-api gateway (z.string().max(...) in its suite
5
+ * schema); a longer name causes the remote metadata request to be rejected.
6
+ */
7
+ export declare const SUITE_NAME_MAX_LENGTH = 1024;
2
8
  /**
3
9
  * Payload for creating a new suite. Uses the RunConfig fields (all made
4
10
  * optional as defaults) plus suite-specific fields like name and description.
@@ -1,16 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CreateSuiteSchema = void 0;
3
+ exports.CreateSuiteSchema = exports.SUITE_NAME_MAX_LENGTH = void 0;
4
4
  const v4_1 = require("zod/v4");
5
5
  const BrowserConfig_1 = require("./BrowserConfig");
6
6
  const RunConfig_1 = require("./RunConfig");
7
+ /**
8
+ * Maximum length for a suite's human-readable name. Must stay in sync with the
9
+ * limit enforced by the donobu-api gateway (z.string().max(...) in its suite
10
+ * schema); a longer name causes the remote metadata request to be rejected.
11
+ */
12
+ exports.SUITE_NAME_MAX_LENGTH = 1024;
7
13
  /**
8
14
  * Payload for creating a new suite. Uses the RunConfig fields (all made
9
15
  * optional as defaults) plus suite-specific fields like name and description.
10
16
  */
11
17
  exports.CreateSuiteSchema = RunConfig_1.RunConfigSchema.partial()
12
18
  .extend({
13
- name: v4_1.z.string().max(256).describe('The name for this suite (required).'),
19
+ name: v4_1.z
20
+ .string()
21
+ .max(exports.SUITE_NAME_MAX_LENGTH)
22
+ .describe('The name for this suite (required).'),
14
23
  description: v4_1.z
15
24
  .string()
16
25
  .nullable()
@@ -1,4 +1,10 @@
1
1
  import { z } from 'zod/v4';
2
+ /**
3
+ * Maximum length for a test's human-readable name. Must stay in sync with the
4
+ * limit enforced by the donobu-api gateway (z.string().max(...) in its test
5
+ * schema); a longer name causes the remote metadata request to be rejected.
6
+ */
7
+ export declare const TEST_NAME_MAX_LENGTH = 1024;
2
8
  /**
3
9
  * Payload for creating a new test. Uses the RunConfig fields (all made
4
10
  * nullable/optional for creation) plus test-specific fields like suiteId
@@ -1,10 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CreateTestSchema = void 0;
3
+ exports.CreateTestSchema = exports.TEST_NAME_MAX_LENGTH = void 0;
4
4
  const v4_1 = require("zod/v4");
5
5
  const BrowserConfig_1 = require("./BrowserConfig");
6
6
  const RunConfig_1 = require("./RunConfig");
7
7
  const RunMode_1 = require("./RunMode");
8
+ /**
9
+ * Maximum length for a test's human-readable name. Must stay in sync with the
10
+ * limit enforced by the donobu-api gateway (z.string().max(...) in its test
11
+ * schema); a longer name causes the remote metadata request to be rejected.
12
+ */
13
+ exports.TEST_NAME_MAX_LENGTH = 1024;
8
14
  /**
9
15
  * Payload for creating a new test. Uses the RunConfig fields (all made
10
16
  * nullable/optional for creation) plus test-specific fields like suiteId
@@ -24,7 +30,7 @@ exports.CreateTestSchema = RunConfig_1.RunConfigSchema.partial()
24
30
  .describe('Web target configuration. Required when target is "web".'),
25
31
  name: v4_1.z
26
32
  .string()
27
- .max(256)
33
+ .max(exports.TEST_NAME_MAX_LENGTH)
28
34
  .nullable()
29
35
  .optional()
30
36
  .describe('The name for this test.'),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "donobu",
3
- "version": "5.50.0",
3
+ "version": "5.51.0",
4
4
  "description": "Create browser automations with an LLM agent and replay them as Playwright scripts.",
5
5
  "main": "dist/main.js",
6
6
  "module": "dist/esm/main.js",