@sentropic/h2a 0.1.6 → 0.1.8
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/README.md +1 -0
- package/dist/abc.d.ts +6 -36
- package/dist/abc.d.ts.map +1 -1
- package/dist/abc.js +25 -36
- package/dist/abc.js.map +1 -1
- package/dist/disclosure.d.ts +55 -0
- package/dist/disclosure.d.ts.map +1 -0
- package/dist/disclosure.js +111 -0
- package/dist/disclosure.js.map +1 -0
- package/dist/governance-boundary.d.ts +3 -3
- package/dist/governance-boundary.js +3 -3
- package/dist/governance-boundary.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/policy-precedence.d.ts +50 -0
- package/dist/policy-precedence.d.ts.map +1 -0
- package/dist/policy-precedence.js +98 -0
- package/dist/policy-precedence.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,6 +10,7 @@ Current bootstrap surface:
|
|
|
10
10
|
- contractual artifact profiles + strict audit helpers for CONTRACT / POLICY / ENGAGEMENT
|
|
11
11
|
- escalation target resolution against ENFORCEMENT_PLAN routes
|
|
12
12
|
- ABC model compatibility profiles + audit helper for enterprise / ecosystem / government-citizen mappings
|
|
13
|
+
- policy precedence profiles for ABC contexts, with explicit escalation rather than a hidden V1 resolver
|
|
13
14
|
- multi-human mode taxonomy + selector for peer, delegated, shared-engagement, federated, consortium, and public-authority flows
|
|
14
15
|
- governance boundary classification for protocol / policy / implementation items
|
|
15
16
|
- canonical JSON + SHA-256 hashing
|
package/dist/abc.d.ts
CHANGED
|
@@ -73,12 +73,7 @@ export declare const H2A_ABC_MODEL_PROFILES: Readonly<{
|
|
|
73
73
|
readonly capability: "external-authority";
|
|
74
74
|
readonly status: "shipped";
|
|
75
75
|
readonly evidence: "DEC-040 exposes EXTERNAL_AUTHORITY as an escalation authority kind";
|
|
76
|
-
}, {
|
|
77
|
-
readonly capability: "controlled-disclosure";
|
|
78
|
-
readonly status: "partial";
|
|
79
|
-
readonly evidence: "CONTROL roles and evidence hashes exist";
|
|
80
|
-
readonly gap: "controlled disclosure still lacks standard redaction/evidence-package limits";
|
|
81
|
-
}, {
|
|
76
|
+
}, H2AAbcModelCapabilityDescriptor, {
|
|
82
77
|
readonly capability: "recurring-obligations";
|
|
83
78
|
readonly status: "partial";
|
|
84
79
|
readonly evidence: "CONTRACT can carry obligations and ENGAGEMENT can execute work";
|
|
@@ -88,12 +83,7 @@ export declare const H2A_ABC_MODEL_PROFILES: Readonly<{
|
|
|
88
83
|
readonly status: "partial";
|
|
89
84
|
readonly evidence: "RECOURSE is an escalation authority kind";
|
|
90
85
|
readonly gap: "recourse has routing vocabulary but no adjudication lifecycle";
|
|
91
|
-
},
|
|
92
|
-
readonly capability: "policy-precedence";
|
|
93
|
-
readonly status: "deferred";
|
|
94
|
-
readonly evidence: "policy conflicts can be escalated";
|
|
95
|
-
readonly gap: "policy precedence is not yet resolved by a V1 engine";
|
|
96
|
-
}];
|
|
86
|
+
}, H2AAbcModelCapabilityDescriptor];
|
|
97
87
|
}>;
|
|
98
88
|
readonly B_ECOSYSTEM: Readonly<{
|
|
99
89
|
id: "B_ECOSYSTEM";
|
|
@@ -132,22 +122,12 @@ export declare const H2A_ABC_MODEL_PROFILES: Readonly<{
|
|
|
132
122
|
readonly capability: "external-authority";
|
|
133
123
|
readonly status: "shipped";
|
|
134
124
|
readonly evidence: "DEC-040 exposes EXTERNAL_AUTHORITY as an escalation authority kind";
|
|
135
|
-
}, {
|
|
136
|
-
readonly capability: "controlled-disclosure";
|
|
137
|
-
readonly status: "partial";
|
|
138
|
-
readonly evidence: "hashes and references can support evidence packages";
|
|
139
|
-
readonly gap: "controlled disclosure across partners lacks a standard evidence-package profile";
|
|
140
|
-
}, {
|
|
125
|
+
}, H2AAbcModelCapabilityDescriptor, {
|
|
141
126
|
readonly capability: "recourse";
|
|
142
127
|
readonly status: "partial";
|
|
143
128
|
readonly evidence: "RECOURSE and QUORUM targets can be declared in ENFORCEMENT_PLAN";
|
|
144
129
|
readonly gap: "recourse/deadlock handling is routable but not procedurally specified";
|
|
145
|
-
},
|
|
146
|
-
readonly capability: "policy-precedence";
|
|
147
|
-
readonly status: "deferred";
|
|
148
|
-
readonly evidence: "conflicts can block signatures or escalate";
|
|
149
|
-
readonly gap: "policy precedence across peer organizations is not yet resolved by a V1 engine";
|
|
150
|
-
}];
|
|
130
|
+
}, H2AAbcModelCapabilityDescriptor];
|
|
151
131
|
}>;
|
|
152
132
|
readonly C_GOVERNMENT_CITIZEN: Readonly<{
|
|
153
133
|
id: "C_GOVERNMENT_CITIZEN";
|
|
@@ -186,7 +166,7 @@ export declare const H2A_ABC_MODEL_PROFILES: Readonly<{
|
|
|
186
166
|
readonly capability: "external-authority";
|
|
187
167
|
readonly status: "shipped";
|
|
188
168
|
readonly evidence: "DEC-040 exposes EXTERNAL_AUTHORITY as an escalation authority kind";
|
|
189
|
-
}, {
|
|
169
|
+
}, H2AAbcModelCapabilityDescriptor, {
|
|
190
170
|
readonly capability: "recourse";
|
|
191
171
|
readonly status: "partial";
|
|
192
172
|
readonly evidence: "RECOURSE is a first-class escalation authority kind";
|
|
@@ -196,17 +176,7 @@ export declare const H2A_ABC_MODEL_PROFILES: Readonly<{
|
|
|
196
176
|
readonly status: "partial";
|
|
197
177
|
readonly evidence: "scope can encode territorial or sectoral boundaries";
|
|
198
178
|
readonly gap: "jurisdiction is represented by scope strings, not yet by a structured schema";
|
|
199
|
-
},
|
|
200
|
-
readonly capability: "controlled-disclosure";
|
|
201
|
-
readonly status: "partial";
|
|
202
|
-
readonly evidence: "hashes and references can support minimized proofs";
|
|
203
|
-
readonly gap: "controlled disclosure for public authority evidence is not yet standardized";
|
|
204
|
-
}, {
|
|
205
|
-
readonly capability: "policy-precedence";
|
|
206
|
-
readonly status: "deferred";
|
|
207
|
-
readonly evidence: "imposed policies and external authorities are representable";
|
|
208
|
-
readonly gap: "policy precedence between public law, contracts, and local policies is unresolved";
|
|
209
|
-
}];
|
|
179
|
+
}, H2AAbcModelCapabilityDescriptor];
|
|
210
180
|
}>;
|
|
211
181
|
}>;
|
|
212
182
|
export declare function getAbcModelProfile(modelId: string): H2AAbcModelProfileDescriptor | undefined;
|
package/dist/abc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abc.d.ts","sourceRoot":"","sources":["../src/abc.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,OAAO,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"abc.d.ts","sourceRoot":"","sources":["../src/abc.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,OAAO,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,iBAAiB,CAAC;AAIzB,eAAO,MAAM,iBAAiB,kEAIpB,CAAC;AAEX,eAAO,MAAM,0BAA0B,kSAa7B,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/D,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC1C,MAAM,MAAM,cAAc,GACtB,sBAAsB,GACtB,iBAAiB,GACjB,kBAAkB,CAAC;AACvB,MAAM,MAAM,qBAAqB,GAC/B,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9C,MAAM,MAAM,2BAA2B,GACnC,SAAS,GACT,SAAS,GACT,UAAU,CAAC;AAEf,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,SAAS,OAAO,EAAE,CAAC;IAC3C,QAAQ,CAAC,qBAAqB,EAAE,SAAS,eAAe,EAAE,CAAC;IAC3D,QAAQ,CAAC,2BAA2B,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACvE,QAAQ,CAAC,wBAAwB,EAAE,SAAS,0BAA0B,EAAE,CAAC;IACzE,QAAQ,CAAC,YAAY,EAAE,SAAS,+BAA+B,EAAE,CAAC;CACnE;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACrD;AA8GD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4EsC,CAAC;AAkB1E,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,GACd,4BAA4B,GAAG,SAAS,CAK1C;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,GACd,8BAA8B,CAmEhC"}
|
package/dist/abc.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { H2A_ARTIFACT_KINDS, H2A_POLICY_ADOPTION_MODES, H2A_ROLES } from "./types.js";
|
|
2
2
|
import { H2A_ESCALATION_AUTHORITY_KINDS } from "./escalation.js";
|
|
3
|
+
import { H2A_POLICY_PRECEDENCE_PROFILES } from "./policy-precedence.js";
|
|
4
|
+
import { H2A_DISCLOSURE_PROFILES } from "./disclosure.js";
|
|
3
5
|
export const H2A_ABC_MODEL_IDS = [
|
|
4
6
|
"A_ENTERPRISE",
|
|
5
7
|
"B_ECOSYSTEM",
|
|
@@ -97,6 +99,23 @@ const BASE_SHIPPED_CAPABILITIES = [
|
|
|
97
99
|
evidence: "DEC-040 exposes EXTERNAL_AUTHORITY as an escalation authority kind"
|
|
98
100
|
}
|
|
99
101
|
];
|
|
102
|
+
function policyPrecedenceCapability(modelId) {
|
|
103
|
+
const profile = H2A_POLICY_PRECEDENCE_PROFILES[modelId];
|
|
104
|
+
return {
|
|
105
|
+
capability: "policy-precedence",
|
|
106
|
+
status: "partial",
|
|
107
|
+
evidence: `policy precedence profiles are declared (${profile.orderedTiers.join(" > ")})`,
|
|
108
|
+
gap: "policy precedence profiles are declared, but there is no V1 resolver; conflicts escalate instead of selecting a hidden winner"
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function controlledDisclosureCapability(modelId) {
|
|
112
|
+
const profile = H2A_DISCLOSURE_PROFILES[modelId];
|
|
113
|
+
return {
|
|
114
|
+
capability: "controlled-disclosure",
|
|
115
|
+
status: "shipped",
|
|
116
|
+
evidence: `DEC-045 declarative disclosure profile (default ${profile.defaultMode}, ${profile.allowedModes.length} allowed modes)`
|
|
117
|
+
};
|
|
118
|
+
}
|
|
100
119
|
export const H2A_ABC_MODEL_PROFILES = Object.freeze({
|
|
101
120
|
A_ENTERPRISE: Object.freeze({
|
|
102
121
|
id: "A_ENTERPRISE",
|
|
@@ -109,12 +128,7 @@ export const H2A_ABC_MODEL_PROFILES = Object.freeze({
|
|
|
109
128
|
escalationAuthorityKinds: ALL_SCOPE_AUTHORITIES,
|
|
110
129
|
capabilities: [
|
|
111
130
|
...BASE_SHIPPED_CAPABILITIES,
|
|
112
|
-
|
|
113
|
-
capability: "controlled-disclosure",
|
|
114
|
-
status: "partial",
|
|
115
|
-
evidence: "CONTROL roles and evidence hashes exist",
|
|
116
|
-
gap: "controlled disclosure still lacks standard redaction/evidence-package limits"
|
|
117
|
-
},
|
|
131
|
+
controlledDisclosureCapability("A_ENTERPRISE"),
|
|
118
132
|
{
|
|
119
133
|
capability: "recurring-obligations",
|
|
120
134
|
status: "partial",
|
|
@@ -127,12 +141,7 @@ export const H2A_ABC_MODEL_PROFILES = Object.freeze({
|
|
|
127
141
|
evidence: "RECOURSE is an escalation authority kind",
|
|
128
142
|
gap: "recourse has routing vocabulary but no adjudication lifecycle"
|
|
129
143
|
},
|
|
130
|
-
|
|
131
|
-
capability: "policy-precedence",
|
|
132
|
-
status: "deferred",
|
|
133
|
-
evidence: "policy conflicts can be escalated",
|
|
134
|
-
gap: "policy precedence is not yet resolved by a V1 engine"
|
|
135
|
-
}
|
|
144
|
+
policyPrecedenceCapability("A_ENTERPRISE")
|
|
136
145
|
]
|
|
137
146
|
}),
|
|
138
147
|
B_ECOSYSTEM: Object.freeze({
|
|
@@ -146,24 +155,14 @@ export const H2A_ABC_MODEL_PROFILES = Object.freeze({
|
|
|
146
155
|
escalationAuthorityKinds: ALL_SCOPE_AUTHORITIES,
|
|
147
156
|
capabilities: [
|
|
148
157
|
...BASE_SHIPPED_CAPABILITIES,
|
|
149
|
-
|
|
150
|
-
capability: "controlled-disclosure",
|
|
151
|
-
status: "partial",
|
|
152
|
-
evidence: "hashes and references can support evidence packages",
|
|
153
|
-
gap: "controlled disclosure across partners lacks a standard evidence-package profile"
|
|
154
|
-
},
|
|
158
|
+
controlledDisclosureCapability("B_ECOSYSTEM"),
|
|
155
159
|
{
|
|
156
160
|
capability: "recourse",
|
|
157
161
|
status: "partial",
|
|
158
162
|
evidence: "RECOURSE and QUORUM targets can be declared in ENFORCEMENT_PLAN",
|
|
159
163
|
gap: "recourse/deadlock handling is routable but not procedurally specified"
|
|
160
164
|
},
|
|
161
|
-
|
|
162
|
-
capability: "policy-precedence",
|
|
163
|
-
status: "deferred",
|
|
164
|
-
evidence: "conflicts can block signatures or escalate",
|
|
165
|
-
gap: "policy precedence across peer organizations is not yet resolved by a V1 engine"
|
|
166
|
-
}
|
|
165
|
+
policyPrecedenceCapability("B_ECOSYSTEM")
|
|
167
166
|
]
|
|
168
167
|
}),
|
|
169
168
|
C_GOVERNMENT_CITIZEN: Object.freeze({
|
|
@@ -177,6 +176,7 @@ export const H2A_ABC_MODEL_PROFILES = Object.freeze({
|
|
|
177
176
|
escalationAuthorityKinds: ALL_SCOPE_AUTHORITIES,
|
|
178
177
|
capabilities: [
|
|
179
178
|
...BASE_SHIPPED_CAPABILITIES,
|
|
179
|
+
controlledDisclosureCapability("C_GOVERNMENT_CITIZEN"),
|
|
180
180
|
{
|
|
181
181
|
capability: "recourse",
|
|
182
182
|
status: "partial",
|
|
@@ -189,18 +189,7 @@ export const H2A_ABC_MODEL_PROFILES = Object.freeze({
|
|
|
189
189
|
evidence: "scope can encode territorial or sectoral boundaries",
|
|
190
190
|
gap: "jurisdiction is represented by scope strings, not yet by a structured schema"
|
|
191
191
|
},
|
|
192
|
-
|
|
193
|
-
capability: "controlled-disclosure",
|
|
194
|
-
status: "partial",
|
|
195
|
-
evidence: "hashes and references can support minimized proofs",
|
|
196
|
-
gap: "controlled disclosure for public authority evidence is not yet standardized"
|
|
197
|
-
},
|
|
198
|
-
{
|
|
199
|
-
capability: "policy-precedence",
|
|
200
|
-
status: "deferred",
|
|
201
|
-
evidence: "imposed policies and external authorities are representable",
|
|
202
|
-
gap: "policy precedence between public law, contracts, and local policies is unresolved"
|
|
203
|
-
}
|
|
192
|
+
policyPrecedenceCapability("C_GOVERNMENT_CITIZEN")
|
|
204
193
|
]
|
|
205
194
|
})
|
|
206
195
|
});
|
package/dist/abc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abc.js","sourceRoot":"","sources":["../src/abc.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,SAAS,EAIV,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,8BAA8B,EAE/B,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"abc.js","sourceRoot":"","sources":["../src/abc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { H2AAbcModelId } from "./abc.js";
|
|
2
|
+
export declare const H2A_DISCLOSURE_MODES: readonly ["denied", "hash-only", "attestation", "evidence-package", "redacted-view", "full-view"];
|
|
3
|
+
export declare const H2A_DISCLOSURE_CONFLICT_DISPOSITIONS: readonly ["escalate-not-resolve"];
|
|
4
|
+
export type H2ADisclosureMode = (typeof H2A_DISCLOSURE_MODES)[number];
|
|
5
|
+
export type H2ADisclosureConflictDisposition = (typeof H2A_DISCLOSURE_CONFLICT_DISPOSITIONS)[number];
|
|
6
|
+
export interface H2ADisclosureProfileDescriptor {
|
|
7
|
+
readonly modelId: H2AAbcModelId;
|
|
8
|
+
readonly label: string;
|
|
9
|
+
readonly allowedModes: readonly H2ADisclosureMode[];
|
|
10
|
+
readonly defaultMode: H2ADisclosureMode;
|
|
11
|
+
readonly conflictDisposition: H2ADisclosureConflictDisposition;
|
|
12
|
+
readonly rationale: string;
|
|
13
|
+
readonly references: readonly string[];
|
|
14
|
+
}
|
|
15
|
+
export interface H2ADisclosureAuditResult {
|
|
16
|
+
readonly ok: boolean;
|
|
17
|
+
readonly profileId?: H2AAbcModelId;
|
|
18
|
+
readonly allowedModes?: readonly H2ADisclosureMode[];
|
|
19
|
+
readonly defaultMode?: H2ADisclosureMode;
|
|
20
|
+
readonly producesProjection: boolean;
|
|
21
|
+
readonly issues: readonly string[];
|
|
22
|
+
readonly unresolved: readonly string[];
|
|
23
|
+
}
|
|
24
|
+
export declare const H2A_DISCLOSURE_PROFILES: Readonly<{
|
|
25
|
+
readonly A_ENTERPRISE: Readonly<{
|
|
26
|
+
modelId: "A_ENTERPRISE";
|
|
27
|
+
label: "A - enterprise hierarchy";
|
|
28
|
+
allowedModes: readonly ["full-view", "redacted-view", "evidence-package", "attestation", "hash-only"];
|
|
29
|
+
defaultMode: "redacted-view";
|
|
30
|
+
conflictDisposition: "escalate-not-resolve";
|
|
31
|
+
rationale: "Enterprise V1 allows full-view inside the scope and uses redacted-view as the default for cross-domain CONTROL; evidence-package, attestation, and hash-only cover third parties.";
|
|
32
|
+
references: readonly ["REQ-070", "REQ-071", "DEC-041", "DEC-043", "DEC-045"];
|
|
33
|
+
}>;
|
|
34
|
+
readonly B_ECOSYSTEM: Readonly<{
|
|
35
|
+
modelId: "B_ECOSYSTEM";
|
|
36
|
+
label: "B - peer ecosystem";
|
|
37
|
+
allowedModes: readonly ["redacted-view", "evidence-package", "attestation", "hash-only"];
|
|
38
|
+
defaultMode: "evidence-package";
|
|
39
|
+
conflictDisposition: "escalate-not-resolve";
|
|
40
|
+
rationale: "Cross-organization ecosystems must not expose full-view by default; evidence-package is the V1 baseline, with attestation and hash-only available for lighter disclosure.";
|
|
41
|
+
references: readonly ["REQ-070", "REQ-071", "DEC-041", "DEC-043", "DEC-045"];
|
|
42
|
+
}>;
|
|
43
|
+
readonly C_GOVERNMENT_CITIZEN: Readonly<{
|
|
44
|
+
modelId: "C_GOVERNMENT_CITIZEN";
|
|
45
|
+
label: "C - public authority ecosystem";
|
|
46
|
+
allowedModes: readonly ["full-view", "redacted-view", "evidence-package", "attestation", "hash-only"];
|
|
47
|
+
defaultMode: "evidence-package";
|
|
48
|
+
conflictDisposition: "escalate-not-resolve";
|
|
49
|
+
rationale: "Public-authority contexts may require full-view by mandated authority, but citizen and inter-administration exchanges default to evidence-package with redacted-view available on demand.";
|
|
50
|
+
references: readonly ["REQ-070", "REQ-071", "DEC-041", "DEC-043", "DEC-045"];
|
|
51
|
+
}>;
|
|
52
|
+
}>;
|
|
53
|
+
export declare function getDisclosureProfile(modelId: string): H2ADisclosureProfileDescriptor | undefined;
|
|
54
|
+
export declare function auditDisclosureProfile(modelId: string): H2ADisclosureAuditResult;
|
|
55
|
+
//# sourceMappingURL=disclosure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disclosure.d.ts","sourceRoot":"","sources":["../src/disclosure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,eAAO,MAAM,oBAAoB,mGAOvB,CAAC;AAEX,eAAO,MAAM,oCAAoC,mCAEvC,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AACtE,MAAM,MAAM,gCAAgC,GAC1C,CAAC,OAAO,oCAAoC,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACpD,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,mBAAmB,EAAE,gCAAgC,CAAC;IAC/D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACrD,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDuC,CAAC;AAE5E,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,GACd,8BAA8B,GAAG,SAAS,CAK5C;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,GACd,wBAAwB,CAqD1B"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
export const H2A_DISCLOSURE_MODES = [
|
|
2
|
+
"denied",
|
|
3
|
+
"hash-only",
|
|
4
|
+
"attestation",
|
|
5
|
+
"evidence-package",
|
|
6
|
+
"redacted-view",
|
|
7
|
+
"full-view"
|
|
8
|
+
];
|
|
9
|
+
export const H2A_DISCLOSURE_CONFLICT_DISPOSITIONS = [
|
|
10
|
+
"escalate-not-resolve"
|
|
11
|
+
];
|
|
12
|
+
export const H2A_DISCLOSURE_PROFILES = Object.freeze({
|
|
13
|
+
A_ENTERPRISE: Object.freeze({
|
|
14
|
+
modelId: "A_ENTERPRISE",
|
|
15
|
+
label: "A - enterprise hierarchy",
|
|
16
|
+
allowedModes: [
|
|
17
|
+
"full-view",
|
|
18
|
+
"redacted-view",
|
|
19
|
+
"evidence-package",
|
|
20
|
+
"attestation",
|
|
21
|
+
"hash-only"
|
|
22
|
+
],
|
|
23
|
+
defaultMode: "redacted-view",
|
|
24
|
+
conflictDisposition: "escalate-not-resolve",
|
|
25
|
+
rationale: "Enterprise V1 allows full-view inside the scope and uses redacted-view as the default for cross-domain CONTROL; evidence-package, attestation, and hash-only cover third parties.",
|
|
26
|
+
references: ["REQ-070", "REQ-071", "DEC-041", "DEC-043", "DEC-045"]
|
|
27
|
+
}),
|
|
28
|
+
B_ECOSYSTEM: Object.freeze({
|
|
29
|
+
modelId: "B_ECOSYSTEM",
|
|
30
|
+
label: "B - peer ecosystem",
|
|
31
|
+
allowedModes: [
|
|
32
|
+
"redacted-view",
|
|
33
|
+
"evidence-package",
|
|
34
|
+
"attestation",
|
|
35
|
+
"hash-only"
|
|
36
|
+
],
|
|
37
|
+
defaultMode: "evidence-package",
|
|
38
|
+
conflictDisposition: "escalate-not-resolve",
|
|
39
|
+
rationale: "Cross-organization ecosystems must not expose full-view by default; evidence-package is the V1 baseline, with attestation and hash-only available for lighter disclosure.",
|
|
40
|
+
references: ["REQ-070", "REQ-071", "DEC-041", "DEC-043", "DEC-045"]
|
|
41
|
+
}),
|
|
42
|
+
C_GOVERNMENT_CITIZEN: Object.freeze({
|
|
43
|
+
modelId: "C_GOVERNMENT_CITIZEN",
|
|
44
|
+
label: "C - public authority ecosystem",
|
|
45
|
+
allowedModes: [
|
|
46
|
+
"full-view",
|
|
47
|
+
"redacted-view",
|
|
48
|
+
"evidence-package",
|
|
49
|
+
"attestation",
|
|
50
|
+
"hash-only"
|
|
51
|
+
],
|
|
52
|
+
defaultMode: "evidence-package",
|
|
53
|
+
conflictDisposition: "escalate-not-resolve",
|
|
54
|
+
rationale: "Public-authority contexts may require full-view by mandated authority, but citizen and inter-administration exchanges default to evidence-package with redacted-view available on demand.",
|
|
55
|
+
references: ["REQ-070", "REQ-071", "DEC-041", "DEC-043", "DEC-045"]
|
|
56
|
+
})
|
|
57
|
+
});
|
|
58
|
+
export function getDisclosureProfile(modelId) {
|
|
59
|
+
if (!Object.hasOwn(H2A_DISCLOSURE_PROFILES, modelId)) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
return H2A_DISCLOSURE_PROFILES[modelId];
|
|
63
|
+
}
|
|
64
|
+
export function auditDisclosureProfile(modelId) {
|
|
65
|
+
const profile = getDisclosureProfile(modelId);
|
|
66
|
+
if (!profile) {
|
|
67
|
+
return {
|
|
68
|
+
ok: false,
|
|
69
|
+
producesProjection: false,
|
|
70
|
+
issues: [`unknown disclosure profile: ${modelId}`],
|
|
71
|
+
unresolved: []
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
const issues = [];
|
|
75
|
+
const knownModes = new Set(H2A_DISCLOSURE_MODES);
|
|
76
|
+
const allowedModes = [...profile.allowedModes];
|
|
77
|
+
const seenModes = new Set(allowedModes);
|
|
78
|
+
const unknownModes = allowedModes.filter((mode) => !knownModes.has(mode));
|
|
79
|
+
if (unknownModes.length > 0) {
|
|
80
|
+
issues.push(`unknown disclosure modes: ${unknownModes.join(", ")}`);
|
|
81
|
+
}
|
|
82
|
+
if (seenModes.size !== allowedModes.length) {
|
|
83
|
+
issues.push("disclosure modes must not be duplicated");
|
|
84
|
+
}
|
|
85
|
+
if (allowedModes.length === 0) {
|
|
86
|
+
issues.push("disclosure profile must declare at least one allowed mode");
|
|
87
|
+
}
|
|
88
|
+
if (!knownModes.has(profile.defaultMode)) {
|
|
89
|
+
issues.push(`unknown default disclosure mode: ${profile.defaultMode}`);
|
|
90
|
+
}
|
|
91
|
+
else if (!seenModes.has(profile.defaultMode)) {
|
|
92
|
+
issues.push(`default disclosure mode "${profile.defaultMode}" is not in allowedModes`);
|
|
93
|
+
}
|
|
94
|
+
if (profile.conflictDisposition !== "escalate-not-resolve") {
|
|
95
|
+
issues.push(`unsupported disclosure conflict disposition: ${profile.conflictDisposition}`);
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
ok: issues.length === 0,
|
|
99
|
+
profileId: profile.modelId,
|
|
100
|
+
allowedModes: profile.allowedModes,
|
|
101
|
+
defaultMode: profile.defaultMode,
|
|
102
|
+
producesProjection: false,
|
|
103
|
+
issues,
|
|
104
|
+
unresolved: issues.length === 0
|
|
105
|
+
? [
|
|
106
|
+
"The profile declares allowed disclosure modes, but V1 does not produce projections; consumers must redact, package, or attest content in their own policy layer."
|
|
107
|
+
]
|
|
108
|
+
: []
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=disclosure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disclosure.js","sourceRoot":"","sources":["../src/disclosure.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,9 +60,9 @@ export declare const H2A_GOVERNANCE_BOUNDARY_ITEMS: readonly [{
|
|
|
60
60
|
}, {
|
|
61
61
|
readonly id: "controlled-disclosure-profiles";
|
|
62
62
|
readonly layer: "POLICY";
|
|
63
|
-
readonly status: "v1-
|
|
64
|
-
readonly summary: "
|
|
65
|
-
readonly references: readonly ["REQ-070", "DEC-041"];
|
|
63
|
+
readonly status: "v1-shipped";
|
|
64
|
+
readonly summary: "DEC-045 declares allowed disclosure modes per ABC profile; projection helpers remain policy/implementation work.";
|
|
65
|
+
readonly references: readonly ["REQ-070", "REQ-071", "DEC-041", "DEC-045"];
|
|
66
66
|
}, {
|
|
67
67
|
readonly id: "recurring-obligation-cadence";
|
|
68
68
|
readonly layer: "POLICY";
|
|
@@ -68,9 +68,9 @@ export const H2A_GOVERNANCE_BOUNDARY_ITEMS = Object.freeze([
|
|
|
68
68
|
{
|
|
69
69
|
id: "controlled-disclosure-profiles",
|
|
70
70
|
layer: "POLICY",
|
|
71
|
-
status: "v1-
|
|
72
|
-
summary: "
|
|
73
|
-
references: ["REQ-070", "DEC-041"]
|
|
71
|
+
status: "v1-shipped",
|
|
72
|
+
summary: "DEC-045 declares allowed disclosure modes per ABC profile; projection helpers remain policy/implementation work.",
|
|
73
|
+
references: ["REQ-070", "REQ-071", "DEC-041", "DEC-045"]
|
|
74
74
|
},
|
|
75
75
|
{
|
|
76
76
|
id: "recurring-obligation-cadence",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"governance-boundary.js","sourceRoot":"","sources":["../src/governance-boundary.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,UAAU;IACV,QAAQ;IACR,gBAAgB;CACR,CAAC;AAEX,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,YAAY;IACZ,SAAS;IACT,aAAa;CACL,CAAC;AAeX,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC,MAAM,CAAC;IACzD;QACE,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,wEAAwE;QACjF,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;KACnC;IACD;QACE,EAAE,EAAE,qBAAqB;QACzB,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,oEAAoE;QAC7E,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;KAC9C;IACD;QACE,EAAE,EAAE,qBAAqB;QACzB,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,yFAAyF;QAClG,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;KACnC;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,kGAAkG;QAC3G,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;KAC9C;IACD;QACE,EAAE,EAAE,4BAA4B;QAChC,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,+DAA+D;QACxE,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;KAC9C;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,kEAAkE;QAC3E,UAAU,EAAE,CAAC,SAAS,CAAC;KACxB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,oGAAoG;QAC7G,UAAU,EAAE,CAAC,SAAS,CAAC;KACxB;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,yGAAyG;QAClH,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;KAC9C;IACD;QACE,EAAE,EAAE,gCAAgC;QACpC,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"governance-boundary.js","sourceRoot":"","sources":["../src/governance-boundary.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,10 @@ export { H2A_MULTI_HUMAN_MODE_IDS, H2A_MULTI_HUMAN_MODES, getMultiHumanMode, sel
|
|
|
4
4
|
export type { H2AMultiHumanChannel, H2AMultiHumanModeDescriptor, H2AMultiHumanModeId, H2AMultiHumanModeRequest, H2AMultiHumanModeSelection, H2AMultiHumanModeSelectionFailure, H2AMultiHumanModeSelectionResult } from "./multi-human.js";
|
|
5
5
|
export { H2A_GOVERNANCE_BOUNDARY_ITEMS, H2A_GOVERNANCE_BOUNDARY_LAYERS, H2A_GOVERNANCE_BOUNDARY_STATUSES, classifyGovernanceBoundary, listGovernanceBoundaryItems } from "./governance-boundary.js";
|
|
6
6
|
export type { H2AGovernanceBoundaryItemDescriptor, H2AGovernanceBoundaryItemId, H2AGovernanceBoundaryLayer, H2AGovernanceBoundaryStatus } from "./governance-boundary.js";
|
|
7
|
+
export { H2A_POLICY_PRECEDENCE_CONFLICT_DISPOSITIONS, H2A_POLICY_PRECEDENCE_PROFILES, H2A_POLICY_PRECEDENCE_TIERS, auditPolicyPrecedenceProfile, getPolicyPrecedenceProfile } from "./policy-precedence.js";
|
|
8
|
+
export type { H2APolicyPrecedenceAuditResult, H2APolicyPrecedenceConflictDisposition, H2APolicyPrecedenceProfileDescriptor, H2APolicyPrecedenceTier } from "./policy-precedence.js";
|
|
9
|
+
export { H2A_DISCLOSURE_CONFLICT_DISPOSITIONS, H2A_DISCLOSURE_MODES, H2A_DISCLOSURE_PROFILES, auditDisclosureProfile, getDisclosureProfile } from "./disclosure.js";
|
|
10
|
+
export type { H2ADisclosureAuditResult, H2ADisclosureConflictDisposition, H2ADisclosureMode, H2ADisclosureProfileDescriptor } from "./disclosure.js";
|
|
7
11
|
export { createEnvelope, isH2AEnvelope } from "./envelope.js";
|
|
8
12
|
export { assertValidNegotiationState } from "./negotiation.js";
|
|
9
13
|
export { canonicalize, computeHash } from "./canonical.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export { H2A_ABC_MODEL_CAPABILITIES, H2A_ABC_MODEL_IDS, H2A_ABC_MODEL_PROFILES, auditAbcModelCompatibility, getAbcModelProfile } from "./abc.js";
|
|
2
2
|
export { H2A_MULTI_HUMAN_MODE_IDS, H2A_MULTI_HUMAN_MODES, getMultiHumanMode, selectMultiHumanMode } from "./multi-human.js";
|
|
3
3
|
export { H2A_GOVERNANCE_BOUNDARY_ITEMS, H2A_GOVERNANCE_BOUNDARY_LAYERS, H2A_GOVERNANCE_BOUNDARY_STATUSES, classifyGovernanceBoundary, listGovernanceBoundaryItems } from "./governance-boundary.js";
|
|
4
|
+
export { H2A_POLICY_PRECEDENCE_CONFLICT_DISPOSITIONS, H2A_POLICY_PRECEDENCE_PROFILES, H2A_POLICY_PRECEDENCE_TIERS, auditPolicyPrecedenceProfile, getPolicyPrecedenceProfile } from "./policy-precedence.js";
|
|
5
|
+
export { H2A_DISCLOSURE_CONFLICT_DISPOSITIONS, H2A_DISCLOSURE_MODES, H2A_DISCLOSURE_PROFILES, auditDisclosureProfile, getDisclosureProfile } from "./disclosure.js";
|
|
4
6
|
export { createEnvelope, isH2AEnvelope } from "./envelope.js";
|
|
5
7
|
export { assertValidNegotiationState } from "./negotiation.js";
|
|
6
8
|
export { canonicalize, computeHash } from "./canonical.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAWlB,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAU1B,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,gCAAgC,EAChC,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EACL,cAAc,EACd,aAAa,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,6BAA6B,EAC7B,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAMtB,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,WAAW,EACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iCAAiC,EACjC,mCAAmC,EACnC,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EACL,8BAA8B,EAC9B,uBAAuB,EACvB,8BAA8B,EAC9B,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,YAAY,EACZ,SAAS,EACT,WAAW,EACZ,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAWlB,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAU1B,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,gCAAgC,EAChC,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EACL,2CAA2C,EAC3C,8BAA8B,EAC9B,2BAA2B,EAC3B,4BAA4B,EAC5B,0BAA0B,EAC3B,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EACL,oCAAoC,EACpC,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EACL,cAAc,EACd,aAAa,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,6BAA6B,EAC7B,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAMtB,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,WAAW,EACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iCAAiC,EACjC,mCAAmC,EACnC,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EACL,8BAA8B,EAC9B,uBAAuB,EACvB,8BAA8B,EAC9B,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,YAAY,EACZ,SAAS,EACT,WAAW,EACZ,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { H2AAbcModelId } from "./abc.js";
|
|
2
|
+
export declare const H2A_POLICY_PRECEDENCE_TIERS: readonly ["public-authority", "contractual", "federated", "local"];
|
|
3
|
+
export declare const H2A_POLICY_PRECEDENCE_CONFLICT_DISPOSITIONS: readonly ["escalate-not-resolve"];
|
|
4
|
+
export type H2APolicyPrecedenceTier = (typeof H2A_POLICY_PRECEDENCE_TIERS)[number];
|
|
5
|
+
export type H2APolicyPrecedenceConflictDisposition = (typeof H2A_POLICY_PRECEDENCE_CONFLICT_DISPOSITIONS)[number];
|
|
6
|
+
export interface H2APolicyPrecedenceProfileDescriptor {
|
|
7
|
+
readonly modelId: H2AAbcModelId;
|
|
8
|
+
readonly label: string;
|
|
9
|
+
readonly orderedTiers: readonly H2APolicyPrecedenceTier[];
|
|
10
|
+
readonly conflictDisposition: H2APolicyPrecedenceConflictDisposition;
|
|
11
|
+
readonly rationale: string;
|
|
12
|
+
readonly references: readonly string[];
|
|
13
|
+
}
|
|
14
|
+
export interface H2APolicyPrecedenceAuditResult {
|
|
15
|
+
readonly ok: boolean;
|
|
16
|
+
readonly profileId?: H2AAbcModelId;
|
|
17
|
+
readonly orderedTiers?: readonly H2APolicyPrecedenceTier[];
|
|
18
|
+
readonly resolvesConflicts: boolean;
|
|
19
|
+
readonly issues: readonly string[];
|
|
20
|
+
readonly unresolved: readonly string[];
|
|
21
|
+
}
|
|
22
|
+
export declare const H2A_POLICY_PRECEDENCE_PROFILES: Readonly<{
|
|
23
|
+
readonly A_ENTERPRISE: Readonly<{
|
|
24
|
+
modelId: "A_ENTERPRISE";
|
|
25
|
+
label: "A - enterprise hierarchy";
|
|
26
|
+
orderedTiers: readonly ["public-authority", "contractual", "local", "federated"];
|
|
27
|
+
conflictDisposition: "escalate-not-resolve";
|
|
28
|
+
rationale: "Enterprise V1 reads public authority and contracts before local operating policies; peer/federated policy remains explicit and escalated when it conflicts.";
|
|
29
|
+
references: readonly ["REQ-041", "DEC-039", "DEC-041"];
|
|
30
|
+
}>;
|
|
31
|
+
readonly B_ECOSYSTEM: Readonly<{
|
|
32
|
+
modelId: "B_ECOSYSTEM";
|
|
33
|
+
label: "B - peer ecosystem";
|
|
34
|
+
orderedTiers: readonly ["public-authority", "contractual", "federated", "local"];
|
|
35
|
+
conflictDisposition: "escalate-not-resolve";
|
|
36
|
+
rationale: "Peer ecosystems read shared/federated policy before local participant policy after public and contractual constraints.";
|
|
37
|
+
references: readonly ["REQ-041", "DEC-039", "DEC-041"];
|
|
38
|
+
}>;
|
|
39
|
+
readonly C_GOVERNMENT_CITIZEN: Readonly<{
|
|
40
|
+
modelId: "C_GOVERNMENT_CITIZEN";
|
|
41
|
+
label: "C - public authority ecosystem";
|
|
42
|
+
orderedTiers: readonly ["public-authority", "contractual", "federated", "local"];
|
|
43
|
+
conflictDisposition: "escalate-not-resolve";
|
|
44
|
+
rationale: "Public-authority contexts read imposed public policy first; contracts and delegated/federated rules remain explicit below that surface.";
|
|
45
|
+
references: readonly ["REQ-041", "DEC-039", "DEC-041"];
|
|
46
|
+
}>;
|
|
47
|
+
}>;
|
|
48
|
+
export declare function getPolicyPrecedenceProfile(modelId: string): H2APolicyPrecedenceProfileDescriptor | undefined;
|
|
49
|
+
export declare function auditPolicyPrecedenceProfile(modelId: string): H2APolicyPrecedenceAuditResult;
|
|
50
|
+
//# sourceMappingURL=policy-precedence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-precedence.d.ts","sourceRoot":"","sources":["../src/policy-precedence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,eAAO,MAAM,2BAA2B,oEAK9B,CAAC;AAEX,eAAO,MAAM,2CAA2C,mCAE9C,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/C,MAAM,MAAM,sCAAsC,GAChD,CAAC,OAAO,2CAA2C,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC1D,QAAQ,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;IACrE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC3D,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;EA2CsC,CAAC;AAElF,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,GACd,oCAAoC,GAAG,SAAS,CAKlD;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,GACd,8BAA8B,CAgDhC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
export const H2A_POLICY_PRECEDENCE_TIERS = [
|
|
2
|
+
"public-authority",
|
|
3
|
+
"contractual",
|
|
4
|
+
"federated",
|
|
5
|
+
"local"
|
|
6
|
+
];
|
|
7
|
+
export const H2A_POLICY_PRECEDENCE_CONFLICT_DISPOSITIONS = [
|
|
8
|
+
"escalate-not-resolve"
|
|
9
|
+
];
|
|
10
|
+
export const H2A_POLICY_PRECEDENCE_PROFILES = Object.freeze({
|
|
11
|
+
A_ENTERPRISE: Object.freeze({
|
|
12
|
+
modelId: "A_ENTERPRISE",
|
|
13
|
+
label: "A - enterprise hierarchy",
|
|
14
|
+
orderedTiers: [
|
|
15
|
+
"public-authority",
|
|
16
|
+
"contractual",
|
|
17
|
+
"local",
|
|
18
|
+
"federated"
|
|
19
|
+
],
|
|
20
|
+
conflictDisposition: "escalate-not-resolve",
|
|
21
|
+
rationale: "Enterprise V1 reads public authority and contracts before local operating policies; peer/federated policy remains explicit and escalated when it conflicts.",
|
|
22
|
+
references: ["REQ-041", "DEC-039", "DEC-041"]
|
|
23
|
+
}),
|
|
24
|
+
B_ECOSYSTEM: Object.freeze({
|
|
25
|
+
modelId: "B_ECOSYSTEM",
|
|
26
|
+
label: "B - peer ecosystem",
|
|
27
|
+
orderedTiers: [
|
|
28
|
+
"public-authority",
|
|
29
|
+
"contractual",
|
|
30
|
+
"federated",
|
|
31
|
+
"local"
|
|
32
|
+
],
|
|
33
|
+
conflictDisposition: "escalate-not-resolve",
|
|
34
|
+
rationale: "Peer ecosystems read shared/federated policy before local participant policy after public and contractual constraints.",
|
|
35
|
+
references: ["REQ-041", "DEC-039", "DEC-041"]
|
|
36
|
+
}),
|
|
37
|
+
C_GOVERNMENT_CITIZEN: Object.freeze({
|
|
38
|
+
modelId: "C_GOVERNMENT_CITIZEN",
|
|
39
|
+
label: "C - public authority ecosystem",
|
|
40
|
+
orderedTiers: [
|
|
41
|
+
"public-authority",
|
|
42
|
+
"contractual",
|
|
43
|
+
"federated",
|
|
44
|
+
"local"
|
|
45
|
+
],
|
|
46
|
+
conflictDisposition: "escalate-not-resolve",
|
|
47
|
+
rationale: "Public-authority contexts read imposed public policy first; contracts and delegated/federated rules remain explicit below that surface.",
|
|
48
|
+
references: ["REQ-041", "DEC-039", "DEC-041"]
|
|
49
|
+
})
|
|
50
|
+
});
|
|
51
|
+
export function getPolicyPrecedenceProfile(modelId) {
|
|
52
|
+
if (!Object.hasOwn(H2A_POLICY_PRECEDENCE_PROFILES, modelId)) {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
return H2A_POLICY_PRECEDENCE_PROFILES[modelId];
|
|
56
|
+
}
|
|
57
|
+
export function auditPolicyPrecedenceProfile(modelId) {
|
|
58
|
+
const profile = getPolicyPrecedenceProfile(modelId);
|
|
59
|
+
if (!profile) {
|
|
60
|
+
return {
|
|
61
|
+
ok: false,
|
|
62
|
+
resolvesConflicts: false,
|
|
63
|
+
issues: [`unknown policy precedence profile: ${modelId}`],
|
|
64
|
+
unresolved: []
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
const issues = [];
|
|
68
|
+
const orderedTiers = [...profile.orderedTiers];
|
|
69
|
+
const knownTiers = new Set(H2A_POLICY_PRECEDENCE_TIERS);
|
|
70
|
+
const seenTiers = new Set(orderedTiers);
|
|
71
|
+
const unknownTiers = orderedTiers.filter((tier) => !knownTiers.has(tier));
|
|
72
|
+
const missingTiers = H2A_POLICY_PRECEDENCE_TIERS.filter((tier) => !seenTiers.has(tier));
|
|
73
|
+
if (unknownTiers.length > 0) {
|
|
74
|
+
issues.push(`unknown policy precedence tiers: ${unknownTiers.join(", ")}`);
|
|
75
|
+
}
|
|
76
|
+
if (seenTiers.size !== orderedTiers.length) {
|
|
77
|
+
issues.push("policy precedence tiers must not be duplicated");
|
|
78
|
+
}
|
|
79
|
+
if (missingTiers.length > 0) {
|
|
80
|
+
issues.push(`missing policy precedence tiers: ${missingTiers.join(", ")}`);
|
|
81
|
+
}
|
|
82
|
+
if (profile.conflictDisposition !== "escalate-not-resolve") {
|
|
83
|
+
issues.push(`unsupported policy precedence conflict disposition: ${profile.conflictDisposition}`);
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
ok: issues.length === 0,
|
|
87
|
+
profileId: profile.modelId,
|
|
88
|
+
orderedTiers: profile.orderedTiers,
|
|
89
|
+
resolvesConflicts: false,
|
|
90
|
+
issues,
|
|
91
|
+
unresolved: issues.length === 0
|
|
92
|
+
? [
|
|
93
|
+
"The profile declares precedence order, but V1 does not select a winning policy automatically; conflicts must escalate through the declared authority surface."
|
|
94
|
+
]
|
|
95
|
+
: []
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=policy-precedence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-precedence.js","sourceRoot":"","sources":["../src/policy-precedence.ts"],"names":[],"mappings":"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"}
|