@kody-ade/kody-engine 0.4.632 → 0.4.634

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.632",
18
+ version: "0.4.634",
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
  repository: {
@@ -323,6 +323,7 @@ function loadConfig(projectDir = process.cwd()) {
323
323
  throw new Error(`kody.config.json: github.owner and github.repo are required`);
324
324
  }
325
325
  const automaticModels = parseAutomaticModels(agent.automaticModels);
326
+ const modelConfig = agent.modelConfig ? parseModelRuntimeConfig(String(agent.model), JSON.stringify(agent.modelConfig)) : void 0;
326
327
  if (agent.model === "automatic" && (!automaticModels || automaticModels.length < 2)) {
327
328
  throw new Error("kody.config.json: Automatic requires at least two agent.automaticModels");
328
329
  }
@@ -343,6 +344,7 @@ function loadConfig(projectDir = process.cwd()) {
343
344
  },
344
345
  agent: {
345
346
  model: String(agent.model),
347
+ ...modelConfig ? { modelConfig } : {},
346
348
  ...automaticModels ? { automaticModels } : {},
347
349
  ...parsePerImplementation(agent.perImplementation),
348
350
  ...parsePerImplementationReasoningEffort(agent.perImplementationReasoningEffort),
@@ -16076,13 +16078,15 @@ function defaultBranchFromGit(cwd) {
16076
16078
  }
16077
16079
  }
16078
16080
  }
16079
- function performInit(cwd, force) {
16081
+ function performInit(cwd, force, workflowOnly = false) {
16080
16082
  const wrote = [];
16081
16083
  const skipped = [];
16082
16084
  const ownerRepo = detectOwnerRepo(cwd);
16083
16085
  const defaultBranch = defaultBranchFromGit(cwd);
16084
16086
  const configPath = path39.join(cwd, "kody.config.json");
16085
- if (fs40.existsSync(configPath) && !force) {
16087
+ if (workflowOnly) {
16088
+ skipped.push("kody.config.json");
16089
+ } else if (fs40.existsSync(configPath) && !force) {
16086
16090
  skipped.push("kody.config.json");
16087
16091
  } else {
16088
16092
  const cfg = makeConfig(cwd, ownerRepo, defaultBranch);
@@ -16117,8 +16121,9 @@ var init_initFlow = __esm({
16117
16121
  init_workflow_template();
16118
16122
  initFlow = async (ctx) => {
16119
16123
  const force = ctx.args.force === true;
16124
+ const workflowOnly = ctx.args.workflowOnly === true;
16120
16125
  const cwd = ctx.cwd;
16121
- const { wrote, skipped, labels } = performInit(cwd, force);
16126
+ const { wrote, skipped, labels } = performInit(cwd, force || workflowOnly, workflowOnly);
16122
16127
  process.stdout.write("\u2192 kody-engine init\n");
16123
16128
  for (const f of wrote) process.stdout.write(` wrote ${f}
16124
16129
  `);
@@ -23113,7 +23118,9 @@ async function runImplementation(profileName, input) {
23113
23118
  const reasoningEffort = config.agent.perImplementationReasoningEffort?.[profileName] ?? profile.claudeCode.reasoningEffort ?? (profileHasThinkingTokens ? void 0 : config.agent.reasoningEffort);
23114
23119
  let modelCandidates;
23115
23120
  try {
23116
- modelCandidates = modelSpec === "automatic" ? config.agent.automaticModels ?? [] : [parseProviderModel(modelSpec)];
23121
+ modelCandidates = modelSpec === "automatic" ? config.agent.automaticModels ?? [] : [
23122
+ modelSpec === config.agent.model && config.agent.modelConfig ? config.agent.modelConfig : parseProviderModel(modelSpec)
23123
+ ];
23117
23124
  if (modelCandidates.length === 0) throw new Error("Automatic has no configured models");
23118
23125
  } catch (err) {
23119
23126
  return finishAndEnd({
@@ -9,6 +9,13 @@
9
9
  "type": "bool",
10
10
  "required": false,
11
11
  "describe": "Overwrite existing generated files instead of skipping them."
12
+ },
13
+ {
14
+ "name": "workflowOnly",
15
+ "flag": "--workflow-only",
16
+ "type": "bool",
17
+ "required": false,
18
+ "describe": "Refresh only the generated GitHub Actions launcher and preserve kody.config.json."
12
19
  }
13
20
  ],
14
21
  "claudeCode": {
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.4.632",
3
+ "version": "0.4.634",
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
  "repository": {
@@ -17,30 +17,6 @@
17
17
  "docs/delivery-boundary.md",
18
18
  "kody.config.schema.json"
19
19
  ],
20
- "scripts": {
21
- "kody:run": "tsx bin/kody.ts",
22
- "serve": "tsx bin/kody.ts serve",
23
- "serve:vscode": "tsx bin/kody.ts serve vscode",
24
- "serve:claude": "tsx bin/kody.ts serve claude",
25
- "clean:dist": "node scripts/clean-dist.cjs",
26
- "build": "pnpm clean:dist && tsup && node scripts/copy-assets.cjs",
27
- "check:modularity": "tsx scripts/check-script-modularity.ts",
28
- "pretest": "pnpm check:modularity",
29
- "test": "vitest run tests/unit tests/int --coverage",
30
- "posttest": "tsx scripts/check-coverage-floor.ts",
31
- "test:smoke": "vitest run tests/smoke --no-coverage",
32
- "test:e2e": "vitest run tests/e2e --no-coverage",
33
- "verify:live-release": "tsx scripts/live-release-gate.ts",
34
- "test:runtime-services": "node --test \"tests/runtime-services/*.test.mjs\"",
35
- "test:all": "vitest run tests --no-coverage",
36
- "typecheck": "tsc --noEmit",
37
- "lint": "biome check",
38
- "lint:fix": "biome check --write",
39
- "format": "biome format --write",
40
- "verify:package": "node scripts/verify-package-tarball.cjs",
41
- "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",
42
- "prepublishOnly": "pnpm typecheck && pnpm test:runtime-services && pnpm build && pnpm verify:package"
43
- },
44
20
  "dependencies": {
45
21
  "@actions/cache": "^6.0.0",
46
22
  "@anthropic-ai/claude-agent-sdk": "0.2.119",
@@ -63,5 +39,28 @@
63
39
  "node": ">=22"
64
40
  },
65
41
  "homepage": "https://github.com/aharonyaircohen/kody-engine",
66
- "bugs": "https://github.com/aharonyaircohen/kody-engine/issues"
67
- }
42
+ "bugs": "https://github.com/aharonyaircohen/kody-engine/issues",
43
+ "scripts": {
44
+ "kody:run": "tsx bin/kody.ts",
45
+ "serve": "tsx bin/kody.ts serve",
46
+ "serve:vscode": "tsx bin/kody.ts serve vscode",
47
+ "serve:claude": "tsx bin/kody.ts serve claude",
48
+ "clean:dist": "node scripts/clean-dist.cjs",
49
+ "build": "pnpm clean:dist && tsup && node scripts/copy-assets.cjs",
50
+ "check:modularity": "tsx scripts/check-script-modularity.ts",
51
+ "pretest": "pnpm check:modularity",
52
+ "test": "vitest run tests/unit tests/int --coverage",
53
+ "posttest": "tsx scripts/check-coverage-floor.ts",
54
+ "test:smoke": "vitest run tests/smoke --no-coverage",
55
+ "test:e2e": "vitest run tests/e2e --no-coverage",
56
+ "verify:live-release": "tsx scripts/live-release-gate.ts",
57
+ "test:runtime-services": "node --test \"tests/runtime-services/*.test.mjs\"",
58
+ "test:all": "vitest run tests --no-coverage",
59
+ "typecheck": "tsc --noEmit",
60
+ "lint": "biome check",
61
+ "lint:fix": "biome check --write",
62
+ "format": "biome format --write",
63
+ "verify:package": "node scripts/verify-package-tarball.cjs",
64
+ "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"
65
+ }
66
+ }