owlrunkit 0.13.0 → 0.15.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 +41 -0
- package/README.md +66 -4
- package/docs/architecture/OWLCODA_RUN_KIT_CONTRACT_V0_2.md +79 -0
- package/integrations/codex/skills/owlcoda-runkit/SKILL.md +163 -2
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/config.json +1 -1
- package/package.json +1 -1
- package/packages/attest/distribution-manifest-v1.json +10 -0
- package/packages/attest/src/quick.mjs +10 -0
- package/registry-release-policy-v1.json +1 -1
- package/sbom.spdx.json +5 -5
- package/scripts/runkit-contract/core-contract.mjs +145 -4
- package/scripts/runkit-contract/install-codex-skill.mjs +505 -11
- package/scripts/runkit-contract/lifecycle-orchestration.mjs +119 -4
- package/scripts/runkit-contract/onboarding-doctor.mjs +805 -0
- package/scripts/runkit-contract/profile-onboarding.mjs +510 -0
- package/scripts/runkit-contract/registry-adoption-gate.mjs +121 -7
- package/scripts/runkit-contract/registry-adoption.mjs +198 -0
- package/scripts/runkit-contract/resume-execution.mjs +8 -2
- package/scripts/runkit-contract/runkit-cli.mjs +216 -6
- package/scripts/runkit-contract/schemas/adoption-evidence-v1.schema.json +63 -0
- package/scripts/runkit-contract/schemas/verification-finalize-attempt-v1.schema.json +52 -0
- package/scripts/runkit-contract/schemas/verification-preflight-v1.schema.json +52 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,46 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.15.0
|
|
4
|
+
|
|
5
|
+
- Makes detected npm launchers resolve to absolute regular files that Formal
|
|
6
|
+
verification can execute without weakening symlink rejection.
|
|
7
|
+
- Adds workspace-aware `apps/*` and `packages/*` profile candidates with exact
|
|
8
|
+
workspace script commands.
|
|
9
|
+
- Expands read-only runtime-isolation diagnostics across common formatters,
|
|
10
|
+
linters, and explicitly broad test collectors.
|
|
11
|
+
- Preserves rejected verification preflights as append-only execution evidence
|
|
12
|
+
and persists non-accepted finalize outcomes with their request binding.
|
|
13
|
+
- Consumes completed adoption/profile facts in doctor and inspect guidance only
|
|
14
|
+
when the launcher and exact local registry bindings are still safe.
|
|
15
|
+
- Keeps Contract v0.2, 0.13/0.14 configurations, profiles, historical
|
|
16
|
+
executions, receipts, and verifier Core identities readable; repeated
|
|
17
|
+
upgrades write exclusive sequenced ConfigV2 Core-refresh receipts.
|
|
18
|
+
- Refuses Core or process-wide Codex Skill upgrades before mutation when any
|
|
19
|
+
explicitly enrolled project has an active execution, writer lease,
|
|
20
|
+
ambiguous closeout, or invalid config.
|
|
21
|
+
- Archives the exact prior Skill and project config bytes, adds receipt-bound
|
|
22
|
+
exact rollback, and adds an exact-Core active-fleet recovery path for
|
|
23
|
+
installations already drifted by an older unsafe replacement.
|
|
24
|
+
- Runs registry pack/install/upgrade/rollback gates through npm owned by each
|
|
25
|
+
selected Node runtime and proves active work blocks upgrade before mutation
|
|
26
|
+
and rollback restores the exact prior Skill identity and config bytes.
|
|
27
|
+
- Keeps OwlCoda CLI `0.15.31` unchanged and grants no Git, publish, release, or
|
|
28
|
+
deploy authority.
|
|
29
|
+
|
|
30
|
+
## 0.14.0
|
|
31
|
+
|
|
32
|
+
- Adds ordinary `--help` and `--version`, read-only `doctor`, exact official
|
|
33
|
+
registry `adopt`, and deterministic `profiles detect`, `validate`, and
|
|
34
|
+
`impact` commands for self-service project onboarding.
|
|
35
|
+
- Makes `init` guide new users through doctor, profile detection, then exact
|
|
36
|
+
adoption or Formal start while retaining a complete JSON machine view.
|
|
37
|
+
- Includes the previously prepared Core v0.13 documentation corrections for
|
|
38
|
+
Quick verification, deterministic repair, offline transport,
|
|
39
|
+
registry-first adoption, and the canonical Codex Skill update boundary.
|
|
40
|
+
- Updates the bundled Codex Skill and config template to Core `0.14.0`.
|
|
41
|
+
- Keeps Contract v0.2 and OwlCoda CLI `0.15.31` unchanged.
|
|
42
|
+
- Does not add signing, keys, GitHub Actions, or authority.
|
|
43
|
+
|
|
3
44
|
## 0.13.0
|
|
4
45
|
|
|
5
46
|
- First standalone npm release of OwlRunKit.
|
package/README.md
CHANGED
|
@@ -11,16 +11,77 @@ release authority.
|
|
|
11
11
|
## Install
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
npm install --save-exact owlrunkit@0.
|
|
14
|
+
npm install --save-exact owlrunkit@0.15.0
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
|
|
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
|
|
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.15.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
|
+
Core 0.15 keeps Contract v0.2 and all 0.13/0.14 project artifact schemas
|
|
36
|
+
readable. `init` refreshes an older ConfigV2 Core binding with an append-only
|
|
37
|
+
migration receipt only when the project has no active execution, active writer
|
|
38
|
+
lease, or ambiguous control state. Otherwise the upgrade exits before changing
|
|
39
|
+
the config or writing migration evidence. Legal refreshes preserve profiles,
|
|
40
|
+
executions, receipts, and adoption evidence byte-for-byte. Existing profiles
|
|
41
|
+
are never rewritten automatically; a fresh `profiles detect --dry-run` supplies
|
|
42
|
+
safer, workspace-aware candidates for human review.
|
|
43
|
+
Repeated Core refreshes create sequenced receipts without replacing an earlier
|
|
44
|
+
migration event, and rejected Formal finalize gates retain their request-bound
|
|
45
|
+
reason as append-only evidence.
|
|
46
|
+
|
|
47
|
+
## Updating the process-wide Codex Skill
|
|
48
|
+
|
|
49
|
+
Do not replace a shared installed Skill while any consuming project is active.
|
|
50
|
+
For a changed Skill manifest, enumerate the complete consuming fleet with
|
|
51
|
+
repeated `--workspace` arguments:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
node ./scripts/runkit-contract/install-codex-skill.mjs install \
|
|
55
|
+
--repository /absolute/path/to/owlrunkit-package \
|
|
56
|
+
--target /absolute/path/to/installed/owlcoda-runkit \
|
|
57
|
+
--archive /absolute/path/to/skill-archives \
|
|
58
|
+
--workspace /absolute/project-a \
|
|
59
|
+
--workspace /absolute/project-b
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
The update is refused before global or project mutation if any listed project
|
|
63
|
+
is active or invalid. A successful update records the exact prior Skill
|
|
64
|
+
identity and each original project config in an append-only receipt. Restore
|
|
65
|
+
that exact state with:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
node ./scripts/runkit-contract/install-codex-skill.mjs restore \
|
|
69
|
+
--target /absolute/path/to/installed/owlcoda-runkit \
|
|
70
|
+
--archive /absolute/path/to/skill-archives \
|
|
71
|
+
--receipt /absolute/path/to/skill-upgrade-receipt.json
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
`recover-active` is reserved for a fleet already drifted by an older unsafe
|
|
75
|
+
replacement. It accepts only an archived Skill whose Core identity exactly
|
|
76
|
+
matches every affected config and active execution pin, leaves all project
|
|
77
|
+
bytes untouched, and writes a recovery receipt.
|
|
78
|
+
|
|
79
|
+
Use Quick Verification for one low-risk source-bound command that needs a
|
|
80
|
+
reusable receipt but no writer lease or Formal acceptance. Use Formal Delivery
|
|
81
|
+
for multi-writer, long-running, migration, integration, release, production,
|
|
82
|
+
funds, or formally accepted work. A Quick receipt cannot become Formal
|
|
83
|
+
acceptance, and accepted never grants Git or release authority.
|
|
84
|
+
|
|
24
85
|
The package also includes the read-only verifier:
|
|
25
86
|
|
|
26
87
|
```bash
|
|
@@ -37,7 +98,8 @@ Those remain explicit external decisions even when verification passes.
|
|
|
37
98
|
|
|
38
99
|
- Node.js 20.19 or newer
|
|
39
100
|
- a local project directory
|
|
40
|
-
-
|
|
101
|
+
- network access only for explicit `doctor` registry diagnostics and `adopt`;
|
|
102
|
+
normal verification and recovery remain local
|
|
41
103
|
|
|
42
104
|
## License
|
|
43
105
|
|
|
@@ -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.15.0`, bundling Contract `0.2` and
|
|
11
|
+
Core `0.15.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
|
-
|
|
26
|
-
|
|
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,164 @@ 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
|
+
--workspace /absolute/project-a --workspace /absolute/project-b
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
The install manifest binds every Skill, Core, contract and attest file.
|
|
119
|
+
Unknown installed drift fails closed instead of being overwritten. A changed
|
|
120
|
+
process-wide Skill requires an explicit fleet: pass every project that consumes
|
|
121
|
+
that Skill as a repeated `--workspace`. The installer validates every project
|
|
122
|
+
config and refuses the whole update before replacing the Skill or changing any
|
|
123
|
+
project when one project has an active execution, an active writer lease,
|
|
124
|
+
ambiguous control state, or invalid configuration. Omitting the fleet is an
|
|
125
|
+
error; do not pass a partial fleet to bypass this guard.
|
|
126
|
+
|
|
127
|
+
A successful update archives the exact prior Skill, migrates each inactive
|
|
128
|
+
project, and writes an append-only upgrade receipt containing the prior Skill
|
|
129
|
+
manifest identity and each prior ConfigV2 byte sequence. Use that receipt for
|
|
130
|
+
an exact rollback:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
node "$RUNKIT_PACKAGE_ROOT/scripts/runkit-contract/install-codex-skill.mjs" \
|
|
134
|
+
restore --target "$RUNKIT_SKILL_TARGET" \
|
|
135
|
+
--archive "$RUNKIT_SKILL_ARCHIVE_ROOT" \
|
|
136
|
+
--receipt /absolute/path/to/skill-upgrade-receipt.json
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
If an older unsafe process-wide replacement already drifted a running fleet,
|
|
140
|
+
do not run ordinary `install` or `restore`. Recover only an archived Skill whose
|
|
141
|
+
embedded Core identity exactly matches every affected project config and active
|
|
142
|
+
execution pin:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
node "$RUNKIT_PACKAGE_ROOT/scripts/runkit-contract/install-codex-skill.mjs" \
|
|
146
|
+
recover-active --target "$RUNKIT_SKILL_TARGET" \
|
|
147
|
+
--archive "$RUNKIT_SKILL_ARCHIVE_ROOT" \
|
|
148
|
+
--archived-installation /absolute/path/to/exact-archived-skill \
|
|
149
|
+
--workspace /absolute/affected-project
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Active recovery changes only the process-wide Skill installation. It preserves
|
|
153
|
+
project config, execution, lease, receipt, and closeout bytes and writes an
|
|
154
|
+
append-only recovery receipt. It refuses an approximate version match or a
|
|
155
|
+
fleet with no matching active execution. An accepted receipt, ready-for-commit
|
|
156
|
+
receipt, package publication, valid install, rollback, or recovery still does
|
|
157
|
+
not grant Git, npm, release, deploy, or foreign-project authority.
|
|
158
|
+
|
|
159
|
+
## Core v0.15 consolidated onboarding and compatibility
|
|
160
|
+
|
|
161
|
+
Core v0.14 introduced self-service onboarding. The bundled Core is now
|
|
162
|
+
`0.15.0`; new users should not need internal module calls,
|
|
163
|
+
an external schema validator, or the full Formal lifecycle merely to understand
|
|
164
|
+
whether a project can adopt RunKit.
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
owlrunkit --help
|
|
168
|
+
owlrunkit --version
|
|
169
|
+
owlrunkit doctor --workspace "$PROJECT_ROOT"
|
|
170
|
+
owlrunkit profiles detect --workspace "$PROJECT_ROOT" --dry-run
|
|
171
|
+
owlrunkit profiles validate --workspace "$PROJECT_ROOT"
|
|
172
|
+
owlrunkit profiles impact --workspace "$PROJECT_ROOT" --changed path/to/file
|
|
173
|
+
owlrunkit adopt --workspace "$PROJECT_ROOT" --exact owlrunkit@0.15.0
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
`doctor` and `profiles detect --dry-run` are read-only. Registry diagnostics use
|
|
177
|
+
a short timeout and distinguish offline or DNS/timeout failures, authorization
|
|
178
|
+
failures, missing versions and local-install binding mismatches without
|
|
179
|
+
printing credentials. Profile detection is deterministic evidence for a human
|
|
180
|
+
decision; it does not write or overwrite project configuration.
|
|
181
|
+
|
|
182
|
+
`adopt` accepts only an exact `owlrunkit@0.15.0` binding from the official npm
|
|
183
|
+
registry. It recomputes the registry and local install/lock facts, invokes the
|
|
184
|
+
strict adoption evaluator, and writes typed project evidence only after an
|
|
185
|
+
eligible result. Worktrees, `file:` dependencies, local tarballs, Git sources,
|
|
186
|
+
workspace links and mutable tags remain ineligible.
|
|
187
|
+
|
|
188
|
+
Detected commands use canonical absolute regular-file launchers, including
|
|
189
|
+
NVM-managed npm installs, so a detector result does not conflict with Formal
|
|
190
|
+
symlink rejection. Workspace discovery understands safe literal and one-level
|
|
191
|
+
`apps/*` / `packages/*` patterns and emits exact root-owned npm workspace
|
|
192
|
+
commands. Detection remains dry-run only and never rewrites an existing
|
|
193
|
+
profile.
|
|
194
|
+
|
|
195
|
+
`doctor` warns when explicit broad formatter, linter, or test-collector
|
|
196
|
+
commands can include `.owlcoda/runkit/`; it never edits ignore or tool
|
|
197
|
+
configuration. `init` and `inspect` consume valid current-version adoption and
|
|
198
|
+
profile facts only while the exact local registry binding remains intact and
|
|
199
|
+
every launcher is Formal-safe; otherwise launcher review or adoption remains
|
|
200
|
+
explicitly incomplete. The recovery action remains authoritative. A rejected
|
|
201
|
+
Formal executable preflight or non-accepted finalize gate is preserved under
|
|
202
|
+
the execution before the CLI returns the result.
|
|
203
|
+
|
|
204
|
+
Contract v0.2 remains unchanged. Upgrading a 0.13 or 0.14 ConfigV2 project
|
|
205
|
+
is allowed only while its RunKit control state is inactive and unambiguous. An
|
|
206
|
+
active execution or writer lease refuses the upgrade before `config.json` or
|
|
207
|
+
migration evidence changes. A legal refresh writes an exclusive sequenced
|
|
208
|
+
Core-refresh migration receipt and changes only `config.json`; a repeated
|
|
209
|
+
transition cannot replace its first receipt. Compatibility gates invoke npm
|
|
210
|
+
through each selected Node runtime, prove active 0.13/0.14 work blocks 0.15
|
|
211
|
+
before mutation, and prove upgrade-receipt rollback restores the exact prior
|
|
212
|
+
Skill manifest and ConfigV2 bytes. Existing profiles, adoption evidence,
|
|
213
|
+
executions, delivery packets, snapshots, verification receipts, and closeouts
|
|
214
|
+
remain byte-identical and readable. Neither compatibility nor a completed
|
|
215
|
+
onboarding projection grants authority.
|
|
216
|
+
|
|
56
217
|
## Choose the smallest assurance lane
|
|
57
218
|
|
|
58
219
|
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.
|
|
5
|
+
"coreVersion": "0.15.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
|
@@ -36,6 +36,16 @@
|
|
|
36
36
|
"sha256": "sha256:3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986"
|
|
37
37
|
},
|
|
38
38
|
"supportedProducerCoreIdentities": [
|
|
39
|
+
{
|
|
40
|
+
"contractVersion": "0.2",
|
|
41
|
+
"coreVersion": "0.15.0",
|
|
42
|
+
"coreManifestSha256": "sha256:06d7616c369b4b3ece3aca32f05c505d4b30781d3ca87a13bd8d7293c1491f64"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"contractVersion": "0.2",
|
|
46
|
+
"coreVersion": "0.14.0",
|
|
47
|
+
"coreManifestSha256": "sha256:d3b498562bebb2fa180d6861cb834ce3551288bf499ce0d769ee6c64b2663231"
|
|
48
|
+
},
|
|
39
49
|
{
|
|
40
50
|
"contractVersion": "0.2",
|
|
41
51
|
"coreVersion": "0.13.0",
|
|
@@ -18,6 +18,16 @@ 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.15.0",
|
|
24
|
+
coreManifestSha256: "sha256:06d7616c369b4b3ece3aca32f05c505d4b30781d3ca87a13bd8d7293c1491f64",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
contractVersion: "0.2",
|
|
28
|
+
coreVersion: "0.14.0",
|
|
29
|
+
coreManifestSha256: "sha256:d3b498562bebb2fa180d6861cb834ce3551288bf499ce0d769ee6c64b2663231",
|
|
30
|
+
},
|
|
21
31
|
{
|
|
22
32
|
contractVersion: "0.2",
|
|
23
33
|
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.
|
|
5
|
+
"candidateVersion": "0.15.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.
|
|
6
|
-
"documentNamespace": "https://owlcoda.com/spdx/owlrunkit/0.
|
|
5
|
+
"name": "owlrunkit-0.15.0",
|
|
6
|
+
"documentNamespace": "https://owlcoda.com/spdx/owlrunkit/0.15.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.
|
|
18
|
-
"downloadLocation": "https://registry.npmjs.org/owlrunkit/-/owlrunkit-0.
|
|
17
|
+
"versionInfo": "0.15.0",
|
|
18
|
+
"downloadLocation": "https://registry.npmjs.org/owlrunkit/-/owlrunkit-0.15.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.
|
|
27
|
+
"referenceLocator": "pkg:npm/owlrunkit@0.15.0"
|
|
28
28
|
}
|
|
29
29
|
]
|
|
30
30
|
}
|