@hexabot-ai/agentic 3.1.2-beta.0 → 3.1.2-beta.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.
@@ -14,6 +14,7 @@ const jsonata_1 = __importDefault(require("jsonata"));
14
14
  const yaml_1 = require("yaml");
15
15
  const zod_1 = require("zod");
16
16
  const base_binding_1 = require("./bindings/base-binding");
17
+ const naming_1 = require("./utils/naming");
17
18
  exports.ExpressionStringSchema = zod_1.z
18
19
  .string()
19
20
  .regex(/^=/, 'Expression strings must start with "="')
@@ -234,7 +235,7 @@ exports.WorkflowDefinitionSchema = zod_1.z.strictObject({
234
235
  inputs: InputsSchema.optional(),
235
236
  context: zod_1.z.record(zod_1.z.string(), exports.JsonValueSchema).optional(),
236
237
  defaults: DefaultsSchema.optional(),
237
- defs: zod_1.z.record(zod_1.z.string(), exports.DefDefinitionSchema),
238
+ defs: zod_1.z.record(zod_1.z.string().regex(naming_1.SNAKE_CASE_REGEX, 'Name must be snake_case'), exports.DefDefinitionSchema),
238
239
  flow: zod_1.z.array(exports.FlowStepSchema),
239
240
  outputs: zod_1.z.record(zod_1.z.string(), exports.ExpressionStringSchema),
240
241
  });
@@ -5,10 +5,10 @@
5
5
  * Full terms: see LICENSE.md.
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.isSnakeCaseName = void 0;
8
+ exports.isSnakeCaseName = exports.SNAKE_CASE_REGEX = void 0;
9
9
  exports.assertSnakeCaseName = assertSnakeCaseName;
10
10
  exports.toSnakeCase = toSnakeCase;
11
- const SNAKE_CASE_REGEX = /^[a-z0-9]+(?:_[a-z0-9]+)+$/;
11
+ exports.SNAKE_CASE_REGEX = /^[a-z0-9]+(?:_[a-z0-9]+)*$/;
12
12
  /**
13
13
  * Verifies that names follow the snake_case convention required by the system.
14
14
  *
@@ -17,7 +17,7 @@ const SNAKE_CASE_REGEX = /^[a-z0-9]+(?:_[a-z0-9]+)+$/;
17
17
  * @throws Error when the name is not snake_case.
18
18
  */
19
19
  function assertSnakeCaseName(name, entity) {
20
- if (!SNAKE_CASE_REGEX.test(name)) {
20
+ if (!exports.SNAKE_CASE_REGEX.test(name)) {
21
21
  throw new Error(`${entity} name must be snake_case with at least one underscore. Received: "${name}"`);
22
22
  }
23
23
  }
@@ -27,7 +27,7 @@ function assertSnakeCaseName(name, entity) {
27
27
  * @param value - Text to evaluate.
28
28
  * @returns `true` when the value is snake_case; otherwise `false`.
29
29
  */
30
- const isSnakeCaseName = (value) => SNAKE_CASE_REGEX.test(value);
30
+ const isSnakeCaseName = (value) => exports.SNAKE_CASE_REGEX.test(value);
31
31
  exports.isSnakeCaseName = isSnakeCaseName;
32
32
  /**
33
33
  * Converts arbitrary text into snake_case for use in workflow entities.
@@ -9,7 +9,6 @@ exports.compileWorkflow = void 0;
9
9
  const zod_1 = require("zod");
10
10
  const base_binding_1 = require("./bindings/base-binding");
11
11
  const dsl_types_1 = require("./dsl.types");
12
- const naming_1 = require("./utils/naming");
13
12
  const workflow_event_emitter_1 = require("./workflow-event-emitter");
14
13
  const workflow_values_1 = require("./workflow-values");
15
14
  /** Build a stable identifier for a step using its path and label. */
@@ -103,7 +102,6 @@ const compileTasks = (definition, options) => {
103
102
  }
104
103
  assertActionsBound(taskDefinitions, options.actions);
105
104
  for (const [taskName, task] of Object.entries(taskDefinitions)) {
106
- (0, naming_1.assertSnakeCaseName)(taskName, 'action');
107
105
  const action = options.actions[task.action];
108
106
  const settingsPayload = (0, workflow_values_1.mergeSettings)(defaultSettings, task.settings);
109
107
  const parsedSettings = action.parseSettings(settingsPayload);
@@ -7,6 +7,7 @@ import jsonata from 'jsonata';
7
7
  import { parse as parseYaml } from 'yaml';
8
8
  import { z } from 'zod';
9
9
  import { validateAndResolveBindings } from './bindings/base-binding';
10
+ import { SNAKE_CASE_REGEX } from './utils/naming';
10
11
  export const ExpressionStringSchema = z
11
12
  .string()
12
13
  .regex(/^=/, 'Expression strings must start with "="')
@@ -227,7 +228,7 @@ export const WorkflowDefinitionSchema = z.strictObject({
227
228
  inputs: InputsSchema.optional(),
228
229
  context: z.record(z.string(), JsonValueSchema).optional(),
229
230
  defaults: DefaultsSchema.optional(),
230
- defs: z.record(z.string(), DefDefinitionSchema),
231
+ defs: z.record(z.string().regex(SNAKE_CASE_REGEX, 'Name must be snake_case'), DefDefinitionSchema),
231
232
  flow: z.array(FlowStepSchema),
232
233
  outputs: z.record(z.string(), ExpressionStringSchema),
233
234
  });
@@ -3,7 +3,7 @@
3
3
  * Copyright (c) 2025 Hexastack.
4
4
  * Full terms: see LICENSE.md.
5
5
  */
6
- const SNAKE_CASE_REGEX = /^[a-z0-9]+(?:_[a-z0-9]+)+$/;
6
+ export const SNAKE_CASE_REGEX = /^[a-z0-9]+(?:_[a-z0-9]+)*$/;
7
7
  /**
8
8
  * Verifies that names follow the snake_case convention required by the system.
9
9
  *
@@ -6,7 +6,6 @@
6
6
  import { z } from 'zod';
7
7
  import { mountTaskBindings, validateAndResolveBindings, } from './bindings/base-binding';
8
8
  import { extractTaskDefinitions as extractTaskDefinitionsFromDefs } from './dsl.types';
9
- import { assertSnakeCaseName } from './utils/naming';
10
9
  import { StepType } from './workflow-event-emitter';
11
10
  import { compileValue, mergeSettings, } from './workflow-values';
12
11
  /** Build a stable identifier for a step using its path and label. */
@@ -100,7 +99,6 @@ const compileTasks = (definition, options) => {
100
99
  }
101
100
  assertActionsBound(taskDefinitions, options.actions);
102
101
  for (const [taskName, task] of Object.entries(taskDefinitions)) {
103
- assertSnakeCaseName(taskName, 'action');
104
102
  const action = options.actions[task.action];
105
103
  const settingsPayload = mergeSettings(defaultSettings, task.settings);
106
104
  const parsedSettings = action.parseSettings(settingsPayload);
@@ -1 +1 @@
1
- {"version":3,"file":"dsl.types.d.ts","sourceRoot":"","sources":["../../src/dsl.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dsl.types.d.ts","sourceRoot":"","sources":["../../src/dsl.types.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAIlE,eAAO,MAAM,sBAAsB,aAc/B,CAAC;AAEL,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAGjC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAGpC,eAAO,MAAM,sBAAsB;;;;;;;CAOzB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,GACxC;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,CAAC;AAE1C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,iBAAiB,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACnC,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG;IAC3C,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IACzC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,eAAe,GAAG,aAAa,CAAC;AAEvD,MAAM,MAAM,QAAQ,GAChB;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GACd;IAAE,QAAQ,EAAE,aAAa,CAAA;CAAE,GAC3B;IAAE,WAAW,EAAE,gBAAgB,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEvB,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAShD,CAAC;AAoFF,eAAO,MAAM,kBAAkB;;;;;;;;;;kBAU7B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;iGAA+C,CAAC;AAK3E,eAAO,MAAM,SAAS,EAAG,MAAe,CAAC;AAEzC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;kBAO/B,CAAC;AAeH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;oBAG9B,CAAC;AAaH,QAAA,MAAM,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,iBAAiB,EAAE,CAAC;CAC3B,CAGC,CAAC;AAoCH,eAAO,MAAM,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAe9C,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;kBAIjC,CAAC;AASH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAUnC,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,MAAM,MAAM,gCAAgC,GAAG;IAC7C,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAChC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,GAC3C;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAmCzC,eAAO,MAAM,gBAAgB,GAC3B,YAAY,aAAa,KACxB,UAAU,IAAI,cAA+C,CAAC;AAEjE,eAAO,MAAM,sBAAsB,GAAI,MAAM,cAAc,KAAG,eAOtD,CAAC;AAST,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,GAAG,OAAO,EACvB,OAAO,CAAC,EAAE,uBAAuB,GAChC,wBAAwB,CAkD1B"}
@@ -1,3 +1,4 @@
1
+ export declare const SNAKE_CASE_REGEX: RegExp;
1
2
  export type WorkflowEntity = 'action' | 'workflow' | 'predicate';
2
3
  /**
3
4
  * Verifies that names follow the snake_case convention required by the system.
@@ -1 +1 @@
1
- {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../../src/utils/naming.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;AAEjE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,GACrB,IAAI,CAMN;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,OAClB,CAAC;AAE/B;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWjD"}
1
+ {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../../src/utils/naming.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,gBAAgB,QAA+B,CAAC;AAE7D,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;AAEjE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,GACrB,IAAI,CAMN;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,OAClB,CAAC;AAE/B;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-compiler.d.ts","sourceRoot":"","sources":["../../src/workflow-compiler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAMlE,OAAO,KAAK,EAIV,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAIrB,OAAO,KAAK,EAIV,gBAAgB,EAIjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,GAAG;IACzD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC,CAAC;AAgQF,+EAA+E;AAC/E,eAAO,MAAM,eAAe,GAC1B,YAAY,kBAAkB,EAC9B,SAAS,sBAAsB,KAC9B,gBAcF,CAAC"}
1
+ {"version":3,"file":"workflow-compiler.d.ts","sourceRoot":"","sources":["../../src/workflow-compiler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAMlE,OAAO,KAAK,EAIV,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAIV,gBAAgB,EAIjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,GAAG;IACzD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC,CAAC;AA8PF,+EAA+E;AAC/E,eAAO,MAAM,eAAe,GAC1B,YAAY,kBAAkB,EAC9B,SAAS,sBAAsB,KAC9B,gBAcF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hexabot-ai/agentic",
3
- "version": "3.1.2-beta.0",
3
+ "version": "3.1.2-beta.1",
4
4
  "description": "Schemas and utilities for the Hexabot agentic workflow DSL.",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
package/src/dsl.types.ts CHANGED
@@ -10,6 +10,7 @@ import { z } from 'zod';
10
10
 
11
11
  import type { BindingKindSchemas } from './bindings/base-binding';
12
12
  import { validateAndResolveBindings } from './bindings/base-binding';
13
+ import { SNAKE_CASE_REGEX } from './utils/naming';
13
14
 
14
15
  export const ExpressionStringSchema = z
15
16
  .string()
@@ -330,7 +331,10 @@ export const WorkflowDefinitionSchema = z.strictObject({
330
331
  inputs: InputsSchema.optional(),
331
332
  context: z.record(z.string(), JsonValueSchema).optional(),
332
333
  defaults: DefaultsSchema.optional(),
333
- defs: z.record(z.string(), DefDefinitionSchema),
334
+ defs: z.record(
335
+ z.string().regex(SNAKE_CASE_REGEX, 'Name must be snake_case'),
336
+ DefDefinitionSchema,
337
+ ),
334
338
  flow: z.array(FlowStepSchema),
335
339
  outputs: z.record(z.string(), ExpressionStringSchema),
336
340
  });
@@ -4,7 +4,7 @@
4
4
  * Full terms: see LICENSE.md.
5
5
  */
6
6
 
7
- const SNAKE_CASE_REGEX = /^[a-z0-9]+(?:_[a-z0-9]+)+$/;
7
+ export const SNAKE_CASE_REGEX = /^[a-z0-9]+(?:_[a-z0-9]+)*$/;
8
8
 
9
9
  export type WorkflowEntity = 'action' | 'workflow' | 'predicate';
10
10
 
@@ -20,7 +20,6 @@ import type {
20
20
  WorkflowDefinition,
21
21
  } from './dsl.types';
22
22
  import { extractTaskDefinitions as extractTaskDefinitionsFromDefs } from './dsl.types';
23
- import { assertSnakeCaseName } from './utils/naming';
24
23
  import { StepType } from './workflow-event-emitter';
25
24
  import type {
26
25
  CompiledMapping,
@@ -168,8 +167,6 @@ const compileTasks = (
168
167
  assertActionsBound(taskDefinitions, options.actions);
169
168
 
170
169
  for (const [taskName, task] of Object.entries(taskDefinitions)) {
171
- assertSnakeCaseName(taskName, 'action');
172
-
173
170
  const action = options.actions[task.action];
174
171
  const settingsPayload = mergeSettings(defaultSettings, task.settings);
175
172
  const parsedSettings = action.parseSettings(settingsPayload);