@lamentis/naome 1.2.0 → 1.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/Cargo.lock +2 -2
- package/README.md +108 -47
- package/bin/naome-node.js +2 -1579
- package/bin/naome.js +34 -5
- package/crates/naome-cli/Cargo.toml +1 -1
- package/crates/naome-cli/src/dispatcher.rs +7 -2
- package/crates/naome-cli/src/main.rs +37 -22
- package/crates/naome-cli/src/quality_commands.rs +317 -10
- package/crates/naome-cli/src/workflow_commands.rs +21 -1
- package/crates/naome-core/Cargo.toml +1 -1
- package/crates/naome-core/src/decision/checks.rs +64 -0
- package/crates/naome-core/src/decision/idle.rs +67 -0
- package/crates/naome-core/src/decision/json.rs +36 -0
- package/crates/naome-core/src/decision/states.rs +165 -0
- package/crates/naome-core/src/decision.rs +131 -353
- package/crates/naome-core/src/git.rs +4 -2
- package/crates/naome-core/src/install_plan.rs +4 -0
- package/crates/naome-core/src/lib.rs +12 -6
- package/crates/naome-core/src/paths.rs +3 -1
- package/crates/naome-core/src/quality/adapter_support.rs +89 -0
- package/crates/naome-core/src/quality/adapters.rs +20 -67
- package/crates/naome-core/src/quality/baseline.rs +8 -0
- package/crates/naome-core/src/quality/cache.rs +153 -0
- package/crates/naome-core/src/quality/checks/duplicate_blocks.rs +25 -11
- package/crates/naome-core/src/quality/checks/near_duplicates.rs +4 -2
- package/crates/naome-core/src/quality/checks.rs +7 -8
- package/crates/naome-core/src/quality/cleanup.rs +48 -3
- package/crates/naome-core/src/quality/config.rs +8 -15
- package/crates/naome-core/src/quality/config_support.rs +24 -0
- package/crates/naome-core/src/quality/mod.rs +72 -6
- package/crates/naome-core/src/quality/scanner/analysis/normalize.rs +78 -0
- package/crates/naome-core/src/quality/scanner/analysis.rs +160 -0
- package/crates/naome-core/src/quality/scanner/repo_paths.rs +39 -3
- package/crates/naome-core/src/quality/scanner.rs +200 -215
- package/crates/naome-core/src/quality/semantic/checks.rs +134 -0
- package/crates/naome-core/src/quality/semantic/extract.rs +158 -0
- package/crates/naome-core/src/quality/semantic/model.rs +85 -0
- package/crates/naome-core/src/quality/semantic/route.rs +52 -0
- package/crates/naome-core/src/quality/semantic.rs +68 -0
- package/crates/naome-core/src/quality/structure/adapters.rs +84 -0
- package/crates/naome-core/src/quality/structure/checks/basic.rs +153 -0
- package/crates/naome-core/src/quality/structure/checks/directory.rs +134 -0
- package/crates/naome-core/src/quality/structure/checks/pairing.rs +63 -0
- package/crates/naome-core/src/quality/structure/checks.rs +124 -0
- package/crates/naome-core/src/quality/structure/classify/roles.rs +188 -0
- package/crates/naome-core/src/quality/structure/classify.rs +146 -0
- package/crates/naome-core/src/quality/structure/config.rs +89 -0
- package/crates/naome-core/src/quality/structure/defaults.rs +107 -0
- package/crates/naome-core/src/quality/structure/mod.rs +77 -0
- package/crates/naome-core/src/quality/structure/model.rs +131 -0
- package/crates/naome-core/src/quality/types.rs +43 -2
- package/crates/naome-core/src/route/builtin_checks.rs +141 -0
- package/crates/naome-core/src/route/builtin_context.rs +73 -0
- package/crates/naome-core/src/route/builtin_integrity.rs +49 -0
- package/crates/naome-core/src/route/builtin_require.rs +40 -0
- package/crates/naome-core/src/route/context.rs +180 -0
- package/crates/naome-core/src/route/execution.rs +96 -0
- package/crates/naome-core/src/route/execution_baselines.rs +146 -0
- package/crates/naome-core/src/route/execution_support.rs +57 -0
- package/crates/naome-core/src/route/execution_tasks.rs +71 -0
- package/crates/naome-core/src/route/git_ops.rs +72 -0
- package/crates/naome-core/src/route/quality_gate.rs +73 -0
- package/crates/naome-core/src/route/quality_gate_config.rs +126 -0
- package/crates/naome-core/src/route/quality_gate_snapshot.rs +69 -0
- package/crates/naome-core/src/route/worktree.rs +75 -0
- package/crates/naome-core/src/route/worktree_files.rs +32 -0
- package/crates/naome-core/src/route/worktree_plan.rs +131 -0
- package/crates/naome-core/src/route.rs +44 -1217
- package/crates/naome-core/src/verification.rs +1 -0
- package/crates/naome-core/src/workflow/doctor.rs +144 -0
- package/crates/naome-core/src/workflow/mod.rs +2 -0
- package/crates/naome-core/src/workflow/mutation.rs +1 -2
- package/crates/naome-core/tests/decision.rs +24 -118
- package/crates/naome-core/tests/harness_health.rs +2 -0
- package/crates/naome-core/tests/install_plan.rs +2 -0
- package/crates/naome-core/tests/quality.rs +26 -123
- package/crates/naome-core/tests/quality_performance.rs +231 -0
- package/crates/naome-core/tests/quality_structure.rs +116 -0
- package/crates/naome-core/tests/quality_structure_adapters.rs +98 -0
- package/crates/naome-core/tests/quality_structure_policy.rs +144 -0
- package/crates/naome-core/tests/quality_structure_support/mod.rs +249 -0
- package/crates/naome-core/tests/repo_support/mod.rs +16 -0
- package/crates/naome-core/tests/repo_support/repo.rs +113 -0
- package/crates/naome-core/tests/repo_support/repo_factories.rs +99 -0
- package/crates/naome-core/tests/repo_support/repo_helpers.rs +123 -0
- package/crates/naome-core/tests/repo_support/routes.rs +81 -0
- package/crates/naome-core/tests/repo_support/verification.rs +168 -0
- package/crates/naome-core/tests/repo_support/verification_values.rs +135 -0
- package/crates/naome-core/tests/route.rs +1 -1376
- package/crates/naome-core/tests/route_baseline.rs +86 -0
- package/crates/naome-core/tests/route_completion.rs +141 -0
- package/crates/naome-core/tests/route_harness_refresh.rs +135 -0
- package/crates/naome-core/tests/route_user_diff.rs +202 -0
- package/crates/naome-core/tests/route_worktree.rs +54 -0
- package/crates/naome-core/tests/semantic_legacy.rs +140 -0
- package/crates/naome-core/tests/task_state.rs +60 -432
- package/crates/naome-core/tests/task_state_compact_support/repo.rs +1 -1
- package/crates/naome-core/tests/task_state_support/mod.rs +163 -0
- package/crates/naome-core/tests/task_state_support/states.rs +84 -0
- package/crates/naome-core/tests/verification.rs +4 -45
- package/crates/naome-core/tests/verification_contract.rs +22 -78
- package/crates/naome-core/tests/workflow_doctor.rs +24 -0
- package/crates/naome-core/tests/workflow_policy.rs +6 -1
- package/crates/naome-core/tests/workflow_support/mod.rs +1 -1
- package/installer/agents.js +90 -0
- package/installer/context.js +67 -0
- package/installer/filesystem.js +166 -0
- package/installer/flows.js +84 -0
- package/installer/git-boundary.js +171 -0
- package/installer/git-hook-content.js +36 -0
- package/installer/git-hooks.js +134 -0
- package/installer/git-local.js +2 -0
- package/installer/git-shared.js +35 -0
- package/installer/harness-file-ops.js +140 -0
- package/installer/harness-files.js +56 -0
- package/installer/harness-verification.js +123 -0
- package/installer/install-plan.js +66 -0
- package/installer/main.js +25 -0
- package/installer/manifest-state.js +167 -0
- package/installer/native-build.js +24 -0
- package/installer/native-format.js +6 -0
- package/installer/native.js +162 -0
- package/installer/output.js +131 -0
- package/installer/version.js +32 -0
- package/native/darwin-arm64/naome +0 -0
- package/native/linux-x64/naome +0 -0
- package/package.json +2 -1
- package/templates/naome-root/.naome/bin/check-harness-health.js +3 -3
- package/templates/naome-root/.naome/bin/check-task-state.js +3 -3
- package/templates/naome-root/.naome/bin/naome.js +32 -21
- package/templates/naome-root/.naome/manifest.json +5 -3
- package/templates/naome-root/.naome/repository-structure.json +90 -0
- package/templates/naome-root/.naome/verification.json +1 -0
- package/templates/naome-root/.naomeignore +1 -0
- package/templates/naome-root/docs/naome/agent-workflow.md +16 -14
- package/templates/naome-root/docs/naome/index.md +4 -3
- package/templates/naome-root/docs/naome/repository-quality.md +66 -4
- package/templates/naome-root/docs/naome/repository-structure.md +51 -0
- package/templates/naome-root/docs/naome/testing.md +2 -1
package/Cargo.lock
CHANGED
|
@@ -76,7 +76,7 @@ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
|
|
|
76
76
|
|
|
77
77
|
[[package]]
|
|
78
78
|
name = "naome-cli"
|
|
79
|
-
version = "1.
|
|
79
|
+
version = "1.3.0"
|
|
80
80
|
dependencies = [
|
|
81
81
|
"naome-core",
|
|
82
82
|
"serde_json",
|
|
@@ -84,7 +84,7 @@ dependencies = [
|
|
|
84
84
|
|
|
85
85
|
[[package]]
|
|
86
86
|
name = "naome-core"
|
|
87
|
-
version = "1.
|
|
87
|
+
version = "1.3.0"
|
|
88
88
|
dependencies = [
|
|
89
89
|
"serde",
|
|
90
90
|
"serde_json",
|
package/README.md
CHANGED
|
@@ -1,70 +1,131 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
NAOME
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
- Repository intake with `.naomeignore`, workflow docs, and health checks.
|
|
14
|
-
- Task admission and progress gates that prevent unowned diffs and scope drift.
|
|
15
|
-
- Rust-backed `status`, `next`, `route`, `commit`, quality, and workflow
|
|
16
|
-
commands.
|
|
17
|
-
- Intent routing that separates repository state from structured task intent.
|
|
18
|
-
- Repository-quality checks for changed files, with old debt visible through
|
|
19
|
-
cleanup flows instead of blocking every legacy codebase.
|
|
20
|
-
- Verification phases for health, quality, focused tests, broad tests, package
|
|
21
|
-
gates, and final diff checks.
|
|
22
|
-
- Compact task proof data so repeated evidence and shared check metadata do not
|
|
23
|
-
bloat `.naome/task-state.json`.
|
|
24
|
-
- Local Git hooks and commit gates that keep manual commits aligned with the
|
|
25
|
-
same harness policy.
|
|
26
|
-
|
|
27
|
-
## Install
|
|
28
|
-
|
|
29
|
-
```sh
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://www.npmjs.com/package/@lamentis/naome"><img src="https://img.shields.io/npm/v/@lamentis/naome.svg" alt="npm version"></a>
|
|
3
|
+
<a href="../../LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-green.svg" alt="Apache-2.0 license"></a>
|
|
4
|
+
</p>
|
|
5
|
+
|
|
6
|
+
<h1 align="center">NAOME</h1>
|
|
7
|
+
|
|
8
|
+
<p align="center">
|
|
9
|
+
A deterministic repository harness for AI coding agents.
|
|
10
|
+
</p>
|
|
11
|
+
|
|
12
|
+
```shell
|
|
30
13
|
npm install -g @lamentis/naome
|
|
31
14
|
```
|
|
32
15
|
|
|
33
|
-
|
|
16
|
+
NAOME gives coding agents a repository-local operating protocol: what to read,
|
|
17
|
+
what to ignore, how to admit a task, which files are in scope, which checks are
|
|
18
|
+
required, and when work is safe to commit.
|
|
19
|
+
|
|
20
|
+
## Quickstart
|
|
34
21
|
|
|
35
|
-
|
|
22
|
+
Install the CLI, then sync NAOME into a repository:
|
|
36
23
|
|
|
37
|
-
```
|
|
24
|
+
```shell
|
|
25
|
+
npm install -g @lamentis/naome
|
|
26
|
+
cd /path/to/repo
|
|
38
27
|
naome sync
|
|
39
28
|
```
|
|
40
29
|
|
|
41
|
-
|
|
42
|
-
sync the harness files:
|
|
30
|
+
For an initialized repository, start with:
|
|
43
31
|
|
|
44
|
-
```
|
|
45
|
-
naome
|
|
46
|
-
naome
|
|
32
|
+
```shell
|
|
33
|
+
naome status
|
|
34
|
+
naome next
|
|
35
|
+
naome doctor
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
For agent-driven work, route the user's request through the harness:
|
|
39
|
+
|
|
40
|
+
```shell
|
|
41
|
+
naome route --prompt-file /path/to/prompt.txt --execute --json
|
|
47
42
|
```
|
|
48
43
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
44
|
+
## Why NAOME?
|
|
45
|
+
|
|
46
|
+
- Keeps agents inside explicit task scope.
|
|
47
|
+
- Blocks unowned diffs before new work starts.
|
|
48
|
+
- Separates current task work from repository cleanup debt.
|
|
49
|
+
- Runs changed-code quality gates without forcing legacy repositories to be
|
|
50
|
+
perfect on day one.
|
|
51
|
+
- Records verification proof before a task can be treated as complete.
|
|
52
|
+
- Keeps sync fast by making baseline and deep quality scans explicit.
|
|
53
|
+
|
|
54
|
+
## Safety Model
|
|
55
|
+
|
|
56
|
+
NAOME is repository-local. The files under `.naome/`, `.naomeignore`, and
|
|
57
|
+
`docs/naome/` define the local harness contract for a repository.
|
|
52
58
|
|
|
53
|
-
|
|
59
|
+
The harness enforces read boundaries, task admission, scope drift checks,
|
|
60
|
+
repository-quality policy, verification phases, and commit gates. Existing debt
|
|
61
|
+
is reportable through cleanup flows, while changed files are held to the active
|
|
62
|
+
policy.
|
|
54
63
|
|
|
55
|
-
|
|
64
|
+
## CLI Reference
|
|
56
65
|
|
|
57
|
-
|
|
66
|
+
Common commands:
|
|
67
|
+
|
|
68
|
+
```shell
|
|
69
|
+
naome sync
|
|
70
|
+
naome update
|
|
58
71
|
naome status
|
|
59
72
|
naome next
|
|
73
|
+
naome doctor
|
|
60
74
|
naome route --prompt-file /path/to/prompt.txt --execute --json
|
|
75
|
+
naome quality init
|
|
76
|
+
naome quality init --baseline
|
|
77
|
+
naome quality report
|
|
78
|
+
naome quality report --deep
|
|
79
|
+
naome quality check --changed
|
|
61
80
|
naome commit -m "type(scope): summary"
|
|
62
81
|
```
|
|
63
82
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
83
|
+
`naome sync` installs or repairs the local harness files. It does not run a
|
|
84
|
+
hidden full-repository quality scan. If quality policy is newly seeded, run
|
|
85
|
+
`naome quality init --baseline` deliberately; use `--deep` or
|
|
86
|
+
`--deep-baseline` only when you want expensive repository-wide checks.
|
|
87
|
+
|
|
88
|
+
## Repository Docs
|
|
89
|
+
|
|
90
|
+
After sync, NAOME writes the agent-facing workflow into `docs/naome/`:
|
|
91
|
+
|
|
92
|
+
- `docs/naome/index.md` is the entry point.
|
|
93
|
+
- `docs/naome/agent-workflow.md` explains the active task workflow.
|
|
94
|
+
- `docs/naome/testing.md` maps change types to required checks.
|
|
95
|
+
- `docs/naome/repository-quality.md` explains quality, structure, and cleanup
|
|
96
|
+
policy.
|
|
97
|
+
|
|
98
|
+
Agents should follow the repository's NAOME docs instead of guessing workflow
|
|
99
|
+
rules from generic project files.
|
|
100
|
+
|
|
101
|
+
## Configuration
|
|
102
|
+
|
|
103
|
+
The main local policy files are:
|
|
104
|
+
|
|
105
|
+
- `.naomeignore` for read boundaries.
|
|
106
|
+
- `.naome/verification.json` for check phases and proof requirements.
|
|
107
|
+
- `.naome/repository-quality.json` for file, symbol, duplicate, and semantic
|
|
108
|
+
quality policy.
|
|
109
|
+
- `.naome/repository-structure.json` for path role, module, and directory
|
|
110
|
+
structure policy.
|
|
111
|
+
- `.naome/task-state.json` for active task state and proof.
|
|
112
|
+
|
|
113
|
+
Product defaults stay generic. Repository-specific policy belongs in the local
|
|
114
|
+
`.naome/` config files.
|
|
115
|
+
|
|
116
|
+
## Development
|
|
117
|
+
|
|
118
|
+
Useful checks for this repository:
|
|
119
|
+
|
|
120
|
+
```shell
|
|
121
|
+
npm run build:rust
|
|
122
|
+
npm run test:decision-engine
|
|
123
|
+
npm run test:naome-installer
|
|
124
|
+
npm run pack:dry-run
|
|
125
|
+
node .naome/bin/naome.js quality check --changed --json
|
|
126
|
+
git diff --check
|
|
127
|
+
```
|
|
67
128
|
|
|
68
129
|
## License
|
|
69
130
|
|
|
70
|
-
NAOME is licensed under the [Apache License 2.0](LICENSE).
|
|
131
|
+
NAOME is licensed under the [Apache License 2.0](../../LICENSE).
|