@moltzap/client 2026.511.1 → 2026.518.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/auth.d.ts +12 -6
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +67 -29
- package/dist/auth.js.map +1 -1
- package/dist/auth.test.js +113 -76
- package/dist/auth.test.js.map +1 -1
- package/dist/channel-core-context.test.d.ts +2 -0
- package/dist/channel-core-context.test.d.ts.map +1 -0
- package/dist/channel-core-context.test.js +334 -0
- package/dist/channel-core-context.test.js.map +1 -0
- package/dist/channel-core-dispatch.test.d.ts +2 -0
- package/dist/channel-core-dispatch.test.d.ts.map +1 -0
- package/dist/channel-core-dispatch.test.js +550 -0
- package/dist/channel-core-dispatch.test.js.map +1 -0
- package/dist/channel-core-enrichment.d.ts +8 -0
- package/dist/channel-core-enrichment.d.ts.map +1 -0
- package/dist/channel-core-enrichment.js +134 -0
- package/dist/channel-core-enrichment.js.map +1 -0
- package/dist/channel-core-errors.d.ts +20 -0
- package/dist/channel-core-errors.d.ts.map +1 -0
- package/dist/channel-core-errors.js +12 -0
- package/dist/channel-core-errors.js.map +1 -0
- package/dist/channel-core-test-support.d.ts +48 -0
- package/dist/channel-core-test-support.d.ts.map +1 -0
- package/dist/channel-core-test-support.js +111 -0
- package/dist/channel-core-test-support.js.map +1 -0
- package/dist/channel-core.d.ts +30 -7
- package/dist/channel-core.d.ts.map +1 -1
- package/dist/channel-core.js +214 -237
- package/dist/channel-core.js.map +1 -1
- package/dist/channel-core.test.js +216 -1082
- package/dist/channel-core.test.js.map +1 -1
- package/dist/cli/__tests__/cli-multi-agent.int.test.js +129 -23
- package/dist/cli/__tests__/cli-multi-agent.int.test.js.map +1 -1
- package/dist/cli/commands/conversations-v2.test.js +64 -54
- package/dist/cli/commands/conversations-v2.test.js.map +1 -1
- package/dist/cli/commands/conversations.d.ts +5 -5
- package/dist/cli/commands/conversations.d.ts.map +1 -1
- package/dist/cli/commands/conversations.js +43 -36
- package/dist/cli/commands/conversations.js.map +1 -1
- package/dist/cli/commands/messages.d.ts +4 -4
- package/dist/cli/commands/messages.d.ts.map +1 -1
- package/dist/cli/commands/messages.js +4 -4
- package/dist/cli/commands/messages.js.map +1 -1
- package/dist/cli/commands/messages.test.js +61 -49
- package/dist/cli/commands/messages.test.js.map +1 -1
- package/dist/cli/commands/ping.d.ts +0 -9
- package/dist/cli/commands/ping.d.ts.map +1 -1
- package/dist/cli/commands/ping.js +1 -1
- package/dist/cli/commands/ping.js.map +1 -1
- package/dist/cli/commands/presence.d.ts +1 -1
- package/dist/cli/commands/presence.js +1 -1
- package/dist/cli/commands/register.d.ts +2 -2
- package/dist/cli/commands/register.d.ts.map +1 -1
- package/dist/cli/commands/register.js +98 -77
- package/dist/cli/commands/register.js.map +1 -1
- package/dist/cli/commands/register.test.js +63 -39
- package/dist/cli/commands/register.test.js.map +1 -1
- package/dist/cli/commands/send.d.ts +6 -6
- package/dist/cli/commands/send.js +6 -6
- package/dist/cli/commands/send.test.js +32 -28
- package/dist/cli/commands/send.test.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +3 -4
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/config.d.ts +0 -2
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +86 -76
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/config.test.js +80 -42
- package/dist/cli/config.test.js.map +1 -1
- package/dist/cli/index.d.ts +1 -16
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +50 -113
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/process-argv.d.ts +2 -0
- package/dist/cli/process-argv.d.ts.map +1 -0
- package/dist/cli/process-argv.js +2 -0
- package/dist/cli/process-argv.js.map +1 -0
- package/dist/cli/profile.d.ts +3 -10
- package/dist/cli/profile.d.ts.map +1 -1
- package/dist/cli/profile.js +105 -104
- package/dist/cli/profile.js.map +1 -1
- package/dist/cli/profile.test.js +338 -232
- package/dist/cli/profile.test.js.map +1 -1
- package/dist/cli/runtime.d.ts +5 -17
- package/dist/cli/runtime.d.ts.map +1 -1
- package/dist/cli/runtime.js +6 -59
- package/dist/cli/runtime.js.map +1 -1
- package/dist/cli/socket-client.d.ts +10 -15
- package/dist/cli/socket-client.d.ts.map +1 -1
- package/dist/cli/socket-client.js +74 -89
- package/dist/cli/socket-client.js.map +1 -1
- package/dist/cli/transport.d.ts +9 -5
- package/dist/cli/transport.d.ts.map +1 -1
- package/dist/cli/transport.js +45 -42
- package/dist/cli/transport.js.map +1 -1
- package/dist/cli/transport.test.js +227 -133
- package/dist/cli/transport.test.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/local-daemon-rpc.d.ts +13 -0
- package/dist/local-daemon-rpc.d.ts.map +1 -0
- package/dist/local-daemon-rpc.js +17 -0
- package/dist/local-daemon-rpc.js.map +1 -0
- package/dist/local-paths.d.ts +7 -0
- package/dist/local-paths.d.ts.map +1 -0
- package/dist/local-paths.js +20 -0
- package/dist/local-paths.js.map +1 -0
- package/dist/runtime/close-info.d.ts +3 -12
- package/dist/runtime/close-info.d.ts.map +1 -1
- package/dist/runtime/close-info.js +28 -39
- package/dist/runtime/close-info.js.map +1 -1
- package/dist/runtime/close-info.test.js +77 -70
- package/dist/runtime/close-info.test.js.map +1 -1
- package/dist/runtime/errors.test.js +42 -28
- package/dist/runtime/errors.test.js.map +1 -1
- package/dist/runtime/frame.d.ts +4 -31
- package/dist/runtime/frame.d.ts.map +1 -1
- package/dist/runtime/frame.js +7 -116
- package/dist/runtime/frame.js.map +1 -1
- package/dist/runtime/frame.test.js +41 -54
- package/dist/runtime/frame.test.js.map +1 -1
- package/dist/runtime/index.d.ts +7 -0
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +7 -11
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/local-history.d.ts +67 -0
- package/dist/runtime/local-history.d.ts.map +1 -0
- package/dist/runtime/local-history.js +77 -0
- package/dist/runtime/local-history.js.map +1 -0
- package/dist/runtime/local-service-commands.d.ts +19 -0
- package/dist/runtime/local-service-commands.d.ts.map +1 -1
- package/dist/runtime/local-service-commands.js +23 -0
- package/dist/runtime/local-service-commands.js.map +1 -1
- package/dist/runtime/local-socket-server.d.ts +20 -0
- package/dist/runtime/local-socket-server.d.ts.map +1 -0
- package/dist/runtime/local-socket-server.js +94 -0
- package/dist/runtime/local-socket-server.js.map +1 -0
- package/dist/runtime/refs.d.ts +1 -1
- package/dist/runtime/refs.js +1 -1
- package/dist/runtime/runtime.test.js +29 -21
- package/dist/runtime/runtime.test.js.map +1 -1
- package/dist/runtime/service-helpers.d.ts +32 -0
- package/dist/runtime/service-helpers.d.ts.map +1 -0
- package/dist/runtime/service-helpers.js +85 -0
- package/dist/runtime/service-helpers.js.map +1 -0
- package/dist/runtime/subscribers.d.ts +13 -17
- package/dist/runtime/subscribers.d.ts.map +1 -1
- package/dist/runtime/subscribers.js +37 -32
- package/dist/runtime/subscribers.js.map +1 -1
- package/dist/runtime/subscribers.test.js +139 -131
- package/dist/runtime/subscribers.test.js.map +1 -1
- package/dist/service-socket-path.test.d.ts +2 -0
- package/dist/service-socket-path.test.d.ts.map +1 -0
- package/dist/service-socket-path.test.js +87 -0
- package/dist/service-socket-path.test.js.map +1 -0
- package/dist/service.d.ts +23 -20
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +192 -340
- package/dist/service.js.map +1 -1
- package/dist/service.test.js +652 -653
- package/dist/service.test.js.map +1 -1
- package/dist/test/index.d.ts +30 -14
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js +25 -21
- package/dist/test/index.js.map +1 -1
- package/dist/test-utils/channel-service-fixture.d.ts +1 -0
- package/dist/test-utils/channel-service-fixture.d.ts.map +1 -1
- package/dist/test-utils/channel-service-fixture.js +139 -98
- package/dist/test-utils/channel-service-fixture.js.map +1 -1
- package/dist/test-utils/conformance-adapter.d.ts.map +1 -1
- package/dist/test-utils/conformance-adapter.js +145 -124
- package/dist/test-utils/conformance-adapter.js.map +1 -1
- package/dist/test-utils/fake-service.d.ts.map +1 -1
- package/dist/test-utils/fake-service.js +3 -3
- package/dist/test-utils/fake-service.js.map +1 -1
- package/dist/test-utils/index.d.ts +25 -0
- package/dist/test-utils/index.d.ts.map +1 -1
- package/dist/test-utils/index.js +25 -8
- package/dist/test-utils/index.js.map +1 -1
- package/dist/ws-client-test-support.d.ts +180 -0
- package/dist/ws-client-test-support.d.ts.map +1 -0
- package/dist/ws-client-test-support.js +399 -0
- package/dist/ws-client-test-support.js.map +1 -0
- package/dist/ws-client.d.ts +59 -32
- package/dist/ws-client.d.ts.map +1 -1
- package/dist/ws-client.js +272 -321
- package/dist/ws-client.js.map +1 -1
- package/dist/ws-client.test.js +388 -800
- package/dist/ws-client.test.js.map +1 -1
- package/package.json +14 -10
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-argv.d.ts","sourceRoot":"","sources":["../../src/cli/process-argv.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,QAAO,aAAa,CAAC,MAAM,CAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-argv.js","sourceRoot":"","sources":["../../src/cli/process-argv.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,GAA0B,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC"}
|
package/dist/cli/profile.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ import { Brand, Effect } from "effect";
|
|
|
4
4
|
* `commands/register.ts`: `/^[a-z0-9][a-z0-9-]{1,30}[a-z0-9]$/`.
|
|
5
5
|
*/
|
|
6
6
|
export type ProfileName = string & Brand.Brand<"ProfileName">;
|
|
7
|
-
export declare const ProfileName: Brand.Brand.Constructor<ProfileName>;
|
|
8
7
|
/** Sentinel used when the caller addresses the legacy top-level record. */
|
|
9
8
|
export type DefaultProfileId = "default";
|
|
10
9
|
/**
|
|
@@ -22,7 +21,7 @@ export interface ProfileRecord {
|
|
|
22
21
|
}
|
|
23
22
|
/**
|
|
24
23
|
* Layered view of config.json. The legacy top-level keys populate
|
|
25
|
-
* `default`; named records live under `profiles
|
|
24
|
+
* `default`; named records live under `profiles.<name>`. `serverUrl`
|
|
26
25
|
* is surfaced at the top because it is shared across profiles unless
|
|
27
26
|
* a profile overrides it.
|
|
28
27
|
*/
|
|
@@ -43,7 +42,7 @@ export declare class ProfileNotFoundError extends ProfileNotFoundError_base<{
|
|
|
43
42
|
declare const ProfileAlreadyExistsError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
44
43
|
readonly _tag: "ProfileAlreadyExistsError";
|
|
45
44
|
} & Readonly<A>;
|
|
46
|
-
|
|
45
|
+
declare class ProfileAlreadyExistsError extends ProfileAlreadyExistsError_base<{
|
|
47
46
|
readonly name: string;
|
|
48
47
|
}> {
|
|
49
48
|
}
|
|
@@ -97,7 +96,7 @@ export declare const loadLayeredConfig: Effect.Effect<LayeredConfig, ProfileConf
|
|
|
97
96
|
*/
|
|
98
97
|
export declare const resolveProfileAuth: (name: ProfileName | undefined) => Effect.Effect<ProfileRecord, ProfileNotFoundError | ProfileConfigReadError>;
|
|
99
98
|
/**
|
|
100
|
-
* Persist a new profile record under `profiles
|
|
99
|
+
* Persist a new profile record under `profiles.<name>`, or replace the
|
|
101
100
|
* legacy top-level record when `name` is `"default"`.
|
|
102
101
|
*
|
|
103
102
|
* When called with `"default"`, writes the legacy top-level `apiKey` /
|
|
@@ -123,11 +122,5 @@ export declare const writeProfile: (name: ProfileName | DefaultProfileId, record
|
|
|
123
122
|
export declare const emitNoPersist: (record: ProfileRecord) => Effect.Effect<{
|
|
124
123
|
readonly record: ProfileRecord;
|
|
125
124
|
}, never>;
|
|
126
|
-
/**
|
|
127
|
-
* Absolute path to the config file. Overridable at test time via the
|
|
128
|
-
* `MOLTZAP_CONFIG_HOME` env (tests set a tmp dir; production leaves unset).
|
|
129
|
-
* Exported so assertions can diff the file after a command run.
|
|
130
|
-
*/
|
|
131
|
-
export declare const getConfigFilePath: Effect.Effect<string, never>;
|
|
132
125
|
export {};
|
|
133
126
|
//# sourceMappingURL=profile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/cli/profile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/cli/profile.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,EAAQ,MAAM,EAAU,MAAM,QAAQ,CAAC;AAKrD;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAG9D,2EAA2E;AAC3E,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAYzC;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAID,sDAAsD;AACtD,MAAM,MAAM,YAAY,GACpB,oBAAoB,GACpB,yBAAyB,GACzB,uBAAuB,GACvB,sBAAsB,GACtB,uBAAuB,CAAC;;;;AAE5B,qBAAa,oBAAqB,SAAQ,0BAExC;IACA,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;CAAG;;;;AAEL,cAAM,yBAA0B,SAAQ,+BAEtC;IACA,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;CAAG;;;;AAEL,qBAAa,uBAAwB,SAAQ,6BAE3C;IACA,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;CAAG;;;;AAEL,qBAAa,sBAAuB,SAAQ,4BAE1C;IACA,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;CAAG;;;;AAEL,qBAAa,uBAAwB,SAAQ,6BAE3C;IACA,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;CAAG;AAIL;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAC3B,KAAK,MAAM,KACV,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAgBpD,CAAC;AA4HF;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAC3C,aAAa,EACb,sBAAsB,CAUqB,CAAC;AAE9C;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,WAAW,GAAG,SAAS,KAC5B,MAAM,CAAC,MAAM,CACd,aAAa,EACb,oBAAoB,GAAG,sBAAsB,CAiBC,CAAC;AAmEjD;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GACvB,MAAM,WAAW,GAAG,gBAAgB,EACpC,QAAQ,aAAa,KACpB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,uBAAuB,GAAG,sBAAsB,CAI7B,CAAC;AAE3C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,GACxB,QAAQ,aAAa,KACpB,MAAM,CAAC,MAAM,CAAC;IAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAAE,EAAE,KAAK,CAC9B,CAAC"}
|
package/dist/cli/profile.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* `apiKey` / `agentName` fields (see cli/config.ts) remain the "default"
|
|
6
6
|
* record; named profiles live under a new top-level `profiles` key.
|
|
7
7
|
*
|
|
8
|
-
* Spec sbd#177 rev 3 §5.2 (`--profile
|
|
8
|
+
* Spec sbd#177 rev 3 §5.2 (`--profile <name>`, `--no-persist`),
|
|
9
9
|
* Invariants §4.3 (coexistence) and §4.4 (no-disk-write guarantee).
|
|
10
10
|
*
|
|
11
11
|
* Architect note. The existing `cli/config.ts` pre-dates this branch and is
|
|
@@ -16,22 +16,20 @@
|
|
|
16
16
|
* named export of `config.ts`. The public interface defined below is the
|
|
17
17
|
* contract impl-staff preserves regardless of layout.
|
|
18
18
|
*/
|
|
19
|
-
import
|
|
20
|
-
import
|
|
21
|
-
import
|
|
22
|
-
import {
|
|
23
|
-
|
|
19
|
+
import { FileSystem } from "@effect/platform";
|
|
20
|
+
import { NodeFileSystem } from "@effect/platform-node";
|
|
21
|
+
import { Brand, Data, Effect, Either } from "effect";
|
|
22
|
+
import { getMoltZapConfigDir, getMoltZapConfigPath } from "../local-paths.js";
|
|
23
|
+
const ProfileNameBrand = Brand.nominal();
|
|
24
24
|
const NAME_PATTERN = /^[a-z0-9][a-z0-9-]{1,30}[a-z0-9]$/;
|
|
25
25
|
const DEFAULT_SERVER_URL = "wss://api.moltzap.xyz";
|
|
26
26
|
const CONFIG_FILE_MODE = 0o600;
|
|
27
27
|
const JSON_INDENT_SPACES = 2;
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
const getConfigDir = () => getConfigHomeSync() ?? path.join(os.homedir(), ".moltzap");
|
|
31
|
-
const getConfigFilePathSync = () => path.join(getConfigDir(), "config.json");
|
|
28
|
+
const getConfigDir = getMoltZapConfigDir;
|
|
29
|
+
const getConfigFilePathSync = getMoltZapConfigPath;
|
|
32
30
|
export class ProfileNotFoundError extends Data.TaggedError("ProfileNotFoundError") {
|
|
33
31
|
}
|
|
34
|
-
|
|
32
|
+
class ProfileAlreadyExistsError extends Data.TaggedError("ProfileAlreadyExistsError") {
|
|
35
33
|
}
|
|
36
34
|
export class ProfileInvalidNameError extends Data.TaggedError("ProfileInvalidNameError") {
|
|
37
35
|
}
|
|
@@ -54,14 +52,13 @@ export const parseProfileName = (raw) => {
|
|
|
54
52
|
reason: "must be 3-32 chars, lowercase alphanumeric and hyphens, cannot start or end with a hyphen",
|
|
55
53
|
}));
|
|
56
54
|
}
|
|
57
|
-
return Effect.succeed(
|
|
55
|
+
return Effect.succeed(ProfileNameBrand(raw));
|
|
58
56
|
};
|
|
59
57
|
const isRecord = (x) => typeof x === "object" && x !== null && !Array.isArray(x);
|
|
60
58
|
const decodeProfileRecord = (raw, fallbackServerUrl) => {
|
|
61
59
|
if (!isRecord(raw))
|
|
62
60
|
return undefined;
|
|
63
|
-
const apiKey = raw
|
|
64
|
-
const agentName = raw.agentName;
|
|
61
|
+
const { apiKey, agentName } = raw;
|
|
65
62
|
if (typeof apiKey !== "string" || typeof agentName !== "string") {
|
|
66
63
|
return undefined;
|
|
67
64
|
}
|
|
@@ -72,38 +69,58 @@ const decodeProfileRecord = (raw, fallbackServerUrl) => {
|
|
|
72
69
|
}
|
|
73
70
|
return record;
|
|
74
71
|
};
|
|
72
|
+
const readRawConfigText = (configPath) => FileSystem.FileSystem.pipe(Effect.flatMap((fileSystem) => fileSystem
|
|
73
|
+
.exists(configPath)
|
|
74
|
+
.pipe(Effect.flatMap((exists) => exists
|
|
75
|
+
? fileSystem.readFileString(configPath, "utf-8")
|
|
76
|
+
: Effect.succeed(null)))), Effect.provide(NodeFileSystem.layer), Effect.either, Effect.flatMap(Either.match({
|
|
77
|
+
onLeft: (cause) => Effect.fail(new ProfileConfigReadError({ path: configPath, cause })),
|
|
78
|
+
onRight: (value) => Effect.succeed(value),
|
|
79
|
+
})));
|
|
80
|
+
const parseRawConfig = (configPath, text) => Effect.try({
|
|
81
|
+
try: () => JSON.parse(text),
|
|
82
|
+
catch: (err) => new ProfileConfigReadError({ path: configPath, cause: err }),
|
|
83
|
+
});
|
|
84
|
+
const requireRawConfigRecord = (configPath, parsed) => isRecord(parsed)
|
|
85
|
+
? Effect.succeed(parsed)
|
|
86
|
+
: Effect.fail(new ProfileConfigReadError({
|
|
87
|
+
path: configPath,
|
|
88
|
+
cause: "config root is not a JSON object",
|
|
89
|
+
}));
|
|
75
90
|
const readRawConfig = () => Effect.gen(function* () {
|
|
76
91
|
const configPath = getConfigFilePathSync();
|
|
77
|
-
const text = yield*
|
|
78
|
-
try: () => fs.readFileSync(configPath, "utf-8"),
|
|
79
|
-
catch: (err) => err,
|
|
80
|
-
}).pipe(Effect.catchAll((err) => {
|
|
81
|
-
const code = err.code;
|
|
82
|
-
return code === "ENOENT"
|
|
83
|
-
? Effect.succeed(null)
|
|
84
|
-
: Effect.fail(new ProfileConfigReadError({
|
|
85
|
-
path: configPath,
|
|
86
|
-
cause: err,
|
|
87
|
-
}));
|
|
88
|
-
}));
|
|
92
|
+
const text = yield* readRawConfigText(configPath);
|
|
89
93
|
if (text === null) {
|
|
90
94
|
return { raw: {}, existed: false };
|
|
91
95
|
}
|
|
92
|
-
const parsed = yield*
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
path: configPath,
|
|
96
|
-
cause: err,
|
|
97
|
-
}),
|
|
98
|
-
});
|
|
99
|
-
if (!isRecord(parsed)) {
|
|
100
|
-
return yield* Effect.fail(new ProfileConfigReadError({
|
|
101
|
-
path: configPath,
|
|
102
|
-
cause: "config root is not a JSON object",
|
|
103
|
-
}));
|
|
104
|
-
}
|
|
105
|
-
return { raw: parsed, existed: true };
|
|
96
|
+
const parsed = yield* parseRawConfig(configPath, text);
|
|
97
|
+
const raw = yield* requireRawConfigRecord(configPath, parsed);
|
|
98
|
+
return { raw, existed: true };
|
|
106
99
|
});
|
|
100
|
+
function defaultProfileFromRaw(raw, serverUrl) {
|
|
101
|
+
if (typeof raw.apiKey !== "string" || typeof raw.agentName !== "string") {
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
apiKey: raw.apiKey,
|
|
106
|
+
agentName: raw.agentName,
|
|
107
|
+
serverUrl,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
function profilesFromRaw(raw, serverUrl) {
|
|
111
|
+
const profiles = new Map();
|
|
112
|
+
if (!isRecord(raw.profiles))
|
|
113
|
+
return profiles;
|
|
114
|
+
for (const [name, value] of Object.entries(raw.profiles)) {
|
|
115
|
+
if (!NAME_PATTERN.test(name))
|
|
116
|
+
continue; // tolerate malformed entries
|
|
117
|
+
const record = decodeProfileRecord(value, serverUrl);
|
|
118
|
+
if (record !== undefined) {
|
|
119
|
+
profiles.set(ProfileNameBrand(name), record);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return profiles;
|
|
123
|
+
}
|
|
107
124
|
/**
|
|
108
125
|
* Load the full layered config view. Missing file resolves to an empty
|
|
109
126
|
* view; malformed file surfaces as ProfileConfigReadError. No silent
|
|
@@ -116,27 +133,12 @@ const readRawConfig = () => Effect.gen(function* () {
|
|
|
116
133
|
export const loadLayeredConfig = Effect.gen(function* () {
|
|
117
134
|
const { raw } = yield* readRawConfig();
|
|
118
135
|
const serverUrl = typeof raw.serverUrl === "string" ? raw.serverUrl : DEFAULT_SERVER_URL;
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
const profiles = new Map();
|
|
128
|
-
if (isRecord(raw.profiles)) {
|
|
129
|
-
for (const [name, value] of Object.entries(raw.profiles)) {
|
|
130
|
-
if (!NAME_PATTERN.test(name))
|
|
131
|
-
continue; // tolerate malformed entries
|
|
132
|
-
const record = decodeProfileRecord(value, serverUrl);
|
|
133
|
-
if (record !== undefined) {
|
|
134
|
-
profiles.set(ProfileName(name), record);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
return { default: defaultRecord, profiles, serverUrl };
|
|
139
|
-
});
|
|
136
|
+
return {
|
|
137
|
+
default: defaultProfileFromRaw(raw, serverUrl),
|
|
138
|
+
profiles: profilesFromRaw(raw, serverUrl),
|
|
139
|
+
serverUrl,
|
|
140
|
+
};
|
|
141
|
+
}).pipe(Effect.withSpan("loadLayeredConfig"));
|
|
140
142
|
/**
|
|
141
143
|
* Resolve the auth record for a given profile name.
|
|
142
144
|
*
|
|
@@ -159,51 +161,57 @@ export const resolveProfileAuth = (name) => Effect.gen(function* () {
|
|
|
159
161
|
return yield* Effect.fail(new ProfileNotFoundError({ name }));
|
|
160
162
|
}
|
|
161
163
|
return found;
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
164
|
+
}).pipe(Effect.withSpan("resolveProfileAuth"));
|
|
165
|
+
function profileBodyFromRecord(record) {
|
|
166
|
+
return {
|
|
167
|
+
apiKey: record.apiKey,
|
|
168
|
+
agentName: record.agentName,
|
|
169
|
+
serverUrl: record.serverUrl,
|
|
170
|
+
...(record.registeredAt !== undefined
|
|
171
|
+
? { registeredAt: record.registeredAt }
|
|
172
|
+
: {}),
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
function nextProfileConfig(raw, name, record) {
|
|
173
176
|
const next = { ...raw };
|
|
174
177
|
if (name === "default") {
|
|
175
178
|
next.serverUrl = record.serverUrl;
|
|
176
179
|
next.apiKey = record.apiKey;
|
|
177
180
|
next.agentName = record.agentName;
|
|
181
|
+
return next;
|
|
178
182
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
if (record.registeredAt !== undefined) {
|
|
187
|
-
profileBody.registeredAt = record.registeredAt;
|
|
188
|
-
}
|
|
189
|
-
next.profiles = { ...existingProfiles, [name]: profileBody };
|
|
190
|
-
// serverUrl at top level stays as-is for legacy readers.
|
|
191
|
-
if (typeof next.serverUrl !== "string") {
|
|
192
|
-
next.serverUrl = record.serverUrl;
|
|
193
|
-
}
|
|
183
|
+
const existingProfiles = isRecord(next.profiles) ? next.profiles : {};
|
|
184
|
+
next.profiles = {
|
|
185
|
+
...existingProfiles,
|
|
186
|
+
[name]: profileBodyFromRecord(record),
|
|
187
|
+
};
|
|
188
|
+
if (typeof next.serverUrl !== "string") {
|
|
189
|
+
next.serverUrl = record.serverUrl;
|
|
194
190
|
}
|
|
191
|
+
return next;
|
|
192
|
+
}
|
|
193
|
+
const writeRawConfig = (next) => {
|
|
195
194
|
const configDir = getConfigDir();
|
|
196
195
|
const configPath = getConfigFilePathSync();
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
196
|
+
return FileSystem.FileSystem.pipe(Effect.flatMap((fileSystem) => fileSystem
|
|
197
|
+
.makeDirectory(configDir, { recursive: true })
|
|
198
|
+
.pipe(Effect.zipRight(fileSystem.writeFileString(configPath, JSON.stringify(next, null, JSON_INDENT_SPACES) + "\n", { mode: CONFIG_FILE_MODE })))), Effect.provide(NodeFileSystem.layer), Effect.either, Effect.flatMap(Either.match({
|
|
199
|
+
onLeft: (cause) => Effect.fail(new ProfileConfigWriteError({ path: configPath, cause })),
|
|
200
|
+
onRight: (value) => Effect.succeed(value),
|
|
201
|
+
})));
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* Persist a new profile record under `profiles.<name>`, or replace the
|
|
205
|
+
* legacy top-level record when `name` is `"default"`.
|
|
206
|
+
*
|
|
207
|
+
* When called with `"default"`, writes the legacy top-level `apiKey` /
|
|
208
|
+
* `agentName` fields (not under `profiles`) so pre-profile-aware readers
|
|
209
|
+
* keep working (Invariant §4.3).
|
|
210
|
+
*/
|
|
211
|
+
export const writeProfile = (name, record) => Effect.gen(function* () {
|
|
212
|
+
const { raw } = yield* readRawConfig();
|
|
213
|
+
yield* writeRawConfig(nextProfileConfig(raw, name, record));
|
|
214
|
+
}).pipe(Effect.withSpan("writeProfile"));
|
|
207
215
|
/**
|
|
208
216
|
* `--no-persist` contract for `moltzap register`. Revised Invariant §4.4
|
|
209
217
|
* per architect design doc rev 4 finding 2: no file under `$HOME/.moltzap/`
|
|
@@ -220,11 +228,4 @@ export const writeProfile = (name, record) => Effect.gen(function* () {
|
|
|
220
228
|
* callers can `$(moltzap register --no-persist ...)` into env).
|
|
221
229
|
*/
|
|
222
230
|
export const emitNoPersist = (record) => Effect.succeed({ record });
|
|
223
|
-
// ─── Test seam ─────────────────────────────────────────────────────────────
|
|
224
|
-
/**
|
|
225
|
-
* Absolute path to the config file. Overridable at test time via the
|
|
226
|
-
* `MOLTZAP_CONFIG_HOME` env (tests set a tmp dir; production leaves unset).
|
|
227
|
-
* Exported so assertions can diff the file after a command run.
|
|
228
|
-
*/
|
|
229
|
-
export const getConfigFilePath = Effect.sync(() => getConfigFilePathSync());
|
|
230
231
|
//# sourceMappingURL=profile.js.map
|
package/dist/cli/profile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/cli/profile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/cli/profile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAS9E,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,EAAe,CAAC;AAKtD,MAAM,YAAY,GAAG,mCAAmC,CAAC;AAEzD,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AACnD,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAC/B,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,YAAY,GAAG,mBAAmB,CAAC;AACzC,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;AAwCnD,MAAM,OAAO,oBAAqB,SAAQ,IAAI,CAAC,WAAW,CACxD,sBAAsB,CAGtB;CAAG;AAEL,MAAM,yBAA0B,SAAQ,IAAI,CAAC,WAAW,CACtD,2BAA2B,CAG3B;CAAG;AAEL,MAAM,OAAO,uBAAwB,SAAQ,IAAI,CAAC,WAAW,CAC3D,yBAAyB,CAIzB;CAAG;AAEL,MAAM,OAAO,sBAAuB,SAAQ,IAAI,CAAC,WAAW,CAC1D,wBAAwB,CAIxB;CAAG;AAEL,MAAM,OAAO,uBAAwB,SAAQ,IAAI,CAAC,WAAW,CAC3D,yBAAyB,CAIzB;CAAG;AAEL,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,GAAW,EAC0C,EAAE;IACvD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,uBAAuB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CACnE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,uBAAuB,CAAC;YAC1B,IAAI,EAAE,GAAG;YACT,MAAM,EACJ,2FAA2F;SAC9F,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC;AASF,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAgC,EAAE,CAC5D,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAE3D,MAAM,mBAAmB,GAAG,CAC1B,GAAY,EACZ,iBAAyB,EACE,EAAE;IAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACrC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC;IAClC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,SAAS,GACb,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC;IACxE,MAAM,MAAM,GAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAC/D,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QACzC,OAAO,EAAE,GAAG,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC;IACvD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CACxB,UAAkB,EACoC,EAAE,CACxD,UAAU,CAAC,UAAU,CAAC,IAAI,CACxB,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAC5B,UAAU;KACP,MAAM,CAAC,UAAU,CAAC;KAClB,IAAI,CACH,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACxB,MAAM;IACJ,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC;IAChD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CACzB,CACF,CACJ,EACD,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EACpC,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,OAAO,CACZ,MAAM,CAAC,KAAK,CAAC;IACX,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IACtE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;CAC1C,CAAC,CACH,CACF,CAAC;AAEJ,MAAM,cAAc,GAAG,CACrB,UAAkB,EAClB,IAAY,EACoC,EAAE,CAClD,MAAM,CAAC,GAAG,CAAC;IACT,GAAG,EAAE,GAAY,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACpC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CACb,IAAI,sBAAsB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;CAC/D,CAAC,CAAC;AAEL,MAAM,sBAAsB,GAAG,CAC7B,UAAkB,EAClB,MAAe,EACmC,EAAE,CACpD,QAAQ,CAAC,MAAM,CAAC;IACd,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAmB,CAAC;IACrC,CAAC,CAAC,MAAM,CAAC,IAAI,CACT,IAAI,sBAAsB,CAAC;QACzB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,kCAAkC;KAC1C,CAAC,CACH,CAAC;AAER,MAAM,aAAa,GAAG,GAGpB,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,sBAAsB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC9D,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC,CAAC,CAAC;AAEL,SAAS,qBAAqB,CAC5B,GAAc,EACd,SAAiB;IAEjB,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACxE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,GAAc,EACd,SAAiB;IAEjB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IACvD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,6BAA6B;QACrE,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACrD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAG1B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACtB,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;IACvC,MAAM,SAAS,GACb,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC;IACzE,OAAO;QACL,OAAO,EAAE,qBAAqB,CAAC,GAAG,EAAE,SAAS,CAAC;QAC9C,QAAQ,EAAE,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC;QACzC,SAAS;KACV,CAAC;AACJ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAE9C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,IAA6B,EAI7B,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC;IACzC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,oBAAoB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAC9C,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAEjD,SAAS,qBAAqB,CAAC,MAAqB;IAClD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS;YACnC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE;YACvC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,GAAc,EACd,IAAoC,EACpC,MAAqB;IAErB,MAAM,IAAI,GAA4B,EAAE,GAAG,GAAG,EAAE,CAAC;IACjD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,IAAI,CAAC,QAAQ,GAAG;QACd,GAAG,gBAAgB;QACnB,CAAC,IAAI,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC;KACtC,CAAC;IACF,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,cAAc,GAAG,CACrB,IAA6B,EACiB,EAAE;IAChD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;IAC3C,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,CAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAC5B,UAAU;SACP,aAAa,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SAC7C,IAAI,CACH,MAAM,CAAC,QAAQ,CACb,UAAU,CAAC,eAAe,CACxB,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,GAAG,IAAI,EACrD,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAC3B,CACF,CACF,CACJ,EACD,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EACpC,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,OAAO,CACZ,MAAM,CAAC,KAAK,CAAC;QACX,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,MAAM,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACvE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;KAC1C,CAAC,CACH,CACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,IAAoC,EACpC,MAAqB,EACkD,EAAE,CACzE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;IACvC,KAAK,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;AAE3C;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAAqB,EACqC,EAAE,CAC5D,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC"}
|