@kashscript/lexicons 0.2.0-alpha.0 → 0.3.0-alpha.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/README.md CHANGED
@@ -30,7 +30,7 @@ out of the box. The domain extensions (`social`, `trade`, `zkp`,
30
30
  | `@kashscript/lexicons/extensions/trade` | The `kash.trade.*` vocabulary |
31
31
  | `@kashscript/lexicons/extensions/zkp` | The `kash.zkp.*` vocabulary |
32
32
  | `@kashscript/lexicons/extensions/{education,civic,community}` | Further opt-in vocabularies |
33
- | `@kashscript/lexicons/extensions/door` | `kash.rule@1.0.0` (a door's published rule) and `kash.decision@1.0.0` (the decision receipt — the person's record, never published: `PERSONAL_LEXICONS`). Meaning is checked by `@kashscript/predicate`; see `specs/rule.md` and `specs/decision.md` |
33
+ | `@kashscript/lexicons/extensions/door` | `kash.rule@1.0.0` and `kash.rule@1.1.0` (a door's published rule; 1.1.0 adds its address, drafts, parameter bounds and each criterion's subject) and `kash.adoption@1.0.0` (an anchor adopts a rule with local values within its bounds). All three are public, organisation-authored records (d59). The decision receipt is the person's record, so its shape lives in `@kashscript/predicate` since `0.3.0-alpha.0`. Meaning is checked by `@kashscript/predicate`; see `specs/rule.md`, `specs/adoption.md` and `specs/decision.md` |
34
34
 
35
35
  ---
36
36
 
@@ -11,18 +11,27 @@
11
11
  * organisation-authored. Signed by its author as a DSSE envelope
12
12
  * (`application/vnd.kash.rule+json`).
13
13
  *
14
- * kash.decision@1.0.0
15
- * The decision receipt: the outcome under one version of a rule, with its
16
- * reasons, the rows that fired and the hashes of the receipts it relied on —
17
- * never their content. Signed by the deciding organisation as an SD-JWT VC
18
- * (`https://kashscript.com/vct/decision/1`) to the person, who keeps it.
19
- * **It is the person's record, so it is never published** — it is listed in
20
- * `PERSONAL_LEXICONS`, which muffler's guard refuses.
14
+ * kash.rule@1.1.0 (KS-Q1b; ECOSYSTEM d85(b)–(c))
15
+ * The same rule with its **address** — sector (ISIC Revision 5), anchor
16
+ * family, authority, journey and the seven givens — a **subject** on each
17
+ * criterion, **bounds** on the parameters an adopter may set, and `draft`.
18
+ * Every new field is optional, so every 1.0.0 body is a 1.1.0 body.
21
19
  *
22
- * Both shapes are closed: a field this schema does not name is refused, so
23
- * neither can carry a score, a person's identity or a receipt's content.
24
- * Meaning (the floor's refusals, the FEEL check, the decision's routing rules)
25
- * is checked by `@kashscript/predicate`; this extension is the shape.
20
+ * kash.adoption@1.0.0
21
+ * An anchor — an organisation — adopts one version of a rule with its own
22
+ * values for the parameters the rule bounds. Public, signed by the anchor
23
+ * as DSSE (`application/vnd.kash.adoption+json`). An adoption is the
24
+ * anchor's pact (d85(d)): rulebooks written once, executed locally.
25
+ *
26
+ * Every shape is closed: a field this schema does not name is refused, so none
27
+ * can carry a score or a person's identity. Meaning — the floor's refusals, the
28
+ * FEEL check, bounds, completeness — is checked by `@kashscript/predicate`;
29
+ * this extension is the shape.
30
+ *
31
+ * **The decision receipt is not here** (since 0.3.0): it is the person's own
32
+ * record, a credential they hold, so its schema lives with the package that
33
+ * issues and checks it — `@kashscript/predicate/decision`. d59 makes lexicons
34
+ * the home of public, organisation-authored records only.
26
35
  *
27
36
  * Import path: `@kashscript/lexicons/extensions/door`.
28
37
  */
@@ -176,50 +185,132 @@ export interface RuleBody {
176
185
  export declare const CRITERION_SCHEMA: ObjectSchema;
177
186
  export declare const KASH_RULE_BODY_SCHEMA: ObjectSchema;
178
187
  export declare const KASH_RULE_LEXICON: LexiconDef;
179
- export declare const KASH_DECISION_NSID: "kash.decision";
180
- export declare const KASH_DECISION_ID: "kash.decision@1.0.0";
181
- export type DecidedBy = {
182
- readonly kind: "standing";
183
- readonly standing: string;
188
+ export declare const KASH_RULE_1_1_ID: "kash.rule@1.1.0";
189
+ /** What a criterion is about. d85(b) rule 1 binds when the subject is a person (or an organisation's people). */
190
+ export declare const SUBJECTS: readonly ["person", "organisation", "product", "place"];
191
+ export type Subject = (typeof SUBJECTS)[number];
192
+ export declare const ANCHOR_FAMILIES: readonly ["movement", "knowledge", "work", "community"];
193
+ export declare const AUTHORITY_KINDS: readonly ["floor", "law", "standard", "institution", "community"];
194
+ export declare const JOURNEYS: readonly ["move", "learn", "earn-and-spend", "live", "leisure"];
195
+ export declare const GIVENS: readonly ["area", "spaces", "capitals", "culture", "economy", "time", "relations"];
196
+ export type Given = (typeof GIVENS)[number];
197
+ export declare const SPACE_KINDS: readonly ["premises", "workplace", "campus", "site", "vehicle", "home", "public-space", "online"];
198
+ export declare const CAPITAL_KINDS: readonly ["people", "systems", "resources"];
199
+ export declare const ECONOMY_LEVELS: readonly ["primary", "secondary", "tertiary", "quaternary", "quinary", "uncounted"];
200
+ /** Bounds an adopter may set a parameter within: a range, or a list. */
201
+ export type ParameterBounds = {
202
+ readonly min?: string | number;
203
+ readonly max?: string | number;
184
204
  } | {
185
- readonly kind: "person";
186
- readonly role: string;
187
- readonly seat: string;
188
- readonly signature: string;
205
+ readonly allowed: readonly (string | number | boolean)[];
189
206
  };
190
- export interface DecisionBody {
207
+ export interface RuleParameter1_1 extends RuleParameter {
208
+ readonly bounds?: ParameterBounds;
209
+ }
210
+ export interface Criterion1_1 extends Criterion {
211
+ readonly subject?: Subject;
212
+ }
213
+ export interface RuleRef {
214
+ readonly rule: string;
215
+ readonly version?: number;
216
+ }
217
+ export interface Givens {
218
+ readonly area?: {
219
+ readonly text: string;
220
+ readonly anywhere?: boolean;
221
+ readonly countries?: readonly string[];
222
+ readonly places?: readonly string[];
223
+ };
224
+ readonly spaces?: {
225
+ readonly text: string;
226
+ readonly kinds?: readonly (typeof SPACE_KINDS)[number][];
227
+ readonly places?: readonly string[];
228
+ };
229
+ readonly capitals?: {
230
+ readonly text: string;
231
+ readonly needs?: readonly {
232
+ readonly kind: (typeof CAPITAL_KINDS)[number];
233
+ readonly what: string;
234
+ }[];
235
+ };
236
+ readonly culture?: {
237
+ readonly text: string;
238
+ readonly codes?: readonly {
239
+ readonly title: string;
240
+ readonly url?: string;
241
+ }[];
242
+ readonly languages?: readonly string[];
243
+ };
244
+ readonly economy?: {
245
+ readonly text: string;
246
+ readonly level?: (typeof ECONOMY_LEVELS)[number];
247
+ };
248
+ readonly time?: {
249
+ readonly text: string;
250
+ readonly lasts?: string;
251
+ readonly renews?: string;
252
+ };
253
+ readonly relations?: {
254
+ readonly text: string;
255
+ readonly recognises?: readonly RuleRef[];
256
+ readonly within?: readonly {
257
+ readonly id: string;
258
+ }[];
259
+ };
260
+ }
261
+ /** Every rule has an address (d85(c)). */
262
+ export interface RuleAddress {
263
+ /** ISIC Revision 5: a section (A–V) or a two-digit division. */
264
+ readonly sector: {
265
+ readonly classification: "ISIC";
266
+ readonly revision: "5";
267
+ readonly code: string;
268
+ };
269
+ readonly anchorFamily: (typeof ANCHOR_FAMILIES)[number];
270
+ readonly authority: {
271
+ readonly kind: (typeof AUTHORITY_KINDS)[number];
272
+ readonly name?: string;
273
+ readonly url?: string;
274
+ };
275
+ readonly journey: (typeof JOURNEYS)[number];
276
+ /** The seven givens. A rule is complete when all seven are answered. */
277
+ readonly givens: Givens;
278
+ }
279
+ export interface RuleBody1_1 extends Omit<RuleBody, "parameters" | "criteria"> {
280
+ readonly parameters?: Readonly<Record<string, RuleParameter1_1>>;
281
+ readonly criteria: readonly Criterion1_1[];
282
+ readonly address?: RuleAddress;
283
+ /** Published for reading and comment, never decided under. An incomplete rule publishes only as a draft. */
284
+ readonly draft?: boolean;
285
+ }
286
+ export declare const RULE_ADDRESS_SCHEMA: ObjectSchema;
287
+ export declare const CRITERION_1_1_SCHEMA: ObjectSchema;
288
+ export declare const KASH_RULE_1_1_BODY_SCHEMA: ObjectSchema;
289
+ export declare const KASH_RULE_1_1_LEXICON: LexiconDef;
290
+ export declare const KASH_ADOPTION_NSID: "kash.adoption";
291
+ export declare const KASH_ADOPTION_ID: "kash.adoption@1.0.0";
292
+ export interface AdoptionBody {
293
+ /** `did:kash:<anchor>/adoption/<slug>`. */
294
+ readonly id: string;
295
+ /** The adopting organisation — the anchor whose door decides under it. */
296
+ readonly anchor: string;
191
297
  readonly rule: {
192
298
  readonly id: string;
193
299
  readonly version: number;
194
300
  readonly hash: string;
195
301
  };
196
- readonly outcome: DecisionOutcome;
197
- /** Codes from the rule's reasons. At least one — node rule 11. */
198
- readonly reasons: readonly string[];
199
- readonly rows: {
200
- readonly fired: readonly string[];
201
- readonly missing: readonly string[];
202
- };
203
- /** SHA-256 hex of each receipt relied on. Never the receipt. */
204
- readonly reliedOn: readonly string[];
205
- readonly decidedBy: DecidedBy;
206
- readonly automatic: boolean;
207
- /** A refusal or a partial grant names the unmet criterion and that the receipts were read (P3). */
208
- readonly refusal?: {
209
- readonly unmet: readonly string[];
210
- readonly receiptsRead: true;
211
- };
212
- readonly decidedAt: string;
213
- readonly contestUntil: string;
302
+ /** Local values for the parameters the rule bounds — nothing else. */
303
+ readonly parameters: Readonly<Record<string, string | number | boolean>>;
304
+ /** It renews and ends, no later than the rule (d43). */
305
+ readonly dates: {
306
+ readonly adopted: string;
307
+ readonly renewBy: string;
308
+ readonly endsAt: string;
309
+ };
214
310
  readonly practice?: boolean;
215
311
  }
216
- export declare const KASH_DECISION_BODY_SCHEMA: ObjectSchema;
217
- export declare const KASH_DECISION_LEXICON: LexiconDef;
312
+ export declare const KASH_ADOPTION_BODY_SCHEMA: ObjectSchema;
313
+ export declare const KASH_ADOPTION_LEXICON: LexiconDef;
314
+ /** Every door lexicon: the rule at 1.0.0 and 1.1.0, and the adoption. All public and organisation-authored (d59). */
218
315
  export declare const DOOR_LEXICONS: readonly LexiconDef[];
219
- /**
220
- * NSIDs whose records belong to a person and are never published. muffler's
221
- * guard (KS-N1) refuses them; d59: muffler and the lexicons publish public,
222
- * organisation-authored records only.
223
- */
224
- export declare const PERSONAL_LEXICONS: readonly string[];
225
316
  //# sourceMappingURL=door.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"door.d.ts","sourceRoot":"","sources":["../../src/extensions/door.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"door.d.ts","sourceRoot":"","sources":["../../src/extensions/door.ts"],"names":[],"mappings":"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"}
@@ -11,18 +11,27 @@
11
11
  * organisation-authored. Signed by its author as a DSSE envelope
12
12
  * (`application/vnd.kash.rule+json`).
13
13
  *
14
- * kash.decision@1.0.0
15
- * The decision receipt: the outcome under one version of a rule, with its
16
- * reasons, the rows that fired and the hashes of the receipts it relied on —
17
- * never their content. Signed by the deciding organisation as an SD-JWT VC
18
- * (`https://kashscript.com/vct/decision/1`) to the person, who keeps it.
19
- * **It is the person's record, so it is never published** — it is listed in
20
- * `PERSONAL_LEXICONS`, which muffler's guard refuses.
14
+ * kash.rule@1.1.0 (KS-Q1b; ECOSYSTEM d85(b)–(c))
15
+ * The same rule with its **address** — sector (ISIC Revision 5), anchor
16
+ * family, authority, journey and the seven givens — a **subject** on each
17
+ * criterion, **bounds** on the parameters an adopter may set, and `draft`.
18
+ * Every new field is optional, so every 1.0.0 body is a 1.1.0 body.
21
19
  *
22
- * Both shapes are closed: a field this schema does not name is refused, so
23
- * neither can carry a score, a person's identity or a receipt's content.
24
- * Meaning (the floor's refusals, the FEEL check, the decision's routing rules)
25
- * is checked by `@kashscript/predicate`; this extension is the shape.
20
+ * kash.adoption@1.0.0
21
+ * An anchor — an organisation — adopts one version of a rule with its own
22
+ * values for the parameters the rule bounds. Public, signed by the anchor
23
+ * as DSSE (`application/vnd.kash.adoption+json`). An adoption is the
24
+ * anchor's pact (d85(d)): rulebooks written once, executed locally.
25
+ *
26
+ * Every shape is closed: a field this schema does not name is refused, so none
27
+ * can carry a score or a person's identity. Meaning — the floor's refusals, the
28
+ * FEEL check, bounds, completeness — is checked by `@kashscript/predicate`;
29
+ * this extension is the shape.
30
+ *
31
+ * **The decision receipt is not here** (since 0.3.0): it is the person's own
32
+ * record, a credential they hold, so its schema lives with the package that
33
+ * issues and checks it — `@kashscript/predicate/decision`. d59 makes lexicons
34
+ * the home of public, organisation-authored records only.
26
35
  *
27
36
  * Import path: `@kashscript/lexicons/extensions/door`.
28
37
  */
@@ -123,36 +132,80 @@ export const KASH_RULE_LEXICON = {
123
132
  title: "A door's rule",
124
133
  description: "What a door decides, why, who decides, the reasons it may give, its contest window, renewal and end dates, and its criteria — each an OpenID4VP 1.0 DCQL query plus a FEEL condition. Public, organisation-authored, signed by its author.",
125
134
  };
126
- /* ── kash.decision@1.0.0 ───────────────────────────────────────────── */
127
- export const KASH_DECISION_NSID = "kash.decision";
128
- export const KASH_DECISION_ID = "kash.decision@1.0.0";
129
- export const KASH_DECISION_BODY_SCHEMA = S.object({
130
- rule: S.object({ id: KASH_RULE_BODY_SCHEMA.properties.id, version: S.number({ integer: true, min: 1 }), hash: HEX64 }, ["id", "version", "hash"]),
131
- outcome: S.enum(...DECISION_OUTCOMES),
132
- reasons: S.array(SLUG, { minItems: 1, maxItems: 32 }),
133
- rows: S.object({ fired: S.array(SLUG, { maxItems: 32 }), missing: S.array(SLUG, { maxItems: 32 }) }, ["fired", "missing"]),
134
- reliedOn: S.array(HEX64, { maxItems: 256 }),
135
- decidedBy: S.union(S.object({ kind: S.literal("standing"), standing: S.string({ pattern: /^standing:did:kash:[1-9A-HJ-NP-Za-km-z]{32,48}$/ }) }, ["kind", "standing"]), S.object({ kind: S.literal("person"), role: TEXT(64), seat: DID, signature: S.string({ pattern: /^[A-Za-z0-9_-]+\.\.[A-Za-z0-9_-]+$/, maxLength: 1024 }) }, ["kind", "role", "seat", "signature"])),
136
- automatic: S.boolean(),
137
- refusal: S.optional(S.object({ unmet: S.array(SLUG, { minItems: 1, maxItems: 32 }), receiptsRead: S.literal(true) }, ["unmet", "receiptsRead"])),
138
- decidedAt: ISO,
139
- contestUntil: ISO,
135
+ /* ── kash.rule@1.1.0 — the address, subjects, bounds, drafts ───────── */
136
+ export const KASH_RULE_1_1_ID = "kash.rule@1.1.0";
137
+ /** What a criterion is about. d85(b) rule 1 binds when the subject is a person (or an organisation's people). */
138
+ export const SUBJECTS = ["person", "organisation", "product", "place"];
139
+ export const ANCHOR_FAMILIES = ["movement", "knowledge", "work", "community"];
140
+ export const AUTHORITY_KINDS = ["floor", "law", "standard", "institution", "community"];
141
+ export const JOURNEYS = ["move", "learn", "earn-and-spend", "live", "leisure"];
142
+ export const GIVENS = ["area", "spaces", "capitals", "culture", "economy", "time", "relations"];
143
+ export const SPACE_KINDS = ["premises", "workplace", "campus", "site", "vehicle", "home", "public-space", "online"];
144
+ export const CAPITAL_KINDS = ["people", "systems", "resources"];
145
+ export const ECONOMY_LEVELS = ["primary", "secondary", "tertiary", "quaternary", "quinary", "uncounted"];
146
+ const VALUE = S.union(S.string({ maxLength: 256 }), S.number(), S.boolean());
147
+ const PLACE_REF = S.string({ pattern: /^did:kash:[1-9A-HJ-NP-Za-km-z]{32,48}\/place\/[a-z0-9][a-z0-9-]{0,62}$/ });
148
+ const DURATION = S.string({ pattern: /^P(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(\d+H)?(\d+M)?(\d+(\.\d+)?S)?)?$/ });
149
+ const RULE_ID = KASH_RULE_BODY_SCHEMA.properties.id;
150
+ const GIVEN_TEXT = TEXT(600);
151
+ const PARAMETER_1_1 = S.object({
152
+ type: INPUT_TYPE,
153
+ value: S.optional(VALUE),
154
+ sealed: S.optional(HEX64),
155
+ bounds: S.optional(S.union(S.object({ min: S.optional(S.union(S.string({ maxLength: 64 }), S.number())), max: S.optional(S.union(S.string({ maxLength: 64 }), S.number())) }), S.object({ allowed: S.array(VALUE, { minItems: 1, maxItems: 64 }) }, ["allowed"]))),
156
+ }, ["type"]);
157
+ const GIVENS_SCHEMA = S.object({
158
+ area: S.optional(S.object({ text: GIVEN_TEXT, anywhere: S.optional(S.boolean()), countries: S.optional(S.array(S.string({ pattern: /^[A-Z]{2}$/ }), { minItems: 1, maxItems: 64 })), places: S.optional(S.array(PLACE_REF, { minItems: 1, maxItems: 64 })) }, ["text"])),
159
+ spaces: S.optional(S.object({ text: GIVEN_TEXT, kinds: S.optional(S.array(S.enum(...SPACE_KINDS), { minItems: 1, maxItems: 8 })), places: S.optional(S.array(PLACE_REF, { minItems: 1, maxItems: 64 })) }, ["text"])),
160
+ capitals: S.optional(S.object({ text: GIVEN_TEXT, needs: S.optional(S.array(S.object({ kind: S.enum(...CAPITAL_KINDS), what: TEXT(200) }, ["kind", "what"]), { minItems: 1, maxItems: 16 })) }, ["text"])),
161
+ culture: S.optional(S.object({ text: GIVEN_TEXT, codes: S.optional(S.array(S.object({ title: TEXT(200), url: S.optional(S.string({ format: "url" })) }, ["title"]), { minItems: 1, maxItems: 16 })), languages: S.optional(S.array(S.string({ format: "bcp47" }), { minItems: 1, maxItems: 16 })) }, ["text"])),
162
+ economy: S.optional(S.object({ text: GIVEN_TEXT, level: S.optional(S.enum(...ECONOMY_LEVELS)) }, ["text"])),
163
+ time: S.optional(S.object({ text: GIVEN_TEXT, lasts: S.optional(DURATION), renews: S.optional(DURATION) }, ["text"])),
164
+ relations: S.optional(S.object({ text: GIVEN_TEXT, recognises: S.optional(S.array(S.object({ rule: RULE_ID, version: S.optional(S.number({ integer: true, min: 1 })) }, ["rule"]), { minItems: 1, maxItems: 32 })), within: S.optional(S.array(S.object({ id: S.string({ minLength: 1, maxLength: 256 }) }, ["id"]), { minItems: 1, maxItems: 16 })) }, ["text"])),
165
+ });
166
+ export const RULE_ADDRESS_SCHEMA = S.object({
167
+ sector: S.object({ classification: S.literal("ISIC"), revision: S.literal("5"), code: S.string({ pattern: /^([A-V]|\d{2})$/ }) }, ["classification", "revision", "code"]),
168
+ anchorFamily: S.enum(...ANCHOR_FAMILIES),
169
+ authority: S.object({ kind: S.enum(...AUTHORITY_KINDS), name: S.optional(TEXT(120)), url: S.optional(S.string({ format: "url" })) }, ["kind"]),
170
+ journey: S.enum(...JOURNEYS),
171
+ givens: GIVENS_SCHEMA,
172
+ }, ["sector", "anchorFamily", "authority", "journey", "givens"]);
173
+ export const CRITERION_1_1_SCHEMA = S.object({ ...CRITERION_SCHEMA.properties, subject: S.optional(S.enum(...SUBJECTS)) }, CRITERION_SCHEMA.required);
174
+ export const KASH_RULE_1_1_BODY_SCHEMA = S.object({
175
+ ...KASH_RULE_BODY_SCHEMA.properties,
176
+ parameters: S.optional(S.record(PARAMETER_1_1, S.string({ pattern: /^[A-Za-z_][A-Za-z0-9_]{0,63}$/ }))),
177
+ criteria: S.array(CRITERION_1_1_SCHEMA, { minItems: 1, maxItems: 32 }),
178
+ address: S.optional(RULE_ADDRESS_SCHEMA),
179
+ draft: S.optional(S.boolean()),
180
+ }, KASH_RULE_BODY_SCHEMA.required);
181
+ export const KASH_RULE_1_1_LEXICON = {
182
+ id: KASH_RULE_1_1_ID,
183
+ nsid: KASH_RULE_NSID,
184
+ semver: { major: 1, minor: 1, patch: 0 },
185
+ bodySchema: KASH_RULE_1_1_BODY_SCHEMA,
186
+ title: "A door's rule, with its address",
187
+ description: "kash.rule@1.0.0 plus the address (ISIC Rev. 5 sector, anchor family, authority, journey, the seven givens), each criterion's subject, parameter bounds for adopters, and draft. A 1.0.0 body is a 1.1.0 body.",
188
+ };
189
+ /* ── kash.adoption@1.0.0 ───────────────────────────────────────────── */
190
+ export const KASH_ADOPTION_NSID = "kash.adoption";
191
+ export const KASH_ADOPTION_ID = "kash.adoption@1.0.0";
192
+ export const KASH_ADOPTION_BODY_SCHEMA = S.object({
193
+ id: S.string({ pattern: /^did:kash:[1-9A-HJ-NP-Za-km-z]{32,48}\/adoption\/[a-z0-9][a-z0-9-]{0,62}$/ }),
194
+ anchor: DID,
195
+ rule: S.object({ id: RULE_ID, version: S.number({ integer: true, min: 1 }), hash: HEX64 }, ["id", "version", "hash"]),
196
+ parameters: S.record(VALUE, S.string({ pattern: /^[A-Za-z_][A-Za-z0-9_]{0,63}$/ })),
197
+ dates: S.object({ adopted: ISO, renewBy: ISO, endsAt: ISO }, ["adopted", "renewBy", "endsAt"]),
140
198
  practice: S.optional(S.boolean()),
141
- }, ["rule", "outcome", "reasons", "rows", "reliedOn", "decidedBy", "automatic", "decidedAt", "contestUntil"]);
142
- export const KASH_DECISION_LEXICON = {
143
- id: KASH_DECISION_ID,
144
- nsid: KASH_DECISION_NSID,
199
+ }, ["id", "anchor", "rule", "parameters", "dates"]);
200
+ export const KASH_ADOPTION_LEXICON = {
201
+ id: KASH_ADOPTION_ID,
202
+ nsid: KASH_ADOPTION_NSID,
145
203
  semver: { major: 1, minor: 0, patch: 0 },
146
- bodySchema: KASH_DECISION_BODY_SCHEMA,
147
- title: "A decision receipt",
148
- description: "The outcome under one version of a rule, its reasons, the rows that fired and the hashes of the receipts relied on — never their content. The person's own record: signed to them, never published.",
204
+ bodySchema: KASH_ADOPTION_BODY_SCHEMA,
205
+ title: "An anchor's adoption of a rule",
206
+ description: "An organisation adopts one version of a rule with its own values for the parameters the rule bounds. Public, signed by the anchor.",
149
207
  };
150
208
  /* ── bundles ───────────────────────────────────────────────────────── */
151
- export const DOOR_LEXICONS = [KASH_RULE_LEXICON, KASH_DECISION_LEXICON];
152
- /**
153
- * NSIDs whose records belong to a person and are never published. muffler's
154
- * guard (KS-N1) refuses them; d59: muffler and the lexicons publish public,
155
- * organisation-authored records only.
156
- */
157
- export const PERSONAL_LEXICONS = [KASH_DECISION_NSID];
209
+ /** Every door lexicon: the rule at 1.0.0 and 1.1.0, and the adoption. All public and organisation-authored (d59). */
210
+ export const DOOR_LEXICONS = [KASH_RULE_LEXICON, KASH_RULE_1_1_LEXICON, KASH_ADOPTION_LEXICON];
158
211
  //# sourceMappingURL=door.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"door.js","sourceRoot":"","sources":["../../src/extensions/door.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"door.js","sourceRoot":"","sources":["../../src/extensions/door.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kashscript/lexicons",
3
- "version": "0.2.0-alpha.0",
3
+ "version": "0.3.0-alpha.0",
4
4
  "description": "Zero-dependency lexicon framework — envelope, schema DSL, registry, validator. Agnostic core; domain content ships as opt-in extensions.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -11,18 +11,27 @@
11
11
  * organisation-authored. Signed by its author as a DSSE envelope
12
12
  * (`application/vnd.kash.rule+json`).
13
13
  *
14
- * kash.decision@1.0.0
15
- * The decision receipt: the outcome under one version of a rule, with its
16
- * reasons, the rows that fired and the hashes of the receipts it relied on —
17
- * never their content. Signed by the deciding organisation as an SD-JWT VC
18
- * (`https://kashscript.com/vct/decision/1`) to the person, who keeps it.
19
- * **It is the person's record, so it is never published** — it is listed in
20
- * `PERSONAL_LEXICONS`, which muffler's guard refuses.
14
+ * kash.rule@1.1.0 (KS-Q1b; ECOSYSTEM d85(b)–(c))
15
+ * The same rule with its **address** — sector (ISIC Revision 5), anchor
16
+ * family, authority, journey and the seven givens — a **subject** on each
17
+ * criterion, **bounds** on the parameters an adopter may set, and `draft`.
18
+ * Every new field is optional, so every 1.0.0 body is a 1.1.0 body.
21
19
  *
22
- * Both shapes are closed: a field this schema does not name is refused, so
23
- * neither can carry a score, a person's identity or a receipt's content.
24
- * Meaning (the floor's refusals, the FEEL check, the decision's routing rules)
25
- * is checked by `@kashscript/predicate`; this extension is the shape.
20
+ * kash.adoption@1.0.0
21
+ * An anchor — an organisation — adopts one version of a rule with its own
22
+ * values for the parameters the rule bounds. Public, signed by the anchor
23
+ * as DSSE (`application/vnd.kash.adoption+json`). An adoption is the
24
+ * anchor's pact (d85(d)): rulebooks written once, executed locally.
25
+ *
26
+ * Every shape is closed: a field this schema does not name is refused, so none
27
+ * can carry a score or a person's identity. Meaning — the floor's refusals, the
28
+ * FEEL check, bounds, completeness — is checked by `@kashscript/predicate`;
29
+ * this extension is the shape.
30
+ *
31
+ * **The decision receipt is not here** (since 0.3.0): it is the person's own
32
+ * record, a credential they hold, so its schema lives with the package that
33
+ * issues and checks it — `@kashscript/predicate/decision`. d59 makes lexicons
34
+ * the home of public, organisation-authored records only.
26
35
  *
27
36
  * Import path: `@kashscript/lexicons/extensions/door`.
28
37
  */
@@ -316,69 +325,190 @@ export const KASH_RULE_LEXICON: LexiconDef = {
316
325
  "What a door decides, why, who decides, the reasons it may give, its contest window, renewal and end dates, and its criteria — each an OpenID4VP 1.0 DCQL query plus a FEEL condition. Public, organisation-authored, signed by its author.",
317
326
  };
318
327
 
319
- /* ── kash.decision@1.0.0 ───────────────────────────────────────────── */
328
+ /* ── kash.rule@1.1.0 — the address, subjects, bounds, drafts ───────── */
329
+
330
+ export const KASH_RULE_1_1_ID = "kash.rule@1.1.0" as const;
331
+
332
+ /** What a criterion is about. d85(b) rule 1 binds when the subject is a person (or an organisation's people). */
333
+ export const SUBJECTS = ["person", "organisation", "product", "place"] as const;
334
+ export type Subject = (typeof SUBJECTS)[number];
320
335
 
321
- export const KASH_DECISION_NSID = "kash.decision" as const;
322
- export const KASH_DECISION_ID = "kash.decision@1.0.0" as const;
336
+ export const ANCHOR_FAMILIES = ["movement", "knowledge", "work", "community"] as const;
337
+ export const AUTHORITY_KINDS = ["floor", "law", "standard", "institution", "community"] as const;
338
+ export const JOURNEYS = ["move", "learn", "earn-and-spend", "live", "leisure"] as const;
339
+ export const GIVENS = ["area", "spaces", "capitals", "culture", "economy", "time", "relations"] as const;
340
+ export type Given = (typeof GIVENS)[number];
341
+ export const SPACE_KINDS = ["premises", "workplace", "campus", "site", "vehicle", "home", "public-space", "online"] as const;
342
+ export const CAPITAL_KINDS = ["people", "systems", "resources"] as const;
343
+ export const ECONOMY_LEVELS = ["primary", "secondary", "tertiary", "quaternary", "quinary", "uncounted"] as const;
323
344
 
324
- export type DecidedBy =
325
- | { readonly kind: "standing"; readonly standing: string }
326
- | { readonly kind: "person"; readonly role: string; readonly seat: string; readonly signature: string };
345
+ /** Bounds an adopter may set a parameter within: a range, or a list. */
346
+ export type ParameterBounds =
347
+ | { readonly min?: string | number; readonly max?: string | number }
348
+ | { readonly allowed: readonly (string | number | boolean)[] };
327
349
 
328
- export interface DecisionBody {
350
+ export interface RuleParameter1_1 extends RuleParameter {
351
+ readonly bounds?: ParameterBounds;
352
+ }
353
+
354
+ export interface Criterion1_1 extends Criterion {
355
+ readonly subject?: Subject;
356
+ }
357
+
358
+ export interface RuleRef {
359
+ readonly rule: string;
360
+ readonly version?: number;
361
+ }
362
+
363
+ export interface Givens {
364
+ readonly area?: { readonly text: string; readonly anywhere?: boolean; readonly countries?: readonly string[]; readonly places?: readonly string[] };
365
+ readonly spaces?: { readonly text: string; readonly kinds?: readonly (typeof SPACE_KINDS)[number][]; readonly places?: readonly string[] };
366
+ readonly capitals?: { readonly text: string; readonly needs?: readonly { readonly kind: (typeof CAPITAL_KINDS)[number]; readonly what: string }[] };
367
+ readonly culture?: { readonly text: string; readonly codes?: readonly { readonly title: string; readonly url?: string }[]; readonly languages?: readonly string[] };
368
+ readonly economy?: { readonly text: string; readonly level?: (typeof ECONOMY_LEVELS)[number] };
369
+ readonly time?: { readonly text: string; readonly lasts?: string; readonly renews?: string };
370
+ readonly relations?: { readonly text: string; readonly recognises?: readonly RuleRef[]; readonly within?: readonly { readonly id: string }[] };
371
+ }
372
+
373
+ /** Every rule has an address (d85(c)). */
374
+ export interface RuleAddress {
375
+ /** ISIC Revision 5: a section (A–V) or a two-digit division. */
376
+ readonly sector: { readonly classification: "ISIC"; readonly revision: "5"; readonly code: string };
377
+ readonly anchorFamily: (typeof ANCHOR_FAMILIES)[number];
378
+ readonly authority: { readonly kind: (typeof AUTHORITY_KINDS)[number]; readonly name?: string; readonly url?: string };
379
+ readonly journey: (typeof JOURNEYS)[number];
380
+ /** The seven givens. A rule is complete when all seven are answered. */
381
+ readonly givens: Givens;
382
+ }
383
+
384
+ export interface RuleBody1_1 extends Omit<RuleBody, "parameters" | "criteria"> {
385
+ readonly parameters?: Readonly<Record<string, RuleParameter1_1>>;
386
+ readonly criteria: readonly Criterion1_1[];
387
+ readonly address?: RuleAddress;
388
+ /** Published for reading and comment, never decided under. An incomplete rule publishes only as a draft. */
389
+ readonly draft?: boolean;
390
+ }
391
+
392
+ const VALUE = S.union(S.string({ maxLength: 256 }), S.number(), S.boolean());
393
+ const PLACE_REF = S.string({ pattern: /^did:kash:[1-9A-HJ-NP-Za-km-z]{32,48}\/place\/[a-z0-9][a-z0-9-]{0,62}$/ });
394
+ const DURATION = S.string({ pattern: /^P(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(\d+H)?(\d+M)?(\d+(\.\d+)?S)?)?$/ });
395
+ const RULE_ID = KASH_RULE_BODY_SCHEMA.properties.id!;
396
+ const GIVEN_TEXT = TEXT(600);
397
+
398
+ const PARAMETER_1_1 = S.object(
399
+ {
400
+ type: INPUT_TYPE,
401
+ value: S.optional(VALUE),
402
+ sealed: S.optional(HEX64),
403
+ bounds: S.optional(
404
+ S.union(
405
+ S.object({ min: S.optional(S.union(S.string({ maxLength: 64 }), S.number())), max: S.optional(S.union(S.string({ maxLength: 64 }), S.number())) }),
406
+ S.object({ allowed: S.array(VALUE, { minItems: 1, maxItems: 64 }) }, ["allowed"]),
407
+ ),
408
+ ),
409
+ },
410
+ ["type"],
411
+ );
412
+
413
+ const GIVENS_SCHEMA = S.object({
414
+ area: S.optional(
415
+ S.object(
416
+ { text: GIVEN_TEXT, anywhere: S.optional(S.boolean()), countries: S.optional(S.array(S.string({ pattern: /^[A-Z]{2}$/ }), { minItems: 1, maxItems: 64 })), places: S.optional(S.array(PLACE_REF, { minItems: 1, maxItems: 64 })) },
417
+ ["text"],
418
+ ),
419
+ ),
420
+ spaces: S.optional(S.object({ text: GIVEN_TEXT, kinds: S.optional(S.array(S.enum(...SPACE_KINDS), { minItems: 1, maxItems: 8 })), places: S.optional(S.array(PLACE_REF, { minItems: 1, maxItems: 64 })) }, ["text"])),
421
+ capitals: S.optional(S.object({ text: GIVEN_TEXT, needs: S.optional(S.array(S.object({ kind: S.enum(...CAPITAL_KINDS), what: TEXT(200) }, ["kind", "what"]), { minItems: 1, maxItems: 16 })) }, ["text"])),
422
+ culture: S.optional(
423
+ S.object(
424
+ { text: GIVEN_TEXT, codes: S.optional(S.array(S.object({ title: TEXT(200), url: S.optional(S.string({ format: "url" })) }, ["title"]), { minItems: 1, maxItems: 16 })), languages: S.optional(S.array(S.string({ format: "bcp47" }), { minItems: 1, maxItems: 16 })) },
425
+ ["text"],
426
+ ),
427
+ ),
428
+ economy: S.optional(S.object({ text: GIVEN_TEXT, level: S.optional(S.enum(...ECONOMY_LEVELS)) }, ["text"])),
429
+ time: S.optional(S.object({ text: GIVEN_TEXT, lasts: S.optional(DURATION), renews: S.optional(DURATION) }, ["text"])),
430
+ relations: S.optional(
431
+ S.object(
432
+ { text: GIVEN_TEXT, recognises: S.optional(S.array(S.object({ rule: RULE_ID, version: S.optional(S.number({ integer: true, min: 1 })) }, ["rule"]), { minItems: 1, maxItems: 32 })), within: S.optional(S.array(S.object({ id: S.string({ minLength: 1, maxLength: 256 }) }, ["id"]), { minItems: 1, maxItems: 16 })) },
433
+ ["text"],
434
+ ),
435
+ ),
436
+ });
437
+
438
+ export const RULE_ADDRESS_SCHEMA: ObjectSchema = S.object(
439
+ {
440
+ sector: S.object({ classification: S.literal("ISIC"), revision: S.literal("5"), code: S.string({ pattern: /^([A-V]|\d{2})$/ }) }, ["classification", "revision", "code"]),
441
+ anchorFamily: S.enum(...ANCHOR_FAMILIES),
442
+ authority: S.object({ kind: S.enum(...AUTHORITY_KINDS), name: S.optional(TEXT(120)), url: S.optional(S.string({ format: "url" })) }, ["kind"]),
443
+ journey: S.enum(...JOURNEYS),
444
+ givens: GIVENS_SCHEMA,
445
+ },
446
+ ["sector", "anchorFamily", "authority", "journey", "givens"],
447
+ );
448
+
449
+ export const CRITERION_1_1_SCHEMA: ObjectSchema = S.object({ ...CRITERION_SCHEMA.properties, subject: S.optional(S.enum(...SUBJECTS)) }, CRITERION_SCHEMA.required);
450
+
451
+ export const KASH_RULE_1_1_BODY_SCHEMA: ObjectSchema = S.object(
452
+ {
453
+ ...KASH_RULE_BODY_SCHEMA.properties,
454
+ parameters: S.optional(S.record(PARAMETER_1_1, S.string({ pattern: /^[A-Za-z_][A-Za-z0-9_]{0,63}$/ }))),
455
+ criteria: S.array(CRITERION_1_1_SCHEMA, { minItems: 1, maxItems: 32 }),
456
+ address: S.optional(RULE_ADDRESS_SCHEMA),
457
+ draft: S.optional(S.boolean()),
458
+ },
459
+ KASH_RULE_BODY_SCHEMA.required,
460
+ );
461
+
462
+ export const KASH_RULE_1_1_LEXICON: LexiconDef = {
463
+ id: KASH_RULE_1_1_ID,
464
+ nsid: KASH_RULE_NSID,
465
+ semver: { major: 1, minor: 1, patch: 0 },
466
+ bodySchema: KASH_RULE_1_1_BODY_SCHEMA,
467
+ title: "A door's rule, with its address",
468
+ description:
469
+ "kash.rule@1.0.0 plus the address (ISIC Rev. 5 sector, anchor family, authority, journey, the seven givens), each criterion's subject, parameter bounds for adopters, and draft. A 1.0.0 body is a 1.1.0 body.",
470
+ };
471
+
472
+ /* ── kash.adoption@1.0.0 ───────────────────────────────────────────── */
473
+
474
+ export const KASH_ADOPTION_NSID = "kash.adoption" as const;
475
+ export const KASH_ADOPTION_ID = "kash.adoption@1.0.0" as const;
476
+
477
+ export interface AdoptionBody {
478
+ /** `did:kash:<anchor>/adoption/<slug>`. */
479
+ readonly id: string;
480
+ /** The adopting organisation — the anchor whose door decides under it. */
481
+ readonly anchor: string;
329
482
  readonly rule: { readonly id: string; readonly version: number; readonly hash: string };
330
- readonly outcome: DecisionOutcome;
331
- /** Codes from the rule's reasons. At least one — node rule 11. */
332
- readonly reasons: readonly string[];
333
- readonly rows: { readonly fired: readonly string[]; readonly missing: readonly string[] };
334
- /** SHA-256 hex of each receipt relied on. Never the receipt. */
335
- readonly reliedOn: readonly string[];
336
- readonly decidedBy: DecidedBy;
337
- readonly automatic: boolean;
338
- /** A refusal or a partial grant names the unmet criterion and that the receipts were read (P3). */
339
- readonly refusal?: { readonly unmet: readonly string[]; readonly receiptsRead: true };
340
- readonly decidedAt: string;
341
- readonly contestUntil: string;
483
+ /** Local values for the parameters the rule bounds — nothing else. */
484
+ readonly parameters: Readonly<Record<string, string | number | boolean>>;
485
+ /** It renews and ends, no later than the rule (d43). */
486
+ readonly dates: { readonly adopted: string; readonly renewBy: string; readonly endsAt: string };
342
487
  readonly practice?: boolean;
343
488
  }
344
489
 
345
- export const KASH_DECISION_BODY_SCHEMA: ObjectSchema = S.object(
490
+ export const KASH_ADOPTION_BODY_SCHEMA: ObjectSchema = S.object(
346
491
  {
347
- rule: S.object({ id: KASH_RULE_BODY_SCHEMA.properties.id!, version: S.number({ integer: true, min: 1 }), hash: HEX64 }, ["id", "version", "hash"]),
348
- outcome: S.enum(...DECISION_OUTCOMES),
349
- reasons: S.array(SLUG, { minItems: 1, maxItems: 32 }),
350
- rows: S.object({ fired: S.array(SLUG, { maxItems: 32 }), missing: S.array(SLUG, { maxItems: 32 }) }, ["fired", "missing"]),
351
- reliedOn: S.array(HEX64, { maxItems: 256 }),
352
- decidedBy: S.union(
353
- S.object({ kind: S.literal("standing"), standing: S.string({ pattern: /^standing:did:kash:[1-9A-HJ-NP-Za-km-z]{32,48}$/ }) }, ["kind", "standing"]),
354
- S.object({ kind: S.literal("person"), role: TEXT(64), seat: DID, signature: S.string({ pattern: /^[A-Za-z0-9_-]+\.\.[A-Za-z0-9_-]+$/, maxLength: 1024 }) }, ["kind", "role", "seat", "signature"]),
355
- ),
356
- automatic: S.boolean(),
357
- refusal: S.optional(S.object({ unmet: S.array(SLUG, { minItems: 1, maxItems: 32 }), receiptsRead: S.literal(true) }, ["unmet", "receiptsRead"])),
358
- decidedAt: ISO,
359
- contestUntil: ISO,
492
+ id: S.string({ pattern: /^did:kash:[1-9A-HJ-NP-Za-km-z]{32,48}\/adoption\/[a-z0-9][a-z0-9-]{0,62}$/ }),
493
+ anchor: DID,
494
+ rule: S.object({ id: RULE_ID, version: S.number({ integer: true, min: 1 }), hash: HEX64 }, ["id", "version", "hash"]),
495
+ parameters: S.record(VALUE, S.string({ pattern: /^[A-Za-z_][A-Za-z0-9_]{0,63}$/ })),
496
+ dates: S.object({ adopted: ISO, renewBy: ISO, endsAt: ISO }, ["adopted", "renewBy", "endsAt"]),
360
497
  practice: S.optional(S.boolean()),
361
498
  },
362
- ["rule", "outcome", "reasons", "rows", "reliedOn", "decidedBy", "automatic", "decidedAt", "contestUntil"],
499
+ ["id", "anchor", "rule", "parameters", "dates"],
363
500
  );
364
501
 
365
- export const KASH_DECISION_LEXICON: LexiconDef = {
366
- id: KASH_DECISION_ID,
367
- nsid: KASH_DECISION_NSID,
502
+ export const KASH_ADOPTION_LEXICON: LexiconDef = {
503
+ id: KASH_ADOPTION_ID,
504
+ nsid: KASH_ADOPTION_NSID,
368
505
  semver: { major: 1, minor: 0, patch: 0 },
369
- bodySchema: KASH_DECISION_BODY_SCHEMA,
370
- title: "A decision receipt",
371
- description:
372
- "The outcome under one version of a rule, its reasons, the rows that fired and the hashes of the receipts relied on — never their content. The person's own record: signed to them, never published.",
506
+ bodySchema: KASH_ADOPTION_BODY_SCHEMA,
507
+ title: "An anchor's adoption of a rule",
508
+ description: "An organisation adopts one version of a rule with its own values for the parameters the rule bounds. Public, signed by the anchor.",
373
509
  };
374
510
 
375
511
  /* ── bundles ───────────────────────────────────────────────────────── */
376
512
 
377
- export const DOOR_LEXICONS: readonly LexiconDef[] = [KASH_RULE_LEXICON, KASH_DECISION_LEXICON];
378
-
379
- /**
380
- * NSIDs whose records belong to a person and are never published. muffler's
381
- * guard (KS-N1) refuses them; d59: muffler and the lexicons publish public,
382
- * organisation-authored records only.
383
- */
384
- export const PERSONAL_LEXICONS: readonly string[] = [KASH_DECISION_NSID];
513
+ /** Every door lexicon: the rule at 1.0.0 and 1.1.0, and the adoption. All public and organisation-authored (d59). */
514
+ export const DOOR_LEXICONS: readonly LexiconDef[] = [KASH_RULE_LEXICON, KASH_RULE_1_1_LEXICON, KASH_ADOPTION_LEXICON];