@kody-ade/kody-engine 0.4.375 → 0.4.377

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.
Files changed (2) hide show
  1. package/dist/bin/kody.js +9 -6
  2. package/package.json +1 -1
package/dist/bin/kody.js CHANGED
@@ -15,7 +15,7 @@ var init_package = __esm({
15
15
  "package.json"() {
16
16
  package_default = {
17
17
  name: "@kody-ade/kody-engine",
18
- version: "0.4.375",
18
+ version: "0.4.377",
19
19
  description: "kody \u2014 autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative implementation profiles.",
20
20
  license: "MIT",
21
21
  type: "module",
@@ -1974,7 +1974,7 @@ function parseCapabilityWorkflow(value) {
1974
1974
  const startAt = value && typeof value === "object" && !Array.isArray(value) ? stringField(value.startAt) : void 0;
1975
1975
  return {
1976
1976
  steps,
1977
- ...startAt && isSafeSlug(startAt) ? { startAt } : {}
1977
+ ...startAt && isSafeStepId(startAt) ? { startAt } : {}
1978
1978
  };
1979
1979
  }
1980
1980
  function parseWorkflowStep(value) {
@@ -2000,7 +2000,7 @@ function parseWorkflowStep(value) {
2000
2000
  const report = parseReportPublication(raw.report);
2001
2001
  return {
2002
2002
  capability,
2003
- ...id && isSafeSlug(id) ? { id } : {},
2003
+ ...id && isSafeStepId(id) ? { id } : {},
2004
2004
  ...action && isSafeSlug(action) ? { action } : {},
2005
2005
  ...implementation && isSafeSlug(implementation) ? { implementation } : {},
2006
2006
  ...evidence ? { evidence } : {},
@@ -2033,11 +2033,11 @@ function parseWorkflowTransitions(value) {
2033
2033
  const transitions = rawTransitions.map((raw) => {
2034
2034
  if (typeof raw === "string") {
2035
2035
  const to2 = raw.trim();
2036
- return isSafeSlug(to2) ? { to: to2 } : null;
2036
+ return isSafeStepId(to2) ? { to: to2 } : null;
2037
2037
  }
2038
2038
  if (!isPlainObject(raw)) return null;
2039
2039
  const to = stringField(raw.to);
2040
- if (!to || !isSafeSlug(to)) return null;
2040
+ if (!to || !isSafeStepId(to)) return null;
2041
2041
  const maxIterations = typeof raw.maxIterations === "number" && Number.isInteger(raw.maxIterations) && raw.maxIterations > 0 ? raw.maxIterations : void 0;
2042
2042
  return {
2043
2043
  to,
@@ -2081,6 +2081,9 @@ function isPlainObject(value) {
2081
2081
  function isSafeSlug(value) {
2082
2082
  return /^[a-z][a-z0-9-]*$/.test(value) && !value.includes("..");
2083
2083
  }
2084
+ function isSafeStepId(value) {
2085
+ return /^[A-Za-z][A-Za-z0-9_-]*$/.test(value) && !value.includes("..");
2086
+ }
2084
2087
  var CAPABILITY_PROFILE_FILE, CAPABILITY_BODY_FILE;
2085
2088
  var init_capabilityFolders = __esm({
2086
2089
  "src/capabilityFolders.ts"() {
@@ -8913,7 +8916,7 @@ function validateWorkflow(value, options = {}) {
8913
8916
  }
8914
8917
  }
8915
8918
  const target = text(raw.to);
8916
- if (!target || !SAFE_NAME.test(target)) {
8919
+ if (!target || !SAFE_STEP_ID.test(target)) {
8917
8920
  issue(issues, "invalid_transition_target", `${base}.to`, "workflow connection must name a valid target step");
8918
8921
  return;
8919
8922
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.4.375",
3
+ "version": "0.4.377",
4
4
  "description": "kody — autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative implementation profiles.",
5
5
  "license": "MIT",
6
6
  "type": "module",