@aperant/framework 0.10.0 → 0.11.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.
Files changed (72) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/cli/commands/catch-up.d.mts +9 -0
  3. package/dist/cli/commands/catch-up.d.mts.map +1 -0
  4. package/dist/cli/commands/catch-up.mjs +64 -0
  5. package/dist/cli/commands/catch-up.mjs.map +1 -0
  6. package/dist/cli/commands/pr-review.d.mts +16 -4
  7. package/dist/cli/commands/pr-review.d.mts.map +1 -1
  8. package/dist/cli/commands/pr-review.mjs +30 -11
  9. package/dist/cli/commands/pr-review.mjs.map +1 -1
  10. package/dist/cli/commands/route.d.mts.map +1 -1
  11. package/dist/cli/commands/route.mjs +92 -2
  12. package/dist/cli/commands/route.mjs.map +1 -1
  13. package/dist/cli/commands/validate-evidence.d.mts +1 -1
  14. package/dist/cli/config/share-policy.d.mts.map +1 -1
  15. package/dist/cli/config/share-policy.mjs +1 -0
  16. package/dist/cli/config/share-policy.mjs.map +1 -1
  17. package/dist/cli/config/upgrade-gitignore.d.mts.map +1 -1
  18. package/dist/cli/config/upgrade-gitignore.mjs +1 -0
  19. package/dist/cli/config/upgrade-gitignore.mjs.map +1 -1
  20. package/dist/cli/coordination/catch-up.d.mts +26 -0
  21. package/dist/cli/coordination/catch-up.d.mts.map +1 -0
  22. package/dist/cli/coordination/catch-up.mjs +239 -0
  23. package/dist/cli/coordination/catch-up.mjs.map +1 -0
  24. package/dist/cli/coordination/last-seen.d.mts +45 -0
  25. package/dist/cli/coordination/last-seen.d.mts.map +1 -0
  26. package/dist/cli/coordination/last-seen.mjs +128 -0
  27. package/dist/cli/coordination/last-seen.mjs.map +1 -0
  28. package/dist/cli/coordination/store.d.mts +15 -0
  29. package/dist/cli/coordination/store.d.mts.map +1 -1
  30. package/dist/cli/coordination/store.mjs +16 -0
  31. package/dist/cli/coordination/store.mjs.map +1 -1
  32. package/dist/cli/design/frontmatter-schema.d.mts +8 -8
  33. package/dist/cli/dispatch.d.mts.map +1 -1
  34. package/dist/cli/dispatch.mjs +2 -0
  35. package/dist/cli/dispatch.mjs.map +1 -1
  36. package/dist/cli/git/default-branch.d.mts +51 -0
  37. package/dist/cli/git/default-branch.d.mts.map +1 -0
  38. package/dist/cli/git/default-branch.mjs +234 -0
  39. package/dist/cli/git/default-branch.mjs.map +1 -0
  40. package/dist/cli/git/identity.d.mts +3 -5
  41. package/dist/cli/git/identity.d.mts.map +1 -1
  42. package/dist/cli/git/identity.mjs +10 -4
  43. package/dist/cli/git/identity.mjs.map +1 -1
  44. package/dist/cli/install/legacy-paths.d.mts.map +1 -1
  45. package/dist/cli/install/legacy-paths.mjs +2 -0
  46. package/dist/cli/install/legacy-paths.mjs.map +1 -1
  47. package/dist/cli/personas/sidecar.d.mts +1 -1
  48. package/dist/cli/roadmap/lifecycle.d.mts +1 -1
  49. package/dist/cli/roadmap/rollup.d.mts +2 -2
  50. package/dist/plugin/.claude-plugin/plugin.json +2 -1
  51. package/dist/plugin/skills/apt/SKILL.md +29 -0
  52. package/dist/plugin/skills/apt-catch-up/SKILL.md +79 -0
  53. package/dist/plugin/skills/apt-pr-review/SKILL.md +5 -4
  54. package/dist/plugin/skills/apt-setup/SKILL.md +76 -0
  55. package/package.json +138 -138
  56. package/skills/apt/SKILL.md +29 -0
  57. package/skills/apt-catch-up/SKILL.md +79 -0
  58. package/skills/apt-pr-review/SKILL.md +5 -4
  59. package/skills/apt-setup/SKILL.md +76 -0
  60. package/src/cli/commands/catch-up.mjs +67 -0
  61. package/src/cli/commands/pr-review.mjs +32 -11
  62. package/src/cli/commands/route.mjs +92 -1
  63. package/src/cli/config/share-policy.mjs +1 -0
  64. package/src/cli/config/upgrade-gitignore.mjs +1 -0
  65. package/src/cli/coordination/catch-up.mjs +231 -0
  66. package/src/cli/coordination/last-seen.mjs +131 -0
  67. package/src/cli/coordination/store.mjs +18 -0
  68. package/src/cli/dispatch.mjs +2 -0
  69. package/src/cli/git/default-branch.mjs +250 -0
  70. package/src/cli/git/identity.mjs +9 -3
  71. package/src/cli/install/legacy-paths.mjs +2 -0
  72. package/templates/config.json +11 -0
@@ -0,0 +1,128 @@
1
+ /**
2
+ * @internal
3
+ * last-seen.mjs — per-machine, per-git-identity Last-Seen Marker (LD-01).
4
+ *
5
+ * The collaboration catch-up surfaces (Welcome-Back Summary + Team-Change
6
+ * Digest) both diff against one baseline record per human/machine:
7
+ *
8
+ * .aperant/last-seen/{email-slug}.json → { last_run_at, last_main_sha, last_active_task }
9
+ *
10
+ * The slug is derived from the git `user.email` (stable per human/machine),
11
+ * lowercased with every non-[a-z0-9] run collapsed to '-'. The directory is
12
+ * gitignored in the same per-machine ephemeral class as `team-status/` and
13
+ * `events/` (see upgrade-gitignore.mjs / share-policy.mjs).
14
+ *
15
+ * Modeled on team-status.mjs: resolveSharedRoot-based path so the marker lives
16
+ * in the main repo even when called from a worktree; atomicWriteJson +
17
+ * mkdirSync(recursive) for durable writes.
18
+ *
19
+ * This module is `@internal` — consumed only through the CoordinationStore
20
+ * seam (store.readLastSeen / store.advanceLastSeen). Do NOT import it from
21
+ * bin/apt-tools.mjs.
22
+ */
23
+ import { existsSync, mkdirSync, readFileSync } from 'node:fs';
24
+ import { join } from 'node:path';
25
+ import { getGitIdentity } from '../git/identity.mjs';
26
+ import { atomicWriteJson } from '../util/io.mjs';
27
+ import { resolveSharedRoot } from './agent-identity.mjs';
28
+ function lastSeenDir(projectRoot) {
29
+ return join(resolveSharedRoot(projectRoot), '.aperant', 'last-seen');
30
+ }
31
+ /**
32
+ * Slug a git email into a filesystem-safe key: lowercase, every run of
33
+ * non-[a-z0-9] characters collapsed to a single '-'.
34
+ *
35
+ * @param {string} email
36
+ * @returns {string}
37
+ */
38
+ export function slugFromEmail(email) {
39
+ return String(email)
40
+ .toLowerCase()
41
+ .replace(/[^a-z0-9]+/g, '-')
42
+ .replace(/^-+|-+$/g, '');
43
+ }
44
+ function markerPath(projectRoot) {
45
+ const identity = (() => {
46
+ try {
47
+ return getGitIdentity(projectRoot);
48
+ }
49
+ catch {
50
+ return null;
51
+ }
52
+ })();
53
+ if (!identity?.email)
54
+ return null;
55
+ const slug = slugFromEmail(identity.email);
56
+ if (!slug)
57
+ return null;
58
+ return join(lastSeenDir(projectRoot), `${slug}.json`);
59
+ }
60
+ /**
61
+ * Read the current user's Last-Seen Marker. Returns null when the git email is
62
+ * absent (no identity → no key) or the file does not yet exist / is malformed.
63
+ *
64
+ * @param {string} projectRoot
65
+ * @returns {{ last_run_at: string|null, last_main_sha: string|null, last_active_task: string|null }|null}
66
+ *
67
+ * @internal
68
+ */
69
+ export function readLastSeen(projectRoot) {
70
+ const path = markerPath(projectRoot);
71
+ if (!path || !existsSync(path))
72
+ return null;
73
+ try {
74
+ const record = JSON.parse(readFileSync(path, 'utf-8'));
75
+ if (!record || typeof record !== 'object')
76
+ return null;
77
+ return {
78
+ last_run_at: record.last_run_at ?? null,
79
+ last_main_sha: record.last_main_sha ?? null,
80
+ last_active_task: record.last_active_task ?? null,
81
+ };
82
+ }
83
+ catch {
84
+ return null;
85
+ }
86
+ }
87
+ /**
88
+ * Advance the marker, merging partial fields onto any existing record.
89
+ *
90
+ * Marker-advance semantics (LD-02):
91
+ * - last_run_at is always settable (it measures engagement).
92
+ * - last_main_sha is optional — the caller passes it only AFTER the digest
93
+ * was computed (even when empty). When undefined, the existing sha is kept.
94
+ * - last_active_task is optional — the welcome-back task id, kept otherwise.
95
+ *
96
+ * No-op (returns null) when the git email is absent — there is no key to write.
97
+ *
98
+ * @param {string} projectRoot
99
+ * @param {{ last_run_at?: string, last_main_sha?: string|null, last_active_task?: string|null }} fields
100
+ * @returns {object|null} the written record, or null when there is no identity key.
101
+ *
102
+ * @internal
103
+ */
104
+ export function advanceLastSeen(projectRoot, fields = {}) {
105
+ const path = markerPath(projectRoot);
106
+ if (!path)
107
+ return null;
108
+ let existing = {};
109
+ if (existsSync(path)) {
110
+ try {
111
+ existing = JSON.parse(readFileSync(path, 'utf-8')) || {};
112
+ }
113
+ catch {
114
+ existing = {};
115
+ }
116
+ }
117
+ const record = {
118
+ last_run_at: fields.last_run_at !== undefined ? fields.last_run_at : (existing.last_run_at ?? null),
119
+ last_main_sha: fields.last_main_sha !== undefined ? fields.last_main_sha : (existing.last_main_sha ?? null),
120
+ last_active_task: fields.last_active_task !== undefined
121
+ ? fields.last_active_task
122
+ : (existing.last_active_task ?? null),
123
+ };
124
+ mkdirSync(lastSeenDir(projectRoot), { recursive: true });
125
+ atomicWriteJson(path, record);
126
+ return record;
127
+ }
128
+ //# sourceMappingURL=last-seen.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"last-seen.mjs","sourceRoot":"","sources":["../../../src/cli/coordination/last-seen.mjs"],"names":[],"mappings":"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"}
@@ -58,6 +58,21 @@ export function createCoordinationStore(projectRoot: any): {
58
58
  data: any;
59
59
  };
60
60
  } | null;
61
+ /**
62
+ * @internal — LD-01: read the per-machine Last-Seen Marker. Returns
63
+ * null when the git email is absent or the marker has not been written.
64
+ */
65
+ readLastSeen(): {
66
+ last_run_at: string | null;
67
+ last_main_sha: string | null;
68
+ last_active_task: string | null;
69
+ } | null;
70
+ /**
71
+ * @internal — LD-02: advance the Last-Seen Marker. `last_run_at` is
72
+ * always settable; `last_main_sha` / `last_active_task` are optional
73
+ * partial fields merged onto the existing record.
74
+ */
75
+ advanceLastSeen(fields?: {}): object | null;
61
76
  /** @internal */
62
77
  getIdentity(): any;
63
78
  };
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.mts","sourceRoot":"","sources":["../../../src/cli/coordination/store.mjs"],"names":[],"mappings":"AAyCA;;;;;;GAMG;AACH;IAKE,gBAAgB;;IAGhB,sEAAsE;;IAUtE;;;OAGG;;IAWH;;;OAGG;;IAqBH;;;;OAIG;;IAKH,wCAAwC;;IAKxC;;;;OAIG;;IAKH;;;;;;;;;;OAUG;;;;;;;;;;;;;;IAiBH,gBAAgB;;EAKjB"}
1
+ {"version":3,"file":"store.d.mts","sourceRoot":"","sources":["../../../src/cli/coordination/store.mjs"],"names":[],"mappings":"AA0CA;;;;;;GAMG;AACH;IAKE,gBAAgB;;IAGhB,sEAAsE;;IAUtE;;;OAGG;;IAWH;;;OAGG;;IAqBH;;;;OAIG;;IAKH,wCAAwC;;IAKxC;;;;OAIG;;IAKH;;;;;;;;;;OAUG;;;;;;;;;;;;;;IAiBH;;;OAGG;;;;;;IAKH;;;;OAIG;;IAKH,gBAAgB;;EAKjB"}
@@ -32,6 +32,7 @@ import { atomicWriteJson } from '../util/io.mjs';
32
32
  import { getAgentIdentity, resolveSharedRoot } from './agent-identity.mjs';
33
33
  import { appendLifecycleEvent } from './event-log.mjs';
34
34
  import { validateConductorEvent } from './event-schema.mjs';
35
+ import { advanceLastSeen as lastSeenAdvance, readLastSeen as lastSeenRead } from './last-seen.mjs';
35
36
  import { listActive as teamStatusListActive, removeSelf as teamStatusRemoveSelf, upsertSelf as teamStatusUpsertSelf, } from './team-status.mjs';
36
37
  /**
37
38
  * Construct a coordination store bound to a specific project root. The
@@ -134,6 +135,21 @@ export function createCoordinationStore(projectRoot) {
134
135
  return null;
135
136
  }
136
137
  },
138
+ /**
139
+ * @internal — LD-01: read the per-machine Last-Seen Marker. Returns
140
+ * null when the git email is absent or the marker has not been written.
141
+ */
142
+ readLastSeen() {
143
+ return lastSeenRead(projectRoot);
144
+ },
145
+ /**
146
+ * @internal — LD-02: advance the Last-Seen Marker. `last_run_at` is
147
+ * always settable; `last_main_sha` / `last_active_task` are optional
148
+ * partial fields merged onto the existing record.
149
+ */
150
+ advanceLastSeen(fields = {}) {
151
+ return lastSeenAdvance(projectRoot, fields);
152
+ },
137
153
  /** @internal */
138
154
  getIdentity() {
139
155
  return getAgentIdentity(projectRoot);
@@ -1 +1 @@
1
- {"version":3,"file":"store.mjs","sourceRoot":"","sources":["../../../src/cli/coordination/store.mjs"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.mjs","sourceRoot":"","sources":["../../../src/cli/coordination/store.mjs"],"names":[],"mappings":"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"}
@@ -82,21 +82,21 @@ export const TokensSchema: z.ZodObject<{
82
82
  }, z.core.$loose>;
83
83
  export const ComponentsSchema: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>;
84
84
  export const AntiPatternCategorySchema: z.ZodEnum<{
85
- content: "content";
86
85
  color: "color";
87
86
  typography: "typography";
88
- layout: "layout";
89
87
  motion: "motion";
88
+ layout: "layout";
89
+ content: "content";
90
90
  interaction: "interaction";
91
91
  }>;
92
92
  export const AntiPatternSchema: z.ZodObject<{
93
93
  id: z.ZodString;
94
94
  category: z.ZodEnum<{
95
- content: "content";
96
95
  color: "color";
97
96
  typography: "typography";
98
- layout: "layout";
99
97
  motion: "motion";
98
+ layout: "layout";
99
+ content: "content";
100
100
  interaction: "interaction";
101
101
  }>;
102
102
  pattern: z.ZodString;
@@ -106,11 +106,11 @@ export const AntiPatternSchema: z.ZodObject<{
106
106
  export const AntiPatternsSchema: z.ZodArray<z.ZodObject<{
107
107
  id: z.ZodString;
108
108
  category: z.ZodEnum<{
109
- content: "content";
110
109
  color: "color";
111
110
  typography: "typography";
112
- layout: "layout";
113
111
  motion: "motion";
112
+ layout: "layout";
113
+ content: "content";
114
114
  interaction: "interaction";
115
115
  }>;
116
116
  pattern: z.ZodString;
@@ -162,11 +162,11 @@ export const DesignFrontmatterSchema: z.ZodObject<{
162
162
  antiPatterns: z.ZodOptional<z.ZodArray<z.ZodObject<{
163
163
  id: z.ZodString;
164
164
  category: z.ZodEnum<{
165
- content: "content";
166
165
  color: "color";
167
166
  typography: "typography";
168
- layout: "layout";
169
167
  motion: "motion";
168
+ layout: "layout";
169
+ content: "content";
170
170
  interaction: "interaction";
171
171
  }>;
172
172
  pattern: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.d.mts","sourceRoot":"","sources":["../../src/cli/dispatch.mjs"],"names":[],"mappings":"AA+GA;;;;;;GAMG;AACH,uCAFa,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CA+DjD;AAMD,gEAAgE;AAChE,uBADW,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAkJ3D"}
1
+ {"version":3,"file":"dispatch.d.mts","sourceRoot":"","sources":["../../src/cli/dispatch.mjs"],"names":[],"mappings":"AAgHA;;;;;;GAMG;AACH,uCAFa,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CA+DjD;AAMD,gEAAgE;AAChE,uBADW,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAmJ3D"}
@@ -38,6 +38,7 @@ import { cmdAdr } from './commands/adr.mjs';
38
38
  import { cmdAudit } from './commands/audit.mjs';
39
39
  import { cmdAuthorSkill } from './commands/author-skill.mjs';
40
40
  import { cmdBootstrap } from './commands/bootstrap.mjs';
41
+ import { cmdCatchUp } from './commands/catch-up.mjs';
41
42
  import { cmdCheck } from './commands/check.mjs';
42
43
  import { cmdCheckVersion } from './commands/check-version.mjs';
43
44
  import { cmdCiWatch, cmdCiWatchSweep } from './commands/ci-watch.mjs';
@@ -200,6 +201,7 @@ export const DISPATCH = {
200
201
  },
201
202
  // ---- (positional dir, slice(2)) shape ----
202
203
  state: (args) => wrap(cmdState)(args[1]),
204
+ 'catch-up': (args) => wrap(cmdCatchUp)(args[1]),
203
205
  config: (args) => wrap(cmdConfig)(args[1], args.slice(2)),
204
206
  'state-update': (args) => wrap(cmdStateUpdate)(args[1], args.slice(2)),
205
207
  'state-artifacts': (args) => wrap(cmdStateArtifacts)(args[1], args.slice(2)),
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.mjs","sourceRoot":"","sources":["../../src/cli/dispatch.mjs"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.mjs","sourceRoot":"","sources":["../../src/cli/dispatch.mjs"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Resolve the local default-branch ref, with its current sha. Resolution order:
3
+ * 1. `git symbolic-ref refs/remotes/origin/HEAD` (strip the
4
+ * 'refs/remotes/origin/' prefix);
5
+ * 2. `git config init.defaultBranch`;
6
+ * 3. existence check of `main` then `master` via `git rev-parse --verify`.
7
+ *
8
+ * NEVER fetches. Returns null outside a git repo or when nothing resolves.
9
+ *
10
+ * @param {string} targetDir
11
+ * @returns {{ branch: string, sha: string }|null}
12
+ */
13
+ export function resolveLocalDefaultBranch(targetDir: string): {
14
+ branch: string;
15
+ sha: string;
16
+ } | null;
17
+ /**
18
+ * List merged PRs on the local default branch since `sinceSha`, attributed to
19
+ * whoever actually wrote the work (LD-04/05).
20
+ *
21
+ * Walks `git log --first-parent <sinceSha>..<defaultBranch>`. Each commit that
22
+ * parses as a PR (merge-commit or squash form) becomes one entry, attributed
23
+ * via its introduced-commit author emails. An entry is excluded only when ALL
24
+ * its introduced emails equal `currentUserEmail` (the user's own work) — so a
25
+ * PR the user merged but a teammate authored still appears.
26
+ *
27
+ * The scan is bounded (R3): at most `maxEntries * SCAN_MULTIPLIER` commits are
28
+ * inspected, so a stale marker can't enumerate an unbounded history.
29
+ *
30
+ * @param {string} targetDir
31
+ * @param {object} opts
32
+ * @param {string} opts.sinceSha baseline sha (exclusive lower bound)
33
+ * @param {string} [opts.defaultBranch] branch to walk to (default: resolved)
34
+ * @param {string} opts.currentUserEmail the user's git email (own-work filter)
35
+ * @param {number} [opts.maxEntries=7] cap on returned entries
36
+ * @returns {{ entries: Array<{ number: number, title: string, author: string }>, more_count: number }}
37
+ */
38
+ export function listMergedPullRequests(targetDir: string, opts?: {
39
+ sinceSha: string;
40
+ defaultBranch?: string | undefined;
41
+ currentUserEmail: string;
42
+ maxEntries?: number | undefined;
43
+ }): {
44
+ entries: Array<{
45
+ number: number;
46
+ title: string;
47
+ author: string;
48
+ }>;
49
+ more_count: number;
50
+ };
51
+ //# sourceMappingURL=default-branch.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-branch.d.mts","sourceRoot":"","sources":["../../../src/cli/git/default-branch.mjs"],"names":[],"mappings":"AAmCA;;;;;;;;;;;GAWG;AACH,qDAHW,MAAM,GACJ;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAC,IAAI,CAoChD;AA2ED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,kDARW,MAAM,SAEd;IAAqB,QAAQ,EAArB,MAAM;IACQ,aAAa;IACd,gBAAgB,EAA7B,MAAM;IACQ,UAAU;CAChC,GAAU;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CA0ErG"}
@@ -0,0 +1,234 @@
1
+ /**
2
+ * git/default-branch.mjs — local default-branch resolution + merged-PR parsing
3
+ * for the Team-Change Digest (LD-03/04/05).
4
+ *
5
+ * Pure git helpers (no .aperant IO). Every git call uses the no-throw
6
+ * execFileSync pattern from git/remote.mjs (stdio ['ignore','pipe','ignore'])
7
+ * so a non-git dir / unresolvable ref returns null instead of throwing.
8
+ *
9
+ * The resolver reads the LOCAL default-branch ref only — it NEVER calls
10
+ * `git fetch`. The digest surfaces work the user has actually pulled, not
11
+ * unfetched server state (ADR Consequences ¶1).
12
+ *
13
+ * @internal
14
+ */
15
+ import { execFileSync } from 'node:child_process';
16
+ /**
17
+ * Run a git command, returning trimmed stdout or null on any error.
18
+ * @param {string} targetDir
19
+ * @param {string[]} args
20
+ * @returns {string|null}
21
+ */
22
+ function git(targetDir, args) {
23
+ try {
24
+ return execFileSync('git', args, {
25
+ cwd: targetDir,
26
+ encoding: 'utf-8',
27
+ stdio: ['ignore', 'pipe', 'ignore'],
28
+ }).trim();
29
+ }
30
+ catch {
31
+ return null;
32
+ }
33
+ }
34
+ /**
35
+ * Resolve the local default-branch ref, with its current sha. Resolution order:
36
+ * 1. `git symbolic-ref refs/remotes/origin/HEAD` (strip the
37
+ * 'refs/remotes/origin/' prefix);
38
+ * 2. `git config init.defaultBranch`;
39
+ * 3. existence check of `main` then `master` via `git rev-parse --verify`.
40
+ *
41
+ * NEVER fetches. Returns null outside a git repo or when nothing resolves.
42
+ *
43
+ * @param {string} targetDir
44
+ * @returns {{ branch: string, sha: string }|null}
45
+ */
46
+ export function resolveLocalDefaultBranch(targetDir) {
47
+ // Fast bail when not a git repo.
48
+ if (git(targetDir, ['rev-parse', '--git-dir']) === null)
49
+ return null;
50
+ let branch = null;
51
+ // (1) origin/HEAD symbolic-ref — the authoritative "what main points at".
52
+ const originHead = git(targetDir, ['symbolic-ref', 'refs/remotes/origin/HEAD']);
53
+ if (originHead?.startsWith('refs/remotes/origin/')) {
54
+ branch = originHead.slice('refs/remotes/origin/'.length);
55
+ }
56
+ // (2) init.defaultBranch config.
57
+ if (!branch) {
58
+ const configured = git(targetDir, ['config', 'init.defaultBranch']);
59
+ if (configured)
60
+ branch = configured;
61
+ }
62
+ // (3) existence check main → master.
63
+ if (!branch) {
64
+ for (const candidate of ['main', 'master']) {
65
+ if (git(targetDir, ['rev-parse', '--verify', '--quiet', candidate]) !== null) {
66
+ branch = candidate;
67
+ break;
68
+ }
69
+ }
70
+ }
71
+ if (!branch)
72
+ return null;
73
+ const sha = git(targetDir, ['rev-parse', branch]);
74
+ if (!sha)
75
+ return null;
76
+ return { branch, sha };
77
+ }
78
+ /**
79
+ * Parse a PR number + title from a merge-commit subject/body.
80
+ *
81
+ * GitHub merge-commit format:
82
+ * subject: "Merge pull request #N from owner/branch"
83
+ * body: "<PR title>" (first non-empty body line)
84
+ * Squash-merge format:
85
+ * subject: "<PR title> (#N)"
86
+ *
87
+ * @param {string} subject
88
+ * @param {string} body
89
+ * @returns {{ number: number, title: string }|null}
90
+ */
91
+ function parsePullRequest(subject, body) {
92
+ const mergeMatch = subject.match(/^Merge pull request #(\d+) from /);
93
+ if (mergeMatch) {
94
+ const number = Number(mergeMatch[1]);
95
+ const firstBodyLine = (body || '')
96
+ .split('\n')
97
+ .map((l) => l.trim())
98
+ .find((l) => l.length > 0);
99
+ return { number, title: firstBodyLine || subject };
100
+ }
101
+ // GitHub squash-merge convention: greedy `(.*)` captures the longest prefix
102
+ // so titles with parentheses (e.g. "feat(core): ...") are handled correctly.
103
+ const squashMatch = subject.match(/^(.*)\s\(#(\d+)\)\s*$/);
104
+ if (squashMatch) {
105
+ return { number: Number(squashMatch[2]), title: squashMatch[1].trim() };
106
+ }
107
+ return null;
108
+ }
109
+ /**
110
+ * Resolve both the introduced-commit author emails (LD-05) and a display name
111
+ * from a single `git log` call per merge. Replaces the former separate
112
+ * `introducedAuthorEmails` + `pickAuthorName` pair (PRF-002).
113
+ *
114
+ * @param {string} targetDir
115
+ * @param {string[]} parents parent shas of the merge commit
116
+ * @param {string} authorEmail the merge commit's own author email
117
+ * @param {string} currentUserEmail the user's git email (for name picking)
118
+ * @param {string} fallbackName merge/commit author name when no better pick
119
+ * @returns {{ emails: string[], authorName: string }}
120
+ */
121
+ function resolveIntroducedAuthors(targetDir, parents, authorEmail, currentUserEmail, fallbackName) {
122
+ if (parents.length >= 2) {
123
+ const raw = git(targetDir, ['log', `${parents[0]}..${parents[1]}`, '--format=%ae%x1f%an']);
124
+ if (raw) {
125
+ const emails = new Set();
126
+ let pickedName = null;
127
+ for (const line of raw.split('\n')) {
128
+ const [email, name] = line.split('\x1f');
129
+ if (!email)
130
+ continue;
131
+ const normEmail = email.trim().toLowerCase();
132
+ if (normEmail.length > 0)
133
+ emails.add(normEmail);
134
+ if (!pickedName && normEmail !== currentUserEmail) {
135
+ pickedName = (name || fallbackName).trim();
136
+ }
137
+ }
138
+ if (emails.size > 0) {
139
+ return { emails: [...emails], authorName: pickedName || fallbackName.trim() };
140
+ }
141
+ }
142
+ }
143
+ const own = authorEmail.trim().toLowerCase();
144
+ return {
145
+ emails: own.length > 0 ? [own] : [],
146
+ authorName: fallbackName.trim(),
147
+ };
148
+ }
149
+ /**
150
+ * List merged PRs on the local default branch since `sinceSha`, attributed to
151
+ * whoever actually wrote the work (LD-04/05).
152
+ *
153
+ * Walks `git log --first-parent <sinceSha>..<defaultBranch>`. Each commit that
154
+ * parses as a PR (merge-commit or squash form) becomes one entry, attributed
155
+ * via its introduced-commit author emails. An entry is excluded only when ALL
156
+ * its introduced emails equal `currentUserEmail` (the user's own work) — so a
157
+ * PR the user merged but a teammate authored still appears.
158
+ *
159
+ * The scan is bounded (R3): at most `maxEntries * SCAN_MULTIPLIER` commits are
160
+ * inspected, so a stale marker can't enumerate an unbounded history.
161
+ *
162
+ * @param {string} targetDir
163
+ * @param {object} opts
164
+ * @param {string} opts.sinceSha baseline sha (exclusive lower bound)
165
+ * @param {string} [opts.defaultBranch] branch to walk to (default: resolved)
166
+ * @param {string} opts.currentUserEmail the user's git email (own-work filter)
167
+ * @param {number} [opts.maxEntries=7] cap on returned entries
168
+ * @returns {{ entries: Array<{ number: number, title: string, author: string }>, more_count: number }}
169
+ */
170
+ export function listMergedPullRequests(targetDir, opts = {}) {
171
+ const empty = { entries: [], more_count: 0, more_capped: false };
172
+ const sinceSha = opts.sinceSha;
173
+ const maxEntries = Number.isInteger(opts.maxEntries) && opts.maxEntries > 0 ? opts.maxEntries : 7;
174
+ const currentUserEmail = (opts.currentUserEmail || '').trim().toLowerCase();
175
+ let defaultBranch = opts.defaultBranch;
176
+ if (!defaultBranch) {
177
+ const resolved = resolveLocalDefaultBranch(targetDir);
178
+ if (!resolved)
179
+ return empty;
180
+ defaultBranch = resolved.branch;
181
+ }
182
+ if (!sinceSha)
183
+ return empty;
184
+ if (!/^[0-9a-f]{7,40}$/i.test(sinceSha))
185
+ return empty;
186
+ const SCAN_MULTIPLIER = 4;
187
+ const scanCap = maxEntries * SCAN_MULTIPLIER;
188
+ // One commit per record, fields separated by \x1f, records by \x1e.
189
+ // %H sha · %P parents · %an author name · %ae author email · %s subject · %b body
190
+ const FIELD = '\x1f';
191
+ const RECORD = '\x1e';
192
+ const format = `%H${FIELD}%P${FIELD}%an${FIELD}%ae${FIELD}%s${FIELD}%b${RECORD}`;
193
+ const raw = git(targetDir, [
194
+ 'log',
195
+ '--first-parent',
196
+ `--max-count=${scanCap}`,
197
+ `--format=${format}`,
198
+ `${sinceSha}..${defaultBranch}`,
199
+ ]);
200
+ if (!raw)
201
+ return empty;
202
+ const records = raw
203
+ .split(RECORD)
204
+ .map((r) => r.replace(/^\n+/, ''))
205
+ .filter((r) => r.trim().length > 0);
206
+ const matched = [];
207
+ for (const rec of records) {
208
+ const [sha, parentsRaw, authorName, authorEmail, subject, body] = rec.split(FIELD);
209
+ if (!sha)
210
+ continue;
211
+ const pr = parsePullRequest(subject || '', body || '');
212
+ if (!pr)
213
+ continue;
214
+ const parents = (parentsRaw || '').trim().split(/\s+/).filter(Boolean);
215
+ const { emails, authorName: resolvedAuthor } = resolveIntroducedAuthors(targetDir, parents, authorEmail || '', currentUserEmail, authorName || 'unknown');
216
+ // Exclude only when EVERY introduced commit is the current user's own.
217
+ const allOwn = currentUserEmail.length > 0 &&
218
+ emails.length > 0 &&
219
+ emails.every((e) => e === currentUserEmail);
220
+ if (allOwn)
221
+ continue;
222
+ matched.push({ number: pr.number, title: pr.title, author: resolvedAuthor });
223
+ }
224
+ const more_capped = records.length >= scanCap;
225
+ if (matched.length <= maxEntries) {
226
+ return { entries: matched, more_count: 0, more_capped };
227
+ }
228
+ return {
229
+ entries: matched.slice(0, maxEntries),
230
+ more_count: matched.length - maxEntries,
231
+ more_capped,
232
+ };
233
+ }
234
+ //# sourceMappingURL=default-branch.mjs.map