@kody-ade/kody-engine 0.4.573 → 0.4.574

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/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.573",
18
+ version: "0.4.574",
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",
@@ -54,7 +54,7 @@ var init_package = __esm({
54
54
  dependencies: {
55
55
  "@actions/cache": "^6.0.0",
56
56
  "@anthropic-ai/claude-agent-sdk": "0.2.119",
57
- "@kody-ade/engine-contracts": "0.1.0",
57
+ "@kody-ade/engine-contracts": "^0.2.0",
58
58
  "@modelcontextprotocol/sdk": "^1.29.0",
59
59
  ajv: "^8.18.0",
60
60
  convex: "^1.17.0",
@@ -4744,6 +4744,7 @@ var init_task_artifacts = __esm({
4744
4744
  });
4745
4745
 
4746
4746
  // src/workflowValidation.ts
4747
+ import { validateExecutableWorkflow } from "@kody-ade/engine-contracts";
4747
4748
  function validateWorkflow(value, options = {}) {
4748
4749
  const issues = [];
4749
4750
  const workflow = asRecord(value);
@@ -4762,6 +4763,7 @@ function validateWorkflow(value, options = {}) {
4762
4763
  const step = asRecord(entry);
4763
4764
  return Boolean(step && (step.id !== void 0 || step.next !== void 0));
4764
4765
  });
4766
+ const sharedIssues = graphMode ? validateExecutableWorkflow(value, options) : [];
4765
4767
  const steps = rawSteps.map(
4766
4768
  (entry) => typeof entry === "string" ? { capability: entry } : asRecord(entry)
4767
4769
  );
@@ -4822,7 +4824,7 @@ function validateWorkflow(value, options = {}) {
4822
4824
  capability ? options.capabilityInputs?.get(capability) : void 0
4823
4825
  );
4824
4826
  });
4825
- if (!graphMode) return issues;
4827
+ if (!graphMode) return uniqueIssues([...issues, ...sharedIssues]);
4826
4828
  const seen = /* @__PURE__ */ new Set();
4827
4829
  ids.forEach((id, index) => {
4828
4830
  if (seen.has(id)) issue(issues, "duplicate_step_id", `steps[${index}].id`, `workflow step id ${id} is duplicated`);
@@ -4965,7 +4967,16 @@ function validateWorkflow(value, options = {}) {
4965
4967
  issue(issues, "missing_terminal_step", "steps", "workflow has no reachable final step");
4966
4968
  }
4967
4969
  }
4968
- return issues;
4970
+ return uniqueIssues([...issues, ...sharedIssues]);
4971
+ }
4972
+ function uniqueIssues(issues) {
4973
+ const seen = /* @__PURE__ */ new Set();
4974
+ return issues.filter((entry) => {
4975
+ const key = `${entry.code}\0${entry.path}`;
4976
+ if (seen.has(key)) return false;
4977
+ seen.add(key);
4978
+ return true;
4979
+ });
4969
4980
  }
4970
4981
  function validateInputBindings(value, path59, issues, declaredInputs) {
4971
4982
  if (value === void 0) return;
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.4.573",
3
+ "version": "0.4.574",
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",
@@ -12,10 +12,34 @@
12
12
  "templates",
13
13
  "kody.config.schema.json"
14
14
  ],
15
+ "scripts": {
16
+ "kody:run": "tsx bin/kody.ts",
17
+ "serve": "tsx bin/kody.ts serve",
18
+ "serve:vscode": "tsx bin/kody.ts serve vscode",
19
+ "serve:claude": "tsx bin/kody.ts serve claude",
20
+ "clean:dist": "node scripts/clean-dist.cjs",
21
+ "build": "pnpm clean:dist && tsup && node scripts/copy-assets.cjs",
22
+ "check:modularity": "tsx scripts/check-script-modularity.ts",
23
+ "pretest": "pnpm check:modularity",
24
+ "test": "vitest run tests/unit tests/int --coverage",
25
+ "posttest": "tsx scripts/check-coverage-floor.ts",
26
+ "test:smoke": "vitest run tests/smoke --no-coverage",
27
+ "test:e2e": "vitest run tests/e2e --no-coverage",
28
+ "verify:live-release": "tsx scripts/live-release-gate.ts",
29
+ "test:runtime-services": "node --test \"tests/runtime-services/*.test.mjs\"",
30
+ "test:all": "vitest run tests --no-coverage",
31
+ "typecheck": "tsc --noEmit",
32
+ "lint": "biome check",
33
+ "lint:fix": "biome check --write",
34
+ "format": "biome format --write",
35
+ "verify:package": "node scripts/verify-package-tarball.cjs",
36
+ "brain:publish": "docker buildx build --platform linux/amd64 -f runner/Dockerfile.brain --build-arg KODY_ENGINE_REF=$(git rev-parse HEAD) -t ghcr.io/${KODY_BRAIN_GHCR_OWNER:-aharonyaircohen}/kody-brain:latest --push runner",
37
+ "prepublishOnly": "pnpm typecheck && pnpm test:runtime-services && pnpm build && pnpm verify:package"
38
+ },
15
39
  "dependencies": {
16
40
  "@actions/cache": "^6.0.0",
17
41
  "@anthropic-ai/claude-agent-sdk": "0.2.119",
18
- "@kody-ade/engine-contracts": "0.1.0",
42
+ "@kody-ade/engine-contracts": "^0.2.0",
19
43
  "@modelcontextprotocol/sdk": "^1.29.0",
20
44
  "ajv": "^8.18.0",
21
45
  "convex": "^1.17.0",
@@ -38,28 +62,5 @@
38
62
  "url": "git+https://github.com/aharonyaircohen/kody-engine.git"
39
63
  },
40
64
  "homepage": "https://github.com/aharonyaircohen/kody-engine",
41
- "bugs": "https://github.com/aharonyaircohen/kody-engine/issues",
42
- "scripts": {
43
- "kody:run": "tsx bin/kody.ts",
44
- "serve": "tsx bin/kody.ts serve",
45
- "serve:vscode": "tsx bin/kody.ts serve vscode",
46
- "serve:claude": "tsx bin/kody.ts serve claude",
47
- "clean:dist": "node scripts/clean-dist.cjs",
48
- "build": "pnpm clean:dist && tsup && node scripts/copy-assets.cjs",
49
- "check:modularity": "tsx scripts/check-script-modularity.ts",
50
- "pretest": "pnpm check:modularity",
51
- "test": "vitest run tests/unit tests/int --coverage",
52
- "posttest": "tsx scripts/check-coverage-floor.ts",
53
- "test:smoke": "vitest run tests/smoke --no-coverage",
54
- "test:e2e": "vitest run tests/e2e --no-coverage",
55
- "verify:live-release": "tsx scripts/live-release-gate.ts",
56
- "test:runtime-services": "node --test \"tests/runtime-services/*.test.mjs\"",
57
- "test:all": "vitest run tests --no-coverage",
58
- "typecheck": "tsc --noEmit",
59
- "lint": "biome check",
60
- "lint:fix": "biome check --write",
61
- "format": "biome format --write",
62
- "verify:package": "node scripts/verify-package-tarball.cjs",
63
- "brain:publish": "docker buildx build --platform linux/amd64 -f runner/Dockerfile.brain --build-arg KODY_ENGINE_REF=$(git rev-parse HEAD) -t ghcr.io/${KODY_BRAIN_GHCR_OWNER:-aharonyaircohen}/kody-brain:latest --push runner"
64
- }
65
- }
65
+ "bugs": "https://github.com/aharonyaircohen/kody-engine/issues"
66
+ }