carrick 0.3.83 → 0.3.85
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/README.md +31 -11
- package/bin/carrick.mjs +89 -0
- package/dist/auth/credentials.d.ts +9 -0
- package/dist/auth/credentials.js +13 -2
- package/dist/auth/credentials.js.map +1 -1
- package/dist/auth/read.d.ts +4 -4
- package/dist/global-install.d.ts +183 -0
- package/dist/global-install.js +393 -0
- package/dist/global-install.js.map +1 -0
- package/dist/hook/post-edit.js +10 -0
- package/dist/hook/post-edit.js.map +1 -1
- package/dist/hook/session-start.js +34 -0
- package/dist/hook/session-start.js.map +1 -1
- package/dist/hook/stop.js +18 -4
- package/dist/hook/stop.js.map +1 -1
- package/dist/hook/user-prompt.js +16 -4
- package/dist/hook/user-prompt.js.map +1 -1
- package/dist/init/doctor.d.ts +61 -0
- package/dist/init/doctor.js +160 -1
- package/dist/init/doctor.js.map +1 -1
- package/dist/init/hosted.d.ts +30 -5
- package/dist/init/hosted.js +75 -9
- package/dist/init/hosted.js.map +1 -1
- package/dist/init/mcp.d.ts +45 -30
- package/dist/init/mcp.js +47 -88
- package/dist/init/mcp.js.map +1 -1
- package/dist/init/outdated.d.ts +47 -0
- package/dist/init/outdated.js +104 -0
- package/dist/init/outdated.js.map +1 -1
- package/dist/init/output.d.ts +43 -6
- package/dist/init/output.js +90 -18
- package/dist/init/output.js.map +1 -1
- package/dist/init/projects.d.ts +2 -2
- package/dist/init/run.d.ts +89 -25
- package/dist/init/run.js +292 -58
- package/dist/init/run.js.map +1 -1
- package/dist/render.d.ts +16 -0
- package/dist/render.js +57 -6
- package/dist/render.js.map +1 -1
- package/dist/scan.d.ts +26 -0
- package/dist/scan.js +92 -0
- package/dist/scan.js.map +1 -1
- package/dist/update-check.d.ts +1 -0
- package/dist/update-check.js +25 -0
- package/dist/update-check.js.map +1 -0
- package/dist/update.d.ts +128 -0
- package/dist/update.js +398 -0
- package/dist/update.js.map +1 -0
- package/package.json +8 -7
- package/sidecar/dist/src/capture/anchors.js +69 -8
- package/sidecar/dist/src/capture/api.d.ts +27 -2
- package/sidecar/dist/src/capture/check-classify.js +31 -2
- package/sidecar/dist/src/capture/check-fields.d.ts +29 -0
- package/sidecar/dist/src/capture/check-fields.js +58 -6
- package/sidecar/dist/src/capture/check.js +5 -0
- package/sidecar/dist/src/capture/deep-walk.js +4 -1
- package/sidecar/dist/src/capture/index.js +6 -1
- package/sidecar/dist/src/capture/node-builder.d.ts +28 -1
- package/sidecar/dist/src/capture/node-builder.js +89 -3
- package/sidecar/dist/src/capture/self-check.d.ts +6 -1
- package/sidecar/dist/src/capture/self-check.js +65 -11
- package/sidecar/dist/src/capture/unresolved.d.ts +7 -0
- package/sidecar/dist/src/capture/unresolved.js +1 -1
- package/sidecar/dist/src/type-inferrer.d.ts +118 -4
- package/sidecar/dist/src/type-inferrer.js +433 -15
- package/sidecar/dist/src/validators.d.ts +40 -40
- package/sidecar/dist/src/validators.js +6 -1
- package/templates/skills/carrick-census.md +3 -1
package/dist/init/doctor.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type McpInspection } from "./mcp.ts";
|
|
2
2
|
import { type InitOutput } from "./output.ts";
|
|
3
|
+
import { type GlobalCarrick } from "../global-install.ts";
|
|
3
4
|
import { type InstalledSkill } from "./task-skills.ts";
|
|
4
5
|
import type { StatusResult } from "../contract.ts";
|
|
5
6
|
export type DoctorOptions = {
|
|
@@ -23,6 +24,27 @@ export type ConfiguredRepo = {
|
|
|
23
24
|
/** Why there is no config, when the file exists and could not be read. */
|
|
24
25
|
problem: string | null;
|
|
25
26
|
};
|
|
27
|
+
/**
|
|
28
|
+
* The repos this workspace is made of, as every other command counts them.
|
|
29
|
+
*
|
|
30
|
+
* Two of `repoRoots`' answers are not repos of this workspace, and reporting
|
|
31
|
+
* on either is reporting on something nobody asked to be indexed
|
|
32
|
+
* (carrick#1365):
|
|
33
|
+
*
|
|
34
|
+
* 1. **A repo the workspace file excludes.** `Workspace::load` never derives
|
|
35
|
+
* one, the scans never walk one, and the read path refuses to answer from
|
|
36
|
+
* one — so a doctor that audited it was the one surface still talking about
|
|
37
|
+
* a repo the reader had taken out.
|
|
38
|
+
* 2. **The container, when the container is not a repo.** `repoRoots` always
|
|
39
|
+
* includes the root, because in a single-repo workspace the root IS the
|
|
40
|
+
* repo. In a folder of repos it is the folder: it holds no `.git` and no
|
|
41
|
+
* `carrick.json`, and it was reported as a repo with no configuration —
|
|
42
|
+
* under its own basename, which in a folder named after one of its repos
|
|
43
|
+
* reads as a false statement about that repo. Both tests, not just the
|
|
44
|
+
* first: a root holding a config is a root somebody configured, whether or
|
|
45
|
+
* not this checkout has its `.git`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function workspaceRepos(workspace: string): string[];
|
|
26
48
|
export declare function configuredRepos(workspace: string): ConfiguredRepo[];
|
|
27
49
|
/** One service entry of a `carrick.json`, as this command reads it. */
|
|
28
50
|
type DeclaredService = {
|
|
@@ -89,6 +111,15 @@ export declare function workflowVariables(body: string): {
|
|
|
89
111
|
variables: Record<string, string>;
|
|
90
112
|
unread: string[];
|
|
91
113
|
};
|
|
114
|
+
/**
|
|
115
|
+
* A ref that will never move, said plainly.
|
|
116
|
+
*
|
|
117
|
+
* A finding rather than a note, by the rule at the top of this file: a
|
|
118
|
+
* repository whose CI is frozen on an old scanner keeps re-indexing itself with
|
|
119
|
+
* defects that are already fixed, and the whole point of the index is that it
|
|
120
|
+
* is current. The way out is one token in one line.
|
|
121
|
+
*/
|
|
122
|
+
export declare function pinnedActionRef(ref: string | undefined): string | null;
|
|
92
123
|
/**
|
|
93
124
|
* The CI workflow of every configured repo, against the template this package
|
|
94
125
|
* renders.
|
|
@@ -177,5 +208,35 @@ export declare function realGit(): GitReader;
|
|
|
177
208
|
* finding and the second is a note with the numbers in it.
|
|
178
209
|
*/
|
|
179
210
|
export declare function checkIndex(result: StatusResult | null, failure: string | null, git: GitReader): Line[];
|
|
211
|
+
/**
|
|
212
|
+
* The version this machine is running, against the version that is published.
|
|
213
|
+
*
|
|
214
|
+
* The one check here that is allowed to touch the network, and the one place in
|
|
215
|
+
* the CLI where the version check is synchronous: `doctor` is the command a
|
|
216
|
+
* person runs when they are already suspicious, so an answer worth two seconds
|
|
217
|
+
* is an answer worth waiting for, and a cached one that is hours old is not
|
|
218
|
+
* what they came for. It still fails open — a registry that says nothing leaves
|
|
219
|
+
* a note, never a finding.
|
|
220
|
+
*
|
|
221
|
+
* Being behind IS a finding, against the instinct that a check must only fire
|
|
222
|
+
* on something broken. Running a build with defects already fixed is the
|
|
223
|
+
* documented cause of a failed scan on a customer's machine, and the fix is one
|
|
224
|
+
* command that this line names.
|
|
225
|
+
*/
|
|
226
|
+
export declare function checkVersion(env?: NodeJS.ProcessEnv, fetchImpl?: typeof fetch, now?: number): Promise<Line[]>;
|
|
227
|
+
/**
|
|
228
|
+
* The carrick a hook here will actually run, against the one that wrote its
|
|
229
|
+
* files (carrick#1372).
|
|
230
|
+
*
|
|
231
|
+
* Different from `checkVersion` above, which asks the registry what is
|
|
232
|
+
* published. This asks the machine: an agent hook is `carrick hook post-edit`,
|
|
233
|
+
* resolved on PATH, so what answers it can be an install from three releases
|
|
234
|
+
* ago that an `npx carrick@latest` run never replaced. The two numbers only
|
|
235
|
+
* exist together here and in the hooks themselves.
|
|
236
|
+
*
|
|
237
|
+
* `findCarrick` rather than `which`, for the reason in `src/global-install.ts`:
|
|
238
|
+
* a `which` inside an npx run answers with the npx cache's own shim.
|
|
239
|
+
*/
|
|
240
|
+
export declare function checkPathVersion(workspace: string, found: GlobalCarrick | null): Line[];
|
|
180
241
|
export declare function doctor(argv: string[], out?: InitOutput): Promise<number>;
|
|
181
242
|
export {};
|
package/dist/init/doctor.js
CHANGED
|
@@ -36,7 +36,11 @@ import { DEFAULTS, renderTemplate, TEMPLATE_PATHS } from "../templates.js";
|
|
|
36
36
|
import { inspectMcpClients, mcpLine } from "./mcp.js";
|
|
37
37
|
import { readInstallId } from "./install-id.js";
|
|
38
38
|
import { createOutput, DOCS } from "./output.js";
|
|
39
|
+
import { currentVersion, fetchLatest, installShape, isNewer, isStale, readUpdateState, suppressed, writeUpdateState, } from "../update.js";
|
|
40
|
+
import { findCarrick, globalCommand, installedVersion } from "../global-install.js";
|
|
41
|
+
import { recordedCliVersion } from "./outdated.js";
|
|
39
42
|
import { repoRoots } from "./repos.js";
|
|
43
|
+
import { excludedRepos } from "./workspace-file.js";
|
|
40
44
|
import { expectedCarrickHooks, hookTarget, installedCarrickHooks, ownEntryPoint, SETTINGS_FILES, } from "./settings.js";
|
|
41
45
|
import { CODEX_HOOKS_FILE, codexInUse, expectedCodexHooks, readHooksFile } from "./codex.js";
|
|
42
46
|
import { inspectTaskSkills, TASK_SKILLS } from "./task-skills.js";
|
|
@@ -86,8 +90,36 @@ const done = (text) => ({ level: "done", text });
|
|
|
86
90
|
const warn = (text) => ({ level: "warn", text });
|
|
87
91
|
const refuse = (text) => ({ level: "refuse", text });
|
|
88
92
|
const say = (text) => ({ level: "say", text });
|
|
93
|
+
/**
|
|
94
|
+
* The repos this workspace is made of, as every other command counts them.
|
|
95
|
+
*
|
|
96
|
+
* Two of `repoRoots`' answers are not repos of this workspace, and reporting
|
|
97
|
+
* on either is reporting on something nobody asked to be indexed
|
|
98
|
+
* (carrick#1365):
|
|
99
|
+
*
|
|
100
|
+
* 1. **A repo the workspace file excludes.** `Workspace::load` never derives
|
|
101
|
+
* one, the scans never walk one, and the read path refuses to answer from
|
|
102
|
+
* one — so a doctor that audited it was the one surface still talking about
|
|
103
|
+
* a repo the reader had taken out.
|
|
104
|
+
* 2. **The container, when the container is not a repo.** `repoRoots` always
|
|
105
|
+
* includes the root, because in a single-repo workspace the root IS the
|
|
106
|
+
* repo. In a folder of repos it is the folder: it holds no `.git` and no
|
|
107
|
+
* `carrick.json`, and it was reported as a repo with no configuration —
|
|
108
|
+
* under its own basename, which in a folder named after one of its repos
|
|
109
|
+
* reads as a false statement about that repo. Both tests, not just the
|
|
110
|
+
* first: a root holding a config is a root somebody configured, whether or
|
|
111
|
+
* not this checkout has its `.git`.
|
|
112
|
+
*/
|
|
113
|
+
export function workspaceRepos(workspace) {
|
|
114
|
+
const excluded = new Set(excludedRepos(workspace).map((name) => name.toLowerCase()));
|
|
115
|
+
const roots = repoRoots(workspace).filter((root) => !excluded.has(path.basename(root).toLowerCase()));
|
|
116
|
+
const container = !fs.existsSync(path.join(workspace, ".git")) && !fs.existsSync(path.join(workspace, "carrick.json"));
|
|
117
|
+
if (roots.length > 1 && container)
|
|
118
|
+
return roots.filter((root) => root !== workspace);
|
|
119
|
+
return roots;
|
|
120
|
+
}
|
|
89
121
|
export function configuredRepos(workspace) {
|
|
90
|
-
return
|
|
122
|
+
return workspaceRepos(workspace).map((root) => {
|
|
91
123
|
const label = path.relative(workspace, root) || path.basename(root);
|
|
92
124
|
const file = path.join(root, "carrick.json");
|
|
93
125
|
if (!fs.existsSync(file))
|
|
@@ -334,6 +366,33 @@ export function workflowVariables(body) {
|
|
|
334
366
|
unread.push("DEFAULT_BRANCH");
|
|
335
367
|
return { variables, unread };
|
|
336
368
|
}
|
|
369
|
+
/**
|
|
370
|
+
* The only action ref that keeps a repository on the current scanner.
|
|
371
|
+
*
|
|
372
|
+
* `action.yml` reads the version out of the Cargo.toml sitting beside it in the
|
|
373
|
+
* action checkout, and `v1` is force-moved onto every release commit, so a
|
|
374
|
+
* workflow that says `@v1` picks up each release without anybody touching it.
|
|
375
|
+
* Any other ref — a tag, a branch, a commit SHA — freezes the scanner at
|
|
376
|
+
* whatever shipped with that ref, for as long as the workflow stands.
|
|
377
|
+
*
|
|
378
|
+
* `docs/reference/update-check.md` has the whole picture, including the npm
|
|
379
|
+
* half of it.
|
|
380
|
+
*/
|
|
381
|
+
const FLOATING_ACTION_REF = "carrick-tools/carrick@v1";
|
|
382
|
+
/**
|
|
383
|
+
* A ref that will never move, said plainly.
|
|
384
|
+
*
|
|
385
|
+
* A finding rather than a note, by the rule at the top of this file: a
|
|
386
|
+
* repository whose CI is frozen on an old scanner keeps re-indexing itself with
|
|
387
|
+
* defects that are already fixed, and the whole point of the index is that it
|
|
388
|
+
* is current. The way out is one token in one line.
|
|
389
|
+
*/
|
|
390
|
+
export function pinnedActionRef(ref) {
|
|
391
|
+
if (!ref || ref === FLOATING_ACTION_REF)
|
|
392
|
+
return null;
|
|
393
|
+
return (`${WORKFLOW_PATH} pins \`${ref}\`, so every run here uses the scanner that shipped with that ref ` +
|
|
394
|
+
`and never a newer one. Use \`${FLOATING_ACTION_REF}\`, which moves to each release.`);
|
|
395
|
+
}
|
|
337
396
|
/**
|
|
338
397
|
* The CI workflow of every configured repo, against the template this package
|
|
339
398
|
* renders.
|
|
@@ -357,6 +416,9 @@ export function checkWorkflow(repos) {
|
|
|
357
416
|
continue;
|
|
358
417
|
}
|
|
359
418
|
const { variables, unread } = workflowVariables(body);
|
|
419
|
+
const pin = pinnedActionRef(variables["ACTION_REF"]);
|
|
420
|
+
if (pin)
|
|
421
|
+
lines.push(warn(`${repo.label}: ${pin}`));
|
|
360
422
|
const drift = templateDrift(body, renderTemplate("workflow", variables));
|
|
361
423
|
if (drift.missing.length === 0) {
|
|
362
424
|
matched += 1;
|
|
@@ -633,6 +695,11 @@ export function checkMcp(inspections) {
|
|
|
633
695
|
}
|
|
634
696
|
lines.push(warn(`${client.client}: ${client.detail}.`));
|
|
635
697
|
}
|
|
698
|
+
// An entry whose host is somebody else's, or a file that will not parse, is
|
|
699
|
+
// a finding. An entry that works is not, and there is nothing else this
|
|
700
|
+
// command has to say about one: the install id it used to report missing is
|
|
701
|
+
// a log field, and the repair it printed cost the reader their sign-in
|
|
702
|
+
// (`mcp.ts`, carrick#1365).
|
|
636
703
|
if (connected.length > 0 && findingCount(lines) === 0) {
|
|
637
704
|
lines.push(done(`MCP server connected for ${connected.join(", ")}.`));
|
|
638
705
|
}
|
|
@@ -722,6 +789,96 @@ export function checkIndex(result, failure, git) {
|
|
|
722
789
|
function short(commit) {
|
|
723
790
|
return commit.slice(0, 7);
|
|
724
791
|
}
|
|
792
|
+
/**
|
|
793
|
+
* The version this machine is running, against the version that is published.
|
|
794
|
+
*
|
|
795
|
+
* The one check here that is allowed to touch the network, and the one place in
|
|
796
|
+
* the CLI where the version check is synchronous: `doctor` is the command a
|
|
797
|
+
* person runs when they are already suspicious, so an answer worth two seconds
|
|
798
|
+
* is an answer worth waiting for, and a cached one that is hours old is not
|
|
799
|
+
* what they came for. It still fails open — a registry that says nothing leaves
|
|
800
|
+
* a note, never a finding.
|
|
801
|
+
*
|
|
802
|
+
* Being behind IS a finding, against the instinct that a check must only fire
|
|
803
|
+
* on something broken. Running a build with defects already fixed is the
|
|
804
|
+
* documented cause of a failed scan on a customer's machine, and the fix is one
|
|
805
|
+
* command that this line names.
|
|
806
|
+
*/
|
|
807
|
+
export async function checkVersion(env = process.env, fetchImpl = fetch, now = Date.now()) {
|
|
808
|
+
if (suppressed(env))
|
|
809
|
+
return [];
|
|
810
|
+
const current = currentVersion();
|
|
811
|
+
if (!current)
|
|
812
|
+
return [];
|
|
813
|
+
const cached = readUpdateState(env);
|
|
814
|
+
let latest = cached?.latest ?? null;
|
|
815
|
+
if (isStale(cached, now)) {
|
|
816
|
+
const fetched = await fetchLatest(fetchImpl);
|
|
817
|
+
if (fetched) {
|
|
818
|
+
latest = fetched;
|
|
819
|
+
writeUpdateState({ checked_at: new Date(now).toISOString(), latest }, env);
|
|
820
|
+
}
|
|
821
|
+
}
|
|
822
|
+
if (!latest) {
|
|
823
|
+
return [say(`Running carrick ${current}. The npm registry did not answer, so nothing here says whether it is the current one.`)];
|
|
824
|
+
}
|
|
825
|
+
if (!isNewer(latest, current)) {
|
|
826
|
+
return [done(`Running carrick ${current}, which is the published version.`)];
|
|
827
|
+
}
|
|
828
|
+
const shape = installShape(undefined, env);
|
|
829
|
+
const where = shape.manifest ? ` It is pinned in ${shape.manifest}.` : "";
|
|
830
|
+
return [
|
|
831
|
+
warn(`Running carrick ${current}; ${latest} is published.${where} A scan on an older build can fail on defects that are already fixed — update with \`${shape.command}\`.`),
|
|
832
|
+
];
|
|
833
|
+
}
|
|
834
|
+
/**
|
|
835
|
+
* The carrick a hook here will actually run, against the one that wrote its
|
|
836
|
+
* files (carrick#1372).
|
|
837
|
+
*
|
|
838
|
+
* Different from `checkVersion` above, which asks the registry what is
|
|
839
|
+
* published. This asks the machine: an agent hook is `carrick hook post-edit`,
|
|
840
|
+
* resolved on PATH, so what answers it can be an install from three releases
|
|
841
|
+
* ago that an `npx carrick@latest` run never replaced. The two numbers only
|
|
842
|
+
* exist together here and in the hooks themselves.
|
|
843
|
+
*
|
|
844
|
+
* `findCarrick` rather than `which`, for the reason in `src/global-install.ts`:
|
|
845
|
+
* a `which` inside an npx run answers with the npx cache's own shim.
|
|
846
|
+
*/
|
|
847
|
+
export function checkPathVersion(workspace, found) {
|
|
848
|
+
const recorded = recordedCliVersion(workspace);
|
|
849
|
+
if (recorded === null)
|
|
850
|
+
return [];
|
|
851
|
+
if (found === null) {
|
|
852
|
+
return [
|
|
853
|
+
warn(`carrick ${recorded} set this workspace up, and nothing answers to \`carrick\` on PATH, so the agent hooks here run whatever their command names. \`${installShape().command}\` puts it there.`),
|
|
854
|
+
];
|
|
855
|
+
}
|
|
856
|
+
if (found.version === null) {
|
|
857
|
+
return [
|
|
858
|
+
say(`\`carrick\` on PATH is ${found.binary}, which does not say which version it is; ${recorded} set this workspace up.`),
|
|
859
|
+
];
|
|
860
|
+
}
|
|
861
|
+
if (found.version === recorded) {
|
|
862
|
+
return [done(`\`carrick\` on PATH is ${found.version}, the version that set this workspace up.`)];
|
|
863
|
+
}
|
|
864
|
+
// Which way round it is decides the fix, and one of them is not an upgrade:
|
|
865
|
+
// a `carrick` NEWER than the files is a machine somebody already upgraded, so
|
|
866
|
+
// naming an install command there would name a downgrade.
|
|
867
|
+
const command = globalCommand(installShape(found.real).kind, recorded);
|
|
868
|
+
const fix = isNewer(recorded, found.version)
|
|
869
|
+
? command
|
|
870
|
+
? `Run \`${command.join(" ")}\`, or \`carrick init\` if ${found.version} is the one you want here.`
|
|
871
|
+
: `Update ${found.binary} where it is pinned, or run \`carrick init\` if ${found.version} is the one you want here.`
|
|
872
|
+
: "Run `carrick init` to bring the hooks and skills here up to date with it.";
|
|
873
|
+
return [
|
|
874
|
+
warn(`\`carrick\` on PATH is ${found.version} and ${recorded} set this workspace up, so every agent hook here runs ${found.version}. ${fix}`),
|
|
875
|
+
];
|
|
876
|
+
}
|
|
877
|
+
/** The global carrick this machine has, with its version read. */
|
|
878
|
+
function pathCarrick() {
|
|
879
|
+
const found = findCarrick();
|
|
880
|
+
return found === null ? null : { ...found, version: installedVersion(found) };
|
|
881
|
+
}
|
|
725
882
|
/** Print one check's lines through the shared renderer. */
|
|
726
883
|
function print(out, lines) {
|
|
727
884
|
for (const line of lines) {
|
|
@@ -748,6 +905,8 @@ export async function doctor(argv, out = createOutput()) {
|
|
|
748
905
|
}
|
|
749
906
|
const repos = configuredRepos(workspace);
|
|
750
907
|
const lines = [
|
|
908
|
+
...(await checkVersion()),
|
|
909
|
+
...checkPathVersion(workspace, pathCarrick()),
|
|
751
910
|
...checkDeclaredPaths(repos),
|
|
752
911
|
...checkWorkflow(repos),
|
|
753
912
|
...checkHooks(workspace, realMachine()),
|
package/dist/init/doctor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/init/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/init/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/init/hosted.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import type { StepReport } from "./output.ts";
|
|
2
|
-
/**
|
|
3
|
-
|
|
1
|
+
import type { StepProgress, StepReport } from "./output.ts";
|
|
2
|
+
/**
|
|
3
|
+
* One run of the scanner binary, injected so tests spawn nothing.
|
|
4
|
+
*
|
|
5
|
+
* `watch` asks for the run's progress markers: the download is the one call
|
|
6
|
+
* here that takes minutes, and `status --json` is a read whose output is the
|
|
7
|
+
* answer rather than a thing to draw.
|
|
8
|
+
*/
|
|
9
|
+
export type NativeRun = (args: string[], watch?: boolean) => Promise<{
|
|
4
10
|
status: number | null;
|
|
5
11
|
stdout: string;
|
|
6
12
|
stderr: string;
|
|
@@ -27,6 +33,25 @@ export type HostedDownload =
|
|
|
27
33
|
kind: "failed";
|
|
28
34
|
problem: string;
|
|
29
35
|
};
|
|
36
|
+
/**
|
|
37
|
+
* What the download says while it runs: how far through, and how long so far.
|
|
38
|
+
*
|
|
39
|
+
* Read off the scanner's own markers rather than timed here, because only the
|
|
40
|
+
* scanner knows what it is on (`src/progress.rs`). Two counts arrive: the
|
|
41
|
+
* services of this workspace it has finished, which is the one a reader asked
|
|
42
|
+
* for, and the files inside the one it is on, which is the one that moves.
|
|
43
|
+
*
|
|
44
|
+
* No estimate of what is left. An estimate needs work remaining and a measured
|
|
45
|
+
* rate for it, and neither is available here: the hosted half is two requests
|
|
46
|
+
* for the whole workspace, so there are no bytes remaining to divide, and the
|
|
47
|
+
* local half is a re-scan whose services differ in size by two orders of
|
|
48
|
+
* magnitude (carrick#1365). A number that cannot be derived is not shown.
|
|
49
|
+
*/
|
|
50
|
+
export declare function downloadProgress(say: StepProgress, now?: () => number): (line: string) => void;
|
|
51
|
+
/** The label the step carries, and the stem of every line it writes. */
|
|
52
|
+
export declare const DOWNLOAD_LABEL = "Downloading your index";
|
|
53
|
+
/** The notice prefix the scanner states the hosted read's size under. */
|
|
54
|
+
export declare const HOSTED_BYTES = "hosted bytes ";
|
|
30
55
|
/**
|
|
31
56
|
* A runner for the scanner, told whether the terminal is somebody else's.
|
|
32
57
|
*
|
|
@@ -35,7 +60,7 @@ export type HostedDownload =
|
|
|
35
60
|
* one — a pipe, CI, an agent's shell — the progress is the only sign a
|
|
36
61
|
* minutes-long read is alive (carrick#1021, carrick#1026).
|
|
37
62
|
*/
|
|
38
|
-
export declare function nativeRunner(quiet: boolean): NativeRun;
|
|
63
|
+
export declare function nativeRunner(quiet: boolean, progress?: StepProgress | null): NativeRun;
|
|
39
64
|
/**
|
|
40
65
|
* Populate `.carrick/` from the hosted index, and say what arrived.
|
|
41
66
|
*
|
|
@@ -56,4 +81,4 @@ export declare function downloadHostedIndex(workspace: string, run?: NativeRun):
|
|
|
56
81
|
* This is the step's report, so it is also the line the spinner stops on: one
|
|
57
82
|
* line for the hosted read, in a terminal as everywhere else (carrick#1032).
|
|
58
83
|
*/
|
|
59
|
-
export declare function hostedReport(outcome: HostedDownload): StepReport;
|
|
84
|
+
export declare function hostedReport(outcome: HostedDownload, seconds?: number | null): StepReport;
|
package/dist/init/hosted.js
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
import { spawn } from "node:child_process";
|
|
21
21
|
import { parseStatusResult } from "../contract.js";
|
|
22
22
|
import { nativeEnv, resolveNativeBinary } from "../native.js";
|
|
23
|
+
import { elapsed, parseMarker } from "../scan.js";
|
|
23
24
|
/**
|
|
24
25
|
* Run the scanner, letting its own progress reach the terminal.
|
|
25
26
|
*
|
|
@@ -30,7 +31,7 @@ import { nativeEnv, resolveNativeBinary } from "../native.js";
|
|
|
30
31
|
* in a sentence of its own. Its stdout is the index map, which this command
|
|
31
32
|
* summarises in its own words, so that is captured and dropped.
|
|
32
33
|
*/
|
|
33
|
-
function spawnNative(args, quiet) {
|
|
34
|
+
function spawnNative(args, quiet, progress) {
|
|
34
35
|
const native = resolveNativeBinary();
|
|
35
36
|
if (!native.binary) {
|
|
36
37
|
return Promise.resolve({
|
|
@@ -39,13 +40,18 @@ function spawnNative(args, quiet) {
|
|
|
39
40
|
stderr: native.problem ?? "The Carrick scanner is not installed.",
|
|
40
41
|
});
|
|
41
42
|
}
|
|
43
|
+
const watching = progress !== null;
|
|
42
44
|
return new Promise((resolve) => {
|
|
43
45
|
const child = spawn(native.binary, args, {
|
|
44
|
-
|
|
46
|
+
// The markers are written only when a parent asks for them, so a run
|
|
47
|
+
// nobody is watching is unchanged (`src/progress.rs`).
|
|
48
|
+
env: watching ? { ...nativeEnv(), CARRICK_PROGRESS: "1" } : nativeEnv(),
|
|
45
49
|
stdio: ["ignore", "pipe", "pipe"],
|
|
46
50
|
});
|
|
47
51
|
let stdout = "";
|
|
48
52
|
let stderr = "";
|
|
53
|
+
let rest = "";
|
|
54
|
+
const report = progress === null ? null : downloadProgress(progress);
|
|
49
55
|
child.stdout.setEncoding("utf8");
|
|
50
56
|
child.stdout.on("data", (chunk) => {
|
|
51
57
|
stdout += chunk;
|
|
@@ -55,17 +61,73 @@ function spawnNative(args, quiet) {
|
|
|
55
61
|
// Bounded: a scan of a large workspace prints thousands of lines, and
|
|
56
62
|
// all this holds them for is the sentence at the end.
|
|
57
63
|
stderr = `${stderr}${chunk}`.slice(-8192);
|
|
64
|
+
if (report !== null) {
|
|
65
|
+
const lines = (rest + chunk).split("\n");
|
|
66
|
+
rest = lines.pop() ?? "";
|
|
67
|
+
for (const line of lines)
|
|
68
|
+
report(line);
|
|
69
|
+
}
|
|
58
70
|
// Quiet under a spinner: a spinner owns its line and rewrites it, and a
|
|
59
71
|
// scanner line landing in the middle of that is a corrupted terminal.
|
|
60
72
|
// Where there is no spinner — a pipe, CI, an agent shell — the progress
|
|
61
|
-
// is the only sign a minutes-long read is alive (carrick#1021).
|
|
73
|
+
// is the only sign a minutes-long read is alive (carrick#1021). The
|
|
74
|
+
// marker lines are the spinner's own input and are never written through.
|
|
62
75
|
if (!quiet && !args.includes("--json"))
|
|
63
|
-
process.stderr.write(chunk);
|
|
76
|
+
process.stderr.write(withoutMarkers(chunk));
|
|
64
77
|
});
|
|
65
78
|
child.on("error", (error) => resolve({ status: 1, stdout: "", stderr: error.message }));
|
|
66
79
|
child.on("close", (code) => resolve({ status: code, stdout, stderr }));
|
|
67
80
|
});
|
|
68
81
|
}
|
|
82
|
+
/** A chunk with the machine-readable lines taken out of it. */
|
|
83
|
+
function withoutMarkers(chunk) {
|
|
84
|
+
if (!chunk.includes("@carrick-"))
|
|
85
|
+
return chunk;
|
|
86
|
+
return chunk
|
|
87
|
+
.split("\n")
|
|
88
|
+
.filter((line) => parseMarker(line) === null)
|
|
89
|
+
.join("\n");
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* What the download says while it runs: how far through, and how long so far.
|
|
93
|
+
*
|
|
94
|
+
* Read off the scanner's own markers rather than timed here, because only the
|
|
95
|
+
* scanner knows what it is on (`src/progress.rs`). Two counts arrive: the
|
|
96
|
+
* services of this workspace it has finished, which is the one a reader asked
|
|
97
|
+
* for, and the files inside the one it is on, which is the one that moves.
|
|
98
|
+
*
|
|
99
|
+
* No estimate of what is left. An estimate needs work remaining and a measured
|
|
100
|
+
* rate for it, and neither is available here: the hosted half is two requests
|
|
101
|
+
* for the whole workspace, so there are no bytes remaining to divide, and the
|
|
102
|
+
* local half is a re-scan whose services differ in size by two orders of
|
|
103
|
+
* magnitude (carrick#1365). A number that cannot be derived is not shown.
|
|
104
|
+
*/
|
|
105
|
+
export function downloadProgress(say, now = Date.now) {
|
|
106
|
+
const startedAt = now();
|
|
107
|
+
let services = "";
|
|
108
|
+
let bytes = "";
|
|
109
|
+
return (line) => {
|
|
110
|
+
const marker = parseMarker(line);
|
|
111
|
+
if (marker === null)
|
|
112
|
+
return;
|
|
113
|
+
if (marker.kind === "progress") {
|
|
114
|
+
const update = marker.update;
|
|
115
|
+
services = `${update.service_index} of ${update.service_total} services`;
|
|
116
|
+
say([DOWNLOAD_LABEL, `${services}${bytes}, ${elapsed((now() - startedAt) / 1000)}`].join(": "));
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
// The hosted half says how much it read; the scanner states it as a notice
|
|
120
|
+
// because it is one fact, once, not a count that ticks.
|
|
121
|
+
if (marker.kind === "notice" && marker.text.startsWith(HOSTED_BYTES)) {
|
|
122
|
+
bytes = `, ${marker.text.slice(HOSTED_BYTES.length)}`;
|
|
123
|
+
say([DOWNLOAD_LABEL, `${services || "reading"}${bytes}, ${elapsed((now() - startedAt) / 1000)}`].join(": "));
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/** The label the step carries, and the stem of every line it writes. */
|
|
128
|
+
export const DOWNLOAD_LABEL = "Downloading your index";
|
|
129
|
+
/** The notice prefix the scanner states the hosted read's size under. */
|
|
130
|
+
export const HOSTED_BYTES = "hosted bytes ";
|
|
69
131
|
/** The first line of a failure, for a sentence that has to fit on one. */
|
|
70
132
|
function firstLine(text, fallback) {
|
|
71
133
|
const line = text
|
|
@@ -82,8 +144,8 @@ function firstLine(text, fallback) {
|
|
|
82
144
|
* one — a pipe, CI, an agent's shell — the progress is the only sign a
|
|
83
145
|
* minutes-long read is alive (carrick#1021, carrick#1026).
|
|
84
146
|
*/
|
|
85
|
-
export function nativeRunner(quiet) {
|
|
86
|
-
return (args) => spawnNative(args, quiet);
|
|
147
|
+
export function nativeRunner(quiet, progress = null) {
|
|
148
|
+
return (args, watch = false) => spawnNative(args, quiet, watch ? progress : null);
|
|
87
149
|
}
|
|
88
150
|
/**
|
|
89
151
|
* Populate `.carrick/` from the hosted index, and say what arrived.
|
|
@@ -93,7 +155,7 @@ export function nativeRunner(quiet) {
|
|
|
93
155
|
* read of that workspace finds.
|
|
94
156
|
*/
|
|
95
157
|
export async function downloadHostedIndex(workspace, run = nativeRunner(false)) {
|
|
96
|
-
const refreshed = await run(["refresh", "--workspace", workspace]);
|
|
158
|
+
const refreshed = await run(["refresh", "--workspace", workspace], true);
|
|
97
159
|
if (refreshed.status !== 0) {
|
|
98
160
|
return { kind: "failed", problem: firstLine(refreshed.stderr, "the scanner gave no reason") };
|
|
99
161
|
}
|
|
@@ -160,11 +222,15 @@ function stateClause(state) {
|
|
|
160
222
|
* This is the step's report, so it is also the line the spinner stops on: one
|
|
161
223
|
* line for the hosted read, in a terminal as everywhere else (carrick#1032).
|
|
162
224
|
*/
|
|
163
|
-
export function hostedReport(outcome) {
|
|
225
|
+
export function hostedReport(outcome, seconds = null) {
|
|
164
226
|
const plural = (count) => `${count} service${count === 1 ? "" : "s"}`;
|
|
227
|
+
// The total and the time, on the line that stays once the ticking one is
|
|
228
|
+
// gone: a wait of minutes that ends on a line with no duration leaves the
|
|
229
|
+
// reader to guess whether that was normal (carrick#1365).
|
|
230
|
+
const took = seconds === null ? "" : ` in ${elapsed(seconds)}`;
|
|
165
231
|
switch (outcome.kind) {
|
|
166
232
|
case "downloaded":
|
|
167
|
-
return { kind: "done", text: `Hosted index for ${plural(outcome.services)} downloaded into .carrick
|
|
233
|
+
return { kind: "done", text: `Hosted index for ${plural(outcome.services)} downloaded into .carrick/${took}` };
|
|
168
234
|
case "version_mismatch":
|
|
169
235
|
return {
|
|
170
236
|
kind: "warn",
|