@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.
@@ -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 (distinct from the one-shot top-level
7
- * `send` command). `--cursor` is absent: it has no server backing in the
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, Option } from "effect";
10
+ import { Effect, Schema } from "effect";
12
11
  import { type Transport, type TransportError } from "../transport.js";
13
- import { ConversationId } from "@moltzap/protocol/conversation";
14
- import { TaskId } from "@moltzap/protocol/task";
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
- * `moltzap messages list --conversation &lt;id> [--limit N]`. `cursor` is
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 &lt;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 task: TaskId;
33
- readonly conversation: ConversationId;
34
- readonly limit: Option.Option<number>;
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;;;;;;;;GAQG;AACH,OAAO,EAAE,OAAO,EAAW,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAKhD,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAIlD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAID;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,gBAAgB,KACrB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,oBAAoB,EAAE,SAAS,CAYL,CAAC;AA2BlD,kDAAkD;AAClD,eAAO,MAAM,eAAe;;;;;;EAW3B,CAAC"}
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 (distinct from the one-shot top-level
7
- * `send` command). `--cursor` is absent: it has no server backing in the
8
- * current protocol.
6
+ * `messages` is a subcommand group, distinct from the one-shot top-level
7
+ * `send` command.
9
8
  */
10
- import { Command, Options } from "@effect/cli";
11
- import { Effect, Option } from "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 { ConversationId } from "@moltzap/protocol/conversation";
15
- import { TaskId } from "@moltzap/protocol/task";
16
- import { LocalDaemonCommands } from "../../local-daemon-rpc.js";
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 params = args.limit === undefined
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 taskOption = Options.text("task").pipe(Options.withSchema(TaskId), Options.withDescription("Task id"));
34
- const conversationOption = Options.text("conversation").pipe(Options.withSchema(ConversationId), Options.withDescription("Conversation id"));
35
- const msgLimitOption = Options.integer("limit").pipe(Options.optional);
36
- const messagesListCommand = Command.make("list", { task: taskOption, conversation: conversationOption, limit: msgLimitOption }, ({ task, conversation, limit }) => {
37
- const args = {
38
- taskId: task,
39
- conversationId: conversation,
40
- ...(Option.isSome(limit) ? { limit: limit.value } : {}),
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;;;;;;;;GAQG;AACH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC/C,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,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAkBhE,8EAA8E;AAE9E;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,IAAsB,EACgC,EAAE,CACxD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GACV,IAAI,CAAC,KAAK,KAAK,SAAS;QACtB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE;QAC9D,CAAC,CAAC;YACE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;IACR,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACxE,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,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAC1C,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAC1B,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CACnC,CAAC;AACF,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAC1D,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,EAClC,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAC3C,CAAC;AACF,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvE,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CACtC,MAAM,EACN,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,KAAK,EAAE,cAAc,EAAE,EAC7E,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE;IAChC,MAAM,IAAI,GAAqB;QAC7B,MAAM,EAAE,IAAI;QACZ,cAAc,EAAE,YAAY;QAC5B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAC;IACF,OAAO,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC,CACF,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
+ {"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 { Option } from "effect";
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 replyTo: Option.Option<MessageId>;
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:&lt;taskId>:&lt;convId> &lt;message> [--reply-to &lt;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, replyTo})
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,EAAW,MAAM,aAAa,CAAC;AACrD,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAGL,KAAK,UAAU,IAAI,eAAe,EACnC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,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,SAAS,CAAC,CAAC;CAC5C,CAAC;AAiBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,OAAO,CACvC,MAAM,EACN,SAAS,EACT,KAAK,EACL,iBAAiB,CA0BlB,CAAC"}
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, Options } from "@effect/cli";
2
- import { Effect, Option } from "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 { MessageId } from "@moltzap/protocol/conversation";
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 replyToOption = Options.text("reply-to").pipe(Options.withSchema(MessageId), Options.withDescription("Reply to a specific message"), Options.optional);
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:&lt;taskId>:&lt;convId> &lt;message> [--reply-to &lt;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, replyTo})
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, replyTo: replyToOption }, ({ target, message, replyTo }) => {
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
- ...reply,
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,OAAO,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EACL,mBAAmB,EACnB,UAAU,GAEX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGtD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAQ3D,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,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CACjD,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAC7B,OAAO,CAAC,eAAe,CAAC,6BAA6B,CAAC,EACtD,OAAO,CAAC,QAAQ,CACjB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,CAAC,MAAM,WAAW,GAKpB,OAAO,CAAC,IAAI,CACd,MAAM,EACN,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,EAClE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IAC/B,MAAM,KAAK,GAA8B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7D,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE;QAC9B,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,UAAU,CACf,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE;QAChC,MAAM;QACN,OAAO;QACP,GAAG,KAAK;KACT,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
+ {"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, Option } from "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 message: Option.Option<string>;
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,EAAW,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EACL,OAAO,EAKP,KAAK,gBAAgB,IAAI,oBAAoB,EAE9C,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAW,KAAK,SAAS,EAAuB,MAAM,iBAAiB,CAAC;AAW/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,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;CACxC,CAAC;AAuFF,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,CA0BnB,CAAC"}
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, Options } from "@effect/cli";
2
- import { Effect, Option } from "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 messageOption = Options.text("message").pipe(Options.withDescription("First message body"), Options.optional);
32
- const appIdOption = Options.text("app-id").pipe(Options.withSchema(AppIdV4), Options.withDescription("App UUID v4. Defaults to the MoltZap app."), Options.optional);
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
- message: messageOption,
38
- appId: appIdOption,
39
- }, ({ name, participants, message, appId }) => runStartHandler({
41
+ options: startOptions,
42
+ }, ({ name, participants, options }) => runStartHandler({
40
43
  name,
41
44
  participants,
42
- message: Option.getOrUndefined(message),
43
- appId: Option.getOrUndefined(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":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}