paperclip-plugin-telegram 0.8.0 → 0.8.1

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.
@@ -1,6 +1,8 @@
1
+ import { emitOrLog } from "./events.js";
1
2
  import { sendMessage, escapeMarkdownV2, sendChatAction } from "./telegram-api.js";
2
3
  import { truncateAtWord } from "./telegram-api.js";
3
4
  import { resolveMappedProjectIdForTopic } from "./topic-projects.js";
5
+ import { str } from "./coerce.js";
4
6
  import { MAX_AGENTS_PER_THREAD, DEFAULT_CONVERSATION_TURNS, MAX_CONVERSATION_TURNS, ACP_SPAWN_EVENT, ACP_OUTPUT_EVENT, } from "./constants.js";
5
7
  // --- Setup: register ACP output listener ---
6
8
  /**
@@ -201,14 +203,13 @@ async function handleAcpSpawn(ctx, token, chatId, agentName, messageThreadId, co
201
203
  sessions.push(newSession);
202
204
  await saveSessions(ctx, chatId, messageThreadId, sessions);
203
205
  if (transport === "acp") {
204
- // Emit ACP spawn event - companyId is SECOND arg
205
- ctx.events.emit(ACP_SPAWN_EVENT, resolvedCompanyId, {
206
+ await emitOrLog(ctx, ACP_SPAWN_EVENT, resolvedCompanyId, {
206
207
  type: "spawn",
207
208
  sessionId,
208
209
  agentName: trimmedName,
209
210
  chatId,
210
211
  threadId: messageThreadId,
211
- });
212
+ }, "session spawn", { sessionId, chatId, threadId: messageThreadId });
212
213
  }
213
214
  const agentCount = activeSessions.length + 1;
214
215
  const transportLabel = transport === "native" ? "Paperclip" : "ACP";
@@ -287,12 +288,12 @@ async function handleAcpCancel(ctx, token, chatId, messageThreadId, companyId) {
287
288
  }
288
289
  }
289
290
  else {
290
- ctx.events.emit(ACP_SPAWN_EVENT, resolvedCompanyId, {
291
+ await emitOrLog(ctx, ACP_SPAWN_EVENT, resolvedCompanyId, {
291
292
  type: "cancel",
292
293
  sessionId: target.sessionId,
293
294
  chatId,
294
295
  threadId: messageThreadId,
295
- });
296
+ }, "session cancel", { sessionId: target.sessionId, chatId, threadId: messageThreadId });
296
297
  }
297
298
  await sendMessage(ctx, token, chatId, `${escapeMarkdownV2("\u23f9")} Cancellation requested for *${escapeMarkdownV2(target.agentDisplayName)}* \\(\`${escapeMarkdownV2(target.sessionId)}\`\\)`, { parseMode: "MarkdownV2", messageThreadId });
298
299
  ctx.logger.info("Agent cancel requested", { sessionId: target.sessionId, chatId, threadId: messageThreadId });
@@ -344,12 +345,12 @@ async function handleAcpClose(ctx, token, chatId, targetAgentName, messageThread
344
345
  }
345
346
  }
346
347
  else {
347
- ctx.events.emit(ACP_SPAWN_EVENT, resolvedCompanyId, {
348
+ await emitOrLog(ctx, ACP_SPAWN_EVENT, resolvedCompanyId, {
348
349
  type: "close",
349
350
  sessionId: targetSession.sessionId,
350
351
  chatId,
351
352
  threadId: messageThreadId,
352
- });
353
+ }, "session close", { sessionId: targetSession.sessionId, chatId, threadId: messageThreadId });
353
354
  }
354
355
  // Mark closed
355
356
  const idx = sessions.findIndex((s) => s.sessionId === targetSession.sessionId);
@@ -423,14 +424,13 @@ export async function routeMessageToAgent(ctx, token, chatId, threadId, text, re
423
424
  }
424
425
  }
425
426
  else {
426
- // ACP transport - emit event, companyId is SECOND arg
427
- ctx.events.emit(ACP_SPAWN_EVENT, resolvedCompanyId, {
427
+ await emitOrLog(ctx, ACP_SPAWN_EVENT, resolvedCompanyId, {
428
428
  type: "message",
429
429
  sessionId: targetSession.sessionId,
430
430
  chatId,
431
431
  threadId,
432
432
  text,
433
- });
433
+ }, "routed message", { sessionId: targetSession.sessionId, chatId, threadId });
434
434
  }
435
435
  ctx.logger.info("Routed message to agent session", {
436
436
  sessionId: targetSession.sessionId,
@@ -590,11 +590,11 @@ async function sendLabeledOutput(ctx, token, chatId, threadId, sessionId, displa
590
590
  }
591
591
  // --- Handoff tool handler ---
592
592
  export async function handleHandoffToolCall(ctx, token, params, companyId, sourceAgentId) {
593
- const targetAgent = String(params.targetAgent ?? "");
594
- const reason = String(params.reason ?? "");
595
- const contextSummary = String(params.contextSummary ?? "");
593
+ const targetAgent = str(params.targetAgent);
594
+ const reason = str(params.reason);
595
+ const contextSummary = str(params.contextSummary);
596
596
  const requiresApproval = params.requiresApproval !== false;
597
- const chatId = String(params.chatId ?? "");
597
+ const chatId = str(params.chatId);
598
598
  const threadId = Number(params.threadId ?? 0);
599
599
  if (!targetAgent || !chatId || !threadId) {
600
600
  return { error: "Missing required fields: targetAgent, chatId, threadId" };
@@ -708,13 +708,13 @@ async function executeHandoff(ctx, token, chatId, threadId, targetAgent, context
708
708
  sessions.push(targetSession);
709
709
  await saveSessions(ctx, chatId, threadId, sessions);
710
710
  if (transport === "acp") {
711
- ctx.events.emit(ACP_SPAWN_EVENT, companyId, {
711
+ await emitOrLog(ctx, ACP_SPAWN_EVENT, companyId, {
712
712
  type: "spawn",
713
713
  sessionId,
714
714
  agentName: targetAgent,
715
715
  chatId,
716
716
  threadId,
717
- });
717
+ }, "handoff target auto-spawn", { sessionId, chatId, threadId });
718
718
  }
719
719
  await sendMessage(ctx, token, chatId, `${escapeMarkdownV2("\ud83d\udd0c")} Auto\\-spawned *${escapeMarkdownV2(displayName)}* \\[${escapeMarkdownV2(transport)}\\] for handoff`, { parseMode: "MarkdownV2", messageThreadId: threadId });
720
720
  }
@@ -723,23 +723,23 @@ async function executeHandoff(ctx, token, chatId, threadId, targetAgent, context
723
723
  await wakeAgentWithIssue(ctx, targetSession.agentId, companyId, `[Handoff context] ${contextSummary}`, "handoff");
724
724
  }
725
725
  else {
726
- ctx.events.emit(ACP_SPAWN_EVENT, companyId, {
726
+ await emitOrLog(ctx, ACP_SPAWN_EVENT, companyId, {
727
727
  type: "message",
728
728
  sessionId: targetSession.sessionId,
729
729
  chatId,
730
730
  threadId,
731
731
  text: `[Handoff context] ${contextSummary}`,
732
- });
732
+ }, "handoff context", { sessionId: targetSession.sessionId, chatId, threadId });
733
733
  }
734
734
  }
735
735
  // --- Discuss tool handler ---
736
736
  export async function handleDiscussToolCall(ctx, token, params, companyId, sourceAgentId) {
737
- const targetAgent = String(params.targetAgent ?? "");
738
- const topic = String(params.topic ?? "");
739
- const initialMessage = String(params.initialMessage ?? "");
737
+ const targetAgent = str(params.targetAgent);
738
+ const topic = str(params.topic);
739
+ const initialMessage = str(params.initialMessage);
740
740
  const maxTurns = Math.min(Number(params.maxTurns ?? DEFAULT_CONVERSATION_TURNS), MAX_CONVERSATION_TURNS);
741
741
  const humanCheckpointAt = params.humanCheckpointAt != null ? Number(params.humanCheckpointAt) : undefined;
742
- const chatId = String(params.chatId ?? "");
742
+ const chatId = str(params.chatId);
743
743
  const threadId = Number(params.threadId ?? 0);
744
744
  if (!targetAgent || !initialMessage || !chatId || !threadId) {
745
745
  return { error: "Missing required fields: targetAgent, initialMessage, chatId, threadId" };
@@ -789,13 +789,13 @@ export async function handleDiscussToolCall(ctx, token, params, companyId, sourc
789
789
  sessions.push(targetSession);
790
790
  await saveSessions(ctx, chatId, threadId, sessions);
791
791
  if (transport === "acp") {
792
- ctx.events.emit(ACP_SPAWN_EVENT, companyId, {
792
+ await emitOrLog(ctx, ACP_SPAWN_EVENT, companyId, {
793
793
  type: "spawn",
794
794
  sessionId,
795
795
  agentName: targetAgent,
796
796
  chatId,
797
797
  threadId,
798
- });
798
+ }, "discussion target auto-spawn", { sessionId, chatId, threadId });
799
799
  }
800
800
  await sendMessage(ctx, token, chatId, `${escapeMarkdownV2("\ud83d\udd0c")} Auto\\-spawned *${escapeMarkdownV2(displayName)}* for discussion`, { parseMode: "MarkdownV2", messageThreadId: threadId });
801
801
  }
@@ -830,13 +830,13 @@ export async function handleDiscussToolCall(ctx, token, params, companyId, sourc
830
830
  await wakeAgentWithIssue(ctx, targetSession.agentId, companyId, `[Discussion: ${topic}] ${initialMessage}`, "discussion");
831
831
  }
832
832
  else {
833
- ctx.events.emit(ACP_SPAWN_EVENT, companyId, {
833
+ await emitOrLog(ctx, ACP_SPAWN_EVENT, companyId, {
834
834
  type: "message",
835
835
  sessionId: targetSession.sessionId,
836
836
  chatId,
837
837
  threadId,
838
838
  text: `[Discussion: ${topic}] ${initialMessage}`,
839
- });
839
+ }, "discussion start", { sessionId: targetSession.sessionId, chatId, threadId });
840
840
  }
841
841
  return { content: JSON.stringify({ status: "started", loopId, maxTurns }) };
842
842
  }
@@ -896,13 +896,13 @@ async function checkConversationLoopContinuation(ctx, token, chatId, threadId, s
896
896
  await wakeAgentWithIssue(ctx, nextSession.agentId, resolvedCompanyId, `[Discussion: ${loop.topic}] ${text}`, "discussion_turn");
897
897
  }
898
898
  else {
899
- ctx.events.emit(ACP_SPAWN_EVENT, resolvedCompanyId, {
899
+ await emitOrLog(ctx, ACP_SPAWN_EVENT, resolvedCompanyId, {
900
900
  type: "message",
901
901
  sessionId: nextSessionId,
902
902
  chatId,
903
903
  threadId,
904
904
  text: `[Discussion: ${loop.topic}] ${text}`,
905
- });
905
+ }, "discussion turn", { sessionId: nextSessionId, chatId, threadId });
906
906
  }
907
907
  }
908
908
  }
@@ -1 +1 @@
1
- {"version":3,"file":"acp-bridge.js","sourceRoot":"","sources":["../src/acp-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acp-bridge.js","sourceRoot":"","sources":["../src/acp-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Event and tool payloads arrive as `Record<string, unknown>` off the wire.
3
+ * `String(payload.field)` on such a value silently renders "[object Object]"
4
+ * into a Telegram message when the field turns out to be an object rather
5
+ * than a primitive. `str()` is the one place that decision gets made: coerce
6
+ * primitives, fall back (and optionally log) for anything else.
7
+ */
8
+ export interface CoerceLogger {
9
+ warn(message: string, meta?: Record<string, unknown>): void;
10
+ }
11
+ export declare function str(value: unknown, fallback?: string, logger?: CoerceLogger): string;
12
+ /**
13
+ * For values caught from a `try`/`catch`, not JSON payload fields: an `Error`
14
+ * carries a message worth keeping even though its static type here is
15
+ * `unknown`, so it is special-cased ahead of the generic primitive-only rule.
16
+ */
17
+ export declare function errorMessage(err: unknown, fallback?: string): string;
package/dist/coerce.js ADDED
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Event and tool payloads arrive as `Record<string, unknown>` off the wire.
3
+ * `String(payload.field)` on such a value silently renders "[object Object]"
4
+ * into a Telegram message when the field turns out to be an object rather
5
+ * than a primitive. `str()` is the one place that decision gets made: coerce
6
+ * primitives, fall back (and optionally log) for anything else.
7
+ */
8
+ export function str(value, fallback = "", logger) {
9
+ if (value === null || value === undefined)
10
+ return fallback;
11
+ switch (typeof value) {
12
+ case "string":
13
+ return value;
14
+ case "number":
15
+ case "bigint":
16
+ case "boolean":
17
+ return String(value);
18
+ default:
19
+ logger?.warn("Expected a primitive value but received a non-primitive; using fallback", {
20
+ type: typeof value,
21
+ });
22
+ return fallback;
23
+ }
24
+ }
25
+ /**
26
+ * For values caught from a `try`/`catch`, not JSON payload fields: an `Error`
27
+ * carries a message worth keeping even though its static type here is
28
+ * `unknown`, so it is special-cased ahead of the generic primitive-only rule.
29
+ */
30
+ export function errorMessage(err, fallback = "unknown error") {
31
+ if (err instanceof Error)
32
+ return err.message;
33
+ return str(err, fallback);
34
+ }
35
+ //# sourceMappingURL=coerce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce.js","sourceRoot":"","sources":["../src/coerce.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,UAAU,GAAG,CAAC,KAAc,EAAE,QAAQ,GAAG,EAAE,EAAE,MAAqB;IACtE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC3D,QAAQ,OAAO,KAAK,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB;YACE,MAAM,EAAE,IAAI,CAAC,yEAAyE,EAAE;gBACtF,IAAI,EAAE,OAAO,KAAK;aACnB,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY,EAAE,QAAQ,GAAG,eAAe;IACnE,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC7C,OAAO,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { WorkflowStep } from "./command-registry.js";
2
+ /**
3
+ * `JSON.parse` returns `any`, so a `/commands import` payload that parses
4
+ * cleanly but doesn't match the declared shape (e.g. `{"hello": 1}`) would
5
+ * otherwise sail through as a `CustomCommand` with `name`/`steps` undefined —
6
+ * failing later, inside `executeWorkflow`, with no link back to the bad
7
+ * import. This module is the one place that shape gets checked before a
8
+ * parsed value is trusted as a command definition.
9
+ */
10
+ export type ImportedCommandDefinition = {
11
+ name: string;
12
+ description: string;
13
+ steps: WorkflowStep[];
14
+ };
15
+ export type CommandDefinitionValidation = {
16
+ ok: true;
17
+ definition: ImportedCommandDefinition;
18
+ } | {
19
+ ok: false;
20
+ error: string;
21
+ };
22
+ /**
23
+ * Validates a `JSON.parse`d value against the `CustomCommand` shape before
24
+ * anything downstream (storage, then `executeWorkflow`) trusts it. Every
25
+ * `steps[]` entry is checked against its declared `type`'s required fields,
26
+ * not just the `id`/`type` pair — a `send_message` step missing `text`, or an
27
+ * `http_request` step with a non-string `body`, is rejected here rather than
28
+ * failing mid-run with no link back to the import.
29
+ */
30
+ export declare function validateCommandDefinition(parsed: unknown): CommandDefinitionValidation;
@@ -0,0 +1,187 @@
1
+ const VALID_STEP_TYPES = [
2
+ "fetch_issue",
3
+ "invoke_agent",
4
+ "http_request",
5
+ "send_message",
6
+ "create_issue",
7
+ "wait_approval",
8
+ "set_state",
9
+ ];
10
+ const HTTP_METHODS = ["GET", "POST", "PUT", "DELETE"];
11
+ const NAME_PATTERN = /^[a-zA-Z0-9_]{1,32}$/;
12
+ const MAX_INTERPOLATED_LENGTH = 40;
13
+ /**
14
+ * A step `id`/`type` reaches error-message interpolation before any length
15
+ * check, so an oversized value (e.g. a multi-KB `id`) can push a reply past
16
+ * Telegram's 4096-char limit. `sendMessage` swallows that rejection, leaving
17
+ * the user with silence instead of the error this validation exists to show.
18
+ */
19
+ function truncateForDisplay(value) {
20
+ return value.length > MAX_INTERPOLATED_LENGTH
21
+ ? `${value.slice(0, MAX_INTERPOLATED_LENGTH)}…`
22
+ : value;
23
+ }
24
+ function isRecord(value) {
25
+ return typeof value === "object" && value !== null && !Array.isArray(value);
26
+ }
27
+ function isNonEmptyString(value) {
28
+ return typeof value === "string" && value.trim().length > 0;
29
+ }
30
+ function isStringRecord(value) {
31
+ return isRecord(value) && Object.values(value).every((v) => typeof v === "string");
32
+ }
33
+ function isStepType(value) {
34
+ return VALID_STEP_TYPES.includes(value);
35
+ }
36
+ function validateStep(value, index) {
37
+ const position = `Step ${index + 1}`;
38
+ if (!isRecord(value)) {
39
+ return { ok: false, error: `${position} must be an object.` };
40
+ }
41
+ const id = value.id;
42
+ if (!isNonEmptyString(id)) {
43
+ return { ok: false, error: `${position} must have an 'id' field.` };
44
+ }
45
+ const label = `${position} ('${truncateForDisplay(id)}')`;
46
+ const type = value.type;
47
+ if (!isNonEmptyString(type)) {
48
+ return { ok: false, error: `${label} must have a 'type' field.` };
49
+ }
50
+ if (!isStepType(type)) {
51
+ return { ok: false, error: `Invalid step type: '${truncateForDisplay(type)}' (${label}). Valid: ${VALID_STEP_TYPES.join(", ")}` };
52
+ }
53
+ const name = typeof value.name === "string" ? value.name : undefined;
54
+ const base = { id, name };
55
+ const missing = (field) => ({
56
+ ok: false,
57
+ error: `${label} of type '${type}' must have a '${field}' field.`,
58
+ });
59
+ const badType = (field, expected) => ({
60
+ ok: false,
61
+ error: `${label} of type '${type}': '${field}' must be ${expected}.`,
62
+ });
63
+ switch (type) {
64
+ case "fetch_issue": {
65
+ if (!isNonEmptyString(value.issueId))
66
+ return missing("issueId");
67
+ return { ok: true, step: { ...base, type, issueId: value.issueId } };
68
+ }
69
+ case "invoke_agent": {
70
+ if (!isNonEmptyString(value.agentId))
71
+ return missing("agentId");
72
+ if (!isNonEmptyString(value.prompt))
73
+ return missing("prompt");
74
+ return { ok: true, step: { ...base, type, agentId: value.agentId, prompt: value.prompt } };
75
+ }
76
+ case "http_request": {
77
+ if (!isNonEmptyString(value.url))
78
+ return missing("url");
79
+ const method = value.method;
80
+ if (!HTTP_METHODS.includes(method)) {
81
+ return badType("method", `one of ${HTTP_METHODS.join(", ")}`);
82
+ }
83
+ if (value.headers !== undefined && !isStringRecord(value.headers)) {
84
+ return badType("headers", "an object of string values");
85
+ }
86
+ if (value.body !== undefined && typeof value.body !== "string") {
87
+ return badType("body", "a string");
88
+ }
89
+ return {
90
+ ok: true,
91
+ step: {
92
+ ...base,
93
+ type,
94
+ url: value.url,
95
+ method: method,
96
+ headers: value.headers,
97
+ body: value.body,
98
+ },
99
+ };
100
+ }
101
+ case "send_message": {
102
+ if (!isNonEmptyString(value.text))
103
+ return missing("text");
104
+ return { ok: true, step: { ...base, type, text: value.text } };
105
+ }
106
+ case "create_issue": {
107
+ if (!isNonEmptyString(value.title))
108
+ return missing("title");
109
+ if (value.description !== undefined && typeof value.description !== "string") {
110
+ return badType("description", "a string");
111
+ }
112
+ if (value.projectId !== undefined && typeof value.projectId !== "string") {
113
+ return badType("projectId", "a string");
114
+ }
115
+ if (value.assigneeAgentId !== undefined && typeof value.assigneeAgentId !== "string") {
116
+ return badType("assigneeAgentId", "a string");
117
+ }
118
+ return {
119
+ ok: true,
120
+ step: {
121
+ ...base,
122
+ type,
123
+ title: value.title,
124
+ description: value.description,
125
+ projectId: value.projectId,
126
+ assigneeAgentId: value.assigneeAgentId,
127
+ },
128
+ };
129
+ }
130
+ case "wait_approval": {
131
+ if (!isNonEmptyString(value.prompt))
132
+ return missing("prompt");
133
+ if (value.timeoutMs !== undefined && typeof value.timeoutMs !== "number") {
134
+ return badType("timeoutMs", "a number");
135
+ }
136
+ return { ok: true, step: { ...base, type, prompt: value.prompt, timeoutMs: value.timeoutMs } };
137
+ }
138
+ case "set_state": {
139
+ if (!isNonEmptyString(value.key))
140
+ return missing("key");
141
+ if (typeof value.value !== "string")
142
+ return missing("value");
143
+ return { ok: true, step: { ...base, type, key: value.key, value: value.value } };
144
+ }
145
+ }
146
+ }
147
+ /**
148
+ * Validates a `JSON.parse`d value against the `CustomCommand` shape before
149
+ * anything downstream (storage, then `executeWorkflow`) trusts it. Every
150
+ * `steps[]` entry is checked against its declared `type`'s required fields,
151
+ * not just the `id`/`type` pair — a `send_message` step missing `text`, or an
152
+ * `http_request` step with a non-string `body`, is rejected here rather than
153
+ * failing mid-run with no link back to the import.
154
+ */
155
+ export function validateCommandDefinition(parsed) {
156
+ if (!isRecord(parsed)) {
157
+ return { ok: false, error: "Command definition must be a JSON object with 'name' and 'steps' fields." };
158
+ }
159
+ if (!isNonEmptyString(parsed.name)) {
160
+ return { ok: false, error: "Command definition must have a 'name' field." };
161
+ }
162
+ if (!NAME_PATTERN.test(parsed.name)) {
163
+ return { ok: false, error: "Command definition 'name' must match ^[a-zA-Z0-9_]{1,32}$ (letters, numbers, underscores only, max 32 chars, no whitespace)." };
164
+ }
165
+ if (parsed.description !== undefined && typeof parsed.description !== "string") {
166
+ return { ok: false, error: "Command definition 'description' must be a string." };
167
+ }
168
+ if (!Array.isArray(parsed.steps)) {
169
+ return { ok: false, error: "Command definition must have a 'steps' array field." };
170
+ }
171
+ const steps = [];
172
+ for (let i = 0; i < parsed.steps.length; i++) {
173
+ const result = validateStep(parsed.steps[i], i);
174
+ if (!result.ok)
175
+ return { ok: false, error: result.error };
176
+ steps.push(result.step);
177
+ }
178
+ return {
179
+ ok: true,
180
+ definition: {
181
+ name: parsed.name,
182
+ description: typeof parsed.description === "string" ? parsed.description : "No description",
183
+ steps,
184
+ },
185
+ };
186
+ }
187
+ //# sourceMappingURL=command-definition-validation.js.map