@moxt-ai/mobius 0.0.400 → 0.0.403
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/{chunk-VAIQ6KYK.js → chunk-5S4YJP7Y.js} +65 -14
- package/dist/{chunk-VAIQ6KYK.js.map → chunk-5S4YJP7Y.js.map} +2 -2
- package/dist/{chunk-QYYMBZ56.js → chunk-KMPTV5P7.js} +2 -2
- package/dist/{chunk-QYYMBZ56.js.map → chunk-KMPTV5P7.js.map} +1 -1
- package/dist/cli/handler/agents/index.d.ts.map +1 -1
- package/dist/cli/handler/agents/index.js +2 -1
- package/dist/cli/handler/agents/index.js.map +1 -1
- package/dist/cli/handler/pair/remove.d.ts.map +1 -1
- package/dist/cli/handler/pair/remove.js +6 -0
- package/dist/cli/handler/pair/remove.js.map +1 -1
- package/dist/{cli-VJHRRDWH.js → cli-FQ3VTTOC.js} +137 -115
- package/dist/cli-FQ3VTTOC.js.map +7 -0
- package/dist/cli.js +2 -2
- package/dist/daemon/config.js +2 -2
- package/dist/daemon/lifecycle/daemon.d.ts.map +1 -1
- package/dist/daemon/lifecycle/daemon.js +0 -4
- package/dist/daemon/lifecycle/daemon.js.map +1 -1
- package/dist/daemon/pairing/pair-local-machine.d.ts +0 -1
- package/dist/daemon/pairing/pair-local-machine.d.ts.map +1 -1
- package/dist/daemon/pairing/pair-local-machine.js +5 -12
- package/dist/daemon/pairing/pair-local-machine.js.map +1 -1
- package/dist/engine/acp/harness/codex/app-server-protocol.d.ts +3 -0
- package/dist/engine/acp/harness/codex/app-server-protocol.d.ts.map +1 -1
- package/dist/engine/acp/harness/codex/app-server-protocol.js +3 -0
- package/dist/engine/acp/harness/codex/app-server-protocol.js.map +1 -1
- package/dist/engine/acp/harness/codex/owned-agent.d.ts.map +1 -1
- package/dist/engine/acp/harness/codex/owned-agent.js +34 -8
- package/dist/engine/acp/harness/codex/owned-agent.js.map +1 -1
- package/dist/engine/runtime/command/registry/prompt.d.ts.map +1 -1
- package/dist/engine/runtime/command/registry/prompt.js +15 -5
- package/dist/engine/runtime/command/registry/prompt.js.map +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.d.ts +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.d.ts.map +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.js +2 -2
- package/dist/engine/session/prompt/prompt-lifecycle.js.map +1 -1
- package/dist/engine/session/turn/active-turn.d.ts +2 -0
- package/dist/engine/session/turn/active-turn.d.ts.map +1 -1
- package/dist/engine/session/turn/active-turn.js +2 -0
- package/dist/engine/session/turn/active-turn.js.map +1 -1
- package/dist/engine.js +2 -2
- package/dist/storage/daemon/current-data.d.ts +9 -0
- package/dist/storage/daemon/current-data.d.ts.map +1 -0
- package/dist/storage/daemon/current-data.js +94 -0
- package/dist/storage/daemon/current-data.js.map +1 -0
- package/dist/storage/daemon/pairing-copies.d.ts +4 -0
- package/dist/storage/daemon/pairing-copies.d.ts.map +1 -0
- package/dist/storage/daemon/pairing-copies.js +66 -0
- package/dist/storage/daemon/pairing-copies.js.map +1 -0
- package/dist/storage/state-directory.d.ts +2 -2
- package/dist/storage/state-root-layout.d.ts +2 -2
- package/dist/storage/state-root-layout.d.ts.map +1 -1
- package/dist/storage/state-root-layout.js +2 -2
- package/dist/storage/state-root-layout.js.map +1 -1
- package/package.json +2 -2
- package/dist/cli-VJHRRDWH.js.map +0 -7
- package/dist/daemon/upgrades/data.d.ts +0 -3
- package/dist/daemon/upgrades/data.d.ts.map +0 -1
- package/dist/daemon/upgrades/data.js +0 -22
- package/dist/daemon/upgrades/data.js.map +0 -1
- package/dist/storage/daemon/version-data.d.ts +0 -18
- package/dist/storage/daemon/version-data.d.ts.map +0 -1
- package/dist/storage/daemon/version-data.js +0 -131
- package/dist/storage/daemon/version-data.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/daemon/upgrades/data.ts"],"names":[],"mappings":"AAWA,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAY5F;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3F"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { decodeRuntimeUpgradeVersion } from "@moxt-ai/mobius-sdk/protocol";
|
|
2
|
-
import { copyVersionData, discardVersionData, readCurrentDataVersion, writeCurrentDataVersion, } from "../../storage/daemon/version-data.js";
|
|
3
|
-
import { readStateDirectory } from "../../storage/state-directory.js";
|
|
4
|
-
// A version whose data is not current inherits the current data. Without a current data pointer, nothing has run yet,
|
|
5
|
-
// so there is nothing to inherit.
|
|
6
|
-
export async function prepareVersionData(version, signal) {
|
|
7
|
-
signal.throwIfAborted();
|
|
8
|
-
const root = readStateDirectory();
|
|
9
|
-
const targetVersion = decodeRuntimeUpgradeVersion(version);
|
|
10
|
-
const current = await readCurrentDataVersion(root, signal);
|
|
11
|
-
if (current === null || current === targetVersion) {
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
// The pointer names the data that wins. A directory it does not name never became current, as one an earlier
|
|
15
|
-
// CLI started for its own version, so it is stale and must not replace the current data.
|
|
16
|
-
await discardVersionData(root, targetVersion, signal);
|
|
17
|
-
await copyVersionData(root, current, targetVersion, signal);
|
|
18
|
-
}
|
|
19
|
-
export async function recordCurrentData(version, signal) {
|
|
20
|
-
await writeCurrentDataVersion(readStateDirectory(), decodeRuntimeUpgradeVersion(version), signal);
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=data.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/daemon/upgrades/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EACH,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,GAC1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,sHAAsH;AACtH,kCAAkC;AAClC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAe,EAAE,MAAmB;IACzE,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC;IAClC,MAAM,aAAa,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3D,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;QAChD,OAAO;IACX,CAAC;IACD,6GAA6G;IAC7G,yFAAyF;IACzF,MAAM,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAe,EAAE,MAAmB;IACxE,MAAM,uBAAuB,CAAC,kBAAkB,EAAE,EAAE,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;AACtG,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { StateRoot } from "../state-directory.ts";
|
|
2
|
-
export declare class DataInheritanceError extends Error {
|
|
3
|
-
readonly code = "data_inheritance_failed";
|
|
4
|
-
}
|
|
5
|
-
/** Validate the version container itself before opening any installation beneath it. */
|
|
6
|
-
export declare function prepareVersionDataDirectory(root: StateRoot, version: string, signal: AbortSignal): Promise<string>;
|
|
7
|
-
/** The version the current data pointer names, or null when there is no pointer. */
|
|
8
|
-
export declare function readCurrentDataVersion(root: StateRoot, signal: AbortSignal): Promise<string | null>;
|
|
9
|
-
/** Copies one version's data into a new version's directory. A symbolic link is rejected. */
|
|
10
|
-
export declare function copyVersionData(root: StateRoot, sourceVersion: string, targetVersion: string, signal: AbortSignal): Promise<void>;
|
|
11
|
-
/**
|
|
12
|
-
* Removes a version's data unless the current data pointer names it. The directory leaves in one rename, so a
|
|
13
|
-
* concurrent first use either finds it whole or inherits the current data.
|
|
14
|
-
*/
|
|
15
|
-
export declare function discardVersionData(root: StateRoot, version: string, signal: AbortSignal): Promise<void>;
|
|
16
|
-
/** Points the current data pointer at a version whose data directory exists. */
|
|
17
|
-
export declare function writeCurrentDataVersion(root: StateRoot, version: string, signal: AbortSignal): Promise<void>;
|
|
18
|
-
//# sourceMappingURL=version-data.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version-data.d.ts","sourceRoot":"","sources":["../../../src/storage/daemon/version-data.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAMvD,qBAAa,oBAAqB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,6BAA6B;CAC7C;AAED,wFAAwF;AACxF,wBAAsB,2BAA2B,CAC7C,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED,oFAAoF;AACpF,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBzG;AAcD,6FAA6F;AAC7F,wBAAsB,eAAe,CACjC,IAAI,EAAE,SAAS,EACf,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB7G;AAED,gFAAgF;AAChF,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAWlH"}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { randomUUID } from "node:crypto";
|
|
2
|
-
import { cp, lstat, mkdtemp, readFile, rename, rm, writeFile } from "node:fs/promises";
|
|
3
|
-
import { join } from "node:path";
|
|
4
|
-
import { decodeRuntimeUpgradeVersion } from "@moxt-ai/mobius-sdk/protocol";
|
|
5
|
-
import { ensurePrivateDirectory } from "../../engine/storage/files/local-files.js";
|
|
6
|
-
import { validateLocalPath } from "../../engine/util/filesystem/private-path.js";
|
|
7
|
-
import { isNodeError } from "../../engine/util/node-error.js";
|
|
8
|
-
import { STATE_ROOT_LAYOUT } from "../state-root-layout.js";
|
|
9
|
-
// Each daemon version keeps its data in `versions/<version>/` under the state root, and
|
|
10
|
-
// `current-data.txt` names the version whose data is current.
|
|
11
|
-
export class DataInheritanceError extends Error {
|
|
12
|
-
code = "data_inheritance_failed";
|
|
13
|
-
}
|
|
14
|
-
/** Validate the version container itself before opening any installation beneath it. */
|
|
15
|
-
export async function prepareVersionDataDirectory(root, version, signal) {
|
|
16
|
-
signal.throwIfAborted();
|
|
17
|
-
const directory = join(root, STATE_ROOT_LAYOUT.versions, decodeRuntimeUpgradeVersion(version));
|
|
18
|
-
try {
|
|
19
|
-
await ensurePrivateDirectory(directory);
|
|
20
|
-
await validateLocalPath(directory, true, true, signal);
|
|
21
|
-
}
|
|
22
|
-
catch (cause) {
|
|
23
|
-
signal.throwIfAborted();
|
|
24
|
-
throw new DataInheritanceError("The version data directory cannot be initialized", { cause });
|
|
25
|
-
}
|
|
26
|
-
return directory;
|
|
27
|
-
}
|
|
28
|
-
/** The version the current data pointer names, or null when there is no pointer. */
|
|
29
|
-
export async function readCurrentDataVersion(root, signal) {
|
|
30
|
-
// A relative, version-only pointer remains valid if the state root is moved.
|
|
31
|
-
const pointer = join(root, STATE_ROOT_LAYOUT.currentData);
|
|
32
|
-
try {
|
|
33
|
-
await validateLocalPath(pointer, false, true, signal);
|
|
34
|
-
const value = (await readFile(pointer, { encoding: "utf8", signal })).trim();
|
|
35
|
-
if (!value.startsWith("versions/")) {
|
|
36
|
-
throw new DataInheritanceError("The current data pointer must name a version directory");
|
|
37
|
-
}
|
|
38
|
-
return decodeRuntimeUpgradeVersion(value.slice("versions/".length));
|
|
39
|
-
}
|
|
40
|
-
catch (cause) {
|
|
41
|
-
if (isNodeError(cause, "ENOENT")) {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
throw cause;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
async function versionDataExists(root, version, signal) {
|
|
48
|
-
try {
|
|
49
|
-
await validateLocalPath(join(root, STATE_ROOT_LAYOUT.versions, version), true, true, signal);
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
catch (cause) {
|
|
53
|
-
if (!isNodeError(cause, "ENOENT")) {
|
|
54
|
-
throw cause;
|
|
55
|
-
}
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
/** Copies one version's data into a new version's directory. A symbolic link is rejected. */
|
|
60
|
-
export async function copyVersionData(root, sourceVersion, targetVersion, signal) {
|
|
61
|
-
const versions = join(root, STATE_ROOT_LAYOUT.versions);
|
|
62
|
-
const source = join(versions, sourceVersion);
|
|
63
|
-
const target = join(versions, targetVersion);
|
|
64
|
-
await validateLocalPath(root, true, true, signal);
|
|
65
|
-
await validateLocalPath(versions, true, true, signal);
|
|
66
|
-
await validateLocalPath(source, true, true, signal);
|
|
67
|
-
const staging = await mkdtemp(join(versions, `.${targetVersion}-`));
|
|
68
|
-
try {
|
|
69
|
-
await cp(source, staging, {
|
|
70
|
-
recursive: true,
|
|
71
|
-
filter: async (path) => {
|
|
72
|
-
signal.throwIfAborted();
|
|
73
|
-
if ((await lstat(path)).isSymbolicLink()) {
|
|
74
|
-
throw new DataInheritanceError("The inherited data contains a symbolic link");
|
|
75
|
-
}
|
|
76
|
-
return true;
|
|
77
|
-
},
|
|
78
|
-
});
|
|
79
|
-
signal.throwIfAborted();
|
|
80
|
-
try {
|
|
81
|
-
await rename(staging, target);
|
|
82
|
-
}
|
|
83
|
-
catch (cause) {
|
|
84
|
-
// Another CLI may have finished the same first-use copy.
|
|
85
|
-
if (!isNodeError(cause, "EEXIST") && !isNodeError(cause, "ENOTEMPTY")) {
|
|
86
|
-
throw cause;
|
|
87
|
-
}
|
|
88
|
-
await validateLocalPath(target, true, true, signal);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
finally {
|
|
92
|
-
await rm(staging, { recursive: true, force: true });
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Removes a version's data unless the current data pointer names it. The directory leaves in one rename, so a
|
|
97
|
-
* concurrent first use either finds it whole or inherits the current data.
|
|
98
|
-
*/
|
|
99
|
-
export async function discardVersionData(root, version, signal) {
|
|
100
|
-
if ((await readCurrentDataVersion(root, signal)) === version || !(await versionDataExists(root, version, signal))) {
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
const versions = join(root, STATE_ROOT_LAYOUT.versions);
|
|
104
|
-
const discarded = join(versions, `.${version}-discarded-${randomUUID()}`);
|
|
105
|
-
try {
|
|
106
|
-
await rename(join(versions, version), discarded);
|
|
107
|
-
}
|
|
108
|
-
catch (cause) {
|
|
109
|
-
// Another process already discarded it.
|
|
110
|
-
if (isNodeError(cause, "ENOENT")) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
throw cause;
|
|
114
|
-
}
|
|
115
|
-
await rm(discarded, { recursive: true, force: true });
|
|
116
|
-
}
|
|
117
|
-
/** Points the current data pointer at a version whose data directory exists. */
|
|
118
|
-
export async function writeCurrentDataVersion(root, version, signal) {
|
|
119
|
-
await validateLocalPath(root, true, true, signal);
|
|
120
|
-
await validateLocalPath(join(root, STATE_ROOT_LAYOUT.versions, version), true, true, signal);
|
|
121
|
-
const temporary = join(root, `.current-data-${randomUUID()}.txt`);
|
|
122
|
-
try {
|
|
123
|
-
await writeFile(temporary, `versions/${version}\n`, { mode: 0o600, flag: "wx", signal });
|
|
124
|
-
signal.throwIfAborted();
|
|
125
|
-
await rename(temporary, join(root, STATE_ROOT_LAYOUT.currentData));
|
|
126
|
-
}
|
|
127
|
-
finally {
|
|
128
|
-
await rm(temporary, { force: true });
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
//# sourceMappingURL=version-data.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version-data.js","sourceRoot":"","sources":["../../../src/storage/daemon/version-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,wFAAwF;AACxF,8DAA8D;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAClC,IAAI,GAAG,yBAAyB,CAAC;CAC7C;AAED,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC7C,IAAe,EACf,OAAe,EACf,MAAmB;IAEnB,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/F,IAAI,CAAC;QACD,MAAM,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACxC,MAAM,iBAAiB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,IAAI,oBAAoB,CAAC,kDAAkD,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAe,EAAE,MAAmB;IAC7E,6EAA6E;IAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC1D,IAAI,CAAC;QACD,MAAM,iBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7E,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,oBAAoB,CAAC,wDAAwD,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,2BAA2B,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,IAAe,EAAE,OAAe,EAAE,MAAmB;IAClF,IAAI,CAAC;QACD,MAAM,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7F,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YAChC,MAAM,KAAK,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,IAAe,EACf,aAAqB,EACrB,aAAqB,EACrB,MAAmB;IAEnB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC7C,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC;QACD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE;YACtB,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACnB,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;oBACvC,MAAM,IAAI,oBAAoB,CAAC,6CAA6C,CAAC,CAAC;gBAClF,CAAC;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,CAAC;YACD,MAAM,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,yDAAyD;YACzD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC;gBACpE,MAAM,KAAK,CAAC;YAChB,CAAC;YACD,MAAM,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;YAAS,CAAC;QACP,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAe,EAAE,OAAe,EAAE,MAAmB;IAC1F,IAAI,CAAC,MAAM,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QAChH,OAAO;IACX,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,OAAO,cAAc,UAAU,EAAE,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC;QACD,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,wCAAwC;QACxC,IAAI,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO;QACX,CAAC;QACD,MAAM,KAAK,CAAC;IAChB,CAAC;IACD,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAe,EAAE,OAAe,EAAE,MAAmB;IAC/F,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7F,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,iBAAiB,UAAU,EAAE,MAAM,CAAC,CAAC;IAClE,IAAI,CAAC;QACD,MAAM,SAAS,CAAC,SAAS,EAAE,YAAY,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACzF,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;IACvE,CAAC;YAAS,CAAC;QACP,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;AACL,CAAC"}
|