donobu 5.49.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.'),
@@ -197,6 +197,7 @@ export declare const FlowMetadataSchema: z.ZodObject<{
197
197
  branch: z.ZodOptional<z.ZodString>;
198
198
  dirty: z.ZodOptional<z.ZodBoolean>;
199
199
  }, z.core.$loose>>;
200
+ runId: z.ZodOptional<z.ZodString>;
200
201
  }, z.core.$loose>>;
201
202
  }, z.core.$loose>;
202
203
  export type FlowMetadata = z.infer<typeof FlowMetadataSchema>;
@@ -38,6 +38,7 @@ export declare const ProvenanceSchema: z.ZodObject<{
38
38
  branch: z.ZodOptional<z.ZodString>;
39
39
  dirty: z.ZodOptional<z.ZodBoolean>;
40
40
  }, z.core.$loose>>;
41
+ runId: z.ZodOptional<z.ZodString>;
41
42
  }, z.core.$loose>;
42
43
  export type Provenance = z.infer<typeof ProvenanceSchema>;
43
44
  //# sourceMappingURL=Provenance.d.ts.map
@@ -55,6 +55,15 @@ exports.ProvenanceSchema = v4_1.z
55
55
  'no CI markers were detected.'),
56
56
  git: exports.GitProvenanceSchema.optional().describe('Git working-tree context at creation time. Absent when the CWD is ' +
57
57
  'not a git repo or `git` is unavailable.'),
58
+ runId: v4_1.z
59
+ .string()
60
+ .optional()
61
+ .describe('Stable identifier for the CI/CD invocation (or local test run) that ' +
62
+ 'produced this flow. Read verbatim from the DONOBU_RUN_ID environment ' +
63
+ 'variable, which the test runner is responsible for setting (so every ' +
64
+ 'flow in the same run shares it and it differs across runs). Absent ' +
65
+ 'for flows created before runId capture, or by a run that did not set ' +
66
+ 'DONOBU_RUN_ID.'),
58
67
  })
59
68
  .loose();
60
69
  //# sourceMappingURL=Provenance.js.map
@@ -156,6 +156,7 @@ export declare const SuiteMetadataSchema: z.ZodObject<{
156
156
  branch: z.ZodOptional<z.ZodString>;
157
157
  dirty: z.ZodOptional<z.ZodBoolean>;
158
158
  }, z.core.$loose>>;
159
+ runId: z.ZodOptional<z.ZodString>;
159
160
  }, z.core.$loose>>;
160
161
  }, z.core.$loose>;
161
162
  export type SuiteMetadata = z.infer<typeof SuiteMetadataSchema>;
@@ -159,6 +159,7 @@ export declare const TestMetadataSchema: z.ZodObject<{
159
159
  branch: z.ZodOptional<z.ZodString>;
160
160
  dirty: z.ZodOptional<z.ZodBoolean>;
161
161
  }, z.core.$loose>>;
162
+ runId: z.ZodOptional<z.ZodString>;
162
163
  }, z.core.$loose>>;
163
164
  }, z.core.$loose>;
164
165
  export type TestMetadata = z.infer<typeof TestMetadataSchema>;
@@ -340,6 +341,7 @@ export declare const TestListItemSchema: z.ZodObject<{
340
341
  branch: z.ZodOptional<z.ZodString>;
341
342
  dirty: z.ZodOptional<z.ZodBoolean>;
342
343
  }, z.core.$loose>>;
344
+ runId: z.ZodOptional<z.ZodString>;
343
345
  }, z.core.$loose>>;
344
346
  flowCount: z.ZodNumber;
345
347
  latestFlow: z.ZodNullable<z.ZodObject<{
@@ -528,6 +530,7 @@ export declare const TestListItemSchema: z.ZodObject<{
528
530
  branch: z.ZodOptional<z.ZodString>;
529
531
  dirty: z.ZodOptional<z.ZodBoolean>;
530
532
  }, z.core.$loose>>;
533
+ runId: z.ZodOptional<z.ZodString>;
531
534
  }, z.core.$loose>>;
532
535
  }, z.core.$loose>>;
533
536
  }, z.core.$loose>;
@@ -688,6 +691,7 @@ export declare const TestListItemPaginatedResultSchema: z.ZodObject<{
688
691
  branch: z.ZodOptional<z.ZodString>;
689
692
  dirty: z.ZodOptional<z.ZodBoolean>;
690
693
  }, z.core.$loose>>;
694
+ runId: z.ZodOptional<z.ZodString>;
691
695
  }, z.core.$loose>>;
692
696
  flowCount: z.ZodNumber;
693
697
  latestFlow: z.ZodNullable<z.ZodObject<{
@@ -876,6 +880,7 @@ export declare const TestListItemPaginatedResultSchema: z.ZodObject<{
876
880
  branch: z.ZodOptional<z.ZodString>;
877
881
  dirty: z.ZodOptional<z.ZodBoolean>;
878
882
  }, z.core.$loose>>;
883
+ runId: z.ZodOptional<z.ZodString>;
879
884
  }, z.core.$loose>>;
880
885
  }, z.core.$loose>>;
881
886
  }, z.core.$loose>>;
@@ -96,6 +96,7 @@ function buildProvenance(source) {
96
96
  hostname,
97
97
  ci: isCode ? detectCi() : undefined,
98
98
  git: isCode ? detectGit() : undefined,
99
+ runId: process.env.DONOBU_RUN_ID,
99
100
  };
100
101
  }
101
102
  //# sourceMappingURL=buildProvenance.js.map
@@ -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.'),
@@ -197,6 +197,7 @@ export declare const FlowMetadataSchema: z.ZodObject<{
197
197
  branch: z.ZodOptional<z.ZodString>;
198
198
  dirty: z.ZodOptional<z.ZodBoolean>;
199
199
  }, z.core.$loose>>;
200
+ runId: z.ZodOptional<z.ZodString>;
200
201
  }, z.core.$loose>>;
201
202
  }, z.core.$loose>;
202
203
  export type FlowMetadata = z.infer<typeof FlowMetadataSchema>;
@@ -38,6 +38,7 @@ export declare const ProvenanceSchema: z.ZodObject<{
38
38
  branch: z.ZodOptional<z.ZodString>;
39
39
  dirty: z.ZodOptional<z.ZodBoolean>;
40
40
  }, z.core.$loose>>;
41
+ runId: z.ZodOptional<z.ZodString>;
41
42
  }, z.core.$loose>;
42
43
  export type Provenance = z.infer<typeof ProvenanceSchema>;
43
44
  //# sourceMappingURL=Provenance.d.ts.map
@@ -55,6 +55,15 @@ exports.ProvenanceSchema = v4_1.z
55
55
  'no CI markers were detected.'),
56
56
  git: exports.GitProvenanceSchema.optional().describe('Git working-tree context at creation time. Absent when the CWD is ' +
57
57
  'not a git repo or `git` is unavailable.'),
58
+ runId: v4_1.z
59
+ .string()
60
+ .optional()
61
+ .describe('Stable identifier for the CI/CD invocation (or local test run) that ' +
62
+ 'produced this flow. Read verbatim from the DONOBU_RUN_ID environment ' +
63
+ 'variable, which the test runner is responsible for setting (so every ' +
64
+ 'flow in the same run shares it and it differs across runs). Absent ' +
65
+ 'for flows created before runId capture, or by a run that did not set ' +
66
+ 'DONOBU_RUN_ID.'),
58
67
  })
59
68
  .loose();
60
69
  //# sourceMappingURL=Provenance.js.map
@@ -156,6 +156,7 @@ export declare const SuiteMetadataSchema: z.ZodObject<{
156
156
  branch: z.ZodOptional<z.ZodString>;
157
157
  dirty: z.ZodOptional<z.ZodBoolean>;
158
158
  }, z.core.$loose>>;
159
+ runId: z.ZodOptional<z.ZodString>;
159
160
  }, z.core.$loose>>;
160
161
  }, z.core.$loose>;
161
162
  export type SuiteMetadata = z.infer<typeof SuiteMetadataSchema>;
@@ -159,6 +159,7 @@ export declare const TestMetadataSchema: z.ZodObject<{
159
159
  branch: z.ZodOptional<z.ZodString>;
160
160
  dirty: z.ZodOptional<z.ZodBoolean>;
161
161
  }, z.core.$loose>>;
162
+ runId: z.ZodOptional<z.ZodString>;
162
163
  }, z.core.$loose>>;
163
164
  }, z.core.$loose>;
164
165
  export type TestMetadata = z.infer<typeof TestMetadataSchema>;
@@ -340,6 +341,7 @@ export declare const TestListItemSchema: z.ZodObject<{
340
341
  branch: z.ZodOptional<z.ZodString>;
341
342
  dirty: z.ZodOptional<z.ZodBoolean>;
342
343
  }, z.core.$loose>>;
344
+ runId: z.ZodOptional<z.ZodString>;
343
345
  }, z.core.$loose>>;
344
346
  flowCount: z.ZodNumber;
345
347
  latestFlow: z.ZodNullable<z.ZodObject<{
@@ -528,6 +530,7 @@ export declare const TestListItemSchema: z.ZodObject<{
528
530
  branch: z.ZodOptional<z.ZodString>;
529
531
  dirty: z.ZodOptional<z.ZodBoolean>;
530
532
  }, z.core.$loose>>;
533
+ runId: z.ZodOptional<z.ZodString>;
531
534
  }, z.core.$loose>>;
532
535
  }, z.core.$loose>>;
533
536
  }, z.core.$loose>;
@@ -688,6 +691,7 @@ export declare const TestListItemPaginatedResultSchema: z.ZodObject<{
688
691
  branch: z.ZodOptional<z.ZodString>;
689
692
  dirty: z.ZodOptional<z.ZodBoolean>;
690
693
  }, z.core.$loose>>;
694
+ runId: z.ZodOptional<z.ZodString>;
691
695
  }, z.core.$loose>>;
692
696
  flowCount: z.ZodNumber;
693
697
  latestFlow: z.ZodNullable<z.ZodObject<{
@@ -876,6 +880,7 @@ export declare const TestListItemPaginatedResultSchema: z.ZodObject<{
876
880
  branch: z.ZodOptional<z.ZodString>;
877
881
  dirty: z.ZodOptional<z.ZodBoolean>;
878
882
  }, z.core.$loose>>;
883
+ runId: z.ZodOptional<z.ZodString>;
879
884
  }, z.core.$loose>>;
880
885
  }, z.core.$loose>>;
881
886
  }, z.core.$loose>>;
@@ -96,6 +96,7 @@ function buildProvenance(source) {
96
96
  hostname,
97
97
  ci: isCode ? detectCi() : undefined,
98
98
  git: isCode ? detectGit() : undefined,
99
+ runId: process.env.DONOBU_RUN_ID,
99
100
  };
100
101
  }
101
102
  //# sourceMappingURL=buildProvenance.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "donobu",
3
- "version": "5.49.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",