owlrunkit 0.13.0 → 0.14.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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.14.0
4
+
5
+ - Adds ordinary `--help` and `--version`, read-only `doctor`, exact official
6
+ registry `adopt`, and deterministic `profiles detect`, `validate`, and
7
+ `impact` commands for self-service project onboarding.
8
+ - Makes `init` guide new users through doctor, profile detection, then exact
9
+ adoption or Formal start while retaining a complete JSON machine view.
10
+ - Includes the previously prepared Core v0.13 documentation corrections for
11
+ Quick verification, deterministic repair, offline transport,
12
+ registry-first adoption, and the canonical Codex Skill update boundary.
13
+ - Updates the bundled Codex Skill and config template to Core `0.14.0`.
14
+ - Keeps Contract v0.2 and OwlCoda CLI `0.15.31` unchanged.
15
+ - Does not add signing, keys, GitHub Actions, or authority.
16
+
3
17
  ## 0.13.0
4
18
 
5
19
  - First standalone npm release of OwlRunKit.
package/README.md CHANGED
@@ -11,16 +11,33 @@ release authority.
11
11
  ## Install
12
12
 
13
13
  ```bash
14
- npm install --save-exact owlrunkit@0.13.0
14
+ npm install --save-exact owlrunkit@0.14.0
15
15
  ```
16
16
 
17
- Initialize and inspect a project:
17
+ Check the ordinary CLI surface, then initialize a project:
18
18
 
19
19
  ```bash
20
+ owlrunkit --help
21
+ owlrunkit --version
20
22
  owlrunkit init --workspace /absolute/path/to/project
21
- owlrunkit inspect --workspace /absolute/path/to/project --json
23
+ owlrunkit doctor --workspace /absolute/path/to/project
24
+ owlrunkit profiles detect --workspace /absolute/path/to/project --dry-run
25
+ owlrunkit adopt --workspace /absolute/path/to/project --exact owlrunkit@0.14.0
22
26
  ```
23
27
 
28
+ `doctor` is read-only and distinguishes offline/DNS timeout, registry
29
+ authentication, missing version, and local install binding failures. Profile
30
+ detection is deterministic and dry-run only; use `profiles validate` and
31
+ `profiles impact --changed` for supported profile checks. `adopt` writes typed
32
+ evidence only after the exact installed package and lockfile match the official
33
+ npm registry release.
34
+
35
+ Use Quick Verification for one low-risk source-bound command that needs a
36
+ reusable receipt but no writer lease or Formal acceptance. Use Formal Delivery
37
+ for multi-writer, long-running, migration, integration, release, production,
38
+ funds, or formally accepted work. A Quick receipt cannot become Formal
39
+ acceptance, and accepted never grants Git or release authority.
40
+
24
41
  The package also includes the read-only verifier:
25
42
 
26
43
  ```bash
@@ -37,7 +54,8 @@ Those remain explicit external decisions even when verification passes.
37
54
 
38
55
  - Node.js 20.19 or newer
39
56
  - a local project directory
40
- - no network access for normal verification and recovery operations
57
+ - network access only for explicit `doctor` registry diagnostics and `adopt`;
58
+ normal verification and recovery remain local
41
59
 
42
60
  ## License
43
61
 
@@ -453,6 +453,85 @@ claim that every provider exposes reliable remaining quota, reset time, or
453
453
  pricing. Live provider adapters require a separately verifiable source and may
454
454
  legitimately report typed unknown fields.
455
455
 
456
+ ## Core v0.13 standalone distribution, Quick verification and repair
457
+
458
+ Core `0.13.0` is distributed through the standalone `owlrunkit` package. The
459
+ RunKit package has an independent semantic version lifecycle from the
460
+ `owlcoda` CLI; a RunKit packaging or documentation patch does not change the
461
+ Contract `0.2` / Core `0.13.0` identity unless Core behavior or its bound
462
+ dependency closure changes.
463
+
464
+ Core `0.13.0` adds a bounded Quick Verification lane for one exact command
465
+ without a writer lease or Formal acceptance. `quick-verify` records the
466
+ pre/post workspace fingerprints, exact executable and argv, stdout/stderr
467
+ materials, exit result and an authorization-free
468
+ `OwlCodaQuickVerificationReceiptV1`. `quick-attest` recomputes the selected
469
+ workspace and receipt bindings. `quick-metrics --local` reads only the
470
+ project-owned receipt store and performs no telemetry or network access. A
471
+ Quick `GO` remains `captured_verification`; it cannot satisfy the Formal
472
+ Contract v0.2 acceptance gate.
473
+
474
+ Deterministic `repair` persists a reviewable plan before replay, reuses only
475
+ fresh receipt-bound coverage, replays pending exact argv, and appends
476
+ replacement lineage. Failed and orphaned attempts remain inspectable. Repair
477
+ cannot rewrite the parent receipt, lower risk, replace the executable after
478
+ planning, or activate a green leaf after source/profile drift.
479
+
480
+ `offline-export` and `offline-import` move exact receipt bytes through
481
+ `OwlCodaOfflineAttestationBundleV1`. Export refuses an existing destination.
482
+ Import is idempotent only when the stored receipt bytes match exactly and fails
483
+ closed on conflicts, symlinked paths or malformed bundles. The embedded
484
+ read-only attestation component is part of the standalone package; it does not
485
+ need a separate public package for the first adoption wave.
486
+
487
+ Formal cross-project adoption is registry-first. The installed package and
488
+ controller-owned `OwlCodaRunKitRegistryReleaseEvidenceV1` must bind the same
489
+ exact official npm registry version, 40-hex `shasum`, canonical SHA-512
490
+ `integrity`, and exact tarball URL. A local directory, `file:` dependency,
491
+ local tarball, symlink, workspace link, Git reference or mutable dist-tag can
492
+ exercise a release candidate but is not formal adoption evidence.
493
+
494
+ The canonical Codex Skill is assembled atomically with a content manifest that
495
+ binds its Skill text, Core, contracts and attestation files. Known valid
496
+ installations may be archived and replaced; unknown drift fails closed. Core
497
+ `0.13.0` does not grant Git, npm, release, or foreign-project authority.
498
+ Signing, keys, external anchors and GitHub Actions remain deferred.
499
+
500
+ ## Core v0.14 self-service onboarding
501
+
502
+ Core `0.14.0` keeps Contract `0.2`, Quick/Formal lane separation, exact
503
+ registry binding, append-only execution lineage, independent review and all
504
+ authority boundaries unchanged. Its product change is the first-adoption
505
+ surface of the standalone `owlrunkit` package:
506
+
507
+ - top-level `--help` and `--version` follow ordinary CLI expectations and exit
508
+ successfully without creating project state;
509
+ - `doctor` performs read-only Node, Core, config, package, registry, profile
510
+ and project-script diagnostics with a short network timeout and a typed
511
+ offline/DNS-timeout, authorization, missing-version and binding-mismatch
512
+ taxonomy;
513
+ - `profiles detect --dry-run`, `profiles validate`, and
514
+ `profiles impact --changed` provide deterministic official entrypoints
515
+ without treating guessed profiles as authoritative configuration;
516
+ - `adopt --exact owlrunkit@0.14.0` accepts only the official npm registry exact
517
+ version whose registry metadata and local install/lock binding pass the
518
+ existing strict adoption evaluator; and
519
+ - `init` and `inspect` add a separate onboarding projection for
520
+ `doctor -> profiles detect --dry-run -> adopt or Formal start`.
521
+
522
+ Read-only onboarding commands must not write project state or expose registry
523
+ credentials. Adoption evidence is written atomically only after eligibility.
524
+ Local directories, worktrees, `file:` or Git dependencies, local tarballs,
525
+ workspace links and mutable tags remain fail-closed. Profile detection never
526
+ overwrites existing config, and an implementation may omit `profiles apply`
527
+ rather than infer authority from a deterministic suggestion.
528
+
529
+ The onboarding projection is not the recovery state machine: a project with a
530
+ stale Packet, invalid evidence or engine drift must still follow the Core's
531
+ `nextAllowedAction`. Core `0.14.0` does not grant Git, npm, release, deploy or
532
+ foreign-project authority. Signing, keys, external anchors and GitHub Actions
533
+ remain deferred.
534
+
456
535
  ## Deferred work
457
536
 
458
537
  Contract v0.2 still does not add a built-in browser or Electron driver, Plugin,
@@ -7,6 +7,9 @@ description: Run receipt-backed, project-owned software execution with OwlCoda R
7
7
 
8
8
  Use the bundled deterministic Core to coordinate work through project artifacts rather than chat memory. Require Node.js 20 or later.
9
9
 
10
+ Current release: standalone `owlrunkit@0.14.0`, bundling Contract `0.2` and
11
+ Core `0.14.0`. The root `owlcoda` package has a separate version lifecycle.
12
+
10
13
  The session is an execution interface. Project artifacts are the system of record.
11
14
 
12
15
  ## Start safely
@@ -22,8 +25,8 @@ Set `SKILL_ROOT` to this skill directory before running the examples below.
22
25
  ## Initialize and inspect
23
26
 
24
27
  ```bash
25
- node "$SKILL_ROOT/scripts/runkit-contract/runkit-cli.mjs" init --workspace "$PROJECT_ROOT"
26
- node "$SKILL_ROOT/scripts/runkit-contract/runkit-cli.mjs" inspect --json --workspace "$PROJECT_ROOT"
28
+ owlrunkit init --workspace "$PROJECT_ROOT"
29
+ owlrunkit inspect --json --workspace "$PROJECT_ROOT"
27
30
  ```
28
31
 
29
32
  Initialization may write only `.owlcoda/runkit/`. It must not modify business source.
@@ -53,6 +56,102 @@ dangling or non-regular control truth fails closed instead of appearing absent.
53
56
  Project config authority fields are validated before output, human text escapes
54
57
  control characters, and indexed ordering is locale independent.
55
58
 
59
+ ## Core v0.13 distribution, verification and recovery
60
+
61
+ Core `0.13.0` introduced the standalone distribution, Quick verification and
62
+ repair surfaces. OwlRunKit uses its own version lifecycle: the standalone
63
+ `owlrunkit` npm package may change without changing the `owlcoda` CLI version.
64
+
65
+ For one low-risk exact command, use the Core v0.13 Quick path:
66
+
67
+ ```bash
68
+ node "$SKILL_ROOT/scripts/runkit-contract/runkit-cli.mjs" quick-verify \
69
+ --workspace "$PROJECT_ROOT" -- "$ABSOLUTE_EXECUTABLE" "arg-one"
70
+
71
+ node "$SKILL_ROOT/scripts/runkit-contract/runkit-cli.mjs" quick-attest \
72
+ --workspace "$PROJECT_ROOT" --receipt "$QUICK_RECEIPT"
73
+
74
+ node "$SKILL_ROOT/scripts/runkit-contract/runkit-cli.mjs" quick-metrics \
75
+ --workspace "$PROJECT_ROOT" --local
76
+ ```
77
+
78
+ Quick receipts are `captured_verification`, not Formal acceptance. Metrics are
79
+ local-only and perform no telemetry or network request.
80
+
81
+ Core v0.13 also adds deterministic repair and exact-byte offline transport:
82
+
83
+ ```bash
84
+ node "$SKILL_ROOT/scripts/runkit-contract/runkit-cli.mjs" repair \
85
+ --workspace "$PROJECT_ROOT" --run-id "$RUN_ID"
86
+
87
+ node "$SKILL_ROOT/scripts/runkit-contract/runkit-cli.mjs" offline-export \
88
+ --workspace "$PROJECT_ROOT" --receipt "$RECEIPT" --output "$BUNDLE"
89
+
90
+ node "$SKILL_ROOT/scripts/runkit-contract/runkit-cli.mjs" offline-import \
91
+ --workspace "$PROJECT_ROOT" --bundle "$BUNDLE" --store "$OFFLINE_STORE"
92
+ ```
93
+
94
+ Repair must preserve the failed attempt and append replacement lineage. Offline
95
+ export refuses an existing target; import is idempotent only for identical
96
+ bytes. Neither operation grants authority.
97
+
98
+ Formal cross-project adoption is registry-first adoption. It requires an exact
99
+ published `owlrunkit` version plus matching official npm registry `shasum`,
100
+ `integrity`, tarball URL, and controller-owned release evidence. A local
101
+ worktree, directory, `file:` dependency, local tarball, symlink, workspace link,
102
+ Git ref, or mutable dist-tag may test a release candidate but is not evidence
103
+ for formal adoption.
104
+
105
+ Do not hand-edit an installed Skill. Inspect or atomically refresh it from an
106
+ authoritative package/repository with:
107
+
108
+ ```bash
109
+ node "$RUNKIT_PACKAGE_ROOT/scripts/runkit-contract/install-codex-skill.mjs" \
110
+ inspect --target "$RUNKIT_SKILL_TARGET"
111
+
112
+ node "$RUNKIT_PACKAGE_ROOT/scripts/runkit-contract/install-codex-skill.mjs" \
113
+ install --repository "$RUNKIT_PACKAGE_ROOT" \
114
+ --target "$RUNKIT_SKILL_TARGET" --archive "$RUNKIT_SKILL_ARCHIVE_ROOT"
115
+ ```
116
+
117
+ The install manifest binds every Skill, Core, contract and attest file.
118
+ Unknown installed drift fails closed instead of being overwritten. An accepted
119
+ receipt, ready-for-commit receipt, package publication, or valid install still
120
+ does not grant Git, npm, release, deploy, or foreign-project authority.
121
+
122
+ ## Core v0.14 self-service onboarding
123
+
124
+ The bundled Core is `0.14.0`. New users should not need internal module calls,
125
+ an external schema validator, or the full Formal lifecycle merely to understand
126
+ whether a project can adopt RunKit.
127
+
128
+ ```bash
129
+ owlrunkit --help
130
+ owlrunkit --version
131
+ owlrunkit doctor --workspace "$PROJECT_ROOT"
132
+ owlrunkit profiles detect --workspace "$PROJECT_ROOT" --dry-run
133
+ owlrunkit profiles validate --workspace "$PROJECT_ROOT"
134
+ owlrunkit profiles impact --workspace "$PROJECT_ROOT" --changed path/to/file
135
+ owlrunkit adopt --workspace "$PROJECT_ROOT" --exact owlrunkit@0.14.0
136
+ ```
137
+
138
+ `doctor` and `profiles detect --dry-run` are read-only. Registry diagnostics use
139
+ a short timeout and distinguish offline or DNS/timeout failures, authorization
140
+ failures, missing versions and local-install binding mismatches without
141
+ printing credentials. Profile detection is deterministic evidence for a human
142
+ decision; it does not write or overwrite project configuration.
143
+
144
+ `adopt` accepts only an exact `owlrunkit@0.14.0` binding from the official npm
145
+ registry. It recomputes the registry and local install/lock facts, invokes the
146
+ strict adoption evaluator, and writes typed project evidence only after an
147
+ eligible result. Worktrees, `file:` dependencies, local tarballs, Git sources,
148
+ workspace links and mutable tags remain ineligible.
149
+
150
+ `init` and `inspect` expose an onboarding projection that points new users to
151
+ `doctor`, dry-run profile detection, and then exact adoption or Formal start.
152
+ This projection does not replace the Core recovery action and does not grant
153
+ authority.
154
+
56
155
  ## Choose the smallest assurance lane
57
156
 
58
157
  Choose the lane before planning. Do not create a Formal execution merely
@@ -2,7 +2,7 @@
2
2
  "schemaVersion": "OwlCodaRunKitConfigV2",
3
3
  "core": {
4
4
  "contractVersion": "0.2",
5
- "coreVersion": "0.12.0",
5
+ "coreVersion": "0.14.0",
6
6
  "coreManifestSha256": "sha256:replace-with-installed-core-manifest",
7
7
  "coreSourceRef": "artifact:sha256:replace-with-content-addressed-source"
8
8
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "owlrunkit",
3
- "version": "0.13.0",
3
+ "version": "0.14.0",
4
4
  "description": "Project-owned execution, evidence, verification, and recovery for coding agents.",
5
5
  "license": "GPL-3.0-or-later",
6
6
  "author": "yeemio <owlclaw@163.com>",
@@ -36,6 +36,11 @@
36
36
  "sha256": "sha256:3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986"
37
37
  },
38
38
  "supportedProducerCoreIdentities": [
39
+ {
40
+ "contractVersion": "0.2",
41
+ "coreVersion": "0.14.0",
42
+ "coreManifestSha256": "sha256:d3b498562bebb2fa180d6861cb834ce3551288bf499ce0d769ee6c64b2663231"
43
+ },
39
44
  {
40
45
  "contractVersion": "0.2",
41
46
  "coreVersion": "0.13.0",
@@ -18,6 +18,11 @@ import { captureWorkspaceSnapshot } from "./workspace-snapshot.mjs";
18
18
  export { validQuickReceiptShape } from "./quick-receipt-contract.mjs";
19
19
 
20
20
  export const SUPPORTED_QUICK_CORE_IDENTITIES = Object.freeze([
21
+ {
22
+ contractVersion: "0.2",
23
+ coreVersion: "0.14.0",
24
+ coreManifestSha256: "sha256:d3b498562bebb2fa180d6861cb834ce3551288bf499ce0d769ee6c64b2663231",
25
+ },
21
26
  {
22
27
  contractVersion: "0.2",
23
28
  coreVersion: "0.12.0",
@@ -2,7 +2,7 @@
2
2
  "schemaVersion": "OwlCodaRunKitRegistryReleasePolicyV1",
3
3
  "status": "release_candidate_unpublished",
4
4
  "packageName": "owlrunkit",
5
- "candidateVersion": "0.13.0",
5
+ "candidateVersion": "0.14.0",
6
6
  "registry": "https://registry.npmjs.org",
7
7
  "registryRequiredBeforeAdoption": true,
8
8
  "exactVersionRequired": true,
package/sbom.spdx.json CHANGED
@@ -2,8 +2,8 @@
2
2
  "spdxVersion": "SPDX-2.3",
3
3
  "dataLicense": "CC0-1.0",
4
4
  "SPDXID": "SPDXRef-DOCUMENT",
5
- "name": "owlrunkit-0.13.0",
6
- "documentNamespace": "https://owlcoda.com/spdx/owlrunkit/0.13.0",
5
+ "name": "owlrunkit-0.14.0",
6
+ "documentNamespace": "https://owlcoda.com/spdx/owlrunkit/0.14.0",
7
7
  "creationInfo": {
8
8
  "created": "2026-07-29T00:00:00Z",
9
9
  "creators": [
@@ -14,8 +14,8 @@
14
14
  {
15
15
  "name": "owlrunkit",
16
16
  "SPDXID": "SPDXRef-Package-OwlRunKit",
17
- "versionInfo": "0.13.0",
18
- "downloadLocation": "https://registry.npmjs.org/owlrunkit/-/owlrunkit-0.13.0.tgz",
17
+ "versionInfo": "0.14.0",
18
+ "downloadLocation": "https://registry.npmjs.org/owlrunkit/-/owlrunkit-0.14.0.tgz",
19
19
  "filesAnalyzed": false,
20
20
  "licenseConcluded": "GPL-3.0-or-later",
21
21
  "licenseDeclared": "GPL-3.0-or-later",
@@ -24,7 +24,7 @@
24
24
  {
25
25
  "referenceCategory": "PACKAGE-MANAGER",
26
26
  "referenceType": "purl",
27
- "referenceLocator": "pkg:npm/owlrunkit@0.13.0"
27
+ "referenceLocator": "pkg:npm/owlrunkit@0.14.0"
28
28
  }
29
29
  ]
30
30
  }
@@ -12,7 +12,7 @@ import { isAbsolute, relative, resolve, win32 } from "node:path";
12
12
  import { fileURLToPath } from "node:url";
13
13
 
14
14
  export const CONTRACT_VERSION = "0.2";
15
- export const CORE_VERSION = "0.13.0";
15
+ export const CORE_VERSION = "0.14.0";
16
16
  export const RUNTIME_ROOT = ".owlcoda/runkit";
17
17
 
18
18
  const CORE_FILES = [
@@ -26,7 +26,9 @@ const CORE_FILES = [
26
26
  "lease-lifecycle.mjs",
27
27
  "lifecycle-orchestration.mjs",
28
28
  "offline-store.mjs",
29
+ "onboarding-doctor.mjs",
29
30
  "profile-impact.mjs",
31
+ "profile-onboarding.mjs",
30
32
  "provenance-common.mjs",
31
33
  "quick-attest.mjs",
32
34
  "quick-canonical.mjs",
@@ -36,6 +38,8 @@ const CORE_FILES = [
36
38
  "quick-workspace-snapshot.mjs",
37
39
  "ready-for-commit.mjs",
38
40
  "receipt-lineage.mjs",
41
+ "registry-adoption-gate.mjs",
42
+ "registry-adoption.mjs",
39
43
  "repair-execution.mjs",
40
44
  "resume-execution.mjs",
41
45
  "resource-preflight.mjs",
@@ -47,6 +51,7 @@ const CORE_FILES = [
47
51
  "verification-plan.mjs",
48
52
  "visual-smoke.mjs",
49
53
  "schemas/closeout-receipt-v2.schema.json",
54
+ "schemas/adoption-evidence-v1.schema.json",
50
55
  "schemas/coverage-adopt-request-v1.schema.json",
51
56
  "schemas/core-artifact.schema.json",
52
57
  "schemas/core-artifact-v2.schema.json",