@moltzap/client 2026.718.0 → 2026.720.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/cli/adapters.d.ts +18 -0
- package/dist/cli/adapters.d.ts.map +1 -0
- package/dist/cli/adapters.js +104 -0
- package/dist/cli/adapters.js.map +1 -0
- package/dist/cli/commands/messages.d.ts +22 -19
- package/dist/cli/commands/messages.d.ts.map +1 -1
- package/dist/cli/commands/messages.js +16 -27
- package/dist/cli/commands/messages.js.map +1 -1
- package/dist/cli/commands/send.d.ts +11 -4
- package/dist/cli/commands/send.d.ts.map +1 -1
- package/dist/cli/commands/send.js +14 -11
- package/dist/cli/commands/send.js.map +1 -1
- package/dist/cli/commands/start.d.ts +13 -3
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +13 -10
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/local-daemon-rpc.d.ts +114 -56
- package/dist/local-daemon-rpc.d.ts.map +1 -1
- package/dist/local-daemon-rpc.js +16 -13
- package/dist/local-daemon-rpc.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared adapters between Effect schemas and the command-line interface.
|
|
3
|
+
*/
|
|
4
|
+
import { Options } from "@effect/cli";
|
|
5
|
+
import { Schema } from "effect";
|
|
6
|
+
interface SchemaOptionPresentation {
|
|
7
|
+
readonly name?: string;
|
|
8
|
+
readonly description?: string;
|
|
9
|
+
}
|
|
10
|
+
type SchemaOptionPresentations<I> = Partial<Record<Extract<keyof I, string>, SchemaOptionPresentation>>;
|
|
11
|
+
/**
|
|
12
|
+
* Generates scalar named CLI options from a closed Effect Struct schema.
|
|
13
|
+
* The assembled encoded object is decoded once through the complete schema,
|
|
14
|
+
* keeping brands, transformations, refinements, and defaults authoritative.
|
|
15
|
+
*/
|
|
16
|
+
export declare const optionsFromSchema: <A extends Readonly<Record<string, unknown>>, I extends Readonly<Record<string, unknown>>>(schema: Schema.Schema<A, I, never>, presentations?: SchemaOptionPresentations<I>) => Options.Options<A>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=adapters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../src/cli/adapters.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAU,MAAM,EAAa,MAAM,QAAQ,CAAC;AAEnD,UAAU,wBAAwB;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,KAAK,yBAAyB,CAAC,CAAC,IAAI,OAAO,CACzC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,wBAAwB,CAAC,CAC3D,CAAC;AA6HF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC3C,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAE3C,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAClC,gBAAe,yBAAyB,CAAC,CAAC,CAAM,KAC/C,OAAO,CAAC,OAAO,CAAC,CAAC,CA2CnB,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared adapters between Effect schemas and the command-line interface.
|
|
3
|
+
*/
|
|
4
|
+
import { Options } from "@effect/cli";
|
|
5
|
+
import { Option, Schema, SchemaAST } from "effect";
|
|
6
|
+
class UnsupportedCliSchemaError extends Error {
|
|
7
|
+
constructor(field, astTag, reason) {
|
|
8
|
+
super(`Cannot generate CLI option for "${field}" (${astTag}): ${reason}`);
|
|
9
|
+
this.name = "UnsupportedCliSchemaError";
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
const unsupported = (field, astTag, reason) => {
|
|
13
|
+
throw new UnsupportedCliSchemaError(field, astTag, reason);
|
|
14
|
+
};
|
|
15
|
+
const kebabCase = (value) => value
|
|
16
|
+
.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`)
|
|
17
|
+
.replace(/^-/, "");
|
|
18
|
+
const withoutUndefined = (ast) => {
|
|
19
|
+
if (!SchemaAST.isUnion(ast))
|
|
20
|
+
return ast;
|
|
21
|
+
const members = ast.types.filter((member) => !SchemaAST.isUndefinedKeyword(member));
|
|
22
|
+
return SchemaAST.Union.make(members, ast.annotations);
|
|
23
|
+
};
|
|
24
|
+
const hasIntegerRefinement = (ast) => {
|
|
25
|
+
if (SchemaAST.isRefinement(ast)) {
|
|
26
|
+
return (Option.contains(SchemaAST.getSchemaIdAnnotation(ast), Schema.IntSchemaId) || hasIntegerRefinement(ast.from));
|
|
27
|
+
}
|
|
28
|
+
if (SchemaAST.isUnion(ast))
|
|
29
|
+
return ast.types.some(hasIntegerRefinement);
|
|
30
|
+
if (SchemaAST.isTransformation(ast))
|
|
31
|
+
return hasIntegerRefinement(ast.to);
|
|
32
|
+
return false;
|
|
33
|
+
};
|
|
34
|
+
const propertyName = (property) => typeof property.name === "string"
|
|
35
|
+
? property.name
|
|
36
|
+
: unsupported(String(property.name), property.type._tag, "symbol property keys are not supported");
|
|
37
|
+
const closedProperties = (ast, side) => {
|
|
38
|
+
if (!SchemaAST.isTypeLiteral(ast) || ast.indexSignatures.length > 0) {
|
|
39
|
+
return unsupported("<root>", ast._tag, `the top-level ${side} schema must be a closed Struct`);
|
|
40
|
+
}
|
|
41
|
+
return ast.propertySignatures;
|
|
42
|
+
};
|
|
43
|
+
const scalarOption = (field, name, encodedAst, validationAst) => {
|
|
44
|
+
if (SchemaAST.isStringKeyword(encodedAst))
|
|
45
|
+
return Options.text(name);
|
|
46
|
+
if (SchemaAST.isNumberKeyword(encodedAst)) {
|
|
47
|
+
return hasIntegerRefinement(validationAst)
|
|
48
|
+
? Options.integer(name)
|
|
49
|
+
: Options.float(name);
|
|
50
|
+
}
|
|
51
|
+
return unsupported(field, encodedAst._tag, "only encoded string and number scalar fields are supported");
|
|
52
|
+
};
|
|
53
|
+
const fragmentForProperty = (property, validationProperty, presentation, claimedNames) => {
|
|
54
|
+
const field = propertyName(property);
|
|
55
|
+
const name = presentation.name ?? kebabCase(field);
|
|
56
|
+
if (claimedNames.has(name)) {
|
|
57
|
+
return unsupported(field, "OptionNameCollision", `the option name "${name}" is already in use`);
|
|
58
|
+
}
|
|
59
|
+
claimedNames.add(name);
|
|
60
|
+
const encodedAst = property.isOptional
|
|
61
|
+
? withoutUndefined(property.type)
|
|
62
|
+
: property.type;
|
|
63
|
+
const validationAst = validationProperty.isOptional
|
|
64
|
+
? withoutUndefined(validationProperty.type)
|
|
65
|
+
: validationProperty.type;
|
|
66
|
+
const primitive = scalarOption(field, name, encodedAst, validationAst);
|
|
67
|
+
const presented = presentation.description === undefined
|
|
68
|
+
? primitive
|
|
69
|
+
: primitive.pipe(Options.withDescription(presentation.description));
|
|
70
|
+
if (!property.isOptional) {
|
|
71
|
+
return presented.pipe(Options.map((value) => ({ [field]: value })));
|
|
72
|
+
}
|
|
73
|
+
return presented.pipe(Options.optional, Options.map(Option.match({
|
|
74
|
+
onNone: () => ({}),
|
|
75
|
+
onSome: (value) => ({ [field]: value }),
|
|
76
|
+
})));
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Generates scalar named CLI options from a closed Effect Struct schema.
|
|
80
|
+
* The assembled encoded object is decoded once through the complete schema,
|
|
81
|
+
* keeping brands, transformations, refinements, and defaults authoritative.
|
|
82
|
+
*/
|
|
83
|
+
export const optionsFromSchema = (schema, presentations = {}) => {
|
|
84
|
+
const properties = closedProperties(Schema.encodedSchema(schema).ast, "encoded");
|
|
85
|
+
if (properties.length === 0) {
|
|
86
|
+
return unsupported("<root>", "TypeLiteral", "empty Structs do not define any CLI options");
|
|
87
|
+
}
|
|
88
|
+
const validationProperties = new Map(closedProperties(Schema.typeSchema(schema).ast, "type").map((property) => [
|
|
89
|
+
propertyName(property),
|
|
90
|
+
property,
|
|
91
|
+
]));
|
|
92
|
+
const presentationByField = new Map(Object.entries(presentations));
|
|
93
|
+
const claimedNames = new Set();
|
|
94
|
+
const fragments = properties.map((property) => {
|
|
95
|
+
const field = propertyName(property);
|
|
96
|
+
const validationProperty = validationProperties.get(field);
|
|
97
|
+
if (validationProperty === undefined) {
|
|
98
|
+
return unsupported(field, "RenamedProperty", "encoded and type-side property names must match");
|
|
99
|
+
}
|
|
100
|
+
return fragmentForProperty(property, validationProperty, presentationByField.get(field) ?? {}, claimedNames);
|
|
101
|
+
});
|
|
102
|
+
return Options.all(fragments).pipe(Options.map((parts) => Object.assign({}, ...parts)), Options.withSchema(schema));
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=adapters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/cli/adapters.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,35 +3,38 @@
|
|
|
3
3
|
*
|
|
4
4
|
* messages list → agent/message/list
|
|
5
5
|
*
|
|
6
|
-
* `messages` is a subcommand group
|
|
7
|
-
* `send` command
|
|
8
|
-
* current protocol.
|
|
6
|
+
* `messages` is a subcommand group, distinct from the one-shot top-level
|
|
7
|
+
* `send` command.
|
|
9
8
|
*/
|
|
10
9
|
import { Command } from "@effect/cli";
|
|
11
|
-
import { Effect,
|
|
10
|
+
import { Effect, Schema } from "effect";
|
|
12
11
|
import { type Transport, type TransportError } from "../transport.js";
|
|
13
|
-
|
|
14
|
-
import
|
|
12
|
+
declare const messagesListPayload: Schema.Struct<{
|
|
13
|
+
taskId: Schema.Schema<import("@moltzap/protocol/task").TaskId, string, never>;
|
|
14
|
+
conversationId: Schema.Schema<import("@moltzap/protocol/conversation").ConversationId, string, never>;
|
|
15
|
+
limit: Schema.optional<Schema.filter<Schema.filter<Schema.filter<typeof Schema.Number>>>>;
|
|
16
|
+
}>;
|
|
15
17
|
export type MessagesCommandError = TransportError;
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
-
* absent: no server backing in the current protocol.
|
|
19
|
-
*/
|
|
20
|
-
export interface MessagesListArgs {
|
|
21
|
-
readonly taskId: TaskId;
|
|
22
|
-
readonly conversationId: ConversationId;
|
|
23
|
-
readonly limit?: number;
|
|
24
|
-
}
|
|
18
|
+
/** `moltzap messages list --conversation <id> [--limit N]`. */
|
|
19
|
+
export type MessagesListArgs = Schema.Schema.Type<typeof messagesListPayload>;
|
|
25
20
|
/**
|
|
26
21
|
* Wraps `agent/message/list` and emits the full daemon result as JSON.
|
|
27
22
|
*/
|
|
28
23
|
export declare const messagesListHandler: (args: MessagesListArgs) => Effect.Effect<void, MessagesCommandError, Transport>;
|
|
24
|
+
export declare const messagesListOptions: import("@effect/cli/Options").Options<{
|
|
25
|
+
readonly taskId: import("@moltzap/protocol/task").TaskId;
|
|
26
|
+
readonly conversationId: import("@moltzap/protocol/conversation").ConversationId;
|
|
27
|
+
readonly limit?: number | undefined;
|
|
28
|
+
}>;
|
|
29
29
|
/** `moltzap messages [list]` subcommand group. */
|
|
30
30
|
export declare const messagesCommand: Command.Command<"messages", Transport, never, {
|
|
31
|
-
readonly subcommand: Option.Option<{
|
|
32
|
-
readonly
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
readonly subcommand: import("effect/Option").Option<{
|
|
32
|
+
readonly params: {
|
|
33
|
+
readonly taskId: import("@moltzap/protocol/task").TaskId;
|
|
34
|
+
readonly conversationId: import("@moltzap/protocol/conversation").ConversationId;
|
|
35
|
+
readonly limit?: number | undefined;
|
|
36
|
+
};
|
|
35
37
|
}>;
|
|
36
38
|
}>;
|
|
39
|
+
export {};
|
|
37
40
|
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/messages.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/messages.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAC;AASzB,QAAA,MAAM,mBAAmB;;;;EAAuC,CAAC;AAIjE,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAIlD,kEAAkE;AAClE,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAI9E;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,gBAAgB,KACrB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,oBAAoB,EAAE,SAAS,CAIL,CAAC;AAIlD,eAAO,MAAM,mBAAmB;;;;EAM9B,CAAC;AAQH,kDAAkD;AAClD,eAAO,MAAM,eAAe;;;;;;;;EAW3B,CAAC"}
|
|
@@ -3,44 +3,33 @@
|
|
|
3
3
|
*
|
|
4
4
|
* messages list → agent/message/list
|
|
5
5
|
*
|
|
6
|
-
* `messages` is a subcommand group
|
|
7
|
-
* `send` command
|
|
8
|
-
* current protocol.
|
|
6
|
+
* `messages` is a subcommand group, distinct from the one-shot top-level
|
|
7
|
+
* `send` command.
|
|
9
8
|
*/
|
|
10
|
-
import { Command
|
|
11
|
-
import { Effect,
|
|
9
|
+
import { Command } from "@effect/cli";
|
|
10
|
+
import { Effect, Schema } from "effect";
|
|
12
11
|
import { command, runHandler, } from "../transport.js";
|
|
13
12
|
import { logJson, logLines } from "../output.js";
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
|
|
13
|
+
import { LocalDaemonCommands, MessagesListCommandRpc, } from "../../local-daemon-rpc.js";
|
|
14
|
+
import { optionsFromSchema } from "../adapters.js";
|
|
15
|
+
const messagesListPayload = MessagesListCommandRpc.payloadSchema;
|
|
17
16
|
// ─── Handlers ──────────────────────────────────────────────────────────────
|
|
18
17
|
/**
|
|
19
18
|
* Wraps `agent/message/list` and emits the full daemon result as JSON.
|
|
20
19
|
*/
|
|
21
20
|
export const messagesListHandler = (args) => Effect.gen(function* () {
|
|
22
|
-
const
|
|
23
|
-
? { taskId: args.taskId, conversationId: args.conversationId }
|
|
24
|
-
: {
|
|
25
|
-
taskId: args.taskId,
|
|
26
|
-
conversationId: args.conversationId,
|
|
27
|
-
limit: args.limit,
|
|
28
|
-
};
|
|
29
|
-
const result = yield* command(LocalDaemonCommands.MessagesList, params);
|
|
21
|
+
const result = yield* command(LocalDaemonCommands.MessagesList, args);
|
|
30
22
|
yield* logJson(result);
|
|
31
23
|
}).pipe(Effect.withSpan("messagesListHandler"));
|
|
32
24
|
// ─── CLI commands ──────────────────────────────────────────────────────────
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
};
|
|
42
|
-
return runHandler(messagesListHandler(args));
|
|
43
|
-
}).pipe(Command.withDescription("List messages in a conversation"));
|
|
25
|
+
export const messagesListOptions = optionsFromSchema(messagesListPayload, {
|
|
26
|
+
taskId: { name: "task", description: "Task id" },
|
|
27
|
+
conversationId: {
|
|
28
|
+
name: "conversation",
|
|
29
|
+
description: "Conversation id",
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
const messagesListCommand = Command.make("list", { params: messagesListOptions }, ({ params }) => runHandler(messagesListHandler(params))).pipe(Command.withDescription("List messages in a conversation"));
|
|
44
33
|
/** `moltzap messages [list]` subcommand group. */
|
|
45
34
|
export const messagesCommand = Command.make("messages", {}, () => logLines([
|
|
46
35
|
"Usage: moltzap messages list --task <id> --conversation <id> [--limit N]",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/cli/commands/messages.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/cli/commands/messages.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EACL,OAAO,EACP,UAAU,GAGX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,aAAa,CAAC;AAWjE,8EAA8E;AAE9E;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,IAAsB,EACgC,EAAE,CACxD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACtE,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAElD,8EAA8E;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,mBAAmB,EAAE;IACxE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE;IAChD,cAAc,EAAE;QACd,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,iBAAiB;KAC/B;CACF,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CACtC,MAAM,EACN,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAC/B,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CACxD,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,iCAAiC,CAAC,CAAC,CAAC;AAEnE,kDAAkD;AAClD,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,CAC/D,QAAQ,CAAC;IACP,0EAA0E;CAC3E,CAAC,CACH,CAAC,IAAI,CACJ,OAAO,CAAC,eAAe,CACrB,qEAAqE;IACnE,8DAA8D;IAC9D,+CAA+C,CAClD,EACD,OAAO,CAAC,eAAe,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAC/C,CAAC"}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import { Command } from "@effect/cli";
|
|
2
|
-
import {
|
|
2
|
+
import { Schema } from "effect";
|
|
3
3
|
import { type SendTarget as SendTargetValue } from "../../local-daemon-rpc.js";
|
|
4
4
|
import type { Transport } from "../transport.js";
|
|
5
|
-
import { MessageId } from "@moltzap/protocol/conversation";
|
|
6
5
|
type SendCommandParsed = {
|
|
7
6
|
readonly target: SendTargetValue;
|
|
8
7
|
readonly message: string;
|
|
9
|
-
readonly
|
|
8
|
+
readonly options: Schema.Schema.Type<typeof SendOptionsSchema>;
|
|
10
9
|
};
|
|
10
|
+
declare const SendOptionsSchema: Schema.SchemaClass<{
|
|
11
|
+
readonly replyToId?: import("@moltzap/protocol/conversation").MessageId | undefined;
|
|
12
|
+
}, {
|
|
13
|
+
readonly replyToId?: string | undefined;
|
|
14
|
+
}, never>;
|
|
15
|
+
export declare const sendOptions: import("@effect/cli/Options").Options<{
|
|
16
|
+
readonly replyToId?: import("@moltzap/protocol/conversation").MessageId | undefined;
|
|
17
|
+
}>;
|
|
11
18
|
/**
|
|
12
19
|
* `moltzap send task:<taskId>:<convId> <message> [--reply-to <id>]` —
|
|
13
20
|
* socket-call into the local MoltZapService to enqueue an outbound
|
|
@@ -40,7 +47,7 @@ type SendCommandParsed = {
|
|
|
40
47
|
* participant daemon
|
|
41
48
|
*
|
|
42
49
|
* shell->>cli: moltzap send task:taskId:convId msg
|
|
43
|
-
* cli->>send: handler({target, message,
|
|
50
|
+
* cli->>send: handler({target, message, options})
|
|
44
51
|
* send->>sock: command(cli/send, {target, message, replyToId?})
|
|
45
52
|
* Note over sock: NodeSocket.makeNet(~/.moltzap/service.sock, 10s) — ENOENT/ECONNREFUSED → SocketRequestError "not running"
|
|
46
53
|
* sock->>daemon: NDJSON RPC — cli/send
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,
|
|
1
|
+
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAIL,KAAK,UAAU,IAAI,eAAe,EACnC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,iBAAiB,CAAC,CAAC;CAChE,CAAC;AAWF,QAAA,MAAM,iBAAiB;;;;SAEtB,CAAC;AACF,eAAO,MAAM,WAAW;;EAKtB,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,OAAO,CACvC,MAAM,EACN,SAAS,EACT,KAAK,EACL,iBAAiB,CAuBlB,CAAC"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
import { Args, Command
|
|
2
|
-
import { Effect,
|
|
3
|
-
import { LocalDaemonCommands, SendTarget, } from "../../local-daemon-rpc.js";
|
|
1
|
+
import { Args, Command } from "@effect/cli";
|
|
2
|
+
import { Effect, Schema } from "effect";
|
|
3
|
+
import { LocalDaemonCommands, SendCommandRpc, SendTarget, } from "../../local-daemon-rpc.js";
|
|
4
4
|
import { command, runHandler } from "../transport.js";
|
|
5
|
-
import {
|
|
5
|
+
import { optionsFromSchema } from "../adapters.js";
|
|
6
6
|
const targetArg = Args.text({ name: "target" }).pipe(Args.withSchema(SendTarget), Args.withDescription("Target task+conversation as task:<taskId>:<convId>"));
|
|
7
7
|
const messageArg = Args.text({ name: "message" }).pipe(Args.withDescription("Message text"));
|
|
8
|
-
const
|
|
8
|
+
const SendOptionsSchema = SendCommandRpc.payloadSchema.pipe(Schema.omit("target", "message"));
|
|
9
|
+
export const sendOptions = optionsFromSchema(SendOptionsSchema, {
|
|
10
|
+
replyToId: {
|
|
11
|
+
name: "reply-to",
|
|
12
|
+
description: "Reply to a specific message",
|
|
13
|
+
},
|
|
14
|
+
});
|
|
9
15
|
/**
|
|
10
16
|
* `moltzap send task:<taskId>:<convId> <message> [--reply-to <id>]` —
|
|
11
17
|
* socket-call into the local MoltZapService to enqueue an outbound
|
|
@@ -38,7 +44,7 @@ const replyToOption = Options.text("reply-to").pipe(Options.withSchema(MessageId
|
|
|
38
44
|
* participant daemon
|
|
39
45
|
*
|
|
40
46
|
* shell->>cli: moltzap send task:taskId:convId msg
|
|
41
|
-
* cli->>send: handler({target, message,
|
|
47
|
+
* cli->>send: handler({target, message, options})
|
|
42
48
|
* send->>sock: command(cli/send, {target, message, replyToId?})
|
|
43
49
|
* Note over sock: NodeSocket.makeNet(~/.moltzap/service.sock, 10s) — ENOENT/ECONNREFUSED → SocketRequestError "not running"
|
|
44
50
|
* sock->>daemon: NDJSON RPC — cli/send
|
|
@@ -51,14 +57,11 @@ const replyToOption = Options.text("reply-to").pipe(Options.withSchema(MessageId
|
|
|
51
57
|
* `--profile` selects the per-agent daemon socket; credentials remain owned
|
|
52
58
|
* by the running MoltZapService.
|
|
53
59
|
*/
|
|
54
|
-
export const sendCommand = Command.make("send", { target: targetArg, message: messageArg,
|
|
55
|
-
const reply = Option.isSome(replyTo)
|
|
56
|
-
? { replyToId: replyTo.value }
|
|
57
|
-
: {};
|
|
60
|
+
export const sendCommand = Command.make("send", { target: targetArg, message: messageArg, options: sendOptions }, ({ target, message, options }) => {
|
|
58
61
|
return runHandler(command(LocalDaemonCommands.Send, {
|
|
59
62
|
target,
|
|
60
63
|
message,
|
|
61
|
-
...
|
|
64
|
+
...options,
|
|
62
65
|
}).pipe(Effect.flatMap((result) => Effect.log(`Message sent (id: ${result.messageId})`)), Effect.asVoid));
|
|
63
66
|
}).pipe(Command.withDescription("Send a message to task:<taskId>:<conversationId>. " +
|
|
64
67
|
"Identity follows the global --profile flag."));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,UAAU,GAEX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAQnD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAClD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAC3B,IAAI,CAAC,eAAe,CAAC,oDAAoD,CAAC,CAC3E,CAAC;AAEF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CACpD,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CACrC,CAAC;AAEF,MAAM,iBAAiB,GAAG,cAAc,CAAC,aAAa,CAAC,IAAI,CACzD,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CACjC,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAG,iBAAiB,CAAC,iBAAiB,EAAE;IAC9D,SAAS,EAAE;QACT,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,6BAA6B;KAC3C;CACF,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,CAAC,MAAM,WAAW,GAKpB,OAAO,CAAC,IAAI,CACd,MAAM,EACN,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,EAChE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IAC/B,OAAO,UAAU,CACf,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE;QAChC,MAAM;QACN,OAAO;QACP,GAAG,OAAO;KACX,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,SAAS,GAAG,CAAC,CACrD,EACD,MAAM,CAAC,MAAM,CACd,CACF,CAAC;AACJ,CAAC,CACF,CAAC,IAAI,CACJ,OAAO,CAAC,eAAe,CACrB,oDAAoD;IAClD,6CAA6C,CAChD,CACF,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Command } from "@effect/cli";
|
|
2
|
-
import { Effect,
|
|
2
|
+
import { Effect, Schema } from "effect";
|
|
3
3
|
import { AppIdV4, type StartParticipant as StartParticipantType } from "../../local-daemon-rpc.js";
|
|
4
4
|
import { type Transport } from "../transport.js";
|
|
5
5
|
export interface StartCommandArgs {
|
|
@@ -11,9 +11,19 @@ export interface StartCommandArgs {
|
|
|
11
11
|
type StartCommandParsed = {
|
|
12
12
|
readonly name: string;
|
|
13
13
|
readonly participants: StartParticipantType[];
|
|
14
|
-
readonly
|
|
15
|
-
readonly appId: Option.Option<AppIdV4>;
|
|
14
|
+
readonly options: Schema.Schema.Type<typeof StartOptionsSchema>;
|
|
16
15
|
};
|
|
16
|
+
declare const StartOptionsSchema: Schema.SchemaClass<{
|
|
17
|
+
readonly message?: string | undefined;
|
|
18
|
+
readonly appId?: import("@moltzap/protocol/identity").AppId | undefined;
|
|
19
|
+
}, {
|
|
20
|
+
readonly message?: string | undefined;
|
|
21
|
+
readonly appId?: string | undefined;
|
|
22
|
+
}, never>;
|
|
23
|
+
export declare const startOptions: import("@effect/cli/Options").Options<{
|
|
24
|
+
readonly message?: string | undefined;
|
|
25
|
+
readonly appId?: import("@moltzap/protocol/identity").AppId | undefined;
|
|
26
|
+
}>;
|
|
17
27
|
export declare const runStartHandler: (args: StartCommandArgs) => Effect.Effect<void, never, Transport>;
|
|
18
28
|
export declare const startCommand: Command.Command<"start", Transport, never, StartCommandParsed>;
|
|
19
29
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EACL,OAAO,EAMP,KAAK,gBAAgB,IAAI,oBAAoB,EAE9C,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAW,KAAK,SAAS,EAAuB,MAAM,iBAAiB,CAAC;AAY/E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;CACrC;AAID,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;CACjE,CAAC;AA4EF,QAAA,MAAM,kBAAkB;;;;;;SAEvB,CAAC;AACF,eAAO,MAAM,YAAY;;;EAGvB,CAAC;AAEH,eAAO,MAAM,eAAe,GAC1B,MAAM,gBAAgB,KACrB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CACK,CAAC;AAE7C,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,OAAO,CACxC,OAAO,EACP,SAAS,EACT,KAAK,EACL,kBAAkB,CAyBnB,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { Args, Command
|
|
2
|
-
import { Effect,
|
|
3
|
-
import { AppIdV4, LocalDaemonCommands, StartParticipant, StartTaskPartialFailure, StartTaskUsageError, } from "../../local-daemon-rpc.js";
|
|
1
|
+
import { Args, Command } from "@effect/cli";
|
|
2
|
+
import { Effect, Schema } from "effect";
|
|
3
|
+
import { AppIdV4, LocalDaemonCommands, StartParticipant, StartTaskPartialFailure, StartTaskCommandRpc, StartTaskUsageError, } from "../../local-daemon-rpc.js";
|
|
4
4
|
import { command } from "../transport.js";
|
|
5
|
+
import { optionsFromSchema } from "../adapters.js";
|
|
5
6
|
const EXIT_CODES = {
|
|
6
7
|
SUCCESS: 0,
|
|
7
8
|
TASK_CREATE_FAILED: 1,
|
|
@@ -28,19 +29,21 @@ const runStartCommand = (effect) => effect.pipe(Effect.catchTag("StartTaskUsageE
|
|
|
28
29
|
}));
|
|
29
30
|
const nameArg = Args.text({ name: "name" }).pipe(Args.withDescription("Conversation name"));
|
|
30
31
|
const participantsArg = Args.text({ name: "participant" }).pipe(Args.withSchema(StartParticipant), Args.withDescription("Participant token (for example agent:bob)."), Args.repeated);
|
|
31
|
-
const
|
|
32
|
-
const
|
|
32
|
+
const StartOptionsSchema = StartTaskCommandRpc.payloadSchema.pipe(Schema.omit("name", "participants"));
|
|
33
|
+
export const startOptions = optionsFromSchema(StartOptionsSchema, {
|
|
34
|
+
message: { description: "First message body" },
|
|
35
|
+
appId: { description: "App UUID v4. Defaults to the MoltZap app." },
|
|
36
|
+
});
|
|
33
37
|
export const runStartHandler = (args) => runStartCommand(startCommandHandler(args));
|
|
34
38
|
export const startCommand = Command.make("start", {
|
|
35
39
|
name: nameArg,
|
|
36
40
|
participants: participantsArg,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}, ({ name, participants, message, appId }) => runStartHandler({
|
|
41
|
+
options: startOptions,
|
|
42
|
+
}, ({ name, participants, options }) => runStartHandler({
|
|
40
43
|
name,
|
|
41
44
|
participants,
|
|
42
|
-
message:
|
|
43
|
-
appId:
|
|
45
|
+
message: options.message,
|
|
46
|
+
appId: options.appId,
|
|
44
47
|
})).pipe(Command.withDescription("Start a task with named participants and optionally send the first message.\n" +
|
|
45
48
|
"\n" +
|
|
46
49
|
"Exit codes:\n" +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EACL,OAAO,EACP,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,GAGpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,EAAuC,MAAM,iBAAiB,CAAC;AAG/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,UAAU,GAAG;IACjB,OAAO,EAAE,CAAC;IACV,kBAAkB,EAAE,CAAC;IACrB,eAAe,EAAE,CAAC;IAClB,WAAW,EAAE,EAAE;CACP,CAAC;AAiBX,MAAM,YAAY,GAAG,CAAC,OAIrB,EAAU,EAAE,CACX,OAAO,CAAC,kBAAkB;IACxB,CAAC,CAAC,iBAAiB,OAAO,CAAC,MAAM,oCAAoC,OAAO,CAAC,cAAc,GAAG;IAC9F,CAAC,CAAC,iBAAiB,OAAO,CAAC,MAAM,mBAAmB,OAAO,CAAC,cAAc,GAAG,CAAC;AAElF,MAAM,cAAc,GAAG,CAAC,MAA8B,EAAuB,EAAE,CAC7E,MAAM,CAAC,QAAQ,CACb,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAChC,MAAM,CAAC,aAAa,KAAK,SAAS;IAChC,CAAC,CAAC,MAAM,CAAC,IAAI;IACb,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,aAAa,EAAE,CAAC,CACxD,CAAC;AAEJ,MAAM,mBAAmB,GAAG,CAC1B,IAAsB,EAC6B,EAAE,CACrD,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE;IACrC,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,YAAY,EAAE,IAAI,CAAC,YAAY;IAC/B,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IAChE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;CAC3D,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAC9B,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CACvC,CAAC;AAEJ,MAAM,eAAe,GAAG,CACtB,MAAyD,EAClB,EAAE,CACzC,MAAM,CAAC,IAAI,CACT,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC,GAAwB,EAAE,EAAE,CAClE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAC/B,MAAM,CAAC,QAAQ,CACb,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CACxD,CACF,CACF,EACD,MAAM,CAAC,QAAQ,CAAC,yBAAyB,EAAE,CAAC,GAA4B,EAAE,EAAE,CAC1E,MAAM,CAAC,QAAQ,CACb,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAC7B,MAAM,CAAC,QAAQ,CAAC,0BAA0B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAC3D,MAAM,CAAC,QAAQ,CACb,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAC5D,CACF,CACF,CACF,EACD,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE;IACtB,MAAM,GAAG,GACP,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,EAAE;QAC7C,CAAC,CAAC,GAAG,CAAC,OAAO;QACb,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IACf,OAAO,MAAM,CAAC,QAAQ,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,IAAI,CAC3C,MAAM,CAAC,QAAQ,CACb,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAC/D,CACF,CAAC;AACJ,CAAC,CAAC,CACH,CAAC;AAEJ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAC9C,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAC1C,CAAC;AAEF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,IAAI,CAC7D,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EACjC,IAAI,CAAC,eAAe,CAAC,4CAA4C,CAAC,EAClE,IAAI,CAAC,QAAQ,CACd,CAAC;AAEF,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAC/D,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CACpC,CAAC;AACF,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,CAAC,kBAAkB,EAAE;IAChE,OAAO,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE;IAC9C,KAAK,EAAE,EAAE,WAAW,EAAE,2CAA2C,EAAE;CACpE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,IAAsB,EACiB,EAAE,CACzC,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,YAAY,GAKrB,OAAO,CAAC,IAAI,CACd,OAAO,EACP;IACE,IAAI,EAAE,OAAO;IACb,YAAY,EAAE,eAAe;IAC7B,OAAO,EAAE,YAAY;CACtB,EACD,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,CAClC,eAAe,CAAC;IACd,IAAI;IACJ,YAAY;IACZ,OAAO,EAAE,OAAO,CAAC,OAAO;IACxB,KAAK,EAAE,OAAO,CAAC,KAAK;CACrB,CAAC,CACL,CAAC,IAAI,CACJ,OAAO,CAAC,eAAe,CACrB,+EAA+E;IAC7E,IAAI;IACJ,eAAe;IACf,KAAK,UAAU,CAAC,OAAO,cAAc;IACrC,KAAK,UAAU,CAAC,kBAAkB,qCAAqC;IACvE,KAAK,UAAU,CAAC,eAAe,yCAAyC;IACxE,KAAK,UAAU,CAAC,WAAW,eAAe,CAC7C,CACF,CAAC"}
|