pm-brief 2026.7.22 → 2026.7.25

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,33 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026.7.25 - 2026-07-25
4
+
5
+ ### Added
6
+
7
+ - 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))
8
+
9
+ ### Fixed
10
+
11
+ - 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))
12
+
13
+ ### Other
14
+
15
+ - 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))
16
+
17
+ ## 2026.7.23 - 2026-07-23
18
+
19
+ ### Added
20
+
21
+ - Add pm brief since delta command for agent re-orientation after parallel/merge work ([pm-brief-da2c](https://github.com/unbraind/pm-brief/blob/main/.agents/pm/features/pm-brief-da2c.toon))
22
+
23
+ ### Fixed
24
+
25
+ - Recommend pm merge reconcile (2026.7.22) over raw history-repair in Multi-agent merge safety docs ([pm-brief-lizi](https://github.com/unbraind/pm-brief/blob/main/.agents/pm/issues/pm-brief-lizi.toon))
26
+
27
+ ### Other
28
+
29
+ - Adopt pm field-aware merge driver for multi-agent branch-merge safety ([pm-brief-m2gp](https://github.com/unbraind/pm-brief/blob/main/.agents/pm/chores/pm-brief-m2gp.toon))
30
+
3
31
  ## 2026.7.14-1 - 2026-07-14
4
32
 
5
33
  ### Other
package/README.md CHANGED
@@ -28,6 +28,9 @@ pm brief next --count 5 --dependency-order --explain --confidence
28
28
  pm brief next --count 5 --format json
29
29
  pm brief next --count 5 --explain --format text
30
30
  pm brief stale --days 7
31
+ pm brief since 7d
32
+ pm brief since 2026-07-20 --format json
33
+ pm brief since 2026-07-20T00:00:00Z --until 2026-07-22 --author alice
31
34
  ```
32
35
 
33
36
  ## Commands
@@ -36,6 +39,8 @@ pm brief stale --days 7
36
39
  - `pm brief prompt` renders a compact copy-pasteable agent handoff prompt.
37
40
  - `pm brief next` returns the ranked next items only.
38
41
  - `pm brief stale` returns stale open or in-progress items.
42
+ - `pm brief since <checkpoint>` renders a delta brief of what changed since a checkpoint.
43
+ - `pm brief diverge [base]` previews pm item collisions between two branches **before** merging.
39
44
 
40
45
  ### Ranking and Budget Flags
41
46
 
@@ -69,6 +74,100 @@ instructions for coding agents: ranked work, focus context, blockers, risks,
69
74
  safe pm commands, and working rules. It is designed for handoffs where the next
70
75
  agent needs executable context rather than a full project dump.
71
76
 
77
+ ### Delta briefs (`pm brief since`)
78
+
79
+ `pm brief since <checkpoint>` produces a token-budgeted **delta brief**: a
80
+ categorized summary of what changed since a checkpoint, instead of a full
81
+ project re-read. It is purpose-built for the multi-agent merge workflow — when
82
+ an agent resumes a project after other agents worked in parallel branches and
83
+ merged, it should orient on *what changed*, not re-read everything. Project
84
+ management is context management, and a delta brief is the smallest context
85
+ that captures the difference.
86
+
87
+ **Checkpoint formats** (lower bound, passed to `pm activity --from`):
88
+
89
+ - Relative windows treated as "ago": `7d`, `12h`, `30m`, `2w`. A leading `-` is
90
+ optional — `pm brief since 7d` and `pm brief since -7d` are equivalent (the
91
+ command signs bare windows so they are not silently read as a future bound).
92
+ - ISO timestamps / dates: `2026-07-20`, `2026-07-20T00:00:00Z`.
93
+
94
+ **Filters:**
95
+
96
+ - `--until <checkpoint>` — upper bound (passed to `pm activity --to`).
97
+ - `--author <name>` — only include changes by this author.
98
+ - `--limit <n>` — max activity entries to scan (default 1000, clamped 1–5000).
99
+
100
+ **Budget & shape:**
101
+
102
+ - `--max-items <n>` (default 40) and `--token-budget` / `--max-tokens` (default
103
+ 4000) trim the lowest-ranked changes to fit; `truncated` / `omittedItems` are
104
+ reported in JSON and markdown when trimming occurs.
105
+ - `--format markdown` (default), `text`, `json`, or `slack`; `--output <file>`
106
+ writes the result to a file.
107
+
108
+ **Categories** (each a section, deterministic order, most decision-relevant
109
+ first): Created · Closed · Canceled · Reopened · Status changes (incl. *started*,
110
+ *newly blocked*, *unblocked* labels) · Reprioritized · Dependencies · Discussion
111
+ (notes + comments) · Other. Items are ranked by change kind, then current
112
+ priority, then recency, then id for a fully deterministic order.
113
+
114
+ **Use case — multi-agent merge re-orientation:** after merging parallel
115
+ branches that touched the pm tracker, run `pm brief since <last-sync>` to get a
116
+ precise list of created / closed / reprioritized / re-blocked items and new
117
+ notes, so the resuming agent can update its plan without re-reading the whole
118
+ workspace. The brief ends with a `## Refresh` block showing the exact command
119
+ that reproduces it.
120
+
121
+ ### Pre-merge collision preview (`pm brief diverge`)
122
+
123
+ `pm brief since` is the *post*-merge half of the multi-agent workflow. `pm brief
124
+ diverge [base]` is the *pre*-merge half: it answers "which pm items did both
125
+ branches touch, and will the field-aware merge driver resolve them cleanly?"
126
+ before you run `git merge` — rather than after, when `pm merge reconcile` is
127
+ repairing the damage.
128
+
129
+ ```bash
130
+ pm brief diverge # HEAD vs origin/HEAD (else main, else master)
131
+ pm brief diverge main # explicit base
132
+ pm brief diverge --base main --head feat/other # neither side has to be checked out
133
+ pm brief diverge --base main --format json # machine-readable for agents
134
+ pm brief diverge --base main --include-clean # also list one-sided items individually
135
+ ```
136
+
137
+ It reads each item's append-only history ledger at the merge base, the base tip
138
+ and the head tip, diffs the JSON-Patch paths each side added, and classifies
139
+ every item:
140
+
141
+ | Classification | Severity | Meaning |
142
+ |---|---|---|
143
+ | `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. |
144
+ | `delete-vs-edit` | high | One side deleted the item while the other edited it. |
145
+ | `field-collision` | medium | Both sides wrote the **same field**. The driver resolves it via `--prefer`, so review the losing value. |
146
+ | `union-safe` | low | Both sides touched the item but **disjoint fields** — the driver merges both and unions the history. |
147
+ | `head-only` / `base-only` | — | Only one side touched it; nothing to resolve. |
148
+
149
+ `/metadata/updated_at` is treated as benign: it changes on every write and never
150
+ produces a collision verdict on its own.
151
+
152
+ The verdict is `clean` (no item touched by both sides), `union-safe` (all
153
+ both-sided items have disjoint fields), or `review-required` (any high/medium
154
+ finding).
155
+
156
+ **Merge fence check.** The report also verifies the field-aware driver is
157
+ actually installed — the `.gitattributes` entries *and* the `merge.*.driver` git
158
+ config. Without both, even `union-safe` items hard-conflict, so a missing fence
159
+ is reported as a warning with `pm merge install` as the first recommended step.
160
+
161
+ **Unrelated histories.** When the refs share no merge base, `unrelatedHistories`
162
+ is `true` in the JSON (an explicit boolean, because `JSON.stringify` drops the
163
+ `undefined` `ancestorSha`), every changed item is reported one-sided, and the
164
+ recommended merge command becomes `git merge --allow-unrelated-histories <base>`
165
+ — the bare form git refuses outright.
166
+
167
+ Each report ends with an ordered `Recommended next steps` block containing only
168
+ the commands that apply, including `pm history <id> --verify` per high-severity
169
+ item and a `pm brief since <merge-base-date>` for post-merge re-orientation.
170
+
72
171
  ## TypeScript API
73
172
 
74
173
  ```ts
@@ -94,6 +193,16 @@ tests, production audit, dry-run packing, and changelog validation.
94
193
  This repo tracks its project management in `.agents/pm/` and ships a committed `.gitattributes`
95
194
  that maps those tracker artifacts to pm-cli's field-aware Git merge drivers, so concurrent-branch
96
195
  tracker edits merge cleanly instead of hard-conflicting. The driver **definitions** live in
97
- per-clone Git config; `npm install` / `npm ci` wires them automatically via the `prepare` script
98
- (guarded — it runs `pm merge install` only when the `pm` CLI is on `PATH`, and no-ops cleanly otherwise so production / `--omit=dev` installs are not broken). To (re)run manually: `npm run merge:install`. After merging a branch that
99
- touched `.agents/pm/`, run `pm history-repair --all` to reconcile history verification.
196
+ per-clone Git config; `npm install` / `npm ci` wires them automatically via the `prepare` script (a portable Node guard, `scripts/prepare-merge-driver.mjs`: it runs
197
+ `pm merge install` only when the `pm` CLI is on `PATH`, and no-ops cleanly otherwise so
198
+ production / `--omit=dev` installs are not broken; being Node-based it behaves identically
199
+ on POSIX shells and Windows `cmd.exe`). To (re)run manually: `npm run merge:install`.
200
+
201
+ After merging a branch that touched `.agents/pm/`, reconcile any residual history-hash drift with
202
+ **`pm merge reconcile`** (pm-cli ≥ 2026.7.22): preview with `pm merge reconcile --dry-run`, apply with
203
+ `pm merge reconcile --message "post-merge reconcile"`, then confirm with `pm validate`, which scans the
204
+ whole tracker and flags remaining history drift across **every** affected item (`pm merge reconcile`
205
+ itself lists each affected stream in its output; `pm history --verify <id>` spot-checks one item). The field-aware driver already unions every author's
206
+ content, so `reconcile` only re-greens the hash chain (no data loss) — see the authoritative
207
+ [pm-cli merge-safety guide](https://github.com/unbraind/pm-cli/blob/main/docs/MERGE_SAFETY.md). The
208
+ older blunt `pm history-repair --all` remains available as a lower-level primitive.
package/dist/index.d.ts CHANGED
@@ -171,6 +171,84 @@ export interface AgentBrief {
171
171
  recommendedPmUpdates: RecommendedPmUpdate[];
172
172
  insights?: BriefInsight[];
173
173
  }
174
+ export interface DeltaActivityEntry {
175
+ ts: string;
176
+ author?: string;
177
+ op: string;
178
+ id: string;
179
+ patch?: Array<{
180
+ op: "add" | "replace" | "remove";
181
+ path: string;
182
+ value?: unknown;
183
+ }>;
184
+ before_hash?: string;
185
+ after_hash?: string;
186
+ message?: string;
187
+ }
188
+ export interface DeltaItemChange {
189
+ id: string;
190
+ title: string;
191
+ type: string;
192
+ currentStatus?: string;
193
+ currentPriority?: number;
194
+ created: boolean;
195
+ closed: boolean;
196
+ canceled: boolean;
197
+ reopened: boolean;
198
+ closeReason?: string;
199
+ statusTransition?: {
200
+ from?: string;
201
+ to: string;
202
+ };
203
+ statusLabel?: string;
204
+ priorityChange?: {
205
+ from?: string;
206
+ to: number;
207
+ };
208
+ retitled: boolean;
209
+ reassigned?: {
210
+ to: string;
211
+ };
212
+ depsAdded: number;
213
+ depsRemoved: number;
214
+ notesAdded: number;
215
+ commentsAdded: number;
216
+ eventCount: number;
217
+ firstTs: string;
218
+ lastTs: string;
219
+ changeRank: number;
220
+ }
221
+ export interface DeltaSummary {
222
+ since: string;
223
+ until?: string;
224
+ author?: string;
225
+ generatedAt: string;
226
+ workspace: string;
227
+ pmVersion: string;
228
+ totals: {
229
+ itemsChanged: number;
230
+ events: number;
231
+ created: number;
232
+ closed: number;
233
+ canceled: number;
234
+ reopened: number;
235
+ statusChanged: number;
236
+ reprioritized: number;
237
+ retitled: number;
238
+ reassigned: number;
239
+ depsAdded: number;
240
+ depsRemoved: number;
241
+ notes: number;
242
+ comments: number;
243
+ };
244
+ items: DeltaItemChange[];
245
+ truncated?: boolean;
246
+ omittedItems?: number;
247
+ budget?: {
248
+ requestedTokens: number;
249
+ estimatedTokens: number;
250
+ };
251
+ }
174
252
  interface Relationship {
175
253
  from: string;
176
254
  to: string;
@@ -200,6 +278,250 @@ export declare function readNextOrderedIds(pmRoot: string, options?: {
200
278
  assignee?: string;
201
279
  }): string[];
202
280
  export declare function readRecentActivity(pmRoot: string, limit?: number): BriefActivity[];
281
+ /**
282
+ * Read full activity entries (with JSON-Patch payloads) since a checkpoint via
283
+ * `pm activity --json --full --from <from> [--to] [--author] --limit <n>`. Mirrors
284
+ * the spawnSync/CommandError idioms of `readRecentActivity` and `readPmItems`.
285
+ * Returns normalized `DeltaActivityEntry[]` sorted ascending by ts so the
286
+ * classifier can walk each item's events chronologically.
287
+ */
288
+ export declare function readActivitySince(pmRoot: string, options: {
289
+ from: string;
290
+ to?: string;
291
+ author?: string;
292
+ limit?: number;
293
+ }): DeltaActivityEntry[];
294
+ /**
295
+ * Pure classifier: groups full activity entries by item id and aggregates all
296
+ * events in the window into one `DeltaItemChange` per changed item, joined with
297
+ * the current state in `itemsById`. Deterministic ordering puts the most
298
+ * decision-relevant changes first, then applies a token/item budget.
299
+ */
300
+ export declare function buildDelta(entries: DeltaActivityEntry[], itemsById: Map<string, PmItem>, options?: {
301
+ since: string;
302
+ until?: string;
303
+ author?: string;
304
+ generatedAt?: string;
305
+ workspace?: string;
306
+ pmVersion?: string;
307
+ maxItems?: number;
308
+ tokenBudget?: number;
309
+ format?: string;
310
+ }): DeltaSummary;
311
+ /**
312
+ * Normalize an agent-friendly bare relative window (e.g. "7d", "24h", "2w") to the
313
+ * `pm activity --from`/`--to` accepted form ("-7d"): a leading minus means "N ago".
314
+ * Bare forms WITHOUT the minus silently match nothing in `pm activity`, so agents
315
+ * that naturally type `pm brief since 7d` would otherwise get an empty delta. ISO
316
+ * timestamps, plain dates, and already-signed relatives pass through unchanged.
317
+ */
318
+ export declare function normalizeCheckpoint(value: string): string;
319
+ export declare function renderMarkdownDelta(summary: DeltaSummary): string;
320
+ export declare function renderTextDelta(summary: DeltaSummary): string;
321
+ export declare function renderSlackDelta(summary: DeltaSummary): string;
322
+ /** Fields that change on every write and must never, on their own, cause a collision. */
323
+ export declare const BENIGN_FIELDS: Set<string>;
324
+ export interface DivergeEvent {
325
+ ts: string;
326
+ author?: string;
327
+ op: string;
328
+ patch?: Array<{
329
+ op: "add" | "replace" | "remove" | string;
330
+ path: string;
331
+ value?: unknown;
332
+ }>;
333
+ before_hash?: string;
334
+ after_hash?: string;
335
+ }
336
+ export interface DivergeItemSide {
337
+ events: DivergeEvent[];
338
+ itemPresent: boolean;
339
+ malformedLines?: number;
340
+ }
341
+ export type DivergeKind = "head-only" | "base-only" | "unchanged" | "duplicate-id" | "delete-vs-edit" | "field-collision" | "union-safe";
342
+ export interface DivergeItem {
343
+ id: string;
344
+ kind: DivergeKind;
345
+ severity: "low" | "medium" | "high";
346
+ collidingFields: string[];
347
+ base: {
348
+ eventCount: number;
349
+ authors: string[];
350
+ firstTs: string | undefined;
351
+ lastTs: string | undefined;
352
+ fields: string[];
353
+ itemPresent: boolean;
354
+ malformedLines: number;
355
+ };
356
+ head: {
357
+ eventCount: number;
358
+ authors: string[];
359
+ firstTs: string | undefined;
360
+ lastTs: string | undefined;
361
+ fields: string[];
362
+ itemPresent: boolean;
363
+ malformedLines: number;
364
+ };
365
+ }
366
+ export interface FenceStatus {
367
+ attributesInstalled: boolean;
368
+ driversConfigured: boolean;
369
+ ok: boolean;
370
+ missing: string[];
371
+ }
372
+ export interface DivergenceSummary {
373
+ base: string;
374
+ head: string;
375
+ baseSha: string;
376
+ headSha: string;
377
+ ancestorSha: string | undefined;
378
+ /**
379
+ * True when base and head share no common ancestor. Always present so a JSON
380
+ * consumer never has to infer it from an omitted `ancestorSha` (JSON.stringify
381
+ * drops `undefined`). A `clean` verdict here means only "no item was touched by
382
+ * both sides" — an unrelated-histories merge still rewrites the whole tree and
383
+ * needs `--allow-unrelated-histories`, so the flag must be machine-readable.
384
+ */
385
+ unrelatedHistories: boolean;
386
+ workspace: string;
387
+ pmVersion: string;
388
+ generatedAt: string;
389
+ verdict: "clean" | "union-safe" | "review-required";
390
+ totals: {
391
+ itemsChanged: number;
392
+ headOnly: number;
393
+ baseOnly: number;
394
+ unionSafe: number;
395
+ fieldCollision: number;
396
+ duplicateId: number;
397
+ deleteVsEdit: number;
398
+ };
399
+ items: DivergeItem[];
400
+ truncated?: boolean;
401
+ omittedItems?: number;
402
+ budget?: {
403
+ requestedTokens: number;
404
+ estimatedTokens: number;
405
+ };
406
+ fence: FenceStatus;
407
+ recommendedCommands: string[];
408
+ }
409
+ /** `git rev-parse --show-toplevel`; throws CommandError if not a git repo. */
410
+ export declare function resolveRepoRoot(cwd: string): string;
411
+ /** `git rev-parse --verify <ref>^{commit}`; throws CommandError naming the unknown ref. */
412
+ export declare function resolveRef(repoRoot: string, ref: string): string;
413
+ /** Try origin/HEAD, main, master — return the first ref that resolves. Throw if none. */
414
+ export declare function detectDefaultBase(repoRoot: string): string;
415
+ /**
416
+ * `git merge-base a b`; undefined when the refs share no ancestor (unrelated
417
+ * histories). Exit status 1 is that legitimate "no merge base" answer; any other
418
+ * non-zero status is a real failure and must not be reported as unrelated
419
+ * histories.
420
+ */
421
+ export declare function mergeBase(repoRoot: string, a: string, b: string): string | undefined;
422
+ /** `git diff --name-only --diff-filter=ACMRD <from> <to> -- <pathspec>`, or `git ls-tree` when fromSha is undefined. */
423
+ export declare function listChangedPaths(repoRoot: string, fromSha: string | undefined, toSha: string, pathspec: string): string[];
424
+ /**
425
+ * `git show <sha>:<path>`; undefined when the path does not exist at that
426
+ * revision — the normal signal for "this item did not exist yet on that side".
427
+ *
428
+ * git reports a missing path with status 128 and a recognizable stderr, which is
429
+ * also the status it uses for genuine errors (bad object, unreadable repo). The
430
+ * stderr shape is therefore matched explicitly so a corrupt object cannot be
431
+ * silently read as an absent item.
432
+ */
433
+ export declare function readBlob(repoRoot: string, sha: string, path: string): string | undefined;
434
+ /** Derive the pm workspace path relative to the repo root, normalized to POSIX separators. */
435
+ export declare function pmRootRelFromCtx(pmRoot: string, repoRoot: string): string;
436
+ /**
437
+ * Single-pass scan of a JSON-Lines history ledger.
438
+ *
439
+ * Returns the usable events *and* the count of unusable non-blank lines from one
440
+ * `JSON.parse` per line. Doing this in one pass is both a correctness and a cost
441
+ * fix: two independent scans previously disagreed about what "malformed" means —
442
+ * a line that parsed as an object but carried no `ts` was dropped from the events
443
+ * yet not counted as malformed, so the report under-stated exactly the data loss a
444
+ * pre-merge check exists to surface. Ledgers can approach the 64 MiB read buffer,
445
+ * so parsing each line twice was also the dominant cost of the command.
446
+ *
447
+ * "Unusable" therefore means any non-blank line that is not parseable JSON, is not
448
+ * an object, or lacks a usable `ts` — the same predicate that decides whether the
449
+ * line contributes an event.
450
+ */
451
+ export declare function scanHistoryJsonl(text: string | undefined): {
452
+ events: DivergeEvent[];
453
+ malformedLines: number;
454
+ };
455
+ /** Parse a JSON-Lines history ledger text into DivergeEvent[]; thin wrapper over {@link scanHistoryJsonl}. */
456
+ export declare function parseHistoryJsonl(text: string | undefined): DivergeEvent[];
457
+ /** Count unusable (non-blank, non-event) lines in a history ledger text; thin wrapper over {@link scanHistoryJsonl}. */
458
+ export declare function countMalformedLines(text: string | undefined): number;
459
+ /** Identity key for an event: after_hash when available, else ts|author|op. */
460
+ export declare function eventKey(e: DivergeEvent): string;
461
+ /** Events on a side whose key is not in the ancestor set. */
462
+ export declare function newEvents(sideEvents: DivergeEvent[], ancestorKeys: Set<string>): DivergeEvent[];
463
+ /** Extract every patch[].path, normalizing trailing numeric segments so array appends merge. */
464
+ export declare function changedFieldPaths(events: DivergeEvent[]): Set<string>;
465
+ /** Normalize trailing numeric array segments: /metadata/tags/3 → /metadata/tags. */
466
+ export declare function normalizeFieldPath(path: string): string;
467
+ export declare function classifyItemDivergence(input: {
468
+ id: string;
469
+ ancestor: DivergeItemSide;
470
+ base: DivergeItemSide;
471
+ head: DivergeItemSide;
472
+ }): DivergeItem;
473
+ /**
474
+ * Ask git which merge driver it would actually apply to representative pm paths.
475
+ *
476
+ * `git check-attr` is the authoritative resolver: it honours `.gitattributes` in
477
+ * every parent directory of the target, the untracked `.git/info/attributes`, and
478
+ * the global/system attributes files. Parsing only the repo-root `.gitattributes`
479
+ * misses all of those, so a correctly fenced workspace could be reported as
480
+ * unfenced — a false warning that tells the agent to run `pm merge install` it does
481
+ * not need, and, worse, leaves the reverse case (reporting a fence that git will not
482
+ * apply) equally possible.
483
+ *
484
+ * Returns a map of probe path to resolved `merge` attribute value. Values git
485
+ * reports as `unspecified`, `unset` or `set` carry no driver name and are dropped.
486
+ */
487
+ export declare function checkAttrMerge(repoRoot: string, paths: string[]): Map<string, string>;
488
+ /**
489
+ * Build the probe paths whose resolved `merge` attribute decides fence status: one
490
+ * history ledger and one item file. Real paths from the divergence scan are
491
+ * preferred so the probe reflects the directories actually in play; the
492
+ * conventional fallbacks keep the check meaningful when nothing changed.
493
+ */
494
+ export declare function fenceProbePaths(pmRootRel: string, observedItemPath?: string): {
495
+ historyPath: string;
496
+ itemPath: string;
497
+ };
498
+ export declare function evaluateFence(input: {
499
+ /** Resolved `merge` attribute for an item `.toon` path, from `git check-attr`. */
500
+ itemToonAttr?: string;
501
+ /** Resolved `merge` attribute for a history `.jsonl` path, from `git check-attr`. */
502
+ historyAttr?: string;
503
+ itemToonDriver?: string;
504
+ historyDriver?: string;
505
+ }): FenceStatus;
506
+ export declare function buildDivergence(items: DivergeItem[], options: {
507
+ base: string;
508
+ head: string;
509
+ baseSha: string;
510
+ headSha: string;
511
+ ancestorSha: string | undefined;
512
+ workspace: string;
513
+ pmVersion: string;
514
+ generatedAt?: string;
515
+ fence: FenceStatus;
516
+ includeClean?: boolean;
517
+ maxItems?: number;
518
+ tokenBudget?: number;
519
+ format?: string;
520
+ ancestorDate?: string;
521
+ }): DivergenceSummary;
522
+ export declare function renderMarkdownDivergence(summary: DivergenceSummary): string;
523
+ export declare function renderTextDivergence(summary: DivergenceSummary): string;
524
+ export declare function renderSlackDivergence(summary: DivergenceSummary): string;
203
525
  declare const _default: {
204
526
  name: string;
205
527
  version: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}