@cat-factory/agents 0.100.0 → 0.102.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/dist/foundationalServices/FoundationalServiceCatalogService.d.ts +74 -28
- package/dist/foundationalServices/FoundationalServiceCatalogService.d.ts.map +1 -1
- package/dist/foundationalServices/FoundationalServiceCatalogService.js +122 -62
- package/dist/foundationalServices/FoundationalServiceCatalogService.js.map +1 -1
- package/dist/foundationalServices/FoundationalServiceSourceService.d.ts +34 -4
- package/dist/foundationalServices/FoundationalServiceSourceService.d.ts.map +1 -1
- package/dist/foundationalServices/FoundationalServiceSourceService.js +150 -40
- package/dist/foundationalServices/FoundationalServiceSourceService.js.map +1 -1
- package/dist/foundationalServices/contract-validation.d.ts +10 -4
- package/dist/foundationalServices/contract-validation.d.ts.map +1 -1
- package/dist/foundationalServices/contract-validation.js +23 -34
- package/dist/foundationalServices/contract-validation.js.map +1 -1
- package/dist/foundationalServices/folder-scan.d.ts +24 -4
- package/dist/foundationalServices/folder-scan.d.ts.map +1 -1
- package/dist/foundationalServices/folder-scan.js +44 -4
- package/dist/foundationalServices/folder-scan.js.map +1 -1
- package/dist/foundationalServices/foundational-catalog.d.ts +9 -5
- package/dist/foundationalServices/foundational-catalog.d.ts.map +1 -1
- package/dist/foundationalServices/foundational-catalog.js +24 -13
- package/dist/foundationalServices/foundational-catalog.js.map +1 -1
- package/dist/foundationalServices/foundational-source.logic.d.ts.map +1 -1
- package/dist/foundationalServices/foundational-source.logic.js +13 -4
- package/dist/foundationalServices/foundational-source.logic.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ApiContractDocument, CreateFoundationalServiceInput, FoundationalService, FoundationalServiceOwnerKind, FoundationalServiceSuppression, ResolvedFoundationalService, UpdateFoundationalServiceInput } from '@cat-factory/contracts';
|
|
2
|
-
import type { ApiContractRepository, Clock, FoundationalServiceRepository, GroupCacheHandle, WorkspaceRepository } from '@cat-factory/kernel';
|
|
2
|
+
import type { ApiContractRepository, Clock, FoundationalServiceRegistry, FoundationalServiceRepository, GroupCacheHandle, WorkspaceRepository } from '@cat-factory/kernel';
|
|
3
3
|
export interface FoundationalServiceCatalogDependencies {
|
|
4
4
|
foundationalServiceRepository: FoundationalServiceRepository;
|
|
5
5
|
apiContractRepository: ApiContractRepository;
|
|
@@ -7,23 +7,35 @@ export interface FoundationalServiceCatalogDependencies {
|
|
|
7
7
|
clock: Clock;
|
|
8
8
|
/** The merged per-workspace catalog cache. Absent (tests) ⇒ every resolve reads through. */
|
|
9
9
|
catalogCache?: GroupCacheHandle<ResolvedFoundationalService[]>;
|
|
10
|
+
/**
|
|
11
|
+
* The deployment's own registered services — the `builtin` tier. Optional and defaulted to an
|
|
12
|
+
* empty registry, so a construction site that omits it resolves the stored tiers exactly as
|
|
13
|
+
* before; a facade injects the SAME instance it registers on.
|
|
14
|
+
*/
|
|
15
|
+
registry?: FoundationalServiceRegistry;
|
|
10
16
|
}
|
|
11
17
|
/**
|
|
12
18
|
* The foundational-services catalog (backend/docs/adr/0031-foundational-services.md): per-tier CRUD
|
|
13
|
-
* plus the merged account ⊕ workspace resolve every design dispatch reads.
|
|
19
|
+
* plus the merged builtin ⊕ account ⊕ workspace resolve every design dispatch reads.
|
|
14
20
|
*
|
|
15
|
-
*
|
|
21
|
+
* Three properties are load-bearing and are why this is a service rather than a repository call:
|
|
16
22
|
*
|
|
17
23
|
* - **The catalog never carries a contract BODY.** `listTier` and `resolve` join the contract
|
|
18
24
|
* MANIFEST (id, format, title, byte size, operation names) onto each service in ONE extra
|
|
19
25
|
* query for the whole tier. The documents are read only by {@link contractsFor}, and only for
|
|
20
26
|
* the ids a caller asks for.
|
|
21
|
-
* - **A
|
|
22
|
-
*
|
|
23
|
-
* account
|
|
27
|
+
* - **A later tier wins by id, and a TOMBSTONE at either stored tier suppresses what it
|
|
28
|
+
* inherits.** That is what lets a board opt out of an org-wide service without an account
|
|
29
|
+
* admin — and an account out of a deployment `builtin` — and it is why the merge reads both
|
|
30
|
+
* stored tiers `includeDeleted`.
|
|
31
|
+
* - **The `builtin` tier has no rows.** It is read from the app-owned
|
|
32
|
+
* {@link FoundationalServiceRegistry} on every resolve, so a deployment's catalog is present
|
|
33
|
+
* from a workspace's first request and cannot drift from the code that declares it.
|
|
24
34
|
*/
|
|
25
35
|
export declare class FoundationalServiceCatalogService {
|
|
26
36
|
private readonly deps;
|
|
37
|
+
/** The deployment's registered services; an empty registry when a facade wired none. */
|
|
38
|
+
private readonly registry;
|
|
27
39
|
constructor(deps: FoundationalServiceCatalogDependencies);
|
|
28
40
|
/** One tier's registered services, contract manifests joined on. Raw — not merged. */
|
|
29
41
|
listTier(ownerKind: FoundationalServiceOwnerKind, ownerId: string): Promise<FoundationalService[]>;
|
|
@@ -38,55 +50,89 @@ export declare class FoundationalServiceCatalogService {
|
|
|
38
50
|
*/
|
|
39
51
|
remove(ownerKind: FoundationalServiceOwnerKind, ownerId: string, serviceId: string): Promise<void>;
|
|
40
52
|
/**
|
|
41
|
-
* Suppress an
|
|
42
|
-
*
|
|
43
|
-
* here rather than through {@link create},
|
|
44
|
-
* something that is never rendered.
|
|
53
|
+
* Suppress an INHERITED service at one tier by writing a tombstone there: an account service
|
|
54
|
+
* for a board, a deployment `builtin` for either. The row carries no content of its own — it
|
|
55
|
+
* exists only to lose the merge — so it is written here rather than through {@link create},
|
|
56
|
+
* which would demand a name and summary for something that is never rendered.
|
|
57
|
+
*
|
|
58
|
+
* Both scopes are served because both now inherit. Leaving it workspace-only once the
|
|
59
|
+
* deployment tier existed would make a registered service un-opt-out-able for a whole account
|
|
60
|
+
* that has one board too many to do it per board.
|
|
45
61
|
*
|
|
46
62
|
* Both refusals are deliberate. An id the merged catalog does not carry would tombstone
|
|
47
|
-
* NOTHING today and silently swallow whatever
|
|
48
|
-
* suppression nobody could later explain. An id
|
|
49
|
-
*
|
|
50
|
-
*
|
|
63
|
+
* NOTHING today and silently swallow whatever a lower tier registers under it tomorrow — a
|
|
64
|
+
* suppression nobody could later explain. An id this tier owns a row for is not inherited at
|
|
65
|
+
* all: tombstoning it there would read as a delete while destroying the authored description
|
|
66
|
+
* and contracts, which is {@link remove}'s job and not this one's.
|
|
51
67
|
*/
|
|
52
|
-
|
|
68
|
+
suppress(ownerKind: FoundationalServiceOwnerKind, ownerId: string, serviceId: string): Promise<void>;
|
|
53
69
|
/**
|
|
54
|
-
* What a
|
|
70
|
+
* What a tier is currently suppressing. The merged catalog cannot answer this — a suppressed
|
|
55
71
|
* id is precisely one it no longer carries — so the tombstones are read directly and joined
|
|
56
|
-
* against
|
|
72
|
+
* against what this tier inherits for identity.
|
|
57
73
|
*
|
|
58
74
|
* `inherited: false` is the case worth keeping distinct: the tombstone shadows nothing today,
|
|
59
|
-
* because the
|
|
75
|
+
* because the tier below withdrew the service or because the row is the remains of this tier
|
|
60
76
|
* DELETING its own registration. Collapsing the two would tell an operator a capability is
|
|
61
77
|
* being withheld when there is none to withhold.
|
|
62
78
|
*/
|
|
63
|
-
listSuppressions(
|
|
79
|
+
listSuppressions(ownerKind: FoundationalServiceOwnerKind, ownerId: string): Promise<FoundationalServiceSuppression[]>;
|
|
64
80
|
/**
|
|
65
|
-
*
|
|
81
|
+
* The identity of everything a tier INHERITS: the merge as the tier BELOW it resolves it.
|
|
82
|
+
*
|
|
83
|
+
* Deliberately the same {@link loadTierView} the merge and {@link suppress} run on, rather than
|
|
84
|
+
* a second walk over builtins + account rows. Inheritance is a precedence question, and the
|
|
85
|
+
* tombstone half of that precedence is easy to leave out of a hand-rolled second copy — which
|
|
86
|
+
* is exactly what happened: reading the account's LIVE rows beside the registry made a builtin
|
|
87
|
+
* the account had already suppressed still look inherited by every board under it, so a board's
|
|
88
|
+
* own opt-out claimed to be shadowing a service no board could see. `inherited` is the one
|
|
89
|
+
* thing this list has to be right about, since it is the difference between "a capability is
|
|
90
|
+
* being withheld" and "there is none to withhold".
|
|
91
|
+
*
|
|
92
|
+
* The cost is one manifest read whose contracts nothing here uses. That is the correct trade
|
|
93
|
+
* for a rare, human-driven settings read: a second precedence implementation is a standing
|
|
94
|
+
* invitation for the two to disagree again, and only one of them is the one agents resolve.
|
|
95
|
+
*/
|
|
96
|
+
private inheritedIdentities;
|
|
97
|
+
/**
|
|
98
|
+
* Undo a suppression: DROP this tier's tombstone so the inherited service is offered again.
|
|
66
99
|
*
|
|
67
100
|
* The row is deleted rather than un-tombstoned because a tombstone carries no name, summary or
|
|
68
|
-
* contracts — clearing its `deletedAt` would revive it as an EMPTY
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
101
|
+
* contracts — clearing its `deletedAt` would revive it as an EMPTY override that wins the
|
|
102
|
+
* merge, which is a worse outcome than the suppression it was meant to undo. It is also why a
|
|
103
|
+
* LIVE row is refused with a 404 rather than deleted: the caller asked to lift a suppression,
|
|
104
|
+
* and this tier is not suppressing anything.
|
|
72
105
|
*/
|
|
73
|
-
restoreInherited(
|
|
106
|
+
restoreInherited(ownerKind: FoundationalServiceOwnerKind, ownerId: string, serviceId: string): Promise<void>;
|
|
74
107
|
/** The merged catalog a workspace's agents see, cached per workspace. */
|
|
75
108
|
resolve(workspaceId: string): Promise<ResolvedFoundationalService[]>;
|
|
76
109
|
/**
|
|
77
110
|
* The LAZY contract read: full documents for the named services, resolved against the same
|
|
78
|
-
* account ⊕ workspace precedence the catalog uses. One batched query per
|
|
79
|
-
* per-service read — and an empty `serviceIds` returns `[]` without touching
|
|
111
|
+
* builtin ⊕ account ⊕ workspace precedence the catalog uses. One batched query per stored
|
|
112
|
+
* tier — never a per-service read — and an empty `serviceIds` returns `[]` without touching
|
|
113
|
+
* the store.
|
|
80
114
|
*
|
|
81
115
|
* Precedence matters here as much as in the catalog: a workspace that overrode a service
|
|
82
116
|
* must hand out ITS documents, or the design would be reviewed against the org's spec while
|
|
83
|
-
* the code is written against the board's.
|
|
117
|
+
* the code is written against the board's. A `builtin` winner's documents come from the
|
|
118
|
+
* registry, which is the only place they exist.
|
|
84
119
|
*/
|
|
85
120
|
contractsFor(workspaceId: string, serviceIds: string[]): Promise<Map<string, ApiContractDocument[]>>;
|
|
86
121
|
/** Drop a tier's cached catalog. An account write invalidates every workspace's. */
|
|
87
122
|
invalidate(ownerKind: FoundationalServiceOwnerKind, ownerId: string): Promise<void>;
|
|
88
123
|
private loadCatalog;
|
|
124
|
+
/**
|
|
125
|
+
* The merge as ONE tier sees it — what {@link suppress} decides against. For a workspace that
|
|
126
|
+
* is the full catalog; for an account it is the deployment's registered services under its own
|
|
127
|
+
* rows, since an account has exactly one tier below it and no workspace above it to consult.
|
|
128
|
+
*/
|
|
129
|
+
private loadTierView;
|
|
89
130
|
private require;
|
|
131
|
+
/**
|
|
132
|
+
* Uploaded documents → stored rows. The definition was already refused at the top of the
|
|
133
|
+
* write (`assertValidDefinition`) — validating the SET has to happen before any of it is
|
|
134
|
+
* built, since a set's anchor may be its last document.
|
|
135
|
+
*/
|
|
90
136
|
private buildUploadedContracts;
|
|
91
137
|
}
|
|
92
138
|
//# sourceMappingURL=FoundationalServiceCatalogService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FoundationalServiceCatalogService.d.ts","sourceRoot":"","sources":["../../src/foundationalServices/FoundationalServiceCatalogService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,8BAA8B,EAC9B,mBAAmB,EACnB,4BAA4B,EAC5B,8BAA8B,EAC9B,2BAA2B,EAC3B,8BAA8B,EAC/B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAGV,qBAAqB,EACrB,KAAK,EAEL,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAU5B,MAAM,WAAW,sCAAsC;IACrD,6BAA6B,EAAE,6BAA6B,CAAA;IAC5D,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,KAAK,EAAE,KAAK,CAAA;IACZ,4FAA4F;IAC5F,YAAY,CAAC,EAAE,gBAAgB,CAAC,2BAA2B,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"FoundationalServiceCatalogService.d.ts","sourceRoot":"","sources":["../../src/foundationalServices/FoundationalServiceCatalogService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,8BAA8B,EAC9B,mBAAmB,EACnB,4BAA4B,EAC5B,8BAA8B,EAC9B,2BAA2B,EAC3B,8BAA8B,EAC/B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAGV,qBAAqB,EACrB,KAAK,EAEL,2BAA2B,EAC3B,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAU5B,MAAM,WAAW,sCAAsC;IACrD,6BAA6B,EAAE,6BAA6B,CAAA;IAC5D,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,KAAK,EAAE,KAAK,CAAA;IACZ,4FAA4F;IAC5F,YAAY,CAAC,EAAE,gBAAgB,CAAC,2BAA2B,EAAE,CAAC,CAAA;IAC9D;;;;OAIG;IACH,QAAQ,CAAC,EAAE,2BAA2B,CAAA;CACvC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,iCAAiC;IAIhC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAEtD,YAA6B,IAAI,EAAE,sCAAsC,EAExE;IAED,sFAAsF;IAChF,QAAQ,CACZ,SAAS,EAAE,4BAA4B,EACvC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAOhC;IAED,oCAAoC;IAC9B,MAAM,CACV,SAAS,EAAE,4BAA4B,EACvC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,mBAAmB,CAAC,CAuC9B;IAED,qFAAqF;IAC/E,MAAM,CACV,SAAS,EAAE,4BAA4B,EACvC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,mBAAmB,CAAC,CAoC9B;IAED;;;;OAIG;IACG,MAAM,CACV,SAAS,EAAE,4BAA4B,EACvC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAKf;IAED;;;;;;;;;;;;;;;OAeG;IACG,QAAQ,CACZ,SAAS,EAAE,4BAA4B,EACvC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CA4Cf;IAED;;;;;;;;;OASG;IACG,gBAAgB,CACpB,SAAS,EAAE,4BAA4B,EACvC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,8BAA8B,EAAE,CAAC,CAmB3C;IAED;;;;;;;;;;;;;;;OAeG;YACW,mBAAmB;IAajC;;;;;;;;OAQG;IACG,gBAAgB,CACpB,SAAS,EAAE,4BAA4B,EACvC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAKf;IAED,yEAAyE;IACnE,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAGzE;IAED;;;;;;;;;;OAUG;IACG,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC,CA8B7C;IAED,oFAAoF;IAC9E,UAAU,CAAC,SAAS,EAAE,4BAA4B,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQxF;YAEa,WAAW;IAqBzB;;;;OAIG;YACW,YAAY;YAkBZ,OAAO;IAUrB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;CAgC/B"}
|
|
@@ -1,24 +1,31 @@
|
|
|
1
|
-
import { ConflictError, NotFoundError,
|
|
1
|
+
import { ConflictError, NotFoundError, defaultFoundationalServiceRegistry, summarizeContract, } from '@cat-factory/kernel';
|
|
2
2
|
import { mergeFoundationalTiers, toWire } from './foundational-catalog.js';
|
|
3
|
-
import {
|
|
3
|
+
import { assertValidDefinition } from './contract-validation.js';
|
|
4
4
|
/**
|
|
5
5
|
* The foundational-services catalog (backend/docs/adr/0031-foundational-services.md): per-tier CRUD
|
|
6
|
-
* plus the merged account ⊕ workspace resolve every design dispatch reads.
|
|
6
|
+
* plus the merged builtin ⊕ account ⊕ workspace resolve every design dispatch reads.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* Three properties are load-bearing and are why this is a service rather than a repository call:
|
|
9
9
|
*
|
|
10
10
|
* - **The catalog never carries a contract BODY.** `listTier` and `resolve` join the contract
|
|
11
11
|
* MANIFEST (id, format, title, byte size, operation names) onto each service in ONE extra
|
|
12
12
|
* query for the whole tier. The documents are read only by {@link contractsFor}, and only for
|
|
13
13
|
* the ids a caller asks for.
|
|
14
|
-
* - **A
|
|
15
|
-
*
|
|
16
|
-
* account
|
|
14
|
+
* - **A later tier wins by id, and a TOMBSTONE at either stored tier suppresses what it
|
|
15
|
+
* inherits.** That is what lets a board opt out of an org-wide service without an account
|
|
16
|
+
* admin — and an account out of a deployment `builtin` — and it is why the merge reads both
|
|
17
|
+
* stored tiers `includeDeleted`.
|
|
18
|
+
* - **The `builtin` tier has no rows.** It is read from the app-owned
|
|
19
|
+
* {@link FoundationalServiceRegistry} on every resolve, so a deployment's catalog is present
|
|
20
|
+
* from a workspace's first request and cannot drift from the code that declares it.
|
|
17
21
|
*/
|
|
18
22
|
export class FoundationalServiceCatalogService {
|
|
19
23
|
deps;
|
|
24
|
+
/** The deployment's registered services; an empty registry when a facade wired none. */
|
|
25
|
+
registry;
|
|
20
26
|
constructor(deps) {
|
|
21
27
|
this.deps = deps;
|
|
28
|
+
this.registry = deps.registry ?? defaultFoundationalServiceRegistry();
|
|
22
29
|
}
|
|
23
30
|
/** One tier's registered services, contract manifests joined on. Raw — not merged. */
|
|
24
31
|
async listTier(ownerKind, ownerId) {
|
|
@@ -31,6 +38,7 @@ export class FoundationalServiceCatalogService {
|
|
|
31
38
|
}
|
|
32
39
|
/** Register a service at a tier. */
|
|
33
40
|
async create(ownerKind, ownerId, input) {
|
|
41
|
+
assertValidDefinition(input);
|
|
34
42
|
const existing = await this.deps.foundationalServiceRepository.get(ownerKind, ownerId, input.id);
|
|
35
43
|
// A LIVE row is a conflict; a tombstoned one is revived by this write. Refusing the
|
|
36
44
|
// revival would leave an id permanently unusable after one delete.
|
|
@@ -61,6 +69,7 @@ export class FoundationalServiceCatalogService {
|
|
|
61
69
|
}
|
|
62
70
|
/** Patch a registered service. `contracts`, when present, replaces the whole set. */
|
|
63
71
|
async update(ownerKind, ownerId, serviceId, input) {
|
|
72
|
+
assertValidDefinition(input);
|
|
64
73
|
const existing = await this.require(ownerKind, ownerId, serviceId);
|
|
65
74
|
const now = this.deps.clock.now();
|
|
66
75
|
const record = {
|
|
@@ -96,42 +105,47 @@ export class FoundationalServiceCatalogService {
|
|
|
96
105
|
await this.invalidate(ownerKind, ownerId);
|
|
97
106
|
}
|
|
98
107
|
/**
|
|
99
|
-
* Suppress an
|
|
100
|
-
*
|
|
101
|
-
* here rather than through {@link create},
|
|
102
|
-
* something that is never rendered.
|
|
108
|
+
* Suppress an INHERITED service at one tier by writing a tombstone there: an account service
|
|
109
|
+
* for a board, a deployment `builtin` for either. The row carries no content of its own — it
|
|
110
|
+
* exists only to lose the merge — so it is written here rather than through {@link create},
|
|
111
|
+
* which would demand a name and summary for something that is never rendered.
|
|
112
|
+
*
|
|
113
|
+
* Both scopes are served because both now inherit. Leaving it workspace-only once the
|
|
114
|
+
* deployment tier existed would make a registered service un-opt-out-able for a whole account
|
|
115
|
+
* that has one board too many to do it per board.
|
|
103
116
|
*
|
|
104
117
|
* Both refusals are deliberate. An id the merged catalog does not carry would tombstone
|
|
105
|
-
* NOTHING today and silently swallow whatever
|
|
106
|
-
* suppression nobody could later explain. An id
|
|
107
|
-
*
|
|
108
|
-
*
|
|
118
|
+
* NOTHING today and silently swallow whatever a lower tier registers under it tomorrow — a
|
|
119
|
+
* suppression nobody could later explain. An id this tier owns a row for is not inherited at
|
|
120
|
+
* all: tombstoning it there would read as a delete while destroying the authored description
|
|
121
|
+
* and contracts, which is {@link remove}'s job and not this one's.
|
|
109
122
|
*/
|
|
110
|
-
async
|
|
111
|
-
const existing = await this.deps.foundationalServiceRepository.get(
|
|
123
|
+
async suppress(ownerKind, ownerId, serviceId) {
|
|
124
|
+
const existing = await this.deps.foundationalServiceRepository.get(ownerKind, ownerId, serviceId);
|
|
112
125
|
// Already suppressed: the tombstone IS the whole state, so a retried request has nothing
|
|
113
126
|
// left to do. Returning rather than 404-ing keeps the endpoint safe to retry, and the merge
|
|
114
127
|
// below could not answer this case anyway — a suppressed id is exactly one the merged
|
|
115
128
|
// catalog no longer carries.
|
|
116
129
|
if (existing?.deletedAt)
|
|
117
130
|
return;
|
|
118
|
-
// Deliberately
|
|
119
|
-
//
|
|
120
|
-
//
|
|
121
|
-
//
|
|
122
|
-
//
|
|
123
|
-
//
|
|
124
|
-
const
|
|
131
|
+
// Deliberately the uncached merge: both refusals below are decisions ABOUT persisted state,
|
|
132
|
+
// and a TTL'd merge can be behind it. Reading the cache would 404 an opt-out for a service
|
|
133
|
+
// the account registered moments ago, and — worse — write a tombstone against an id the
|
|
134
|
+
// account has since withdrawn, which is exactly the shadows-nothing row the 404 exists to
|
|
135
|
+
// prevent. This is a rare, human-driven write, so the batched reads it costs are not worth
|
|
136
|
+
// trading for a refusal that can be wrong.
|
|
137
|
+
const merged = await this.loadTierView(ownerKind, ownerId);
|
|
138
|
+
const inherited = merged.find((entry) => entry.id === serviceId);
|
|
125
139
|
if (!inherited)
|
|
126
140
|
throw new NotFoundError('FoundationalService', serviceId);
|
|
127
|
-
if (inherited.tier ===
|
|
128
|
-
throw new ConflictError(`Foundational service '${serviceId}' is registered
|
|
141
|
+
if (inherited.tier === ownerKind) {
|
|
142
|
+
throw new ConflictError(`Foundational service '${serviceId}' is registered at this scope, not inherited`, 'foundational_service_not_inherited', { serviceId });
|
|
129
143
|
}
|
|
130
144
|
const now = this.deps.clock.now();
|
|
131
145
|
await this.deps.foundationalServiceRepository.upsert({
|
|
132
146
|
serviceId,
|
|
133
|
-
ownerKind
|
|
134
|
-
ownerId
|
|
147
|
+
ownerKind,
|
|
148
|
+
ownerId,
|
|
135
149
|
name: '',
|
|
136
150
|
summary: '',
|
|
137
151
|
description: '',
|
|
@@ -143,33 +157,29 @@ export class FoundationalServiceCatalogService {
|
|
|
143
157
|
updatedAt: now,
|
|
144
158
|
deletedAt: now,
|
|
145
159
|
});
|
|
146
|
-
await this.invalidate(
|
|
160
|
+
await this.invalidate(ownerKind, ownerId);
|
|
147
161
|
}
|
|
148
162
|
/**
|
|
149
|
-
* What a
|
|
163
|
+
* What a tier is currently suppressing. The merged catalog cannot answer this — a suppressed
|
|
150
164
|
* id is precisely one it no longer carries — so the tombstones are read directly and joined
|
|
151
|
-
* against
|
|
165
|
+
* against what this tier inherits for identity.
|
|
152
166
|
*
|
|
153
167
|
* `inherited: false` is the case worth keeping distinct: the tombstone shadows nothing today,
|
|
154
|
-
* because the
|
|
168
|
+
* because the tier below withdrew the service or because the row is the remains of this tier
|
|
155
169
|
* DELETING its own registration. Collapsing the two would tell an operator a capability is
|
|
156
170
|
* being withheld when there is none to withhold.
|
|
157
171
|
*/
|
|
158
|
-
async listSuppressions(
|
|
159
|
-
const rows = await this.deps.foundationalServiceRepository.listByOwner(
|
|
172
|
+
async listSuppressions(ownerKind, ownerId) {
|
|
173
|
+
const rows = await this.deps.foundationalServiceRepository.listByOwner(ownerKind, ownerId, true);
|
|
160
174
|
const tombstones = rows.filter((row) => row.deletedAt !== null);
|
|
161
175
|
if (tombstones.length === 0)
|
|
162
176
|
return [];
|
|
163
|
-
const
|
|
164
|
-
const accountRows = accountId
|
|
165
|
-
? await this.deps.foundationalServiceRepository.listByOwner('account', accountId)
|
|
166
|
-
: [];
|
|
167
|
-
const inherited = new Map(accountRows.map((row) => [row.serviceId, row]));
|
|
177
|
+
const inherited = new Map((await this.inheritedIdentities(ownerKind, ownerId)).map((entry) => [entry.id, entry]));
|
|
168
178
|
return tombstones.map((row) => {
|
|
169
179
|
const shadowed = inherited.get(row.serviceId);
|
|
170
180
|
return {
|
|
171
181
|
id: row.serviceId,
|
|
172
|
-
// The inherited
|
|
182
|
+
// The inherited entry's identity when there is one; otherwise whatever the tombstone
|
|
173
183
|
// carries, which is empty for a suppression written against an id this tier never
|
|
174
184
|
// registered — the id is then the only honest name, and it is the one an Architect uses.
|
|
175
185
|
name: shadowed?.name ?? row.name,
|
|
@@ -179,20 +189,47 @@ export class FoundationalServiceCatalogService {
|
|
|
179
189
|
});
|
|
180
190
|
}
|
|
181
191
|
/**
|
|
182
|
-
*
|
|
192
|
+
* The identity of everything a tier INHERITS: the merge as the tier BELOW it resolves it.
|
|
193
|
+
*
|
|
194
|
+
* Deliberately the same {@link loadTierView} the merge and {@link suppress} run on, rather than
|
|
195
|
+
* a second walk over builtins + account rows. Inheritance is a precedence question, and the
|
|
196
|
+
* tombstone half of that precedence is easy to leave out of a hand-rolled second copy — which
|
|
197
|
+
* is exactly what happened: reading the account's LIVE rows beside the registry made a builtin
|
|
198
|
+
* the account had already suppressed still look inherited by every board under it, so a board's
|
|
199
|
+
* own opt-out claimed to be shadowing a service no board could see. `inherited` is the one
|
|
200
|
+
* thing this list has to be right about, since it is the difference between "a capability is
|
|
201
|
+
* being withheld" and "there is none to withhold".
|
|
202
|
+
*
|
|
203
|
+
* The cost is one manifest read whose contracts nothing here uses. That is the correct trade
|
|
204
|
+
* for a rare, human-driven settings read: a second precedence implementation is a standing
|
|
205
|
+
* invitation for the two to disagree again, and only one of them is the one agents resolve.
|
|
206
|
+
*/
|
|
207
|
+
async inheritedIdentities(ownerKind, ownerId) {
|
|
208
|
+
// An account's tier below is the deployment's registry and nothing else.
|
|
209
|
+
if (ownerKind === 'account')
|
|
210
|
+
return this.registry.entries();
|
|
211
|
+
const accountId = await this.deps.workspaceRepository.accountOf(ownerId);
|
|
212
|
+
// A board with no account inherits the deployment tier directly, with nothing able to
|
|
213
|
+
// suppress it in between.
|
|
214
|
+
if (!accountId)
|
|
215
|
+
return this.registry.entries();
|
|
216
|
+
return this.loadTierView('account', accountId);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Undo a suppression: DROP this tier's tombstone so the inherited service is offered again.
|
|
183
220
|
*
|
|
184
221
|
* The row is deleted rather than un-tombstoned because a tombstone carries no name, summary or
|
|
185
|
-
* contracts — clearing its `deletedAt` would revive it as an EMPTY
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
*
|
|
222
|
+
* contracts — clearing its `deletedAt` would revive it as an EMPTY override that wins the
|
|
223
|
+
* merge, which is a worse outcome than the suppression it was meant to undo. It is also why a
|
|
224
|
+
* LIVE row is refused with a 404 rather than deleted: the caller asked to lift a suppression,
|
|
225
|
+
* and this tier is not suppressing anything.
|
|
189
226
|
*/
|
|
190
|
-
async restoreInherited(
|
|
191
|
-
const row = await this.deps.foundationalServiceRepository.get(
|
|
227
|
+
async restoreInherited(ownerKind, ownerId, serviceId) {
|
|
228
|
+
const row = await this.deps.foundationalServiceRepository.get(ownerKind, ownerId, serviceId);
|
|
192
229
|
if (!row || !row.deletedAt)
|
|
193
230
|
throw new NotFoundError('FoundationalServiceSuppression', serviceId);
|
|
194
|
-
await this.deps.foundationalServiceRepository.hardDelete(
|
|
195
|
-
await this.invalidate(
|
|
231
|
+
await this.deps.foundationalServiceRepository.hardDelete(ownerKind, ownerId, serviceId);
|
|
232
|
+
await this.invalidate(ownerKind, ownerId);
|
|
196
233
|
}
|
|
197
234
|
/** The merged catalog a workspace's agents see, cached per workspace. */
|
|
198
235
|
async resolve(workspaceId) {
|
|
@@ -202,12 +239,14 @@ export class FoundationalServiceCatalogService {
|
|
|
202
239
|
}
|
|
203
240
|
/**
|
|
204
241
|
* The LAZY contract read: full documents for the named services, resolved against the same
|
|
205
|
-
* account ⊕ workspace precedence the catalog uses. One batched query per
|
|
206
|
-
* per-service read — and an empty `serviceIds` returns `[]` without touching
|
|
242
|
+
* builtin ⊕ account ⊕ workspace precedence the catalog uses. One batched query per stored
|
|
243
|
+
* tier — never a per-service read — and an empty `serviceIds` returns `[]` without touching
|
|
244
|
+
* the store.
|
|
207
245
|
*
|
|
208
246
|
* Precedence matters here as much as in the catalog: a workspace that overrode a service
|
|
209
247
|
* must hand out ITS documents, or the design would be reviewed against the org's spec while
|
|
210
|
-
* the code is written against the board's.
|
|
248
|
+
* the code is written against the board's. A `builtin` winner's documents come from the
|
|
249
|
+
* registry, which is the only place they exist.
|
|
211
250
|
*/
|
|
212
251
|
async contractsFor(workspaceId, serviceIds) {
|
|
213
252
|
const wanted = [...new Set(serviceIds)].filter(Boolean);
|
|
@@ -231,6 +270,10 @@ export class FoundationalServiceCatalogService {
|
|
|
231
270
|
const tier = tierById.get(id);
|
|
232
271
|
if (!tier)
|
|
233
272
|
continue;
|
|
273
|
+
if (tier === 'builtin') {
|
|
274
|
+
out.set(id, this.registry.documentsFor(id));
|
|
275
|
+
continue;
|
|
276
|
+
}
|
|
234
277
|
const docs = (tier === 'workspace' ? workspaceDocs : accountDocs).filter((doc) => doc.serviceId === id);
|
|
235
278
|
out.set(id, docs.map(documentOf));
|
|
236
279
|
}
|
|
@@ -254,7 +297,7 @@ export class FoundationalServiceCatalogService {
|
|
|
254
297
|
const [workspaceRows, accountRows, workspaceManifest, accountManifest] = await Promise.all([
|
|
255
298
|
this.deps.foundationalServiceRepository.listByOwner('workspace', workspaceId, true),
|
|
256
299
|
accountId
|
|
257
|
-
? this.deps.foundationalServiceRepository.listByOwner('account', accountId)
|
|
300
|
+
? this.deps.foundationalServiceRepository.listByOwner('account', accountId, true)
|
|
258
301
|
: Promise.resolve([]),
|
|
259
302
|
this.deps.apiContractRepository.listManifestByOwner('workspace', workspaceId),
|
|
260
303
|
accountId
|
|
@@ -262,29 +305,46 @@ export class FoundationalServiceCatalogService {
|
|
|
262
305
|
: Promise.resolve([]),
|
|
263
306
|
]);
|
|
264
307
|
return mergeFoundationalTiers({
|
|
308
|
+
builtins: this.registry.entries(),
|
|
265
309
|
accountRows,
|
|
266
310
|
workspaceRows,
|
|
267
311
|
accountManifest: indexManifest(accountManifest),
|
|
268
312
|
workspaceManifest: indexManifest(workspaceManifest),
|
|
269
313
|
});
|
|
270
314
|
}
|
|
315
|
+
/**
|
|
316
|
+
* The merge as ONE tier sees it — what {@link suppress} decides against. For a workspace that
|
|
317
|
+
* is the full catalog; for an account it is the deployment's registered services under its own
|
|
318
|
+
* rows, since an account has exactly one tier below it and no workspace above it to consult.
|
|
319
|
+
*/
|
|
320
|
+
async loadTierView(ownerKind, ownerId) {
|
|
321
|
+
if (ownerKind === 'workspace')
|
|
322
|
+
return this.loadCatalog(ownerId);
|
|
323
|
+
const [accountRows, accountManifest] = await Promise.all([
|
|
324
|
+
this.deps.foundationalServiceRepository.listByOwner('account', ownerId, true),
|
|
325
|
+
this.deps.apiContractRepository.listManifestByOwner('account', ownerId),
|
|
326
|
+
]);
|
|
327
|
+
return mergeFoundationalTiers({
|
|
328
|
+
builtins: this.registry.entries(),
|
|
329
|
+
accountRows,
|
|
330
|
+
workspaceRows: [],
|
|
331
|
+
accountManifest: indexManifest(accountManifest),
|
|
332
|
+
workspaceManifest: new Map(),
|
|
333
|
+
});
|
|
334
|
+
}
|
|
271
335
|
async require(ownerKind, ownerId, serviceId) {
|
|
272
336
|
const record = await this.deps.foundationalServiceRepository.get(ownerKind, ownerId, serviceId);
|
|
273
337
|
if (!record || record.deletedAt)
|
|
274
338
|
throw new NotFoundError('FoundationalService', serviceId);
|
|
275
339
|
return record;
|
|
276
340
|
}
|
|
341
|
+
/**
|
|
342
|
+
* Uploaded documents → stored rows. The definition was already refused at the top of the
|
|
343
|
+
* write (`assertValidDefinition`) — validating the SET has to happen before any of it is
|
|
344
|
+
* built, since a set's anchor may be its last document.
|
|
345
|
+
*/
|
|
277
346
|
buildUploadedContracts(ownerKind, ownerId, serviceId, uploads, now) {
|
|
278
|
-
const seen = new Set();
|
|
279
347
|
return (uploads ?? []).map((upload) => {
|
|
280
|
-
if (seen.has(upload.contractId)) {
|
|
281
|
-
throw new ValidationError(`Duplicate contract id '${upload.contractId}'`, {
|
|
282
|
-
reason: 'duplicate_contract_id',
|
|
283
|
-
contractId: upload.contractId,
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
seen.add(upload.contractId);
|
|
287
|
-
validateUploadedContract(upload);
|
|
288
348
|
const summary = summarizeContract({
|
|
289
349
|
contractId: upload.contractId,
|
|
290
350
|
format: upload.format,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FoundationalServiceCatalogService.js","sourceRoot":"","sources":["../../src/foundationalServices/FoundationalServiceCatalogService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FoundationalServiceCatalogService.js","sourceRoot":"","sources":["../../src/foundationalServices/FoundationalServiceCatalogService.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,6 +73,15 @@ export declare class FoundationalServiceSourceService {
|
|
|
73
73
|
*/
|
|
74
74
|
refreshStale(staleAfterMs: number, limit: number): Promise<number>;
|
|
75
75
|
private runSync;
|
|
76
|
+
/**
|
|
77
|
+
* Log the two coverage outcomes an operator would want to know about, each named for the fix
|
|
78
|
+
* it needs — a truncated walk asks for a narrower link, a missing folder for a corrected one.
|
|
79
|
+
*
|
|
80
|
+
* This is the ONLY standing signal an AUTOREFRESH pass leaves: the sweep discards the sync
|
|
81
|
+
* result, so a folder that vanished upstream reaches a human through this line or not at all.
|
|
82
|
+
* (A manual resync also surfaces both on the SPA's toast.)
|
|
83
|
+
*/
|
|
84
|
+
private warnAboutCoverage;
|
|
76
85
|
/**
|
|
77
86
|
* `folder` mode: ONE service, named on the link, whose contracts are every contract document
|
|
78
87
|
* under the linked folder (and its subfolders when the link says so).
|
|
@@ -99,12 +108,33 @@ export declare class FoundationalServiceSourceService {
|
|
|
99
108
|
* tells a downstream agent how to read it, and a "contract" nobody can interpret is worse in
|
|
100
109
|
* an agent's context than an absent one.
|
|
101
110
|
*
|
|
102
|
-
* A path
|
|
103
|
-
*
|
|
104
|
-
* fails is COUNTED on the report
|
|
105
|
-
* author expected has no other explanation
|
|
111
|
+
* A path that could never yield a format is dropped without a read and without a count — it
|
|
112
|
+
* is a README or a `package.json` beside the specs, not a contract that failed. Everything
|
|
113
|
+
* else that fails is COUNTED on the report and NAMED in the log (see {@link skip}), because a
|
|
114
|
+
* link that produced fewer contracts than its author expected has no other explanation
|
|
115
|
+
* available to them.
|
|
116
|
+
*
|
|
117
|
+
* `admitSupportingModules` relaxes exactly one of those rules, for `files` mode only: a
|
|
118
|
+
* TypeScript module that references no contract library rides along under the format the rest
|
|
119
|
+
* of the set resolved to. A contract module is a module GRAPH — the `defineApiContract` module
|
|
120
|
+
* plus the schema modules it imports — and only the entry point names the library, so without
|
|
121
|
+
* this the linked halves of ONE contract are dropped and a coder is handed imports that point
|
|
122
|
+
* at nothing. It is safe HERE and nowhere else because a `files` link is an explicit list a
|
|
123
|
+
* human wrote: the link plays the same role the `format` field plays on an upload. A `folder`
|
|
124
|
+
* or `directory` scan walks paths nobody named, so it keeps the content-led rule, or one link
|
|
125
|
+
* would sweep a repo's TypeScript into an agent's context as "contracts".
|
|
106
126
|
*/
|
|
107
127
|
private readContracts;
|
|
128
|
+
/**
|
|
129
|
+
* Count one dropped candidate and name it in the log.
|
|
130
|
+
*
|
|
131
|
+
* The count alone answers "did I lose anything?" but never "which file, and why?" — and one
|
|
132
|
+
* reason is undiagnosable without the log line: a DUPLICATE contract id silently keeps the
|
|
133
|
+
* first claimant, so the losing document is absent from the catalog under a name that is
|
|
134
|
+
* present. `debug` rather than `warn` because a thin catalog entry is usually intended (prose
|
|
135
|
+
* and drafts sit beside specs); the count on the sync result is what asks for attention.
|
|
136
|
+
*/
|
|
137
|
+
private skip;
|
|
108
138
|
private writeService;
|
|
109
139
|
private listDir;
|
|
110
140
|
private readFile;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FoundationalServiceSourceService.d.ts","sourceRoot":"","sources":["../../src/foundationalServices/FoundationalServiceSourceService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"FoundationalServiceSourceService.d.ts","sourceRoot":"","sources":["../../src/foundationalServices/FoundationalServiceSourceService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,4BAA4B,EAC5B,yBAAyB,EACzB,+BAA+B,EAC/B,6BAA6B,EAC7B,kCAAkC,EACnC,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAEV,qBAAqB,EACrB,KAAK,EAEL,6BAA6B,EAE7B,mCAAmC,EACnC,YAAY,EACZ,WAAW,EACX,MAAM,EAEP,MAAM,qBAAqB,CAAA;AAsD5B;;;;;GAKG;AACH,MAAM,MAAM,iCAAiC,GAAG,CAC9C,SAAS,EAAE,4BAA4B,EACvC,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;AAE3B,MAAM,WAAW,4CAA4C;IAC3D,mCAAmC,EAAE,mCAAmC,CAAA;IACxE,6BAA6B,EAAE,6BAA6B,CAAA;IAC5D,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,YAAY,EAAE,YAAY,CAAA;IAC1B,qBAAqB,EAAE,iCAAiC,CAAA;IACxD,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,4BAA4B,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAChG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,gCAAgC;IAG/B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAE5B,YAA6B,IAAI,EAAE,4CAA4C,EAE9E;IAED,2DAA2D;IACrD,IAAI,CACR,SAAS,EAAE,4BAA4B,EACvC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAGtC;IAED,wFAAwF;IAClF,IAAI,CACR,SAAS,EAAE,4BAA4B,EACvC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,kCAAkC,GACxC,OAAO,CAAC,yBAAyB,CAAC,CAiCpC;IAED,+DAA+D;IACzD,MAAM,CACV,SAAS,EAAE,4BAA4B,EACvC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAgBf;IAED,yFAAyF;IACnF,MAAM,CACV,SAAS,EAAE,4BAA4B,EACvC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,+BAA+B,CAAC,CAI1C;IAED,kGAAkG;IAC5F,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAQvE;IAED,uFAAuF;IACjF,IAAI,CACR,SAAS,EAAE,4BAA4B,EACvC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,6BAA6B,CAAC,CAExC;IAED;;;;;;;;;OASG;IACG,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBvE;YAIa,OAAO;IA8DrB;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAmBzB;;;OAGG;YACW,eAAe;IA0F7B,mGAAmG;YACrF,kBAAkB;IAWhC,wFAAwF;YAC1E,oBAAoB;IAkFlC,0FAA0F;YAC5E,cAAc;IAiD5B;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;;;;;;;;;;;;;;;;;;;;OAqBG;YACW,aAAa;IA+E3B;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAI;YAkBE,YAAY;IAsC1B,OAAO,CAAC,OAAO;IAcf,OAAO,CAAC,QAAQ;YAcF,OAAO;YAkBP,mBAAmB;CAUlC"}
|