@kody-ade/kody-engine 0.3.33 → 0.3.35
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 +34 -6
- 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/resolve/apply-prefer.sh +0 -0
- package/dist/executables/run/prompt.md +3 -2
- package/package.json +15 -14
package/dist/bin/kody.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.3.
|
|
6
|
+
version: "0.3.35",
|
|
7
7
|
description: "kody \u2014 autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative executable profiles.",
|
|
8
8
|
license: "MIT",
|
|
9
9
|
type: "module",
|
|
@@ -501,11 +501,39 @@ function seedInitialMessage(file, message) {
|
|
|
501
501
|
|
|
502
502
|
// src/chat/loop.ts
|
|
503
503
|
var CHAT_SYSTEM_PROMPT = [
|
|
504
|
-
"You are Kody, an AI assistant for the Kody Operations Dashboard. Reply to the
|
|
505
|
-
"latest message using the full conversation below as context. Keep replies
|
|
506
|
-
"technical when appropriate, and formatted in Markdown.
|
|
507
|
-
"
|
|
508
|
-
"
|
|
504
|
+
"You are Kody, an AI assistant for the Kody Operations Dashboard. Reply to the",
|
|
505
|
+
"user's latest message using the full conversation below as context. Keep replies",
|
|
506
|
+
"focused, technical when appropriate, and formatted in Markdown.",
|
|
507
|
+
"",
|
|
508
|
+
"# Your environment and capabilities",
|
|
509
|
+
"You run inside a GitHub Actions job with a full clone of the user's repository",
|
|
510
|
+
"checked out at the current working directory. You have real tools \u2014 use them",
|
|
511
|
+
"before claiming you cannot do something. Never tell the user you lack repo,",
|
|
512
|
+
"filesystem, or GitHub access; you have all three.",
|
|
513
|
+
"",
|
|
514
|
+
"Tools you can call:",
|
|
515
|
+
"- Read, Edit, Write \u2014 full read/write access to every file in the repo (permission",
|
|
516
|
+
" mode is acceptEdits, so writes do not require confirmation).",
|
|
517
|
+
"- Glob, Grep \u2014 search the repo by filename pattern or content.",
|
|
518
|
+
"- Bash \u2014 run any shell command in the repo. The runner has:",
|
|
519
|
+
" - `git` (the repo is a real git checkout \u2014 `git log`, `git diff`,",
|
|
520
|
+
" `git show`, `git blame`, `git branch`, etc. all work).",
|
|
521
|
+
" - `gh` authenticated against this repository's GitHub via the Actions",
|
|
522
|
+
" `GITHUB_TOKEN` (read issues, PRs, workflows, runs, comments; query the API",
|
|
523
|
+
" with `gh api`).",
|
|
524
|
+
" - the repo's package manager and test/build/lint tooling (npm/pnpm/yarn,",
|
|
525
|
+
" pytest, go test, cargo, etc., whatever the project uses).",
|
|
526
|
+
" - standard Unix utilities (curl, jq, sed, awk, find, etc.).",
|
|
527
|
+
"",
|
|
528
|
+
"# How to answer",
|
|
529
|
+
"If the user asks about repo content, code, history, issues, PRs, CI status, or",
|
|
530
|
+
"anything else knowable from the checkout or GitHub API, INVESTIGATE FIRST with",
|
|
531
|
+
"the tools above and answer from what you find. Do not say 'I don't have access'",
|
|
532
|
+
"\u2014 if you have not yet tried, try. Only fall back to a limitation statement after",
|
|
533
|
+
"a tool actually fails, and in that case quote the failing command and its error.",
|
|
534
|
+
"",
|
|
535
|
+
"Do not invent file paths, commit SHAs, line numbers, or command output. If you",
|
|
536
|
+
"cite something concrete, you must have just read or run it in this session."
|
|
509
537
|
].join("\n");
|
|
510
538
|
async function runChatTurn(opts) {
|
|
511
539
|
const turns = readSession(opts.sessionFile);
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -16,8 +16,9 @@ If the plan above is non-empty, TREAT IT AS AUTHORITATIVE — follow its file li
|
|
|
16
16
|
1. **Research** — read the issue carefully. Use Grep/Glob/Read to investigate the codebase: locate relevant files, understand existing patterns, check related tests, identify constraints. Do not edit anything yet.
|
|
17
17
|
2. **Plan** — before any Edit/Write, output a short plan (5–10 lines): what files you'll change, the approach, what could go wrong. No fluff.
|
|
18
18
|
3. **Build** — Edit/Write to implement the change. Stay within the plan; if you discover the plan was wrong, briefly say so and adjust.
|
|
19
|
-
4. **
|
|
20
|
-
5.
|
|
19
|
+
4. **Test** — for every new module you added and every behavior you changed, write or update tests. If the plan above contains a "Test plan" section, treat it as authoritative: every item there must produce a corresponding test. Match the repo's existing test layout (look at `tests/` or sibling `*.test.ts` files in the codebase to see the convention). Cover at least one happy path and one failure path per change. Skipping tests is a hard failure. A change may only be declared untestable if you can name the specific blocker (e.g., "no fake exists for the X SDK and stubbing it would mock the entire call surface"); vague "this is just config" claims are rejected. Untestable changes go in `PLAN_DEVIATIONS:` with the named blocker.
|
|
20
|
+
5. **Verify** — run each quality command with Bash. On failure, fix the root cause and re-run. When reporting that a command passed, you MUST have just run it and seen exit code 0 in this session — do not paraphrase prior output.
|
|
21
|
+
6. Your FINAL message must use this exact format (or a single `FAILED: <reason>` line on failure). The `PLAN_DEVIATIONS:` block is REQUIRED whenever a plan was provided.
|
|
21
22
|
|
|
22
23
|
```
|
|
23
24
|
DONE
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kody-ade/kody-engine",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.35",
|
|
4
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",
|
|
@@ -12,6 +12,18 @@
|
|
|
12
12
|
"templates",
|
|
13
13
|
"kody.config.schema.json"
|
|
14
14
|
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"kody": "tsx bin/kody.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.119"
|
|
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
|
-
"kody": "tsx bin/kody.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
|
+
}
|