@kody-ade/kody-engine 0.4.421 → 0.4.423

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 +24 -4
  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.421",
18
+ version: "0.4.423",
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",
@@ -1895,6 +1895,11 @@ function definitionsRoot(cwd = process.cwd()) {
1895
1895
  if (fs5.existsSync(hydrated)) return hydrated;
1896
1896
  return override ? path6.resolve(override) : hydrated;
1897
1897
  }
1898
+ function hasExplicitDefinitionsRoot(cwd = process.cwd(), env = process.env) {
1899
+ const root = env.KODY_DEFINITIONS_ROOT?.trim();
1900
+ const rootCwd = env.KODY_DEFINITIONS_ROOT_CWD?.trim();
1901
+ return Boolean(root && rootCwd && path6.resolve(cwd) === path6.resolve(rootCwd));
1902
+ }
1898
1903
  function capabilitiesRoot(cwd = process.cwd()) {
1899
1904
  return path6.join(definitionsRoot(cwd), "capabilities");
1900
1905
  }
@@ -24015,6 +24020,7 @@ function coerceBare(spec, value) {
24015
24020
  }
24016
24021
 
24017
24022
  // src/kody-cli.ts
24023
+ init_capabilityFolders();
24018
24024
  init_definition_paths();
24019
24025
  init_gha();
24020
24026
  init_issue();
@@ -24469,7 +24475,16 @@ async function runCi(argv) {
24469
24475
  if (forceRunAction) {
24470
24476
  const config = earlyConfig ?? loadConfig(cwd);
24471
24477
  const manualGoalManager = forceRunAction === "goal-manager";
24472
- const capabilityRoute = manualGoalManager ? null : resolveCapabilityAction(forceRunAction, capabilitiesRoot(cwd));
24478
+ const capabilityRoot = capabilitiesRoot(cwd);
24479
+ const directCapability = manualGoalManager ? null : resolveCapabilityFolder(forceRunAction, capabilityRoot);
24480
+ const directExecution = directCapability ? resolveCapabilityExecution(directCapability, cwd) : null;
24481
+ const capabilityRoute = manualGoalManager ? null : resolveCapabilityAction(forceRunAction, capabilityRoot) ?? (directCapability && directExecution && (directCapability.config.action ?? directCapability.slug) === forceRunAction ? {
24482
+ action: forceRunAction,
24483
+ capability: directCapability.slug,
24484
+ implementation: directExecution.implementation,
24485
+ cliArgs: directExecution.cliArgs,
24486
+ source: "project-folder"
24487
+ } : null);
24473
24488
  const workflowRoute = manualGoalManager || capabilityRoute || !readWorkflowDefinition(config, cwd, forceRunAction) ? void 0 : {
24474
24489
  workflow: forceRunAction,
24475
24490
  cliArgs: {}
@@ -24486,8 +24501,12 @@ async function runCi(argv) {
24486
24501
  if (!route) {
24487
24502
  const root = capabilitiesRoot(cwd);
24488
24503
  const available = listCapabilityActions(root).map((item) => item.action);
24504
+ const folders = listCapabilityFolderSlugs(root).map((slug) => {
24505
+ const folder = readCapabilityFolder(root, slug);
24506
+ return folder ? `${slug}:${folder.config.action ?? slug}:${folder.config.role ?? "no-role"}` : `${slug}:unreadable`;
24507
+ });
24489
24508
  process.stderr.write(
24490
- `[kody] manual one-shot action '${forceRunAction}' has no capability action or workflow (capabilitiesRoot=${root}, available=${available.join(",") || "none"})
24509
+ `[kody] manual one-shot action '${forceRunAction}' has no capability action or workflow (capabilitiesRoot=${root}, available=${available.join(",") || "none"}, folders=${folders.join(",") || "none"})
24491
24510
  `
24492
24511
  );
24493
24512
  return 64;
@@ -26281,6 +26300,7 @@ ${CHAT_HELP}`);
26281
26300
 
26282
26301
  // src/entry.ts
26283
26302
  init_config();
26303
+ init_definition_paths();
26284
26304
 
26285
26305
  // src/definition-hydration.ts
26286
26306
  init_state_backend();
@@ -27948,7 +27968,7 @@ async function main(argv = process.argv.slice(2)) {
27948
27968
  unpackAllSecrets();
27949
27969
  const cwdFlag = argv.indexOf("--cwd");
27950
27970
  const definitionCwd = cwdFlag >= 0 && argv[cwdFlag + 1] ? argv[cwdFlag + 1] : process.cwd();
27951
- const shouldHydrate = Boolean(process.env.CONVEX_URL?.trim()) || process.env.GITHUB_ACTIONS === "true" && Boolean(process.env.GITHUB_EVENT_NAME);
27971
+ const shouldHydrate = !hasExplicitDefinitionsRoot(definitionCwd) && (Boolean(process.env.CONVEX_URL?.trim()) || process.env.GITHUB_ACTIONS === "true" && Boolean(process.env.GITHUB_EVENT_NAME));
27952
27972
  if (shouldHydrate) {
27953
27973
  try {
27954
27974
  await hydrateDefinitionsFromEnv(definitionCwd);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.4.421",
3
+ "version": "0.4.423",
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",