patchwork-os 0.2.0-alpha.34 → 0.2.0-alpha.35

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 (117) hide show
  1. package/README.md +142 -88
  2. package/deploy/bootstrap-new-vps.sh +12 -12
  3. package/deploy/bootstrap-vps.sh +6 -3
  4. package/deploy/deploy-landing.sh +59 -2
  5. package/dist/bridge.js +32 -1
  6. package/dist/bridge.js.map +1 -1
  7. package/dist/commands/recipe.js +18 -1
  8. package/dist/commands/recipe.js.map +1 -1
  9. package/dist/commands/recipeInstall.d.ts +79 -1
  10. package/dist/commands/recipeInstall.js +241 -13
  11. package/dist/commands/recipeInstall.js.map +1 -1
  12. package/dist/connectors/asana.d.ts +198 -0
  13. package/dist/connectors/asana.js +680 -0
  14. package/dist/connectors/asana.js.map +1 -0
  15. package/dist/connectors/baseConnector.d.ts +16 -0
  16. package/dist/connectors/baseConnector.js +106 -24
  17. package/dist/connectors/baseConnector.js.map +1 -1
  18. package/dist/connectors/discord.d.ts +150 -0
  19. package/dist/connectors/discord.js +544 -0
  20. package/dist/connectors/discord.js.map +1 -0
  21. package/dist/connectors/github.js +11 -4
  22. package/dist/connectors/github.js.map +1 -1
  23. package/dist/connectors/gitlab.d.ts +180 -0
  24. package/dist/connectors/gitlab.js +582 -0
  25. package/dist/connectors/gitlab.js.map +1 -0
  26. package/dist/connectors/gmail.js +11 -0
  27. package/dist/connectors/gmail.js.map +1 -1
  28. package/dist/connectors/googleDrive.d.ts +34 -0
  29. package/dist/connectors/googleDrive.js +305 -0
  30. package/dist/connectors/googleDrive.js.map +1 -0
  31. package/dist/connectors/linear.js +23 -4
  32. package/dist/connectors/linear.js.map +1 -1
  33. package/dist/connectors/pagerduty.d.ts +160 -0
  34. package/dist/connectors/pagerduty.js +464 -0
  35. package/dist/connectors/pagerduty.js.map +1 -0
  36. package/dist/connectors/slack.d.ts +1 -1
  37. package/dist/connectors/slack.js +3 -1
  38. package/dist/connectors/slack.js.map +1 -1
  39. package/dist/featureFlags.d.ts +17 -11
  40. package/dist/featureFlags.js +52 -47
  41. package/dist/featureFlags.js.map +1 -1
  42. package/dist/index.js +255 -127
  43. package/dist/index.js.map +1 -1
  44. package/dist/recipeOrchestration.d.ts +7 -0
  45. package/dist/recipeOrchestration.js +149 -28
  46. package/dist/recipeOrchestration.js.map +1 -1
  47. package/dist/recipes/captureForRunlog.d.ts +27 -0
  48. package/dist/recipes/captureForRunlog.js +128 -0
  49. package/dist/recipes/captureForRunlog.js.map +1 -0
  50. package/dist/recipes/chainedRunner.d.ts +39 -3
  51. package/dist/recipes/chainedRunner.js +183 -28
  52. package/dist/recipes/chainedRunner.js.map +1 -1
  53. package/dist/recipes/detectSilentFail.d.ts +34 -0
  54. package/dist/recipes/detectSilentFail.js +105 -0
  55. package/dist/recipes/detectSilentFail.js.map +1 -0
  56. package/dist/recipes/manifest.js +21 -6
  57. package/dist/recipes/manifest.js.map +1 -1
  58. package/dist/recipes/replayRun.d.ts +62 -0
  59. package/dist/recipes/replayRun.js +97 -0
  60. package/dist/recipes/replayRun.js.map +1 -0
  61. package/dist/recipes/scheduler.js +102 -11
  62. package/dist/recipes/scheduler.js.map +1 -1
  63. package/dist/recipes/schemaGenerator.js +3 -3
  64. package/dist/recipes/schemaGenerator.js.map +1 -1
  65. package/dist/recipes/toolRegistry.d.ts +5 -0
  66. package/dist/recipes/toolRegistry.js +9 -0
  67. package/dist/recipes/toolRegistry.js.map +1 -1
  68. package/dist/recipes/tools/asana.d.ts +16 -0
  69. package/dist/recipes/tools/asana.js +524 -0
  70. package/dist/recipes/tools/asana.js.map +1 -0
  71. package/dist/recipes/tools/discord.d.ts +18 -0
  72. package/dist/recipes/tools/discord.js +254 -0
  73. package/dist/recipes/tools/discord.js.map +1 -0
  74. package/dist/recipes/tools/github.js +29 -4
  75. package/dist/recipes/tools/github.js.map +1 -1
  76. package/dist/recipes/tools/gitlab.d.ts +11 -0
  77. package/dist/recipes/tools/gitlab.js +285 -0
  78. package/dist/recipes/tools/gitlab.js.map +1 -0
  79. package/dist/recipes/tools/gmail.d.ts +1 -1
  80. package/dist/recipes/tools/gmail.js +230 -6
  81. package/dist/recipes/tools/gmail.js.map +1 -1
  82. package/dist/recipes/tools/googleDrive.d.ts +1 -0
  83. package/dist/recipes/tools/googleDrive.js +55 -0
  84. package/dist/recipes/tools/googleDrive.js.map +1 -0
  85. package/dist/recipes/tools/index.d.ts +6 -0
  86. package/dist/recipes/tools/index.js +6 -0
  87. package/dist/recipes/tools/index.js.map +1 -1
  88. package/dist/recipes/tools/linear.d.ts +2 -1
  89. package/dist/recipes/tools/linear.js +222 -1
  90. package/dist/recipes/tools/linear.js.map +1 -1
  91. package/dist/recipes/tools/meetingNotes.d.ts +21 -0
  92. package/dist/recipes/tools/meetingNotes.js +701 -0
  93. package/dist/recipes/tools/meetingNotes.js.map +1 -0
  94. package/dist/recipes/tools/pagerduty.d.ts +15 -0
  95. package/dist/recipes/tools/pagerduty.js +451 -0
  96. package/dist/recipes/tools/pagerduty.js.map +1 -0
  97. package/dist/recipes/tools/slack.js +8 -2
  98. package/dist/recipes/tools/slack.js.map +1 -1
  99. package/dist/recipes/yamlRunner.d.ts +23 -2
  100. package/dist/recipes/yamlRunner.js +263 -58
  101. package/dist/recipes/yamlRunner.js.map +1 -1
  102. package/dist/recipesHttp.d.ts +32 -0
  103. package/dist/recipesHttp.js +310 -1
  104. package/dist/recipesHttp.js.map +1 -1
  105. package/dist/runLog.d.ts +64 -2
  106. package/dist/runLog.js +116 -2
  107. package/dist/runLog.js.map +1 -1
  108. package/dist/server.d.ts +8 -0
  109. package/dist/server.js +331 -9
  110. package/dist/server.js.map +1 -1
  111. package/dist/streamableHttp.d.ts +31 -1
  112. package/dist/streamableHttp.js +20 -2
  113. package/dist/streamableHttp.js.map +1 -1
  114. package/dist/tools/slackPostMessage.js +1 -1
  115. package/dist/tools/slackPostMessage.js.map +1 -1
  116. package/package.json +19 -4
  117. package/templates/recipes/project-health-check.yaml +1 -1
@@ -0,0 +1,464 @@
1
+ /**
2
+ * PagerDuty connector — read incidents, services, and on-call rotations.
3
+ *
4
+ * Auth: API key (paste from PagerDuty Console → Integrations → API Access Keys).
5
+ * - Env var: PAGERDUTY_TOKEN
6
+ * - Stored: getSecretJsonSync("pagerduty") → PagerDutyTokens
7
+ * - Header: Authorization: Token token=<key> (PagerDuty's specific format —
8
+ * not Bearer.)
9
+ *
10
+ * Read tools: listIncidents, getIncident, listServices, listOnCalls.
11
+ * Write tools: acknowledgeIncident, resolveIncident, addIncidentNote, createIncident.
12
+ *
13
+ * Writes require a `From` header (PagerDuty API requirement) sourced from
14
+ * PAGERDUTY_FROM_EMAIL env var. Identity is NOT exposed via recipe params —
15
+ * recipes can't spoof who performed the action.
16
+ *
17
+ * Extends BaseConnector for unified auth, retry, rate-limit, error handling.
18
+ */
19
+ import { BaseConnector, } from "./baseConnector.js";
20
+ import { deleteSecretJsonSync, getSecretJsonSync, storeSecretJsonSync, } from "./tokenStorage.js";
21
+ const PAGERDUTY_BASE = "https://api.pagerduty.com";
22
+ const PAGERDUTY_ACCEPT = "application/vnd.pagerduty+json;version=2";
23
+ export class PagerDutyConnector extends BaseConnector {
24
+ providerName = "pagerduty";
25
+ getOAuthConfig() {
26
+ return null;
27
+ }
28
+ async authenticate() {
29
+ const tokens = loadTokens();
30
+ if (!tokens) {
31
+ throw new Error("PagerDuty not connected. Run: patchwork-os connect pagerduty or set PAGERDUTY_TOKEN");
32
+ }
33
+ return {
34
+ token: tokens.token,
35
+ scopes: ["read"],
36
+ };
37
+ }
38
+ async healthCheck() {
39
+ try {
40
+ const result = await this.apiCall(async (token) => {
41
+ const res = await fetch(`${PAGERDUTY_BASE}/users/me`, {
42
+ headers: this.buildHeaders(token),
43
+ });
44
+ if (!res.ok)
45
+ throw res;
46
+ return res.json();
47
+ });
48
+ if ("error" in result)
49
+ return { ok: false, error: result.error };
50
+ return { ok: true };
51
+ }
52
+ catch (err) {
53
+ return { ok: false, error: this.normalizeError(err) };
54
+ }
55
+ }
56
+ normalizeError(error) {
57
+ if (error instanceof Response) {
58
+ const s = error.status;
59
+ if (s === 401)
60
+ return {
61
+ code: "auth_expired",
62
+ message: "PagerDuty authentication failed — check API key",
63
+ retryable: false,
64
+ suggestedAction: "patchwork-os connect pagerduty",
65
+ };
66
+ if (s === 403)
67
+ return {
68
+ code: "permission_denied",
69
+ message: "Insufficient PagerDuty permissions for this resource",
70
+ retryable: false,
71
+ };
72
+ if (s === 404)
73
+ return {
74
+ code: "not_found",
75
+ message: "PagerDuty resource not found",
76
+ retryable: false,
77
+ };
78
+ if (s === 429)
79
+ return {
80
+ code: "rate_limited",
81
+ message: "PagerDuty API rate limit exceeded",
82
+ retryable: true,
83
+ suggestedAction: "Wait and retry",
84
+ };
85
+ return {
86
+ code: "provider_error",
87
+ message: `PagerDuty API error: HTTP ${s}`,
88
+ retryable: s >= 500,
89
+ };
90
+ }
91
+ if (error instanceof Error) {
92
+ if (error.message.includes("ENOTFOUND") ||
93
+ error.message.includes("ECONNREFUSED")) {
94
+ return {
95
+ code: "network_error",
96
+ message: `Cannot connect to PagerDuty: ${error.message}`,
97
+ retryable: true,
98
+ };
99
+ }
100
+ }
101
+ return {
102
+ code: "provider_error",
103
+ message: error instanceof Error ? error.message : String(error),
104
+ retryable: false,
105
+ };
106
+ }
107
+ getStatus() {
108
+ const tokens = loadTokens();
109
+ return {
110
+ id: "pagerduty",
111
+ status: tokens ? "connected" : "disconnected",
112
+ lastSync: tokens?.connected_at,
113
+ workspace: tokens?.userName ?? tokens?.userEmail ?? undefined,
114
+ };
115
+ }
116
+ // ── API Methods ────────────────────────────────────────────────────────────
117
+ async listIncidents(params = {}) {
118
+ const result = await this.apiCall(async (token) => {
119
+ const qs = new URLSearchParams();
120
+ qs.set("limit", String(params.limit ?? 25));
121
+ if (params.statuses?.length)
122
+ for (const s of params.statuses)
123
+ qs.append("statuses[]", s);
124
+ if (params.urgencies?.length)
125
+ for (const u of params.urgencies)
126
+ qs.append("urgencies[]", u);
127
+ if (params.since)
128
+ qs.set("since", params.since);
129
+ if (params.until)
130
+ qs.set("until", params.until);
131
+ const res = await fetch(`${PAGERDUTY_BASE}/incidents?${qs}`, {
132
+ headers: this.buildHeaders(token),
133
+ });
134
+ this.updateRateLimitFromHeaders({
135
+ "x-ratelimit-remaining": res.headers.get("x-ratelimit-remaining") ?? undefined,
136
+ "retry-after": res.headers.get("retry-after") ?? undefined,
137
+ });
138
+ if (!res.ok)
139
+ throw res;
140
+ return res.json();
141
+ });
142
+ if ("error" in result)
143
+ throw new Error(result.error.message);
144
+ return result.data;
145
+ }
146
+ async getIncident(id) {
147
+ const result = await this.apiCall(async (token) => {
148
+ const res = await fetch(`${PAGERDUTY_BASE}/incidents/${id}`, {
149
+ headers: this.buildHeaders(token),
150
+ });
151
+ if (!res.ok)
152
+ throw res;
153
+ const data = (await res.json());
154
+ return data.incident;
155
+ });
156
+ if ("error" in result)
157
+ throw new Error(result.error.message);
158
+ return result.data;
159
+ }
160
+ async listServices(params = {}) {
161
+ const result = await this.apiCall(async (token) => {
162
+ const qs = new URLSearchParams({ limit: String(params.limit ?? 25) });
163
+ const res = await fetch(`${PAGERDUTY_BASE}/services?${qs}`, {
164
+ headers: this.buildHeaders(token),
165
+ });
166
+ if (!res.ok)
167
+ throw res;
168
+ return res.json();
169
+ });
170
+ if ("error" in result)
171
+ throw new Error(result.error.message);
172
+ return result.data;
173
+ }
174
+ async listOnCalls(params = {}) {
175
+ const result = await this.apiCall(async (token) => {
176
+ const qs = new URLSearchParams({ limit: String(params.limit ?? 25) });
177
+ if (params.scheduleIds?.length)
178
+ for (const id of params.scheduleIds)
179
+ qs.append("schedule_ids[]", id);
180
+ const res = await fetch(`${PAGERDUTY_BASE}/oncalls?${qs}`, {
181
+ headers: this.buildHeaders(token),
182
+ });
183
+ if (!res.ok)
184
+ throw res;
185
+ return res.json();
186
+ });
187
+ if ("error" in result)
188
+ throw new Error(result.error.message);
189
+ return result.data;
190
+ }
191
+ // ── Write methods ──────────────────────────────────────────────────────────
192
+ // All writes require a `From` header set to the email of the user performing
193
+ // the action. Read from PAGERDUTY_FROM_EMAIL env var (or per-call override).
194
+ // Identity is intentionally NOT exposed to recipe tools — recipes shouldn't
195
+ // be able to spoof identity.
196
+ async acknowledgeIncident(incidentId, options = {}) {
197
+ const fromEmail = resolveFromEmail(options.fromEmail);
198
+ const result = await this.apiCall(async (token) => {
199
+ const res = await fetch(`${PAGERDUTY_BASE}/incidents/${incidentId}`, {
200
+ method: "PUT",
201
+ headers: this.buildHeaders(token, fromEmail),
202
+ body: JSON.stringify({
203
+ incident: {
204
+ type: "incident_reference",
205
+ status: "acknowledged",
206
+ },
207
+ }),
208
+ });
209
+ if (!res.ok)
210
+ throw res;
211
+ const data = (await res.json());
212
+ return data.incident;
213
+ });
214
+ if ("error" in result)
215
+ throw new Error(result.error.message);
216
+ return result.data;
217
+ }
218
+ async resolveIncident(incidentId, options = {}) {
219
+ const fromEmail = resolveFromEmail(options.fromEmail);
220
+ const result = await this.apiCall(async (token) => {
221
+ const incident = {
222
+ type: "incident_reference",
223
+ status: "resolved",
224
+ };
225
+ if (options.resolution)
226
+ incident.resolution = options.resolution;
227
+ const res = await fetch(`${PAGERDUTY_BASE}/incidents/${incidentId}`, {
228
+ method: "PUT",
229
+ headers: this.buildHeaders(token, fromEmail),
230
+ body: JSON.stringify({ incident }),
231
+ });
232
+ if (!res.ok)
233
+ throw res;
234
+ const data = (await res.json());
235
+ return data.incident;
236
+ });
237
+ if ("error" in result)
238
+ throw new Error(result.error.message);
239
+ return result.data;
240
+ }
241
+ async addIncidentNote(incidentId, options) {
242
+ const fromEmail = resolveFromEmail(options.fromEmail);
243
+ const result = await this.apiCall(async (token) => {
244
+ const res = await fetch(`${PAGERDUTY_BASE}/incidents/${incidentId}/notes`, {
245
+ method: "POST",
246
+ headers: this.buildHeaders(token, fromEmail),
247
+ body: JSON.stringify({ note: { content: options.content } }),
248
+ });
249
+ if (!res.ok)
250
+ throw res;
251
+ const data = (await res.json());
252
+ return data.note;
253
+ });
254
+ if ("error" in result)
255
+ throw new Error(result.error.message);
256
+ return result.data;
257
+ }
258
+ async createIncident(params) {
259
+ if (!params.serviceId) {
260
+ throw new Error("serviceId is required to create a PagerDuty incident");
261
+ }
262
+ if (!params.title) {
263
+ throw new Error("title is required to create a PagerDuty incident");
264
+ }
265
+ const fromEmail = resolveFromEmail(params.fromEmail);
266
+ const urgency = params.urgency ?? "high";
267
+ const result = await this.apiCall(async (token) => {
268
+ const incident = {
269
+ type: "incident",
270
+ title: params.title,
271
+ service: { id: params.serviceId, type: "service_reference" },
272
+ urgency,
273
+ };
274
+ if (params.body) {
275
+ incident.body = { type: "incident_body", details: params.body };
276
+ }
277
+ const res = await fetch(`${PAGERDUTY_BASE}/incidents`, {
278
+ method: "POST",
279
+ headers: this.buildHeaders(token, fromEmail),
280
+ body: JSON.stringify({ incident }),
281
+ });
282
+ if (!res.ok)
283
+ throw res;
284
+ const data = (await res.json());
285
+ return data.incident;
286
+ });
287
+ if ("error" in result)
288
+ throw new Error(result.error.message);
289
+ return result.data;
290
+ }
291
+ // ── Helpers ────────────────────────────────────────────────────────────────
292
+ buildHeaders(token, fromEmail) {
293
+ const headers = {
294
+ Authorization: `Token token=${token}`,
295
+ Accept: PAGERDUTY_ACCEPT,
296
+ "Content-Type": "application/json",
297
+ };
298
+ if (fromEmail)
299
+ headers.From = fromEmail;
300
+ return headers;
301
+ }
302
+ }
303
+ /**
304
+ * Resolve identity (`From` header value) for a PagerDuty write.
305
+ * Per-call override > PAGERDUTY_FROM_EMAIL env var. Throws if neither set.
306
+ */
307
+ function resolveFromEmail(override) {
308
+ const fromEmail = override ?? process.env.PAGERDUTY_FROM_EMAIL;
309
+ if (!fromEmail) {
310
+ throw new Error("PagerDuty write methods require an identity. Set PAGERDUTY_FROM_EMAIL " +
311
+ "to the email of the user performing the action.");
312
+ }
313
+ return fromEmail;
314
+ }
315
+ // ── Token persistence ────────────────────────────────────────────────────────
316
+ export function loadTokens() {
317
+ const envToken = process.env.PAGERDUTY_TOKEN;
318
+ if (envToken) {
319
+ return {
320
+ token: envToken,
321
+ connected_at: new Date().toISOString(),
322
+ };
323
+ }
324
+ return getSecretJsonSync("pagerduty");
325
+ }
326
+ export function saveTokens(tokens) {
327
+ storeSecretJsonSync("pagerduty", tokens);
328
+ }
329
+ export function clearTokens() {
330
+ try {
331
+ deleteSecretJsonSync("pagerduty");
332
+ }
333
+ catch {
334
+ // ignore
335
+ }
336
+ }
337
+ // ── Singleton instance ───────────────────────────────────────────────────────
338
+ let _instance = null;
339
+ function resetPagerDutyConnector() {
340
+ _instance = null;
341
+ }
342
+ export function getPagerDutyConnector() {
343
+ if (!_instance) {
344
+ _instance = new PagerDutyConnector();
345
+ }
346
+ return _instance;
347
+ }
348
+ export { getPagerDutyConnector as pagerduty };
349
+ /**
350
+ * POST /connections/pagerduty/connect { token }
351
+ */
352
+ export async function handlePagerDutyConnect(body) {
353
+ let token;
354
+ try {
355
+ const parsed = JSON.parse(body);
356
+ if (typeof parsed.token !== "string" || !parsed.token) {
357
+ return {
358
+ status: 400,
359
+ contentType: "application/json",
360
+ body: JSON.stringify({ ok: false, error: "token is required" }),
361
+ };
362
+ }
363
+ token = parsed.token;
364
+ }
365
+ catch {
366
+ return {
367
+ status: 400,
368
+ contentType: "application/json",
369
+ body: JSON.stringify({ ok: false, error: "Invalid JSON body" }),
370
+ };
371
+ }
372
+ try {
373
+ const res = await fetch(`${PAGERDUTY_BASE}/users/me`, {
374
+ headers: {
375
+ Authorization: `Token token=${token}`,
376
+ Accept: PAGERDUTY_ACCEPT,
377
+ },
378
+ });
379
+ if (!res.ok) {
380
+ return {
381
+ status: 401,
382
+ contentType: "application/json",
383
+ body: JSON.stringify({
384
+ ok: false,
385
+ error: `Credentials rejected by PagerDuty (HTTP ${res.status}) — check API key`,
386
+ }),
387
+ };
388
+ }
389
+ const detail = (await res.json().catch(() => ({})));
390
+ const tokens = {
391
+ token,
392
+ userEmail: detail.user?.email,
393
+ userName: detail.user?.name,
394
+ connected_at: new Date().toISOString(),
395
+ };
396
+ saveTokens(tokens);
397
+ resetPagerDutyConnector();
398
+ return {
399
+ status: 200,
400
+ contentType: "application/json",
401
+ body: JSON.stringify({
402
+ ok: true,
403
+ userEmail: tokens.userEmail,
404
+ userName: tokens.userName,
405
+ connectedAt: tokens.connected_at,
406
+ }),
407
+ };
408
+ }
409
+ catch (err) {
410
+ return {
411
+ status: 500,
412
+ contentType: "application/json",
413
+ body: JSON.stringify({
414
+ ok: false,
415
+ error: err instanceof Error ? err.message : String(err),
416
+ }),
417
+ };
418
+ }
419
+ }
420
+ /**
421
+ * POST /connections/pagerduty/test
422
+ */
423
+ export async function handlePagerDutyTest() {
424
+ const tokens = loadTokens();
425
+ if (!tokens) {
426
+ return {
427
+ status: 400,
428
+ contentType: "application/json",
429
+ body: JSON.stringify({ ok: false, error: "PagerDuty not connected" }),
430
+ };
431
+ }
432
+ try {
433
+ const connector = getPagerDutyConnector();
434
+ const check = await connector.healthCheck();
435
+ return {
436
+ status: check.ok ? 200 : 401,
437
+ contentType: "application/json",
438
+ body: JSON.stringify(check.ok ? { ok: true } : { ok: false, error: check.error?.message }),
439
+ };
440
+ }
441
+ catch (err) {
442
+ return {
443
+ status: 500,
444
+ contentType: "application/json",
445
+ body: JSON.stringify({
446
+ ok: false,
447
+ error: err instanceof Error ? err.message : String(err),
448
+ }),
449
+ };
450
+ }
451
+ }
452
+ /**
453
+ * DELETE /connections/pagerduty
454
+ */
455
+ export function handlePagerDutyDisconnect() {
456
+ clearTokens();
457
+ resetPagerDutyConnector();
458
+ return {
459
+ status: 200,
460
+ contentType: "application/json",
461
+ body: JSON.stringify({ ok: true }),
462
+ };
463
+ }
464
+ //# sourceMappingURL=pagerduty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagerduty.js","sourceRoot":"","sources":["../../src/connectors/pagerduty.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ export interface ConnectorHandlerResult {
26
26
  }
27
27
  export declare function loadTokens(): SlackTokenFile | null;
28
28
  export declare function isConnected(): boolean;
29
- export declare function postMessage(channel: string, text: string, threadTs?: string, signal?: AbortSignal): Promise<{
29
+ export declare function postMessage(channel: string, text: string, threadTs?: string, blocks?: unknown[], signal?: AbortSignal): Promise<{
30
30
  ts: string;
31
31
  channel: string;
32
32
  }>;
@@ -153,13 +153,15 @@ async function slackPost(method, body, token, signal) {
153
153
  return json;
154
154
  }
155
155
  // ── Public API ────────────────────────────────────────────────────────────────
156
- export async function postMessage(channel, text, threadTs, signal) {
156
+ export async function postMessage(channel, text, threadTs, blocks, signal) {
157
157
  const tokens = loadTokens();
158
158
  if (!tokens)
159
159
  throw new Error("Slack not connected. GET /connections/slack/authorize first.");
160
160
  const body = { channel, text };
161
161
  if (threadTs)
162
162
  body.thread_ts = threadTs;
163
+ if (blocks?.length)
164
+ body.blocks = blocks;
163
165
  const res = await slackPost("chat.postMessage", body, tokens.access_token, signal);
164
166
  return {
165
167
  ts: res.ts ?? "",
@@ -1 +1 @@
1
- {"version":3,"file":"slack.js","sourceRoot":"","sources":["../../src/connectors/slack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack.js","sourceRoot":"","sources":["../../src/connectors/slack.ts"],"names":[],"mappings":"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"}
@@ -27,10 +27,26 @@ export interface FeatureFlag {
27
27
  * Duplicate IDs throw — ensures no accidental double-registration.
28
28
  */
29
29
  export declare function registerFlag(flag: FeatureFlag): void;
30
+ /**
31
+ * Snapshot the current `process.env` values for every registered kill-switch
32
+ * flag. Called once by `Bridge.start()` after `loadFlags()` so subsequent
33
+ * env mutations are ignored for kill-switch reads. Idempotent — second call
34
+ * is a no-op (would otherwise let an attacker re-snapshot a tampered env).
35
+ *
36
+ * Non-kill-switch flags remain dynamic so test infrastructure that mutates
37
+ * env per case continues to work.
38
+ */
39
+ export declare function lockKillSwitchEnv(): void;
40
+ /**
41
+ * TEST ONLY — resets the env lock so tests can exercise both locked and
42
+ * unlocked paths without process restart. Do not call from production code.
43
+ */
44
+ export declare function _resetEnvLockForTesting(): void;
30
45
  /**
31
46
  * Check if a feature flag is enabled.
32
47
  * Resolution order (highest to lowest priority):
33
- * 1. Environment variable (PATCHWORK_FLAG_<ID>)
48
+ * 1. Environment variable (PATCHWORK_FLAG_<ID>) — frozen at `lockKillSwitchEnv()`
49
+ * time for kill-switch flags so post-lock mutations are ignored
34
50
  * 2. User config file (~/.patchwork/config/flags.json)
35
51
  * 3. Default value from registration
36
52
  */
@@ -51,18 +67,8 @@ export declare function listFlags(): Array<FeatureFlag & {
51
67
  export declare function loadFlags(): void;
52
68
  /** Kill switch for ALL write-tier operations */
53
69
  export declare const KILL_SWITCH_WRITES = "kill-switch.writes";
54
- /** Enable visual recipe debugger (A3) */
55
- export declare const FLAG_DEBUGGER = "ui.recipe-debugger";
56
- /** Enable CLI test/watch commands (A2) */
57
- export declare const FLAG_CLI_UX = "ui.cli-ux-commands";
58
- /** Enable mock connector harness (A4) */
59
- export declare const FLAG_MOCK_HARNESS = "experimental.mock-harness";
60
- /** Enable Wave 2 connectors (A5) */
61
- export declare const FLAG_WAVE2_CONNECTORS = "connector.wave2";
62
70
  /** Enable recipe lint with schema validation (A1) */
63
71
  export declare const FLAG_SCHEMA_LINT = "ui.schema-lint";
64
- /** Enable community recipe gallery (M5) */
65
- export declare const FLAG_COMMUNITY_GALLERY = "experimental.community-gallery";
66
72
  /**
67
73
  * Check if write operations are globally disabled.
68
74
  */