@kody-ade/kody-engine 0.4.365 → 0.4.367

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 +31 -2
  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.365",
18
+ version: "0.4.367",
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",
@@ -2666,10 +2666,34 @@ function readCheckRuns(repoSlug, ref, ignoreNames) {
2666
2666
  ],
2667
2667
  ghOptions
2668
2668
  );
2669
+ let rawStatuses = "";
2670
+ try {
2671
+ rawStatuses = gh(
2672
+ [
2673
+ "api",
2674
+ `repos/${repoSlug}/commits/${sha}/status`,
2675
+ "--jq",
2676
+ ".statuses[] | {context, state, target_url}"
2677
+ ],
2678
+ ghOptions
2679
+ );
2680
+ } catch {
2681
+ }
2669
2682
  const ignore = new Set(ignoreNames.map((n) => n.toLowerCase()));
2670
2683
  const checks = raw.split("\n").map((l) => l.trim()).filter(Boolean).map((l) => JSON.parse(l)).filter((c) => !ignore.has(String(c.name).toLowerCase()));
2684
+ const statuses = rawStatuses.split("\n").map((l) => l.trim()).filter(Boolean).map((l) => JSON.parse(l)).filter((status) => !ignore.has(String(status.context).toLowerCase()));
2671
2685
  const failing = checks.filter((c) => CHECK_FAIL_CONCLUSIONS.has(String(c.conclusion ?? "").toUpperCase())).map((c) => ({ name: c.name, conclusion: String(c.conclusion), detailsUrl: c.details_url }));
2686
+ failing.push(
2687
+ ...statuses.filter((status) => ["error", "failure"].includes(String(status.state).toLowerCase())).map((status) => ({
2688
+ name: status.context,
2689
+ conclusion: status.state,
2690
+ detailsUrl: status.target_url ?? ""
2691
+ }))
2692
+ );
2672
2693
  const pending = checks.filter((c) => String(c.status).toLowerCase() !== "completed").map((c) => ({ name: c.name, status: c.status }));
2694
+ pending.push(
2695
+ ...statuses.filter((status) => String(status.state).toLowerCase() === "pending").map((status) => ({ name: status.context, status: status.state }))
2696
+ );
2673
2697
  const state = failing.length > 0 ? "RED" : pending.length > 0 ? "PENDING" : "GREEN";
2674
2698
  return { sha, state, failing, pending };
2675
2699
  }
@@ -6860,6 +6884,10 @@ var init_pushWithRetry = __esm({
6860
6884
  import { execFileSync as execFileSync7 } from "child_process";
6861
6885
  import * as fs24 from "fs";
6862
6886
  import * as path23 from "path";
6887
+ function isGitHubYamlPath(filePath) {
6888
+ const normalized = filePath.replace(/^\.\/+/, "");
6889
+ return normalized.startsWith(".github/") && /\.ya?ml$/i.test(normalized);
6890
+ }
6863
6891
  function git(args, cwd) {
6864
6892
  try {
6865
6893
  return execFileSync7("git", args, {
@@ -6923,13 +6951,14 @@ function abortUnfinishedGitOps(cwd) {
6923
6951
  }
6924
6952
  function isForbiddenPath(p) {
6925
6953
  if (FORBIDDEN_PATH_EXACT.has(p)) return true;
6954
+ if (isGitHubYamlPath(p)) return true;
6926
6955
  for (const pre of ALLOWED_PATH_PREFIXES) if (p.startsWith(pre)) return false;
6927
6956
  for (const pre of FORBIDDEN_PATH_PREFIXES) if (p.startsWith(pre)) return true;
6928
6957
  for (const suf of FORBIDDEN_PATH_SUFFIXES) if (p.endsWith(suf)) return true;
6929
6958
  return false;
6930
6959
  }
6931
6960
  function listChangedFiles(cwd) {
6932
- const raw = execFileSync7("git", ["status", "--porcelain=v1", "-z"], {
6961
+ const raw = execFileSync7("git", ["status", "--porcelain=v1", "-z", "--untracked-files=all"], {
6933
6962
  encoding: "utf-8",
6934
6963
  cwd,
6935
6964
  env: { ...process.env, HUSKY: "0", SKIP_HOOKS: "1" },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.4.365",
3
+ "version": "0.4.367",
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",