owlrunkit 0.19.1 → 0.20.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 +52 -0
- package/README.md +107 -3
- package/docs/architecture/OWLCODA_RUNKIT_0191_PROFILE_RECONCILE_PATCH_PRODUCT_DECISION_20260813.md +11 -5
- package/docs/architecture/OWLCODA_RUNKIT_0192_FORMAL_USABILITY_PRODUCT_DECISION_20260813.md +141 -0
- package/docs/architecture/OWLCODA_RUNKIT_020_TEAM_DELIVERY_PHASE1_PRODUCT_DECISION_20260813.md +296 -0
- package/integrations/codex/skills/owlcoda-runkit/SKILL.md +74 -9
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/config.json +3 -3
- package/package.json +1 -1
- package/packages/attest/distribution-manifest-v1.json +10 -0
- package/packages/attest/src/quick.mjs +42 -4
- package/registry-release-policy-v1.json +5 -5
- package/sbom.spdx.json +5 -5
- package/scripts/runkit-contract/core-contract.mjs +42 -2
- package/scripts/runkit-contract/efficiency-metrics.mjs +9 -7
- package/scripts/runkit-contract/formal-preflight.mjs +352 -0
- package/scripts/runkit-contract/formal-supplemental-evidence.mjs +713 -0
- package/scripts/runkit-contract/formal-workflow.mjs +529 -59
- package/scripts/runkit-contract/onboarding-doctor.mjs +32 -13
- package/scripts/runkit-contract/project-cli-resolver.mjs +33 -3
- package/scripts/runkit-contract/project-external-delivery.mjs +16 -9
- package/scripts/runkit-contract/quick-attest.mjs +24 -0
- package/scripts/runkit-contract/runkit-cli.mjs +445 -52
- package/scripts/runkit-contract/schemas/candidate-transfer-packet-v1.schema.json +98 -0
- package/scripts/runkit-contract/schemas/formal-check-v2.schema.json +231 -0
- package/scripts/runkit-contract/schemas/formal-envelope-preflight-v1.schema.json +212 -0
- package/scripts/runkit-contract/schemas/formal-evidence-summary-v1.schema.json +114 -0
- package/scripts/runkit-contract/schemas/formal-supplemental-evidence-v1.schema.json +103 -0
- package/scripts/runkit-contract/schemas/team-acceptance-packet-v2.schema.json +109 -0
- package/scripts/runkit-contract/schemas/team-delivery-status-v1.schema.json +72 -0
- package/scripts/runkit-contract/schemas/team-packet-validation-v1.schema.json +33 -0
- package/scripts/runkit-contract/schemas/team-project-event-v5.schema.json +89 -0
- package/scripts/runkit-contract/schemas/team-project-status-v3.schema.json +173 -0
- package/scripts/runkit-contract/schemas/team-recommendation-v1.schema.json +121 -0
- package/scripts/runkit-contract/schemas/team-task-packet-v2.schema.json +228 -0
- package/scripts/runkit-contract/snapshot.mjs +125 -5
- package/scripts/runkit-contract/source-candidate.mjs +271 -69
- package/scripts/runkit-contract/sync-release-identity.mjs +39 -4
- package/scripts/runkit-contract/team-delivery.mjs +906 -0
- package/scripts/runkit-contract/team-project-successor.mjs +7 -4
- package/scripts/runkit-contract/team-project.mjs +440 -28
- package/scripts/runkit-contract/usage-mode.mjs +9 -3
- package/scripts/runkit-contract/verification-envelope.mjs +425 -37
|
@@ -153,14 +153,49 @@ export function verifyReleaseIdentitySurfacesV1(input) {
|
|
|
153
153
|
const matches = [...source.matchAll(pattern)];
|
|
154
154
|
return matches.length === 1 && matches[0][1] === core.coreManifestSha256;
|
|
155
155
|
};
|
|
156
|
+
const releasePolicy = input.releasePolicy ?? null;
|
|
157
|
+
const candidateUnpublished = releasePolicy?.status === "release_candidate_unpublished";
|
|
158
|
+
if (candidateUnpublished) {
|
|
159
|
+
requireSurface(
|
|
160
|
+
releasePolicy?.packageName === "owlrunkit"
|
|
161
|
+
&& releasePolicy?.candidateVersion === core.coreVersion
|
|
162
|
+
&& releasePolicy?.registryRelease === null
|
|
163
|
+
&& releasePolicy?.currentPublishedRelease?.packageName === "owlrunkit"
|
|
164
|
+
&& /^\d+\.\d+\.\d+$/u.test(
|
|
165
|
+
releasePolicy?.currentPublishedRelease?.version ?? "",
|
|
166
|
+
)
|
|
167
|
+
&& releasePolicy.currentPublishedRelease.version !== core.coreVersion,
|
|
168
|
+
"release_policy",
|
|
169
|
+
);
|
|
170
|
+
}
|
|
156
171
|
const skillExact = (markdown) => {
|
|
157
172
|
if (typeof markdown !== "string") return false;
|
|
158
173
|
const hashes = markdown.match(/sha256:[a-f0-9]{64}/gu) ?? [];
|
|
159
|
-
|
|
174
|
+
const identityExact = hashes.length === 1
|
|
160
175
|
&& hashes[0] === core.coreManifestSha256
|
|
161
|
-
&& markdown.includes(`
|
|
162
|
-
|
|
163
|
-
|
|
176
|
+
&& markdown.includes(`Core \`${core.coreVersion}\``);
|
|
177
|
+
if (!identityExact) return false;
|
|
178
|
+
if (!candidateUnpublished) {
|
|
179
|
+
return markdown.includes(
|
|
180
|
+
`Bundled release: standalone \`owlrunkit@${core.coreVersion}\``,
|
|
181
|
+
) && !/(?:not published|current published release remains)/iu.test(markdown);
|
|
182
|
+
}
|
|
183
|
+
const prior = releasePolicy.currentPublishedRelease.version;
|
|
184
|
+
return markdown.includes(
|
|
185
|
+
`Bundled candidate: standalone \`owlrunkit@${core.coreVersion}\``,
|
|
186
|
+
)
|
|
187
|
+
&& /candidate is not published/iu.test(markdown)
|
|
188
|
+
&& new RegExp(
|
|
189
|
+
"current published release remains\\s+`owlrunkit@"
|
|
190
|
+
+ escaped(prior)
|
|
191
|
+
+ "`",
|
|
192
|
+
"iu",
|
|
193
|
+
).test(markdown)
|
|
194
|
+
&& !markdown.includes(
|
|
195
|
+
`Bundled release: standalone \`owlrunkit@${core.coreVersion}\``,
|
|
196
|
+
)
|
|
197
|
+
&& !markdown.includes(`--exact owlrunkit@${core.coreVersion}`)
|
|
198
|
+
&& !markdown.includes(`npm install --save-exact owlrunkit@${core.coreVersion}`);
|
|
164
199
|
};
|
|
165
200
|
|
|
166
201
|
requireSurface(packageExact(input.packageManifest), "package_manifest");
|