@kody-ade/kody-engine 0.2.29 → 0.2.30

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/README.md CHANGED
@@ -18,7 +18,7 @@
18
18
  └─────────────────────────────────────────────┘
19
19
  ```
20
20
 
21
- Every top-level command is its own auto-discovered executable (`run`, `fix`, `fix-ci`, `resolve`, `review`, `plan`, `orchestrator`, `release`, `watch-*`, `init`). The router has no hardcoded command switch beyond `ci`/`help`/`version` — drop a new `src/executables/<name>/` directory with a `profile.json` + `prompt.md` and `kody2 <name>` starts working. The executor knows nothing about any specific command.
21
+ Every top-level command is its own auto-discovered executable (`run`, `fix`, `fix-ci`, `resolve`, `review`, `sync`, `plan`, `plan-verify`, `orchestrator`, `release`, `watch-*`, `init`). The router has no hardcoded command switch beyond `ci`/`help`/`version` — drop a new `src/executables/<name>/` directory with a `profile.json` + `prompt.md` and `kody2 <name>` starts working. The executor knows nothing about any specific command.
22
22
 
23
23
  ## Install in a consumer repo
24
24
 
@@ -32,13 +32,22 @@ Every top-level command is its own auto-discovered executable (`run`, `fix`, `fi
32
32
 
33
33
  ```
34
34
  kody2 run --issue <N> # implement an issue
35
+ kody2 plan --issue <N> # produce a plan artifact for run
35
36
  kody2 fix --pr <N> [--feedback ...] # apply PR review feedback
36
37
  kody2 fix-ci --pr <N> [--run-id <ID>] # fix failing CI
37
38
  kody2 resolve --pr <N> # merge default branch in, resolve conflicts
39
+ kody2 sync --pr <N> # merge default branch into PR branch (no agent)
38
40
  kody2 review --pr <N> # read-only structured PR review
39
- kody2 ci --issue <N> # CI preflight + run
41
+ kody2 ci --issue <N> # CI preflight + run (issue/PR automation)
42
+ kody2 chat [--session <id>] # dashboard-driven chat session
40
43
  ```
41
44
 
45
+ `kody2 chat` reads `.kody/sessions/<id>.jsonl`, runs one agent turn, appends
46
+ the reply, and writes `chat.message` + `chat.done` events to
47
+ `.kody/events/<id>.jsonl` (plus optional HTTP push to a dashboard ingest URL).
48
+ Inputs can come from flags or env (`SESSION_ID`, `INIT_MESSAGE`, `MODEL`,
49
+ `DASHBOARD_URL`) — the yaml template passes the latter.
50
+
42
51
  ## Profiles
43
52
 
44
53
  A profile is declarative JSON + an adjacent `prompt.md`. See any directory under `src/executables/` for examples. Adding a new command = new directory + profile + prompt + registering any new scripts under `src/scripts/`. No executor, entry, or dispatch changes.
package/dist/bin/kody2.js CHANGED
@@ -3,7 +3,7 @@
3
3
  // package.json
4
4
  var package_default = {
5
5
  name: "@kody-ade/kody-engine",
6
- version: "0.2.29",
6
+ version: "0.2.30",
7
7
  description: "kody2 \u2014 autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative executable profiles.",
8
8
  license: "MIT",
9
9
  type: "module",
@@ -1640,10 +1640,13 @@ function getPrComments(prNumber, cwd) {
1640
1640
  return [];
1641
1641
  }
1642
1642
  }
1643
- var KODY_COMMENT_PREFIXES = ["\u2699\uFE0F kody2", "\u2705 kody2", "\u26A0\uFE0F kody2", "\u2139\uFE0F kody2", "\u2192 kody2"];
1643
+ var VERDICT_HEADING = /(^|\n)\s*#{1,6}\s*Verdict\s*:/i;
1644
+ function isReviewShaped(body) {
1645
+ return VERDICT_HEADING.test(body);
1646
+ }
1644
1647
  function getPrLatestReviewBody(prNumber, cwd) {
1645
1648
  const reviews = getPrReviews(prNumber, cwd).filter((r) => r.body.trim().length > 0).map((r) => ({ body: r.body, at: r.submittedAt }));
1646
- const comments = getPrComments(prNumber, cwd).filter((c) => !KODY_COMMENT_PREFIXES.some((p) => c.body.startsWith(p))).map((c) => ({ body: c.body, at: c.createdAt }));
1649
+ const comments = getPrComments(prNumber, cwd).filter((c) => isReviewShaped(c.body)).map((c) => ({ body: c.body, at: c.createdAt }));
1647
1650
  const all = [...reviews, ...comments].sort((a, b) => (b.at || "").localeCompare(a.at || ""));
1648
1651
  if (all.length > 0) return all[0].body;
1649
1652
  const pr = getPr(prNumber, cwd);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.2.29",
3
+ "version": "0.2.30",
4
4
  "description": "kody2 — autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative executable profiles.",
5
5
  "license": "MIT",
6
6
  "type": "module",