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.
- package/README.md +142 -88
- package/deploy/bootstrap-new-vps.sh +12 -12
- package/deploy/bootstrap-vps.sh +6 -3
- package/deploy/deploy-landing.sh +59 -2
- package/dist/bridge.js +32 -1
- package/dist/bridge.js.map +1 -1
- package/dist/commands/recipe.js +18 -1
- package/dist/commands/recipe.js.map +1 -1
- package/dist/commands/recipeInstall.d.ts +79 -1
- package/dist/commands/recipeInstall.js +241 -13
- package/dist/commands/recipeInstall.js.map +1 -1
- package/dist/connectors/asana.d.ts +198 -0
- package/dist/connectors/asana.js +680 -0
- package/dist/connectors/asana.js.map +1 -0
- package/dist/connectors/baseConnector.d.ts +16 -0
- package/dist/connectors/baseConnector.js +106 -24
- package/dist/connectors/baseConnector.js.map +1 -1
- package/dist/connectors/discord.d.ts +150 -0
- package/dist/connectors/discord.js +544 -0
- package/dist/connectors/discord.js.map +1 -0
- package/dist/connectors/github.js +11 -4
- package/dist/connectors/github.js.map +1 -1
- package/dist/connectors/gitlab.d.ts +180 -0
- package/dist/connectors/gitlab.js +582 -0
- package/dist/connectors/gitlab.js.map +1 -0
- package/dist/connectors/gmail.js +11 -0
- package/dist/connectors/gmail.js.map +1 -1
- package/dist/connectors/googleDrive.d.ts +34 -0
- package/dist/connectors/googleDrive.js +305 -0
- package/dist/connectors/googleDrive.js.map +1 -0
- package/dist/connectors/linear.js +23 -4
- package/dist/connectors/linear.js.map +1 -1
- package/dist/connectors/pagerduty.d.ts +160 -0
- package/dist/connectors/pagerduty.js +464 -0
- package/dist/connectors/pagerduty.js.map +1 -0
- package/dist/connectors/slack.d.ts +1 -1
- package/dist/connectors/slack.js +3 -1
- package/dist/connectors/slack.js.map +1 -1
- package/dist/featureFlags.d.ts +17 -11
- package/dist/featureFlags.js +52 -47
- package/dist/featureFlags.js.map +1 -1
- package/dist/index.js +255 -127
- package/dist/index.js.map +1 -1
- package/dist/recipeOrchestration.d.ts +7 -0
- package/dist/recipeOrchestration.js +149 -28
- package/dist/recipeOrchestration.js.map +1 -1
- package/dist/recipes/captureForRunlog.d.ts +27 -0
- package/dist/recipes/captureForRunlog.js +128 -0
- package/dist/recipes/captureForRunlog.js.map +1 -0
- package/dist/recipes/chainedRunner.d.ts +39 -3
- package/dist/recipes/chainedRunner.js +183 -28
- package/dist/recipes/chainedRunner.js.map +1 -1
- package/dist/recipes/detectSilentFail.d.ts +34 -0
- package/dist/recipes/detectSilentFail.js +105 -0
- package/dist/recipes/detectSilentFail.js.map +1 -0
- package/dist/recipes/manifest.js +21 -6
- package/dist/recipes/manifest.js.map +1 -1
- package/dist/recipes/replayRun.d.ts +62 -0
- package/dist/recipes/replayRun.js +97 -0
- package/dist/recipes/replayRun.js.map +1 -0
- package/dist/recipes/scheduler.js +102 -11
- package/dist/recipes/scheduler.js.map +1 -1
- package/dist/recipes/schemaGenerator.js +3 -3
- package/dist/recipes/schemaGenerator.js.map +1 -1
- package/dist/recipes/toolRegistry.d.ts +5 -0
- package/dist/recipes/toolRegistry.js +9 -0
- package/dist/recipes/toolRegistry.js.map +1 -1
- package/dist/recipes/tools/asana.d.ts +16 -0
- package/dist/recipes/tools/asana.js +524 -0
- package/dist/recipes/tools/asana.js.map +1 -0
- package/dist/recipes/tools/discord.d.ts +18 -0
- package/dist/recipes/tools/discord.js +254 -0
- package/dist/recipes/tools/discord.js.map +1 -0
- package/dist/recipes/tools/github.js +29 -4
- package/dist/recipes/tools/github.js.map +1 -1
- package/dist/recipes/tools/gitlab.d.ts +11 -0
- package/dist/recipes/tools/gitlab.js +285 -0
- package/dist/recipes/tools/gitlab.js.map +1 -0
- package/dist/recipes/tools/gmail.d.ts +1 -1
- package/dist/recipes/tools/gmail.js +230 -6
- package/dist/recipes/tools/gmail.js.map +1 -1
- package/dist/recipes/tools/googleDrive.d.ts +1 -0
- package/dist/recipes/tools/googleDrive.js +55 -0
- package/dist/recipes/tools/googleDrive.js.map +1 -0
- package/dist/recipes/tools/index.d.ts +6 -0
- package/dist/recipes/tools/index.js +6 -0
- package/dist/recipes/tools/index.js.map +1 -1
- package/dist/recipes/tools/linear.d.ts +2 -1
- package/dist/recipes/tools/linear.js +222 -1
- package/dist/recipes/tools/linear.js.map +1 -1
- package/dist/recipes/tools/meetingNotes.d.ts +21 -0
- package/dist/recipes/tools/meetingNotes.js +701 -0
- package/dist/recipes/tools/meetingNotes.js.map +1 -0
- package/dist/recipes/tools/pagerduty.d.ts +15 -0
- package/dist/recipes/tools/pagerduty.js +451 -0
- package/dist/recipes/tools/pagerduty.js.map +1 -0
- package/dist/recipes/tools/slack.js +8 -2
- package/dist/recipes/tools/slack.js.map +1 -1
- package/dist/recipes/yamlRunner.d.ts +23 -2
- package/dist/recipes/yamlRunner.js +263 -58
- package/dist/recipes/yamlRunner.js.map +1 -1
- package/dist/recipesHttp.d.ts +32 -0
- package/dist/recipesHttp.js +310 -1
- package/dist/recipesHttp.js.map +1 -1
- package/dist/runLog.d.ts +64 -2
- package/dist/runLog.js +116 -2
- package/dist/runLog.js.map +1 -1
- package/dist/server.d.ts +8 -0
- package/dist/server.js +331 -9
- package/dist/server.js.map +1 -1
- package/dist/streamableHttp.d.ts +31 -1
- package/dist/streamableHttp.js +20 -2
- package/dist/streamableHttp.js.map +1 -1
- package/dist/tools/slackPostMessage.js +1 -1
- package/dist/tools/slackPostMessage.js.map +1 -1
- package/package.json +19 -4
- package/templates/recipes/project-health-check.yaml +1 -1
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* replayRun — VD-4 mocked replay entrypoint.
|
|
3
|
+
*
|
|
4
|
+
* Given an original `RecipeRun` (looked up from `RecipeRunLog`), build a
|
|
5
|
+
* `mockedOutputs` map from each step's captured `output` (VD-2) and
|
|
6
|
+
* re-run the recipe through `runChainedRecipe` with all tool/agent
|
|
7
|
+
* execution short-circuited to those captured values.
|
|
8
|
+
*
|
|
9
|
+
* Pure mocked-only: no external network calls, no write side effects.
|
|
10
|
+
* The new run is logged with `triggerSource: "replay:<originalSeq>"`
|
|
11
|
+
* so the audit trail is clear.
|
|
12
|
+
*
|
|
13
|
+
* Real-mode replay (write tools really fire) is deliberately NOT in
|
|
14
|
+
* this module. It needs a confirmation UX, a kill-switch interaction,
|
|
15
|
+
* and possibly a connector-level read/write split. Ship separately
|
|
16
|
+
* after explicit user approval.
|
|
17
|
+
*/
|
|
18
|
+
import type { ActivityLog } from "../activityLog.js";
|
|
19
|
+
import type { RecipeRun, RecipeRunLog } from "../runLog.js";
|
|
20
|
+
import type { ChainedRecipe, ChainedRunResult } from "./chainedRunner.js";
|
|
21
|
+
import type { RunnerDeps } from "./yamlRunner.js";
|
|
22
|
+
export interface ReplayDeps {
|
|
23
|
+
/** Long-lived run log so the new run shows up live in the dashboard. */
|
|
24
|
+
runLog: RecipeRunLog;
|
|
25
|
+
/** Activity log for live-tail SSE on the new run. Optional. */
|
|
26
|
+
activityLog?: ActivityLog;
|
|
27
|
+
/** Workdir + claudeCodeFn etc., reused from the orchestrator. */
|
|
28
|
+
runnerDeps: RunnerDeps;
|
|
29
|
+
}
|
|
30
|
+
export interface ReplayResult {
|
|
31
|
+
ok: boolean;
|
|
32
|
+
/** New run's seq if the replay started successfully. */
|
|
33
|
+
newSeq?: number;
|
|
34
|
+
/** Underlying recipe-run result for callers that want full detail. */
|
|
35
|
+
result?: ChainedRunResult;
|
|
36
|
+
error?: string;
|
|
37
|
+
/** Steps that lacked captured outputs and were dropped from the
|
|
38
|
+
* mocked map. The replay still runs but those steps fall through to
|
|
39
|
+
* REAL execution — callers may want to surface this as a warning. */
|
|
40
|
+
unmockedSteps?: string[];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Build the `mockedOutputs` map. Truncated captures (>8 KB envelope from
|
|
44
|
+
* VD-2's `captureForRunlog`) are excluded — replaying with a `[truncated]`
|
|
45
|
+
* preview would be misleading. Steps without captures are excluded too.
|
|
46
|
+
*/
|
|
47
|
+
export declare function buildMockedOutputs(originalRun: RecipeRun): {
|
|
48
|
+
outputs: Map<string, unknown>;
|
|
49
|
+
unmocked: string[];
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Fire a mocked replay of `originalRun` against `recipe`. The recipe
|
|
53
|
+
* argument is supplied by the caller (typically loaded fresh from disk
|
|
54
|
+
* by name) so an EDITED recipe can be replayed against captured
|
|
55
|
+
* outputs — that's the debugging value of replay.
|
|
56
|
+
*/
|
|
57
|
+
export declare function replayMockedRun(opts: {
|
|
58
|
+
originalRun: RecipeRun;
|
|
59
|
+
recipe: ChainedRecipe;
|
|
60
|
+
sourcePath?: string;
|
|
61
|
+
deps: ReplayDeps;
|
|
62
|
+
}): Promise<ReplayResult>;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* replayRun — VD-4 mocked replay entrypoint.
|
|
3
|
+
*
|
|
4
|
+
* Given an original `RecipeRun` (looked up from `RecipeRunLog`), build a
|
|
5
|
+
* `mockedOutputs` map from each step's captured `output` (VD-2) and
|
|
6
|
+
* re-run the recipe through `runChainedRecipe` with all tool/agent
|
|
7
|
+
* execution short-circuited to those captured values.
|
|
8
|
+
*
|
|
9
|
+
* Pure mocked-only: no external network calls, no write side effects.
|
|
10
|
+
* The new run is logged with `triggerSource: "replay:<originalSeq>"`
|
|
11
|
+
* so the audit trail is clear.
|
|
12
|
+
*
|
|
13
|
+
* Real-mode replay (write tools really fire) is deliberately NOT in
|
|
14
|
+
* this module. It needs a confirmation UX, a kill-switch interaction,
|
|
15
|
+
* and possibly a connector-level read/write split. Ship separately
|
|
16
|
+
* after explicit user approval.
|
|
17
|
+
*/
|
|
18
|
+
import { runChainedRecipe } from "./chainedRunner.js";
|
|
19
|
+
import { buildChainedDeps } from "./yamlRunner.js";
|
|
20
|
+
/**
|
|
21
|
+
* Build the `mockedOutputs` map. Truncated captures (>8 KB envelope from
|
|
22
|
+
* VD-2's `captureForRunlog`) are excluded — replaying with a `[truncated]`
|
|
23
|
+
* preview would be misleading. Steps without captures are excluded too.
|
|
24
|
+
*/
|
|
25
|
+
export function buildMockedOutputs(originalRun) {
|
|
26
|
+
const outputs = new Map();
|
|
27
|
+
const unmocked = [];
|
|
28
|
+
for (const step of originalRun.stepResults ?? []) {
|
|
29
|
+
if (step.status === "skipped")
|
|
30
|
+
continue;
|
|
31
|
+
const out = step.output;
|
|
32
|
+
if (out === undefined) {
|
|
33
|
+
unmocked.push(step.id);
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
// Skip the truncation envelope — replaying with a preview slice
|
|
37
|
+
// would be misleading.
|
|
38
|
+
if (out !== null &&
|
|
39
|
+
typeof out === "object" &&
|
|
40
|
+
out["[truncated]"] === true) {
|
|
41
|
+
unmocked.push(step.id);
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
outputs.set(step.id, out);
|
|
45
|
+
}
|
|
46
|
+
return { outputs, unmocked };
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Fire a mocked replay of `originalRun` against `recipe`. The recipe
|
|
50
|
+
* argument is supplied by the caller (typically loaded fresh from disk
|
|
51
|
+
* by name) so an EDITED recipe can be replayed against captured
|
|
52
|
+
* outputs — that's the debugging value of replay.
|
|
53
|
+
*/
|
|
54
|
+
export async function replayMockedRun(opts) {
|
|
55
|
+
const { originalRun, recipe, sourcePath, deps } = opts;
|
|
56
|
+
const { outputs, unmocked } = buildMockedOutputs(originalRun);
|
|
57
|
+
const chainedDeps = buildChainedDeps(deps.runnerDeps, deps.runnerDeps.claudeCodeFn ??
|
|
58
|
+
(async () => {
|
|
59
|
+
return "";
|
|
60
|
+
}));
|
|
61
|
+
const runOptions = {
|
|
62
|
+
env: { ...process.env },
|
|
63
|
+
maxConcurrency: recipe.maxConcurrency ?? 4,
|
|
64
|
+
maxDepth: recipe.maxDepth ?? 3,
|
|
65
|
+
dryRun: false,
|
|
66
|
+
...(sourcePath !== undefined && { sourcePath }),
|
|
67
|
+
runLog: deps.runLog,
|
|
68
|
+
...(deps.activityLog !== undefined && { activityLog: deps.activityLog }),
|
|
69
|
+
mockedOutputs: outputs,
|
|
70
|
+
// BUG-4 fix: tag the new run's taskId so it's distinguishable from a
|
|
71
|
+
// fresh run. Searchable as `taskId LIKE 'replay:<seq>:%'`.
|
|
72
|
+
taskIdPrefix: `replay:${originalRun.seq}`,
|
|
73
|
+
};
|
|
74
|
+
try {
|
|
75
|
+
const result = await runChainedRecipe(recipe, runOptions, chainedDeps);
|
|
76
|
+
// The runner's completeRun path will have already written the new
|
|
77
|
+
// run to the log. Find its seq — most-recent matching recipeName,
|
|
78
|
+
// started after originalRun.doneAt.
|
|
79
|
+
const recent = deps.runLog.query({ recipe: recipe.name, limit: 5 });
|
|
80
|
+
const newRun = recent.find((r) => r.createdAt > originalRun.doneAt);
|
|
81
|
+
return {
|
|
82
|
+
ok: result.success,
|
|
83
|
+
...(newRun?.seq !== undefined && { newSeq: newRun.seq }),
|
|
84
|
+
result,
|
|
85
|
+
...(result.errorMessage !== undefined && { error: result.errorMessage }),
|
|
86
|
+
...(unmocked.length > 0 && { unmockedSteps: unmocked }),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
return {
|
|
91
|
+
ok: false,
|
|
92
|
+
error: err instanceof Error ? err.message : String(err),
|
|
93
|
+
...(unmocked.length > 0 && { unmockedSteps: unmocked }),
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=replayRun.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replayRun.js","sourceRoot":"","sources":["../../src/recipes/replayRun.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAUH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAwBnD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAsB;IAIvD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC3C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QACjD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,SAAS;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QACxB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvB,SAAS;QACX,CAAC;QACD,gEAAgE;QAChE,uBAAuB;QACvB,IACE,GAAG,KAAK,IAAI;YACZ,OAAO,GAAG,KAAK,QAAQ;YACtB,GAA+B,CAAC,aAAa,CAAC,KAAK,IAAI,EACxD,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvB,SAAS;QACX,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAKrC;IACC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACvD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAE9D,MAAM,WAAW,GAAkB,gBAAgB,CACjD,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,UAAU,CAAC,YAAY;QAC1B,CAAC,KAAK,IAAI,EAAE;YACV,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,UAAU,GAAe;QAC7B,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAwC;QAC7D,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,CAAC;QAC1C,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC;QAC9B,MAAM,EAAE,KAAK;QACb,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;QAC/C,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACxE,aAAa,EAAE,OAAO;QACtB,qEAAqE;QACrE,2DAA2D;QAC3D,YAAY,EAAE,UAAU,WAAW,CAAC,GAAG,EAAE;KAC1C,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QACvE,kEAAkE;QAClE,kEAAkE;QAClE,oCAAoC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACpE,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,OAAO;YAClB,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;YACxD,MAAM;YACN,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;YACxE,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;SACxD,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACvD,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;SACxD,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
import { readdirSync, readFileSync } from "node:fs";
|
|
1
|
+
import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import cron from "node-cron";
|
|
4
4
|
import { parse as parseYaml } from "yaml";
|
|
5
5
|
import { loadConfig } from "../patchworkConfig.js";
|
|
6
6
|
import { findYamlRecipePath, loadRecipePrompt } from "../recipesHttp.js";
|
|
7
|
+
/**
|
|
8
|
+
* Per-recipe disabled marker — must match the constant in
|
|
9
|
+
* src/commands/recipeInstall.ts (kept inline here to avoid a circular
|
|
10
|
+
* import via commands → recipes back to commands).
|
|
11
|
+
*/
|
|
12
|
+
const DISABLED_MARKER = ".disabled";
|
|
7
13
|
export class RecipeScheduler {
|
|
8
14
|
opts;
|
|
9
15
|
scheduled = [];
|
|
@@ -34,17 +40,79 @@ export class RecipeScheduler {
|
|
|
34
40
|
catch {
|
|
35
41
|
return [];
|
|
36
42
|
}
|
|
43
|
+
const candidates = [];
|
|
37
44
|
for (const f of entries) {
|
|
45
|
+
const fullPath = path.join(this.opts.recipesDir, f);
|
|
46
|
+
let isDir = false;
|
|
47
|
+
try {
|
|
48
|
+
isDir = statSync(fullPath).isDirectory();
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (isDir) {
|
|
54
|
+
// Honor the per-recipe `.disabled` marker written by recipeInstall.
|
|
55
|
+
if (existsSync(path.join(fullPath, DISABLED_MARKER))) {
|
|
56
|
+
this.opts.logger?.info?.(`[scheduler] skipping recipe in "${f}" — .disabled marker present`);
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
// Locate the recipe entrypoint inside the install dir.
|
|
60
|
+
// Prefer recipe.json's `recipes.main`, then fall back to first YAML.
|
|
61
|
+
const manifestPath = path.join(fullPath, "recipe.json");
|
|
62
|
+
let entrypoint = null;
|
|
63
|
+
if (existsSync(manifestPath)) {
|
|
64
|
+
try {
|
|
65
|
+
const m = JSON.parse(readFileSync(manifestPath, "utf-8"));
|
|
66
|
+
if (m.recipes?.main) {
|
|
67
|
+
const candidate = path.join(fullPath, m.recipes.main);
|
|
68
|
+
if (existsSync(candidate))
|
|
69
|
+
entrypoint = candidate;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
// Malformed manifest — fall through to first-yaml fallback,
|
|
74
|
+
// but surface the issue so the user can fix it. Silent failures
|
|
75
|
+
// here led to "why isn't my recipe firing?" confusion.
|
|
76
|
+
this.opts.logger?.warn?.(`[scheduler] could not parse recipe.json in "${f}" — ${err instanceof Error ? err.message : String(err)}; falling back to first-yaml lookup`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (!entrypoint) {
|
|
80
|
+
try {
|
|
81
|
+
const yaml = readdirSync(fullPath).find((x) => /\.ya?ml$/i.test(x));
|
|
82
|
+
if (yaml)
|
|
83
|
+
entrypoint = path.join(fullPath, yaml);
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
// unreadable — skip
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (entrypoint) {
|
|
90
|
+
const ext = path.extname(entrypoint).toLowerCase();
|
|
91
|
+
candidates.push({
|
|
92
|
+
filePath: entrypoint,
|
|
93
|
+
kind: ext === ".json" ? "json" : "yaml",
|
|
94
|
+
installDir: fullPath,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
38
99
|
const isJson = f.endsWith(".json") && !f.endsWith(".permissions.json");
|
|
39
100
|
const isYaml = f.endsWith(".yaml") || f.endsWith(".yml");
|
|
40
101
|
if (!isJson && !isYaml)
|
|
41
102
|
continue;
|
|
42
|
-
|
|
103
|
+
candidates.push({
|
|
104
|
+
filePath: fullPath,
|
|
105
|
+
kind: isJson ? "json" : "yaml",
|
|
106
|
+
installDir: null,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
for (const cand of candidates) {
|
|
110
|
+
const f = path.basename(cand.filePath);
|
|
43
111
|
try {
|
|
44
112
|
let name;
|
|
45
113
|
let schedule;
|
|
46
|
-
if (
|
|
47
|
-
const raw = readFileSync(
|
|
114
|
+
if (cand.kind === "json") {
|
|
115
|
+
const raw = readFileSync(cand.filePath, "utf-8");
|
|
48
116
|
const parsed = JSON.parse(raw);
|
|
49
117
|
if (parsed.trigger?.type !== "cron")
|
|
50
118
|
continue;
|
|
@@ -56,17 +124,16 @@ export class RecipeScheduler {
|
|
|
56
124
|
}
|
|
57
125
|
else {
|
|
58
126
|
// YAML
|
|
59
|
-
const raw = readFileSync(
|
|
127
|
+
const raw = readFileSync(cand.filePath, "utf-8");
|
|
60
128
|
const parsed = parseYaml(raw);
|
|
61
129
|
if (parsed.trigger?.type !== "cron")
|
|
62
130
|
continue;
|
|
63
131
|
schedule = parsed.trigger.at ?? parsed.trigger.schedule;
|
|
64
132
|
if (!schedule || typeof schedule !== "string")
|
|
65
133
|
continue;
|
|
66
|
-
name =
|
|
67
|
-
parsed.name ?? path.basename(f, isYaml ? path.extname(f) : ".yaml");
|
|
134
|
+
name = parsed.name ?? path.basename(f, path.extname(f));
|
|
68
135
|
}
|
|
69
|
-
// Apply disabled
|
|
136
|
+
// Apply config-file disabled list (legacy mechanism)
|
|
70
137
|
if (disabled.has(name)) {
|
|
71
138
|
this.opts.logger?.info?.(`[scheduler] skipping disabled recipe "${name}"`);
|
|
72
139
|
continue;
|
|
@@ -110,8 +177,10 @@ export class RecipeScheduler {
|
|
|
110
177
|
this.opts.logger?.info?.(`[scheduler] "${name}" scheduled with cron expression "${schedule}"`);
|
|
111
178
|
}
|
|
112
179
|
}
|
|
113
|
-
catch {
|
|
114
|
-
//
|
|
180
|
+
catch (err) {
|
|
181
|
+
// Malformed recipe file — surface so users can debug rather than
|
|
182
|
+
// silently dropping the recipe from the schedule.
|
|
183
|
+
this.opts.logger?.warn?.(`[scheduler] could not load recipe at "${cand.filePath}" — ${err instanceof Error ? err.message : String(err)}; recipe will not be scheduled`);
|
|
115
184
|
}
|
|
116
185
|
}
|
|
117
186
|
return this.scheduled;
|
|
@@ -139,6 +208,24 @@ export class RecipeScheduler {
|
|
|
139
208
|
this.fire(name);
|
|
140
209
|
}
|
|
141
210
|
fire(name) {
|
|
211
|
+
// TOCTOU defence: re-check the legacy `cfg.recipes.disabled` list at
|
|
212
|
+
// fire time. `start()` snapshots it once; if the user runs `recipe
|
|
213
|
+
// disable <name>` after start (and the recipe is a top-level legacy
|
|
214
|
+
// file, where the marker file doesn't apply), the timer would
|
|
215
|
+
// otherwise still fire until next restart(). The `.disabled` marker
|
|
216
|
+
// case is handled inside findYamlRecipePath / loadRecipePrompt
|
|
217
|
+
// (skip disabled install dirs) thanks to PR #49.
|
|
218
|
+
try {
|
|
219
|
+
const cfg = loadConfig();
|
|
220
|
+
const disabled = new Set(cfg.recipes?.disabled ?? []);
|
|
221
|
+
if (disabled.has(name)) {
|
|
222
|
+
this.opts.logger?.info?.(`[scheduler] skipping "${name}" — disabled via config (TOCTOU re-check)`);
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
catch {
|
|
227
|
+
// proceed if config unreadable — falling back to scan-time snapshot
|
|
228
|
+
}
|
|
142
229
|
// YAML recipe — delegate to runYaml if provided
|
|
143
230
|
const yamlPath = findYamlRecipePath(this.opts.recipesDir, name);
|
|
144
231
|
if (yamlPath) {
|
|
@@ -155,7 +242,11 @@ export class RecipeScheduler {
|
|
|
155
242
|
// JSON recipe — legacy path
|
|
156
243
|
const loaded = loadRecipePrompt(this.opts.recipesDir, name);
|
|
157
244
|
if (!loaded) {
|
|
158
|
-
|
|
245
|
+
// After PR #49, findYamlRecipePath / loadRecipePrompt return null for
|
|
246
|
+
// recipes whose install dir has a `.disabled` marker — that's the
|
|
247
|
+
// common case here. "Disappeared" was misleading; prefer a message
|
|
248
|
+
// that names both possibilities.
|
|
249
|
+
this.opts.logger?.warn?.(`[scheduler] skipped "${name}" — recipe not found or disabled`);
|
|
159
250
|
return;
|
|
160
251
|
}
|
|
161
252
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/recipes/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/recipes/scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,7 +51,7 @@ export function generateDryRunPlanSchema() {
|
|
|
51
51
|
};
|
|
52
52
|
return {
|
|
53
53
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
54
|
-
$id: "https://
|
|
54
|
+
$id: "https://raw.githubusercontent.com/patchworkos/recipes/main/schema/dry-run-plan.v1.json",
|
|
55
55
|
title: "Patchwork Recipe Dry-Run Plan",
|
|
56
56
|
description: "Stable machine-readable output of `patchwork recipe run --dry-run`. Pin consumers on schemaVersion.",
|
|
57
57
|
type: "object",
|
|
@@ -240,7 +240,7 @@ function generateRecipeSchema(namespaceSchemas) {
|
|
|
240
240
|
};
|
|
241
241
|
return {
|
|
242
242
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
243
|
-
$id: "https://
|
|
243
|
+
$id: "https://raw.githubusercontent.com/patchworkos/recipes/main/schema/recipe.v1.json",
|
|
244
244
|
title: "Patchwork Recipe",
|
|
245
245
|
description: "YAML recipe schema for Patchwork automation",
|
|
246
246
|
// taplo formatter: auto-associates *.patchwork.yaml files
|
|
@@ -506,7 +506,7 @@ function generateNamespaceSchema(namespace) {
|
|
|
506
506
|
}
|
|
507
507
|
return {
|
|
508
508
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
509
|
-
$id: `https://
|
|
509
|
+
$id: `https://raw.githubusercontent.com/patchworkos/recipes/main/schema/tools/${namespace}.json`,
|
|
510
510
|
title: `${capitalize(namespace)} Tools`,
|
|
511
511
|
description: `Tool parameters for ${namespace} namespace`,
|
|
512
512
|
definitions,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemaGenerator.js","sourceRoot":"","sources":["../../src/recipes/schemaGenerator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schemaGenerator.js","sourceRoot":"","sources":["../../src/recipes/schemaGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,6 +66,11 @@ export declare function listTools(namespace?: string): RegisteredTool[];
|
|
|
66
66
|
export declare function getNamespaces(): string[];
|
|
67
67
|
/**
|
|
68
68
|
* Execute a tool by ID. Throws if tool not found.
|
|
69
|
+
*
|
|
70
|
+
* Refuses to execute write-tier tools when the global write kill switch is
|
|
71
|
+
* active (`kill-switch.writes` flag — set via `PATCHWORK_FLAG_KILL_SWITCH_WRITES=1`
|
|
72
|
+
* env var or persisted flag). Read-tier tools are always allowed; the kill
|
|
73
|
+
* switch is a one-way emergency brake on mutating operations.
|
|
69
74
|
*/
|
|
70
75
|
export declare function executeTool(id: string, context: ToolContext): Promise<string | null>;
|
|
71
76
|
/**
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* - Risk tier metadata for approval gates
|
|
9
9
|
* - Namespace isolation for connectors
|
|
10
10
|
*/
|
|
11
|
+
import { assertWriteAllowed } from "../featureFlags.js";
|
|
11
12
|
/** Internal registry map */
|
|
12
13
|
const registry = new Map();
|
|
13
14
|
/**
|
|
@@ -52,12 +53,20 @@ export function getNamespaces() {
|
|
|
52
53
|
}
|
|
53
54
|
/**
|
|
54
55
|
* Execute a tool by ID. Throws if tool not found.
|
|
56
|
+
*
|
|
57
|
+
* Refuses to execute write-tier tools when the global write kill switch is
|
|
58
|
+
* active (`kill-switch.writes` flag — set via `PATCHWORK_FLAG_KILL_SWITCH_WRITES=1`
|
|
59
|
+
* env var or persisted flag). Read-tier tools are always allowed; the kill
|
|
60
|
+
* switch is a one-way emergency brake on mutating operations.
|
|
55
61
|
*/
|
|
56
62
|
export async function executeTool(id, context) {
|
|
57
63
|
const tool = getTool(id);
|
|
58
64
|
if (!tool) {
|
|
59
65
|
throw new Error(`Unknown tool: "${id}"`);
|
|
60
66
|
}
|
|
67
|
+
if (tool.isWrite) {
|
|
68
|
+
assertWriteAllowed(id);
|
|
69
|
+
}
|
|
61
70
|
return tool.execute(context);
|
|
62
71
|
}
|
|
63
72
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolRegistry.js","sourceRoot":"","sources":["../../src/recipes/toolRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"toolRegistry.js","sourceRoot":"","sources":["../../src/recipes/toolRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asana tools — read wrappers (workspaces, projects, tasks, user) plus writes
|
|
3
|
+
* (create_task, update_task, complete_task, add_task_comment).
|
|
4
|
+
*
|
|
5
|
+
* Self-registering tool module for the recipe tool registry. Read tools wrap
|
|
6
|
+
* connector throws into the `{count, items, error}` shape that the runner's
|
|
7
|
+
* silent-fail detector (PR #75) catches as a step error rather than a silent
|
|
8
|
+
* empty list. Write tools use a single-object response shape (no count/items)
|
|
9
|
+
* but still surface failures via an `error` field.
|
|
10
|
+
*
|
|
11
|
+
* Note: Asana's only OAuth scope (`default`) grants read+write combined —
|
|
12
|
+
* there is no read-only-only scope. Defense lives here at the recipe-tool
|
|
13
|
+
* layer: read tools declare `isWrite: false`, write tools declare
|
|
14
|
+
* `isWrite: true` so the approval queue gates them appropriately.
|
|
15
|
+
*/
|
|
16
|
+
export {};
|