@mmnto/cli 1.52.0 → 1.53.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/github-cli-pr.d.ts.map +1 -1
- package/dist/adapters/github-cli-pr.js +3 -1
- package/dist/adapters/github-cli-pr.js.map +1 -1
- package/dist/adapters/github-cli-pr.test.js +4 -4
- package/dist/adapters/github-cli-pr.test.js.map +1 -1
- package/dist/adapters/github-cli-project.d.ts +21 -0
- package/dist/adapters/github-cli-project.d.ts.map +1 -0
- package/dist/adapters/github-cli-project.js +69 -0
- package/dist/adapters/github-cli-project.js.map +1 -0
- package/dist/adapters/github-cli.d.ts +7 -1
- package/dist/adapters/github-cli.d.ts.map +1 -1
- package/dist/adapters/github-cli.js +30 -0
- package/dist/adapters/github-cli.js.map +1 -1
- package/dist/adapters/github-cli.test.js +26 -0
- package/dist/adapters/github-cli.test.js.map +1 -1
- package/dist/adapters/issue-adapter.d.ts +18 -0
- package/dist/adapters/issue-adapter.d.ts.map +1 -1
- package/dist/adapters/pr-adapter.d.ts +2 -0
- package/dist/adapters/pr-adapter.d.ts.map +1 -1
- package/dist/commands/orient-coherence.d.ts +33 -0
- package/dist/commands/orient-coherence.d.ts.map +1 -0
- package/dist/commands/orient-coherence.js +64 -0
- package/dist/commands/orient-coherence.js.map +1 -0
- package/dist/commands/orient-coherence.test.d.ts +2 -0
- package/dist/commands/orient-coherence.test.d.ts.map +1 -0
- package/dist/commands/orient-coherence.test.js +99 -0
- package/dist/commands/orient-coherence.test.js.map +1 -0
- package/dist/commands/orient.d.ts +67 -0
- package/dist/commands/orient.d.ts.map +1 -0
- package/dist/commands/orient.js +412 -0
- package/dist/commands/orient.js.map +1 -0
- package/dist/commands/orient.test.d.ts +2 -0
- package/dist/commands/orient.test.d.ts.map +1 -0
- package/dist/commands/orient.test.js +329 -0
- package/dist/commands/orient.test.js.map +1 -0
- package/dist/help.js +1 -1
- package/dist/help.js.map +1 -1
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-cli-pr.d.ts","sourceRoot":"","sources":["../../src/adapters/github-cli-pr.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,UAAU,EACV,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"github-cli-pr.d.ts","sourceRoot":"","sources":["../../src/adapters/github-cli-pr.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,UAAU,EACV,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAgGzB,qBAAa,kBAAmB,YAAW,SAAS;IACtC,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,MAAM;IAE/B,YAAY,IAAI,kBAAkB,EAAE;IAepC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU;IAiBrC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,EAAE;IAwB9D;;;;;;;;;;OAUG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,0BAA0B,EAAE;IAkB5D,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,EAAE;IAwBlE,WAAW,CAAC,MAAM,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,MAAM;IAmBV,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAevE,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlD,OAAO,CAAC,UAAU;CAWnB"}
|
|
@@ -8,6 +8,7 @@ const GhPrListItemSchema = z.object({
|
|
|
8
8
|
number: z.number(),
|
|
9
9
|
title: z.string(),
|
|
10
10
|
headRefName: z.string(),
|
|
11
|
+
isDraft: z.boolean(),
|
|
11
12
|
});
|
|
12
13
|
const GhPrSchema = z.object({
|
|
13
14
|
number: z.number(),
|
|
@@ -90,11 +91,12 @@ export class GitHubCliPrAdapter {
|
|
|
90
91
|
this.cwd = cwd;
|
|
91
92
|
}
|
|
92
93
|
fetchOpenPRs() {
|
|
93
|
-
const prs = ghFetchAndParse(['pr', 'list', '--state', 'open', '--json', 'number,title,headRefName'], z.array(GhPrListItemSchema), 'open PRs', this.cwd);
|
|
94
|
+
const prs = ghFetchAndParse(['pr', 'list', '--state', 'open', '--json', 'number,title,headRefName,isDraft'], z.array(GhPrListItemSchema), 'open PRs', this.cwd);
|
|
94
95
|
return prs.map((pr) => ({
|
|
95
96
|
number: pr.number,
|
|
96
97
|
title: pr.title,
|
|
97
98
|
headRefName: pr.headRefName,
|
|
99
|
+
isDraft: pr.isDraft,
|
|
98
100
|
}));
|
|
99
101
|
}
|
|
100
102
|
fetchPr(prNumber) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-cli-pr.js","sourceRoot":"","sources":["../../src/adapters/github-cli-pr.ts"],"names":[],"mappings":"AAAA,mIAAmI;AAEnI,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAUvE,2DAA2D;AAE3D,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"github-cli-pr.js","sourceRoot":"","sources":["../../src/adapters/github-cli-pr.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,13 +16,13 @@ describe('GitHubCliPrAdapter', () => {
|
|
|
16
16
|
describe('fetchOpenPRs', () => {
|
|
17
17
|
it('returns mapped PR list items', () => {
|
|
18
18
|
mockedExec.mockReturnValue(JSON.stringify([
|
|
19
|
-
{ number: 1, title: 'feat: add stuff', headRefName: 'feat/add-stuff' },
|
|
20
|
-
{ number: 2, title: 'fix: bug', headRefName: 'fix/bug' },
|
|
19
|
+
{ number: 1, title: 'feat: add stuff', headRefName: 'feat/add-stuff', isDraft: false },
|
|
20
|
+
{ number: 2, title: 'fix: bug', headRefName: 'fix/bug', isDraft: true },
|
|
21
21
|
]));
|
|
22
22
|
const result = adapter.fetchOpenPRs();
|
|
23
23
|
expect(result).toEqual([
|
|
24
|
-
{ number: 1, title: 'feat: add stuff', headRefName: 'feat/add-stuff' },
|
|
25
|
-
{ number: 2, title: 'fix: bug', headRefName: 'fix/bug' },
|
|
24
|
+
{ number: 1, title: 'feat: add stuff', headRefName: 'feat/add-stuff', isDraft: false },
|
|
25
|
+
{ number: 2, title: 'fix: bug', headRefName: 'fix/bug', isDraft: true },
|
|
26
26
|
]);
|
|
27
27
|
});
|
|
28
28
|
it('returns empty array when no open PRs', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-cli-pr.test.js","sourceRoot":"","sources":["../../src/adapters/github-cli-pr.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,iEAAiE;AACjE,+CAA+C;AAC/C,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;IACjC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,YAAY,CAAgC,cAAc,CAAC,CAAC;IACpF,OAAO;QACL,GAAG,MAAM;QACT,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;KAClB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEvC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAEpD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,UAAU,CAAC,eAAe,CACxB,IAAI,CAAC,SAAS,CAAC;gBACb,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE;
|
|
1
|
+
{"version":3,"file":"github-cli-pr.test.js","sourceRoot":"","sources":["../../src/adapters/github-cli-pr.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** A single GH Project board card, reduced to the fields `totem orient` derives from. */
|
|
2
|
+
export interface BoardItem {
|
|
3
|
+
/** Board status column (e.g. 'In Progress'). Absent items default to 'Todo' at the call site. */
|
|
4
|
+
status?: string;
|
|
5
|
+
title: string;
|
|
6
|
+
/** The linked issue/PR number, when the card is backed by one (draft cards have none). */
|
|
7
|
+
contentNumber?: number;
|
|
8
|
+
/** The linked issue/PR's repo as 'owner/repo' (org boards span repos); absent for draft cards. */
|
|
9
|
+
contentRepo?: string;
|
|
10
|
+
/** The card content kind: 'Issue' | 'PullRequest' | 'DraftIssue'. */
|
|
11
|
+
contentType?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Read the in-flight items of a GH Project board for `owner` / `projectNumber`.
|
|
15
|
+
*
|
|
16
|
+
* Throws (via `ghFetchAndParse` → `handleGhError`) when the board is
|
|
17
|
+
* inaccessible / the project is absent / the JSON shape is unexpected; the
|
|
18
|
+
* `orient` command catches that and renders a per-section `{ error }` envelope.
|
|
19
|
+
*/
|
|
20
|
+
export declare function fetchBoardItems(owner: string, projectNumber: number, cwd: string): BoardItem[];
|
|
21
|
+
//# sourceMappingURL=github-cli-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-cli-project.d.ts","sourceRoot":"","sources":["../../src/adapters/github-cli-project.ts"],"names":[],"mappings":"AA8CA,yFAAyF;AACzF,MAAM,WAAW,SAAS;IACxB,iGAAiG;IACjG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,0FAA0F;IAC1F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kGAAkG;IAClG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAwB9F"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// totem-context: fetchBoardItems is synchronous — ghFetchAndParse uses safeExec (sync). Do not flag missing await.
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { ghFetchAndParse } from './gh-utils.js';
|
|
4
|
+
// ─── Board (GH Project) reader ──────────────────────────
|
|
5
|
+
//
|
|
6
|
+
// No existing adapter covers `gh project item-list`; `totem orient` is the
|
|
7
|
+
// first consumer (mmnto-ai/totem#2044). A GH Project lives under an `owner`
|
|
8
|
+
// and a numeric project id, neither derivable from the current repo alone —
|
|
9
|
+
// owner is derived from `gh repo view`, the project number from
|
|
10
|
+
// `orient.projectNumber` config / `TOTEM_ORIENT_PROJECT` env. This reader is
|
|
11
|
+
// Zod-validated so an unexpected shape surfaces as a TotemParseError (the
|
|
12
|
+
// caller maps that to a per-section `{ error }`, never a silent empty —
|
|
13
|
+
// Tenet 4).
|
|
14
|
+
// `gh project item-list --format json` returns extra columns (assignees,
|
|
15
|
+
// custom fields, …); `.passthrough()` tolerates them and we only validate the
|
|
16
|
+
// fields orient consumes. `content` is absent for draft cards (no linked
|
|
17
|
+
// issue/PR), so it is optional and its fields are optional within it.
|
|
18
|
+
// `repository` ('owner/repo') + `type` ('Issue' | 'PullRequest' | 'DraftIssue')
|
|
19
|
+
// are load-bearing for the coherence check: GH Projects are commonly org-level
|
|
20
|
+
// boards spanning multiple repos, so the drift predicate MUST scope to this
|
|
21
|
+
// repo's Issue cards or it false-flags every healthy cross-repo / PR card.
|
|
22
|
+
const GhProjectItemSchema = z
|
|
23
|
+
.object({
|
|
24
|
+
status: z.string().optional(),
|
|
25
|
+
title: z.string(),
|
|
26
|
+
content: z
|
|
27
|
+
.object({
|
|
28
|
+
number: z.number().optional(),
|
|
29
|
+
repository: z.string().optional(),
|
|
30
|
+
type: z.string().optional(),
|
|
31
|
+
})
|
|
32
|
+
.passthrough()
|
|
33
|
+
.optional(),
|
|
34
|
+
})
|
|
35
|
+
.passthrough();
|
|
36
|
+
const GhProjectItemListSchema = z
|
|
37
|
+
.object({
|
|
38
|
+
items: z.array(GhProjectItemSchema),
|
|
39
|
+
})
|
|
40
|
+
.passthrough();
|
|
41
|
+
const BOARD_ITEM_LIMIT = 200;
|
|
42
|
+
/**
|
|
43
|
+
* Read the in-flight items of a GH Project board for `owner` / `projectNumber`.
|
|
44
|
+
*
|
|
45
|
+
* Throws (via `ghFetchAndParse` → `handleGhError`) when the board is
|
|
46
|
+
* inaccessible / the project is absent / the JSON shape is unexpected; the
|
|
47
|
+
* `orient` command catches that and renders a per-section `{ error }` envelope.
|
|
48
|
+
*/
|
|
49
|
+
export function fetchBoardItems(owner, projectNumber, cwd) {
|
|
50
|
+
const parsed = ghFetchAndParse([
|
|
51
|
+
'project',
|
|
52
|
+
'item-list',
|
|
53
|
+
String(projectNumber),
|
|
54
|
+
'--owner',
|
|
55
|
+
owner,
|
|
56
|
+
'--format',
|
|
57
|
+
'json',
|
|
58
|
+
'--limit',
|
|
59
|
+
String(BOARD_ITEM_LIMIT),
|
|
60
|
+
], GhProjectItemListSchema, `GH Project board ${owner}/${projectNumber}`, cwd);
|
|
61
|
+
return parsed.items.map((i) => ({
|
|
62
|
+
status: i.status,
|
|
63
|
+
title: i.title,
|
|
64
|
+
contentNumber: i.content?.number,
|
|
65
|
+
contentRepo: i.content?.repository,
|
|
66
|
+
contentType: i.content?.type,
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=github-cli-project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-cli-project.js","sourceRoot":"","sources":["../../src/adapters/github-cli-project.ts"],"names":[],"mappings":"AAAA,mHAAmH;AAEnH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,2DAA2D;AAC3D,EAAE;AACF,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,gEAAgE;AAChE,6EAA6E;AAC7E,0EAA0E;AAC1E,wEAAwE;AACxE,YAAY;AAEZ,yEAAyE;AACzE,8EAA8E;AAC9E,yEAAyE;AACzE,sEAAsE;AACtE,gFAAgF;AAChF,+EAA+E;AAC/E,4EAA4E;AAC5E,2EAA2E;AAC3E,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC5B,CAAC;SACD,WAAW,EAAE;SACb,QAAQ,EAAE;CACd,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,uBAAuB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;CACpC,CAAC;KACD,WAAW,EAAE,CAAC;AAejB,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,aAAqB,EAAE,GAAW;IAC/E,MAAM,MAAM,GAAG,eAAe,CAC5B;QACE,SAAS;QACT,WAAW;QACX,MAAM,CAAC,aAAa,CAAC;QACrB,SAAS;QACT,KAAK;QACL,UAAU;QACV,MAAM;QACN,SAAS;QACT,MAAM,CAAC,gBAAgB,CAAC;KACzB,EACD,uBAAuB,EACvB,oBAAoB,KAAK,IAAI,aAAa,EAAE,EAC5C,GAAG,CACJ,CAAC;IACF,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9B,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM;QAChC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU;QAClC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI;KAC7B,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IssueAdapter, StandardIssue, StandardIssueListItem } from './issue-adapter.js';
|
|
1
|
+
import type { IssueAdapter, StandardIssue, StandardIssueListItem, StandardIssueWithBody } from './issue-adapter.js';
|
|
2
2
|
export interface ClosedIssueListItem {
|
|
3
3
|
number: number;
|
|
4
4
|
title: string;
|
|
@@ -19,5 +19,11 @@ export declare class GitHubCliAdapter implements IssueAdapter {
|
|
|
19
19
|
*/
|
|
20
20
|
fetchClosedIssues(limit?: number, sinceTag?: string): ClosedIssueListItem[];
|
|
21
21
|
fetchOpenIssues(limit?: number): StandardIssueListItem[];
|
|
22
|
+
/**
|
|
23
|
+
* Fetch open issues including each issue's `body` (for `totem orient`'s
|
|
24
|
+
* epic→child grouping). Dedicated method rather than widening
|
|
25
|
+
* `fetchOpenIssues`, whose schema `triage` depends on.
|
|
26
|
+
*/
|
|
27
|
+
fetchOpenIssuesWithBody(limit?: number): StandardIssueWithBody[];
|
|
22
28
|
}
|
|
23
29
|
//# sourceMappingURL=github-cli.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-cli.d.ts","sourceRoot":"","sources":["../../src/adapters/github-cli.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"github-cli.d.ts","sourceRoot":"","sources":["../../src/adapters/github-cli.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAoCD,qBAAa,gBAAiB,YAAW,YAAY;IAQjD,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,IAAI,CAAC;IARf,OAAO,CAAC,QAAQ,CAAW;IAE3B;;;OAGG;gBAEO,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,YAAA;IAKvB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa;IAwB9C;;OAEG;IACH,iBAAiB,CAAC,KAAK,GAAE,MAA4B,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,mBAAmB,EAAE;IAkChG,eAAe,CAAC,KAAK,GAAE,MAA4B,GAAG,qBAAqB,EAAE;IA0B7E;;;;OAIG;IACH,uBAAuB,CAAC,KAAK,GAAE,MAA4B,GAAG,qBAAqB,EAAE;CAwBtF"}
|
|
@@ -16,6 +16,12 @@ const GhIssueListItemSchema = z.object({
|
|
|
16
16
|
labels: z.array(z.object({ name: z.string() })),
|
|
17
17
|
updatedAt: z.string().datetime(),
|
|
18
18
|
});
|
|
19
|
+
const GhIssueWithBodyListItemSchema = z.object({
|
|
20
|
+
number: z.number(),
|
|
21
|
+
title: z.string(),
|
|
22
|
+
body: z.string().nullable(),
|
|
23
|
+
labels: z.array(z.object({ name: z.string() })),
|
|
24
|
+
});
|
|
19
25
|
const GhClosedIssueListItemSchema = z.object({
|
|
20
26
|
number: z.number(),
|
|
21
27
|
title: z.string(),
|
|
@@ -103,5 +109,29 @@ export class GitHubCliAdapter {
|
|
|
103
109
|
repo: this.repo,
|
|
104
110
|
}));
|
|
105
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Fetch open issues including each issue's `body` (for `totem orient`'s
|
|
114
|
+
* epic→child grouping). Dedicated method rather than widening
|
|
115
|
+
* `fetchOpenIssues`, whose schema `triage` depends on.
|
|
116
|
+
*/
|
|
117
|
+
fetchOpenIssuesWithBody(limit = DEFAULT_ISSUE_LIMIT) {
|
|
118
|
+
const issues = ghFetchAndParse([
|
|
119
|
+
...this.repoFlag,
|
|
120
|
+
'issue',
|
|
121
|
+
'list',
|
|
122
|
+
'--state',
|
|
123
|
+
'open',
|
|
124
|
+
'--json',
|
|
125
|
+
'number,title,body,labels',
|
|
126
|
+
'--limit',
|
|
127
|
+
String(limit),
|
|
128
|
+
], z.array(GhIssueWithBodyListItemSchema), 'open issues with body', this.cwd);
|
|
129
|
+
return issues.map((i) => ({
|
|
130
|
+
number: i.number,
|
|
131
|
+
title: i.title,
|
|
132
|
+
body: i.body ?? '',
|
|
133
|
+
labels: i.labels.map((l) => l.name),
|
|
134
|
+
}));
|
|
135
|
+
}
|
|
106
136
|
}
|
|
107
137
|
//# sourceMappingURL=github-cli.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-cli.js","sourceRoot":"","sources":["../../src/adapters/github-cli.ts"],"names":[],"mappings":"AAAA,gHAAgH;AAEhH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"github-cli.js","sourceRoot":"","sources":["../../src/adapters/github-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,5 +89,31 @@ describe('GitHubCliAdapter', () => {
|
|
|
89
89
|
expect(() => adapter.fetchOpenIssues()).toThrow('GitHub CLI (gh) is required');
|
|
90
90
|
});
|
|
91
91
|
});
|
|
92
|
+
describe('fetchOpenIssuesWithBody', () => {
|
|
93
|
+
it('returns mapped issue items including body', () => {
|
|
94
|
+
mockedExec.mockReturnValue(JSON.stringify([
|
|
95
|
+
{
|
|
96
|
+
number: 10,
|
|
97
|
+
title: 'Epic',
|
|
98
|
+
body: 'parent stuff',
|
|
99
|
+
labels: [{ name: 'type: epic' }],
|
|
100
|
+
},
|
|
101
|
+
{ number: 11, title: 'Child', body: '**Parent:** #10', labels: [] },
|
|
102
|
+
]));
|
|
103
|
+
const result = adapter.fetchOpenIssuesWithBody();
|
|
104
|
+
expect(result).toEqual([
|
|
105
|
+
{ number: 10, title: 'Epic', body: 'parent stuff', labels: ['type: epic'] },
|
|
106
|
+
{ number: 11, title: 'Child', body: '**Parent:** #10', labels: [] },
|
|
107
|
+
]);
|
|
108
|
+
});
|
|
109
|
+
it('normalizes null body to empty string', () => {
|
|
110
|
+
mockedExec.mockReturnValue(JSON.stringify([{ number: 1, title: 'No body', body: null, labels: [] }]));
|
|
111
|
+
expect(adapter.fetchOpenIssuesWithBody()[0].body).toBe('');
|
|
112
|
+
});
|
|
113
|
+
it('returns empty array when no open issues', () => {
|
|
114
|
+
mockedExec.mockReturnValue('[]');
|
|
115
|
+
expect(adapter.fetchOpenIssuesWithBody()).toEqual([]);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
92
118
|
});
|
|
93
119
|
//# sourceMappingURL=github-cli.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-cli.test.js","sourceRoot":"","sources":["../../src/adapters/github-cli.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"github-cli.test.js","sourceRoot":"","sources":["../../src/adapters/github-cli.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,8 +19,26 @@ export interface StandardIssueListItem {
|
|
|
19
19
|
/** The owner/repo this issue belongs to (e.g., 'mmnto-ai/totem'). Omitted for single-repo setups. */
|
|
20
20
|
repo?: string;
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Open issue carrying its `body`, for consumers that derive structure from the
|
|
24
|
+
* issue text (e.g. `totem orient`'s epic→child grouping matches `**Parent:** #N`
|
|
25
|
+
* in the body). Distinct from `StandardIssueListItem` because `fetchOpenIssues`
|
|
26
|
+
* deliberately omits `body` (and `updatedAt` is not needed here) — widening the
|
|
27
|
+
* shared list shape would burden every existing caller (e.g. `triage`).
|
|
28
|
+
*/
|
|
29
|
+
export interface StandardIssueWithBody {
|
|
30
|
+
number: number;
|
|
31
|
+
title: string;
|
|
32
|
+
body: string;
|
|
33
|
+
labels: string[];
|
|
34
|
+
}
|
|
22
35
|
export interface IssueAdapter {
|
|
23
36
|
fetchIssue(issueNumber: number): StandardIssue;
|
|
24
37
|
fetchOpenIssues(limit?: number): StandardIssueListItem[];
|
|
38
|
+
/**
|
|
39
|
+
* Fetch open issues including each issue's `body`. Optional so adapters that
|
|
40
|
+
* don't support body-bearing list queries need not implement it.
|
|
41
|
+
*/
|
|
42
|
+
fetchOpenIssuesWithBody?(limit?: number): StandardIssueWithBody[];
|
|
25
43
|
}
|
|
26
44
|
//# sourceMappingURL=issue-adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/issue-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,qGAAqG;IACrG,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,qGAAqG;IACrG,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/C,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"issue-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/issue-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,qGAAqG;IACrG,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,qGAAqG;IACrG,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/C,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAAC;IACzD;;;OAGG;IACH,uBAAuB,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAAC;CACnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/pr-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"pr-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/pr-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { BoardItem } from '../adapters/github-cli-project.js';
|
|
2
|
+
/** A board card flagged as out of sync with the open-issue set. */
|
|
3
|
+
export interface BoardIssueCoherenceFlag {
|
|
4
|
+
boardItemTitle: string;
|
|
5
|
+
/** The card's board status (always an active status — terminal cards are never flagged). */
|
|
6
|
+
boardStatus: string;
|
|
7
|
+
/** The linked issue number that is closed or absent from the open set. */
|
|
8
|
+
issueNumber: number;
|
|
9
|
+
kind: 'issue-closed-or-absent';
|
|
10
|
+
}
|
|
11
|
+
export declare const TERMINAL_BOARD_STATUS: RegExp;
|
|
12
|
+
/** A board item is active when its status is not a terminal/reference status. Absent status ⇒ 'Todo' ⇒ inactive. */
|
|
13
|
+
export declare function isActiveBoardItem(item: BoardItem): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Flag active board cards whose linked issue is absent from THIS repo's open-issue set.
|
|
16
|
+
*
|
|
17
|
+
* Scoped to the current repo (`localSlug`) because GH Projects are commonly
|
|
18
|
+
* ORG-level boards spanning multiple repos: a card for another repo's issue —
|
|
19
|
+
* or a PR card, whose number lives in a different namespace than the issue set —
|
|
20
|
+
* compared against this repo's open-ISSUE set would false-flag every healthy
|
|
21
|
+
* cross-repo/PR card as "drift". A coherence sensor that cries wolf on healthy
|
|
22
|
+
* cards is worse than none, so the gate is deliberately conservative (derive no
|
|
23
|
+
* coherence rather than wrong coherence):
|
|
24
|
+
* - ONLY active-status cards (terminal-status cards are never flagged).
|
|
25
|
+
* - ONLY cards whose `contentRepo` is THIS repo; cross-repo / repo-unknown cards skipped.
|
|
26
|
+
* - ONLY `Issue`-type cards; PR cards and draft cards (no number) skipped.
|
|
27
|
+
* - Pure: derives solely from its arguments — issues NO `gh` calls.
|
|
28
|
+
*
|
|
29
|
+
* @param localSlug current repo as `owner/repo`; null (repo undetermined) ⇒ NO
|
|
30
|
+
* coherence is derived, because an unscoped check can only be wrong.
|
|
31
|
+
*/
|
|
32
|
+
export declare function flagBoardIssueDrift(boardItems: BoardItem[], openIssueNumbers: ReadonlySet<number>, localSlug: string | null): BoardIssueCoherenceFlag[];
|
|
33
|
+
//# sourceMappingURL=orient-coherence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orient-coherence.d.ts","sourceRoot":"","sources":["../../src/commands/orient-coherence.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAEnE,mEAAmE;AACnE,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,4FAA4F;IAC5F,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,wBAAwB,CAAC;CAChC;AAMD,eAAO,MAAM,qBAAqB,QAAyC,CAAC;AAE5E,oHAAoH;AACpH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAE1D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,SAAS,EAAE,EACvB,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,EACrC,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,uBAAuB,EAAE,CAqB3B"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Pure board↔issue coherence predicate for `totem orient` (mmnto-ai/totem#2044).
|
|
2
|
+
//
|
|
3
|
+
// A board card in an ACTIVE status whose linked issue is NOT in the set of open
|
|
4
|
+
// issues is "drift" — the issue was closed (or never opened) but the card was
|
|
5
|
+
// left in flight. This is the one NEW derived signal orient adds on top of the
|
|
6
|
+
// primitives. It is intentionally PURE and separately unit-testable: it derives
|
|
7
|
+
// ONLY from the board items + the open-issue numbers orient already fetched, so
|
|
8
|
+
// it issues ZERO extra `gh` calls.
|
|
9
|
+
// Board "in-flight" = NOT a terminal/reference status. Shared by the command's
|
|
10
|
+
// board filter AND this coherence predicate so the human + --json surfaces and
|
|
11
|
+
// the drift check all honor ONE definition of "active". Ported from the seed
|
|
12
|
+
// (tools/orient.cjs) TERMINAL_STATUS.
|
|
13
|
+
export const TERMINAL_BOARD_STATUS = /^(todo|done|closed|informs|backlog)/i;
|
|
14
|
+
/** A board item is active when its status is not a terminal/reference status. Absent status ⇒ 'Todo' ⇒ inactive. */
|
|
15
|
+
export function isActiveBoardItem(item) {
|
|
16
|
+
return !TERMINAL_BOARD_STATUS.test(item.status || 'Todo');
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Flag active board cards whose linked issue is absent from THIS repo's open-issue set.
|
|
20
|
+
*
|
|
21
|
+
* Scoped to the current repo (`localSlug`) because GH Projects are commonly
|
|
22
|
+
* ORG-level boards spanning multiple repos: a card for another repo's issue —
|
|
23
|
+
* or a PR card, whose number lives in a different namespace than the issue set —
|
|
24
|
+
* compared against this repo's open-ISSUE set would false-flag every healthy
|
|
25
|
+
* cross-repo/PR card as "drift". A coherence sensor that cries wolf on healthy
|
|
26
|
+
* cards is worse than none, so the gate is deliberately conservative (derive no
|
|
27
|
+
* coherence rather than wrong coherence):
|
|
28
|
+
* - ONLY active-status cards (terminal-status cards are never flagged).
|
|
29
|
+
* - ONLY cards whose `contentRepo` is THIS repo; cross-repo / repo-unknown cards skipped.
|
|
30
|
+
* - ONLY `Issue`-type cards; PR cards and draft cards (no number) skipped.
|
|
31
|
+
* - Pure: derives solely from its arguments — issues NO `gh` calls.
|
|
32
|
+
*
|
|
33
|
+
* @param localSlug current repo as `owner/repo`; null (repo undetermined) ⇒ NO
|
|
34
|
+
* coherence is derived, because an unscoped check can only be wrong.
|
|
35
|
+
*/
|
|
36
|
+
export function flagBoardIssueDrift(boardItems, openIssueNumbers, localSlug) {
|
|
37
|
+
const flags = [];
|
|
38
|
+
if (!localSlug)
|
|
39
|
+
return flags;
|
|
40
|
+
for (const item of boardItems) {
|
|
41
|
+
if (!isActiveBoardItem(item))
|
|
42
|
+
continue;
|
|
43
|
+
const issueNumber = item.contentNumber;
|
|
44
|
+
if (issueNumber === undefined)
|
|
45
|
+
continue;
|
|
46
|
+
// Org-board guard: only THIS repo's Issue cards can drift against its issue set.
|
|
47
|
+
// Case-folded compare — GitHub owner/repo slugs are case-insensitive, so a casing
|
|
48
|
+
// skew between `gh repo view` and `gh project item-list` must not drop a valid check.
|
|
49
|
+
if (!item.contentRepo || item.contentRepo.toLowerCase() !== localSlug.toLowerCase())
|
|
50
|
+
continue;
|
|
51
|
+
if (item.contentType !== 'Issue')
|
|
52
|
+
continue;
|
|
53
|
+
if (openIssueNumbers.has(issueNumber))
|
|
54
|
+
continue;
|
|
55
|
+
flags.push({
|
|
56
|
+
boardItemTitle: item.title,
|
|
57
|
+
boardStatus: item.status || 'Todo',
|
|
58
|
+
issueNumber,
|
|
59
|
+
kind: 'issue-closed-or-absent',
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return flags;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=orient-coherence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orient-coherence.js","sourceRoot":"","sources":["../../src/commands/orient-coherence.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,+EAA+E;AAC/E,gFAAgF;AAChF,gFAAgF;AAChF,mCAAmC;AAcnC,+EAA+E;AAC/E,+EAA+E;AAC/E,6EAA6E;AAC7E,sCAAsC;AACtC,MAAM,CAAC,MAAM,qBAAqB,GAAG,sCAAsC,CAAC;AAE5E,oHAAoH;AACpH,MAAM,UAAU,iBAAiB,CAAC,IAAe;IAC/C,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAuB,EACvB,gBAAqC,EACrC,SAAwB;IAExB,MAAM,KAAK,GAA8B,EAAE,CAAC;IAC5C,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAAE,SAAS;QACvC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;QACvC,IAAI,WAAW,KAAK,SAAS;YAAE,SAAS;QACxC,iFAAiF;QACjF,kFAAkF;QAClF,sFAAsF;QACtF,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE;YAAE,SAAS;QAC9F,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO;YAAE,SAAS;QAC3C,IAAI,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC;YAAE,SAAS;QAChD,KAAK,CAAC,IAAI,CAAC;YACT,cAAc,EAAE,IAAI,CAAC,KAAK;YAC1B,WAAW,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM;YAClC,WAAW;YACX,IAAI,EAAE,wBAAwB;SAC/B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orient-coherence.test.d.ts","sourceRoot":"","sources":["../../src/commands/orient-coherence.test.ts"],"names":[],"mappings":""}
|