@floh-solutions/pharos-cli 0.23.0 → 0.25.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 (49) hide show
  1. package/README.md +409 -5
  2. package/dist/capabilities.d.ts.map +1 -1
  3. package/dist/capabilities.js +23 -0
  4. package/dist/capabilities.js.map +1 -1
  5. package/dist/cli.d.ts +4 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +362 -36
  8. package/dist/cli.js.map +1 -1
  9. package/dist/commands/comment-github.d.ts +138 -0
  10. package/dist/commands/comment-github.d.ts.map +1 -0
  11. package/dist/commands/comment-github.js +427 -0
  12. package/dist/commands/comment-github.js.map +1 -0
  13. package/dist/commands/comment.d.ts.map +1 -1
  14. package/dist/commands/comment.js +114 -19
  15. package/dist/commands/comment.js.map +1 -1
  16. package/dist/commands/doctor.d.ts +71 -2
  17. package/dist/commands/doctor.d.ts.map +1 -1
  18. package/dist/commands/doctor.js +414 -8
  19. package/dist/commands/doctor.js.map +1 -1
  20. package/dist/commands/issue.d.ts +75 -0
  21. package/dist/commands/issue.d.ts.map +1 -0
  22. package/dist/commands/issue.js +2466 -0
  23. package/dist/commands/issue.js.map +1 -0
  24. package/dist/commands/setup.d.ts +6 -0
  25. package/dist/commands/setup.d.ts.map +1 -1
  26. package/dist/commands/setup.js +114 -0
  27. package/dist/commands/setup.js.map +1 -1
  28. package/dist/half-link.d.ts +157 -0
  29. package/dist/half-link.d.ts.map +1 -0
  30. package/dist/half-link.js +257 -0
  31. package/dist/half-link.js.map +1 -0
  32. package/dist/issue-scan.d.ts +383 -0
  33. package/dist/issue-scan.d.ts.map +1 -0
  34. package/dist/issue-scan.js +455 -0
  35. package/dist/issue-scan.js.map +1 -0
  36. package/dist/output.d.ts +18 -1
  37. package/dist/output.d.ts.map +1 -1
  38. package/dist/output.js +293 -0
  39. package/dist/output.js.map +1 -1
  40. package/dist/session.d.ts +101 -2
  41. package/dist/session.d.ts.map +1 -1
  42. package/dist/session.js +132 -11
  43. package/dist/session.js.map +1 -1
  44. package/dist/target.d.ts +40 -4
  45. package/dist/target.d.ts.map +1 -1
  46. package/dist/target.js +14 -3
  47. package/dist/target.js.map +1 -1
  48. package/package.json +3 -2
  49. package/skill/SKILL.md +422 -11
@@ -1,8 +1,9 @@
1
1
  import { emit, usageError } from "../output.js";
2
2
  import { approve } from "../session.js";
3
3
  import { describeTarget, parseTarget } from "../target.js";
4
+ import { githubHide, githubList, githubPin, githubReact, githubReactors, githubRefuseAdd, githubRemove, githubEdit, hideReasonArgument, noSuchThingOnAzureDevOps, } from "./comment-github.js";
4
5
  /**
5
- * `pharos comment …` — the discussion, on either surface.
6
+ * `pharos comment …` — the discussion, on any of its three surfaces.
6
7
  *
7
8
  * **Wiki comments exist in no other tool.** The Azure DevOps MCP server ships
8
9
  * none of these verbs for a wiki page — not list, not add, not edit, not
@@ -10,19 +11,43 @@ import { describeTarget, parseTarget } from "../target.js";
10
11
  * comments it has add and update only, so delete and reactions are also
11
12
  * reachable from nowhere else.
12
13
  *
13
- * The two surfaces behave differently in ways that would bite a caller writing
14
- * this by hand, and each difference is handled on its own side rather than
15
- * assumed away:
14
+ * The surfaces behave differently in ways that would bite a caller writing this
15
+ * by hand, and each difference is handled on its own side rather than assumed
16
+ * away:
16
17
  *
17
- * | | work item | wiki page |
18
- * |---|---|---|
19
- * | keyed on | the work item id | the page's NUMERIC id, not its path |
20
- * | `includeDeleted` | honoured | ignored — deleted comments come back regardless |
21
- * | second delete | 404 | 500 |
22
- * | reactions api-version | `7.2-preview.1` | `7.1-preview.1` |
18
+ * | | work item | wiki page | GitHub issue |
19
+ * |---|---|---|---|
20
+ * | keyed on | the work item id | the page's NUMERIC id, not its path | the issue coordinate |
21
+ * | `includeDeleted` | honoured | ignored — deleted comments come back regardless | n/a |
22
+ * | second delete | 404 | 500 | 404, and it means success |
23
+ * | reactions api-version | `7.2-preview.1` | `7.1-preview.1` | n/a |
24
+ * | reaction vocabulary | like/dislike/heart/hooray/smile/confused | same | eight, and `+1` is one of them |
25
+ * | hide, pin | no such concept | no such concept | GraphQL only — no REST route exists |
23
26
  *
24
- * Both are `swallowed`/`filtered`/`pinned` inside `ado-core`; the table is here
25
- * because the temptation when reading this file is to unify the two branches.
27
+ * The first two are `swallowed`/`filtered`/`pinned` inside `ado-core`; the
28
+ * GitHub arm lives in `comment-github.ts` over `gh-core`. The table is here
29
+ * because the temptation when reading this file is to unify the branches.
30
+ *
31
+ * ## Why GitHub is a third target rather than `pharos issue comment`
32
+ *
33
+ * Because `Target` already existed. This file has always dispatched on "which
34
+ * kind of thing is this comment attached to", and a GitHub issue is a third
35
+ * answer to a question that was already being asked. The alternative spells
36
+ * `edit`, `delete`, `react` and `unreact` a second time under another noun,
37
+ * over another engine — the drifting-second-implementation shape `AGENTS.md`
38
+ * names three separate times, and the one it says nobody looks at.
39
+ *
40
+ * ## `add` is REFUSED on a GitHub issue, and that refusal is the design
41
+ *
42
+ * Plan §8: do not rebuild `gh`. Posting a plain comment is `gh issue comment`,
43
+ * and posting one that reaches the reporter *and* the board is
44
+ * `pharos issue say`. A `pharos comment add` on a GitHub issue would be a third
45
+ * thing — a comment on an adopted issue that the work item never hears about —
46
+ * which is precisely the asymmetry `say` exists to prevent. So it is refused
47
+ * with both alternatives named. See {@link githubRefuseAdd}.
48
+ *
49
+ * Everything else here acts on a comment that already exists, which is work
50
+ * neither `gh` nor `say` does at all.
26
51
  */
27
52
  const REACTIONS = [
28
53
  "like",
@@ -32,35 +57,81 @@ const REACTIONS = [
32
57
  "smile",
33
58
  "confused",
34
59
  ];
60
+ const VERBS = [
61
+ "list",
62
+ "add",
63
+ "edit",
64
+ "delete",
65
+ "react",
66
+ "unreact",
67
+ "reactors",
68
+ "hide",
69
+ "unhide",
70
+ "pin",
71
+ "unpin",
72
+ ];
35
73
  export async function runComment(io, session, positionals, input) {
36
74
  const verb = positionals[0];
37
75
  if (verb === undefined) {
38
- throw usageError("`pharos comment <list|add|edit|delete|react|unreact> <target> …`.");
76
+ throw usageError(`\`pharos comment <${VERBS.join("|")}> <target> …\`.`, { verbs: VERBS });
39
77
  }
40
78
  const rawTarget = positionals[1];
41
79
  if (rawTarget === undefined) {
42
- throw usageError(`Which thing? \`pharos comment ${verb} <target>\` — a work item id (210) or a wiki page `
43
- + "path (/Plans/Foo).");
80
+ throw usageError(`Which thing? \`pharos comment ${verb} <target>\` — a work item id (210), a wiki page `
81
+ + "path (/Plans/Foo), or a GitHub issue (contoso/widgets#45).");
44
82
  }
45
83
  const target = parseTarget(rawTarget);
46
84
  const rest = positionals.slice(2);
47
85
  switch (verb) {
48
86
  case "list":
87
+ if (target.kind === "githubIssue")
88
+ return githubList(io, session, target.issue);
49
89
  return list(io, session, target);
50
90
  case "add":
91
+ if (target.kind === "githubIssue")
92
+ return githubRefuseAdd(target.issue);
51
93
  return add(io, session, target, textFrom(rest[0], input.text));
52
94
  case "edit":
95
+ if (target.kind === "githubIssue") {
96
+ return githubEdit(io, session, target.issue, handle(rest[0]), textFrom(rest[1], input.text));
97
+ }
53
98
  return edit(io, session, target, commentId(rest[0]), textFrom(rest[1], input.text));
54
99
  case "delete":
100
+ if (target.kind === "githubIssue")
101
+ return githubRemove(io, session, target.issue, handle(rest[0]));
55
102
  return remove(io, session, target, commentId(rest[0]));
56
103
  case "react":
57
- return react(io, session, target, commentId(rest[0]), reactionType(rest[1]), true);
58
- case "unreact":
59
- return react(io, session, target, commentId(rest[0]), reactionType(rest[1]), false);
104
+ case "unreact": {
105
+ const on = verb === "react";
106
+ if (target.kind === "githubIssue") {
107
+ return githubReact(io, session, target.issue, handle(rest[0]), rest[1], on);
108
+ }
109
+ return react(io, session, target, commentId(rest[0]), reactionType(rest[1]), on);
110
+ }
60
111
  case "reactors":
112
+ if (target.kind === "githubIssue") {
113
+ return githubReactors(io, session, target.issue, handle(rest[0]), rest[1]);
114
+ }
61
115
  return reactors(io, session, target, commentId(rest[0]), reactionType(rest[1]));
116
+ // Hide and pin exist on GitHub and nowhere else — Azure DevOps has no such
117
+ // field and no such endpoint, so the refusal says that rather than letting
118
+ // it read as a verb this CLI has not got round to.
119
+ case "hide":
120
+ case "unhide": {
121
+ if (target.kind !== "githubIssue")
122
+ throw noSuchThingOnAzureDevOps(target, verb);
123
+ return githubHide(io, session, target.issue, handle(rest[0]), verb === "hide" ? hideReasonArgument(rest[1]) : undefined);
124
+ }
125
+ case "pin":
126
+ case "unpin": {
127
+ if (target.kind !== "githubIssue")
128
+ throw noSuchThingOnAzureDevOps(target, verb);
129
+ return githubPin(io, session, target.issue, handle(rest[0]), verb === "pin");
130
+ }
62
131
  default:
63
- throw usageError(`Unknown comment verb "${verb}". Try list, add, edit, delete, react, unreact or reactors.`);
132
+ throw usageError(`Unknown comment verb "${verb}". Try ${VERBS.join(", ")}.`, {
133
+ verbs: VERBS,
134
+ });
64
135
  }
65
136
  }
66
137
  async function list(io, session, target) {
@@ -206,6 +277,30 @@ function commentId(raw) {
206
277
  }
207
278
  return Number(raw);
208
279
  }
280
+ /**
281
+ * A GitHub comment, named by **either** of its two ids.
282
+ *
283
+ * GitHub gives a comment a numeric REST id and a string node id, and neither is
284
+ * derivable from the other: edit, delete and reactions address the number,
285
+ * while hide and pin take the node. `pharos comment list` prints both, so the
286
+ * normal agent flow — list, then act — already holds whichever one is needed.
287
+ *
288
+ * Taking either here means that flow never needs a lookup: pass the number and
289
+ * a verb that wants the node resolves it with one extra read; pass the node
290
+ * back and nothing is spent. Anything not all-digits is treated as a node id
291
+ * (they are opaque strings, currently `IC_…`, and this does not hard-code that
292
+ * prefix — GitHub has changed node id formats before).
293
+ */
294
+ function handle(raw) {
295
+ if (raw === undefined || raw.trim() === "") {
296
+ throw usageError("Which comment? Expected a comment id — the number or the node id, both of which "
297
+ + "`pharos comment list <owner/name#n>` prints.");
298
+ }
299
+ const value = raw.trim();
300
+ return /^\d+$/.test(value)
301
+ ? { kind: "rest", id: Number(value) }
302
+ : { kind: "node", nodeId: value };
303
+ }
209
304
  function reactionType(raw) {
210
305
  if (raw === undefined) {
211
306
  throw usageError(`Which reaction? One of: ${REACTIONS.join(", ")}.`);
@@ -1 +1 @@
1
- {"version":3,"file":"comment.js","sourceRoot":"","sources":["../../src/commands/comment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comment.js","sourceRoot":"","sources":["../../src/commands/comment.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { GhAccount } from "@floh-solutions/gh-core";
1
2
  import { type ExitCode, type Io } from "../output.js";
2
3
  /**
3
4
  * `pharos doctor` — what is installed, what is missing, and what each missing
@@ -34,12 +35,80 @@ import { type ExitCode, type Io } from "../output.js";
34
35
  * prose, and carries the `install` command for this platform. A GUI that has to
35
36
  * parse English to know what happened is a GUI that will eventually be wrong.
36
37
  *
37
- * Read-only and offline by default: it spawns version probes and touches the
38
- * network only for `--verify`.
38
+ * ## Read-only, and offline apart from one probe that is named
39
+ *
40
+ * Everything here is a version probe or a file read, and `--verify` is what
41
+ * makes real API calls. **The one exception is `gh auth status`**, and it is
42
+ * stated rather than glossed: measured on gh 2.87.3, it validates every account
43
+ * token against github.com (0.696s online, 0.045s with the host unreachable).
44
+ * There is no flag that turns that off, and it only runs when `gh` is actually
45
+ * installed, so a machine without the GitHub bridge pays nothing.
46
+ *
47
+ * That measurement has a sharper consequence than the latency, and `gh-auth`
48
+ * below is built around it — see {@link githubChecks}.
39
49
  */
40
50
  export interface DoctorCommandOptions {
41
51
  /** Also prove the token against Azure DevOps. Costs two requests. */
42
52
  verify: boolean;
43
53
  }
54
+ export interface Check {
55
+ id: string;
56
+ name: string;
57
+ tier: 0 | 1 | 2;
58
+ /** Plain-language: what having this gets you. Rendered as-is by a GUI. */
59
+ unlocks: string;
60
+ /** What is lost without it — never "it is broken" when it is not. */
61
+ without: string;
62
+ ok: boolean;
63
+ version: string | null;
64
+ path: string | null;
65
+ /** The command that would install it here, or null when we cannot say. */
66
+ install: string | null;
67
+ /** Set when something needs saying beyond present/absent. */
68
+ note?: string;
69
+ /** Per-account detail for `gh-account`. See {@link AccountReport}. */
70
+ accounts?: AccountReport[];
71
+ /** Per-repository detail for `gh-repo-access`. See {@link RepoReport}. */
72
+ repos?: RepoReport[];
73
+ }
74
+ /**
75
+ * One configured GitHub account, and whether `gh` still holds a token for it.
76
+ *
77
+ * **`active` is reported and never acted on.** On the machine plan §2 was
78
+ * measured on, the account a project is bound to is *not* the active one, so a
79
+ * report that omitted this would be unreadable the first time it disagreed with
80
+ * what `gh auth status` prints by hand.
81
+ */
82
+ export interface AccountReport {
83
+ account: string;
84
+ ok: boolean;
85
+ /** What `gh` calls active, or null when `gh auth status` could not say. */
86
+ active: boolean | null;
87
+ detail: string;
88
+ }
89
+ /**
90
+ * One configured repository, reached **as its configured account**.
91
+ *
92
+ * `resolved` and `nodeId` are the point: a 200 proves nothing on a machine with
93
+ * two accounts, because `owner/widgets` can exist under both. What GitHub
94
+ * answered with is recorded so the mismatch is a fact rather than an inference.
95
+ */
96
+ interface RepoReport {
97
+ repo: string;
98
+ account: string;
99
+ ok: boolean;
100
+ /** Who the token turned out to belong to — `gh api user`'s login. */
101
+ viewer: string | null;
102
+ /** The `full_name` GitHub actually returned. */
103
+ resolved: string | null;
104
+ /** GitHub's node id for it: the identity that survives a rename. */
105
+ nodeId: string | null;
106
+ /** `gh-core`'s closed set: no-token | unauthorized | not-visible | … */
107
+ problem: string | null;
108
+ detail: string | null;
109
+ }
44
110
  export declare function runDoctor(io: Io, env: NodeJS.ProcessEnv, options: DoctorCommandOptions, pretty: boolean, version: string): Promise<ExitCode>;
111
+ /** The `gh-auth` row, worded by which of the three states we are actually in. */
112
+ export declare function authCheck(base: Omit<Check, "ok" | "install">, accounts: readonly GhAccount[], accountReports: readonly AccountReport[], authFailure: string | undefined): Check;
113
+ export {};
45
114
  //# sourceMappingURL=doctor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAOA,OAAO,EAAkB,KAAK,QAAQ,EAAE,KAAK,EAAE,EAAE,MAAM,cAAc,CAAC;AAItE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,MAAM,WAAW,oBAAoB;IACnC,qEAAqE;IACrE,MAAM,EAAE,OAAO,CAAC;CACjB;AAkKD,wBAAsB,SAAS,CAC7B,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,QAAQ,CAAC,CAoDnB"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,SAAS,EAIV,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAkB,KAAK,QAAQ,EAAE,KAAK,EAAE,EAAE,MAAM,cAAc,CAAC;AAItE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,MAAM,WAAW,oBAAoB;IACnC,qEAAqE;IACrE,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,0EAA0E;IAC1E,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,OAAO,CAAC;IACZ,2EAA2E;IAC3E,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,OAAO,CAAC;IACZ,qEAAqE;IACrE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,oEAAoE;IACpE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,wEAAwE;IACxE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AA6KD,wBAAsB,SAAS,CAC7B,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,QAAQ,CAAC,CA8DnB;AAudD,iFAAiF;AACjF,wBAAgB,SAAS,CACvB,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,SAAS,CAAC,EACnC,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,cAAc,EAAE,SAAS,aAAa,EAAE,EACxC,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,KAAK,CAuHP"}