@kody-ade/kody-engine 0.4.104 → 0.4.106
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 +11 -2
- package/dist/executables/goal-scheduler/scheduler.sh +0 -0
- package/dist/executables/plan/agents/plan-scout.md +25 -0
- package/dist/executables/plan/profile.json +5 -2
- package/dist/executables/plan/prompt.md +12 -0
- package/dist/executables/release-deploy/deploy.sh +0 -0
- package/dist/executables/release-prepare/prepare.sh +0 -0
- package/dist/executables/release-publish/publish.sh +0 -0
- package/dist/executables/research/agents/research-scout.md +24 -0
- package/dist/executables/research/profile.json +3 -1
- package/dist/executables/research/prompt.md +12 -0
- package/dist/executables/resolve/apply-prefer.sh +0 -0
- package/dist/executables/revert/revert.sh +0 -0
- package/dist/executables/review/profile.json +2 -0
- package/package.json +20 -21
- package/templates/kody.yml +1 -1
package/dist/bin/kody.js
CHANGED
|
@@ -880,7 +880,7 @@ var init_loadPriorArt = __esm({
|
|
|
880
880
|
// package.json
|
|
881
881
|
var package_default = {
|
|
882
882
|
name: "@kody-ade/kody-engine",
|
|
883
|
-
version: "0.4.
|
|
883
|
+
version: "0.4.106",
|
|
884
884
|
description: "kody \u2014 autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative executable profiles.",
|
|
885
885
|
license: "MIT",
|
|
886
886
|
type: "module",
|
|
@@ -4626,7 +4626,16 @@ var checkCoverageWithRetry = async (ctx) => {
|
|
|
4626
4626
|
|
|
4627
4627
|
# Coverage failure (retry)
|
|
4628
4628
|
${formatMissesForFeedback(misses)}`;
|
|
4629
|
-
|
|
4629
|
+
let retry;
|
|
4630
|
+
try {
|
|
4631
|
+
retry = await invoker(retryPrompt);
|
|
4632
|
+
} catch (err) {
|
|
4633
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
4634
|
+
process.stderr.write(`[kody] coverage retry agent failed (${msg}); keeping ${misses.length} miss(es) \u2014 PR will draft
|
|
4635
|
+
`);
|
|
4636
|
+
ctx.data.coverageMisses = misses;
|
|
4637
|
+
return;
|
|
4638
|
+
}
|
|
4630
4639
|
const retryParsed = parseAgentResult(retry.finalText);
|
|
4631
4640
|
if (retry.outcome === "completed" && retryParsed.done) {
|
|
4632
4641
|
ctx.data.agentDone = true;
|
|
File without changes
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-scout
|
|
3
|
+
description: Read-only implementation scout for one assigned area of a planning task. Deep-reads the files a change will touch, verifies the API surface, names sibling patterns to reuse, and reports with real file:line citations. Never edits files, never runs git/gh.
|
|
4
|
+
tools: Read, Grep, Glob, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You investigate ONE assigned area of a codebase for an implementation plan and report what an implementer needs to know. You are read-only: never edit files, never run `git`/`gh` write commands. Use Read / Grep / Glob and read-only `git show`/`git log` to inspect.
|
|
8
|
+
|
|
9
|
+
The lead will tell you which files/area/approach to focus on. Stay in that lane — another scout covers the rest.
|
|
10
|
+
|
|
11
|
+
Method:
|
|
12
|
+
- Read the FULL files this area will change, plus their tests, plus at least one sibling that already implements the same pattern.
|
|
13
|
+
- Verify every hook/import/SDK method/config key you reference: give the exact definition path (a `node_modules/...` or repo path you actually read) or mark it `UNVERIFIED`. Do not guess.
|
|
14
|
+
- Note edge cases, data-state transitions, and failure modes in this area.
|
|
15
|
+
- Cite real `path/to/file:line`. If a needed file doesn't exist, say so — don't invent it.
|
|
16
|
+
|
|
17
|
+
Return ONLY a concise findings block — no preamble, no final-plan formatting (the lead assembles the plan):
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
AREA: <the area/files you were assigned>
|
|
21
|
+
- changes: <file:line — current state → target state, exact edit location>
|
|
22
|
+
- pattern to reuse: <sibling path + which idioms/APIs are mirrored, or "new convention because …">
|
|
23
|
+
- API surface: <symbol → definition path, or UNVERIFIED>
|
|
24
|
+
- risks/edge cases/tests: <bullets an implementer must handle>
|
|
25
|
+
```
|
|
@@ -15,17 +15,20 @@
|
|
|
15
15
|
"model": "inherit",
|
|
16
16
|
"permissionMode": "default",
|
|
17
17
|
"maxTurns": null,
|
|
18
|
+
"maxThinkingTokens": 8000,
|
|
18
19
|
"systemPromptAppend": null,
|
|
20
|
+
"cacheable": true,
|
|
19
21
|
"tools": [
|
|
20
22
|
"Read",
|
|
21
23
|
"Grep",
|
|
22
24
|
"Glob",
|
|
23
|
-
"Bash"
|
|
25
|
+
"Bash",
|
|
26
|
+
"Task"
|
|
24
27
|
],
|
|
25
28
|
"hooks": ["block-write"],
|
|
26
29
|
"skills": [],
|
|
27
30
|
"commands": [],
|
|
28
|
-
"subagents": [],
|
|
31
|
+
"subagents": ["plan-scout"],
|
|
29
32
|
"plugins": [],
|
|
30
33
|
"mcpServers": []
|
|
31
34
|
},
|
|
@@ -60,6 +60,18 @@ If a file you need to read does not exist, say so explicitly in the plan under "
|
|
|
60
60
|
|
|
61
61
|
---
|
|
62
62
|
|
|
63
|
+
# Parallel investigation (do this to meet the Research floor faster)
|
|
64
|
+
|
|
65
|
+
You have a `plan-scout` subagent available via the `Task` tool. Use it to satisfy the Research floor in parallel:
|
|
66
|
+
|
|
67
|
+
1. **You (the lead) fetch any issue URLs via Playwright yourself** — don't delegate that to scouts.
|
|
68
|
+
2. Identify the distinct areas/files this change will touch (e.g. "the field component", "the data hook", "the migration", "the tests"). In a SINGLE message, dispatch one `plan-scout` `Task` per area so they run concurrently. Each scout deep-reads its area and reports exact change locations, the sibling pattern to reuse, API-surface verification, and risks/edge cases.
|
|
69
|
+
3. Wait for all scouts, then synthesize their findings into the plan below. Every citation and every "API surface verification" entry must come from a file a scout (or you) actually read — UNVERIFIED stays UNVERIFIED.
|
|
70
|
+
|
|
71
|
+
For a small single-file change, one scout (or your own reading) is fine — don't manufacture parallelism that isn't there.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
63
75
|
# Required output
|
|
64
76
|
|
|
65
77
|
Your FINAL message must be exactly this shape (no extra text before or after):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: research-scout
|
|
3
|
+
description: Read-only repo investigator for one assigned area of a research task. Deep-reads files, maps relevant modules/patterns/prior-art, and reports findings with real file:line citations. Never edits files, never runs git/gh.
|
|
4
|
+
tools: Read, Grep, Glob, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You investigate ONE assigned area of a codebase for a research task and report what you find. You are read-only: never edit files, never run `git`/`gh` write commands. Use Read / Grep / Glob and read-only `git show`/`git log` to inspect.
|
|
8
|
+
|
|
9
|
+
The lead will tell you which area/question to focus on. Stay in that lane — another scout covers the rest.
|
|
10
|
+
|
|
11
|
+
Method:
|
|
12
|
+
- Read the FULL relevant files, not just grep hits. Understanding beats coverage.
|
|
13
|
+
- Map the modules, functions, and existing patterns an implementer would need to find by hand for this area.
|
|
14
|
+
- Cite real `path/to/file:line` from files you actually read. Never invent paths or guess at contents of files you couldn't open — say "could not read X" instead.
|
|
15
|
+
|
|
16
|
+
Return ONLY a concise findings block — no preamble, no final-doc formatting (the lead assembles the doc):
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
AREA: <the area you were assigned>
|
|
20
|
+
- findings:
|
|
21
|
+
- <file:line — what's there and why it matters for this issue>
|
|
22
|
+
- patterns to reuse: <sibling module path + one line, or "none found (searched X)">
|
|
23
|
+
- open questions / gaps: <anything an implementer still wouldn't know, or "none">
|
|
24
|
+
```
|
|
@@ -16,17 +16,19 @@
|
|
|
16
16
|
"permissionMode": "default",
|
|
17
17
|
"maxTurns": null,
|
|
18
18
|
"systemPromptAppend": null,
|
|
19
|
+
"cacheable": true,
|
|
19
20
|
"tools": [
|
|
20
21
|
"Read",
|
|
21
22
|
"Grep",
|
|
22
23
|
"Glob",
|
|
23
24
|
"Bash",
|
|
25
|
+
"Task",
|
|
24
26
|
"mcp__playwright"
|
|
25
27
|
],
|
|
26
28
|
"hooks": ["block-write"],
|
|
27
29
|
"skills": [],
|
|
28
30
|
"commands": [],
|
|
29
|
-
"subagents": [],
|
|
31
|
+
"subagents": ["research-scout"],
|
|
30
32
|
"plugins": [],
|
|
31
33
|
"mcpServers": [
|
|
32
34
|
{
|
|
@@ -33,6 +33,18 @@ If a prior-art block is present above, scan the diffs and review comments — th
|
|
|
33
33
|
|
|
34
34
|
---
|
|
35
35
|
|
|
36
|
+
# Parallel investigation (do this before writing the doc)
|
|
37
|
+
|
|
38
|
+
You have a `research-scout` subagent available via the `Task` tool. Use it to investigate the repo in parallel:
|
|
39
|
+
|
|
40
|
+
1. **You (the lead) do the Playwright external-references step yourself** — keep the browser in one place; do NOT delegate URL fetching to scouts.
|
|
41
|
+
2. From the issue, identify 2–4 distinct investigation areas (e.g. "where the feature would live", "existing pattern X", "prior-art outcomes", "data/state touched"). In a SINGLE message, dispatch one `research-scout` `Task` per area so they run concurrently. Give each scout its specific area and the issue context.
|
|
42
|
+
3. Wait for all scouts, then synthesize their findings into the doc below. Every `path/to/file:line` citation must come from a file a scout (or you) actually read — never invent paths.
|
|
43
|
+
|
|
44
|
+
For a trivial issue where one area suffices, a single scout (or your own reading) is fine — don't manufacture parallelism that isn't there.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
36
48
|
# Required output
|
|
37
49
|
|
|
38
50
|
Your FINAL message must be exactly this shape (no extra text before or after):
|
|
File without changes
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kody-ade/kody-engine",
|
|
3
|
-
"version": "0.4.
|
|
4
|
-
"description": "kody
|
|
3
|
+
"version": "0.4.106",
|
|
4
|
+
"description": "kody — autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative executable profiles.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|
|
@@ -12,23 +12,6 @@
|
|
|
12
12
|
"templates",
|
|
13
13
|
"kody.config.schema.json"
|
|
14
14
|
],
|
|
15
|
-
"scripts": {
|
|
16
|
-
"kody:run": "tsx bin/kody.ts",
|
|
17
|
-
"serve": "tsx bin/kody.ts serve",
|
|
18
|
-
"serve:vscode": "tsx bin/kody.ts serve vscode",
|
|
19
|
-
"serve:claude": "tsx bin/kody.ts serve claude",
|
|
20
|
-
"build": "tsup && node scripts/copy-assets.cjs",
|
|
21
|
-
"check:modularity": "tsx scripts/check-script-modularity.ts",
|
|
22
|
-
"pretest": "pnpm check:modularity",
|
|
23
|
-
"test": "vitest run tests/unit tests/int --no-coverage",
|
|
24
|
-
"test:e2e": "vitest run tests/e2e --no-coverage",
|
|
25
|
-
"test:all": "vitest run tests --no-coverage",
|
|
26
|
-
"typecheck": "tsc --noEmit",
|
|
27
|
-
"lint": "biome check",
|
|
28
|
-
"lint:fix": "biome check --write",
|
|
29
|
-
"format": "biome format --write",
|
|
30
|
-
"prepublishOnly": "pnpm build"
|
|
31
|
-
},
|
|
32
15
|
"dependencies": {
|
|
33
16
|
"@actions/cache": "^6.0.0",
|
|
34
17
|
"@anthropic-ai/claude-agent-sdk": "0.2.119",
|
|
@@ -50,5 +33,21 @@
|
|
|
50
33
|
"url": "git+https://github.com/aharonyaircohen/kody-engine.git"
|
|
51
34
|
},
|
|
52
35
|
"homepage": "https://github.com/aharonyaircohen/kody-engine",
|
|
53
|
-
"bugs": "https://github.com/aharonyaircohen/kody-engine/issues"
|
|
54
|
-
|
|
36
|
+
"bugs": "https://github.com/aharonyaircohen/kody-engine/issues",
|
|
37
|
+
"scripts": {
|
|
38
|
+
"kody:run": "tsx bin/kody.ts",
|
|
39
|
+
"serve": "tsx bin/kody.ts serve",
|
|
40
|
+
"serve:vscode": "tsx bin/kody.ts serve vscode",
|
|
41
|
+
"serve:claude": "tsx bin/kody.ts serve claude",
|
|
42
|
+
"build": "tsup && node scripts/copy-assets.cjs",
|
|
43
|
+
"check:modularity": "tsx scripts/check-script-modularity.ts",
|
|
44
|
+
"pretest": "pnpm check:modularity",
|
|
45
|
+
"test": "vitest run tests/unit tests/int --no-coverage",
|
|
46
|
+
"test:e2e": "vitest run tests/e2e --no-coverage",
|
|
47
|
+
"test:all": "vitest run tests --no-coverage",
|
|
48
|
+
"typecheck": "tsc --noEmit",
|
|
49
|
+
"lint": "biome check",
|
|
50
|
+
"lint:fix": "biome check --write",
|
|
51
|
+
"format": "biome format --write"
|
|
52
|
+
}
|
|
53
|
+
}
|
package/templates/kody.yml
CHANGED