pm-brief 2026.7.23 → 2026.7.26

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/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026.7.26 - 2026-07-26
4
+
5
+ ### Added
6
+
7
+ - Add pm brief duplicates post-merge near-duplicate sweep ([pm-brief-58en](https://github.com/unbraind/pm-brief/blob/main/.agents/pm/features/pm-brief-58en.toon))
8
+
9
+ ### Fixed
10
+
11
+ - Documented install command fails: pm install github.com/unbraind/pm-brief cannot resolve an entry file ([pm-brief-xd8z](https://github.com/unbraind/pm-brief/blob/main/.agents/pm/issues/pm-brief-xd8z.toon))
12
+
13
+ ## 2026.7.25 - 2026-07-25
14
+
15
+ ### Added
16
+
17
+ - pm brief diverge: pre-merge multi-agent item collision preview ([pm-brief-vj2y](https://github.com/unbraind/pm-brief/blob/main/.agents/pm/features/pm-brief-vj2y.toon))
18
+
19
+ ### Fixed
20
+
21
+ - CHANGELOG mislabels shipped 2026.7.23 work as Unreleased, leaving changelog:check red ([pm-brief-edam](https://github.com/unbraind/pm-brief/blob/main/.agents/pm/issues/pm-brief-edam.toon))
22
+
23
+ ### Other
24
+
25
+ - Adopt --respect-item-release so release attribution matches the rest of the fleet ([pm-brief-ce55](https://github.com/unbraind/pm-brief/blob/main/.agents/pm/chores/pm-brief-ce55.toon))
26
+
3
27
  ## 2026.7.23 - 2026-07-23
4
28
 
5
29
  ### Added
@@ -26,7 +50,7 @@
26
50
 
27
51
  - brief: blocked_by edges doubled in blockers/risks (dependencies + blocked_by both parsed) ([pm-brief-o4s9](https://github.com/unbraind/pm-brief/blob/main/.agents/pm/issues/pm-brief-o4s9.toon))
28
52
 
29
- ## 2026.7.12 - 2026-07-12
53
+ ## 2026.7.11-2 - 2026-07-11
30
54
 
31
55
  ### Other
32
56
 
package/README.md CHANGED
@@ -10,9 +10,14 @@ an agent needs a low-token handoff instead of a full project dump.
10
10
  ## Install
11
11
 
12
12
  ```bash
13
- pm install github.com/unbraind/pm-brief --project
13
+ pm install npm:pm-brief --project
14
14
  ```
15
15
 
16
+ > The `npm:` prefix is required. A bare `pm install pm-brief` resolves only a local
17
+ > directory or a bundled alias, never the registry, and a
18
+ > `github.com/unbraind/pm-brief` source cannot work either — pm copies a GitHub
19
+ > source as-is without building it, and this repository does not commit `dist/`.
20
+
16
21
  ## Usage
17
22
 
18
23
  ```bash
@@ -40,6 +45,8 @@ pm brief since 2026-07-20T00:00:00Z --until 2026-07-22 --author alice
40
45
  - `pm brief next` returns the ranked next items only.
41
46
  - `pm brief stale` returns stale open or in-progress items.
42
47
  - `pm brief since <checkpoint>` renders a delta brief of what changed since a checkpoint.
48
+ - `pm brief diverge [base]` previews pm item collisions between two branches **before** merging.
49
+ - `pm brief duplicates` sweeps the merged tracker for near-duplicate items the create-time advisory cannot see across branches.
43
50
 
44
51
  ### Ranking and Budget Flags
45
52
 
@@ -117,6 +124,154 @@ notes, so the resuming agent can update its plan without re-reading the whole
117
124
  workspace. The brief ends with a `## Refresh` block showing the exact command
118
125
  that reproduces it.
119
126
 
127
+ ### Pre-merge collision preview (`pm brief diverge`)
128
+
129
+ `pm brief since` is the *post*-merge half of the multi-agent workflow. `pm brief
130
+ diverge [base]` is the *pre*-merge half: it answers "which pm items did both
131
+ branches touch, and will the field-aware merge driver resolve them cleanly?"
132
+ before you run `git merge` — rather than after, when `pm merge reconcile` is
133
+ repairing the damage.
134
+
135
+ ```bash
136
+ pm brief diverge # HEAD vs origin/HEAD (else main, else master)
137
+ pm brief diverge main # explicit base
138
+ pm brief diverge --base main --head feat/other # neither side has to be checked out
139
+ pm brief diverge --base main --format json # machine-readable for agents
140
+ pm brief diverge --base main --include-clean # also list one-sided items individually
141
+ ```
142
+
143
+ It reads each item's append-only history ledger at the merge base, the base tip
144
+ and the head tip, diffs the JSON-Patch paths each side added, and classifies
145
+ every item:
146
+
147
+ | Classification | Severity | Meaning |
148
+ |---|---|---|
149
+ | `duplicate-id` | high | Both branches minted the **same item id** after the merge base. The driver cannot fix this — one side must be re-keyed. |
150
+ | `delete-vs-edit` | high | One side deleted the item while the other edited it. |
151
+ | `field-collision` | medium | Both sides wrote the **same field**. The driver resolves it via `--prefer`, so review the losing value. |
152
+ | `union-safe` | low | Both sides touched the item but **disjoint fields** — the driver merges both and unions the history. |
153
+ | `head-only` / `base-only` | — | Only one side touched it; nothing to resolve. |
154
+
155
+ `/metadata/updated_at` is treated as benign: it changes on every write and never
156
+ produces a collision verdict on its own.
157
+
158
+ The verdict is `clean` (no item touched by both sides), `union-safe` (all
159
+ both-sided items have disjoint fields), or `review-required` (any high/medium
160
+ finding).
161
+
162
+ **Merge fence check.** The report also verifies the field-aware driver is
163
+ actually installed — the `.gitattributes` entries *and* the `merge.*.driver` git
164
+ config. Without both, even `union-safe` items hard-conflict, so a missing fence
165
+ is reported as a warning with `pm merge install` as the first recommended step.
166
+
167
+ **Unrelated histories.** When the refs share no merge base, `unrelatedHistories`
168
+ is `true` in the JSON (an explicit boolean, because `JSON.stringify` drops the
169
+ `undefined` `ancestorSha`), every changed item is reported one-sided, and the
170
+ recommended merge command becomes `git merge --allow-unrelated-histories <base>`
171
+ — the bare form git refuses outright.
172
+
173
+ Each report ends with an ordered `Recommended next steps` block containing only
174
+ the commands that apply, including `pm history <id> --verify` per high-severity
175
+ item and a `pm brief since <merge-base-date>` for post-merge re-orientation.
176
+
177
+ ### Post-merge duplicate sweep (`pm brief duplicates`)
178
+
179
+ `pm brief diverge` closes the *pre*-merge gap. There is still one hole it cannot
180
+ reach: two agents who each create a **new** item on their own branch both land
181
+ cleanly on `main` — the field-aware merge driver is deliberately conflict-free
182
+ for that — and neither create-time duplicate advisory can see the other, because
183
+ the other item does not exist in that branch's tracker yet. `main` now holds two
184
+ items for one problem and nothing ever flags it.
185
+
186
+ `pm brief duplicates` is the post-merge sweep that closes that loop. It enumerates
187
+ the merged tracker, asks the shared SDK `findSimilarItems` primitive (the same
188
+ one `pm create` advisory mode uses, so the two agree exactly) for near-duplicate
189
+ matches per candidate, and collapses bidirectional matches into unordered pairs
190
+ ranked by score.
191
+
192
+ ```bash
193
+ pm brief duplicates # default threshold 0.6, all statuses
194
+ pm brief duplicates --threshold 0.5 # looser match cutoff (0..1 inclusive)
195
+ pm brief duplicates --since 2026-07-25 # post-merge mode: only items created at/after this merge
196
+ pm brief duplicates --status open,closed --limit 5 # filter candidates, cap pairs reported
197
+ pm brief duplicates --format json # bare object, no envelope
198
+ ```
199
+
200
+ For each pair it emits both ids, titles, statuses, types, the score rounded to
201
+ three decimals, the SDK match reason, and an **advisory** remediation command
202
+ (never executed by this command):
203
+ - when exactly one of the pair is closed, it suggests linking the open item to
204
+ the closed one: `pm update <open-id> --dep id=<closed-id>,kind=related`;
205
+ - when both are open (or both closed), it keeps the older item by `created_at` as
206
+ canonical and relates the newer to it.
207
+
208
+ A clean tracker is a success, not an error — the command exits 0 with an explicit
209
+ `No likely duplicate items found` line.
210
+
211
+ **Choosing a threshold.** This matters more than it looks: the default `0.6` is
212
+ deliberately conservative, and real cross-agent paraphrases often score *below*
213
+ it. The worked example below scores `0.5` — two agents describing the same flaky
214
+ test — so a default-threshold sweep would not report it. `title_token_jaccard`
215
+ compares token sets, so paraphrases that agree on the problem but not the wording
216
+ score lower than an intuition calibrated on "these are obviously the same bug"
217
+ would suggest.
218
+
219
+ Practical guidance:
220
+
221
+ - `--threshold 0.4` for a genuine post-merge sweep, where a handful of false
222
+ pairs to eyeball costs far less than a duplicate that survives on `main`.
223
+ - `0.6` (default) when you want only high-confidence pairs, e.g. in automation
224
+ that acts without a human reading the output.
225
+ - Exact-title collisions surface as `reason: exact_title` and score `1.0`, so any
226
+ threshold catches them; the tuning only affects paraphrases.
227
+
228
+ For comparison, create-time advisory mode uses `governance.duplicate_detection_threshold`,
229
+ which defaults to `0.8` — this sweep is already the more sensitive of the two.
230
+
231
+ **Cost, and why `--since` is the mode you usually want.** Scoring runs through the
232
+ shared SDK primitive per candidate, so an unscoped sweep is inherently
233
+ `candidates x tracker-scan`. Measured on a real 1,934-item tracker (pm-cli's own):
234
+
235
+ | invocation | candidates | elapsed | peak RSS |
236
+ | --- | --- | --- | --- |
237
+ | `pm brief duplicates` (full sweep) | 1,934 | 36.3s | 268 MB |
238
+ | `pm brief duplicates --since <merge-date>` | 42 | 2.7s | 271 MB |
239
+
240
+ Scans run with bounded concurrency (8 in flight). That was measured rather than
241
+ assumed, and the honest result is a **modest** wall-clock gain — 39.1s to 36.3s,
242
+ about 7% — because `findSimilarItems` is CPU-bound, and concurrency cannot
243
+ parallelize CPU work on a single-threaded event loop. What it does buy is peak
244
+ memory: **526 MB down to 268 MB**, because results are collapsed as they arrive
245
+ instead of N full result sets accumulating.
246
+
247
+ The full sweep is a whole-tracker audit — fine to run occasionally, but it is not
248
+ what this command is for. **`--since <merge-timestamp>` is the post-merge mode**
249
+ and the one that keeps the cost proportional to what the merge actually
250
+ introduced. Trackers of a few hundred items complete quickly either way.
251
+
252
+ The cost is not avoidable from outside the SDK today: `findSimilarItems` is a
253
+ per-candidate query with no batch entry point, and the exported
254
+ `scoreItemSimilarity` re-tokenizes both titles on every call, so precomputing
255
+ tokens and pre-filtering on `jaccardSimilarity` would silently drop `issue_code`
256
+ matches (two titles sharing an issue code score ~0.99 while their token overlap
257
+ can sit well below any useful threshold). Reimplementing that signal locally would
258
+ break the exact agreement with create-time advisory that this command depends on,
259
+ so it is deliberately not done. Filed upstream as
260
+ [pm-cli#709](https://github.com/unbraind/pm-cli/issues/709).
261
+
262
+ Example output on a tracker where two agents each filed the same flaky test from
263
+ different branches:
264
+
265
+ ```console
266
+ $ pm brief duplicates --threshold 0.3
267
+ pm brief duplicates — 1 likely duplicate pair(s) (threshold 0.3, scanned 3)
268
+
269
+ pm-p800|pm-plbh score 0.5 title_token_jaccard
270
+ pm-p800: flaky auth test fails intermittently (Task, open)
271
+ pm-plbh: Fix flaky auth test (Task, open)
272
+ → pm update pm-p800 --dep id=pm-plbh,kind=related
273
+ ```
274
+
120
275
  ## TypeScript API
121
276
 
122
277
  ```ts
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import type { SimilarItemMatch } from "@unbrained/pm-cli/sdk";
2
+ export type { SimilarItemMatch } from "@unbrained/pm-cli/sdk";
1
3
  export declare const EXIT_CODE: {
2
4
  readonly GENERIC_FAILURE: 1;
3
5
  readonly USAGE: 2;
@@ -319,6 +321,332 @@ export declare function normalizeCheckpoint(value: string): string;
319
321
  export declare function renderMarkdownDelta(summary: DeltaSummary): string;
320
322
  export declare function renderTextDelta(summary: DeltaSummary): string;
321
323
  export declare function renderSlackDelta(summary: DeltaSummary): string;
324
+ /** Fields that change on every write and must never, on their own, cause a collision. */
325
+ export declare const BENIGN_FIELDS: Set<string>;
326
+ export interface DivergeEvent {
327
+ ts: string;
328
+ author?: string;
329
+ op: string;
330
+ patch?: Array<{
331
+ op: "add" | "replace" | "remove" | string;
332
+ path: string;
333
+ value?: unknown;
334
+ }>;
335
+ before_hash?: string;
336
+ after_hash?: string;
337
+ }
338
+ export interface DivergeItemSide {
339
+ events: DivergeEvent[];
340
+ itemPresent: boolean;
341
+ malformedLines?: number;
342
+ }
343
+ export type DivergeKind = "head-only" | "base-only" | "unchanged" | "duplicate-id" | "delete-vs-edit" | "field-collision" | "union-safe";
344
+ export interface DivergeItem {
345
+ id: string;
346
+ kind: DivergeKind;
347
+ severity: "low" | "medium" | "high";
348
+ collidingFields: string[];
349
+ base: {
350
+ eventCount: number;
351
+ authors: string[];
352
+ firstTs: string | undefined;
353
+ lastTs: string | undefined;
354
+ fields: string[];
355
+ itemPresent: boolean;
356
+ malformedLines: number;
357
+ };
358
+ head: {
359
+ eventCount: number;
360
+ authors: string[];
361
+ firstTs: string | undefined;
362
+ lastTs: string | undefined;
363
+ fields: string[];
364
+ itemPresent: boolean;
365
+ malformedLines: number;
366
+ };
367
+ }
368
+ export interface FenceStatus {
369
+ attributesInstalled: boolean;
370
+ driversConfigured: boolean;
371
+ ok: boolean;
372
+ missing: string[];
373
+ }
374
+ export interface DivergenceSummary {
375
+ base: string;
376
+ head: string;
377
+ baseSha: string;
378
+ headSha: string;
379
+ ancestorSha: string | undefined;
380
+ /**
381
+ * True when base and head share no common ancestor. Always present so a JSON
382
+ * consumer never has to infer it from an omitted `ancestorSha` (JSON.stringify
383
+ * drops `undefined`). A `clean` verdict here means only "no item was touched by
384
+ * both sides" — an unrelated-histories merge still rewrites the whole tree and
385
+ * needs `--allow-unrelated-histories`, so the flag must be machine-readable.
386
+ */
387
+ unrelatedHistories: boolean;
388
+ workspace: string;
389
+ pmVersion: string;
390
+ generatedAt: string;
391
+ verdict: "clean" | "union-safe" | "review-required";
392
+ totals: {
393
+ itemsChanged: number;
394
+ headOnly: number;
395
+ baseOnly: number;
396
+ unionSafe: number;
397
+ fieldCollision: number;
398
+ duplicateId: number;
399
+ deleteVsEdit: number;
400
+ };
401
+ items: DivergeItem[];
402
+ truncated?: boolean;
403
+ omittedItems?: number;
404
+ budget?: {
405
+ requestedTokens: number;
406
+ estimatedTokens: number;
407
+ };
408
+ fence: FenceStatus;
409
+ recommendedCommands: string[];
410
+ }
411
+ /** `git rev-parse --show-toplevel`; throws CommandError if not a git repo. */
412
+ export declare function resolveRepoRoot(cwd: string): string;
413
+ /** `git rev-parse --verify <ref>^{commit}`; throws CommandError naming the unknown ref. */
414
+ export declare function resolveRef(repoRoot: string, ref: string): string;
415
+ /** Try origin/HEAD, main, master — return the first ref that resolves. Throw if none. */
416
+ export declare function detectDefaultBase(repoRoot: string): string;
417
+ /**
418
+ * `git merge-base a b`; undefined when the refs share no ancestor (unrelated
419
+ * histories). Exit status 1 is that legitimate "no merge base" answer; any other
420
+ * non-zero status is a real failure and must not be reported as unrelated
421
+ * histories.
422
+ */
423
+ export declare function mergeBase(repoRoot: string, a: string, b: string): string | undefined;
424
+ /** `git diff --name-only --diff-filter=ACMRD <from> <to> -- <pathspec>`, or `git ls-tree` when fromSha is undefined. */
425
+ export declare function listChangedPaths(repoRoot: string, fromSha: string | undefined, toSha: string, pathspec: string): string[];
426
+ /**
427
+ * `git show <sha>:<path>`; undefined when the path does not exist at that
428
+ * revision — the normal signal for "this item did not exist yet on that side".
429
+ *
430
+ * git reports a missing path with status 128 and a recognizable stderr, which is
431
+ * also the status it uses for genuine errors (bad object, unreadable repo). The
432
+ * stderr shape is therefore matched explicitly so a corrupt object cannot be
433
+ * silently read as an absent item.
434
+ */
435
+ export declare function readBlob(repoRoot: string, sha: string, path: string): string | undefined;
436
+ /** Derive the pm workspace path relative to the repo root, normalized to POSIX separators. */
437
+ export declare function pmRootRelFromCtx(pmRoot: string, repoRoot: string): string;
438
+ /**
439
+ * Single-pass scan of a JSON-Lines history ledger.
440
+ *
441
+ * Returns the usable events *and* the count of unusable non-blank lines from one
442
+ * `JSON.parse` per line. Doing this in one pass is both a correctness and a cost
443
+ * fix: two independent scans previously disagreed about what "malformed" means —
444
+ * a line that parsed as an object but carried no `ts` was dropped from the events
445
+ * yet not counted as malformed, so the report under-stated exactly the data loss a
446
+ * pre-merge check exists to surface. Ledgers can approach the 64 MiB read buffer,
447
+ * so parsing each line twice was also the dominant cost of the command.
448
+ *
449
+ * "Unusable" therefore means any non-blank line that is not parseable JSON, is not
450
+ * an object, or lacks a usable `ts` — the same predicate that decides whether the
451
+ * line contributes an event.
452
+ */
453
+ export declare function scanHistoryJsonl(text: string | undefined): {
454
+ events: DivergeEvent[];
455
+ malformedLines: number;
456
+ };
457
+ /** Parse a JSON-Lines history ledger text into DivergeEvent[]; thin wrapper over {@link scanHistoryJsonl}. */
458
+ export declare function parseHistoryJsonl(text: string | undefined): DivergeEvent[];
459
+ /** Count unusable (non-blank, non-event) lines in a history ledger text; thin wrapper over {@link scanHistoryJsonl}. */
460
+ export declare function countMalformedLines(text: string | undefined): number;
461
+ /** Identity key for an event: after_hash when available, else ts|author|op. */
462
+ export declare function eventKey(e: DivergeEvent): string;
463
+ /** Events on a side whose key is not in the ancestor set. */
464
+ export declare function newEvents(sideEvents: DivergeEvent[], ancestorKeys: Set<string>): DivergeEvent[];
465
+ /** Extract every patch[].path, normalizing trailing numeric segments so array appends merge. */
466
+ export declare function changedFieldPaths(events: DivergeEvent[]): Set<string>;
467
+ /** Normalize trailing numeric array segments: /metadata/tags/3 → /metadata/tags. */
468
+ export declare function normalizeFieldPath(path: string): string;
469
+ export declare function classifyItemDivergence(input: {
470
+ id: string;
471
+ ancestor: DivergeItemSide;
472
+ base: DivergeItemSide;
473
+ head: DivergeItemSide;
474
+ }): DivergeItem;
475
+ /**
476
+ * Ask git which merge driver it would actually apply to representative pm paths.
477
+ *
478
+ * `git check-attr` is the authoritative resolver: it honours `.gitattributes` in
479
+ * every parent directory of the target, the untracked `.git/info/attributes`, and
480
+ * the global/system attributes files. Parsing only the repo-root `.gitattributes`
481
+ * misses all of those, so a correctly fenced workspace could be reported as
482
+ * unfenced — a false warning that tells the agent to run `pm merge install` it does
483
+ * not need, and, worse, leaves the reverse case (reporting a fence that git will not
484
+ * apply) equally possible.
485
+ *
486
+ * Returns a map of probe path to resolved `merge` attribute value. Values git
487
+ * reports as `unspecified`, `unset` or `set` carry no driver name and are dropped.
488
+ */
489
+ export declare function checkAttrMerge(repoRoot: string, paths: string[]): Map<string, string>;
490
+ /**
491
+ * Build the probe paths whose resolved `merge` attribute decides fence status: one
492
+ * history ledger and one item file. Real paths from the divergence scan are
493
+ * preferred so the probe reflects the directories actually in play; the
494
+ * conventional fallbacks keep the check meaningful when nothing changed.
495
+ */
496
+ export declare function fenceProbePaths(pmRootRel: string, observedItemPath?: string): {
497
+ historyPath: string;
498
+ itemPath: string;
499
+ };
500
+ export declare function evaluateFence(input: {
501
+ /** Resolved `merge` attribute for an item `.toon` path, from `git check-attr`. */
502
+ itemToonAttr?: string;
503
+ /** Resolved `merge` attribute for a history `.jsonl` path, from `git check-attr`. */
504
+ historyAttr?: string;
505
+ itemToonDriver?: string;
506
+ historyDriver?: string;
507
+ }): FenceStatus;
508
+ export declare function buildDivergence(items: DivergeItem[], options: {
509
+ base: string;
510
+ head: string;
511
+ baseSha: string;
512
+ headSha: string;
513
+ ancestorSha: string | undefined;
514
+ workspace: string;
515
+ pmVersion: string;
516
+ generatedAt?: string;
517
+ fence: FenceStatus;
518
+ includeClean?: boolean;
519
+ maxItems?: number;
520
+ tokenBudget?: number;
521
+ format?: string;
522
+ ancestorDate?: string;
523
+ }): DivergenceSummary;
524
+ export declare function renderMarkdownDivergence(summary: DivergenceSummary): string;
525
+ export declare function renderTextDivergence(summary: DivergenceSummary): string;
526
+ export declare function renderSlackDivergence(summary: DivergenceSummary): string;
527
+ /** One side of a collapsed duplicate pair, carrying the fields the report needs. */
528
+ export interface DuplicatePairItem {
529
+ /** Stable item id from the pm tracker. */
530
+ id: string;
531
+ /** Item title as stored in the tracker. */
532
+ title: string;
533
+ /** Lifecycle status (open, in_progress, closed, ...). */
534
+ status: string;
535
+ /** Item type (Task, Feature, Issue, ...). */
536
+ type: string;
537
+ /** Creation timestamp (ISO) used to pick the canonical item; undefined when missing. */
538
+ createdAt?: string;
539
+ }
540
+ /** A collapsed, unordered near-duplicate pair keyed by a stable sorted-id pair. */
541
+ export interface DuplicatePair {
542
+ /** Stable sorted-id pair key, e.g. "pm-a|pm-b". */
543
+ id: string;
544
+ /** Both members of the pair, sorted by id for stable output. */
545
+ items: [DuplicatePairItem, DuplicatePairItem];
546
+ /** Highest similarity score observed for the pair, rounded to 3 decimals. */
547
+ score: number;
548
+ /** Strongest deterministic match signal from the SDK (`exact_title`, `issue_code`, or `title_token_jaccard`). */
549
+ reason: SimilarItemMatch["reason"];
550
+ /** Advisory remediation command string; never executed by this command. */
551
+ remediation: string;
552
+ }
553
+ /** Options controlling which items are scanned and how pairs are ranked/truncated. */
554
+ export interface DuplicateSweepOptions {
555
+ /** Inclusive similarity threshold on the 0..1 scale (default 0.6). */
556
+ threshold?: number;
557
+ /** Maximum pairs to report, after ranking (default 20). */
558
+ limit?: number;
559
+ /** Statuses to consider as scan candidates; empty means all statuses. */
560
+ statuses?: string[];
561
+ /** When set, only items whose `created_at` is at or after this ISO timestamp are scanned. */
562
+ since?: string;
563
+ /** Timestamp used for the report header; defaults to now. */
564
+ generatedAt?: string;
565
+ /**
566
+ * Candidates already selected by the caller. Supplying this skips re-running
567
+ * the status/since filter and keeps one source of truth for the candidate set.
568
+ */
569
+ candidates?: readonly PmItem[];
570
+ }
571
+ /** Result of a post-merge near-duplicate sweep, returned as a bare object for JSON output. */
572
+ export interface DuplicateSweepSummary {
573
+ /** Pairs ranked by score descending then pair id, truncated to `limit`. */
574
+ pairs: DuplicatePair[];
575
+ /** Number of pairs in `pairs` (equals `pairs.length`). */
576
+ count: number;
577
+ /** Total ranked pairs found before truncation to `limit`. */
578
+ total: number;
579
+ /** True when `limit` hid pairs, so `count` is not the whole finding. */
580
+ truncated: boolean;
581
+ /** Effective threshold applied to every `findSimilarItems` call. */
582
+ threshold: number;
583
+ /** Number of candidate items actually scanned with `findSimilarItems`. */
584
+ scanned: number;
585
+ /** ISO timestamp the summary was generated. */
586
+ generatedAt: string;
587
+ }
588
+ /**
589
+ * Select the candidate items that `brief duplicates` will scan with the SDK
590
+ * similarity primitive. Mirrors the `--status` / `--since` filtering of the
591
+ * command line: an empty `statuses` list means all statuses, and `since` keeps
592
+ * only items created at or after the given ISO timestamp (post-merge mode).
593
+ */
594
+ export declare function selectDuplicateCandidates(items: PmItem[], options?: DuplicateSweepOptions): PmItem[];
595
+ /**
596
+ * Parse a `--since` value as a strict ISO 8601 timestamp (a bare date such as
597
+ * `2026-07-20` or a full `2026-07-20T00:00:00Z`). Throws a `CommandError` with a
598
+ * usage exit code when the value is not a parseable ISO timestamp, instead of
599
+ * silently returning an empty result (the silent-empty bug filed as pm-cli#651).
600
+ */
601
+ export declare function parseSinceTimestamp(raw: string): string;
602
+ /**
603
+ * Parse and validate `--threshold` on the inclusive 0..1 scale. Rejects
604
+ * non-numeric, below-zero, and above-one values with a `CommandError` usage exit.
605
+ */
606
+ export declare function parseDuplicateThreshold(raw: string | undefined, fallback: number): number;
607
+ /**
608
+ * Build the advisory remediation command for a collapsed pair. The command is
609
+ * output only and is never executed by `brief duplicates`:
610
+ * - exactly one member closed → relate the open item to the closed one;
611
+ * - otherwise (both open, both closed, or unknown) → keep the older (by
612
+ * `created_at`) as canonical and relate the newer to it, falling back to id
613
+ * ordering when creation timestamps are missing.
614
+ */
615
+ export declare function duplicateRemediationCommand(a: DuplicatePairItem, b: DuplicatePairItem): string;
616
+ /**
617
+ * Collapse raw per-candidate similarity matches into unordered pairs. When A
618
+ * matches B and B matches A, a single pair keyed on the stable sorted-id pair is
619
+ * emitted and keeps the highest score (and that score's reason) seen in either
620
+ * direction. Pairs are ranked by score descending then pair id for stable output.
621
+ */
622
+ export declare function collapseDuplicatePairs(candidates: readonly PmItem[], matchesByCandidate: ReadonlyMap<string, readonly SimilarItemMatch[]>, itemsById: ReadonlyMap<string, PmItem>): DuplicatePair[];
623
+ /**
624
+ * Score every candidate against the tracker with the shared SDK similarity
625
+ * primitive, running at most {@link DUPLICATE_SCAN_CONCURRENCY} scans at a time.
626
+ *
627
+ * Concurrency is safe and order-independent here: each scan is an independent
628
+ * read, and `collapseDuplicatePairs` folds the results into unordered pairs and
629
+ * re-sorts them, so the completion order cannot change the report. The cap exists
630
+ * so a large workspace does not open an unbounded number of concurrent reads.
631
+ *
632
+ * Do not expect a large speed-up from raising the cap: the underlying scan is
633
+ * CPU-bound, so on a 1,934-item tracker this bought ~7% wall clock but halved peak
634
+ * memory (526MB to 268MB). See pm-cli#709 for the batch primitive that would
635
+ * actually remove the cost.
636
+ */
637
+ export declare function scanCandidatesForDuplicates(candidates: readonly PmItem[], pmRoot: string, threshold: number): Promise<Map<string, SimilarItemMatch[]>>;
638
+ /**
639
+ * Build the full duplicate-sweep summary from precomputed per-candidate matches.
640
+ * This is the pure, testable core of `brief duplicates`: it selects candidates
641
+ * (status/since filtering), collapses matches into ranked pairs, truncates to
642
+ * `limit`, and attaches the report metadata. The command handler supplies the
643
+ * `findSimilarItems` results so tests never need a live tracker.
644
+ */
645
+ export declare function buildDuplicateSweep(items: PmItem[], matchesByCandidate: ReadonlyMap<string, readonly SimilarItemMatch[]>, options?: DuplicateSweepOptions): DuplicateSweepSummary;
646
+ /** Render a duplicate-sweep summary as plain text (the default format). */
647
+ export declare function renderTextDuplicates(summary: DuplicateSweepSummary): string;
648
+ /** Render a duplicate-sweep summary as markdown. */
649
+ export declare function renderMarkdownDuplicates(summary: DuplicateSweepSummary): string;
322
650
  declare const _default: {
323
651
  name: string;
324
652
  version: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,SAAS;aACpB,eAAe,EAAE,CAAC;aAClB,KAAK,EAAE,CAAC;CACA,CAAC;AAEX,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkC,EAIxE;CACF;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,sBAAsB,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,MAAM,EAAE;QACN,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,QAAQ,EAAE,eAAe,CAAC;IAC1B,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,eAAe,EAAE,SAAS,EAAE,CAAC;IAC7B,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAC5C,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;QACjC,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC,CAAC;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/D;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAmID,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAmBjE;AA0PD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,SAAS,EAAE,CAOxF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,mBAAmB,EAAE,CAanG;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,mBAAmB,EAAE,CASrG;AA8BD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,eAAe,CAoC9F;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,SAAS,EAAE,CAiBvF;AAoID,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,UAAU,CA4DlF;AAoBD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAqE7D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAkE1D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAwD3D;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CASpD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAa3D;AAOD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,EAAE,CA8BhH;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,aAAa,EAAE,CA+B9E;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACtE,kBAAkB,EAAE,CA6CtB;AAcD;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,kBAAkB,EAAE,EAC7B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,OAAO,GAAE;IACP,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACD,GAChB,YAAY,CA0Od;AAoED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGzD;AA6CD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAsCjE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAgB7D;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAqB9D;;;;;kBAmRe,GAAG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}