@kody-ade/kody-engine 0.2.27 → 0.2.28
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 +3 -1
- package/dist/bin/kody2.js +14 -1
- package/dist/executables/types.ts +2 -0
- package/package.json +15 -14
- package/templates/kody2.yml +2 -2
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,9 +32,11 @@ 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
41
|
kody2 ci --issue <N> # CI preflight + run
|
|
40
42
|
```
|
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.
|
|
6
|
+
version: "0.2.28",
|
|
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",
|
|
@@ -359,6 +359,9 @@ async function runAgent(opts) {
|
|
|
359
359
|
if (typeof opts.maxTurns === "number" && opts.maxTurns > 0) {
|
|
360
360
|
queryOptions.maxTurns = opts.maxTurns;
|
|
361
361
|
}
|
|
362
|
+
if (typeof opts.maxThinkingTokens === "number" && opts.maxThinkingTokens > 0) {
|
|
363
|
+
queryOptions.maxThinkingTokens = opts.maxThinkingTokens;
|
|
364
|
+
}
|
|
362
365
|
if (typeof opts.systemPromptAppend === "string" && opts.systemPromptAppend.length > 0) {
|
|
363
366
|
queryOptions.systemPrompt = { type: "preset", preset: "claude_code", append: opts.systemPromptAppend };
|
|
364
367
|
}
|
|
@@ -837,6 +840,7 @@ function parseClaudeCode(p, raw) {
|
|
|
837
840
|
model: typeof r.model === "string" ? r.model : "inherit",
|
|
838
841
|
permissionMode,
|
|
839
842
|
maxTurns: typeof r.maxTurns === "number" ? r.maxTurns : null,
|
|
843
|
+
maxThinkingTokens: typeof r.maxThinkingTokens === "number" ? r.maxThinkingTokens : null,
|
|
840
844
|
systemPromptAppend: typeof r.systemPromptAppend === "string" ? r.systemPromptAppend : null,
|
|
841
845
|
tools,
|
|
842
846
|
hooks: Array.isArray(r.hooks) ? r.hooks : [],
|
|
@@ -3807,6 +3811,7 @@ async function runExecutable(profileName, input) {
|
|
|
3807
3811
|
mcpServers: profile.claudeCode.mcpServers,
|
|
3808
3812
|
pluginPaths: pluginPaths.length > 0 ? pluginPaths : void 0,
|
|
3809
3813
|
maxTurns: profile.claudeCode.maxTurns,
|
|
3814
|
+
maxThinkingTokens: profile.claudeCode.maxThinkingTokens,
|
|
3810
3815
|
systemPromptAppend: profile.claudeCode.systemPromptAppend,
|
|
3811
3816
|
settingSources: profile.claudeCode.settingSources
|
|
3812
3817
|
});
|
|
@@ -4346,6 +4351,14 @@ ${CHAT_HELP}`);
|
|
|
4346
4351
|
`);
|
|
4347
4352
|
return 64;
|
|
4348
4353
|
}
|
|
4354
|
+
if (needsLitellmProxy(model)) {
|
|
4355
|
+
const code = installLitellmIfNeeded(cwd);
|
|
4356
|
+
if (code !== 0) {
|
|
4357
|
+
process.stderr.write(`error: litellm install failed (exit ${code})
|
|
4358
|
+
`);
|
|
4359
|
+
return 99;
|
|
4360
|
+
}
|
|
4361
|
+
}
|
|
4349
4362
|
let litellm = null;
|
|
4350
4363
|
try {
|
|
4351
4364
|
litellm = await startLitellmIfNeeded(model, cwd);
|
|
@@ -87,6 +87,8 @@ export interface ClaudeCodeSpec {
|
|
|
87
87
|
permissionMode: "default" | "acceptEdits" | "plan" | "bypassPermissions"
|
|
88
88
|
/** null = unbounded. */
|
|
89
89
|
maxTurns: number | null
|
|
90
|
+
/** Extended-thinking token budget. null = SDK default. */
|
|
91
|
+
maxThinkingTokens: number | null
|
|
90
92
|
/** Text appended on top of Claude Code's baseline system prompt. */
|
|
91
93
|
systemPromptAppend: string | null
|
|
92
94
|
/** SDK built-in tools this executable is allowed to use (capability pack). */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kody-ade/kody-engine",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.28",
|
|
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",
|
|
@@ -12,6 +12,18 @@
|
|
|
12
12
|
"templates",
|
|
13
13
|
"kody.config.schema.json"
|
|
14
14
|
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"kody2": "tsx bin/kody2.ts",
|
|
17
|
+
"build": "tsup && node scripts/copy-assets.cjs",
|
|
18
|
+
"test": "vitest run tests/unit tests/int --no-coverage",
|
|
19
|
+
"test:e2e": "vitest run tests/e2e --no-coverage",
|
|
20
|
+
"test:all": "vitest run tests --no-coverage",
|
|
21
|
+
"typecheck": "tsc --noEmit",
|
|
22
|
+
"lint": "biome check",
|
|
23
|
+
"lint:fix": "biome check --write",
|
|
24
|
+
"format": "biome format --write",
|
|
25
|
+
"prepublishOnly": "pnpm build"
|
|
26
|
+
},
|
|
15
27
|
"dependencies": {
|
|
16
28
|
"@anthropic-ai/claude-agent-sdk": "0.2.92"
|
|
17
29
|
},
|
|
@@ -31,16 +43,5 @@
|
|
|
31
43
|
"url": "git+https://github.com/aharonyaircohen/kody-engine.git"
|
|
32
44
|
},
|
|
33
45
|
"homepage": "https://github.com/aharonyaircohen/kody-engine",
|
|
34
|
-
"bugs": "https://github.com/aharonyaircohen/kody-engine/issues"
|
|
35
|
-
|
|
36
|
-
"kody2": "tsx bin/kody2.ts",
|
|
37
|
-
"build": "tsup && node scripts/copy-assets.cjs",
|
|
38
|
-
"test": "vitest run tests/unit tests/int --no-coverage",
|
|
39
|
-
"test:e2e": "vitest run tests/e2e --no-coverage",
|
|
40
|
-
"test:all": "vitest run tests --no-coverage",
|
|
41
|
-
"typecheck": "tsc --noEmit",
|
|
42
|
-
"lint": "biome check",
|
|
43
|
-
"lint:fix": "biome check --write",
|
|
44
|
-
"format": "biome format --write"
|
|
45
|
-
}
|
|
46
|
-
}
|
|
46
|
+
"bugs": "https://github.com/aharonyaircohen/kody-engine/issues"
|
|
47
|
+
}
|
package/templates/kody2.yml
CHANGED
|
@@ -76,13 +76,13 @@ jobs:
|
|
|
76
76
|
node-version: 22
|
|
77
77
|
|
|
78
78
|
- name: Write pip cache key for LiteLLM
|
|
79
|
-
run: echo "litellm[proxy]" >
|
|
79
|
+
run: echo "litellm[proxy]" > .kody2-pip-requirements.txt
|
|
80
80
|
|
|
81
81
|
- uses: actions/setup-python@v5
|
|
82
82
|
with:
|
|
83
83
|
python-version: "3.12"
|
|
84
84
|
cache: "pip"
|
|
85
|
-
cache-dependency-path:
|
|
85
|
+
cache-dependency-path: .kody2-pip-requirements.txt
|
|
86
86
|
|
|
87
87
|
- env:
|
|
88
88
|
ALL_SECRETS: ${{ toJSON(secrets) }}
|