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.
- package/README.md +53 -1
- package/dist/cli.js +1 -1
- package/dist/commands/compact.d.ts.map +1 -1
- package/dist/commands/compact.js +151 -148
- package/dist/commands/compact.js.map +1 -1
- package/dist/commands/delete.d.ts.map +1 -1
- package/dist/commands/delete.js +28 -25
- package/dist/commands/delete.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +43 -36
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit.d.ts.map +1 -1
- package/dist/commands/edit.js +110 -107
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/onboard.d.ts.map +1 -1
- package/dist/commands/onboard.js +1 -0
- package/dist/commands/onboard.js.map +1 -1
- package/dist/commands/prime.d.ts.map +1 -1
- package/dist/commands/prime.js +62 -4
- package/dist/commands/prime.js.map +1 -1
- package/dist/commands/prune.d.ts.map +1 -1
- package/dist/commands/prune.js +29 -22
- package/dist/commands/prune.js.map +1 -1
- package/dist/commands/record.d.ts.map +1 -1
- package/dist/commands/record.js +44 -41
- package/dist/commands/record.js.map +1 -1
- package/dist/utils/budget.d.ts +33 -0
- package/dist/utils/budget.d.ts.map +1 -0
- package/dist/utils/budget.js +110 -0
- package/dist/utils/budget.js.map +1 -0
- package/dist/utils/expertise.d.ts.map +1 -1
- package/dist/utils/expertise.js +13 -2
- package/dist/utils/expertise.js.map +1 -1
- package/dist/utils/format.d.ts +1 -0
- package/dist/utils/format.d.ts.map +1 -1
- package/dist/utils/format.js +47 -0
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/lock.d.ts +6 -0
- package/dist/utils/lock.d.ts.map +1 -0
- package/dist/utils/lock.js +70 -0
- package/dist/utils/lock.js.map +1 -0
- 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 (
|
|
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
|
@@ -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;
|
|
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"}
|
package/dist/commands/compact.js
CHANGED
|
@@ -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
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
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
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
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
|
-
|
|
214
|
-
|
|
179
|
+
else {
|
|
180
|
+
console.error(chalk.red(`Error: ${msg}`));
|
|
181
|
+
}
|
|
182
|
+
process.exitCode = 1;
|
|
183
|
+
return;
|
|
215
184
|
}
|
|
216
|
-
|
|
217
|
-
const
|
|
218
|
-
|
|
219
|
-
|
|
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
|
-
|
|
231
|
-
|
|
190
|
+
else {
|
|
191
|
+
console.error(chalk.red(`Error: ${msg}`));
|
|
192
|
+
}
|
|
193
|
+
process.exitCode = 1;
|
|
194
|
+
return;
|
|
232
195
|
}
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
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
|
-
|
|
242
|
-
|
|
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
|
-
|
|
245
|
-
|
|
232
|
+
replacement = { type: "pattern", name, description, classification: "foundational", recorded_at: recordedAt };
|
|
233
|
+
break;
|
|
246
234
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
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
|
-
|
|
259
|
-
|
|
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
|
-
|
|
262
|
-
|
|
266
|
+
replacement = { type: "decision", title, rationale, classification: "foundational", recorded_at: recordedAt };
|
|
267
|
+
break;
|
|
263
268
|
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
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
|
-
|
|
276
|
-
|
|
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
|
-
|
|
279
|
-
|
|
300
|
+
replacement = { type: "guide", name, description, classification: "foundational", recorded_at: recordedAt };
|
|
301
|
+
break;
|
|
280
302
|
}
|
|
281
|
-
|
|
282
|
-
|
|
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
|
-
|
|
302
|
-
|
|
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
|
-
|
|
314
|
-
|
|
315
|
-
replacement
|
|
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
|
-
|
|
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.
|
|
351
|
+
console.log(chalk.green(`\u2714 Compacted ${indicesToRemove.length} ${recordType} records into 1 in ${domain}`));
|
|
329
352
|
}
|
|
330
|
-
|
|
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;
|
|
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"}
|
package/dist/commands/delete.js
CHANGED
|
@@ -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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
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.
|
|
57
|
+
console.log(chalk.green(`✔ Deleted ${deleted.type} ${deleted.id ?? ""} from ${domain}: ${getRecordSummary(deleted)}`));
|
|
36
58
|
}
|
|
37
|
-
|
|
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":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEtE,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;SACxC,QAAQ,CAAC,MAAM,EAAE,4CAA4C,CAAC;SAC9D,WAAW,CAAC,4BAA4B,CAAC;SACzC,MAAM,CACL,KAAK,EAAE,MAAc,EAAE,EAAU,EAAE,EAAE;QACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;YAElC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrC,IAAI,QAAQ,EAAE,CAAC;oBACb,eAAe,CAAC,QAAQ,EAAE,WAAW,MAAM,6CAA6C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;gBACnI,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,kBAAkB,MAAM,wBAAwB,CAAC,CAC5D,CAAC;oBACF,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,sBAAsB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAC9D,CACF,CAAC;gBACJ,CAAC;gBACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;
|
|
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;
|
|
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"}
|