mulch-cli 0.4.3 → 0.5.0
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 +12 -3
- package/dist/api.d.ts +65 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +196 -0
- package/dist/api.js.map +1 -0
- package/dist/cli.js +1 -1
- package/dist/commands/edit.d.ts.map +1 -1
- package/dist/commands/edit.js +12 -24
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/query.d.ts.map +1 -1
- package/dist/commands/query.js +15 -0
- package/dist/commands/query.js.map +1 -1
- package/dist/commands/record.d.ts.map +1 -1
- package/dist/commands/record.js +13 -12
- package/dist/commands/record.js.map +1 -1
- package/dist/commands/search.js +3 -3
- package/dist/commands/search.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/schemas/index.d.ts +1 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/record-schema.d.ts +37 -13
- package/dist/schemas/record-schema.d.ts.map +1 -1
- package/dist/schemas/record-schema.js +9 -7
- package/dist/schemas/record-schema.js.map +1 -1
- package/dist/schemas/record.d.ts +4 -2
- package/dist/schemas/record.d.ts.map +1 -1
- package/dist/utils/expertise.d.ts.map +1 -1
- package/dist/utils/expertise.js +13 -1
- package/dist/utils/expertise.js.map +1 -1
- package/dist/utils/format.d.ts.map +1 -1
- package/dist/utils/format.js +19 -13
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/scoring.d.ts +5 -21
- package/dist/utils/scoring.d.ts.map +1 -1
- package/dist/utils/scoring.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -71,7 +71,7 @@ Everything is git-tracked. Clone a repo and your agents immediately have the pro
|
|
|
71
71
|
| `mulch record <domain> --type <type>` | Record an expertise record (`--tags`, `--force`, `--relates-to`, `--supersedes`, `--batch`, `--stdin`, `--dry-run`, `--evidence-bead`) |
|
|
72
72
|
| `mulch edit <domain> <id>` | Edit an existing record by ID or 1-based index |
|
|
73
73
|
| `mulch delete <domain> <id>` | Delete a record by ID or 1-based index |
|
|
74
|
-
| `mulch query [domain]` | Query expertise (use `--all` for all domains, `--classification`, `--file` filters) |
|
|
74
|
+
| `mulch query [domain]` | Query expertise (use `--all` for all domains, `--classification`, `--file`, `--outcome-status`, `--sort-by-score` filters) |
|
|
75
75
|
| `mulch prime [domains...]` | Output AI-optimized expertise context (`--budget`, `--no-limit`, `--context`, `--files`, `--exclude-domain`, `--format`, `--export`) |
|
|
76
76
|
| `mulch search [query]` | Search records across domains with BM25 ranking (`--domain`, `--type`, `--tag`, `--classification`, `--file`, `--sort-by-score` filters) |
|
|
77
77
|
| `mulch compact [domain]` | Analyze compaction candidates or apply a compaction (`--analyze`, `--auto`, `--apply`, `--dry-run`, `--min-group`, `--max-records`) |
|
|
@@ -197,9 +197,18 @@ The `--apply`, default (non-dry-run), and `--fix` variants acquire locks and are
|
|
|
197
197
|
|
|
198
198
|
## Programmatic API
|
|
199
199
|
|
|
200
|
-
Mulch exports
|
|
200
|
+
Mulch exports both low-level utilities and a high-level programmatic API:
|
|
201
201
|
|
|
202
202
|
```typescript
|
|
203
|
+
// High-level API — recommended for most use cases
|
|
204
|
+
import {
|
|
205
|
+
recordExpertise, // Record a new expertise entry (with dedup and locking)
|
|
206
|
+
searchExpertise, // Search records across domains
|
|
207
|
+
queryDomain, // Query all records for a domain
|
|
208
|
+
editRecord, // Edit an existing record by ID
|
|
209
|
+
} from "mulch-cli";
|
|
210
|
+
|
|
211
|
+
// Low-level utilities
|
|
203
212
|
import {
|
|
204
213
|
readConfig,
|
|
205
214
|
getExpertisePath,
|
|
@@ -213,7 +222,7 @@ import {
|
|
|
213
222
|
} from "mulch-cli";
|
|
214
223
|
```
|
|
215
224
|
|
|
216
|
-
Types (`ExpertiseRecord`, `MulchConfig`, `RecordType`, `Classification`, `ScoredRecord`, `Outcome`, etc.) are also exported.
|
|
225
|
+
Types (`ExpertiseRecord`, `MulchConfig`, `RecordType`, `Classification`, `ScoredRecord`, `Outcome`, `RecordOptions`, `RecordResult`, `SearchOptions`, `SearchResult`, `QueryOptions`, `EditOptions`, `RecordUpdates`, etc.) are also exported.
|
|
217
226
|
|
|
218
227
|
## Contributing
|
|
219
228
|
|
package/dist/api.d.ts
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { ExpertiseRecord, Classification, Outcome } from "./schemas/record.js";
|
|
2
|
+
export interface RecordOptions {
|
|
3
|
+
force?: boolean;
|
|
4
|
+
cwd?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface RecordResult {
|
|
7
|
+
action: "created" | "updated" | "skipped";
|
|
8
|
+
record: ExpertiseRecord;
|
|
9
|
+
}
|
|
10
|
+
export interface SearchOptions {
|
|
11
|
+
domain?: string;
|
|
12
|
+
type?: string;
|
|
13
|
+
tag?: string;
|
|
14
|
+
classification?: string;
|
|
15
|
+
file?: string;
|
|
16
|
+
cwd?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface SearchResult {
|
|
19
|
+
domain: string;
|
|
20
|
+
records: ExpertiseRecord[];
|
|
21
|
+
}
|
|
22
|
+
export interface QueryOptions {
|
|
23
|
+
type?: string;
|
|
24
|
+
classification?: string;
|
|
25
|
+
file?: string;
|
|
26
|
+
cwd?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface EditOptions {
|
|
29
|
+
cwd?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface RecordUpdates {
|
|
32
|
+
classification?: Classification;
|
|
33
|
+
tags?: string[];
|
|
34
|
+
relates_to?: string[];
|
|
35
|
+
supersedes?: string[];
|
|
36
|
+
outcomes?: Outcome[];
|
|
37
|
+
content?: string;
|
|
38
|
+
name?: string;
|
|
39
|
+
description?: string;
|
|
40
|
+
resolution?: string;
|
|
41
|
+
title?: string;
|
|
42
|
+
rationale?: string;
|
|
43
|
+
files?: string[];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Record an expertise record in the given domain.
|
|
47
|
+
* Named record types (pattern, decision, reference, guide) are upserted on
|
|
48
|
+
* duplicate key; convention and failure duplicates are skipped unless force=true.
|
|
49
|
+
*/
|
|
50
|
+
export declare function recordExpertise(domain: string, record: ExpertiseRecord, options?: RecordOptions): Promise<RecordResult>;
|
|
51
|
+
/**
|
|
52
|
+
* Search expertise records across domains using BM25 ranking.
|
|
53
|
+
* Returns domains with at least one matching record.
|
|
54
|
+
*/
|
|
55
|
+
export declare function searchExpertise(query: string, options?: SearchOptions): Promise<SearchResult[]>;
|
|
56
|
+
/**
|
|
57
|
+
* Query all records in a domain with optional filtering.
|
|
58
|
+
*/
|
|
59
|
+
export declare function queryDomain(domain: string, options?: QueryOptions): Promise<ExpertiseRecord[]>;
|
|
60
|
+
/**
|
|
61
|
+
* Edit an existing record by ID in the given domain.
|
|
62
|
+
* Only provided fields in updates are modified; all other fields are preserved.
|
|
63
|
+
*/
|
|
64
|
+
export declare function editRecord(domain: string, id: string, updates: RecordUpdates, options?: EditOptions): Promise<ExpertiseRecord>;
|
|
65
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAepF,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IAErB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAmCvB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,EAAE,CAAC,CA6CzB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,eAAe,EAAE,CAAC,CAwB5B;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAoG1B"}
|
package/dist/api.js
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { readConfig, getExpertisePath } from "./utils/config.js";
|
|
2
|
+
import { readExpertiseFile, writeExpertiseFile, appendRecord, findDuplicate, resolveRecordId, searchRecords, filterByType, filterByClassification, filterByFile, } from "./utils/expertise.js";
|
|
3
|
+
import { withFileLock } from "./utils/lock.js";
|
|
4
|
+
/**
|
|
5
|
+
* Record an expertise record in the given domain.
|
|
6
|
+
* Named record types (pattern, decision, reference, guide) are upserted on
|
|
7
|
+
* duplicate key; convention and failure duplicates are skipped unless force=true.
|
|
8
|
+
*/
|
|
9
|
+
export async function recordExpertise(domain, record, options = {}) {
|
|
10
|
+
const { force = false, cwd } = options;
|
|
11
|
+
const config = await readConfig(cwd);
|
|
12
|
+
if (!config.domains.includes(domain)) {
|
|
13
|
+
throw new Error(`Domain "${domain}" not found in config. Available domains: ${config.domains.join(", ") || "(none)"}`);
|
|
14
|
+
}
|
|
15
|
+
const filePath = getExpertisePath(domain, cwd);
|
|
16
|
+
return withFileLock(filePath, async () => {
|
|
17
|
+
const existing = await readExpertiseFile(filePath);
|
|
18
|
+
const dup = findDuplicate(existing, record);
|
|
19
|
+
if (dup && !force) {
|
|
20
|
+
const isNamed = record.type === "pattern" ||
|
|
21
|
+
record.type === "decision" ||
|
|
22
|
+
record.type === "reference" ||
|
|
23
|
+
record.type === "guide";
|
|
24
|
+
if (isNamed) {
|
|
25
|
+
existing[dup.index] = record;
|
|
26
|
+
await writeExpertiseFile(filePath, existing);
|
|
27
|
+
return { action: "updated", record };
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
return { action: "skipped", record: dup.record };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
await appendRecord(filePath, record);
|
|
35
|
+
return { action: "created", record };
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Search expertise records across domains using BM25 ranking.
|
|
41
|
+
* Returns domains with at least one matching record.
|
|
42
|
+
*/
|
|
43
|
+
export async function searchExpertise(query, options = {}) {
|
|
44
|
+
const { cwd } = options;
|
|
45
|
+
const config = await readConfig(cwd);
|
|
46
|
+
let domainsToSearch;
|
|
47
|
+
if (options.domain) {
|
|
48
|
+
if (!config.domains.includes(options.domain)) {
|
|
49
|
+
throw new Error(`Domain "${options.domain}" not found in config. Available domains: ${config.domains.join(", ")}`);
|
|
50
|
+
}
|
|
51
|
+
domainsToSearch = [options.domain];
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
domainsToSearch = config.domains;
|
|
55
|
+
}
|
|
56
|
+
const results = [];
|
|
57
|
+
for (const d of domainsToSearch) {
|
|
58
|
+
const filePath = getExpertisePath(d, cwd);
|
|
59
|
+
let records = await readExpertiseFile(filePath);
|
|
60
|
+
if (options.type) {
|
|
61
|
+
records = filterByType(records, options.type);
|
|
62
|
+
}
|
|
63
|
+
if (options.tag) {
|
|
64
|
+
const tagLower = options.tag.toLowerCase();
|
|
65
|
+
records = records.filter((r) => r.tags?.some((t) => t.toLowerCase() === tagLower));
|
|
66
|
+
}
|
|
67
|
+
if (options.classification) {
|
|
68
|
+
records = filterByClassification(records, options.classification);
|
|
69
|
+
}
|
|
70
|
+
if (options.file) {
|
|
71
|
+
records = filterByFile(records, options.file);
|
|
72
|
+
}
|
|
73
|
+
const matches = searchRecords(records, query);
|
|
74
|
+
if (matches.length > 0) {
|
|
75
|
+
results.push({ domain: d, records: matches });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return results;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Query all records in a domain with optional filtering.
|
|
82
|
+
*/
|
|
83
|
+
export async function queryDomain(domain, options = {}) {
|
|
84
|
+
const { cwd } = options;
|
|
85
|
+
const config = await readConfig(cwd);
|
|
86
|
+
if (!config.domains.includes(domain)) {
|
|
87
|
+
throw new Error(`Domain "${domain}" not found in config. Available domains: ${config.domains.join(", ") || "(none)"}`);
|
|
88
|
+
}
|
|
89
|
+
const filePath = getExpertisePath(domain, cwd);
|
|
90
|
+
let records = await readExpertiseFile(filePath);
|
|
91
|
+
if (options.type) {
|
|
92
|
+
records = filterByType(records, options.type);
|
|
93
|
+
}
|
|
94
|
+
if (options.classification) {
|
|
95
|
+
records = filterByClassification(records, options.classification);
|
|
96
|
+
}
|
|
97
|
+
if (options.file) {
|
|
98
|
+
records = filterByFile(records, options.file);
|
|
99
|
+
}
|
|
100
|
+
return records;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Edit an existing record by ID in the given domain.
|
|
104
|
+
* Only provided fields in updates are modified; all other fields are preserved.
|
|
105
|
+
*/
|
|
106
|
+
export async function editRecord(domain, id, updates, options = {}) {
|
|
107
|
+
const { cwd } = options;
|
|
108
|
+
const config = await readConfig(cwd);
|
|
109
|
+
if (!config.domains.includes(domain)) {
|
|
110
|
+
throw new Error(`Domain "${domain}" not found in config. Available domains: ${config.domains.join(", ") || "(none)"}`);
|
|
111
|
+
}
|
|
112
|
+
const filePath = getExpertisePath(domain, cwd);
|
|
113
|
+
return withFileLock(filePath, async () => {
|
|
114
|
+
const records = await readExpertiseFile(filePath);
|
|
115
|
+
const resolved = resolveRecordId(records, id);
|
|
116
|
+
if (!resolved.ok) {
|
|
117
|
+
throw new Error(resolved.error);
|
|
118
|
+
}
|
|
119
|
+
const targetIndex = resolved.index;
|
|
120
|
+
const record = { ...records[targetIndex] };
|
|
121
|
+
// Apply common updates
|
|
122
|
+
if (updates.classification !== undefined) {
|
|
123
|
+
record.classification = updates.classification;
|
|
124
|
+
}
|
|
125
|
+
if (updates.tags !== undefined) {
|
|
126
|
+
record.tags = updates.tags;
|
|
127
|
+
}
|
|
128
|
+
if (updates.relates_to !== undefined) {
|
|
129
|
+
record.relates_to = updates.relates_to;
|
|
130
|
+
}
|
|
131
|
+
if (updates.supersedes !== undefined) {
|
|
132
|
+
record.supersedes = updates.supersedes;
|
|
133
|
+
}
|
|
134
|
+
if (updates.outcomes !== undefined) {
|
|
135
|
+
record.outcomes = updates.outcomes;
|
|
136
|
+
}
|
|
137
|
+
// Apply type-specific updates
|
|
138
|
+
switch (record.type) {
|
|
139
|
+
case "convention":
|
|
140
|
+
if (updates.content !== undefined) {
|
|
141
|
+
record.content = updates.content;
|
|
142
|
+
}
|
|
143
|
+
break;
|
|
144
|
+
case "pattern":
|
|
145
|
+
if (updates.name !== undefined) {
|
|
146
|
+
record.name = updates.name;
|
|
147
|
+
}
|
|
148
|
+
if (updates.description !== undefined) {
|
|
149
|
+
record.description = updates.description;
|
|
150
|
+
}
|
|
151
|
+
if (updates.files !== undefined) {
|
|
152
|
+
record.files = updates.files;
|
|
153
|
+
}
|
|
154
|
+
break;
|
|
155
|
+
case "failure":
|
|
156
|
+
if (updates.description !== undefined) {
|
|
157
|
+
record.description = updates.description;
|
|
158
|
+
}
|
|
159
|
+
if (updates.resolution !== undefined) {
|
|
160
|
+
record.resolution = updates.resolution;
|
|
161
|
+
}
|
|
162
|
+
break;
|
|
163
|
+
case "decision":
|
|
164
|
+
if (updates.title !== undefined) {
|
|
165
|
+
record.title = updates.title;
|
|
166
|
+
}
|
|
167
|
+
if (updates.rationale !== undefined) {
|
|
168
|
+
record.rationale = updates.rationale;
|
|
169
|
+
}
|
|
170
|
+
break;
|
|
171
|
+
case "reference":
|
|
172
|
+
if (updates.name !== undefined) {
|
|
173
|
+
record.name = updates.name;
|
|
174
|
+
}
|
|
175
|
+
if (updates.description !== undefined) {
|
|
176
|
+
record.description = updates.description;
|
|
177
|
+
}
|
|
178
|
+
if (updates.files !== undefined) {
|
|
179
|
+
record.files = updates.files;
|
|
180
|
+
}
|
|
181
|
+
break;
|
|
182
|
+
case "guide":
|
|
183
|
+
if (updates.name !== undefined) {
|
|
184
|
+
record.name = updates.name;
|
|
185
|
+
}
|
|
186
|
+
if (updates.description !== undefined) {
|
|
187
|
+
record.description = updates.description;
|
|
188
|
+
}
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
records[targetIndex] = record;
|
|
192
|
+
await writeExpertiseFile(filePath, records);
|
|
193
|
+
return record;
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=api.js.map
|
package/dist/api.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,aAAa,EACb,YAAY,EACZ,sBAAsB,EACtB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAqD/C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,MAAuB,EACvB,UAAyB,EAAE;IAE3B,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAEvC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,WAAW,MAAM,6CAA6C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CACtG,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE/C,OAAO,YAAY,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE5C,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,OAAO,GACX,MAAM,CAAC,IAAI,KAAK,SAAS;gBACzB,MAAM,CAAC,IAAI,KAAK,UAAU;gBAC1B,MAAM,CAAC,IAAI,KAAK,WAAW;gBAC3B,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC;YAE1B,IAAI,OAAO,EAAE,CAAC;gBACZ,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;gBAC7B,MAAM,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAC7C,OAAO,EAAE,MAAM,EAAE,SAAkB,EAAE,MAAM,EAAE,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,MAAM,EAAE,SAAkB,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;YAC5D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACrC,OAAO,EAAE,MAAM,EAAE,SAAkB,EAAE,MAAM,EAAE,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAa,EACb,UAAyB,EAAE;IAE3B,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IACxB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IAErC,IAAI,eAAyB,CAAC;IAC9B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CACb,WAAW,OAAO,CAAC,MAAM,6CAA6C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAClG,CAAC;QACJ,CAAC;QACD,eAAe,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC;IACnC,CAAC;IAED,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1C,IAAI,OAAO,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC3C,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7B,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAClD,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,OAAO,GAAG,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,UAAwB,EAAE;IAE1B,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IACxB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IAErC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,WAAW,MAAM,6CAA6C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CACtG,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/C,IAAI,OAAO,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAEhD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,OAAO,GAAG,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAc,EACd,EAAU,EACV,OAAsB,EACtB,UAAuB,EAAE;IAEzB,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IACxB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IAErC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,WAAW,MAAM,6CAA6C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CACtG,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE/C,OAAO,YAAY,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAE9C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC;QACnC,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAE3C,uBAAuB;QACvB,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QACjD,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACrC,CAAC;QAED,8BAA8B;QAC9B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,YAAY;gBACf,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAClC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;gBACnC,CAAC;gBACD,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC/B,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC7B,CAAC;gBACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;oBACtC,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;gBAC3C,CAAC;gBACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAChC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBAC/B,CAAC;gBACD,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;oBACtC,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;gBAC3C,CAAC;gBACD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBACrC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;gBACzC,CAAC;gBACD,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAChC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBAC/B,CAAC;gBACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBACpC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;gBACvC,CAAC;gBACD,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC/B,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC7B,CAAC;gBACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;oBACtC,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;gBAC3C,CAAC;gBACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAChC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBAC/B,CAAC;gBACD,MAAM;YACR,KAAK,OAAO;gBACV,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC/B,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC7B,CAAC;gBACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;oBACtC,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;gBAC3C,CAAC;gBACD,MAAM;QACV,CAAC;QAED,OAAO,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;QAC9B,MAAM,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE5C,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAe5C,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAe5C,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyN1D"}
|
package/dist/commands/edit.js
CHANGED
|
@@ -23,7 +23,7 @@ export function registerEditCommand(program) {
|
|
|
23
23
|
.option("--files <files>", "update related files (comma-separated)")
|
|
24
24
|
.option("--relates-to <ids>", "update linked record IDs (comma-separated)")
|
|
25
25
|
.option("--supersedes <ids>", "update superseded record IDs (comma-separated)")
|
|
26
|
-
.addOption(new Option("--outcome-status <status>", "set outcome status").choices(["success", "failure"]))
|
|
26
|
+
.addOption(new Option("--outcome-status <status>", "set outcome status").choices(["success", "failure", "partial"]))
|
|
27
27
|
.option("--outcome-duration <ms>", "set outcome duration in milliseconds")
|
|
28
28
|
.option("--outcome-test-results <text>", "set outcome test results summary")
|
|
29
29
|
.option("--outcome-agent <agent>", "set outcome agent name")
|
|
@@ -75,29 +75,17 @@ export function registerEditCommand(program) {
|
|
|
75
75
|
.filter(Boolean);
|
|
76
76
|
}
|
|
77
77
|
if (options.outcomeStatus) {
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
if (options.outcomeTestResults && record.outcome) {
|
|
91
|
-
record.outcome = {
|
|
92
|
-
...record.outcome,
|
|
93
|
-
test_results: options.outcomeTestResults,
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
if (options.outcomeAgent && record.outcome) {
|
|
97
|
-
record.outcome = {
|
|
98
|
-
...record.outcome,
|
|
99
|
-
agent: options.outcomeAgent,
|
|
100
|
-
};
|
|
78
|
+
const o = { status: options.outcomeStatus };
|
|
79
|
+
if (options.outcomeDuration !== undefined) {
|
|
80
|
+
o.duration = parseFloat(options.outcomeDuration);
|
|
81
|
+
}
|
|
82
|
+
if (options.outcomeTestResults) {
|
|
83
|
+
o.test_results = options.outcomeTestResults;
|
|
84
|
+
}
|
|
85
|
+
if (options.outcomeAgent) {
|
|
86
|
+
o.agent = options.outcomeAgent;
|
|
87
|
+
}
|
|
88
|
+
record.outcomes = [...(record.outcomes ?? []), o];
|
|
101
89
|
}
|
|
102
90
|
switch (record.type) {
|
|
103
91
|
case "convention":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;AACjC,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,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEtE,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;SACxC,QAAQ,CAAC,MAAM,EAAE,4CAA4C,CAAC;SAC9D,WAAW,CAAC,mCAAmC,CAAC;SAChD,SAAS,CACR,IAAI,MAAM,CACR,mCAAmC,EACnC,uBAAuB,CACxB,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CACzD;SACA,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,eAAe,EAAE,uBAAuB,CAAC;SAChD,MAAM,CAAC,6BAA6B,EAAE,oBAAoB,CAAC;SAC3D,MAAM,CAAC,2BAA2B,EAAE,6BAA6B,CAAC;SAClE,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;SACpD,MAAM,CAAC,yBAAyB,EAAE,6BAA6B,CAAC;SAChE,MAAM,CAAC,iBAAiB,EAAE,wCAAwC,CAAC;SACnE,MAAM,CAAC,oBAAoB,EAAE,4CAA4C,CAAC;SAC1E,MAAM,CAAC,oBAAoB,EAAE,gDAAgD,CAAC;SAC9E,SAAS,CACR,IAAI,MAAM,CAAC,2BAA2B,EAAE,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAO5C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0H3D"}
|
package/dist/commands/query.js
CHANGED
|
@@ -3,6 +3,7 @@ import { readConfig, getExpertisePath } from "../utils/config.js";
|
|
|
3
3
|
import { readExpertiseFile, getFileModTime, filterByType, filterByClassification, filterByFile } from "../utils/expertise.js";
|
|
4
4
|
import { formatDomainExpertise } from "../utils/format.js";
|
|
5
5
|
import { outputJson, outputJsonError } from "../utils/json-output.js";
|
|
6
|
+
import { sortByConfirmationScore } from "../utils/scoring.js";
|
|
6
7
|
export function registerQueryCommand(program) {
|
|
7
8
|
program
|
|
8
9
|
.command("query")
|
|
@@ -15,6 +16,8 @@ export function registerQueryCommand(program) {
|
|
|
15
16
|
"observational",
|
|
16
17
|
]))
|
|
17
18
|
.option("--file <file>", "filter by associated file path (substring match)")
|
|
19
|
+
.addOption(new Option("--outcome-status <status>", "filter by outcome status").choices(["success", "failure"]))
|
|
20
|
+
.option("--sort-by-score", "sort results by confirmation-frequency score (highest first)")
|
|
18
21
|
.option("--all", "show all domains")
|
|
19
22
|
.action(async (domain, options) => {
|
|
20
23
|
const jsonMode = program.opts().json === true;
|
|
@@ -70,6 +73,12 @@ export function registerQueryCommand(program) {
|
|
|
70
73
|
if (options.file) {
|
|
71
74
|
records = filterByFile(records, options.file);
|
|
72
75
|
}
|
|
76
|
+
if (options.outcomeStatus) {
|
|
77
|
+
records = records.filter((r) => r.outcomes?.some((o) => o.status === options.outcomeStatus));
|
|
78
|
+
}
|
|
79
|
+
if (options.sortByScore) {
|
|
80
|
+
records = sortByConfirmationScore(records);
|
|
81
|
+
}
|
|
73
82
|
result.push({ domain: d, records });
|
|
74
83
|
}
|
|
75
84
|
outputJson({ success: true, command: "query", domains: result });
|
|
@@ -89,6 +98,12 @@ export function registerQueryCommand(program) {
|
|
|
89
98
|
if (options.file) {
|
|
90
99
|
records = filterByFile(records, options.file);
|
|
91
100
|
}
|
|
101
|
+
if (options.outcomeStatus) {
|
|
102
|
+
records = records.filter((r) => r.outcomes?.some((o) => o.status === options.outcomeStatus));
|
|
103
|
+
}
|
|
104
|
+
if (options.sortByScore) {
|
|
105
|
+
records = sortByConfirmationScore(records);
|
|
106
|
+
}
|
|
92
107
|
sections.push(formatDomainExpertise(d, records, lastUpdated));
|
|
93
108
|
}
|
|
94
109
|
console.log(sections.join("\n\n"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC9H,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../src/commands/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAuB5C;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,OAAO,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA0HlF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../src/commands/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAuB5C;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,OAAO,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA0HlF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkoB5D"}
|
package/dist/commands/record.js
CHANGED
|
@@ -143,7 +143,7 @@ export function registerRecordCommand(program) {
|
|
|
143
143
|
.option("--evidence-bead <bead>", "evidence: bead ID")
|
|
144
144
|
.option("--relates-to <ids>", "comma-separated record IDs this relates to")
|
|
145
145
|
.option("--supersedes <ids>", "comma-separated record IDs this supersedes")
|
|
146
|
-
.addOption(new Option("--outcome-status <status>", "outcome status").choices(["success", "failure"]))
|
|
146
|
+
.addOption(new Option("--outcome-status <status>", "outcome status").choices(["success", "failure", "partial"]))
|
|
147
147
|
.option("--outcome-duration <ms>", "outcome duration in milliseconds")
|
|
148
148
|
.option("--outcome-test-results <text>", "outcome test results summary")
|
|
149
149
|
.option("--outcome-agent <agent>", "outcome agent name")
|
|
@@ -386,18 +386,19 @@ Batch recording examples:
|
|
|
386
386
|
.map((id) => id.trim())
|
|
387
387
|
.filter(Boolean)
|
|
388
388
|
: undefined;
|
|
389
|
-
let
|
|
389
|
+
let outcomes;
|
|
390
390
|
if (options.outcomeStatus) {
|
|
391
|
-
|
|
391
|
+
const o = { status: options.outcomeStatus };
|
|
392
392
|
if (options.outcomeDuration !== undefined) {
|
|
393
|
-
|
|
393
|
+
o.duration = parseFloat(options.outcomeDuration);
|
|
394
394
|
}
|
|
395
395
|
if (options.outcomeTestResults) {
|
|
396
|
-
|
|
396
|
+
o.test_results = options.outcomeTestResults;
|
|
397
397
|
}
|
|
398
398
|
if (options.outcomeAgent) {
|
|
399
|
-
|
|
399
|
+
o.agent = options.outcomeAgent;
|
|
400
400
|
}
|
|
401
|
+
outcomes = [o];
|
|
401
402
|
}
|
|
402
403
|
let record;
|
|
403
404
|
switch (recordType) {
|
|
@@ -422,7 +423,7 @@ Batch recording examples:
|
|
|
422
423
|
...(tags && tags.length > 0 && { tags }),
|
|
423
424
|
...(relatesTo && relatesTo.length > 0 && { relates_to: relatesTo }),
|
|
424
425
|
...(supersedes && supersedes.length > 0 && { supersedes }),
|
|
425
|
-
...(
|
|
426
|
+
...(outcomes && { outcomes }),
|
|
426
427
|
};
|
|
427
428
|
break;
|
|
428
429
|
}
|
|
@@ -452,7 +453,7 @@ Batch recording examples:
|
|
|
452
453
|
...(tags && tags.length > 0 && { tags }),
|
|
453
454
|
...(relatesTo && relatesTo.length > 0 && { relates_to: relatesTo }),
|
|
454
455
|
...(supersedes && supersedes.length > 0 && { supersedes }),
|
|
455
|
-
...(
|
|
456
|
+
...(outcomes && { outcomes }),
|
|
456
457
|
};
|
|
457
458
|
break;
|
|
458
459
|
}
|
|
@@ -479,7 +480,7 @@ Batch recording examples:
|
|
|
479
480
|
...(tags && tags.length > 0 && { tags }),
|
|
480
481
|
...(relatesTo && relatesTo.length > 0 && { relates_to: relatesTo }),
|
|
481
482
|
...(supersedes && supersedes.length > 0 && { supersedes }),
|
|
482
|
-
...(
|
|
483
|
+
...(outcomes && { outcomes }),
|
|
483
484
|
};
|
|
484
485
|
break;
|
|
485
486
|
}
|
|
@@ -506,7 +507,7 @@ Batch recording examples:
|
|
|
506
507
|
...(tags && tags.length > 0 && { tags }),
|
|
507
508
|
...(relatesTo && relatesTo.length > 0 && { relates_to: relatesTo }),
|
|
508
509
|
...(supersedes && supersedes.length > 0 && { supersedes }),
|
|
509
|
-
...(
|
|
510
|
+
...(outcomes && { outcomes }),
|
|
510
511
|
};
|
|
511
512
|
break;
|
|
512
513
|
}
|
|
@@ -536,7 +537,7 @@ Batch recording examples:
|
|
|
536
537
|
...(tags && tags.length > 0 && { tags }),
|
|
537
538
|
...(relatesTo && relatesTo.length > 0 && { relates_to: relatesTo }),
|
|
538
539
|
...(supersedes && supersedes.length > 0 && { supersedes }),
|
|
539
|
-
...(
|
|
540
|
+
...(outcomes && { outcomes }),
|
|
540
541
|
};
|
|
541
542
|
break;
|
|
542
543
|
}
|
|
@@ -563,7 +564,7 @@ Batch recording examples:
|
|
|
563
564
|
...(tags && tags.length > 0 && { tags }),
|
|
564
565
|
...(relatesTo && relatesTo.length > 0 && { relates_to: relatesTo }),
|
|
565
566
|
...(supersedes && supersedes.length > 0 && { supersedes }),
|
|
566
|
-
...(
|
|
567
|
+
...(outcomes && { outcomes }),
|
|
567
568
|
};
|
|
568
569
|
break;
|
|
569
570
|
}
|