patchwork-os 0.2.0-beta.2 → 0.2.0-beta.3

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 (135) hide show
  1. package/README.bridge.md +5 -5
  2. package/README.md +156 -12
  3. package/dist/activityLog.d.ts +6 -0
  4. package/dist/activityLog.js +8 -0
  5. package/dist/activityLog.js.map +1 -1
  6. package/dist/analyticsPrefs.d.ts +35 -2
  7. package/dist/analyticsPrefs.js +120 -21
  8. package/dist/analyticsPrefs.js.map +1 -1
  9. package/dist/analyticsSend.js +5 -1
  10. package/dist/analyticsSend.js.map +1 -1
  11. package/dist/bridge.d.ts +2 -0
  12. package/dist/bridge.js +111 -7
  13. package/dist/bridge.js.map +1 -1
  14. package/dist/bridgeLockDiscovery.d.ts +27 -1
  15. package/dist/bridgeLockDiscovery.js +37 -11
  16. package/dist/bridgeLockDiscovery.js.map +1 -1
  17. package/dist/commands/patchworkInit.d.ts +5 -0
  18. package/dist/commands/patchworkInit.js +86 -7
  19. package/dist/commands/patchworkInit.js.map +1 -1
  20. package/dist/commands/recipe.d.ts +51 -0
  21. package/dist/commands/recipe.js +353 -2
  22. package/dist/commands/recipe.js.map +1 -1
  23. package/dist/commands/recipeInstall.js +6 -3
  24. package/dist/commands/recipeInstall.js.map +1 -1
  25. package/dist/commands/task.js +2 -2
  26. package/dist/commands/task.js.map +1 -1
  27. package/dist/config.d.ts +9 -2
  28. package/dist/config.js +35 -17
  29. package/dist/config.js.map +1 -1
  30. package/dist/connectors/tokenStorage.js +46 -10
  31. package/dist/connectors/tokenStorage.js.map +1 -1
  32. package/dist/featureFlags.d.ts +76 -0
  33. package/dist/featureFlags.js +166 -2
  34. package/dist/featureFlags.js.map +1 -1
  35. package/dist/index.js +765 -69
  36. package/dist/index.js.map +1 -1
  37. package/dist/lockfile.js +4 -1
  38. package/dist/lockfile.js.map +1 -1
  39. package/dist/patchworkConfig.js +5 -0
  40. package/dist/patchworkConfig.js.map +1 -1
  41. package/dist/recipeOrchestration.js +35 -1
  42. package/dist/recipeOrchestration.js.map +1 -1
  43. package/dist/recipeRoutes.d.ts +36 -0
  44. package/dist/recipeRoutes.js +231 -32
  45. package/dist/recipeRoutes.js.map +1 -1
  46. package/dist/recipes/agentExecutor.d.ts +25 -5
  47. package/dist/recipes/agentExecutor.js.map +1 -1
  48. package/dist/recipes/chainedRunner.js +16 -2
  49. package/dist/recipes/chainedRunner.js.map +1 -1
  50. package/dist/recipes/connectorPreflight.d.ts +53 -0
  51. package/dist/recipes/connectorPreflight.js +79 -0
  52. package/dist/recipes/connectorPreflight.js.map +1 -0
  53. package/dist/recipes/githubInstallSource.d.ts +62 -0
  54. package/dist/recipes/githubInstallSource.js +125 -0
  55. package/dist/recipes/githubInstallSource.js.map +1 -0
  56. package/dist/recipes/haltCategory.d.ts +80 -0
  57. package/dist/recipes/haltCategory.js +125 -0
  58. package/dist/recipes/haltCategory.js.map +1 -0
  59. package/dist/recipes/idempotencyKey.d.ts +126 -0
  60. package/dist/recipes/idempotencyKey.js +298 -0
  61. package/dist/recipes/idempotencyKey.js.map +1 -0
  62. package/dist/recipes/judgeSummary.d.ts +50 -0
  63. package/dist/recipes/judgeSummary.js +47 -0
  64. package/dist/recipes/judgeSummary.js.map +1 -0
  65. package/dist/recipes/judgeVerdict.d.ts +48 -0
  66. package/dist/recipes/judgeVerdict.js +174 -0
  67. package/dist/recipes/judgeVerdict.js.map +1 -0
  68. package/dist/recipes/migrations/index.d.ts +9 -0
  69. package/dist/recipes/migrations/index.js +133 -0
  70. package/dist/recipes/migrations/index.js.map +1 -1
  71. package/dist/recipes/runBudget.d.ts +70 -0
  72. package/dist/recipes/runBudget.js +109 -0
  73. package/dist/recipes/runBudget.js.map +1 -0
  74. package/dist/recipes/scheduler.js +1 -1
  75. package/dist/recipes/scheduler.js.map +1 -1
  76. package/dist/recipes/schema.d.ts +30 -0
  77. package/dist/recipes/toolRegistry.js +19 -0
  78. package/dist/recipes/toolRegistry.js.map +1 -1
  79. package/dist/recipes/tools/http.d.ts +10 -0
  80. package/dist/recipes/tools/http.js +176 -0
  81. package/dist/recipes/tools/http.js.map +1 -0
  82. package/dist/recipes/tools/index.d.ts +1 -0
  83. package/dist/recipes/tools/index.js +1 -0
  84. package/dist/recipes/tools/index.js.map +1 -1
  85. package/dist/recipes/validation.js +1 -1
  86. package/dist/recipes/validation.js.map +1 -1
  87. package/dist/recipes/yamlRunner.d.ts +71 -7
  88. package/dist/recipes/yamlRunner.js +156 -22
  89. package/dist/recipes/yamlRunner.js.map +1 -1
  90. package/dist/runLog.d.ts +28 -0
  91. package/dist/runLog.js +5 -0
  92. package/dist/runLog.js.map +1 -1
  93. package/dist/server.d.ts +65 -0
  94. package/dist/server.js +302 -3
  95. package/dist/server.js.map +1 -1
  96. package/dist/streamableHttp.js +17 -6
  97. package/dist/streamableHttp.js.map +1 -1
  98. package/dist/tools/bridgeDoctor.js +6 -2
  99. package/dist/tools/bridgeDoctor.js.map +1 -1
  100. package/dist/tools/ccRoutines.d.ts +221 -0
  101. package/dist/tools/ccRoutines.js +264 -0
  102. package/dist/tools/ccRoutines.js.map +1 -0
  103. package/dist/tools/getCodeCoverage.js +7 -3
  104. package/dist/tools/getCodeCoverage.js.map +1 -1
  105. package/dist/tools/index.js +6 -0
  106. package/dist/tools/index.js.map +1 -1
  107. package/dist/tools/recentTracesDigest.js +56 -11
  108. package/dist/tools/recentTracesDigest.js.map +1 -1
  109. package/dist/tools/testRunners/vitestJest.js +3 -1
  110. package/dist/tools/testRunners/vitestJest.js.map +1 -1
  111. package/dist/tools/utils.js +6 -3
  112. package/dist/tools/utils.js.map +1 -1
  113. package/package.json +17 -6
  114. package/scripts/postinstall.mjs +27 -0
  115. package/scripts/smoke/run-all.mjs +162 -0
  116. package/scripts/start-all.mjs +513 -0
  117. package/scripts/start-all.ps1 +209 -0
  118. package/scripts/start-all.sh +73 -17
  119. package/scripts/start-orchestrator.ps1 +158 -0
  120. package/scripts/start-remote.mjs +122 -0
  121. package/templates/automation-policies/recipe-authoring.json +1 -1
  122. package/templates/automation-policies/security-first.json +1 -1
  123. package/templates/automation-policies/strict-lint.json +1 -1
  124. package/templates/automation-policies/test-driven.json +1 -1
  125. package/templates/automation-policy.example.json +1 -1
  126. package/templates/co.patchwork-os.bridge.plist +1 -1
  127. package/templates/recipes/approval-queue-ui-test.yaml +1 -1
  128. package/templates/recipes/ctx-loop-test.yaml +1 -1
  129. package/templates/recipes/webhook/apple-watch-health-log.yaml +145 -0
  130. package/dist/commands/marketplace.d.ts +0 -16
  131. package/dist/commands/marketplace.js +0 -32
  132. package/dist/commands/marketplace.js.map +0 -1
  133. package/dist/recipes/legacyRecipeCompat.d.ts +0 -10
  134. package/dist/recipes/legacyRecipeCompat.js +0 -131
  135. package/dist/recipes/legacyRecipeCompat.js.map +0 -1
@@ -0,0 +1,221 @@
1
+ /**
2
+ * CC Routines Phase 3 — thin MCP tools for Claude Code Routines API.
3
+ *
4
+ * The `claude routines` subcommand is part of a research preview
5
+ * (API identifier: experimental-cc-routine-2026-04-01) gated on
6
+ * claude.ai accounts. These tools are registered unconditionally so
7
+ * they appear in the MCP handshake and fail gracefully when the API
8
+ * is not yet available on the host account.
9
+ *
10
+ * TODO: ungate when API exits research preview
11
+ */
12
+ export type RoutinesExecutor = (binary: string, args: string[]) => Promise<{
13
+ stdout: string;
14
+ }>;
15
+ /** Default executor using node:child_process execFile. */
16
+ export declare const defaultExecutor: RoutinesExecutor;
17
+ export declare function createListRoutinesTool(claudeBinary?: string, executor?: RoutinesExecutor): {
18
+ schema: {
19
+ name: string;
20
+ description: string;
21
+ annotations: {
22
+ title: string;
23
+ readOnlyHint: boolean;
24
+ destructiveHint: boolean;
25
+ openWorldHint: boolean;
26
+ };
27
+ inputSchema: {
28
+ type: "object";
29
+ properties: {};
30
+ additionalProperties: false;
31
+ };
32
+ outputSchema: {
33
+ type: string;
34
+ properties: {
35
+ routines: {
36
+ type: string;
37
+ items: {
38
+ type: string;
39
+ properties: {
40
+ id: {
41
+ type: string;
42
+ };
43
+ name: {
44
+ type: string;
45
+ };
46
+ schedule: {
47
+ type: string;
48
+ };
49
+ lastRun: {
50
+ type: string;
51
+ };
52
+ status: {
53
+ type: string;
54
+ };
55
+ };
56
+ required: string[];
57
+ };
58
+ };
59
+ error: {
60
+ type: string;
61
+ };
62
+ message: {
63
+ type: string;
64
+ };
65
+ };
66
+ };
67
+ };
68
+ handler: (_args: Record<string, unknown>) => Promise<{
69
+ content: Array<{
70
+ type: string;
71
+ text: string;
72
+ }>;
73
+ structuredContent: unknown;
74
+ isError?: undefined;
75
+ } | {
76
+ content: Array<{
77
+ type: string;
78
+ text: string;
79
+ }>;
80
+ isError: true;
81
+ } | {
82
+ content: {
83
+ type: "text";
84
+ text: string;
85
+ }[];
86
+ isError: boolean;
87
+ }>;
88
+ };
89
+ export declare function createRunRoutineTool(claudeBinary?: string, executor?: RoutinesExecutor): {
90
+ schema: {
91
+ name: string;
92
+ description: string;
93
+ annotations: {
94
+ title: string;
95
+ readOnlyHint: boolean;
96
+ destructiveHint: boolean;
97
+ openWorldHint: boolean;
98
+ };
99
+ inputSchema: {
100
+ type: "object";
101
+ properties: {
102
+ id: {
103
+ type: string;
104
+ description: string;
105
+ };
106
+ input: {
107
+ type: string;
108
+ description: string;
109
+ };
110
+ };
111
+ required: readonly ["id"];
112
+ additionalProperties: false;
113
+ };
114
+ outputSchema: {
115
+ type: string;
116
+ properties: {
117
+ taskId: {
118
+ type: string;
119
+ };
120
+ status: {
121
+ type: string;
122
+ };
123
+ error: {
124
+ type: string;
125
+ };
126
+ message: {
127
+ type: string;
128
+ };
129
+ };
130
+ };
131
+ };
132
+ handler: (args: Record<string, unknown>) => Promise<{
133
+ content: Array<{
134
+ type: string;
135
+ text: string;
136
+ }>;
137
+ structuredContent: unknown;
138
+ isError?: undefined;
139
+ } | {
140
+ content: Array<{
141
+ type: string;
142
+ text: string;
143
+ }>;
144
+ isError: true;
145
+ } | {
146
+ content: {
147
+ type: "text";
148
+ text: string;
149
+ }[];
150
+ isError: boolean;
151
+ }>;
152
+ };
153
+ export declare function createGetRoutineStatusTool(claudeBinary?: string, executor?: RoutinesExecutor): {
154
+ schema: {
155
+ name: string;
156
+ description: string;
157
+ annotations: {
158
+ title: string;
159
+ readOnlyHint: boolean;
160
+ destructiveHint: boolean;
161
+ openWorldHint: boolean;
162
+ };
163
+ inputSchema: {
164
+ type: "object";
165
+ properties: {
166
+ id: {
167
+ type: string;
168
+ description: string;
169
+ };
170
+ };
171
+ required: readonly ["id"];
172
+ additionalProperties: false;
173
+ };
174
+ outputSchema: {
175
+ type: string;
176
+ properties: {
177
+ id: {
178
+ type: string;
179
+ };
180
+ status: {
181
+ type: string;
182
+ };
183
+ lastRun: {
184
+ type: string;
185
+ };
186
+ nextRun: {
187
+ type: string;
188
+ };
189
+ output: {
190
+ type: string;
191
+ };
192
+ error: {
193
+ type: string;
194
+ };
195
+ message: {
196
+ type: string;
197
+ };
198
+ };
199
+ };
200
+ };
201
+ handler: (args: Record<string, unknown>) => Promise<{
202
+ content: Array<{
203
+ type: string;
204
+ text: string;
205
+ }>;
206
+ structuredContent: unknown;
207
+ isError?: undefined;
208
+ } | {
209
+ content: Array<{
210
+ type: string;
211
+ text: string;
212
+ }>;
213
+ isError: true;
214
+ } | {
215
+ content: {
216
+ type: "text";
217
+ text: string;
218
+ }[];
219
+ isError: boolean;
220
+ }>;
221
+ };
@@ -0,0 +1,264 @@
1
+ /**
2
+ * CC Routines Phase 3 — thin MCP tools for Claude Code Routines API.
3
+ *
4
+ * The `claude routines` subcommand is part of a research preview
5
+ * (API identifier: experimental-cc-routine-2026-04-01) gated on
6
+ * claude.ai accounts. These tools are registered unconditionally so
7
+ * they appear in the MCP handshake and fail gracefully when the API
8
+ * is not yet available on the host account.
9
+ *
10
+ * TODO: ungate when API exits research preview
11
+ */
12
+ import { execFile } from "node:child_process";
13
+ import { ToolErrorCodes } from "../errors.js";
14
+ import { error, successStructured } from "./utils.js";
15
+ const UNAVAILABLE_ERROR = {
16
+ error: "cc_routines_unavailable",
17
+ message: "Claude Code Routines API not yet available on this account. See https://claude.ai/code/routines",
18
+ };
19
+ /** Default executor using node:child_process execFile. */
20
+ export const defaultExecutor = (binary, args) => new Promise((resolve, reject) => {
21
+ execFile(binary, args, { timeout: 30_000, env: process.env }, (err, stdout) => {
22
+ if (err)
23
+ reject(err);
24
+ else
25
+ resolve({ stdout });
26
+ });
27
+ });
28
+ /** Run `claude routines <args>` and return stdout, or null if unavailable. */
29
+ async function runRoutinesCli(args, claudeBinary, executor) {
30
+ try {
31
+ const { stdout } = await executor(claudeBinary, ["routines", ...args]);
32
+ return { stdout };
33
+ }
34
+ catch (e) {
35
+ const msg = e instanceof Error ? e.message : String(e);
36
+ // Detect "unknown command" / "not found" variants that indicate the
37
+ // routines subcommand is not available on this build/account.
38
+ if (msg.includes("unknown command") ||
39
+ msg.includes("is not a claude command") ||
40
+ msg.includes("not found") ||
41
+ msg.includes("Unknown argument: routines")) {
42
+ return { unavailable: true };
43
+ }
44
+ return { execError: msg };
45
+ }
46
+ }
47
+ // ---------------------------------------------------------------------------
48
+ // listRoutines
49
+ // ---------------------------------------------------------------------------
50
+ export function createListRoutinesTool(claudeBinary = "claude", executor = defaultExecutor) {
51
+ return {
52
+ schema: {
53
+ name: "listRoutines",
54
+ description: "List all Claude Code Routines configured on this account. Returns an array of routine summaries including id, name, schedule, lastRun, and status. Requires the CC Routines research-preview feature.",
55
+ annotations: {
56
+ title: "List CC Routines",
57
+ readOnlyHint: true,
58
+ destructiveHint: false,
59
+ openWorldHint: true,
60
+ },
61
+ inputSchema: {
62
+ type: "object",
63
+ properties: {},
64
+ additionalProperties: false,
65
+ },
66
+ outputSchema: {
67
+ type: "object",
68
+ properties: {
69
+ routines: {
70
+ type: "array",
71
+ items: {
72
+ type: "object",
73
+ properties: {
74
+ id: { type: "string" },
75
+ name: { type: "string" },
76
+ schedule: { type: "string" },
77
+ lastRun: { type: "string" },
78
+ status: { type: "string" },
79
+ },
80
+ required: ["id", "name"],
81
+ },
82
+ },
83
+ error: { type: "string" },
84
+ message: { type: "string" },
85
+ },
86
+ },
87
+ },
88
+ handler: async (_args) => {
89
+ const result = await runRoutinesCli(["list", "--json"], claudeBinary, executor);
90
+ if ("unavailable" in result) {
91
+ return {
92
+ content: [
93
+ { type: "text", text: JSON.stringify(UNAVAILABLE_ERROR) },
94
+ ],
95
+ isError: true,
96
+ };
97
+ }
98
+ if ("execError" in result) {
99
+ return error(`Failed to list routines: ${result.execError}`, ToolErrorCodes.EXTERNAL_COMMAND_FAILED);
100
+ }
101
+ try {
102
+ const parsed = JSON.parse(result.stdout.trim() || "[]");
103
+ const routines = Array.isArray(parsed)
104
+ ? parsed
105
+ : (parsed.routines ?? []);
106
+ return successStructured({ routines });
107
+ }
108
+ catch {
109
+ // Non-JSON output — surface as raw text in a best-effort parse
110
+ const lines = result.stdout.trim().split("\n").filter(Boolean);
111
+ const routines = lines.map((line, i) => ({
112
+ id: String(i),
113
+ name: line,
114
+ }));
115
+ return successStructured({ routines });
116
+ }
117
+ },
118
+ };
119
+ }
120
+ // ---------------------------------------------------------------------------
121
+ // runRoutine
122
+ // ---------------------------------------------------------------------------
123
+ export function createRunRoutineTool(claudeBinary = "claude", executor = defaultExecutor) {
124
+ return {
125
+ schema: {
126
+ name: "runRoutine",
127
+ description: "Trigger a Claude Code Routine by ID. Optionally pass an input JSON string. Returns a taskId and initial status. Requires the CC Routines research-preview feature.",
128
+ annotations: {
129
+ title: "Run CC Routine",
130
+ readOnlyHint: false,
131
+ destructiveHint: false,
132
+ openWorldHint: true,
133
+ },
134
+ inputSchema: {
135
+ type: "object",
136
+ properties: {
137
+ id: {
138
+ type: "string",
139
+ description: "Routine ID to run.",
140
+ },
141
+ input: {
142
+ type: "string",
143
+ description: "Optional JSON string passed as --input to the routine.",
144
+ },
145
+ },
146
+ required: ["id"],
147
+ additionalProperties: false,
148
+ },
149
+ outputSchema: {
150
+ type: "object",
151
+ properties: {
152
+ taskId: { type: "string" },
153
+ status: { type: "string" },
154
+ error: { type: "string" },
155
+ message: { type: "string" },
156
+ },
157
+ },
158
+ },
159
+ handler: async (args) => {
160
+ const id = args.id;
161
+ if (typeof id !== "string" || id.trim() === "") {
162
+ return error("id must be a non-empty string", ToolErrorCodes.INVALID_ARGS);
163
+ }
164
+ const cliArgs = ["run", id.trim(), "--json"];
165
+ if (typeof args.input === "string" && args.input.trim() !== "") {
166
+ cliArgs.push("--input", args.input.trim());
167
+ }
168
+ const result = await runRoutinesCli(cliArgs, claudeBinary, executor);
169
+ if ("unavailable" in result) {
170
+ return {
171
+ content: [
172
+ { type: "text", text: JSON.stringify(UNAVAILABLE_ERROR) },
173
+ ],
174
+ isError: true,
175
+ };
176
+ }
177
+ if ("execError" in result) {
178
+ return error(`Failed to run routine: ${result.execError}`, ToolErrorCodes.EXTERNAL_COMMAND_FAILED);
179
+ }
180
+ try {
181
+ const parsed = JSON.parse(result.stdout.trim() || "{}");
182
+ return successStructured({
183
+ taskId: parsed.taskId ?? parsed.id ?? id,
184
+ status: parsed.status ?? "running",
185
+ });
186
+ }
187
+ catch {
188
+ return successStructured({ taskId: id, status: "running" });
189
+ }
190
+ },
191
+ };
192
+ }
193
+ // ---------------------------------------------------------------------------
194
+ // getRoutineStatus
195
+ // ---------------------------------------------------------------------------
196
+ export function createGetRoutineStatusTool(claudeBinary = "claude", executor = defaultExecutor) {
197
+ return {
198
+ schema: {
199
+ name: "getRoutineStatus",
200
+ description: "Get the current status, last run time, next scheduled run, and most recent output for a Claude Code Routine. Requires the CC Routines research-preview feature.",
201
+ annotations: {
202
+ title: "Get CC Routine Status",
203
+ readOnlyHint: true,
204
+ destructiveHint: false,
205
+ openWorldHint: true,
206
+ },
207
+ inputSchema: {
208
+ type: "object",
209
+ properties: {
210
+ id: {
211
+ type: "string",
212
+ description: "Routine ID to query.",
213
+ },
214
+ },
215
+ required: ["id"],
216
+ additionalProperties: false,
217
+ },
218
+ outputSchema: {
219
+ type: "object",
220
+ properties: {
221
+ id: { type: "string" },
222
+ status: { type: "string" },
223
+ lastRun: { type: "string" },
224
+ nextRun: { type: "string" },
225
+ output: { type: "string" },
226
+ error: { type: "string" },
227
+ message: { type: "string" },
228
+ },
229
+ },
230
+ },
231
+ handler: async (args) => {
232
+ const id = args.id;
233
+ if (typeof id !== "string" || id.trim() === "") {
234
+ return error("id must be a non-empty string", ToolErrorCodes.INVALID_ARGS);
235
+ }
236
+ const result = await runRoutinesCli(["status", id.trim(), "--json"], claudeBinary, executor);
237
+ if ("unavailable" in result) {
238
+ return {
239
+ content: [
240
+ { type: "text", text: JSON.stringify(UNAVAILABLE_ERROR) },
241
+ ],
242
+ isError: true,
243
+ };
244
+ }
245
+ if ("execError" in result) {
246
+ return error(`Failed to get routine status: ${result.execError}`, ToolErrorCodes.EXTERNAL_COMMAND_FAILED);
247
+ }
248
+ try {
249
+ const parsed = JSON.parse(result.stdout.trim() || "{}");
250
+ return successStructured({
251
+ id: parsed.id ?? id.trim(),
252
+ status: parsed.status ?? "unknown",
253
+ lastRun: parsed.lastRun ?? parsed.last_run ?? undefined,
254
+ nextRun: parsed.nextRun ?? parsed.next_run ?? undefined,
255
+ output: parsed.output ?? undefined,
256
+ });
257
+ }
258
+ catch {
259
+ return successStructured({ id: id.trim(), status: "unknown" });
260
+ }
261
+ },
262
+ };
263
+ }
264
+ //# sourceMappingURL=ccRoutines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ccRoutines.js","sourceRoot":"","sources":["../../src/tools/ccRoutines.ts"],"names":[],"mappings":"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"}
@@ -12,9 +12,13 @@ function parseCoverageSummary(content, workspace) {
12
12
  for (const [key, val] of Object.entries(json)) {
13
13
  if (key === "total")
14
14
  continue;
15
- const relFile = key.startsWith(workspace + path.sep)
16
- ? key.slice(workspace.length + 1)
17
- : key;
15
+ // Normalise separators so Unix-style keys (from coverage tools running on
16
+ // Windows via WSL or cross-compiled) match a backslash workspace root.
17
+ const normKey = key.replace(/\\/g, "/");
18
+ const normWs = workspace.replace(/\\/g, "/");
19
+ const relFile = normKey.startsWith(normWs + "/")
20
+ ? normKey.slice(normWs.length + 1)
21
+ : normKey;
18
22
  entries.push({
19
23
  file: relFile,
20
24
  lines: val.lines?.pct ?? 0,
@@ -1 +1 @@
1
- {"version":3,"file":"getCodeCoverage.js","sourceRoot":"","sources":["../../src/tools/getCodeCoverage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getCodeCoverage.js","sourceRoot":"","sources":["../../src/tools/getCodeCoverage.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { createBatchFindImplementationsTool, createBatchGetHoverTool, createBatc
5
5
  import { createBridgeDoctorTool } from "./bridgeDoctor.js";
6
6
  import { createBridgeStatusTool } from "./bridgeStatus.js";
7
7
  import { createCancelClaudeTaskTool } from "./cancelClaudeTask.js";
8
+ import { createGetRoutineStatusTool, createListRoutinesTool, createRunRoutineTool, } from "./ccRoutines.js";
8
9
  import { createCheckDocumentDirtyTool } from "./checkDocumentDirty.js";
9
10
  import { createReadClipboardTool, createWriteClipboardTool, } from "./clipboard.js";
10
11
  import { createCloseAllDiffTabsTool, createCloseTabTool } from "./closeTabs.js";
@@ -535,6 +536,11 @@ export function registerAllTools(transportOrCtx, configArg, openedFilesArg, prob
535
536
  ...(launchQuickTaskToolInstance ? [launchQuickTaskToolInstance] : []),
536
537
  ]
537
538
  : []),
539
+ // CC Routines — registered unconditionally; stub returns graceful error
540
+ // when the routines API is not yet available on the host account.
541
+ createListRoutinesTool(config.claudeBinary),
542
+ createRunRoutineTool(config.claudeBinary),
543
+ createGetRoutineStatusTool(config.claudeBinary),
538
544
  ];
539
545
  const activeTools = config.fullMode
540
546
  ? tools