@floh-solutions/pharos-cli 0.19.0 → 0.20.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/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +53 -35
- package/dist/cli.js.map +1 -1
- package/dist/commands/doctor.d.ts +45 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +383 -0
- package/dist/commands/doctor.js.map +1 -0
- package/package.json +3 -3
- package/skill/SKILL.md +9 -0
package/dist/cli.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ import { type ExitCode } from "./output.js";
|
|
|
11
11
|
* expensive kind of wrong. Anything added to the switch belongs here, and the
|
|
12
12
|
* test below fails if it does not.
|
|
13
13
|
*/
|
|
14
|
-
export declare const COMMANDS: readonly ["setup", "whoami", "query", "task", "types", "history", "iterations", "areas", "links", "fields", "create", "update", "link", "unlink", "delete", "restore", "deleted", "attach", "detach", "download", "image", "people", "wiki", "comment", "hooks", "plan"];
|
|
14
|
+
export declare const COMMANDS: readonly ["setup", "whoami", "query", "task", "types", "history", "iterations", "areas", "links", "fields", "create", "update", "link", "unlink", "delete", "restore", "deleted", "attach", "detach", "download", "image", "people", "wiki", "comment", "hooks", "plan", "doctor"];
|
|
15
15
|
export interface RunOptions {
|
|
16
16
|
argv: string[];
|
|
17
17
|
cwd: string;
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AA4B1D,OAAO,EAKL,KAAK,QAAQ,EAEd,MAAM,aAAa,CAAC;AAyBrB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,oRAMX,CAAC;AA6SX,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,gDAAgD;IAChD,SAAS,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAChD,+EAA+E;IAC/E,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CAChC;AAED,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAOhE"}
|
package/dist/cli.js
CHANGED
|
@@ -8,6 +8,7 @@ import { runClassification, runFields, runHistory, runLinkTypes, } from "./comma
|
|
|
8
8
|
import { runComment } from "./commands/comment.js";
|
|
9
9
|
import { runCreate } from "./commands/create.js";
|
|
10
10
|
import { runDetach } from "./commands/detach.js";
|
|
11
|
+
import { runDoctor } from "./commands/doctor.js";
|
|
11
12
|
import { runDownload, runTypes, runWhoami } from "./commands/discover.js";
|
|
12
13
|
import { runImage, runWikiImage } from "./commands/image.js";
|
|
13
14
|
import { runWikiImport } from "./commands/import.js";
|
|
@@ -58,7 +59,7 @@ export const COMMANDS = [
|
|
|
58
59
|
"history", "iterations", "areas", "links", "fields",
|
|
59
60
|
"create", "update", "link", "unlink", "delete", "restore", "deleted",
|
|
60
61
|
"attach", "detach", "download", "image", "people",
|
|
61
|
-
"wiki", "comment", "hooks", "plan",
|
|
62
|
+
"wiki", "comment", "hooks", "plan", "doctor",
|
|
62
63
|
];
|
|
63
64
|
/** Where long text comes from, for the verbs that take some. */
|
|
64
65
|
const CONTENT_OPTIONS = {
|
|
@@ -318,6 +319,15 @@ COMMANDS
|
|
|
318
319
|
wiki subscription CANNOT be made in the web UI:
|
|
319
320
|
the repo picker hides wiki repositories.
|
|
320
321
|
|
|
322
|
+
doctor What is installed on THIS machine, what is
|
|
323
|
+
missing, and what each missing thing costs.
|
|
324
|
+
Three tiers: pharos itself, \`wiki import\`
|
|
325
|
+
beyond .md/.txt, and reading a downloaded
|
|
326
|
+
attachment. Read-only and offline; it also
|
|
327
|
+
prints the PATH it searched, because a GUI-
|
|
328
|
+
launched app inherits a minimal one and would
|
|
329
|
+
otherwise be told a provisioned machine is bare.
|
|
330
|
+
|
|
321
331
|
plan <file> [...] Turn an implementation plan into a work item
|
|
322
332
|
tree. Passed through to plan-to-board verbatim,
|
|
323
333
|
including its flags and its human output.
|
|
@@ -438,44 +448,46 @@ async function dispatch(io, options) {
|
|
|
438
448
|
}
|
|
439
449
|
: command === "types"
|
|
440
450
|
? { type: { type: "string" } }
|
|
441
|
-
: command === "
|
|
442
|
-
? {
|
|
443
|
-
|
|
444
|
-
parent: { type: "string" },
|
|
445
|
-
state: { type: "string" },
|
|
446
|
-
priority: { type: "string" },
|
|
447
|
-
assignee: { type: "string" },
|
|
448
|
-
field: { type: "string", multiple: true },
|
|
449
|
-
tag: { type: "string", multiple: true },
|
|
450
|
-
...CONTENT_OPTIONS,
|
|
451
|
-
}
|
|
452
|
-
: command === "link" || command === "unlink"
|
|
451
|
+
: command === "doctor"
|
|
452
|
+
? { verify: { type: "boolean" } }
|
|
453
|
+
: command === "create"
|
|
453
454
|
? {
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
455
|
+
title: { type: "string" },
|
|
456
|
+
parent: { type: "string" },
|
|
457
|
+
state: { type: "string" },
|
|
458
|
+
priority: { type: "string" },
|
|
459
|
+
assignee: { type: "string" },
|
|
460
|
+
field: { type: "string", multiple: true },
|
|
461
|
+
tag: { type: "string", multiple: true },
|
|
462
|
+
...CONTENT_OPTIONS,
|
|
457
463
|
}
|
|
458
|
-
: command === "
|
|
459
|
-
? {
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
:
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
}
|
|
472
|
-
: command === "
|
|
464
|
+
: command === "link" || command === "unlink"
|
|
465
|
+
? {
|
|
466
|
+
...Object.fromEntries(Object.keys(LINK_KINDS).map((kind) => [kind, { type: "string" }])),
|
|
467
|
+
"wiki-page": { type: "string" },
|
|
468
|
+
comment: { type: "string" },
|
|
469
|
+
}
|
|
470
|
+
: command === "deleted"
|
|
471
|
+
? { top: { type: "string" } }
|
|
472
|
+
: command === "history"
|
|
473
|
+
? { top: { type: "string" }, all: { type: "boolean" } }
|
|
474
|
+
: command === "iterations" || command === "areas"
|
|
475
|
+
? { depth: { type: "string" } }
|
|
476
|
+
: command === "fields"
|
|
477
|
+
? { type: { type: "string" }, constrained: { type: "boolean" } }
|
|
478
|
+
: command === "hooks"
|
|
473
479
|
? {
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
480
|
+
hub: { type: "string" },
|
|
481
|
+
user: { type: "string" },
|
|
482
|
+
password: { type: "string" },
|
|
477
483
|
}
|
|
478
|
-
:
|
|
484
|
+
: command === "setup"
|
|
485
|
+
? {
|
|
486
|
+
print: { type: "boolean" },
|
|
487
|
+
stdin: { type: "boolean" },
|
|
488
|
+
skill: { type: "boolean" },
|
|
489
|
+
}
|
|
490
|
+
: CONTENT_OPTIONS;
|
|
479
491
|
const { values, positionals } = parse(options.argv, { ...GLOBAL_OPTIONS, ...extras });
|
|
480
492
|
if (values["version"] === true)
|
|
481
493
|
return emitText(io, await version(options.cwd));
|
|
@@ -492,6 +504,12 @@ async function dispatch(io, options) {
|
|
|
492
504
|
skill: values["skill"] === true,
|
|
493
505
|
}, options.readStdin ?? readAllStdin, options.client);
|
|
494
506
|
}
|
|
507
|
+
// Before the Session, for the same reason as `setup`: this is the command you
|
|
508
|
+
// run when something is wrong, and refusing it because ADO_ORG is missing
|
|
509
|
+
// would withhold the answer at exactly the moment it is the answer.
|
|
510
|
+
if (command === "doctor") {
|
|
511
|
+
return runDoctor(io, options.env, { verify: values["verify"] === true }, values["pretty"] === true, await version(options.cwd));
|
|
512
|
+
}
|
|
495
513
|
const session = new Session({
|
|
496
514
|
env: options.env,
|
|
497
515
|
organization: asString(values["org"]),
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type ExitCode, type Io } from "../output.js";
|
|
2
|
+
/**
|
|
3
|
+
* `pharos doctor` — what is installed, what is missing, and what each missing
|
|
4
|
+
* thing costs you.
|
|
5
|
+
*
|
|
6
|
+
* ## Why this is a verb and not a paragraph in the README
|
|
7
|
+
*
|
|
8
|
+
* **The tool works fine on a machine with nothing else on it, and its
|
|
9
|
+
* documentation was written on a machine that had everything.** Every
|
|
10
|
+
* measurement behind the skill's attachment-reading guidance — LibreOffice,
|
|
11
|
+
* poppler, `unzip`, a markitdown venv — was taken here, where all four happened
|
|
12
|
+
* to be installed because the operator works with those files daily. A normal
|
|
13
|
+
* Claude Code user has none of them, and the skill names those commands with
|
|
14
|
+
* total confidence.
|
|
15
|
+
*
|
|
16
|
+
* So this answers the question that was never askable: *which of the things
|
|
17
|
+
* pharos talks about are actually true on THIS machine?*
|
|
18
|
+
*
|
|
19
|
+
* ## Three tiers, because "missing" means three different things
|
|
20
|
+
*
|
|
21
|
+
* - **Tier 0** is pharos itself. Missing here means nothing works.
|
|
22
|
+
* - **Tier 1** is `wiki import` beyond `.md`/`.txt`. Missing here degrades
|
|
23
|
+
* honestly — those types are refused by name with the reason — so it is a
|
|
24
|
+
* narrowed tool rather than a broken one.
|
|
25
|
+
* - **Tier 2** is reading attachments, which is the AGENT's job with its own
|
|
26
|
+
* tooling. Nothing here is a dependency of the CLI at all; these are what
|
|
27
|
+
* make the skill's advice actionable.
|
|
28
|
+
*
|
|
29
|
+
* ## It is a data source, not a report
|
|
30
|
+
*
|
|
31
|
+
* A wizard renders this (#766), and so does the macOS app's setup wizard
|
|
32
|
+
* (#767) — which shows progress steps and never a terminal. That is why every
|
|
33
|
+
* check is an object with a **stable `id`**, carries what it `unlocks` in
|
|
34
|
+
* prose, and carries the `install` command for this platform. A GUI that has to
|
|
35
|
+
* parse English to know what happened is a GUI that will eventually be wrong.
|
|
36
|
+
*
|
|
37
|
+
* Read-only and offline by default: it spawns version probes and touches the
|
|
38
|
+
* network only for `--verify`.
|
|
39
|
+
*/
|
|
40
|
+
export interface DoctorCommandOptions {
|
|
41
|
+
/** Also prove the token against Azure DevOps. Costs two requests. */
|
|
42
|
+
verify: boolean;
|
|
43
|
+
}
|
|
44
|
+
export declare function runDoctor(io: Io, env: NodeJS.ProcessEnv, options: DoctorCommandOptions, pretty: boolean, version: string): Promise<ExitCode>;
|
|
45
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAMA,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;AAuJD,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,CAoCnB"}
|
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { access, constants } from "node:fs/promises";
|
|
3
|
+
import { homedir, platform } from "node:os";
|
|
4
|
+
import { delimiter, join } from "node:path";
|
|
5
|
+
import { promisify } from "node:util";
|
|
6
|
+
import { emit, emitText } from "../output.js";
|
|
7
|
+
const run = promisify(execFile);
|
|
8
|
+
/** Where LibreOffice puts itself when installed from the .dmg rather than brew. */
|
|
9
|
+
const LIBREOFFICE_BUNDLE = "/Applications/LibreOffice.app/Contents/MacOS/soffice";
|
|
10
|
+
/**
|
|
11
|
+
* markitdown is **not a command**, it is a module inside a per-skill venv.
|
|
12
|
+
*
|
|
13
|
+
* Probing PATH for `markitdown` reports absent on a machine where it works
|
|
14
|
+
* perfectly — which is precisely the mistake #741 exists to warn about, so
|
|
15
|
+
* making it here would be its own punchline.
|
|
16
|
+
*/
|
|
17
|
+
const PPTX_VENV_PYTHON = join(homedir(), ".claude", "skills", "pptx", ".venv", "bin", "python");
|
|
18
|
+
const PROBES = [
|
|
19
|
+
{
|
|
20
|
+
id: "node",
|
|
21
|
+
name: "Node.js",
|
|
22
|
+
tier: 0,
|
|
23
|
+
unlocks: "pharos runs at all. Version 22 or newer.",
|
|
24
|
+
without: "Nothing works — pharos is a Node program.",
|
|
25
|
+
command: ["node", "--version"],
|
|
26
|
+
versionFrom: /v?(\d+\.\d+\.\d+)/,
|
|
27
|
+
install: { brew: "brew install node", apt: "sudo apt install nodejs", winget: "winget install OpenJS.NodeJS" },
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
id: "pharos-convert",
|
|
31
|
+
name: "pharos-convert",
|
|
32
|
+
tier: 1,
|
|
33
|
+
unlocks: "`wiki import` for .docx, .pdf, .rtf, .html and .odt.",
|
|
34
|
+
without: "`wiki import` still takes .md and .txt. Everything else is refused by name with the "
|
|
35
|
+
+ "reason — narrowed, not broken.",
|
|
36
|
+
command: ["pharos-convert", "--help"],
|
|
37
|
+
// It has NO --version (#764). `--help` exits 0 and prints usage, which is
|
|
38
|
+
// the only signal it gives, so presence is all this can honestly report.
|
|
39
|
+
versionFrom: /^$/,
|
|
40
|
+
note: "Installed by no route today — not npm, not the app installer. It is built from "
|
|
41
|
+
+ "PharosCore in the team-sync repo. See #764.",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: "libreoffice",
|
|
45
|
+
name: "LibreOffice",
|
|
46
|
+
tier: 2,
|
|
47
|
+
unlocks: "Reading .docx, .xlsx and .pptx — convert to PDF and read that, which is the only "
|
|
48
|
+
+ "route that keeps the pictures.",
|
|
49
|
+
without: "You can download an Office attachment and have no way to read what is in it.",
|
|
50
|
+
command: ["soffice", "--version"],
|
|
51
|
+
versionFrom: /LibreOffice\s+(\S+)/,
|
|
52
|
+
fallbacks: [LIBREOFFICE_BUNDLE],
|
|
53
|
+
install: {
|
|
54
|
+
brew: "brew install --cask libreoffice",
|
|
55
|
+
apt: "sudo apt install libreoffice",
|
|
56
|
+
winget: "winget install TheDocumentFoundation.LibreOffice",
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
id: "pdftotext",
|
|
61
|
+
name: "poppler (pdftotext)",
|
|
62
|
+
tier: 2,
|
|
63
|
+
unlocks: "Pulling text out of a PDF with its table layout intact.",
|
|
64
|
+
without: "Only matters if you do NOT read PDFs natively. Most agents do.",
|
|
65
|
+
command: ["pdftotext", "-v"],
|
|
66
|
+
versionFrom: /version\s+(\S+)/,
|
|
67
|
+
install: {
|
|
68
|
+
brew: "brew install poppler",
|
|
69
|
+
apt: "sudo apt install poppler-utils",
|
|
70
|
+
winget: "winget install oschwartz10612.Poppler",
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
id: "pdftoppm",
|
|
75
|
+
name: "poppler (pdftoppm)",
|
|
76
|
+
tier: 2,
|
|
77
|
+
unlocks: "Rendering a scanned PDF to images when there is no text to extract.",
|
|
78
|
+
without: "Only matters if you do NOT read PDFs natively.",
|
|
79
|
+
command: ["pdftoppm", "-v"],
|
|
80
|
+
versionFrom: /version\s+(\S+)/,
|
|
81
|
+
install: {
|
|
82
|
+
brew: "brew install poppler",
|
|
83
|
+
apt: "sudo apt install poppler-utils",
|
|
84
|
+
winget: "winget install oschwartz10612.Poppler",
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
id: "unzip",
|
|
89
|
+
name: "unzip",
|
|
90
|
+
tier: 2,
|
|
91
|
+
unlocks: "Pulling the images out of a .docx, .pptx or .xlsx — they are all ZIP archives.",
|
|
92
|
+
without: "You cannot reach the images, which are often where a deck's real content is.",
|
|
93
|
+
command: ["unzip", "-v"],
|
|
94
|
+
versionFrom: /UnZip\s+(\S+)/,
|
|
95
|
+
install: { apt: "sudo apt install unzip", winget: "winget install GnuWin32.UnZip" },
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
id: "markitdown",
|
|
99
|
+
name: "markitdown",
|
|
100
|
+
tier: 2,
|
|
101
|
+
unlocks: "Slide text out of a .pptx, with the embedded images named.",
|
|
102
|
+
without: "Convert the deck to PDF with LibreOffice instead — better, because it keeps the "
|
|
103
|
+
+ "pictures rather than naming them.",
|
|
104
|
+
command: [PPTX_VENV_PYTHON, "-m", "markitdown", "--version"],
|
|
105
|
+
versionFrom: /markitdown\s+(\S+)/,
|
|
106
|
+
note: "Lives in the pptx skill's venv, not on PATH. It handles .pptx only — that venv was "
|
|
107
|
+
+ "installed without the [docx], [pdf] and [xlsx] extras.",
|
|
108
|
+
},
|
|
109
|
+
];
|
|
110
|
+
export async function runDoctor(io, env, options, pretty, version) {
|
|
111
|
+
const checks = await Promise.all(PROBES.map((probe) => check(probe, env)));
|
|
112
|
+
// pharos itself is not probed by spawning pharos — that would be a program
|
|
113
|
+
// asking a subprocess who it is. It knows.
|
|
114
|
+
checks.unshift({
|
|
115
|
+
id: "pharos",
|
|
116
|
+
name: "pharos CLI",
|
|
117
|
+
tier: 0,
|
|
118
|
+
unlocks: "Every verb: query, task, create, update, wiki, comments, attachments.",
|
|
119
|
+
without: "—",
|
|
120
|
+
ok: true,
|
|
121
|
+
version,
|
|
122
|
+
path: process.argv[1] ?? null,
|
|
123
|
+
install: "npm i -g @floh-solutions/pharos-cli",
|
|
124
|
+
});
|
|
125
|
+
const config = configCheck(env);
|
|
126
|
+
checks.push(config);
|
|
127
|
+
if (options.verify)
|
|
128
|
+
checks.push(...(await verifyScopes(env, config.ok)));
|
|
129
|
+
const result = {
|
|
130
|
+
ok: checks.filter((c) => c.tier === 0).every((c) => c.ok),
|
|
131
|
+
checks,
|
|
132
|
+
tiers: [0, 1, 2].map((tier) => summariseTier(tier, checks)),
|
|
133
|
+
// **The PATH is part of the answer, not debug output.**
|
|
134
|
+
//
|
|
135
|
+
// A GUI-launched app inherits a minimal PATH — no /opt/homebrew/bin, no
|
|
136
|
+
// ~/.local/bin, no nvm shims — so the macOS wizard (#767) can be told
|
|
137
|
+
// "nothing is installed" on a fully provisioned machine. Reporting what was
|
|
138
|
+
// searched turns that from a mystery into a one-line diagnosis.
|
|
139
|
+
searched: (env["PATH"] ?? "").split(delimiter).filter((entry) => entry !== ""),
|
|
140
|
+
platform: platform(),
|
|
141
|
+
};
|
|
142
|
+
return pretty ? emitText(io, render(result)) : emit(io, result);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Is it there, and which version. Never throws — absence is an answer.
|
|
146
|
+
*
|
|
147
|
+
* **Probed against the env this command was GIVEN, not `process.env`.** Those
|
|
148
|
+
* are the same thing from a shell and are not the same thing when the macOS app
|
|
149
|
+
* spawns `pharos` with an augmented PATH (#767) — and a doctor that probes one
|
|
150
|
+
* environment while reporting another is worse than no doctor, because its
|
|
151
|
+
* answer is confidently about a machine state that never existed. Caught by the
|
|
152
|
+
* test that runs it against an empty PATH: `execFile` inherits `process.env`
|
|
153
|
+
* unless told otherwise, so every probe was succeeding while `searched` printed
|
|
154
|
+
* a PATH containing nothing.
|
|
155
|
+
*/
|
|
156
|
+
async function check(probe, env) {
|
|
157
|
+
const candidates = [probe.command[0], ...(probe.fallbacks ?? [])];
|
|
158
|
+
for (const executable of candidates) {
|
|
159
|
+
// An absolute fallback that is not on disk is not worth spawning.
|
|
160
|
+
if (executable.startsWith("/") && !(await exists(executable)))
|
|
161
|
+
continue;
|
|
162
|
+
try {
|
|
163
|
+
const { stdout, stderr } = await run(executable, probe.command.slice(1), {
|
|
164
|
+
// Bounded: `soffice --version` starts a headless office suite, and a
|
|
165
|
+
// doctor that hangs is worse than one that reports "unknown".
|
|
166
|
+
timeout: 15_000,
|
|
167
|
+
maxBuffer: 1024 * 1024,
|
|
168
|
+
env,
|
|
169
|
+
});
|
|
170
|
+
const text = `${stdout}${stderr}`;
|
|
171
|
+
return {
|
|
172
|
+
...describe(probe),
|
|
173
|
+
ok: true,
|
|
174
|
+
version: probe.versionFrom.exec(text)?.[1] ?? null,
|
|
175
|
+
// **The RESOLVED path, not the name we typed.** "soffice" tells you
|
|
176
|
+
// nothing; `/opt/homebrew/bin/soffice` tells you it came from brew, and
|
|
177
|
+
// `/Applications/LibreOffice.app/…` tells you it came from the .dmg and
|
|
178
|
+
// is therefore only on PATH by luck. That distinction is the whole
|
|
179
|
+
// reason this command reports paths at all.
|
|
180
|
+
path: (await resolveOnPath(executable, env)) ?? executable,
|
|
181
|
+
install: installCommand(probe),
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
catch {
|
|
185
|
+
// Not on PATH, not executable, or it failed. Try the next candidate.
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return { ...describe(probe), ok: false, version: null, path: null, install: installCommand(probe) };
|
|
189
|
+
}
|
|
190
|
+
function describe(probe) {
|
|
191
|
+
return {
|
|
192
|
+
id: probe.id,
|
|
193
|
+
name: probe.name,
|
|
194
|
+
tier: probe.tier,
|
|
195
|
+
unlocks: probe.unlocks,
|
|
196
|
+
without: probe.without,
|
|
197
|
+
...(probe.note === undefined ? {} : { note: probe.note }),
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* The install line for THIS platform, or null.
|
|
202
|
+
*
|
|
203
|
+
* Null rather than a guess: a command that does not exist here is worse than no
|
|
204
|
+
* command, because somebody will paste it.
|
|
205
|
+
*/
|
|
206
|
+
function installCommand(probe) {
|
|
207
|
+
if (probe.install === undefined)
|
|
208
|
+
return null;
|
|
209
|
+
const os = platform();
|
|
210
|
+
if (os === "darwin")
|
|
211
|
+
return probe.install.brew ?? null;
|
|
212
|
+
if (os === "win32")
|
|
213
|
+
return probe.install.winget ?? null;
|
|
214
|
+
return probe.install.apt ?? null;
|
|
215
|
+
}
|
|
216
|
+
/** Configuration, read from the environment — no network unless asked. */
|
|
217
|
+
function configCheck(env) {
|
|
218
|
+
const missing = ["ADO_ORG", "ADO_PROJECT", "ADO_PAT"].filter((name) => (env[name] ?? "") === "");
|
|
219
|
+
return {
|
|
220
|
+
id: "config",
|
|
221
|
+
name: "Azure DevOps configuration",
|
|
222
|
+
tier: 0,
|
|
223
|
+
unlocks: "Which organisation and project, and the token every call is made with.",
|
|
224
|
+
without: "Every command exits 2 with kind: \"config\".",
|
|
225
|
+
ok: missing.length === 0,
|
|
226
|
+
version: null,
|
|
227
|
+
path: null,
|
|
228
|
+
install: "pharos setup",
|
|
229
|
+
...(missing.length === 0
|
|
230
|
+
? {
|
|
231
|
+
note: "Present in the environment. This does NOT prove the token is valid or has both "
|
|
232
|
+
+ "scopes — `pharos setup` makes real calls to check that.",
|
|
233
|
+
}
|
|
234
|
+
: { note: `Missing: ${missing.join(", ")}.` }),
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* `--verify` — the two scopes, proven rather than assumed. Two requests.
|
|
239
|
+
*
|
|
240
|
+
* **Checked SEPARATELY because Azure DevOps grants them separately**, which is
|
|
241
|
+
* the same reason `setup` does it: a token with Work Items and not Wiki behaves
|
|
242
|
+
* perfectly until the first wiki write days later, then fails with a 401 that
|
|
243
|
+
* reads as a bad token rather than a narrow one.
|
|
244
|
+
*
|
|
245
|
+
* Off by default so `doctor` stays instant and offline — the answer to "what is
|
|
246
|
+
* installed" should not depend on a network that may be the thing that is
|
|
247
|
+
* broken.
|
|
248
|
+
*/
|
|
249
|
+
async function verifyScopes(env, configured) {
|
|
250
|
+
const base = {
|
|
251
|
+
tier: 0,
|
|
252
|
+
version: null,
|
|
253
|
+
path: null,
|
|
254
|
+
install: "pharos setup",
|
|
255
|
+
};
|
|
256
|
+
if (!configured) {
|
|
257
|
+
return [
|
|
258
|
+
{
|
|
259
|
+
...base,
|
|
260
|
+
id: "scopes",
|
|
261
|
+
name: "Token scopes",
|
|
262
|
+
unlocks: "Reading the board and the wiki.",
|
|
263
|
+
without: "Unknown until the configuration is there.",
|
|
264
|
+
ok: false,
|
|
265
|
+
note: "Skipped — there is nothing configured to verify. Run `pharos setup` first.",
|
|
266
|
+
},
|
|
267
|
+
];
|
|
268
|
+
}
|
|
269
|
+
const { AdoClient, WikiApi } = await import("@floh-solutions/ado-core");
|
|
270
|
+
const client = new AdoClient({
|
|
271
|
+
organization: env["ADO_ORG"],
|
|
272
|
+
project: env["ADO_PROJECT"],
|
|
273
|
+
pat: env["ADO_PAT"],
|
|
274
|
+
});
|
|
275
|
+
const workItems = await client.wiql
|
|
276
|
+
.query("SELECT [System.Id] FROM WorkItems", { top: 1 })
|
|
277
|
+
.then(() => ({ ok: true, note: "Work item read works." }))
|
|
278
|
+
.catch((error) => ({
|
|
279
|
+
ok: false,
|
|
280
|
+
note: "Work items unreadable — check the org, the project, and the token's \"Work Items "
|
|
281
|
+
+ `(Read, write, & manage)\" scope. ${messageOf(error)}`,
|
|
282
|
+
}));
|
|
283
|
+
const wiki = await new WikiApi(client.http)
|
|
284
|
+
.listWikis()
|
|
285
|
+
.then((wikis) => ({ ok: true, note: `Wiki read works (${wikis.length} found).` }))
|
|
286
|
+
.catch((error) => ({
|
|
287
|
+
ok: false,
|
|
288
|
+
note: "Wiki unreadable — a SEPARATE permission from work items; check the token's \"Wiki "
|
|
289
|
+
+ `(Read & write)\" scope. ${messageOf(error)}`,
|
|
290
|
+
}));
|
|
291
|
+
return [
|
|
292
|
+
{
|
|
293
|
+
...base,
|
|
294
|
+
id: "scope-work-items",
|
|
295
|
+
name: "Token scope: Work Items",
|
|
296
|
+
unlocks: "query, task, create, update, link, attach — everything on the board.",
|
|
297
|
+
without: "Every board call fails as auth.",
|
|
298
|
+
...workItems,
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
...base,
|
|
302
|
+
id: "scope-wiki",
|
|
303
|
+
name: "Token scope: Wiki",
|
|
304
|
+
unlocks: "wiki read/write, page comments, import.",
|
|
305
|
+
without: "The board works and every wiki call fails, days later, looking like a bad token.",
|
|
306
|
+
...wiki,
|
|
307
|
+
},
|
|
308
|
+
];
|
|
309
|
+
}
|
|
310
|
+
function messageOf(error) {
|
|
311
|
+
return error instanceof Error ? error.message : String(error);
|
|
312
|
+
}
|
|
313
|
+
function summariseTier(tier, checks) {
|
|
314
|
+
const names = {
|
|
315
|
+
0: "pharos itself",
|
|
316
|
+
1: "wiki import beyond .md and .txt",
|
|
317
|
+
2: "reading downloaded attachments",
|
|
318
|
+
};
|
|
319
|
+
const mine = checks.filter((c) => c.tier === tier);
|
|
320
|
+
return {
|
|
321
|
+
tier,
|
|
322
|
+
name: names[tier],
|
|
323
|
+
ok: mine.every((c) => c.ok),
|
|
324
|
+
missing: mine.filter((c) => !c.ok).map((c) => c.id),
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Where a bare command name actually resolves, by walking `PATH` in order.
|
|
329
|
+
*
|
|
330
|
+
* Deliberately not `which`: spawning a shell to answer this would inherit a
|
|
331
|
+
* DIFFERENT environment from the one the probes just ran in, which is the exact
|
|
332
|
+
* class of mistake this command exists to catch.
|
|
333
|
+
*/
|
|
334
|
+
async function resolveOnPath(executable, env) {
|
|
335
|
+
if (executable.includes("/"))
|
|
336
|
+
return executable;
|
|
337
|
+
for (const dir of (env["PATH"] ?? "").split(delimiter)) {
|
|
338
|
+
if (dir === "")
|
|
339
|
+
continue;
|
|
340
|
+
const candidate = join(dir, executable);
|
|
341
|
+
if (await exists(candidate))
|
|
342
|
+
return candidate;
|
|
343
|
+
}
|
|
344
|
+
return null;
|
|
345
|
+
}
|
|
346
|
+
async function exists(path) {
|
|
347
|
+
try {
|
|
348
|
+
await access(path, constants.X_OK);
|
|
349
|
+
return true;
|
|
350
|
+
}
|
|
351
|
+
catch {
|
|
352
|
+
return false;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
/** The human rendering. Grouped by tier, because that is what "missing" means. */
|
|
356
|
+
function render(result) {
|
|
357
|
+
const lines = [];
|
|
358
|
+
for (const tier of result.tiers) {
|
|
359
|
+
lines.push("", `## Tier ${tier.tier} — ${tier.name}`, "");
|
|
360
|
+
for (const check of result.checks.filter((c) => c.tier === tier.tier)) {
|
|
361
|
+
const mark = check.ok ? "✓" : "✗";
|
|
362
|
+
const version = check.version === null ? "" : ` ${check.version}`;
|
|
363
|
+
lines.push(` ${mark} ${check.name}${version}`);
|
|
364
|
+
if (check.ok) {
|
|
365
|
+
if (check.path !== null)
|
|
366
|
+
lines.push(` ${check.path}`);
|
|
367
|
+
}
|
|
368
|
+
else {
|
|
369
|
+
lines.push(` ${check.without}`);
|
|
370
|
+
if (check.install !== null)
|
|
371
|
+
lines.push(` install: ${check.install}`);
|
|
372
|
+
}
|
|
373
|
+
if (check.note !== undefined)
|
|
374
|
+
lines.push(` note: ${check.note}`);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
// Printed always, like `task`'s Problems section: an absent line and a line
|
|
378
|
+
// nobody rendered look identical to the reader.
|
|
379
|
+
lines.push("", `## PATH searched (${result.searched.length} entries)`, "");
|
|
380
|
+
lines.push(" If something is installed and reported missing here, it is not on this PATH.", ` ${result.searched.join("\n ")}`);
|
|
381
|
+
return lines.join("\n");
|
|
382
|
+
}
|
|
383
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@floh-solutions/pharos-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"description": "Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": "FLOH Solutions",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"node": ">=22"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@floh-solutions/
|
|
28
|
-
"@floh-solutions/
|
|
27
|
+
"@floh-solutions/ado-core": "0.9.1",
|
|
28
|
+
"@floh-solutions/plan-to-board": "0.1.1"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/node": "^22.10.2",
|
package/skill/SKILL.md
CHANGED
|
@@ -66,6 +66,8 @@ hooks list | check | create | repoint | delete service hooks for realtime.
|
|
|
66
66
|
already in use
|
|
67
67
|
plan <file> an implementation plan → a work item tree
|
|
68
68
|
setup org, project, token → keychain + shell profile
|
|
69
|
+
doctor what is installed on THIS machine, what is
|
|
70
|
+
missing, and what each missing thing costs
|
|
69
71
|
```
|
|
70
72
|
|
|
71
73
|
Text input: `--text` / `--file` / `--stdin`. Global: `--pretty` for a human,
|
|
@@ -75,6 +77,13 @@ Text input: `--text` / `--file` / `--stdin`. Global: `--pretty` for a human,
|
|
|
75
77
|
setup. Do not check them before working; a missing one announces itself as
|
|
76
78
|
`"kind": "config"` on exit 2, which is the only time it matters.
|
|
77
79
|
|
|
80
|
+
**Reading an attachment needs tools this machine may not have**, and the
|
|
81
|
+
commands further down name them with confidence they have not earned on yours.
|
|
82
|
+
`pharos doctor` answers that in one call: what is present, its version and where
|
|
83
|
+
it resolved, what is missing, and what each missing thing actually costs. It is
|
|
84
|
+
read-only, offline, and works before anything is configured — so it is also the
|
|
85
|
+
right first move when something behaves oddly.
|
|
86
|
+
|
|
78
87
|
## Finding the work: `pharos query`
|
|
79
88
|
|
|
80
89
|
**Do not reach for `curl` and the WIQL endpoint.** This skill used to hand you a
|