@rpamis/comet 0.4.0-beta.10 → 0.4.0-beta.11
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/assets/manifest.json +1 -1
- package/assets/skills/comet/reference/classic-layout.md +1 -1
- package/assets/skills/comet/scripts/comet-entry-runtime.mjs +1 -1
- package/assets/skills/comet/scripts/comet-hook-router.mjs +179 -879
- package/assets/skills/comet/scripts/comet-runtime.mjs +3 -3
- package/assets/skills/comet-native/SKILL.md +1 -2
- package/assets/skills/comet-native/reference/commands.md +2 -4
- package/assets/skills/comet-native/scripts/comet-native-runtime.mjs +4482 -4785
- package/assets/skills-zh/comet/reference/classic-layout.md +1 -1
- package/assets/skills-zh/comet-native/SKILL.md +1 -2
- package/assets/skills-zh/comet-native/reference/commands.md +2 -4
- package/dist/app/commands/update.d.ts.map +1 -1
- package/dist/app/commands/update.js +14 -2
- package/dist/app/commands/update.js.map +1 -1
- package/dist/domains/comet-classic/classic-layout-initialization.js +3 -3
- package/dist/domains/comet-classic/classic-layout-initialization.js.map +1 -1
- package/dist/domains/comet-entry/init-workflow.d.ts.map +1 -1
- package/dist/domains/comet-entry/init-workflow.js +17 -3
- package/dist/domains/comet-entry/init-workflow.js.map +1 -1
- package/dist/domains/comet-native/native-change.d.ts +0 -2
- package/dist/domains/comet-native/native-change.d.ts.map +1 -1
- package/dist/domains/comet-native/native-change.js +8 -104
- package/dist/domains/comet-native/native-change.js.map +1 -1
- package/dist/domains/comet-native/native-cli.d.ts.map +1 -1
- package/dist/domains/comet-native/native-cli.js +3 -47
- package/dist/domains/comet-native/native-cli.js.map +1 -1
- package/dist/domains/comet-native/native-controller-trust.d.ts +0 -1
- package/dist/domains/comet-native/native-controller-trust.d.ts.map +1 -1
- package/dist/domains/comet-native/native-controller-trust.js +2 -15
- package/dist/domains/comet-native/native-controller-trust.js.map +1 -1
- package/dist/domains/comet-native/native-review-trust.d.ts +1 -1
- package/dist/domains/comet-native/native-review-trust.d.ts.map +1 -1
- package/dist/domains/comet-native/native-review-trust.js +1 -1
- package/dist/domains/comet-native/native-review-trust.js.map +1 -1
- package/dist/domains/comet-native/native-snapshot.d.ts.map +1 -1
- package/dist/domains/comet-native/native-snapshot.js +0 -37
- package/dist/domains/comet-native/native-snapshot.js.map +1 -1
- package/dist/domains/comet-native/native-types.d.ts +1 -10
- package/dist/domains/comet-native/native-types.d.ts.map +1 -1
- package/dist/domains/comet-native/native-verification-runtime.d.ts.map +1 -1
- package/dist/domains/comet-native/native-verification-runtime.js +3 -3
- package/dist/domains/comet-native/native-verification-runtime.js.map +1 -1
- package/dist/domains/skill/platform-install.d.ts.map +1 -1
- package/dist/domains/skill/platform-install.js +22 -2
- package/dist/domains/skill/platform-install.js.map +1 -1
- package/dist/domains/workflow-contract/project-config.d.ts.map +1 -1
- package/dist/domains/workflow-contract/project-config.js +4 -4
- package/dist/domains/workflow-contract/project-config.js.map +1 -1
- package/eval/local/tasks/comet-native-workflow/instruction.md +4 -5
- package/eval/local/tasks/comet-native-workflow/validation/test_native_workflow.py +2 -2
- package/eval/local/tests/conftest.py +1 -26
- package/eval/local/tests/scaffold/test_native_wave_evaluations.py +2 -17
- package/package.json +1 -1
- package/dist/domains/comet-native/native-creation-authorization.d.ts +0 -30
- package/dist/domains/comet-native/native-creation-authorization.d.ts.map +0 -1
- package/dist/domains/comet-native/native-creation-authorization.js +0 -110
- package/dist/domains/comet-native/native-creation-authorization.js.map +0 -1
|
@@ -310,7 +310,7 @@ def _validate_v2_verification(archived: Path, state: dict, evidence_ref: str):
|
|
|
310
310
|
raise ValueError("Verification evidence file is missing or unsafe")
|
|
311
311
|
evidence = json.loads(evidence_file.read_text(encoding="utf-8"))
|
|
312
312
|
if (
|
|
313
|
-
state.get("verification_protocol") != "
|
|
313
|
+
state.get("verification_protocol") != "legacy-v1"
|
|
314
314
|
or evidence.get("schema") != "comet.native.verification-evidence.v2"
|
|
315
315
|
or evidence.get("envelopeHash") != evidence_match.group(1)
|
|
316
316
|
or _content_hash(
|
|
@@ -319,7 +319,7 @@ def _validate_v2_verification(archived: Path, state: dict, evidence_ref: str):
|
|
|
319
319
|
!= evidence.get("envelopeHash")
|
|
320
320
|
or evidence.get("result") != "pass"
|
|
321
321
|
):
|
|
322
|
-
raise ValueError("Archive does not contain passing
|
|
322
|
+
raise ValueError("Archive does not contain passing v2 verification evidence")
|
|
323
323
|
|
|
324
324
|
trace = evidence.get("acceptanceTrace")
|
|
325
325
|
entries = trace.get("entries") if isinstance(trace, dict) else None
|
|
@@ -490,7 +490,7 @@ def _copy_trusted_native_review_fixture(
|
|
|
490
490
|
environment_dir: Path,
|
|
491
491
|
test_dir: Path,
|
|
492
492
|
) -> None:
|
|
493
|
-
"""Provision
|
|
493
|
+
"""Provision external review trust without exposing private keys."""
|
|
494
494
|
marker = environment_dir / TRUSTED_NATIVE_REVIEW_FIXTURE_MARKER
|
|
495
495
|
if not marker.is_file():
|
|
496
496
|
return
|
|
@@ -563,35 +563,15 @@ const policy={
|
|
|
563
563
|
controllerSignature:proof(controller,policyHash)
|
|
564
564
|
};
|
|
565
565
|
const projectRootHash=hash('comet.native.controller-project-root.v1','/workspace');
|
|
566
|
-
const authorizationContent={
|
|
567
|
-
schema:'comet.native.creation-authorization.v1',
|
|
568
|
-
controllerKeyId:controller.identity.keyId,
|
|
569
|
-
projectRootHash,
|
|
570
|
-
policyHash,
|
|
571
|
-
protocol:'signed-v2',
|
|
572
|
-
change,
|
|
573
|
-
issuedAt:'2026-07-28T00:00:00.000Z'
|
|
574
|
-
};
|
|
575
|
-
const authorizationHash=hash(
|
|
576
|
-
'comet.native.creation-authorization.v1',
|
|
577
|
-
authorizationContent
|
|
578
|
-
);
|
|
579
|
-
const authorization={
|
|
580
|
-
...authorizationContent,
|
|
581
|
-
authorizationHash,
|
|
582
|
-
controllerSignature:proof(controller,authorizationHash)
|
|
583
|
-
};
|
|
584
566
|
const store={
|
|
585
567
|
schema:'comet.native.controller-trust-store.v1',
|
|
586
568
|
projects:[{
|
|
587
569
|
projectRootHash,
|
|
588
570
|
controllerIdentity:controller.identity,
|
|
589
|
-
legacyChanges:[]
|
|
590
571
|
}]
|
|
591
572
|
};
|
|
592
573
|
process.stdout.write(JSON.stringify({
|
|
593
574
|
policy,
|
|
594
|
-
authorization,
|
|
595
575
|
store,
|
|
596
576
|
identities:{
|
|
597
577
|
implementation:implementation.identity,
|
|
@@ -625,10 +605,6 @@ process.stdout.write(JSON.stringify({
|
|
|
625
605
|
project_policy = test_dir / ".comet" / "native-review-trust.json"
|
|
626
606
|
project_policy.parent.mkdir(parents=True, exist_ok=True)
|
|
627
607
|
shutil.copyfile(policy_file, project_policy)
|
|
628
|
-
authorization_name = f"{change}-creation-authorization.json"
|
|
629
|
-
(oracle_root / authorization_name).write_text(
|
|
630
|
-
json.dumps(fixture["authorization"], indent=2) + "\n", encoding="utf-8"
|
|
631
|
-
)
|
|
632
608
|
for role, identity in fixture["identities"].items():
|
|
633
609
|
(oracle_root / f"{role}-identity.json").write_text(
|
|
634
610
|
json.dumps(identity, indent=2) + "\n", encoding="utf-8"
|
|
@@ -688,7 +664,6 @@ process.stdout.write(result.stdout??'');
|
|
|
688
664
|
"schema": TRUSTED_NATIVE_REVIEW_FIXTURE_SCHEMA,
|
|
689
665
|
"change": change,
|
|
690
666
|
"policyHash": fixture["policy"]["policyHash"],
|
|
691
|
-
"creationAuthorization": f"/workspace/_eval_trusted_oracles/{authorization_name}",
|
|
692
667
|
"signer": "/workspace/_eval_trusted_oracles/native-review-signer.mjs",
|
|
693
668
|
"signerMode": "external-verifier-sidecar",
|
|
694
669
|
"roles": ["implementation", "reviewer", "waiver"],
|
|
@@ -597,11 +597,6 @@ def test_controller_provisions_immutable_native_review_fixture(tmp_path: Path):
|
|
|
597
597
|
(oracle / "native-review-fixture.json").read_text(encoding="utf-8")
|
|
598
598
|
)
|
|
599
599
|
policy = json.loads((oracle / "native-review-trust.json").read_text(encoding="utf-8"))
|
|
600
|
-
authorization = json.loads(
|
|
601
|
-
(oracle / "sentence-counting-creation-authorization.json").read_text(
|
|
602
|
-
encoding="utf-8"
|
|
603
|
-
)
|
|
604
|
-
)
|
|
605
600
|
store = json.loads(
|
|
606
601
|
(oracle / "controller-home/native-controller-trust.json").read_text(
|
|
607
602
|
encoding="utf-8"
|
|
@@ -611,16 +606,13 @@ def test_controller_provisions_immutable_native_review_fixture(tmp_path: Path):
|
|
|
611
606
|
assert public_fixture["change"] == "sentence-counting"
|
|
612
607
|
assert public_fixture["signerMode"] == "external-verifier-sidecar"
|
|
613
608
|
assert policy["schema"] == "comet.native.review-trust-policy.v2"
|
|
614
|
-
|
|
615
|
-
assert authorization["policyHash"] == policy["policyHash"]
|
|
616
|
-
assert authorization["projectRootHash"] == canonical_hash(
|
|
609
|
+
project_root_hash = canonical_hash(
|
|
617
610
|
"comet.native.controller-project-root.v1", "/workspace"
|
|
618
611
|
)
|
|
619
612
|
assert store["projects"] == [
|
|
620
613
|
{
|
|
621
|
-
"projectRootHash":
|
|
614
|
+
"projectRootHash": project_root_hash,
|
|
622
615
|
"controllerIdentity": store["projects"][0]["controllerIdentity"],
|
|
623
|
-
"legacyChanges": [],
|
|
624
616
|
}
|
|
625
617
|
]
|
|
626
618
|
assert (workspace / ".comet/native-review-trust.json").read_bytes() == (
|
|
@@ -633,13 +625,6 @@ def test_controller_provisions_immutable_native_review_fixture(tmp_path: Path):
|
|
|
633
625
|
policy["policyHash"],
|
|
634
626
|
"Controller policy",
|
|
635
627
|
)
|
|
636
|
-
validator._validate_signature(
|
|
637
|
-
authorization["controllerSignature"],
|
|
638
|
-
store["projects"][0]["controllerIdentity"],
|
|
639
|
-
authorization["authorizationHash"],
|
|
640
|
-
"Controller authorization",
|
|
641
|
-
)
|
|
642
|
-
|
|
643
628
|
secrets_root = workspace.with_name(f".{workspace.name}-native-review-secrets")
|
|
644
629
|
secret_documents = [
|
|
645
630
|
json.loads((secrets_root / f"{role}-key.json").read_text(encoding="utf-8"))
|
package/package.json
CHANGED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { type NativeReviewIdentity, type NativeReviewSignature } from './native-review-identity.js';
|
|
2
|
-
import type { NativeProjectPaths } from './native-types.js';
|
|
3
|
-
export declare const NATIVE_CREATION_AUTHORIZATION_SCHEMA: "comet.native.creation-authorization.v1";
|
|
4
|
-
export interface NativeCreationAuthorization {
|
|
5
|
-
schema: typeof NATIVE_CREATION_AUTHORIZATION_SCHEMA;
|
|
6
|
-
controllerKeyId: string;
|
|
7
|
-
projectRootHash: string;
|
|
8
|
-
policyHash: string;
|
|
9
|
-
protocol: 'signed-v2';
|
|
10
|
-
change: string;
|
|
11
|
-
issuedAt: string;
|
|
12
|
-
authorizationHash: string;
|
|
13
|
-
controllerSignature: NativeReviewSignature;
|
|
14
|
-
}
|
|
15
|
-
export declare function buildNativeCreationAuthorization(input: {
|
|
16
|
-
controllerIdentity: NativeReviewIdentity;
|
|
17
|
-
controllerPrivateKey: string;
|
|
18
|
-
projectRootHash: string;
|
|
19
|
-
policyHash: string;
|
|
20
|
-
change: string;
|
|
21
|
-
now?: Date;
|
|
22
|
-
}): NativeCreationAuthorization;
|
|
23
|
-
export declare function parseNativeCreationAuthorization(value: unknown): NativeCreationAuthorization;
|
|
24
|
-
export declare function verifyNativeCreationAuthorization(options: {
|
|
25
|
-
paths: NativeProjectPaths;
|
|
26
|
-
policyHash: string;
|
|
27
|
-
authorization: unknown;
|
|
28
|
-
change: string;
|
|
29
|
-
}): Promise<NativeCreationAuthorization>;
|
|
30
|
-
//# sourceMappingURL=native-creation-authorization.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"native-creation-authorization.d.ts","sourceRoot":"","sources":["../../../domains/comet-native/native-creation-authorization.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,eAAO,MAAM,oCAAoC,EAC/C,wCAAiD,CAAC;AAIpD,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,OAAO,oCAAoC,CAAC;IACpD,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,qBAAqB,CAAC;CAC5C;AAqBD,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,kBAAkB,EAAE,oBAAoB,CAAC;IACzC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,GAAG,2BAA2B,CAoB9B;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,2BAA2B,CAwD5F;AAED,wBAAsB,iCAAiC,CAAC,OAAO,EAAE;IAC/D,KAAK,EAAE,kBAAkB,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAqBvC"}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { canonicalHash } from './native-canonical-hash.js';
|
|
2
|
-
import { nativeControllerProjectRootHash, readNativeControllerTrustProject, } from './native-controller-trust.js';
|
|
3
|
-
import { parseNativeReviewSignature, signNativeReviewPayloadHash, verifyNativeReviewPayloadHash, } from './native-review-identity.js';
|
|
4
|
-
export const NATIVE_CREATION_AUTHORIZATION_SCHEMA = 'comet.native.creation-authorization.v1';
|
|
5
|
-
const HASH_PATTERN = /^[a-f0-9]{64}$/u;
|
|
6
|
-
const CHANGE_NAME_PATTERN = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/u;
|
|
7
|
-
function record(value, label) {
|
|
8
|
-
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
9
|
-
throw new Error(`${label} must be an object`);
|
|
10
|
-
}
|
|
11
|
-
return value;
|
|
12
|
-
}
|
|
13
|
-
function exactKeys(value, expected, label) {
|
|
14
|
-
const actual = Object.keys(value).sort();
|
|
15
|
-
const canonical = [...expected].sort();
|
|
16
|
-
if (JSON.stringify(actual) !== JSON.stringify(canonical)) {
|
|
17
|
-
throw new Error(`${label} fields are invalid`);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
export function buildNativeCreationAuthorization(input) {
|
|
21
|
-
const content = {
|
|
22
|
-
schema: NATIVE_CREATION_AUTHORIZATION_SCHEMA,
|
|
23
|
-
controllerKeyId: input.controllerIdentity.keyId,
|
|
24
|
-
projectRootHash: input.projectRootHash,
|
|
25
|
-
policyHash: input.policyHash,
|
|
26
|
-
protocol: 'signed-v2',
|
|
27
|
-
change: input.change,
|
|
28
|
-
issuedAt: (input.now ?? new Date()).toISOString(),
|
|
29
|
-
};
|
|
30
|
-
const authorizationHash = canonicalHash(NATIVE_CREATION_AUTHORIZATION_SCHEMA, content);
|
|
31
|
-
return parseNativeCreationAuthorization({
|
|
32
|
-
...content,
|
|
33
|
-
authorizationHash,
|
|
34
|
-
controllerSignature: signNativeReviewPayloadHash({
|
|
35
|
-
identity: input.controllerIdentity,
|
|
36
|
-
privateKey: input.controllerPrivateKey,
|
|
37
|
-
payloadHash: authorizationHash,
|
|
38
|
-
}),
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
export function parseNativeCreationAuthorization(value) {
|
|
42
|
-
const root = record(value, 'Native creation authorization');
|
|
43
|
-
exactKeys(root, [
|
|
44
|
-
'schema',
|
|
45
|
-
'controllerKeyId',
|
|
46
|
-
'projectRootHash',
|
|
47
|
-
'policyHash',
|
|
48
|
-
'protocol',
|
|
49
|
-
'change',
|
|
50
|
-
'issuedAt',
|
|
51
|
-
'authorizationHash',
|
|
52
|
-
'controllerSignature',
|
|
53
|
-
], 'Native creation authorization');
|
|
54
|
-
if (root.schema !== NATIVE_CREATION_AUTHORIZATION_SCHEMA ||
|
|
55
|
-
typeof root.controllerKeyId !== 'string' ||
|
|
56
|
-
!HASH_PATTERN.test(root.controllerKeyId) ||
|
|
57
|
-
typeof root.projectRootHash !== 'string' ||
|
|
58
|
-
!HASH_PATTERN.test(root.projectRootHash) ||
|
|
59
|
-
typeof root.policyHash !== 'string' ||
|
|
60
|
-
!HASH_PATTERN.test(root.policyHash) ||
|
|
61
|
-
root.protocol !== 'signed-v2' ||
|
|
62
|
-
typeof root.change !== 'string' ||
|
|
63
|
-
!CHANGE_NAME_PATTERN.test(root.change) ||
|
|
64
|
-
typeof root.issuedAt !== 'string' ||
|
|
65
|
-
Number.isNaN(Date.parse(root.issuedAt)) ||
|
|
66
|
-
typeof root.authorizationHash !== 'string' ||
|
|
67
|
-
!HASH_PATTERN.test(root.authorizationHash)) {
|
|
68
|
-
throw new Error('Native creation authorization is invalid');
|
|
69
|
-
}
|
|
70
|
-
const content = {
|
|
71
|
-
schema: NATIVE_CREATION_AUTHORIZATION_SCHEMA,
|
|
72
|
-
controllerKeyId: root.controllerKeyId,
|
|
73
|
-
projectRootHash: root.projectRootHash,
|
|
74
|
-
policyHash: root.policyHash,
|
|
75
|
-
protocol: 'signed-v2',
|
|
76
|
-
change: root.change,
|
|
77
|
-
issuedAt: root.issuedAt,
|
|
78
|
-
};
|
|
79
|
-
const authorizationHash = canonicalHash(NATIVE_CREATION_AUTHORIZATION_SCHEMA, content);
|
|
80
|
-
if (authorizationHash !== root.authorizationHash) {
|
|
81
|
-
throw new Error('Native creation authorization hash mismatch');
|
|
82
|
-
}
|
|
83
|
-
const controllerSignature = parseNativeReviewSignature(root.controllerSignature);
|
|
84
|
-
if (controllerSignature.keyId !== root.controllerKeyId ||
|
|
85
|
-
controllerSignature.payloadHash !== authorizationHash) {
|
|
86
|
-
throw new Error('Native creation authorization signature binding is invalid');
|
|
87
|
-
}
|
|
88
|
-
return { ...content, authorizationHash, controllerSignature };
|
|
89
|
-
}
|
|
90
|
-
export async function verifyNativeCreationAuthorization(options) {
|
|
91
|
-
const controllerTrust = await readNativeControllerTrustProject(options.paths.projectRoot);
|
|
92
|
-
if (!controllerTrust) {
|
|
93
|
-
throw new Error('Native project has no controller-owned trust root');
|
|
94
|
-
}
|
|
95
|
-
const authorization = parseNativeCreationAuthorization(options.authorization);
|
|
96
|
-
const projectRootHash = await nativeControllerProjectRootHash(options.paths.projectRoot);
|
|
97
|
-
if (authorization.controllerKeyId !== controllerTrust.controllerIdentity.keyId ||
|
|
98
|
-
authorization.projectRootHash !== projectRootHash ||
|
|
99
|
-
authorization.policyHash !== options.policyHash ||
|
|
100
|
-
authorization.change !== options.change) {
|
|
101
|
-
throw new Error('Native creation authorization does not match the trusted project/change');
|
|
102
|
-
}
|
|
103
|
-
verifyNativeReviewPayloadHash({
|
|
104
|
-
identity: controllerTrust.controllerIdentity,
|
|
105
|
-
payloadHash: authorization.authorizationHash,
|
|
106
|
-
proof: authorization.controllerSignature,
|
|
107
|
-
});
|
|
108
|
-
return authorization;
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=native-creation-authorization.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"native-creation-authorization.js","sourceRoot":"","sources":["../../../domains/comet-native/native-creation-authorization.ts"],"names":[],"mappings":"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"}
|