@navels/neal 0.2.0 → 0.3.0
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 +206 -209
- package/SECURITY.md +16 -19
- package/dist/neal/adjudicator/{blocked-adjudicator.js → consultant.js} +21 -21
- package/dist/neal/adjudicator/execute.js +33 -33
- package/dist/neal/adjudicator/final-completion.js +2 -31
- package/dist/neal/adjudicator/planning.js +230 -38
- package/dist/neal/agents/prompts.js +6 -17
- package/dist/neal/agents/rounds.js +43 -73
- package/dist/neal/agents/schemas.js +47 -13
- package/dist/neal/blocked-guidance.js +16 -9
- package/dist/neal/cli.js +2 -2
- package/dist/neal/commands/check.js +2 -2
- package/dist/neal/commands/compat.js +100 -36
- package/dist/neal/commands/interactive-activity.js +2 -2
- package/dist/neal/commands/recovery-guidance.js +20 -8
- package/dist/neal/commands/runtime.js +4 -2
- package/dist/neal/config.js +16 -7
- package/dist/neal/context/inline-review-context.js +13 -28
- package/dist/neal/context/reviewer-context.js +19 -14
- package/dist/neal/eval/reviewer-eval-manifest.js +86 -0
- package/dist/neal/eval/reviewer-eval.js +155 -0
- package/dist/neal/interactive-controls.js +5 -0
- package/dist/neal/orchestrator/completion.js +49 -2
- package/dist/neal/orchestrator/failures.js +7 -0
- package/dist/neal/orchestrator/notifications.js +9 -9
- package/dist/neal/orchestrator/phases/planning.js +117 -80
- package/dist/neal/orchestrator/phases/recovery.js +151 -115
- package/dist/neal/orchestrator/phases/review.js +28 -1
- package/dist/neal/orchestrator/transitions.js +7 -1
- package/dist/neal/orchestrator.js +3 -0
- package/dist/neal/plan-queue.js +29 -1
- package/dist/neal/prompts/execute.js +7 -19
- package/dist/neal/prompts/planning.js +64 -55
- package/dist/neal/prompts/review-doctrine.js +13 -50
- package/dist/neal/prompts/specialized.js +7 -17
- package/dist/neal/prompts/specs.js +180 -32
- package/dist/neal/providers/agent-settings-isolation.js +35 -0
- package/dist/neal/providers/anthropic-claude.js +18 -1
- package/dist/neal/providers/detection.js +3 -7
- package/dist/neal/providers/git-config-isolation.js +83 -0
- package/dist/neal/providers/openai-codex.js +25 -3
- package/dist/neal/providers/{generic-agentic-tools.js → openai-compatible-tools.js} +11 -5
- package/dist/neal/providers/openai-compatible.js +1078 -430
- package/dist/neal/providers/openrouter-routing.js +68 -0
- package/dist/neal/providers/pricing.js +1 -1
- package/dist/neal/providers/rate-card.js +6 -32
- package/dist/neal/providers/registry.js +6 -17
- package/dist/neal/providers/types.js +12 -0
- package/dist/neal/resume-decision.js +7 -6
- package/dist/neal/resume-planner.js +9 -0
- package/dist/neal/retrospective.js +3 -3
- package/dist/neal/review-debt.js +30 -0
- package/dist/neal/review-findings/provider.js +17 -29
- package/dist/neal/review.js +17 -1
- package/dist/neal/state-invariants.js +11 -3
- package/dist/neal/state-views.js +27 -5
- package/dist/neal/state.js +59 -15
- package/dist/neal/status.js +28 -1
- package/dist/neal/support.js +3 -3
- package/docs/README.md +22 -18
- package/docs/{ADJUDICATOR_INVENTORY.md → adjudicator-inventory.md} +58 -57
- package/docs/architecture.md +79 -83
- package/docs/automation.md +11 -11
- package/docs/compat.md +91 -61
- package/docs/compatible-models.md +145 -121
- package/docs/demo.md +15 -5
- package/docs/maintenance.md +65 -34
- package/docs/plan-format.md +61 -33
- package/docs/prompt-evals.md +96 -0
- package/docs/{PROMPT_SPECS.md → prompt-specs.md} +52 -48
- package/docs/providers.md +279 -349
- package/docs/release.md +18 -19
- package/docs/review-convergence.md +246 -0
- package/docs/state-machine.md +61 -59
- package/docs/storage.md +40 -31
- package/docs/troubleshooting.md +32 -29
- package/examples/compat/add-edit-verify/PLAN.md +2 -0
- package/examples/compat/add-edit-verify/broken.diff +2 -2
- package/examples/compat/add-edit-verify/good.diff +2 -2
- package/examples/compat/add-edit-verify/src/add.js +1 -1
- package/examples/compat/manifest.json +25 -29
- package/examples/compat/sum-grep-edit/PLAN.md +33 -0
- package/examples/compat/sum-grep-edit/broken.diff +12 -0
- package/examples/compat/sum-grep-edit/good.diff +12 -0
- package/examples/compat/sum-grep-edit/package.json +5 -0
- package/examples/compat/sum-grep-edit/src/numbers.js +9 -0
- package/examples/compat/sum-grep-edit/test/numbers.test.js +15 -0
- package/examples/issue-triage-js/README.md +0 -15
- package/examples/reviewer-eval/clean-doc/base/src/clamp.ts +3 -0
- package/examples/reviewer-eval/clean-doc/change.diff +9 -0
- package/examples/reviewer-eval/clean-extract/base/src/greet.ts +3 -0
- package/examples/reviewer-eval/clean-extract/change.diff +13 -0
- package/examples/reviewer-eval/dropped-error/base/src/load.ts +4 -0
- package/examples/reviewer-eval/dropped-error/change.diff +15 -0
- package/examples/reviewer-eval/manifest.json +45 -0
- package/examples/reviewer-eval/off-by-one/base/src/paginate.ts +5 -0
- package/examples/reviewer-eval/off-by-one/change.diff +11 -0
- package/{config.yml → neal.yml} +1 -1
- package/package.json +15 -14
- package/dist/neal/providers/generic-agentic.js +0 -1256
- package/docs/comparison.md +0 -105
- package/docs/issue-pipeline.md +0 -124
- package/examples/compat/is-even-add-test/PLAN.md +0 -30
- package/examples/compat/is-even-add-test/broken.diff +0 -11
- package/examples/compat/is-even-add-test/good.diff +0 -11
- package/examples/compat/is-even-add-test/package.json +0 -5
- package/examples/compat/is-even-add-test/src/is-even.js +0 -3
- package/examples/compat/is-even-add-test/test/is-even.test.js +0 -9
- package/examples/compat/reverse-grep-edit/PLAN.md +0 -32
- package/examples/compat/reverse-grep-edit/broken.diff +0 -12
- package/examples/compat/reverse-grep-edit/good.diff +0 -12
- package/examples/compat/reverse-grep-edit/package.json +0 -5
- package/examples/compat/reverse-grep-edit/src/strings.js +0 -10
- package/examples/compat/reverse-grep-edit/test/strings.test.js +0 -15
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "Labeled reviewer-recall eval fixtures. Each fixture is a small before-tree (base/) plus a change.diff; defective fixtures plant a known defect in a labeled file, clean fixtures are behavior-preserving. scripts/eval-reviewer.mjs applies each diff in a throwaway repo, runs the configured reviewer, and scores its findings against these labels. This is a starter set — add fixtures by following the same shape.",
|
|
3
|
+
"fixtures": [
|
|
4
|
+
{
|
|
5
|
+
"id": "off-by-one",
|
|
6
|
+
"kind": "defective",
|
|
7
|
+
"diff": "off-by-one/change.diff",
|
|
8
|
+
"baseDir": "off-by-one/base",
|
|
9
|
+
"expectedFindings": [
|
|
10
|
+
{
|
|
11
|
+
"file": "src/paginate.ts",
|
|
12
|
+
"defectClass": "off-by-one",
|
|
13
|
+
"description": "The page slice end is start + size + 1, so each page overruns into the next page's first item."
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "dropped-error",
|
|
19
|
+
"kind": "defective",
|
|
20
|
+
"diff": "dropped-error/change.diff",
|
|
21
|
+
"baseDir": "dropped-error/base",
|
|
22
|
+
"expectedFindings": [
|
|
23
|
+
{
|
|
24
|
+
"file": "src/load.ts",
|
|
25
|
+
"defectClass": "swallowed-error",
|
|
26
|
+
"description": "A bare catch turns any read failure into an empty config string, hiding the error from the caller."
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"id": "clean-extract",
|
|
32
|
+
"kind": "clean",
|
|
33
|
+
"diff": "clean-extract/change.diff",
|
|
34
|
+
"baseDir": "clean-extract/base",
|
|
35
|
+
"expectedFindings": []
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "clean-doc",
|
|
39
|
+
"kind": "clean",
|
|
40
|
+
"diff": "clean-doc/change.diff",
|
|
41
|
+
"baseDir": "clean-doc/base",
|
|
42
|
+
"expectedFindings": []
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
diff --git a/src/paginate.ts b/src/paginate.ts
|
|
2
|
+
index d122c4f..b9b0f92 100644
|
|
3
|
+
--- a/src/paginate.ts
|
|
4
|
+
+++ b/src/paginate.ts
|
|
5
|
+
@@ -1,5 +1,5 @@
|
|
6
|
+
export function pageSlice<T>(items: T[], page: number, size: number): T[] {
|
|
7
|
+
const start = page * size;
|
|
8
|
+
- const end = start + size;
|
|
9
|
+
+ const end = start + size + 1;
|
|
10
|
+
return items.slice(start, end);
|
|
11
|
+
}
|
package/{config.yml → neal.yml}
RENAMED
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
#
|
|
58
58
|
# # Or run the coder against any OpenAI-compatible tool-calling endpoint
|
|
59
59
|
# # via the providers.openai_compatible block (see docs/providers.md):
|
|
60
|
-
# # provider:
|
|
60
|
+
# # provider: openai-compatible
|
|
61
61
|
#
|
|
62
62
|
# # Optional default model override for the coder role.
|
|
63
63
|
# # Leave null to let the provider choose its default model.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@navels/neal",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "A source-first multi-agent CLI for planning, executing, reviewing, and resuming scoped code changes.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
},
|
|
9
9
|
"author": "Lee Nave",
|
|
10
10
|
"type": "module",
|
|
11
|
-
"packageManager": "pnpm@11.
|
|
11
|
+
"packageManager": "pnpm@11.13.1",
|
|
12
12
|
"homepage": "https://github.com/navels/neal#readme",
|
|
13
13
|
"repository": {
|
|
14
14
|
"type": "git",
|
|
@@ -35,16 +35,16 @@
|
|
|
35
35
|
"README.md",
|
|
36
36
|
"SECURITY.md",
|
|
37
37
|
"LICENSE",
|
|
38
|
-
"
|
|
38
|
+
"neal.yml",
|
|
39
39
|
"docs",
|
|
40
40
|
"examples"
|
|
41
41
|
],
|
|
42
42
|
"engines": {
|
|
43
|
-
"node": ">=
|
|
44
|
-
"pnpm": ">=11"
|
|
43
|
+
"node": ">=24.18.0",
|
|
44
|
+
"pnpm": ">=11.13.1"
|
|
45
45
|
},
|
|
46
46
|
"scripts": {
|
|
47
|
-
"build": "rm -rf dist && tsc -p tsconfig.json && chmod +x dist/neal/index.js",
|
|
47
|
+
"build": "rm -rf dist && node node_modules/typescript-7/bin/tsc -p tsconfig.json && chmod +x dist/neal/index.js",
|
|
48
48
|
"pack:local": "pnpm build && pnpm pack",
|
|
49
49
|
"verify:package": "pnpm build && node scripts/verify-package.mjs",
|
|
50
50
|
"validate:release": "node scripts/validate-release.mjs",
|
|
@@ -52,23 +52,24 @@
|
|
|
52
52
|
"lint": "eslint src test",
|
|
53
53
|
"start": "tsx src/neal/index.ts",
|
|
54
54
|
"test": "NEAL_NOTIFY_BIN= node --import tsx --test test/*.test.ts",
|
|
55
|
-
"typecheck": "tsc --noEmit -p tsconfig.json && tsc -p tsconfig.test.json"
|
|
55
|
+
"typecheck": "node node_modules/typescript-7/bin/tsc --noEmit -p tsconfig.json && node node_modules/typescript-7/bin/tsc -p tsconfig.test.json"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@ai-sdk/openai-compatible": "
|
|
59
|
-
"@anthropic-ai/claude-agent-sdk": "0.3.
|
|
60
|
-
"@openai/codex-sdk": "0.
|
|
61
|
-
"ai": "
|
|
58
|
+
"@ai-sdk/openai-compatible": "3.0.12",
|
|
59
|
+
"@anthropic-ai/claude-agent-sdk": "0.3.218",
|
|
60
|
+
"@openai/codex-sdk": "0.145.0",
|
|
61
|
+
"ai": "7.0.31",
|
|
62
62
|
"dotenv": "^17.4.2",
|
|
63
|
-
"yaml": "^2.
|
|
63
|
+
"yaml": "^2.9.0",
|
|
64
64
|
"zod": "4.4.3"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@eslint/js": "^10.0.1",
|
|
68
|
-
"@types/node": "^
|
|
68
|
+
"@types/node": "^24.13.3",
|
|
69
69
|
"eslint": "^10.7.0",
|
|
70
|
-
"tsx": "^4.
|
|
70
|
+
"tsx": "^4.23.1",
|
|
71
71
|
"typescript": "^6.0.3",
|
|
72
|
+
"typescript-7": "npm:typescript@^7.0.2",
|
|
72
73
|
"typescript-eslint": "^8.64.0"
|
|
73
74
|
}
|
|
74
75
|
}
|