openmerit 0.1.6-preview.5 → 0.1.6

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.6 — 2026-10-11
4
+
5
+ - Promote the code from `0.1.6-preview.5` to the default npm release. Install with `npm install -g openmerit`, then run `openmerit dash` from an application directory.
6
+ - Update the packaged README and terminal guides to present current capabilities and limits. The terminal is a starting point for OpenMerit; this release introduces no new routing or evaluation behavior.
7
+ - Retain the existing coordinator, protocol, Pi adapter, package exports, and Node.js requirement. Earlier npm versions remain available.
8
+
3
9
  ## 0.1.6-preview.5 — 2026-10-10
4
10
 
5
11
  - Open the terminal before initial collection, then index repository declarations in a background worker with visible discovery, indexing, and linking progress. Replace repository-wide scan caps with continuing work batches.
package/README.md CHANGED
@@ -1,137 +1,76 @@
1
1
  # OpenMerit
2
2
 
3
- OpenMerit is a harness-neutral orchestration layer that helps a coding harness continuously find and maintain the Pareto frontier of models for a real product task.
3
+ OpenMerit is being built to help applications make better inference decisions using evidence about their models, workloads, quality, cost, and latency.
4
4
 
5
- OpenMerit does not perform the intelligent work. It nudges a connected coding harness, such as Pi, with typed outcome requests. The harness understands the project, establishes evaluations and observability, gathers evidence, discovers and tests candidates, calculates the Pareto frontier, and performs an authorized model change. OpenMerit validates the returned contracts, preserves evidence and preferences, and advances the approved lifecycle.
5
+ Version **0.1.6** starts with visibility: the Inference Terminal gives you a local view of the inference your application declares and records. It is a starting point for OpenMerit, not the full product vision. This release brings the existing npm preview into the default installation.
6
6
 
7
- The npm package `openmerit` contains the Pi extension, the reusable coordinator,
8
- and the protocol in one install. The Pi adapter is the first integration; other
9
- harnesses can use the same core and protocol exports.
7
+ ## Install and run
10
8
 
11
- ## Why OpenMerit
9
+ Requires **Node.js 22.19 or newer**. In your application's directory:
12
10
 
13
- The cheapest model, fastest model, and highest-quality model are often different. Public benchmarks are useful before product evidence exists, but they cannot establish which model is best for a particular workload. OpenMerit connects the initial choice to production evidence and repeated reassessment.
14
-
15
- It distinguishes:
16
-
17
- - one-run observations from rate, percentile, consistency, and reliability claims;
18
- - missing evidence from poor performance;
19
- - feasible candidates from dominated, unresolved, or ineligible candidates;
20
- - an automatic nudge from an intelligent action performed by the harness;
21
- - a recommendation from an authorized, verified model swap.
22
-
23
- ## Current capabilities
24
-
25
- - Pi 0.87 extension with a single `/openmerit` command surface.
26
- - Harness-inferred, user-confirmed task profiles with explicit metrics, sampling designs, constraints, and evaluation budgets.
27
- - The complete initial quality, reliability, cost, latency, efficiency, and human-intervention metric catalogue.
28
- - Setup-time preliminary model research in the source checkout, followed by baseline evidence collection, refreshed candidate discovery, and controlled challenger trials. The published `0.1.5` package still begins candidate discovery after the baseline.
29
- - A normative, uncertainty-aware Pareto definition owned by OpenMerit.
30
- - Harness-calculated frontier results independently checked by OpenMerit's conformance verifier.
31
- - Versioned result schemas for all ten intents, reusable across harness adapters and exposed dynamically by Pi.
32
- - Configurable swap approval, post-swap verification requests, and policy-based rollback requests. Automatic swaps can begin immediately if explicitly enabled with a zero verified-swap threshold.
33
- - Project-local snapshots, redacted append-only audit events, evidence manifests, and optional best-effort event exporters under `.openmerit/`.
34
- - Model-catalog change detection that can nudge the harness to reassess a mature baseline.
35
- - User-confirmed task-count, elapsed-time, regression, catalogue-change, and post-swap check policies.
36
- - Idempotent harness signals, durable pending work, native wakeup planning, and explicit scheduler capability gaps.
37
- - In the unreleased source checkout, an opt-in macOS Pi LaunchAgent for time-based checks and a durable pause; published `0.1.5` still requires an external scheduler and has a partial, session-local pause.
38
-
39
- ## Responsibility boundary
40
-
41
- | OpenMerit | Coding harness |
42
- | --- | --- |
43
- | Defines typed outcomes and Pareto conformance rules | Understands the product and user task |
44
- | Tracks lifecycle, policy, budget, and evidence references | Builds evals and observability |
45
- | Determines which approved nudge is due | Collects and calculates metrics |
46
- | Verifies returned structure and frontier conformance | Discovers candidates and calculates the frontier |
47
- | Selects intents according to confirmation and rollback policy | Applies and verifies an authorized model change |
48
-
49
- Jev System One, when configured, belongs to the coding harness. Pi may use it aggressively for bounded ranking, triage, and fast judgment. OpenMerit contains no Jev client and accepts no Jev credential.
50
-
51
- ## Install with Pi
11
+ ```sh
12
+ npm install -g openmerit
13
+ openmerit dash
14
+ ```
52
15
 
53
- Requirements:
16
+ The terminal opens in your browser while collection starts. It runs locally, bound to `127.0.0.1`, and prints its URL. Keep the command running while using it; press Ctrl+C to stop. Pi and model-provider credentials are not required for the terminal.
54
17
 
55
- - Node.js 22.19 or newer
56
- - Pi 0.87 with a supported model provider configured
18
+ You can also point it at a project explicitly:
57
19
 
58
20
  ```sh
59
- pi install npm:openmerit
60
- pi list
21
+ openmerit dash /path/to/your/project
61
22
  ```
62
23
 
63
- When Pi enters an unconfigured project with an interactive UI, the adapter first looks for an actual application LLM call pattern. If the project starts empty, the unreleased source checkout scans again after each settled build turn and automatically begins setup when Pi creates the application call. `/openmerit setup` remains a recovery command rather than a required demo step. Pi confirms the application target and exact incumbent application model, infers task-relevant metrics and their repeated-input or representative-case sampling designs, explains the proposed collection plan and estimated cost, and asks the user to confirm or edit it. It then establishes task-specific eval and observability artifacts, verifies them, and reports evidence to OpenMerit. Pi's own model is never the application target.
24
+ To update from an earlier release or `openmerit@preview`, run `npm install -g openmerit`, stop the old terminal process, and launch it again. To pin this release, use `npm install -g openmerit@0.1.6`. Remove it with `npm uninstall -g openmerit`.
64
25
 
65
- Run `/openmerit doctor` inside Pi to check the installation. OpenMerit keeps
66
- project evidence under `.openmerit/` in the product repository. Version 0.1.5
67
- replaces the 0.1.4 background watcher and standalone CLI with this
68
- harness-driven lifecycle; it does not migrate the earlier home-directory state.
26
+ ## What you can see today
69
27
 
70
- ## Commands
28
+ - **Models and services:** application declarations from supported code and configuration, recorded provider connections, and supported project-linked runtime inventory.
29
+ - **Inference activity:** requests, tokens, latency, costs, and agent/task identifiers where supported application logs or explicit exports provide them.
30
+ - **Code and configuration evidence:** file-and-line references, indexing progress, unresolved references, and source coverage.
31
+ - **Compute and deployments:** explicitly linked hosts, model residency, and supplied hardware or capacity measurements, with their freshness and scope shown.
71
32
 
72
- - `/openmerit` or `/openmerit status` — show evidence readiness and lifecycle stage.
73
- - `/openmerit setup` — explicitly rerun or recover automatic setup.
74
- - `/openmerit assess` — check stored application metric windows against the baseline thresholds now (in the unreleased source checkout); start candidate discovery only when ready. Published `0.1.5` still asks Pi to assess.
75
- - `/openmerit logs` — show the canonical audit, exporter-error, evidence, and state paths.
76
- - `/openmerit frontier` — ask the harness to calculate a frontier now; OpenMerit verifies it.
77
- - `/openmerit approve` — approve a verified proposal during supervised graduation.
78
- - `/openmerit pause` and `/openmerit resume` — control some proactive nudges in the current Pi session; task-triggered checks can still run in 0.1.5. See [pause limitations](docs/commands.md#pause-and-resume).
79
- - `/openmerit doctor` — show sanitized adapter diagnostics.
33
+ The terminal keeps declarations, runtime inventory, and recorded usage separate. Missing evidence stays unknown. Code alone cannot reconstruct request history, usage, costs, or running agents. Discovery supports specific source formats and syntax; it is not complete coverage of every application or provider.
80
34
 
81
- ## Inference Terminal (test preview)
35
+ ## Local and read-only
82
36
 
83
- A local, dark-only overview of application inference inventory, connections, activity, and compute. Coding-harness usage is outside its scope. It reads existing metadata passively and makes no model calls.
37
+ The terminal reads supported project files, logs, exports, and authorized loopback runtime inventory endpoints. It does not execute your application code, call models, route inference, run evaluations, or change your model configuration. It does not retain prompts, responses, or credential values in its snapshots. Closing it leaves your workloads running.
84
38
 
85
- With Node.js 22.19+ installed, run this from your application's directory:
39
+ Repository indexing runs in the background and reuses unchanged metadata in memory. Request history and runtime readers have documented limits. The local API can be reached by other processes or users on the same machine, so treat its model names, endpoint identifiers, and file paths as project data.
40
+
41
+ ## Useful commands
86
42
 
87
43
  ```sh
88
- npm install -g openmerit@preview
89
- openmerit dash
44
+ openmerit dash --no-open # Print the local URL without opening a browser
45
+ openmerit dash --json # Print one collected snapshot, then exit
46
+ openmerit dash --diagnostics # Print repository-index coverage counts only
47
+ openmerit dash --demo # Explore fictional data without local collection
48
+ openmerit dash --help
90
49
  ```
91
50
 
92
- The preview uses the existing `openmerit` npm package, including its coordinator, protocol, Pi adapter, and compiled terminal assets. It opens its localhost URL in your default browser. The stable npm package `openmerit@0.1.5` does not include this command. See the [Inference Terminal guide](docs/inference-terminal.md) for supported sources, updating or removing the preview, source builds, and read-only agent access.
93
-
94
- ## Documentation
95
-
96
- Read the searchable [OpenMerit documentation](https://openmerit.site/docs/). The Markdown sources below also ship with the package.
51
+ See the [Inference Terminal guide](docs/inference-terminal.md) for supported sources, setup, options, data handling, and limitations. You can also [explore the hosted fictional sample](https://dash.openmerit.site/) without installing anything; it does not inspect your environment.
97
52
 
98
- - [Getting started](docs/getting-started.md)
99
- - [Your first trial](docs/first-trial.md)
100
- - [Command reference](docs/commands.md)
101
- - [Budgets and permissions](docs/budgets.md)
102
- - [Troubleshooting](docs/troubleshooting.md)
103
- - [Architecture and responsibility boundary](docs/architecture.md)
104
- - [Metrics and evidence](docs/metrics-and-evidence.md)
105
- - [Improvement lifecycle](docs/lifecycle.md)
106
- - [Harness-neutral automation](docs/automation.md)
107
- - [Pi extension guide](docs/pi-extension.md)
108
- - [Building another harness adapter](docs/adapter-guide.md)
109
- - [Pareto conformance specification](docs/pareto-spec.md)
110
- - [Project state and operations](docs/operations.md)
111
- - [Security](docs/security.md)
112
- - [Testing](docs/testing.md)
113
- - [Current limitations and roadmap](docs/roadmap.md)
53
+ ## Optional Pi integration
114
54
 
115
- ### Maintaining documentation
55
+ The package also retains the Pi extension, reusable coordinator, and protocol. These are separate from the terminal. Pi can gather application evidence and carry out user-authorized model comparisons and changes; OpenMerit coordinates typed outcomes and validates the returned structure and frontier evidence.
116
56
 
117
- Edit the Markdown in `docs/` alongside product changes. The public documentation is generated from these same files; there is no separate article copy to update in `site/`. Run `npm run check:docs` to rebuild and validate it. The normal Cloudflare deployment rebuilds and publishes the documentation. See [the documentation workflow](docs/site-documentation.md) for adding guides and previewing changes.
57
+ For Pi 0.87 with a supported model provider configured:
118
58
 
119
- ## Repository layout
59
+ ```sh
60
+ pi install npm:openmerit
61
+ ```
120
62
 
121
- - `packages/protocol` — harness-neutral types for intents, results, metrics, policies, and frontier evidence.
122
- - `packages/core` — adapter SDK, durable coordinator, pluggable persistence, policy, and frontier conformance verification.
123
- - `packages/pi` — Pi extension that turns OpenMerit intents into harness work.
124
- - `docs` — user, operator, architecture, and normative documentation.
63
+ Then use `/openmerit doctor` inside Pi. See [Pi setup](docs/getting-started.md), [commands](docs/commands.md), [budgets and permissions](docs/budgets.md), and [current limitations](docs/roadmap.md). The terminal itself does not perform this evaluation or routing work.
125
64
 
126
- The workspace modules are private development boundaries. The published
127
- package exposes `openmerit/core`, `openmerit/protocol`, and `openmerit/pi`.
65
+ The existing `openmerit/core`, `openmerit/protocol`, and `openmerit/pi` exports remain available for integrations.
128
66
 
129
- ## Development from source
67
+ ## Documentation
130
68
 
131
- ```sh
132
- npm ci
133
- npm run verify
134
- ./node_modules/.bin/pi --no-extensions -e ./packages/pi/src/index.ts
135
- ```
69
+ - [Inference Terminal](docs/inference-terminal.md)
70
+ - [Security and data handling](docs/security.md)
71
+ - [Project files and logs](docs/operations.md)
72
+ - [Architecture and integrations](docs/architecture.md)
73
+ - [Testing and validation](docs/testing.md)
74
+ - [Changelog](CHANGELOG.md)
136
75
 
137
- `--no-extensions` prevents an installed npm copy of OpenMerit from registering the same tools as the source extension. Credentials must never be committed. The repository intentionally contains no provider or Jev API key.
76
+ The bundled Inference Terminal guide follows this package version. The separately deployed [documentation website](https://openmerit.site/docs/) may reflect a different release.
@@ -46,7 +46,7 @@ Exposes the command surface, supplies private typed intent context, triggers Pi,
46
46
 
47
47
  The Pi package implements `HarnessAdapter`. It does not define canonical intents, per-intent result contracts, stage transitions, or validation rules.
48
48
 
49
- ### Inference Terminal (unreleased)
49
+ ### Inference Terminal (0.1.6)
50
50
 
51
51
  `packages/terminal` supplies a standalone `openmerit dash` executable, passive collectors, a loopback read-only HTTP API, and bundled dark-only browser assets. It does not invoke the coordinator or harness. One collector cycle reads existing metadata and runtime inventory; browser clients receive the same cached snapshot. Imported activity, runtime counters, and sampled whole-machine resources retain their separate scopes. Missing measurements remain unknown, and fictional sample data is isolated from the real snapshot. See the [terminal guide](inference-terminal.md) for the supported sources and JSON contract.
52
52
 
package/docs/commands.md CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  Run these slash commands inside Pi with the OpenMerit extension loaded. Shell commands such as `pi install` run in your terminal instead.
4
4
 
5
- ## Inference Terminal (preview)
5
+ ## Inference Terminal
6
6
 
7
- The `openmerit@preview` npm package adds a shell command, `openmerit dash [path]`, for a passive local view of models, connections, usage, and compute. From this checkout, use `npm run dash -- [path]`. It is independent of Pi setup and does not run model comparisons or inference. Published `openmerit@0.1.5` does not include it.
7
+ Install `openmerit@0.1.6` with `npm install -g openmerit` to use the shell command `openmerit dash [path]`, for a passive local view of models, connections, usage, and compute. From this checkout, use `npm run dash -- [path]`. It is independent of Pi setup and does not run model comparisons or inference. Earlier `openmerit@0.1.5` does not include it.
8
8
 
9
9
  See the [Inference Terminal guide](inference-terminal.md) for local installation, automatic discovery, `--no-discovery`, `--json`, `--demo`, collection intervals, and data limitations. Discovery is part of `dash` and is scoped to application evidence. Coding-harness histories are not collected.
10
10
 
package/docs/index.md CHANGED
@@ -2,7 +2,18 @@
2
2
 
3
3
  OpenMerit helps your coding harness compare models against the work your product needs to do. You define what matters; the harness gathers measurements and tests candidates; OpenMerit coordinates the process and checks the returned results.
4
4
 
5
- The current release is intended for supervised trials with Pi. Start with a representative task and working evaluations before relying on automatic model changes.
5
+ The optional orchestration integration is intended for supervised trials with Pi. Start with a representative task and working evaluations before relying on automatic model changes.
6
+
7
+ ## View your application inference
8
+
9
+ Version `0.1.6` includes the local Inference Terminal as an early starting point for OpenMerit. Requires Node.js 22.19 or newer:
10
+
11
+ ```sh
12
+ npm install -g openmerit
13
+ openmerit dash
14
+ ```
15
+
16
+ Run it from your application's directory. See the [Inference Terminal guide](inference-terminal.md) for supported sources, recorded activity, background indexing, and data limits. Pi setup is separate and optional for terminal users.
6
17
 
7
18
  ## Start with your product
8
19
 
@@ -1,30 +1,32 @@
1
1
  # Inference Terminal
2
2
 
3
- The Inference Terminal is available as a test preview and in the source checkout; it is not in the stable npm release. It gives people and agents a local overview of an application’s models, providers, connections, inference activity, and compute. The selected repository or application path defines its scope. A coding agent can launch or read the terminal, but the coding harness’s own requests, tokens, and costs are outside that scope. Published `openmerit@0.1.5` does not include this command.
3
+ The Inference Terminal is included in the default `openmerit@0.1.6` npm release. It is an early part of OpenMerit, not the complete product vision. It gives people and agents a local overview of an application’s models, providers, connections, inference activity, and compute. The selected repository or application path defines its scope. A coding agent can launch or read the terminal, but the coding harness’s own requests, tokens, and costs are outside that scope. Earlier `openmerit@0.1.5` does not include this command.
4
4
 
5
5
  The terminal reads existing metadata independently of inference. It does not call a model, change a route, run evaluations, load or unload models, or store prompts and responses. Closing it does not stop your workloads. Collection consumes a small amount of local CPU, memory, and runtime API capacity; it is not zero-overhead monitoring.
6
6
 
7
7
  ## Share the sample
8
8
 
9
- The [hosted sample preview](https://dash.openmerit.site/) lets you explore the fictional enterprise environment in a browser without installing the terminal. It includes 40 agents, 140 tasks, and 21 models, with the same tabs and inspectors as the local interface. All identities, requests, costs, and hardware readings are illustrative. Shared links use the title **Inference Terminal by OpenMerit** and a dedicated preview image.
9
+ The [hosted sample](https://dash.openmerit.site/) lets you explore a fictional environment in a browser without installing the terminal. It is deployed separately from this npm package, so its sample data and interface can differ. All identities, requests, costs, and hardware readings in the sample are illustrative.
10
10
 
11
- The preview is accessible to anyone with the link and asks search engines not to index it. It does not connect to your machine, accept project uploads, make inference calls, or expose the local snapshot API. Its read-only `/api/sample` endpoint returns fictional data. Real environment collection runs locally through the test install or source-build commands below; the hosted page never runs collectors. Hosted sample refreshes allow up to 30 seconds for the large fictional response on slower connections; local snapshot requests retain their 5-second limit. Only one refresh request runs at a time, even when a transfer takes longer than the normal polling interval.
11
+ The hosted page does not connect to your machine, accept project uploads, or run local collectors. Use the npm installation below to view your own application.
12
12
 
13
- ## Install the test preview
13
+ ## Install
14
14
 
15
- The terminal is delivered through the existing `openmerit` package under npm’s `preview` tag. Historical ranges are included in `0.1.6-preview.1` and later; the project-evidence corrections below require `0.1.6-preview.2` or later. Expanded endpoint discovery and the review corrections require `0.1.6-preview.3` or later. Repository code/configuration indexing and counts-only diagnostics require `0.1.6-preview.4` or later. Phased background indexing and incremental metadata reuse require `0.1.6-preview.5` or later. Requires **Node.js 22.19 or newer**, with npm available in your terminal. From your application's directory:
15
+ Requires **Node.js 22.19 or newer**, with npm available in your terminal. From your application's directory:
16
16
 
17
17
  ```sh
18
18
  cd /path/to/your/project
19
- npm install -g openmerit@preview
19
+ npm install -g openmerit
20
20
  openmerit dash
21
21
  ```
22
22
 
23
- The install uses the existing `openmerit` npm package, with the terminal bundled alongside its coordinator, protocol, and Pi adapter. It downloads a prebuilt test version. No Git checkout, build step, API key, or separate audit command is needed. Installation is global for your Node environment: it does not add a dependency, lockfile, or configuration to the application directory. It replaces any globally installed `openmerit` in the same npm prefix. This preview is separate from the stable package on npm; `npm install -g openmerit` still installs the stable release without `dash`.
23
+ Version `0.1.6` brings the code from `0.1.6-preview.5` into npm's default `latest` channel. It includes historical activity ranges, project-evidence corrections, expanded endpoint discovery, code/configuration indexing, counts-only diagnostics, and phased background indexing. References to earlier preview versions below explain when behavior changed; all of those changes are included in `0.1.6`.
24
24
 
25
- `openmerit dash` reads the current directory, starts a server bound to `127.0.0.1`, and opens its URL in your default browser after the first snapshot is ready in published previews through `0.1.6-preview.4`. From `0.1.6-preview.5`, it opens before collection finishes, as described below. Port 4310 is preferred; when occupied, the operating system chooses a free local port. The actual URL is always printed. macOS, Windows, and Linux desktop opening use the platform's default URL handler. SSH and headless Linux sessions print the URL instead; use a private SSH port forward to view a remote instance. A browser-launch failure does not stop collection.
25
+ The terminal is bundled alongside the coordinator, protocol, and Pi adapter. The installation downloads prebuilt assets; no Git checkout, build step, API key, Pi installation, or separate audit command is needed to run the terminal. Installation is global for your Node environment: it does not add a dependency, lockfile, or configuration to the application directory. It replaces any globally installed `openmerit` in the same npm prefix.
26
26
 
27
- Run the same install command to update the preview. Remove it with `npm uninstall -g openmerit`, or restore the stable package with `npm install -g openmerit@0.1.5`. Registry preview builds have a `-preview.` version suffix; `npm ls -g openmerit --depth=0` shows which one is installed. `npm view openmerit dist-tags` shows the published preview and stable versions. To replace an earlier hosted `-dash.` test build, run the npm install command above.
27
+ `openmerit dash` reads the current directory, starts a server bound to `127.0.0.1`, and opens its URL before collection finishes. Port 4310 is preferred; when occupied, the operating system chooses a free local port. The actual URL is always printed. macOS, Windows, and Linux desktop opening use the platform's default URL handler. SSH and headless Linux sessions print the URL instead; use a private SSH port forward to view a remote instance. A browser-launch failure does not stop collection.
28
+
29
+ Run `npm install -g openmerit` to update, including from an earlier `@preview` or hosted `-dash.` build. Stop the old terminal process and launch `openmerit dash` again after updating. Pin this release with `npm install -g openmerit@0.1.6`; remove it with `npm uninstall -g openmerit`. `npm ls -g openmerit --depth=0` shows the installed version, and `npm view openmerit dist-tags` shows the registry channels. The separate `preview` tag can still point to an older prerelease; use the default install for `0.1.6`.
28
30
 
29
31
  If npm reports `EACCES`, use a user-owned Node installation/npm prefix rather than installing with `sudo`. If `openmerit` is not found after a successful install, reopen the terminal and check that your npm global executable directory is on `PATH`.
30
32
 
@@ -56,15 +58,15 @@ openmerit dash --no-open
56
58
  | `--no-discovery` | Skip project-file and request-log discovery and additional runtime discovery for this run; explicitly declared runtimes and exports, explicitly linked machine context remain available |
57
59
  | `--no-open` | Start collection and print the URL without launching a browser |
58
60
  | `--json` | Print one snapshot and exit without starting an HTTP server |
59
- | `--diagnostics` | **0.1.6-preview.4+:** print repository-index coverage counts only, then exit; no browser, server, or endpoint probes |
61
+ | `--diagnostics` | Print repository-index coverage counts only, then exit; no browser, server, or endpoint probes |
60
62
  | `--demo` | Use an explicitly fictional environment; no local collectors run |
61
63
  | `--help` | Show usage |
62
64
 
63
65
  Use Ctrl+C to close the terminal. There is no persistent daemon or background scheduler. Collection runs only while the command is running. The terminal is separate from Pi's `/openmerit pause` and other orchestration commands.
64
66
 
65
- ## Repository indexing (0.1.6-preview.4+)
67
+ ## Repository indexing
66
68
 
67
- Version `0.1.6-preview.4` adds a bounded, local syntax index of application declarations. No repository access needs to be shared with OpenMerit, and no separate audit step is required. The index runs initially and every 60 seconds while the terminal is running. It creates no files in the application.
69
+ Version `0.1.6` includes a local syntax index of application declarations, introduced in `0.1.6-preview.4` and extended with continuing background batches in `0.1.6-preview.5`. No repository access needs to be shared with OpenMerit, and no separate audit step is required. The index runs initially and rechecks 60 seconds after a pass completes while the terminal is running. It creates no files in the application.
68
70
 
69
71
  The reader supports Python, JavaScript/TypeScript (including JSX/TSX), JSON, YAML, TOML, and project-local `.env*` files. It finds literal model/endpoint fields, conservative same-file variable and object references, environment references resolved from the nearest project-local dotenv directory, selected SDK call patterns, and enclosing function names. Unknown/private HTTP(S) endpoints remain named by their sanitized address; a custom host or port never establishes a vendor, runtime, deployment, or physical machine. Public Hub/download URLs do not establish an inference service. URLs found by this index are **never probed**; existing explicitly authorized runtime discovery remains separate.
70
72
 
@@ -78,7 +80,7 @@ Reads stay within the selected directory, skipping symlinks, hidden directories,
78
80
 
79
81
  The snapshot retains selected identifiers, relative file paths, line numbers, and sanitized endpoint addresses. It discards raw source text, prompt/response fields, credentials, URL credentials, query strings, fragments, and resource paths. Known dedicated resource subdomains are redacted. Structural paths such as `/v1` or `/api/v1` may remain. Local endpoint addresses, model names, and filenames can still be sensitive; the full snapshot is intended for local viewing.
80
82
 
81
- To share coverage without sharing the repository or its identifiers, run this option from the project with **0.1.6-preview.4 or later**:
83
+ To share coverage without sharing the repository or its identifiers, run this option from the project with **0.1.6**:
82
84
 
83
85
  ```sh
84
86
  openmerit dash --diagnostics
@@ -88,9 +90,9 @@ It prints only format/read/skip/declaration/issue counts and scan limits. It doe
88
90
 
89
91
  `--no-discovery` or `"discovery": false` disables the index. Request history still requires supported application logs or explicit exports. An inactive project can expose its declarations without having retained any usage history; code cannot reconstruct missing requests, tokens, latency, or spend.
90
92
 
91
- ## Phased repository indexing (0.1.6-preview.5+)
93
+ ## Phased repository indexing
92
94
 
93
- Version `0.1.6-preview.5` replaces the repository-wide entry, depth, file-count, total-byte, and declaration limits above with continuing batches. Versions through `0.1.6-preview.4` retain the earlier bounds.
95
+ Version `0.1.6` retains the `0.1.6-preview.5` behavior, which replaces the repository-wide entry, depth, file-count, total-byte, and declaration limits above with continuing batches. Versions through `0.1.6-preview.4` retain the earlier bounds.
94
96
 
95
97
  - **Open immediately:** the loopback server listens before initial collection. The browser shows “Opening your inference terminal” while sources load, without displaying empty metrics as measured zero. Initial collection failures are disclosed and retried on the next collection tick.
96
98
  - **Discover, index, link:** a dedicated worker walks eligible directories, then prioritizes dotenv files, structured configuration, and inference-related source names. The initial index publishes usable declarations in batches. The interface shows discovered files while the total is unknown, then checked/total files. Completion means the eligible-file pass finished; exclusions and unresolved syntax still appear in coverage.
@@ -10,7 +10,7 @@ Operational data lives under `.openmerit/` in the target product repository. It
10
10
  - `audit-export-errors.jsonl` — failures from optional external event exporters; these failures never replace or erase the canonical local event.
11
11
  - `evidence/*.json` — evidence-reference manifests.
12
12
  - `scheduler-status.json` — last headless wakeup time and exit code in the unreleased macOS source implementation, when a wakeup actually ran.
13
- - `terminal.json` — optional source configuration and declared inventory for the unreleased Inference Terminal.
13
+ - `terminal.json` — optional source configuration and declared inventory for the Inference Terminal included in `0.1.6`.
14
14
  - `inference.jsonl` — optional request-metadata export supplied by your existing tools for the terminal. The terminal reads this file; it does not instrument your application or create the feed.
15
15
 
16
16
  Snapshot writes are atomic. Files use owner-only permissions where POSIX modes are supported.
package/docs/security.md CHANGED
@@ -28,10 +28,14 @@ OpenMerit validates structure and deterministic Pareto conformance, not the trut
28
28
 
29
29
  Do not include credentials, private traces, or proprietary evaluation data in public issues.
30
30
 
31
- ## Inference Terminal (preview)
31
+ ## Inference Terminal (0.1.6)
32
32
 
33
- The preview terminal reads selected project metadata, bounded loopback runtime inventory/metrics endpoints, and whole-machine CPU and memory. It calls no inference endpoint and exposes no mutation API. Default discovery reads only the project's `.env`, `.env.local`, `package.json`, and `requirements.txt`, with per-file bounds and project containment after symlink resolution. It never executes those files or expands expressions. Known credential-variable presence can identify a configured provider; credential contents are neither retained, returned, nor used for provider calls. Only safe loopback origins and recognized service identity metadata survive projection.
33
+ The terminal reads supported project metadata, request logs, explicit exports, and authorized loopback runtime inventory/metrics endpoints. It calls no inference endpoint and exposes no mutation API. A local syntax index reads supported Python, JavaScript/TypeScript, JSON, YAML, TOML, and project-local dotenv declarations. It does not execute or import project code, source shell files, or resolve arbitrary expressions. Known credential-variable presence can identify configuration; credential values are discarded and never used for provider calls. Endpoint addresses are sanitized before retention. Static URLs found by the syntax index never authorize network probes.
34
34
 
35
- Coding-harness histories are outside the terminal’s application scope and are not scanned or imported. The retired Pi history reader and access prompts are removed; legacy grants in `~/.openmerit/terminal-access.json` are never consulted. Application request logs and explicit exports retain only allowlisted metadata. Sources must belong to the selected application; the terminal cannot infer the purpose of an unlabeled API response. Records explicitly marked `scope: "development"` are rejected.
35
+ Loopback runtime probes require supported project endpoint declarations or explicit terminal configuration. No standard ports, remote provider accounts, credential stores, running processes, or general home directories are scanned. Whole-machine readings are context, not per-request measurements; the compute view requires explicit links or supplied host evidence.
36
36
 
37
- The local web service binds to `127.0.0.1` and rejects unexpected Host, Origin, and cross-site browser requests. It only serves bundled assets and specific read-only JSON routes. It is not authenticated against other local processes or machine users. Names and identifiers in imported metadata must still be kept free of secrets. Usage caches disappear when the process exits. Legacy history permission files are left untouched but have no effect. No cloud usage APIs, credential stores, arbitrary source-tree indexing, process inspection, or general home-directory scans are performed. See [terminal data handling and limits](inference-terminal.md) for supported sources, precedence, retention bounds, and sample-data separation.
37
+ Coding-harness histories are outside the terminal's application scope and are not scanned or imported. The retired Pi history reader and access prompts are removed; legacy grants in `~/.openmerit/terminal-access.json` are never consulted. Application request logs and explicit exports retain only allowlisted metadata, without prompts or responses. Sources must belong to the selected application; the terminal cannot infer the purpose of an unlabeled API response. Records explicitly marked `scope: "development"` are rejected.
38
+
39
+ The local web service binds to `127.0.0.1` and rejects unexpected Host, Origin, and cross-site browser requests. It only serves bundled assets and specific read-only JSON routes. It is not authenticated against other local processes or machine users. Model names, endpoint identifiers, and relative source paths can still be sensitive. Names and identifiers in imported metadata must be kept free of secrets.
40
+
41
+ Repository metadata and usage caches live in process memory and disappear when the terminal exits. The terminal creates no persistent index or files in the application. Per-file/parser protections, request-log read limits, runtime inventory limits, and explicit coverage gaps still apply. See [terminal data handling and limits](inference-terminal.md) for supported sources, precedence, retention bounds, diagnostics, and sample-data separation.
@@ -181,3 +181,10 @@ Reviewed startup, background collection, data handling, coverage and readiness c
181
181
  ## Phased indexing release preparation — 10 October 2026
182
182
 
183
183
  Prepared `0.1.6-preview.5` for the existing npm preview channel. The source build passed all 281 verification tests. A separate 5,001-file synthetic repository on the four-core, 4 GiB VM exposed 25,001 references: URL ready in 43 ms, first declarations at about 1 second, full index at 4.1 seconds. An edit/deletion pass reused 4,998 files, read about 9 KiB, and completed in 1.27 seconds. These are fixture measurements, not a universal performance guarantee. The private VM source build preserved all 246 real request records and all 128 application files through passive refresh. Registry publication and installation verification are pending. The guide identifies behavior by minimum version; stable `latest`, homepage FAQ claims, and site deployments are unchanged.
184
+
185
+
186
+ ## npm default-channel release preparation — 11 October 2026
187
+
188
+ Prepared `0.1.6` using the unchanged runtime code from npm `0.1.6-preview.5`. The packaged README, terminal install guide, command entry, architecture/operations references, and terminal security boundaries now describe the default npm installation. Registry publication remains pending release verification and authentication.
189
+
190
+ Reviewed homepage evidence, data, background, cost, and readiness claims. The terminal remains passive, requires recorded evidence for usage, does not call models or perform routing/evaluations, and stops when the command exits. Indexing is explicitly local and syntax-limited. Its availability in the default npm package does not establish the complete OpenMerit product vision or measured optimization results. Pi coordinator behavior is unchanged from the preview; existing version-specific `0.1.5` caveats are historical. This is an npm-only release: repository branches, the website, and its separately deployed documentation are not changed or deployed. The npm README points to the bundled terminal guide for this version's behavior.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openmerit",
3
- "version": "0.1.6-preview.5",
3
+ "version": "0.1.6",
4
4
  "description": "Evidence-driven model decisions for coding harnesses.",
5
5
  "type": "module",
6
6
  "bin": {