patchwork-os 0.2.0-alpha.2 → 0.2.0-alpha.21

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.
Files changed (154) hide show
  1. package/README.bridge.md +6 -0
  2. package/README.md +13 -2
  3. package/dist/approvalHttp.d.ts +11 -2
  4. package/dist/approvalHttp.js +92 -9
  5. package/dist/approvalHttp.js.map +1 -1
  6. package/dist/approvalQueue.d.ts +12 -1
  7. package/dist/approvalQueue.js +25 -3
  8. package/dist/approvalQueue.js.map +1 -1
  9. package/dist/bridge.js +127 -23
  10. package/dist/bridge.js.map +1 -1
  11. package/dist/claudeDriver.d.ts +3 -1
  12. package/dist/claudeDriver.js +48 -0
  13. package/dist/claudeDriver.js.map +1 -1
  14. package/dist/claudeOrchestrator.d.ts +1 -1
  15. package/dist/claudeOrchestrator.js +14 -8
  16. package/dist/claudeOrchestrator.js.map +1 -1
  17. package/dist/commands/launchd.d.ts +2 -0
  18. package/dist/commands/launchd.js +94 -0
  19. package/dist/commands/launchd.js.map +1 -0
  20. package/dist/config.d.ts +7 -2
  21. package/dist/config.js +85 -8
  22. package/dist/config.js.map +1 -1
  23. package/dist/connectors/github.d.ts +58 -8
  24. package/dist/connectors/github.js +321 -84
  25. package/dist/connectors/github.js.map +1 -1
  26. package/dist/connectors/gmail.d.ts +4 -1
  27. package/dist/connectors/gmail.js +77 -16
  28. package/dist/connectors/gmail.js.map +1 -1
  29. package/dist/connectors/googleCalendar.d.ts +60 -0
  30. package/dist/connectors/googleCalendar.js +329 -0
  31. package/dist/connectors/googleCalendar.js.map +1 -0
  32. package/dist/connectors/linear.d.ts +117 -0
  33. package/dist/connectors/linear.js +248 -0
  34. package/dist/connectors/linear.js.map +1 -0
  35. package/dist/connectors/mcpClient.d.ts +56 -0
  36. package/dist/connectors/mcpClient.js +189 -0
  37. package/dist/connectors/mcpClient.js.map +1 -0
  38. package/dist/connectors/mcpOAuth.d.ts +83 -0
  39. package/dist/connectors/mcpOAuth.js +363 -0
  40. package/dist/connectors/mcpOAuth.js.map +1 -0
  41. package/dist/connectors/sentry.d.ts +43 -0
  42. package/dist/connectors/sentry.js +197 -0
  43. package/dist/connectors/sentry.js.map +1 -0
  44. package/dist/connectors/slack.d.ts +50 -0
  45. package/dist/connectors/slack.js +289 -0
  46. package/dist/connectors/slack.js.map +1 -0
  47. package/dist/drivers/claude/api.d.ts +11 -0
  48. package/dist/drivers/claude/api.js +54 -0
  49. package/dist/drivers/claude/api.js.map +1 -0
  50. package/dist/drivers/claude/envSanitizer.d.ts +7 -0
  51. package/dist/drivers/claude/envSanitizer.js +18 -0
  52. package/dist/drivers/claude/envSanitizer.js.map +1 -0
  53. package/dist/drivers/claude/streamParser.d.ts +38 -0
  54. package/dist/drivers/claude/streamParser.js +34 -0
  55. package/dist/drivers/claude/streamParser.js.map +1 -0
  56. package/dist/drivers/claude/subprocess.d.ts +19 -0
  57. package/dist/drivers/claude/subprocess.js +216 -0
  58. package/dist/drivers/claude/subprocess.js.map +1 -0
  59. package/dist/drivers/claude/subprocessSettings.d.ts +9 -0
  60. package/dist/drivers/claude/subprocessSettings.js +55 -0
  61. package/dist/drivers/claude/subprocessSettings.js.map +1 -0
  62. package/dist/drivers/gemini/index.d.ts +18 -0
  63. package/dist/drivers/gemini/index.js +210 -0
  64. package/dist/drivers/gemini/index.js.map +1 -0
  65. package/dist/drivers/grok/index.d.ts +11 -0
  66. package/dist/drivers/grok/index.js +22 -0
  67. package/dist/drivers/grok/index.js.map +1 -0
  68. package/dist/drivers/index.d.ts +23 -0
  69. package/dist/drivers/index.js +31 -0
  70. package/dist/drivers/index.js.map +1 -0
  71. package/dist/drivers/openai/index.d.ts +24 -0
  72. package/dist/drivers/openai/index.js +110 -0
  73. package/dist/drivers/openai/index.js.map +1 -0
  74. package/dist/drivers/types.d.ts +72 -0
  75. package/dist/drivers/types.js +30 -0
  76. package/dist/drivers/types.js.map +1 -0
  77. package/dist/index.js +35 -1
  78. package/dist/index.js.map +1 -1
  79. package/dist/installGuard.d.ts +25 -0
  80. package/dist/installGuard.js +48 -0
  81. package/dist/installGuard.js.map +1 -0
  82. package/dist/patchworkConfig.d.ts +9 -0
  83. package/dist/patchworkConfig.js.map +1 -1
  84. package/dist/recipes/scheduler.d.ts +23 -7
  85. package/dist/recipes/scheduler.js +135 -41
  86. package/dist/recipes/scheduler.js.map +1 -1
  87. package/dist/recipes/yamlRunner.d.ts +15 -0
  88. package/dist/recipes/yamlRunner.js +325 -26
  89. package/dist/recipes/yamlRunner.js.map +1 -1
  90. package/dist/recipesHttp.d.ts +14 -1
  91. package/dist/recipesHttp.js +21 -4
  92. package/dist/recipesHttp.js.map +1 -1
  93. package/dist/runLog.d.ts +5 -0
  94. package/dist/runLog.js +51 -1
  95. package/dist/runLog.js.map +1 -1
  96. package/dist/server.d.ts +15 -1
  97. package/dist/server.js +458 -31
  98. package/dist/server.js.map +1 -1
  99. package/dist/tools/addLinearComment.d.ts +55 -0
  100. package/dist/tools/addLinearComment.js +72 -0
  101. package/dist/tools/addLinearComment.js.map +1 -0
  102. package/dist/tools/bridgeDoctor.js +2 -2
  103. package/dist/tools/bridgeDoctor.js.map +1 -1
  104. package/dist/tools/createLinearIssue.d.ts +84 -0
  105. package/dist/tools/createLinearIssue.js +146 -0
  106. package/dist/tools/createLinearIssue.js.map +1 -0
  107. package/dist/tools/ctxGetTaskContext.d.ts +4 -1
  108. package/dist/tools/ctxGetTaskContext.js +45 -2
  109. package/dist/tools/ctxGetTaskContext.js.map +1 -1
  110. package/dist/tools/fetchCalendarEvents.d.ts +94 -0
  111. package/dist/tools/fetchCalendarEvents.js +97 -0
  112. package/dist/tools/fetchCalendarEvents.js.map +1 -0
  113. package/dist/tools/fetchGithubIssue.d.ts +80 -0
  114. package/dist/tools/fetchGithubIssue.js +84 -0
  115. package/dist/tools/fetchGithubIssue.js.map +1 -0
  116. package/dist/tools/fetchGithubPR.d.ts +89 -0
  117. package/dist/tools/fetchGithubPR.js +96 -0
  118. package/dist/tools/fetchGithubPR.js.map +1 -0
  119. package/dist/tools/fetchLinearIssue.d.ts +112 -0
  120. package/dist/tools/fetchLinearIssue.js +129 -0
  121. package/dist/tools/fetchLinearIssue.js.map +1 -0
  122. package/dist/tools/fetchSentryIssue.d.ts +143 -0
  123. package/dist/tools/fetchSentryIssue.js +150 -0
  124. package/dist/tools/fetchSentryIssue.js.map +1 -0
  125. package/dist/tools/fetchSlackProfile.d.ts +43 -0
  126. package/dist/tools/fetchSlackProfile.js +46 -0
  127. package/dist/tools/fetchSlackProfile.js.map +1 -0
  128. package/dist/tools/getConnectorStatus.d.ts +58 -0
  129. package/dist/tools/getConnectorStatus.js +56 -0
  130. package/dist/tools/getConnectorStatus.js.map +1 -0
  131. package/dist/tools/github/index.d.ts +1 -1
  132. package/dist/tools/github/index.js +1 -1
  133. package/dist/tools/github/index.js.map +1 -1
  134. package/dist/tools/github/pr.d.ts +122 -0
  135. package/dist/tools/github/pr.js +183 -0
  136. package/dist/tools/github/pr.js.map +1 -1
  137. package/dist/tools/index.js +27 -1
  138. package/dist/tools/index.js.map +1 -1
  139. package/dist/tools/slackListChannels.d.ts +65 -0
  140. package/dist/tools/slackListChannels.js +70 -0
  141. package/dist/tools/slackListChannels.js.map +1 -0
  142. package/dist/tools/slackPostMessage.d.ts +57 -0
  143. package/dist/tools/slackPostMessage.js +77 -0
  144. package/dist/tools/slackPostMessage.js.map +1 -0
  145. package/dist/tools/updateLinearIssue.d.ts +89 -0
  146. package/dist/tools/updateLinearIssue.js +117 -0
  147. package/dist/tools/updateLinearIssue.js.map +1 -0
  148. package/package.json +4 -2
  149. package/scripts/start-all.sh +56 -19
  150. package/templates/co.patchwork-os.bridge.plist +34 -0
  151. package/templates/recipes/ctx-loop-test.yaml +75 -0
  152. package/templates/recipes/morning-brief-slack.yaml +57 -0
  153. package/templates/recipes/morning-brief.yaml +21 -5
  154. package/templates/recipes/sentry-to-linear.yaml +77 -0
@@ -25,6 +25,12 @@ import { appendFileSync, existsSync, mkdirSync, readdirSync, readFileSync, write
25
25
  import os from "node:os";
26
26
  import path from "node:path";
27
27
  import { parse as parseYaml } from "yaml";
28
+ // Strip tool-call narration some models (e.g. Gemini) prepend before the markdown block.
29
+ function stripLeadingNarration(text) {
30
+ const lines = text.split("\n");
31
+ const firstMarkdown = lines.findIndex((l) => /^(#|>|`|\||[-*+] |\d+\. |\*\*)/.test(l.trimStart()));
32
+ return firstMarkdown > 0 ? lines.slice(firstMarkdown).join("\n") : text;
33
+ }
28
34
  export function loadYamlRecipe(filePath) {
29
35
  const text = readFileSync(filePath, "utf-8");
30
36
  const raw = parseYaml(text);
@@ -69,7 +75,9 @@ export async function runYamlRecipe(recipe, deps = {}, seedContext = {}) {
69
75
  const mkdir = deps.mkdir ??
70
76
  ((p) => mkdirSync(expandHome(p), { recursive: true }));
71
77
  const outputs = [];
78
+ const stepResults = [];
72
79
  let stepsRun = 0;
80
+ let runError;
73
81
  const workdir = deps.workdir ?? process.cwd();
74
82
  const stepDeps = {
75
83
  readFile,
@@ -83,6 +91,7 @@ export async function runYamlRecipe(recipe, deps = {}, seedContext = {}) {
83
91
  fetchFn: deps.fetchFn ?? globalThis.fetch,
84
92
  claudeFn: deps.claudeFn ?? defaultClaudeFn,
85
93
  claudeCodeFn: deps.claudeCodeFn ?? defaultClaudeCodeFn,
94
+ providerDriverFn: deps.providerDriverFn ?? defaultProviderDriverFn,
86
95
  getGmailToken: deps.getGmailToken ??
87
96
  (async () => {
88
97
  const { getValidAccessToken } = await import("../connectors/gmail.js");
@@ -96,40 +105,131 @@ export async function runYamlRecipe(recipe, deps = {}, seedContext = {}) {
96
105
  const renderedPrompt = render(agentCfg.prompt, ctx);
97
106
  const model = agentCfg.model ?? "claude-haiku-4-5-20251001";
98
107
  const intoKey = agentCfg.into ?? "agent_output";
108
+ const stepId = intoKey;
109
+ const stepStart = Date.now();
99
110
  let agentResult;
100
- if (agentCfg.driver === "claude-code") {
101
- agentResult = await stepDeps.claudeCodeFn(renderedPrompt);
102
- }
103
- else if (agentCfg.driver === "api") {
104
- agentResult = await stepDeps.claudeFn(renderedPrompt, model);
105
- }
106
- else {
107
- // Default driver: use API path. If no ANTHROPIC_API_KEY and caller did not provide a
108
- // custom claudeFn (i.e. using the built-in default that returns a skip message), probe
109
- // for the claude CLI and fall back automatically.
110
- const usingDefaultClaudeFn = deps.claudeFn === undefined;
111
- if (!process.env.ANTHROPIC_API_KEY && usingDefaultClaudeFn) {
112
- const probe = spawnSync("claude", ["--version"], {
113
- encoding: "utf-8",
114
- timeout: 5000,
115
- });
116
- if (!probe.error) {
117
- agentResult = await stepDeps.claudeCodeFn(renderedPrompt);
111
+ try {
112
+ if (agentCfg.driver === "claude-code") {
113
+ agentResult = await stepDeps.claudeCodeFn(renderedPrompt);
114
+ }
115
+ else if (agentCfg.driver === "api") {
116
+ agentResult = await stepDeps.claudeFn(renderedPrompt, model);
117
+ }
118
+ else if (agentCfg.driver === "openai" ||
119
+ agentCfg.driver === "grok" ||
120
+ agentCfg.driver === "gemini") {
121
+ agentResult = await stepDeps.providerDriverFn(agentCfg.driver, renderedPrompt, agentCfg.model);
122
+ }
123
+ else {
124
+ // Default driver: use API path. If no ANTHROPIC_API_KEY and caller did not provide a
125
+ // custom claudeFn (i.e. using the built-in default that returns a skip message), probe
126
+ // for the claude CLI and fall back automatically.
127
+ const usingDefaultClaudeFn = deps.claudeFn === undefined;
128
+ if (!process.env.ANTHROPIC_API_KEY && usingDefaultClaudeFn) {
129
+ const probe = spawnSync("claude", ["--version"], {
130
+ encoding: "utf-8",
131
+ timeout: 5000,
132
+ });
133
+ if (!probe.error) {
134
+ agentResult = await stepDeps.claudeCodeFn(renderedPrompt);
135
+ }
136
+ else {
137
+ agentResult = await stepDeps.claudeFn(renderedPrompt, model);
138
+ }
118
139
  }
119
140
  else {
120
141
  agentResult = await stepDeps.claudeFn(renderedPrompt, model);
121
142
  }
122
143
  }
144
+ if (agentResult.startsWith("[agent step failed:")) {
145
+ runError = runError ?? agentResult;
146
+ stepResults.push({
147
+ id: stepId,
148
+ tool: "agent",
149
+ status: "error",
150
+ error: agentResult,
151
+ durationMs: Date.now() - stepStart,
152
+ });
153
+ }
123
154
  else {
124
- agentResult = await stepDeps.claudeFn(renderedPrompt, model);
155
+ const stripped = stripLeadingNarration(agentResult);
156
+ if (!stripped.trim()) {
157
+ const errMsg = `[agent step failed: ${agentCfg.driver ?? "agent"} returned only narration or whitespace — no content]`;
158
+ runError = runError ?? errMsg;
159
+ stepResults.push({
160
+ id: stepId,
161
+ tool: "agent",
162
+ status: "error",
163
+ error: errMsg,
164
+ durationMs: Date.now() - stepStart,
165
+ });
166
+ }
167
+ else {
168
+ ctx[intoKey] = stripped;
169
+ outputs.push(intoKey);
170
+ stepResults.push({
171
+ id: stepId,
172
+ tool: "agent",
173
+ status: "ok",
174
+ durationMs: Date.now() - stepStart,
175
+ });
176
+ }
125
177
  }
126
178
  }
127
- ctx[intoKey] = agentResult;
128
- outputs.push(intoKey);
179
+ catch (err) {
180
+ const msg = err instanceof Error ? err.message : String(err);
181
+ runError = runError ?? `agent step "${stepId}" failed: ${msg}`;
182
+ stepResults.push({
183
+ id: stepId,
184
+ tool: "agent",
185
+ status: "error",
186
+ error: msg,
187
+ durationMs: Date.now() - stepStart,
188
+ });
189
+ }
129
190
  stepsRun++;
130
191
  continue;
131
192
  }
132
- const result = await executeStep(step, ctx, stepDeps);
193
+ const stepStart = Date.now();
194
+ const stepId = step.into ?? step.tool ?? `step_${stepsRun}`;
195
+ let result;
196
+ try {
197
+ result = await executeStep(step, ctx, stepDeps);
198
+ // Detect tool-level errors reported as JSON {ok: false, error: ...}
199
+ let stepError;
200
+ if (result !== null) {
201
+ try {
202
+ const parsed = JSON.parse(result);
203
+ if (parsed.ok === false && typeof parsed.error === "string") {
204
+ stepError = parsed.error;
205
+ }
206
+ }
207
+ catch {
208
+ /* non-JSON result is fine */
209
+ }
210
+ }
211
+ stepResults.push({
212
+ id: stepId,
213
+ tool: step.tool,
214
+ status: result === null ? "skipped" : stepError ? "error" : "ok",
215
+ error: stepError,
216
+ durationMs: Date.now() - stepStart,
217
+ });
218
+ if (stepError)
219
+ runError = runError ?? `${step.tool} failed: ${stepError}`;
220
+ }
221
+ catch (err) {
222
+ const msg = err instanceof Error ? err.message : String(err);
223
+ runError = runError ?? `${step.tool} failed: ${msg}`;
224
+ stepResults.push({
225
+ id: stepId,
226
+ tool: step.tool,
227
+ status: "error",
228
+ error: msg,
229
+ durationMs: Date.now() - stepStart,
230
+ });
231
+ result = null;
232
+ }
133
233
  stepsRun++;
134
234
  if (result !== null) {
135
235
  if (step.into) {
@@ -161,7 +261,74 @@ export async function runYamlRecipe(recipe, deps = {}, seedContext = {}) {
161
261
  }
162
262
  }
163
263
  }
164
- return { recipe: recipe.name, stepsRun, outputs, context: ctx };
264
+ // Write to RecipeRunLog so the dashboard Runs page shows this execution
265
+ try {
266
+ const { RecipeRunLog } = await import("../runLog.js");
267
+ const { homedir } = await import("node:os");
268
+ const logDir = path.join(homedir(), ".patchwork");
269
+ const log = new RecipeRunLog({ dir: logDir });
270
+ const trigger = recipe.trigger?.type ?? "manual";
271
+ const createdAt = now.getTime();
272
+ const doneAt = Date.now();
273
+ const outputTail = stepResults
274
+ .map((s) => `[${s.status}] ${s.tool ?? s.id}${s.error ? `: ${s.error}` : ""}`)
275
+ .join("\n")
276
+ .slice(0, 2000);
277
+ log.appendDirect({
278
+ taskId: `yaml:${recipe.name}:${createdAt}`,
279
+ recipeName: recipe.name,
280
+ trigger: (["cron", "webhook", "recipe"].includes(trigger)
281
+ ? trigger
282
+ : "recipe"),
283
+ status: runError ? "error" : "done",
284
+ createdAt,
285
+ startedAt: createdAt,
286
+ doneAt,
287
+ durationMs: doneAt - createdAt,
288
+ outputTail,
289
+ errorMessage: runError,
290
+ });
291
+ }
292
+ catch {
293
+ // Non-fatal — run log write failure should never break recipe execution
294
+ }
295
+ // Notify via Slack if any step failed
296
+ if (runError) {
297
+ try {
298
+ const { isConnected, postMessage } = await import("../connectors/slack.js");
299
+ if (isConnected()) {
300
+ // Read notification channel from ~/.patchwork/config.json, fallback to first available
301
+ let notifyChannel = "all-massappealdesigns";
302
+ try {
303
+ const cfgPath = path.join(os.homedir(), ".patchwork", "config.json");
304
+ const cfg = JSON.parse(readFileSync(cfgPath, "utf-8"));
305
+ const notifications = cfg.notifications;
306
+ if (typeof notifications?.slackChannel === "string") {
307
+ notifyChannel = notifications.slackChannel;
308
+ }
309
+ }
310
+ catch {
311
+ /* use default */
312
+ }
313
+ const failedSteps = stepResults
314
+ .filter((s) => s.status === "error")
315
+ .map((s) => `• ${s.tool ?? s.id}: ${s.error ?? "unknown error"}`)
316
+ .join("\n");
317
+ await postMessage(notifyChannel, `⚠️ *Recipe failed: ${recipe.name}*\n\n${failedSteps}\n\n_${new Date().toISOString()}_`);
318
+ }
319
+ }
320
+ catch {
321
+ // Non-fatal — notification failure should never mask the original error
322
+ }
323
+ }
324
+ return {
325
+ recipe: recipe.name,
326
+ stepsRun,
327
+ outputs,
328
+ context: ctx,
329
+ stepResults,
330
+ errorMessage: runError,
331
+ };
165
332
  }
166
333
  function defaultClaudeCodeFn(prompt) {
167
334
  try {
@@ -188,6 +355,49 @@ function defaultClaudeCodeFn(prompt) {
188
355
  return Promise.resolve(`[agent step failed: ${err instanceof Error ? err.message : String(err)}]`);
189
356
  }
190
357
  }
358
+ // Cache provider drivers across steps within a single recipe process.
359
+ const providerDriverCache = new Map();
360
+ async function defaultProviderDriverFn(driverName, prompt, model) {
361
+ try {
362
+ let driver = providerDriverCache.get(driverName);
363
+ if (!driver) {
364
+ const { createDriver } = await import("../drivers/index.js");
365
+ const d = createDriver(driverName, { binary: "claude", antBinary: "ant" }, () => { });
366
+ if (!d)
367
+ return `[agent step failed: ${driverName} driver returned null]`;
368
+ driver = d;
369
+ providerDriverCache.set(driverName, driver);
370
+ }
371
+ const controller = new AbortController();
372
+ const timeoutMs = 300_000;
373
+ const startupTimeoutMs = 30_000;
374
+ const timeout = setTimeout(() => controller.abort(), timeoutMs);
375
+ try {
376
+ const result = await driver.run({
377
+ prompt,
378
+ workspace: process.cwd(),
379
+ timeoutMs,
380
+ startupTimeoutMs,
381
+ signal: controller.signal,
382
+ model,
383
+ });
384
+ if (result.exitCode !== undefined && result.exitCode !== 0) {
385
+ const detail = result.stderrTail ?? result.text ?? "";
386
+ return `[agent step failed: ${driverName} exited ${result.exitCode}${detail ? ` — ${detail.slice(0, 200)}` : ""}]`;
387
+ }
388
+ if (!result.text) {
389
+ return `[agent step failed: ${driverName} returned empty output (possible timeout or auth error)]`;
390
+ }
391
+ return result.text;
392
+ }
393
+ finally {
394
+ clearTimeout(timeout);
395
+ }
396
+ }
397
+ catch (err) {
398
+ return `[agent step failed: ${err instanceof Error ? err.message : String(err)}]`;
399
+ }
400
+ }
191
401
  async function defaultClaudeFn(prompt, model) {
192
402
  const apiKey = process.env.ANTHROPIC_API_KEY;
193
403
  if (!apiKey)
@@ -286,7 +496,7 @@ async function executeStep(step, ctx, deps) {
286
496
  ? render(String(step.assignee), ctx)
287
497
  : "@me";
288
498
  const limit = typeof step.max === "number" ? step.max : 20;
289
- const issues = listIssues({ repo, assignee, limit });
499
+ const issues = await listIssues({ repo, assignee, limit });
290
500
  return JSON.stringify({ count: issues.length, issues });
291
501
  }
292
502
  case "github.list_prs": {
@@ -294,9 +504,91 @@ async function executeStep(step, ctx, deps) {
294
504
  const repo = step.repo ? render(String(step.repo), ctx) : undefined;
295
505
  const author = step.author ? render(String(step.author), ctx) : "@me";
296
506
  const limit = typeof step.max === "number" ? step.max : 20;
297
- const prs = listPRs({ repo, author, limit });
507
+ const prs = await listPRs({ repo, author, limit });
298
508
  return JSON.stringify({ count: prs.length, prs });
299
509
  }
510
+ case "linear.list_issues": {
511
+ const { loadTokens, listIssues: listLinearIssues } = await import("../connectors/linear.js");
512
+ if (!loadTokens()) {
513
+ return JSON.stringify({
514
+ count: 0,
515
+ issues: [],
516
+ error: "Linear not connected",
517
+ });
518
+ }
519
+ const teamKey = step.team ? render(String(step.team), ctx) : undefined;
520
+ const assigneeMe = step.assignee === "@me" || step.assignee === undefined;
521
+ const stateFilter = step.state
522
+ ? render(String(step.state), ctx)
523
+ : "started,unstarted";
524
+ const limit = typeof step.max === "number" ? step.max : 20;
525
+ const states = stateFilter
526
+ .split(",")
527
+ .map((s) => s.trim())
528
+ .filter(Boolean);
529
+ try {
530
+ const issues = await listLinearIssues({
531
+ team: teamKey,
532
+ assigneeMe,
533
+ states,
534
+ limit,
535
+ });
536
+ return JSON.stringify({ count: issues.length, issues });
537
+ }
538
+ catch (err) {
539
+ return JSON.stringify({
540
+ count: 0,
541
+ issues: [],
542
+ error: err instanceof Error ? err.message : String(err),
543
+ });
544
+ }
545
+ }
546
+ case "calendar.list_events": {
547
+ const { listEvents } = await import("../connectors/googleCalendar.js");
548
+ const daysAhead = typeof step.days_ahead === "number" ? step.days_ahead : 7;
549
+ const maxResults = typeof step.max === "number" ? step.max : 20;
550
+ const calendarId = step.calendar_id
551
+ ? render(String(step.calendar_id), ctx)
552
+ : undefined;
553
+ try {
554
+ const events = await listEvents({ daysAhead, maxResults, calendarId });
555
+ return JSON.stringify({ count: events.length, events });
556
+ }
557
+ catch (err) {
558
+ return JSON.stringify({
559
+ count: 0,
560
+ events: [],
561
+ error: err instanceof Error ? err.message : String(err),
562
+ });
563
+ }
564
+ }
565
+ case "slack.post_message": {
566
+ const { postMessage, loadTokens: loadSlackTokens } = await import("../connectors/slack.js");
567
+ if (!loadSlackTokens()) {
568
+ return JSON.stringify({ ok: false, error: "Slack not connected" });
569
+ }
570
+ const channel = step.channel
571
+ ? render(String(step.channel), ctx)
572
+ : "general";
573
+ const text = step.text ? render(String(step.text), ctx) : "";
574
+ const threadTs = step.thread_ts
575
+ ? render(String(step.thread_ts), ctx)
576
+ : undefined;
577
+ try {
578
+ const result = await postMessage(channel, text, threadTs ?? undefined);
579
+ return JSON.stringify({
580
+ ok: true,
581
+ ts: result.ts,
582
+ channel: result.channel,
583
+ });
584
+ }
585
+ catch (err) {
586
+ return JSON.stringify({
587
+ ok: false,
588
+ error: err instanceof Error ? err.message : String(err),
589
+ });
590
+ }
591
+ }
300
592
  default:
301
593
  // Unknown tool — skip, don't throw (forward compat)
302
594
  return null;
@@ -353,6 +645,13 @@ function evalWhen(when, ctx) {
353
645
  return true;
354
646
  }
355
647
  }
648
+ function cleanSnippet(raw) {
649
+ return raw
650
+ .replace(/­|​|‌|‍|‎|‏|‪|‫|‬|‭|‮|⁠||͏/g, "")
651
+ .replace(/(\s)\s+/g, "$1")
652
+ .trim()
653
+ .slice(0, 200);
654
+ }
356
655
  function sinceToGmailQuery(since) {
357
656
  // "24h" → "1d", "7d" → "7d", "1h" → "1d" (round up)
358
657
  const m = /^(\d+)(h|d)$/.exec(since.trim().toLowerCase());
@@ -401,7 +700,7 @@ async function gmailSearch(query, max, deps) {
401
700
  subject: getHeader(hdrs, "Subject"),
402
701
  from: getHeader(hdrs, "From"),
403
702
  date: getHeader(hdrs, "Date"),
404
- snippet: detail.snippet ?? "",
703
+ snippet: cleanSnippet(detail.snippet ?? ""),
405
704
  };
406
705
  }));
407
706
  const result = { count: messages.length, messages };
@@ -1 +1 @@
1
- {"version":3,"file":"yamlRunner.js","sourceRoot":"","sources":["../../src/recipes/yamlRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yamlRunner.js","sourceRoot":"","sources":["../../src/recipes/yamlRunner.ts"],"names":[],"mappings":"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"}
@@ -13,9 +13,15 @@ export interface RecipeDraft {
13
13
  };
14
14
  steps: Array<{
15
15
  id: string;
16
- kind: "prompt";
16
+ agent: boolean;
17
17
  prompt: string;
18
18
  }>;
19
+ vars?: Array<{
20
+ name: string;
21
+ description?: string;
22
+ required?: boolean;
23
+ default?: string;
24
+ }>;
19
25
  }
20
26
  export declare function saveRecipe(recipesDir: string, draft: RecipeDraft): {
21
27
  ok: boolean;
@@ -31,6 +37,13 @@ export interface RecipeSummary {
31
37
  installedAt: number;
32
38
  hasPermissions: boolean;
33
39
  source: "user" | "project" | "unknown";
40
+ enabled: boolean;
41
+ vars?: Array<{
42
+ name: string;
43
+ description?: string;
44
+ required?: boolean;
45
+ default?: string;
46
+ }>;
34
47
  }
35
48
  export interface ListRecipesResult {
36
49
  recipesDir: string;
@@ -1,5 +1,7 @@
1
1
  import { mkdirSync, readdirSync, readFileSync, statSync, writeFileSync, } from "node:fs";
2
2
  import path from "node:path";
3
+ import { parse as parseYaml } from "yaml";
4
+ import { loadConfig } from "./patchworkConfig.js";
3
5
  export function saveRecipe(recipesDir, draft) {
4
6
  const safeName = draft.name.toLowerCase().replace(/\s+/g, "-");
5
7
  if (!/^[a-z0-9][a-z0-9_-]{0,63}$/.test(safeName)) {
@@ -16,7 +18,12 @@ export function saveRecipe(recipesDir, draft) {
16
18
  name: safeName,
17
19
  description: draft.description,
18
20
  trigger: draft.trigger,
19
- steps: draft.steps,
21
+ steps: draft.steps.map((s) => ({
22
+ id: s.id,
23
+ agent: s.agent,
24
+ prompt: s.prompt,
25
+ })),
26
+ ...(draft.vars && draft.vars.length > 0 ? { vars: draft.vars } : {}),
20
27
  createdAt: Date.now(),
21
28
  };
22
29
  writeFileSync(candidate, JSON.stringify(payload, null, 2), "utf-8");
@@ -37,14 +44,18 @@ export function listInstalledRecipes(recipesDir) {
37
44
  catch {
38
45
  return { recipesDir, recipes: [] };
39
46
  }
47
+ const cfg = loadConfig();
48
+ const disabledSet = new Set(cfg.recipes?.disabled ?? []);
40
49
  const recipes = [];
41
50
  for (const f of entries) {
42
- if (!f.endsWith(".json") || f.endsWith(".permissions.json"))
51
+ const isYaml = f.endsWith(".yaml") || f.endsWith(".yml");
52
+ const isJson = f.endsWith(".json") && !f.endsWith(".permissions.json");
53
+ if (!isYaml && !isJson)
43
54
  continue;
44
55
  const fullPath = path.join(recipesDir, f);
45
56
  try {
46
57
  const raw = readFileSync(fullPath, "utf-8");
47
- const parsed = JSON.parse(raw);
58
+ const parsed = (isYaml ? parseYaml(raw) : JSON.parse(raw));
48
59
  const stat = statSync(fullPath);
49
60
  const permsPath = `${fullPath}.permissions.json`;
50
61
  let hasPermissions = false;
@@ -67,8 +78,10 @@ export function listInstalledRecipes(recipesDir) {
67
78
  else {
68
79
  source = "unknown";
69
80
  }
81
+ const ext = isYaml ? (f.endsWith(".yml") ? ".yml" : ".yaml") : ".json";
82
+ const parsedName = parsed.name ?? path.basename(f, ext);
70
83
  recipes.push({
71
- name: parsed.name ?? path.basename(f, ".json"),
84
+ name: parsedName,
72
85
  description: parsed.description,
73
86
  trigger: parsed.trigger?.type,
74
87
  stepCount: Array.isArray(parsed.steps) ? parsed.steps.length : 0,
@@ -76,6 +89,10 @@ export function listInstalledRecipes(recipesDir) {
76
89
  installedAt: stat.mtimeMs,
77
90
  hasPermissions,
78
91
  source,
92
+ enabled: !disabledSet.has(parsedName),
93
+ ...(Array.isArray(parsed.vars) && parsed.vars.length > 0
94
+ ? { vars: parsed.vars }
95
+ : {}),
79
96
  });
80
97
  }
81
98
  catch {