aimeat 1.22.0 → 1.23.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/locales/en.json +2 -0
- package/dist/locales/fi.json +2 -0
- package/dist/public/css/views/profile.css +54 -51
- package/dist/public/js/services/organisms.js +23 -11
- package/dist/public/views/profile/organisms-tab.js +27 -4
- package/dist/src/cli/connect/mcp/local-server.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/local-server.js +44 -1
- package/dist/src/cli/connect/mcp/local-server.js.map +1 -1
- package/dist/src/cli/connect/mcp/tools/workspaces.d.ts +4 -0
- package/dist/src/cli/connect/mcp/tools/workspaces.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/workspaces.js +22 -3
- package/dist/src/cli/connect/mcp/tools/workspaces.js.map +1 -1
- package/dist/src/mcp/catalog/definitions.js +1 -1
- package/dist/src/mcp/catalog/definitions.js.map +1 -1
- package/dist/src/mcp/workspaces.d.ts +4 -0
- package/dist/src/mcp/workspaces.d.ts.map +1 -1
- package/dist/src/mcp/workspaces.js +24 -4
- package/dist/src/mcp/workspaces.js.map +1 -1
- package/dist/src/routes/organisms.d.ts +4 -0
- package/dist/src/routes/organisms.d.ts.map +1 -1
- package/dist/src/routes/organisms.js +6 -2
- package/dist/src/routes/organisms.js.map +1 -1
- package/dist/src/services/manifest-schema.d.ts +21 -4
- package/dist/src/services/manifest-schema.d.ts.map +1 -1
- package/dist/src/services/manifest-schema.js +30 -7
- package/dist/src/services/manifest-schema.js.map +1 -1
- package/dist/src/services/workspace-meta.d.ts +22 -0
- package/dist/src/services/workspace-meta.d.ts.map +1 -1
- package/dist/src/services/workspace-meta.js +34 -6
- package/dist/src/services/workspace-meta.js.map +1 -1
- package/package.json +1 -1
|
@@ -13,7 +13,13 @@ export const MANIFEST_WS_SCHEMA_KEY = 'organism.*.w.*.meta.manifest';
|
|
|
13
13
|
* is open and declared per-manifest in `objectTypes`. A Finnish `kind:'tutkimus'` manifest using
|
|
14
14
|
* `tavoite`/`hypoteesi` validates identically to an English `kind:'project'` one.
|
|
15
15
|
*/
|
|
16
|
+
/** Bump when the seeded schema changes in a way existing nodes must pick up (e.g. the backing
|
|
17
|
+
* enum). seedManifestSchema() upgrades any system-seeded record carrying an older version. */
|
|
18
|
+
export const MANIFEST_SEED_VERSION = 2;
|
|
16
19
|
export const MANIFEST_FORMAT_SCHEMA = {
|
|
20
|
+
// Standard JSON Schema annotation (safe under ajv strict mode) doubling as the seed-version
|
|
21
|
+
// marker — seededVersionOf() parses it to decide whether a stored record needs the upgrade.
|
|
22
|
+
$comment: `aimeat-seed-v${MANIFEST_SEED_VERSION}`,
|
|
17
23
|
type: 'object',
|
|
18
24
|
required: ['manifestVersion', 'id', 'name', 'kind', 'status', 'objectTypes'],
|
|
19
25
|
properties: {
|
|
@@ -46,7 +52,7 @@ export const MANIFEST_FORMAT_SCHEMA = {
|
|
|
46
52
|
schemaRef: { type: 'string' },
|
|
47
53
|
namespace: { type: 'string' },
|
|
48
54
|
cardinality: { enum: ['one', 'many'] },
|
|
49
|
-
backing: { enum: ['memory', 'tasks', '
|
|
55
|
+
backing: { enum: ['memory', 'tasks'] }, // spaces are memory-backed; 'tasks' = pointer to the task system. Files/knowledge attach via Sources or document images — never as a backed space.
|
|
50
56
|
writeRole: { enum: ['owner', 'admin', 'member'] },
|
|
51
57
|
mode: { enum: ['records', 'document'] }, // 'records' (schema-locked form, default) | 'document' (free-form markdown pages)
|
|
52
58
|
append: { type: 'boolean' },
|
|
@@ -59,19 +65,36 @@ export const MANIFEST_FORMAT_SCHEMA = {
|
|
|
59
65
|
policy: { type: 'object' },
|
|
60
66
|
},
|
|
61
67
|
};
|
|
68
|
+
/** Seed version of a stored schema record: parsed from the `$comment: aimeat-seed-vN` marker.
|
|
69
|
+
* Records seeded before versioning existed (no marker) count as v1. */
|
|
70
|
+
export function seededVersionOf(schemaJson) {
|
|
71
|
+
const c = schemaJson?.$comment;
|
|
72
|
+
const m = typeof c === 'string' ? /^aimeat-seed-v(\d+)$/.exec(c) : null;
|
|
73
|
+
return m ? parseInt(m[1], 10) : 1;
|
|
74
|
+
}
|
|
62
75
|
/**
|
|
63
|
-
* Register the manifest-format schema
|
|
64
|
-
*
|
|
65
|
-
*
|
|
76
|
+
* Register the manifest-format schema at startup — and UPGRADE it in place when this build ships
|
|
77
|
+
* a newer seed version (so e.g. the backing-enum narrowing reaches existing nodes' DBs without a
|
|
78
|
+
* manual migration). An operator-customized record (lockedBy ≠ the system identity this is called
|
|
79
|
+
* with) is left alone, the same guarantee the create-only seed gave. Mirrors `seedProfileSchemas`
|
|
80
|
+
* (a global `*`-wildcard prefix schema resolved by `findApplicableSchema`'s wildcard pass).
|
|
66
81
|
*
|
|
67
|
-
* @returns
|
|
82
|
+
* @returns the number of records written (newly seeded + upgraded).
|
|
68
83
|
*/
|
|
69
84
|
export async function seedManifestSchema(storage, lockedBy) {
|
|
70
85
|
const now = new Date().toISOString();
|
|
71
86
|
let seeded = 0;
|
|
72
87
|
for (const keyPattern of [MANIFEST_SCHEMA_KEY, MANIFEST_WS_SCHEMA_KEY]) {
|
|
73
|
-
|
|
74
|
-
|
|
88
|
+
const existing = await storage.getSchema(keyPattern, 'prefix');
|
|
89
|
+
if (existing) {
|
|
90
|
+
if (existing.lockedBy !== lockedBy)
|
|
91
|
+
continue; // operator-customized — hands off
|
|
92
|
+
if (seededVersionOf(existing.schemaJson) >= MANIFEST_SEED_VERSION)
|
|
93
|
+
continue; // already current
|
|
94
|
+
await storage.setSchema({ ...existing, schemaJson: MANIFEST_FORMAT_SCHEMA, schemaMode: 'open', updatedAt: now });
|
|
95
|
+
seeded++;
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
75
98
|
await storage.setSchema({
|
|
76
99
|
keyPattern,
|
|
77
100
|
applyTo: 'prefix',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-schema.js","sourceRoot":"","sources":["../../../src/services/manifest-schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manifest-schema.js","sourceRoot":"","sources":["../../../src/services/manifest-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,11 @@
|
|
|
14
14
|
* v1.2.0 — 2026-06-09 — Additive `addObjectTypes`: the server UNIONS new spaces into the manifest
|
|
15
15
|
* (skip-if-exists), filling sensible objectType defaults, so an agent provisions its contract's
|
|
16
16
|
* spaces deterministically without sending (and risking) the whole manifest. Returns {added, skipped}.
|
|
17
|
+
* v1.3.0 — 2026-06-10 — Backing gate + shared read predicate. normalizeObjectTypes() rejects
|
|
18
|
+
* backing:'storage'/'knowledge' loudly (they were accepted silently while every read surface
|
|
19
|
+
* skipped the space — published content became invisible) and infers mode:'document' from a
|
|
20
|
+
* kind:'document' objectType (old clients used `kind`; the open envelope swallowed it and the
|
|
21
|
+
* space fell into records mode). isMemoryBackedSpace() is THE predicate every read path shares.
|
|
17
22
|
*/
|
|
18
23
|
import type { Storage } from '../storage/interface.js';
|
|
19
24
|
import type { AimeatConfig } from '../config.js';
|
|
@@ -21,6 +26,23 @@ export declare class WorkspaceMetaError extends Error {
|
|
|
21
26
|
code: 'WS_NOT_FOUND' | 'NOT_CREATOR' | 'NOTHING_TO_UPDATE' | 'INVALID_MANIFEST';
|
|
22
27
|
constructor(code: 'WS_NOT_FOUND' | 'NOT_CREATOR' | 'NOTHING_TO_UPDATE' | 'INVALID_MANIFEST', message: string);
|
|
23
28
|
}
|
|
29
|
+
/** Backings the workspace tooling actually implements. 'memory' spaces hold records/documents as
|
|
30
|
+
* workspace memory keys; 'tasks' is a declarative POINTER to the task system (no workspace records).
|
|
31
|
+
* 'storage'/'knowledge' are intentionally NOT here: files and knowledge packages attach to a
|
|
32
|
+
* workspace via Sources or embedded document images, never as a backed space. */
|
|
33
|
+
export declare const SUPPORTED_BACKINGS: Set<string>;
|
|
34
|
+
/** Does this space's data live in workspace memory keys (so reads must list them)? A missing
|
|
35
|
+
* backing counts as memory — the write path stores memory keys regardless. This is THE shared
|
|
36
|
+
* predicate for every read surface (MCP workspace_read, REST GET /workspace, the UI via the REST
|
|
37
|
+
* response); three hand-rolled variants of this check is how published content once went invisible. */
|
|
38
|
+
export declare function isMemoryBackedSpace(ot: {
|
|
39
|
+
backing?: unknown;
|
|
40
|
+
}): boolean;
|
|
41
|
+
/** Gate + normalize a manifest's objectTypes before any manifest write (create, full replace,
|
|
42
|
+
* additive). Rejects unsupported backings with an instructive error instead of accepting a space
|
|
43
|
+
* no read path will ever show, and infers mode:'document' when an objectType declares
|
|
44
|
+
* kind:'document' without a mode. Returns a new array; throws WorkspaceMetaError. */
|
|
45
|
+
export declare function normalizeObjectTypes(objectTypes: Array<Record<string, unknown>>): Array<Record<string, unknown>>;
|
|
24
46
|
export interface UpdateWorkspaceOpts {
|
|
25
47
|
orgId: string;
|
|
26
48
|
ws: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-meta.d.ts","sourceRoot":"","sources":["../../../src/services/workspace-meta.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"workspace-meta.d.ts","sourceRoot":"","sources":["../../../src/services/workspace-meta.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,qBAAa,kBAAmB,SAAQ,KAAK;IACxB,IAAI,EAAE,cAAc,GAAG,aAAa,GAAG,mBAAmB,GAAG,kBAAkB;gBAA/E,IAAI,EAAE,cAAc,GAAG,aAAa,GAAG,mBAAmB,GAAG,kBAAkB,EAAE,OAAO,EAAE,MAAM;CAIpH;AAED;;;kFAGkF;AAClF,eAAO,MAAM,kBAAkB,aAA+B,CAAC;AAE/D;;;wGAGwG;AACxG,wBAAgB,mBAAmB,CAAC,EAAE,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAEtE;AAED;;;sFAGsF;AACtF,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAUhH;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;0FACsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC;;;2FAGuF;IACvF,cAAc,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACnD;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA2GtG"}
|
|
@@ -7,6 +7,33 @@ export class WorkspaceMetaError extends Error {
|
|
|
7
7
|
this.name = 'WorkspaceMetaError';
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
+
/** Backings the workspace tooling actually implements. 'memory' spaces hold records/documents as
|
|
11
|
+
* workspace memory keys; 'tasks' is a declarative POINTER to the task system (no workspace records).
|
|
12
|
+
* 'storage'/'knowledge' are intentionally NOT here: files and knowledge packages attach to a
|
|
13
|
+
* workspace via Sources or embedded document images, never as a backed space. */
|
|
14
|
+
export const SUPPORTED_BACKINGS = new Set(['memory', 'tasks']);
|
|
15
|
+
/** Does this space's data live in workspace memory keys (so reads must list them)? A missing
|
|
16
|
+
* backing counts as memory — the write path stores memory keys regardless. This is THE shared
|
|
17
|
+
* predicate for every read surface (MCP workspace_read, REST GET /workspace, the UI via the REST
|
|
18
|
+
* response); three hand-rolled variants of this check is how published content once went invisible. */
|
|
19
|
+
export function isMemoryBackedSpace(ot) {
|
|
20
|
+
return !ot.backing || ot.backing === 'memory';
|
|
21
|
+
}
|
|
22
|
+
/** Gate + normalize a manifest's objectTypes before any manifest write (create, full replace,
|
|
23
|
+
* additive). Rejects unsupported backings with an instructive error instead of accepting a space
|
|
24
|
+
* no read path will ever show, and infers mode:'document' when an objectType declares
|
|
25
|
+
* kind:'document' without a mode. Returns a new array; throws WorkspaceMetaError. */
|
|
26
|
+
export function normalizeObjectTypes(objectTypes) {
|
|
27
|
+
return objectTypes.map(ot => {
|
|
28
|
+
const backing = ot?.backing;
|
|
29
|
+
if (typeof backing === 'string' && backing && !SUPPORTED_BACKINGS.has(backing)) {
|
|
30
|
+
throw new WorkspaceMetaError('INVALID_MANIFEST', `objectType "${String(ot.name ?? '?')}": backing '${backing}' is not supported. Workspace spaces are memory-backed — use backing:'memory' (records or documents). Files and knowledge packages attach via workspace Sources or embedded document images, not as a backed space; the task system is referenced with backing:'tasks'.`);
|
|
31
|
+
}
|
|
32
|
+
if (!ot.mode && ot.kind === 'document')
|
|
33
|
+
return { ...ot, mode: 'document' };
|
|
34
|
+
return ot;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
10
37
|
export async function updateWorkspaceMeta(storage, _config, opts) {
|
|
11
38
|
const { orgId, ws, callerOwner, isAdmin } = opts;
|
|
12
39
|
const name = typeof opts.name === 'string' ? opts.name.trim() : undefined;
|
|
@@ -68,7 +95,8 @@ export async function updateWorkspaceMeta(storage, _config, opts) {
|
|
|
68
95
|
if (manifest) {
|
|
69
96
|
if (!Array.isArray(manifest.objectTypes))
|
|
70
97
|
throw new WorkspaceMetaError('INVALID_MANIFEST', 'manifest must have an objectTypes array.');
|
|
71
|
-
const
|
|
98
|
+
const normalizedTypes = normalizeObjectTypes(manifest.objectTypes);
|
|
99
|
+
const manifestValue = { ...manifest, objectTypes: normalizedTypes, id: orgId, status: manifest.status || 'active' };
|
|
72
100
|
if (name)
|
|
73
101
|
manifestValue.name = name;
|
|
74
102
|
const valid = await validateMemoryWrite(`${root}.meta.manifest`, manifestValue, storage);
|
|
@@ -98,11 +126,11 @@ export async function updateWorkspaceMeta(storage, _config, opts) {
|
|
|
98
126
|
skipped.push(String(raw.name));
|
|
99
127
|
continue;
|
|
100
128
|
}
|
|
101
|
-
const ot = {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
129
|
+
const ot = normalizeObjectTypes([{
|
|
130
|
+
mode: raw.mode || (raw.kind === 'document' ? 'document' : 'records'), backing: raw.backing || 'memory', writeRole: raw.writeRole || 'member',
|
|
131
|
+
cardinality: raw.cardinality || 'many', versioned: raw.versioned !== undefined ? raw.versioned : true,
|
|
132
|
+
...raw, schemaRef: raw.schemaRef || `schema:${String(raw.name)}@1`,
|
|
133
|
+
}])[0];
|
|
106
134
|
existing.push(ot);
|
|
107
135
|
haveName.add(raw.name);
|
|
108
136
|
haveNs.add(raw.namespace);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-meta.js","sourceRoot":"","sources":["../../../src/services/workspace-meta.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workspace-meta.js","sourceRoot":"","sources":["../../../src/services/workspace-meta.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACxB;IAAnB,YAAmB,IAA+E,EAAE,OAAe;QACjH,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,SAAI,GAAJ,IAAI,CAA2E;QAEhG,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED;;;kFAGkF;AAClF,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAE/D;;;wGAGwG;AACxG,MAAM,UAAU,mBAAmB,CAAC,EAAyB;IAC3D,OAAO,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,KAAK,QAAQ,CAAC;AAChD,CAAC;AAED;;;sFAGsF;AACtF,MAAM,UAAU,oBAAoB,CAAC,WAA2C;IAC9E,OAAO,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAC1B,MAAM,OAAO,GAAG,EAAE,EAAE,OAAO,CAAC;QAC5B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/E,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,EAC7C,eAAe,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,eAAe,OAAO,yQAAyQ,CAAC,CAAC;QAC1U,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU;YAAE,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC3E,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAqBD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAgB,EAChB,OAAqB,EACrB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACnI,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5H,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9F,IAAI,CAAC,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,kEAAkE,CAAC,CAAC;IAErM,MAAM,IAAI,GAAG,YAAY,KAAK,MAAM,EAAE,EAAE,CAAC;IACzC,kGAAkG;IAClG,MAAM,MAAM,GAAG,YAAY,KAAK,kBAAkB,CAAC;IACnD,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;IACpH,IAAI,MAAM,GAAwB,IAAI,CAAC;IACvC,IAAI,KAAK,GAA6D,IAAI,CAAC;IAC3E,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,CAAE,GAAG,CAAC,KAA0F,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;QACjI,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,CAAC;YAAC,MAAM,GAAG,GAAG,CAAC;YAAC,KAAK,GAAG,CAAC,CAAC;YAAC,MAAM;QAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,kBAAkB,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;IAC3F,IAAI,KAAK,CAAC,SAAS,KAAK,WAAW,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,kBAAkB,CAAC,aAAa,EAAE,6DAA6D,CAAC,CAAC;IAE5J,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,gBAAgB,CAAC,IAAI,IAAI,CAAC;IACzE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,cAAc,CAAC,IAAI,IAAI,CAAC;IAC1E,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC;IAErC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,KAAK,EAAE,GAAW,EAAE,SAAiB,EAAE,KAAc,EAAE,IAAyB,EAAE,EAAE;QAChG,MAAM,OAAO,CAAC,SAAS,CAAC;YACtB,GAAG,EAAE,SAAS,EAAE,KAAK;YACrB,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI;YACnG,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,GAAG,EAAE,SAAS,EAAE,GAAG;SACrF,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,gBAAgB,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;QACjD,MAAM,IAAI,GAAG,CAAC,CAAE,MAAO,CAAC,KAAyD,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3J,MAAM,KAAK,CAAC,MAAM,EAAE,MAAO,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,wFAAwF;IACxF,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,SAAS;YACpD,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3K,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IAED,iGAAiG;IACjG,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAE,QAAsC,CAAC,WAAW,CAAC;YAAE,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,0CAA0C,CAAC,CAAC;QACtK,MAAM,eAAe,GAAG,oBAAoB,CAAC,QAAQ,CAAC,WAA6C,CAAC,CAAC;QACrG,MAAM,aAAa,GAA4B,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAG,QAAQ,CAAC,MAAiB,IAAI,QAAQ,EAAE,CAAC;QACzJ,IAAI,IAAI;YAAE,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,GAAG,IAAI,gBAAgB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QACzF,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,+BAA+B,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACnI,MAAM,KAAK,CAAC,GAAG,IAAI,gBAAgB,EAAE,MAAM,EAAE,SAAS,IAAI,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QAC9F,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzB,MAAM,OAAO,GAAG,OAAO,aAAa,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QACzF,IAAI,OAAO;YAAE,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;SAAM,IAAI,cAAc,EAAE,CAAC;QAC1B,mGAAmG;QACnG,8FAA8F;QAC9F,+FAA+F;QAC/F,+DAA+D;QAC/D,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAI,MAAM,CAAC,KAAiC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9J,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;YAAE,MAAM,IAAI,kBAAkB,CAAC,cAAc,EAAE,sCAAsC,CAAC,CAAC;QAC1I,MAAM,QAAQ,GAAI,OAAO,CAAC,WAA8C,CAAC,KAAK,EAAE,CAAC;QACjF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACvD,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACjC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS;gBAAE,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,qDAAqD,CAAC,CAAC;YAC5K,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC;YACtG,MAAM,EAAE,GAA4B,oBAAoB,CAAC,CAAC;oBACxD,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,QAAQ;oBAC5I,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;oBACrG,GAAG,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,UAAU,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;iBACnE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACP,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACrG,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,aAAa,GAA4B,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAG,OAAO,CAAC,MAAiB,IAAI,QAAQ,EAAE,CAAC;YAChJ,IAAI,IAAI;gBAAE,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC;YACpC,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,GAAG,IAAI,gBAAgB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;YACzF,IAAI,CAAC,KAAK,CAAC,KAAK;gBAAE,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,+BAA+B,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACnI,MAAM,KAAK,CAAC,GAAG,IAAI,gBAAgB,EAAE,MAAM,EAAE,SAAS,IAAI,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;YAC9F,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzB,IAAI,IAAI;gBAAE,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,IAAI,EAAE,CAAC;YAChB,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,EAAE,CAAC;QAChB,oFAAoF;QACpF,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAAC,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,GAAI,MAAM,CAAC,KAAgB,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAAC,CAAC;QACvL,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,aAAa;IACb,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAAC,MAAM,KAAK,CAAC,GAAG,IAAI,cAAc,EAAE,SAAS,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAAC,CAAC;IAEjJ,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC1G,CAAC"}
|