@kody-ade/kody-engine 0.4.512 → 0.4.514

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 +14 -8
  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.512",
18
+ version: "0.4.514",
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",
@@ -7323,18 +7323,19 @@ function resolveLitellmCommand() {
7323
7323
  return "litellm";
7324
7324
  } catch {
7325
7325
  if (!litellmImportable()) {
7326
- process.stderr.write("\u2192 kody: litellm not found \u2014 installing (pip install 'litellm[proxy]')\n");
7326
+ process.stderr.write(`\u2192 kody: litellm not found \u2014 installing (pip install ${LITELLM_PIP_PACKAGES.join(" ")})
7327
+ `);
7327
7328
  let installed = false;
7328
7329
  for (const pip of ["pip", "pip3"]) {
7329
7330
  try {
7330
- execFileSync4(pip, ["install", "litellm[proxy]"], { timeout: 3e5, stdio: "inherit" });
7331
+ execFileSync4(pip, ["install", ...LITELLM_PIP_PACKAGES], { timeout: 3e5, stdio: "inherit" });
7331
7332
  installed = true;
7332
7333
  break;
7333
7334
  } catch {
7334
7335
  }
7335
7336
  }
7336
7337
  if (!installed || !litellmImportable()) {
7337
- throw new Error("litellm not installed and auto-install failed \u2014 run: pip install 'litellm[proxy]'");
7338
+ throw new Error(`litellm not installed and auto-install failed \u2014 run: pip install ${LITELLM_PIP_PACKAGES.join(" ")}`);
7338
7339
  }
7339
7340
  }
7340
7341
  const script = locateLitellmScript();
@@ -7484,11 +7485,12 @@ function stripBlockingEnv(env) {
7484
7485
  delete out.AI_BASE_URL;
7485
7486
  return out;
7486
7487
  }
7487
- var DEFAULT_LITELLM_STARTUP_TIMEOUT_SEC, LITELLM_HEALTH_POLL_INTERVAL_MS, CLAUDE_CODE_PROXY_MODEL_ALIASES;
7488
+ var LITELLM_PIP_PACKAGES, DEFAULT_LITELLM_STARTUP_TIMEOUT_SEC, LITELLM_HEALTH_POLL_INTERVAL_MS, CLAUDE_CODE_PROXY_MODEL_ALIASES;
7488
7489
  var init_litellm = __esm({
7489
7490
  "src/litellm.ts"() {
7490
7491
  "use strict";
7491
7492
  init_config();
7493
+ LITELLM_PIP_PACKAGES = ["litellm[proxy]", "fastapi>=0.136.3,<0.141"];
7492
7494
  DEFAULT_LITELLM_STARTUP_TIMEOUT_SEC = 150;
7493
7495
  LITELLM_HEALTH_POLL_INTERVAL_MS = 2e3;
7494
7496
  CLAUDE_CODE_PROXY_MODEL_ALIASES = ["claude-haiku-4-5-20251001", "haiku"];
@@ -24849,6 +24851,7 @@ init_gha();
24849
24851
  init_issue();
24850
24852
  init_job();
24851
24853
  init_lifecycleLabels();
24854
+ init_litellm();
24852
24855
  init_loopDefinitions();
24853
24856
  init_registry();
24854
24857
 
@@ -25142,8 +25145,9 @@ function installLitellmIfNeeded(cwd) {
25142
25145
  return 0;
25143
25146
  } catch {
25144
25147
  }
25145
- process.stdout.write("\u2192 kody: installing litellm (pip install 'litellm[proxy]')\n");
25146
- const installCode = shellOut("pip", ["install", "litellm[proxy]"], cwd);
25148
+ process.stdout.write(`\u2192 kody: installing litellm (pip install ${LITELLM_PIP_PACKAGES.join(" ")})
25149
+ `);
25150
+ const installCode = shellOut("pip", ["install", ...LITELLM_PIP_PACKAGES], cwd);
25147
25151
  if (installCode === 0) return 0;
25148
25152
  try {
25149
25153
  execFileSync24("python3", ["-c", "import litellm"], { stdio: "pipe" });
@@ -25289,7 +25293,9 @@ async function runCi(argv) {
25289
25293
  } else if (noTarget && capabilityInput) {
25290
25294
  forceRunAction = capabilityInput;
25291
25295
  if (messageInput) {
25292
- const route = resolveCapabilityAction(capabilityInput, capabilitiesRoot(cwd));
25296
+ const route = resolveCapabilityAction(capabilityInput, capabilitiesRoot(cwd)) ?? dispatchScheduledWatches({ force: true, cwd }).find(
25297
+ (match) => match.action === capabilityInput || match.capability === capabilityInput || match.implementation === capabilityInput
25298
+ );
25293
25299
  const textInputs = route?.implementation ? (getProfileInputs(route.implementation, getRuntimeProfileRootsForCwd(cwd)) ?? []).filter(
25294
25300
  (input) => input.type === "string"
25295
25301
  ) : [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.4.512",
3
+ "version": "0.4.514",
4
4
  "description": "kody \u2014 autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative implementation profiles.",
5
5
  "license": "MIT",
6
6
  "type": "module",