@nacre.work/api 0.30.0 → 0.31.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.
@@ -0,0 +1,91 @@
1
+ /**
2
+ * `skill` in a delegation's ceiling — and the only file that reads it.
3
+ *
4
+ * The consent screen offers, per layer, "edit this layer's skill", and only on a
5
+ * layer where the person holds `admin`. It is stored as `skill` in that layer's
6
+ * ceiling and is read by `may_write_layer_skill` in docs/skills.md and by
7
+ * nothing else:
8
+ *
9
+ * ```
10
+ * may_write_layer_skill(auth, L) =
11
+ * resolve(person, admin) reaches L
12
+ * ∧ (auth is not a delegation ∨ 'admin' ∈ ceiling(L) ∨ 'skill' ∈ ceiling(L))
13
+ * ```
14
+ *
15
+ * The first clause is the skills adapter's, because it needs the database; the
16
+ * second is `skillCeilingAdmits` below. Three properties hold them, each a case
17
+ * in docs/authz.md:
18
+ *
19
+ * - **`skill` confers nothing the person lacks** (T30). The first clause
20
+ * resolves the *person*, so a delegation whose ceiling holds `skill` on a
21
+ * layer its person only writes is refused, however the consent was stored.
22
+ * - **`skill` confers nothing else** (T29). It is not a `Permission` and
23
+ * `resolve` never sees it: `permissionsOf` strips it from every resolve input
24
+ * `contextFor` builds, so no search, ingest, grant, rename or delete path can
25
+ * be reached through it. A connection whose ceiling is `{skill}` alone
26
+ * resolves to nothing for every verb, which is right — it may edit a skill
27
+ * and do nothing else.
28
+ * - **One reader.** `scripts/check-skill-ceiling.mjs` refuses a comparison
29
+ * against `'skill'` anywhere else in the server's sources, the way
30
+ * `check-admin-gate.mjs` refuses the raw role comparison. A value that grants
31
+ * something is only as safe as the number of places that interpret it.
32
+ *
33
+ * Why a value of its own and not `admin` in the layer's ceiling, which already
34
+ * lets a delegation write the skill: a token from the consent flow reaches REST
35
+ * as well as MCP — `NACRE_JWT_AUDIENCE` is one value — so `admin` would let an
36
+ * MCP client rename the layer, delete it and issue grants on it. Editing what
37
+ * agents are told about a layer is a narrower thing to approve.
38
+ */
39
+ import type { Permission } from '@nacre.work/core';
40
+ import { type AuthContext } from './auth.js';
41
+ /**
42
+ * A value a delegation's ceiling may hold.
43
+ *
44
+ * Every permission, and `skill`. Stored in `oauth_consents.permissions` and
45
+ * `oauth_consent_layers.permissions`, whose CHECKs admit exactly these
46
+ * (migration 0037).
47
+ */
48
+ export type CeilingValue = Permission | 'skill';
49
+ /** Every value a ceiling may hold, in the order the contract lists them. */
50
+ export declare const CEILING_VALUES: readonly CeilingValue[];
51
+ /** Whether a string from a request is a ceiling value. */
52
+ export declare const isCeilingValue: (value: string) => value is CeilingValue;
53
+ /**
54
+ * A ceiling as `resolve` takes it: the permissions in it, and not `skill`.
55
+ *
56
+ * This is what keeps `skill` from conferring anything else. `resolve` refuses
57
+ * a permission outside the ceiling before rule 3, so a ceiling of `{skill}`
58
+ * becomes `[]` here — every verb refused, which is what a connection that may
59
+ * only edit a skill should get from every path that is not the skill's.
60
+ */
61
+ export declare function permissionsOf(values: readonly CeilingValue[]): Permission[];
62
+ /**
63
+ * The second clause of `may_write_layer_skill`: whether the token's ceiling on
64
+ * this layer admits writing its skill.
65
+ *
66
+ * `true` for everything that is not a delegation. Never sufficient on its own —
67
+ * the skills adapter asks it beside `admin` resolved for the person.
68
+ */
69
+ export declare function skillCeilingAdmits(auth: AuthContext, layerId: string): boolean;
70
+ /**
71
+ * The layers on which the ceiling admits writing a skill, or `undefined` for
72
+ * "every layer" — not a delegation, or one with no narrowing whose connection
73
+ * ceiling admits it.
74
+ *
75
+ * For listings, which cannot ask `skillCeilingAdmits` of a layer they have not
76
+ * found yet. An empty array is a real answer: the delegation may write no
77
+ * layer's skill.
78
+ */
79
+ export declare function skillCeilingLayers(auth: AuthContext): readonly string[] | undefined;
80
+ /**
81
+ * Whether a delegation's ceiling admits something that needs `need` — a
82
+ * permission, or `skill` for the one write it stands in for.
83
+ *
84
+ * The MCP catalog's question: a tool the ceiling refuses is left out of
85
+ * `tools/list`. For a permission this is the connection's ceiling, the same
86
+ * predicate the request path asks; for `skill` it is whether any layer's
87
+ * ceiling admits writing a skill, so `update_skill` is offered to a connection
88
+ * that may write one somewhere and to nobody else.
89
+ */
90
+ export declare function ceilingOffers(auth: AuthContext, need: CeilingValue): boolean;
91
+ //# sourceMappingURL=skill-ceiling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-ceiling.d.ts","sourceRoot":"","sources":["../src/skill-ceiling.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AAE/D;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,OAAO,CAAA;AAE/C,4EAA4E;AAC5E,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EAAwC,CAAA;AAE1F,0DAA0D;AAC1D,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,KAAK,IAAI,YACD,CAAA;AAEvD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,UAAU,EAAE,CAE3E;AAsBD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAE9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CASnF;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAM5E"}
@@ -0,0 +1,87 @@
1
+ import { delegationPermits } from './auth.js';
2
+ /** Every value a ceiling may hold, in the order the contract lists them. */
3
+ export const CEILING_VALUES = ['read', 'write', 'admin', 'skill'];
4
+ /** Whether a string from a request is a ceiling value. */
5
+ export const isCeilingValue = (value) => CEILING_VALUES.includes(value);
6
+ /**
7
+ * A ceiling as `resolve` takes it: the permissions in it, and not `skill`.
8
+ *
9
+ * This is what keeps `skill` from conferring anything else. `resolve` refuses
10
+ * a permission outside the ceiling before rule 3, so a ceiling of `{skill}`
11
+ * becomes `[]` here — every verb refused, which is what a connection that may
12
+ * only edit a skill should get from every path that is not the skill's.
13
+ */
14
+ export function permissionsOf(values) {
15
+ return values.filter((v) => v !== 'skill');
16
+ }
17
+ /**
18
+ * Whether `value` is in the ceiling on one layer.
19
+ *
20
+ * The connection's ceiling and the layer's own, both: consent refuses a layer
21
+ * set the connection excludes, so the second is already a subset of the first —
22
+ * and asking both anyway is what keeps a row written some other way from being
23
+ * the one place the rule does not hold. A layer outside a narrowing has no
24
+ * ceiling at all; the delegation does not reach it.
25
+ */
26
+ function inCeiling(auth, layerId, value) {
27
+ const delegation = auth.delegation;
28
+ if (delegation === undefined)
29
+ return true;
30
+ const connection = delegation.permissions;
31
+ if (connection !== undefined && !connection.includes(value))
32
+ return false;
33
+ if (delegation.layers === undefined)
34
+ return true;
35
+ const entry = delegation.layers.find((l) => l.id === layerId);
36
+ if (entry === undefined)
37
+ return false;
38
+ return entry.permissions === undefined || entry.permissions.includes(value);
39
+ }
40
+ /**
41
+ * The second clause of `may_write_layer_skill`: whether the token's ceiling on
42
+ * this layer admits writing its skill.
43
+ *
44
+ * `true` for everything that is not a delegation. Never sufficient on its own —
45
+ * the skills adapter asks it beside `admin` resolved for the person.
46
+ */
47
+ export function skillCeilingAdmits(auth, layerId) {
48
+ return inCeiling(auth, layerId, 'admin') || inCeiling(auth, layerId, 'skill');
49
+ }
50
+ /**
51
+ * The layers on which the ceiling admits writing a skill, or `undefined` for
52
+ * "every layer" — not a delegation, or one with no narrowing whose connection
53
+ * ceiling admits it.
54
+ *
55
+ * For listings, which cannot ask `skillCeilingAdmits` of a layer they have not
56
+ * found yet. An empty array is a real answer: the delegation may write no
57
+ * layer's skill.
58
+ */
59
+ export function skillCeilingLayers(auth) {
60
+ const delegation = auth.delegation;
61
+ if (delegation === undefined)
62
+ return undefined;
63
+ if (delegation.layers === undefined) {
64
+ const connection = delegation.permissions;
65
+ const admits = connection === undefined || connection.includes('admin') || connection.includes('skill');
66
+ return admits ? undefined : [];
67
+ }
68
+ return delegation.layers.filter((l) => skillCeilingAdmits(auth, l.id)).map((l) => l.id);
69
+ }
70
+ /**
71
+ * Whether a delegation's ceiling admits something that needs `need` — a
72
+ * permission, or `skill` for the one write it stands in for.
73
+ *
74
+ * The MCP catalog's question: a tool the ceiling refuses is left out of
75
+ * `tools/list`. For a permission this is the connection's ceiling, the same
76
+ * predicate the request path asks; for `skill` it is whether any layer's
77
+ * ceiling admits writing a skill, so `update_skill` is offered to a connection
78
+ * that may write one somewhere and to nobody else.
79
+ */
80
+ export function ceilingOffers(auth, need) {
81
+ if (need === 'skill') {
82
+ const layers = skillCeilingLayers(auth);
83
+ return layers === undefined || layers.length > 0;
84
+ }
85
+ return delegationPermits(auth, need);
86
+ }
87
+ //# sourceMappingURL=skill-ceiling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-ceiling.js","sourceRoot":"","sources":["../src/skill-ceiling.ts"],"names":[],"mappings":"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"}
package/dist/skills.d.ts CHANGED
@@ -121,15 +121,41 @@ export declare class PostgresSkills implements Skills {
121
121
  */
122
122
  private visibleLayers;
123
123
  /**
124
- * `may_write_layer_skill` in docs/skills.md: `admin` resolved on the layer,
125
- * and for a delegation the layer inside its narrowing for `admin`.
124
+ * `admin` resolved for the **person**, without the token's ceiling.
126
125
  *
127
- * The consent screen's per-layer `skill` box is the second clause of the
128
- * specification's disjunction and arrives with it; until then a delegation
129
- * writes a layer's skill only where its ceiling holds `admin` there, which
130
- * the ordinary consent screen never sets.
126
+ * The first clause of `may_write_layer_skill` in docs/skills.md, and the one
127
+ * place a ceiling is deliberately left out of a resolve input. It is safe for
128
+ * exactly one reason: the second clause, `skillCeilingAdmits`, is asked beside
129
+ * it every time, and that clause *is* the ceiling for this one write — `admin`
130
+ * or `skill` in the layer's. A plan from here is never used for anything else.
131
+ */
132
+ private personAdmin;
133
+ /**
134
+ * `may_write_layer_skill` in docs/skills.md: `admin` resolved on the layer for
135
+ * the person, and a ceiling on that layer holding `admin` or `skill`.
136
+ *
137
+ * `skill` confers nothing the person lacks, because the first clause asks the
138
+ * person; and nothing else, because nothing but `skill-ceiling.ts` reads it.
131
139
  */
132
140
  private mayWriteLayer;
141
+ /**
142
+ * The live layers whose skill a **delegation** may write and could not
143
+ * otherwise see.
144
+ *
145
+ * A connection whose ceiling holds `skill` on a layer and nothing else there
146
+ * resolves to no `read` and no `write`, so `visibleLayers` does not reach the
147
+ * layer — and a skill it may write but cannot read is one it can never write,
148
+ * because a write names the version it was based on. So the layers it may
149
+ * write are visible to it as skills, and as nothing else: the catalog, the
150
+ * documents and the search are all `resolve`'s, which never sees `skill`.
151
+ *
152
+ * Empty for everything that is not a delegation, and that is rule 7 rather
153
+ * than an omission: `admin` implies `read`, so every layer whose skill such a
154
+ * caller may write is visible already.
155
+ */
156
+ private skillWritable;
157
+ /** Every live layer whose skill this caller may see: visible, or writable by its ceiling. */
158
+ private reachableLayers;
133
159
  private mayReadLevel;
134
160
  private mayWriteLevel;
135
161
  private latest;
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAML,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,IAAI,CAAA;AAE1C,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAoD,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AAC9F,OAAO,EAAgB,KAAK,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAG1E,kEAAkE;AAClE,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GACjC;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GACjC;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAExD,qFAAqF;AACrF,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,GAAG,WAAW,CAAA;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAC3B;AAED,sEAAsE;AACtE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,cAAc,GAAG,cAAc,GAAG,OAAO,CAAA;IACrE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAClC;AAED,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAC3B;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE;AAC7F,8EAA8E;GAC5E;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE;AAChC,gDAAgD;GAC9C;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE;AAChC,kEAAkE;GAChE;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEzD,MAAM,WAAW,MAAM;IACrB,+EAA+E;IAC/E,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IAC/C;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;KAAE,CAAC,CAAA;IACpH,2EAA2E;IAC3E,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IACzE,2FAA2F;IAC3F,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAA;IAChF,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC,CAAA;IAC7G,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAA;IAC3F,KAAK,CACH,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,UAAU,CAAC,CAAA;IACtB,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CACtH;AAED,6EAA6E;AAC7E,eAAO,MAAM,wBAAwB,QAAY,CAAA;AAuEjD,qBAAa,cAAe,YAAW,MAAM;IAEzC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;gBAFhB,IAAI,EAAE,IAAI,EACV,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,eAAe,CAAC,EAAE,eAAe,YAAA;IAGpD,OAAO,KAAK,KAAK,GAEhB;IAID;;;;;;;OAOG;YACW,aAAa;IA6B3B;;;;;;;;OAQG;YACW,WAAW;IASzB;;;;;;OAMG;YACW,aAAa;IAO3B;;;;;;;;;;;;;;OAcG;YACW,aAAa;IAoB3B,6FAA6F;YAC/E,eAAe;IAM7B,OAAO,CAAC,YAAY,CAWnB;IAED,OAAO,CAAC,aAAa,CASpB;YAIa,MAAM;IAgBpB,OAAO,CAAC,IAAI,CAA6F;IAEnG,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAerD,OAAO,CAAC,KAAK;IAcP,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;KAAE,CAAC;IA4ClG,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAkBzE,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAahF,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;IAoC7G,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;YAanF,EAAE;IAcV,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAOxH,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAwB3H,sFAAsF;YACxE,IAAI;YAiBJ,MAAM;YAoBN,QAAQ;CAsDvB"}
package/dist/skills.js CHANGED
@@ -10,8 +10,9 @@
10
10
  */
11
11
  import { activeResolver, checkSkill, DEFAULT_SKILL, withOrg, } from '@nacre.work/core';
12
12
  import { contextFor } from './adapters.js';
13
- import { administers, administersTenants, delegatedLayers, withinDelegation } from './auth.js';
13
+ import { administers, administersTenants, delegatedLayers } from './auth.js';
14
14
  import { encodeCursor } from './pagination.js';
15
+ import { skillCeilingAdmits, skillCeilingLayers } from './skill-ceiling.js';
15
16
  /** Bytes above which `instructions` carry a pointer rather than the body. */
16
17
  export const INSTRUCTIONS_SKILL_LIMIT = 16 * 1024;
17
18
  const projection = (alias = '') => ['version', 'files', 'name', 'description', 'has_scripts', 'principal', 'surface', 'connection_id', 'restored_from']
@@ -110,23 +111,72 @@ export class PostgresSkills {
110
111
  return new Set(rows.map((r) => r.id));
111
112
  }
112
113
  /**
113
- * `may_write_layer_skill` in docs/skills.md: `admin` resolved on the layer,
114
- * and for a delegation the layer inside its narrowing for `admin`.
114
+ * `admin` resolved for the **person**, without the token's ceiling.
115
115
  *
116
- * The consent screen's per-layer `skill` box is the second clause of the
117
- * specification's disjunction and arrives with it; until then a delegation
118
- * writes a layer's skill only where its ceiling holds `admin` there, which
119
- * the ordinary consent screen never sets.
116
+ * The first clause of `may_write_layer_skill` in docs/skills.md, and the one
117
+ * place a ceiling is deliberately left out of a resolve input. It is safe for
118
+ * exactly one reason: the second clause, `skillCeilingAdmits`, is asked beside
119
+ * it every time, and that clause *is* the ceiling for this one write — `admin`
120
+ * or `skill` in the layer's. A plan from here is never used for anything else.
121
+ */
122
+ async personAdmin(client, auth) {
123
+ const { ceiling, ...person } = await contextFor(client, auth, this.principalsCache);
124
+ void ceiling;
125
+ return activeResolver().resolve(person, 'admin');
126
+ }
127
+ /**
128
+ * `may_write_layer_skill` in docs/skills.md: `admin` resolved on the layer for
129
+ * the person, and a ceiling on that layer holding `admin` or `skill`.
130
+ *
131
+ * `skill` confers nothing the person lacks, because the first clause asks the
132
+ * person; and nothing else, because nothing but `skill-ceiling.ts` reads it.
120
133
  */
121
134
  async mayWriteLayer(client, auth, layerId) {
122
135
  if (administersTenants(auth))
123
136
  return false;
124
- const plan = activeResolver().resolve(await contextFor(client, auth, this.principalsCache), 'admin');
125
- if (plan.kind === 'none')
137
+ if (!skillCeilingAdmits(auth, layerId))
126
138
  return false;
127
- if (plan.kind === 'scoped' && !plan.layers.includes(layerId))
128
- return false;
129
- return withinDelegation(auth, layerId, 'admin');
139
+ const plan = await this.personAdmin(client, auth);
140
+ return plan.kind === 'all' || (plan.kind === 'scoped' && plan.layers.includes(layerId));
141
+ }
142
+ /**
143
+ * The live layers whose skill a **delegation** may write and could not
144
+ * otherwise see.
145
+ *
146
+ * A connection whose ceiling holds `skill` on a layer and nothing else there
147
+ * resolves to no `read` and no `write`, so `visibleLayers` does not reach the
148
+ * layer — and a skill it may write but cannot read is one it can never write,
149
+ * because a write names the version it was based on. So the layers it may
150
+ * write are visible to it as skills, and as nothing else: the catalog, the
151
+ * documents and the search are all `resolve`'s, which never sees `skill`.
152
+ *
153
+ * Empty for everything that is not a delegation, and that is rule 7 rather
154
+ * than an omission: `admin` implies `read`, so every layer whose skill such a
155
+ * caller may write is visible already.
156
+ */
157
+ async skillWritable(client, auth) {
158
+ if (auth.delegation === undefined || administersTenants(auth))
159
+ return new Set();
160
+ const admitted = skillCeilingLayers(auth);
161
+ if (admitted !== undefined && admitted.length === 0)
162
+ return new Set();
163
+ const plan = await this.personAdmin(client, auth);
164
+ if (plan.kind === 'none')
165
+ return new Set();
166
+ const reached = plan.kind === 'all'
167
+ ? admitted
168
+ : admitted === undefined
169
+ ? plan.layers
170
+ : plan.layers.filter((id) => admitted.includes(id));
171
+ const { rows } = await client.query(`SELECT id FROM layers
172
+ WHERE org_id = $1 AND deleted_at IS NULL AND ($2::uuid[] IS NULL OR id = ANY($2::uuid[]))`, [auth.orgId, reached === undefined ? null : [...reached]]);
173
+ return new Set(rows.map((r) => r.id));
174
+ }
175
+ /** Every live layer whose skill this caller may see: visible, or writable by its ceiling. */
176
+ async reachableLayers(client, auth) {
177
+ const visible = await this.visibleLayers(client, auth);
178
+ const writable = await this.skillWritable(client, auth);
179
+ return writable.size === 0 ? visible : new Set([...visible, ...writable]);
130
180
  }
131
181
  mayReadLevel = async (client, auth, level) => {
132
182
  switch (level.kind) {
@@ -137,7 +187,7 @@ export class PostgresSkills {
137
187
  case 'organization':
138
188
  return !administersTenants(auth);
139
189
  case 'layer':
140
- return (await this.visibleLayers(client, auth)).has(level.layerId);
190
+ return (await this.reachableLayers(client, auth)).has(level.layerId);
141
191
  }
142
192
  };
143
193
  mayWriteLevel = async (client, auth, level) => {
@@ -189,7 +239,7 @@ export class PostgresSkills {
189
239
  async list(auth, page) {
190
240
  const base = withoutFiles(await this.base(auth));
191
241
  const layers = await withOrg(this.pool, auth.orgId, async (client) => {
192
- const visible = await this.visibleLayers(client, auth);
242
+ const visible = await this.reachableLayers(client, auth);
193
243
  if (visible.size === 0)
194
244
  return { items: [], nextCursor: null };
195
245
  // The newest version per layer, and only layers whose newest is live:
@@ -226,7 +276,7 @@ export class PostgresSkills {
226
276
  if (id === undefined)
227
277
  return undefined;
228
278
  // A slug the caller cannot see is a slug that is not there.
229
- return (await this.visibleLayers(client, auth)).has(id) ? id : undefined;
279
+ return (await this.reachableLayers(client, auth)).has(id) ? id : undefined;
230
280
  }, this.scope);
231
281
  }
232
282
  async current(auth, level) {
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nacre.work/api",
3
- "version": "0.30.0",
3
+ "version": "0.31.0",
4
4
  "description": "Nacre REST API and authorization service",
5
5
  "repository": {
6
6
  "type": "git",
@@ -29,7 +29,7 @@
29
29
  "dependencies": {
30
30
  "jose": "^6.2.12",
31
31
  "pg": "^8.23.0",
32
- "@nacre.work/core": "0.30.0"
32
+ "@nacre.work/core": "0.31.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/node": "^26.6.2",