mulch-cli 0.2.3 → 0.2.5

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 (42) hide show
  1. package/README.md +53 -1
  2. package/dist/cli.js +1 -1
  3. package/dist/commands/compact.d.ts.map +1 -1
  4. package/dist/commands/compact.js +151 -148
  5. package/dist/commands/compact.js.map +1 -1
  6. package/dist/commands/delete.d.ts.map +1 -1
  7. package/dist/commands/delete.js +28 -25
  8. package/dist/commands/delete.js.map +1 -1
  9. package/dist/commands/doctor.d.ts.map +1 -1
  10. package/dist/commands/doctor.js +43 -36
  11. package/dist/commands/doctor.js.map +1 -1
  12. package/dist/commands/edit.d.ts.map +1 -1
  13. package/dist/commands/edit.js +110 -107
  14. package/dist/commands/edit.js.map +1 -1
  15. package/dist/commands/onboard.d.ts.map +1 -1
  16. package/dist/commands/onboard.js +1 -0
  17. package/dist/commands/onboard.js.map +1 -1
  18. package/dist/commands/prime.d.ts.map +1 -1
  19. package/dist/commands/prime.js +62 -4
  20. package/dist/commands/prime.js.map +1 -1
  21. package/dist/commands/prune.d.ts.map +1 -1
  22. package/dist/commands/prune.js +29 -22
  23. package/dist/commands/prune.js.map +1 -1
  24. package/dist/commands/record.d.ts.map +1 -1
  25. package/dist/commands/record.js +44 -41
  26. package/dist/commands/record.js.map +1 -1
  27. package/dist/utils/budget.d.ts +33 -0
  28. package/dist/utils/budget.d.ts.map +1 -0
  29. package/dist/utils/budget.js +110 -0
  30. package/dist/utils/budget.js.map +1 -0
  31. package/dist/utils/expertise.d.ts.map +1 -1
  32. package/dist/utils/expertise.js +13 -2
  33. package/dist/utils/expertise.js.map +1 -1
  34. package/dist/utils/format.d.ts +1 -0
  35. package/dist/utils/format.d.ts.map +1 -1
  36. package/dist/utils/format.js +47 -0
  37. package/dist/utils/format.js.map +1 -1
  38. package/dist/utils/lock.d.ts +6 -0
  39. package/dist/utils/lock.d.ts.map +1 -0
  40. package/dist/utils/lock.js +70 -0
  41. package/dist/utils/lock.js.map +1 -0
  42. package/package.json +1 -1
package/README.md CHANGED
@@ -67,7 +67,7 @@ Everything is git-tracked. Clone a repo and your agents immediately have the pro
67
67
  | `mulch edit <domain> <id>` | Edit an existing record by ID or 1-based index |
68
68
  | `mulch delete <domain> <id>` | Delete a record by ID or 1-based index |
69
69
  | `mulch query [domain]` | Query expertise (use `--all` for all domains) |
70
- | `mulch prime [domains...]` | Output AI-optimized expertise context (multi-domain, `--context`, `--format`, `--export`) |
70
+ | `mulch prime [domains...]` | Output AI-optimized expertise context (`--budget`, `--no-limit`, `--context`, `--format`, `--export`) |
71
71
  | `mulch search [query]` | Search records across domains (`--domain`, `--type`, `--tag` filters) |
72
72
  | `mulch compact [domain]` | Analyze compaction candidates or apply a compaction (`--analyze`, `--apply`) |
73
73
  | `mulch status` | Show expertise freshness and counts |
@@ -120,6 +120,58 @@ $ mulch query database
120
120
  - **Append-only JSONL** — Zero merge conflicts, trivial schema validation.
121
121
  - **Storage ≠ Delivery** — JSONL on disk, optimized markdown/XML for agents.
122
122
 
123
+ ## Concurrency & Multi-Agent Safety
124
+
125
+ Mulch is designed for multi-agent workflows where several agents record expertise concurrently against the same repository.
126
+
127
+ ### How it works
128
+
129
+ - **Advisory file locking** — Write commands acquire a `.lock` file (O_CREAT|O_EXCL) before modifying any JSONL file. Retries every 50ms for up to 5 seconds; stale locks (>30s) are auto-removed.
130
+ - **Atomic writes** — All JSONL mutations write to a temp file first, then atomically rename into place. A crash mid-write never corrupts the expertise file.
131
+ - **Git merge strategy** — `mulch init` sets `merge=union` in `.gitattributes` so parallel branches append-merge JSONL lines without conflicts.
132
+
133
+ ### Command safety
134
+
135
+ | Safety level | Commands | Notes |
136
+ |---|---|---|
137
+ | **Fully safe** (read-only) | `prime`, `query`, `search`, `status`, `validate`, `learn`, `ready` | No file writes. Any number of agents, any time. |
138
+ | **Safe** (locked writes) | `record`, `edit`, `delete`, `compact`, `prune`, `doctor` | Acquire per-file lock before writing. Multiple agents can target the same domain — the lock serializes access automatically. |
139
+ | **Serialize** (setup ops) | `init`, `add`, `onboard`, `setup` | Modify config or external files (CLAUDE.md, git hooks). Run once during project setup, not during parallel agent work. |
140
+
141
+ ### Swarm patterns
142
+
143
+ **Same-worktree agents** (e.g., Claude Code team, parallel CI jobs):
144
+
145
+ ```bash
146
+ # Every agent can safely do this in parallel:
147
+ mulch prime # Read context
148
+ mulch record api --type pattern --name "..." --description "..." # Locked write
149
+ mulch search "error handling" # Read-only
150
+ ```
151
+
152
+ Locks ensure correctness automatically. If two agents record to the same domain at the same instant, one waits (up to 5s) for the other to finish.
153
+
154
+ **Multi-worktree / branch-per-agent**:
155
+
156
+ Each agent works in its own git worktree. On merge, `merge=union` combines all JSONL lines. Run `mulch doctor --fix` after merge to deduplicate if needed.
157
+
158
+ **Maintenance during swarm work**:
159
+
160
+ ```bash
161
+ mulch compact --analyze # Safe: read-only scan
162
+ mulch prune --dry-run # Safe: read-only scan
163
+ mulch doctor # Safe: read-only health check
164
+ ```
165
+
166
+ The `--apply`, default (non-dry-run), and `--fix` variants acquire locks and are also safe to run alongside recording agents.
167
+
168
+ ### Edge cases
169
+
170
+ - **Lock timeout**: If a lock cannot be acquired within 5 seconds, the command fails with an error. Retry or check for stuck processes.
171
+ - **Stale locks**: Locks older than 30 seconds are automatically cleaned up (e.g., after a crash).
172
+ - **`mulch sync`**: Uses git's own locking for commits. Multiple agents syncing on the same branch will contend on git's ref lock — coordinate sync timing or use per-agent branches.
173
+ - **`prime --export`**: Multiple agents exporting to the same file path will race. Use unique filenames per agent.
174
+
123
175
  ## License
124
176
 
125
177
  MIT
package/dist/cli.js CHANGED
@@ -23,7 +23,7 @@ const program = new Command();
23
23
  program
24
24
  .name("mulch")
25
25
  .description("Let your agents grow 🌱")
26
- .version("0.2.3")
26
+ .version("0.2.5")
27
27
  .option("--json", "output as structured JSON");
28
28
  registerInitCommand(program);
29
29
  registerAddCommand(program);
@@ -1 +1 @@
1
- {"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../src/commands/compact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsFpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+C7D"}
1
+ {"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../src/commands/compact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuFpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+C7D"}
@@ -1,6 +1,7 @@
1
1
  import chalk from "chalk";
2
2
  import { readConfig, getExpertisePath } from "../utils/config.js";
3
3
  import { readExpertiseFile, writeExpertiseFile, generateRecordId, resolveRecordId, } from "../utils/expertise.js";
4
+ import { withFileLock } from "../utils/lock.js";
4
5
  import { recordSchema } from "../schemas/record-schema.js";
5
6
  import { outputJson, outputJsonError } from "../utils/json-output.js";
6
7
  import { getRecordSummary } from "../utils/format.js";
@@ -163,129 +164,144 @@ async function handleApply(domain, options, jsonMode) {
163
164
  return;
164
165
  }
165
166
  const filePath = getExpertisePath(domain);
166
- const records = await readExpertiseFile(filePath);
167
- const identifiers = options.records.split(",").map((s) => s.trim()).filter(Boolean);
168
- let indicesToRemove;
169
- try {
170
- indicesToRemove = resolveRecordIds(records, identifiers);
171
- }
172
- catch (err) {
173
- const msg = err.message;
174
- if (jsonMode) {
175
- outputJsonError("compact", msg);
176
- }
177
- else {
178
- console.error(chalk.red(`Error: ${msg}`));
179
- }
180
- process.exitCode = 1;
181
- return;
182
- }
183
- if (indicesToRemove.length < 2) {
184
- const msg = "Compaction requires at least 2 records.";
185
- if (jsonMode) {
186
- outputJsonError("compact", msg);
187
- }
188
- else {
189
- console.error(chalk.red(`Error: ${msg}`));
167
+ await withFileLock(filePath, async () => {
168
+ const records = await readExpertiseFile(filePath);
169
+ const identifiers = options.records.split(",").map((s) => s.trim()).filter(Boolean);
170
+ let indicesToRemove;
171
+ try {
172
+ indicesToRemove = resolveRecordIds(records, identifiers);
190
173
  }
191
- process.exitCode = 1;
192
- return;
193
- }
194
- // Build replacement record
195
- const recordType = options.type ?? records[indicesToRemove[0]].type;
196
- const recordedAt = new Date().toISOString();
197
- const compactedFrom = indicesToRemove.map((i) => records[i].id).filter(Boolean);
198
- let replacement;
199
- switch (recordType) {
200
- case "convention": {
201
- const content = options.content ?? options.description;
202
- if (!content) {
203
- const msg = "Replacement convention requires --content or --description.";
204
- if (jsonMode) {
205
- outputJsonError("compact", msg);
206
- }
207
- else {
208
- console.error(chalk.red(`Error: ${msg}`));
209
- }
210
- process.exitCode = 1;
211
- return;
174
+ catch (err) {
175
+ const msg = err.message;
176
+ if (jsonMode) {
177
+ outputJsonError("compact", msg);
212
178
  }
213
- replacement = { type: "convention", content, classification: "foundational", recorded_at: recordedAt };
214
- break;
179
+ else {
180
+ console.error(chalk.red(`Error: ${msg}`));
181
+ }
182
+ process.exitCode = 1;
183
+ return;
215
184
  }
216
- case "pattern": {
217
- const name = options.name;
218
- const description = options.description;
219
- if (!name || !description) {
220
- const msg = "Replacement pattern requires --name and --description.";
221
- if (jsonMode) {
222
- outputJsonError("compact", msg);
223
- }
224
- else {
225
- console.error(chalk.red(`Error: ${msg}`));
226
- }
227
- process.exitCode = 1;
228
- return;
185
+ if (indicesToRemove.length < 2) {
186
+ const msg = "Compaction requires at least 2 records.";
187
+ if (jsonMode) {
188
+ outputJsonError("compact", msg);
229
189
  }
230
- replacement = { type: "pattern", name, description, classification: "foundational", recorded_at: recordedAt };
231
- break;
190
+ else {
191
+ console.error(chalk.red(`Error: ${msg}`));
192
+ }
193
+ process.exitCode = 1;
194
+ return;
232
195
  }
233
- case "failure": {
234
- const description = options.description;
235
- const resolution = options.resolution;
236
- if (!description || !resolution) {
237
- const msg = "Replacement failure requires --description and --resolution.";
238
- if (jsonMode) {
239
- outputJsonError("compact", msg);
196
+ // Build replacement record
197
+ const recordType = options.type ?? records[indicesToRemove[0]].type;
198
+ const recordedAt = new Date().toISOString();
199
+ const compactedFrom = indicesToRemove.map((i) => records[i].id).filter(Boolean);
200
+ let replacement;
201
+ switch (recordType) {
202
+ case "convention": {
203
+ const content = options.content ?? options.description;
204
+ if (!content) {
205
+ const msg = "Replacement convention requires --content or --description.";
206
+ if (jsonMode) {
207
+ outputJsonError("compact", msg);
208
+ }
209
+ else {
210
+ console.error(chalk.red(`Error: ${msg}`));
211
+ }
212
+ process.exitCode = 1;
213
+ return;
240
214
  }
241
- else {
242
- console.error(chalk.red(`Error: ${msg}`));
215
+ replacement = { type: "convention", content, classification: "foundational", recorded_at: recordedAt };
216
+ break;
217
+ }
218
+ case "pattern": {
219
+ const name = options.name;
220
+ const description = options.description;
221
+ if (!name || !description) {
222
+ const msg = "Replacement pattern requires --name and --description.";
223
+ if (jsonMode) {
224
+ outputJsonError("compact", msg);
225
+ }
226
+ else {
227
+ console.error(chalk.red(`Error: ${msg}`));
228
+ }
229
+ process.exitCode = 1;
230
+ return;
243
231
  }
244
- process.exitCode = 1;
245
- return;
232
+ replacement = { type: "pattern", name, description, classification: "foundational", recorded_at: recordedAt };
233
+ break;
246
234
  }
247
- replacement = { type: "failure", description, resolution, classification: "foundational", recorded_at: recordedAt };
248
- break;
249
- }
250
- case "decision": {
251
- const title = options.title;
252
- const rationale = options.rationale;
253
- if (!title || !rationale) {
254
- const msg = "Replacement decision requires --title and --rationale.";
255
- if (jsonMode) {
256
- outputJsonError("compact", msg);
235
+ case "failure": {
236
+ const description = options.description;
237
+ const resolution = options.resolution;
238
+ if (!description || !resolution) {
239
+ const msg = "Replacement failure requires --description and --resolution.";
240
+ if (jsonMode) {
241
+ outputJsonError("compact", msg);
242
+ }
243
+ else {
244
+ console.error(chalk.red(`Error: ${msg}`));
245
+ }
246
+ process.exitCode = 1;
247
+ return;
257
248
  }
258
- else {
259
- console.error(chalk.red(`Error: ${msg}`));
249
+ replacement = { type: "failure", description, resolution, classification: "foundational", recorded_at: recordedAt };
250
+ break;
251
+ }
252
+ case "decision": {
253
+ const title = options.title;
254
+ const rationale = options.rationale;
255
+ if (!title || !rationale) {
256
+ const msg = "Replacement decision requires --title and --rationale.";
257
+ if (jsonMode) {
258
+ outputJsonError("compact", msg);
259
+ }
260
+ else {
261
+ console.error(chalk.red(`Error: ${msg}`));
262
+ }
263
+ process.exitCode = 1;
264
+ return;
260
265
  }
261
- process.exitCode = 1;
262
- return;
266
+ replacement = { type: "decision", title, rationale, classification: "foundational", recorded_at: recordedAt };
267
+ break;
263
268
  }
264
- replacement = { type: "decision", title, rationale, classification: "foundational", recorded_at: recordedAt };
265
- break;
266
- }
267
- case "reference": {
268
- const name = options.name;
269
- const description = options.description;
270
- if (!name || !description) {
271
- const msg = "Replacement reference requires --name and --description.";
272
- if (jsonMode) {
273
- outputJsonError("compact", msg);
269
+ case "reference": {
270
+ const name = options.name;
271
+ const description = options.description;
272
+ if (!name || !description) {
273
+ const msg = "Replacement reference requires --name and --description.";
274
+ if (jsonMode) {
275
+ outputJsonError("compact", msg);
276
+ }
277
+ else {
278
+ console.error(chalk.red(`Error: ${msg}`));
279
+ }
280
+ process.exitCode = 1;
281
+ return;
274
282
  }
275
- else {
276
- console.error(chalk.red(`Error: ${msg}`));
283
+ replacement = { type: "reference", name, description, classification: "foundational", recorded_at: recordedAt };
284
+ break;
285
+ }
286
+ case "guide": {
287
+ const name = options.name;
288
+ const description = options.description;
289
+ if (!name || !description) {
290
+ const msg = "Replacement guide requires --name and --description.";
291
+ if (jsonMode) {
292
+ outputJsonError("compact", msg);
293
+ }
294
+ else {
295
+ console.error(chalk.red(`Error: ${msg}`));
296
+ }
297
+ process.exitCode = 1;
298
+ return;
277
299
  }
278
- process.exitCode = 1;
279
- return;
300
+ replacement = { type: "guide", name, description, classification: "foundational", recorded_at: recordedAt };
301
+ break;
280
302
  }
281
- replacement = { type: "reference", name, description, classification: "foundational", recorded_at: recordedAt };
282
- break;
283
- }
284
- case "guide": {
285
- const name = options.name;
286
- const description = options.description;
287
- if (!name || !description) {
288
- const msg = "Replacement guide requires --name and --description.";
303
+ default: {
304
+ const msg = `Unknown record type "${recordType}".`;
289
305
  if (jsonMode) {
290
306
  outputJsonError("compact", msg);
291
307
  }
@@ -295,11 +311,18 @@ async function handleApply(domain, options, jsonMode) {
295
311
  process.exitCode = 1;
296
312
  return;
297
313
  }
298
- replacement = { type: "guide", name, description, classification: "foundational", recorded_at: recordedAt };
299
- break;
300
314
  }
301
- default: {
302
- const msg = `Unknown record type "${recordType}".`;
315
+ // Add supersedes links to the compacted-from records
316
+ if (compactedFrom.length > 0) {
317
+ replacement.supersedes = compactedFrom;
318
+ }
319
+ // Validate replacement
320
+ const ajv = new Ajv();
321
+ const validate = ajv.compile(recordSchema);
322
+ replacement.id = generateRecordId(replacement);
323
+ if (!validate(replacement)) {
324
+ const errors = (validate.errors ?? []).map((err) => `${err.instancePath} ${err.message}`);
325
+ const msg = `Replacement record failed validation: ${errors.join("; ")}`;
303
326
  if (jsonMode) {
304
327
  outputJsonError("compact", msg);
305
328
  }
@@ -309,44 +332,24 @@ async function handleApply(domain, options, jsonMode) {
309
332
  process.exitCode = 1;
310
333
  return;
311
334
  }
312
- }
313
- // Add supersedes links to the compacted-from records
314
- if (compactedFrom.length > 0) {
315
- replacement.supersedes = compactedFrom;
316
- }
317
- // Validate replacement
318
- const ajv = new Ajv();
319
- const validate = ajv.compile(recordSchema);
320
- replacement.id = generateRecordId(replacement);
321
- if (!validate(replacement)) {
322
- const errors = (validate.errors ?? []).map((err) => `${err.instancePath} ${err.message}`);
323
- const msg = `Replacement record failed validation: ${errors.join("; ")}`;
335
+ // Remove old records and append replacement
336
+ const removeSet = new Set(indicesToRemove);
337
+ const remaining = records.filter((_, i) => !removeSet.has(i));
338
+ remaining.push(replacement);
339
+ await writeExpertiseFile(filePath, remaining);
324
340
  if (jsonMode) {
325
- outputJsonError("compact", msg);
341
+ outputJson({
342
+ success: true,
343
+ command: "compact",
344
+ action: "applied",
345
+ domain,
346
+ removed: indicesToRemove.length,
347
+ replacement,
348
+ });
326
349
  }
327
350
  else {
328
- console.error(chalk.red(`Error: ${msg}`));
351
+ console.log(chalk.green(`\u2714 Compacted ${indicesToRemove.length} ${recordType} records into 1 in ${domain}`));
329
352
  }
330
- process.exitCode = 1;
331
- return;
332
- }
333
- // Remove old records and append replacement
334
- const removeSet = new Set(indicesToRemove);
335
- const remaining = records.filter((_, i) => !removeSet.has(i));
336
- remaining.push(replacement);
337
- await writeExpertiseFile(filePath, remaining);
338
- if (jsonMode) {
339
- outputJson({
340
- success: true,
341
- command: "compact",
342
- action: "applied",
343
- domain,
344
- removed: indicesToRemove.length,
345
- replacement,
346
- });
347
- }
348
- else {
349
- console.log(chalk.green(`\u2714 Compacted ${indicesToRemove.length} ${recordType} records into 1 in ${domain}`));
350
- }
353
+ });
351
354
  }
352
355
  //# sourceMappingURL=compact.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/commands/compact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/commands/compact.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoF5D"}
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsF5D"}
@@ -1,6 +1,7 @@
1
1
  import chalk from "chalk";
2
2
  import { readConfig, getExpertisePath } from "../utils/config.js";
3
3
  import { readExpertiseFile, writeExpertiseFile, resolveRecordId, } from "../utils/expertise.js";
4
+ import { withFileLock } from "../utils/lock.js";
4
5
  import { getRecordSummary } from "../utils/format.js";
5
6
  import { outputJson, outputJsonError } from "../utils/json-output.js";
6
7
  export function registerDeleteCommand(program) {
@@ -25,35 +26,37 @@ export function registerDeleteCommand(program) {
25
26
  return;
26
27
  }
27
28
  const filePath = getExpertisePath(domain);
28
- const records = await readExpertiseFile(filePath);
29
- const resolved = resolveRecordId(records, id);
30
- if (!resolved.ok) {
29
+ await withFileLock(filePath, async () => {
30
+ const records = await readExpertiseFile(filePath);
31
+ const resolved = resolveRecordId(records, id);
32
+ if (!resolved.ok) {
33
+ if (jsonMode) {
34
+ outputJsonError("delete", resolved.error);
35
+ }
36
+ else {
37
+ console.error(chalk.red(`Error: ${resolved.error}`));
38
+ }
39
+ process.exitCode = 1;
40
+ return;
41
+ }
42
+ const targetIndex = resolved.index;
43
+ const deleted = records[targetIndex];
44
+ records.splice(targetIndex, 1);
45
+ await writeExpertiseFile(filePath, records);
31
46
  if (jsonMode) {
32
- outputJsonError("delete", resolved.error);
47
+ outputJson({
48
+ success: true,
49
+ command: "delete",
50
+ domain,
51
+ id: deleted.id ?? null,
52
+ type: deleted.type,
53
+ summary: getRecordSummary(deleted),
54
+ });
33
55
  }
34
56
  else {
35
- console.error(chalk.red(`Error: ${resolved.error}`));
57
+ console.log(chalk.green(`✔ Deleted ${deleted.type} ${deleted.id ?? ""} from ${domain}: ${getRecordSummary(deleted)}`));
36
58
  }
37
- process.exitCode = 1;
38
- return;
39
- }
40
- const targetIndex = resolved.index;
41
- const deleted = records[targetIndex];
42
- records.splice(targetIndex, 1);
43
- await writeExpertiseFile(filePath, records);
44
- if (jsonMode) {
45
- outputJson({
46
- success: true,
47
- command: "delete",
48
- domain,
49
- id: deleted.id ?? null,
50
- type: deleted.type,
51
- summary: getRecordSummary(deleted),
52
- });
53
- }
54
- else {
55
- console.log(chalk.green(`✔ Deleted ${deleted.type} ${deleted.id ?? ""} from ${domain}: ${getRecordSummary(deleted)}`));
56
- }
59
+ });
57
60
  }
58
61
  catch (err) {
59
62
  if (err.code === "ENOENT") {
@@ -1 +1 @@
1
- {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsUpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiF5D"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6UpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiF5D"}