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 +28 -0
- package/README.md +112 -3
- package/dist/index.d.ts +322 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1385 -1
- package/dist/index.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +8 -8
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
|
-
|
|
99
|
-
|
|
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;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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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"}
|