carrick 0.3.82 → 0.3.84
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 +62 -30
- package/bin/carrick.mjs +45 -2
- package/dist/contract.d.ts +17 -0
- package/dist/contract.js.map +1 -1
- package/dist/hook/apply-patch.d.ts +13 -0
- package/dist/hook/apply-patch.js +100 -0
- package/dist/hook/apply-patch.js.map +1 -0
- package/dist/hook/post-edit.d.ts +30 -1
- package/dist/hook/post-edit.js +95 -24
- package/dist/hook/post-edit.js.map +1 -1
- package/dist/hook/reuse.d.ts +97 -0
- package/dist/hook/reuse.js +245 -0
- package/dist/hook/reuse.js.map +1 -0
- package/dist/hook/stop.d.ts +3 -0
- package/dist/hook/stop.js +76 -0
- package/dist/hook/stop.js.map +1 -0
- package/dist/hook/user-prompt.d.ts +9 -0
- package/dist/hook/user-prompt.js +79 -0
- package/dist/hook/user-prompt.js.map +1 -0
- package/dist/init/codex.d.ts +51 -0
- package/dist/init/codex.js +167 -0
- package/dist/init/codex.js.map +1 -0
- package/dist/init/connect.d.ts +13 -0
- package/dist/init/connect.js +21 -15
- package/dist/init/connect.js.map +1 -1
- package/dist/init/doctor.d.ts +57 -0
- package/dist/init/doctor.js +132 -3
- package/dist/init/doctor.js.map +1 -1
- package/dist/init/files.d.ts +15 -0
- package/dist/init/files.js +20 -1
- package/dist/init/files.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 +54 -0
- package/dist/init/outdated.js +175 -0
- package/dist/init/outdated.js.map +1 -0
- package/dist/init/output.d.ts +72 -3
- package/dist/init/output.js +187 -23
- package/dist/init/output.js.map +1 -1
- package/dist/init/projects.d.ts +27 -13
- package/dist/init/projects.js +48 -50
- package/dist/init/projects.js.map +1 -1
- package/dist/init/remove.d.ts +0 -2
- package/dist/init/remove.js +61 -15
- package/dist/init/remove.js.map +1 -1
- package/dist/init/repos.d.ts +34 -0
- package/dist/init/repos.js +77 -0
- package/dist/init/repos.js.map +1 -1
- package/dist/init/run.d.ts +148 -26
- package/dist/init/run.js +577 -125
- package/dist/init/run.js.map +1 -1
- package/dist/init/settings.d.ts +20 -0
- package/dist/init/settings.js +42 -4
- package/dist/init/settings.js.map +1 -1
- package/dist/init/task-skills.d.ts +27 -0
- package/dist/init/task-skills.js +64 -1
- package/dist/init/task-skills.js.map +1 -1
- package/dist/init/workspace-file.d.ts +73 -0
- package/dist/init/workspace-file.js +173 -0
- package/dist/init/workspace-file.js.map +1 -0
- package/dist/render.d.ts +16 -0
- package/dist/render.js +57 -6
- package/dist/render.js.map +1 -1
- package/package.json +7 -6
- package/plugin/hooks/hooks.json +11 -0
- package/sidecar/dist/src/capture/api.d.ts +23 -1
- package/sidecar/dist/src/capture/check-classify.d.ts +10 -1
- package/sidecar/dist/src/capture/check-classify.js +96 -9
- package/sidecar/dist/src/capture/check-deep.d.ts +16 -4
- package/sidecar/dist/src/capture/check-deep.js +21 -17
- package/sidecar/dist/src/capture/check-fields.d.ts +112 -0
- package/sidecar/dist/src/capture/check-fields.js +311 -0
- package/sidecar/dist/src/capture/check-probe.d.ts +21 -1
- package/sidecar/dist/src/capture/check-probe.js +39 -0
- package/sidecar/dist/src/capture/check.js +14 -2
- package/sidecar/dist/src/capture/index.js +6 -1
- 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/validators.d.ts +40 -40
- package/sidecar/dist/src/validators.js +6 -1
- package/templates/skills/carrick-census.md +18 -9
- package/templates/skills/carrick-drift.md +7 -1
- package/templates/skills/carrick-impact.md +3 -1
- package/templates/skills/carrick-reuse.md +43 -26
package/dist/init/mcp.js
CHANGED
|
@@ -54,20 +54,6 @@ export function mcpLine(installId = installIdOrNull()) {
|
|
|
54
54
|
const base = `claude mcp add --scope user --transport http ${MCP_NAME} ${MCP_URL}`;
|
|
55
55
|
return installId === null ? base : `${base} --header "${INSTALL_ID_HEADER}: ${installId}"`;
|
|
56
56
|
}
|
|
57
|
-
/**
|
|
58
|
-
* What puts the install id on a Claude Code entry that has none.
|
|
59
|
-
*
|
|
60
|
-
* `claude mcp add` will not edit an entry it already holds, so the id can only
|
|
61
|
-
* go on by writing the entry again — and THAT is the user's call, not this
|
|
62
|
-
* command's. Removing somebody's server takes with it anything else on the
|
|
63
|
-
* entry and sends the next session back through the server's OAuth, which is
|
|
64
|
-
* not a thing to do to a machine that was only being set up. So `carrick init`
|
|
65
|
-
* prints this pair and changes nothing; the file clients, whose entries can be
|
|
66
|
-
* merged in place, are still done for them.
|
|
67
|
-
*/
|
|
68
|
-
export function claudeRestampLine(installId) {
|
|
69
|
-
return `claude mcp remove --scope user ${MCP_NAME} && ${mcpLine(installId)}`;
|
|
70
|
-
}
|
|
71
57
|
export function realEnvironment() {
|
|
72
58
|
return {
|
|
73
59
|
onPath: (command) => spawnSync(process.platform === "win32" ? "where" : "which", [command], {
|
|
@@ -146,28 +132,6 @@ const FILE_CLIENTS = [
|
|
|
146
132
|
function isRecord(value) {
|
|
147
133
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
148
134
|
}
|
|
149
|
-
/**
|
|
150
|
-
* Our entry with this machine's install id on it, or null to leave it alone.
|
|
151
|
-
*
|
|
152
|
-
* Three things make an existing entry none of our business: a client whose
|
|
153
|
-
* format has no place to put a header, an entry naming some other host — the
|
|
154
|
-
* same gate the remover uses — and one that already carries an id, which a
|
|
155
|
-
* re-run must not churn. Everything else on the entry, every other header
|
|
156
|
-
* included, is carried through: the id is added to what is there, never
|
|
157
|
-
* written over it.
|
|
158
|
-
*/
|
|
159
|
-
function stampInstallId(entry, client, installId) {
|
|
160
|
-
if (!client.headers || installId === null)
|
|
161
|
-
return null;
|
|
162
|
-
if (!isRecord(entry) || !isCarrickUrl(entryUrl(entry)))
|
|
163
|
-
return null;
|
|
164
|
-
const headers = isRecord(entry["headers"]) ? { ...entry["headers"] } : {};
|
|
165
|
-
const current = headers[INSTALL_ID_HEADER];
|
|
166
|
-
if (typeof current === "string" && INSTALL_ID_PATTERN.test(current))
|
|
167
|
-
return null;
|
|
168
|
-
headers[INSTALL_ID_HEADER] = installId;
|
|
169
|
-
return { ...entry, headers };
|
|
170
|
-
}
|
|
171
135
|
/** The document back, with `servers` in the container it came from. */
|
|
172
136
|
function withServers(document, container, servers) {
|
|
173
137
|
const merged = {};
|
|
@@ -198,16 +162,11 @@ export function mergeServerEntry(client, existing, installId = null) {
|
|
|
198
162
|
? "servers"
|
|
199
163
|
: client.container;
|
|
200
164
|
const servers = isRecord(document[container]) ? { ...document[container] } : {};
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
if (stamped === null)
|
|
207
|
-
return { body: `${JSON.stringify(document, null, 2)}\n`, state: "present" };
|
|
208
|
-
servers[MCP_NAME] = stamped;
|
|
209
|
-
return { body: withServers(document, container, servers), state: "written" };
|
|
210
|
-
}
|
|
165
|
+
// Connected already, and that is the end of it: an entry that answers is not
|
|
166
|
+
// edited to carry a header nobody asked for (see the note above
|
|
167
|
+
// `mergeServerEntry`'s file header).
|
|
168
|
+
if (MCP_NAME in servers)
|
|
169
|
+
return { body: `${JSON.stringify(document, null, 2)}\n`, state: "present" };
|
|
211
170
|
// The URL key and the type field are read off a sibling where there is one.
|
|
212
171
|
const siblings = Object.values(servers).filter(isRecord);
|
|
213
172
|
const urlKey = siblings.some((entry) => "serverUrl" in entry)
|
|
@@ -246,14 +205,7 @@ function configureClaudeCode(env) {
|
|
|
246
205
|
// from one that carries it.
|
|
247
206
|
const read = env.capture("claude", ["mcp", "get", MCP_NAME]);
|
|
248
207
|
if (read.status === 0) {
|
|
249
|
-
|
|
250
|
-
if (stamped || installId === null || !read.stdout.includes(MCP_HOST)) {
|
|
251
|
-
return { client: "Claude Code", state: "present", detail: `already connected as "${MCP_NAME}"` };
|
|
252
|
-
}
|
|
253
|
-
// Ours, and older than the header. The entry stays exactly as it is: see
|
|
254
|
-
// `claudeRestampLine` for why this command will not take it out and write
|
|
255
|
-
// it again on somebody's behalf.
|
|
256
|
-
return { client: "Claude Code", state: "unstamped", detail: unstampedRepair(installId) };
|
|
208
|
+
return { client: "Claude Code", state: "present", detail: `already connected as "${MCP_NAME}"` };
|
|
257
209
|
}
|
|
258
210
|
const status = env.run("claude", claudeAddArgs(installId));
|
|
259
211
|
return status === 0
|
|
@@ -286,13 +238,52 @@ function configureFileClient(env, client) {
|
|
|
286
238
|
};
|
|
287
239
|
}
|
|
288
240
|
}
|
|
289
|
-
/**
|
|
290
|
-
|
|
241
|
+
/** What each file client calls its command, for the stronger signal above. */
|
|
242
|
+
const CLIENT_COMMANDS = {
|
|
243
|
+
Cursor: "cursor",
|
|
244
|
+
Windsurf: "windsurf",
|
|
245
|
+
"VS Code": "code",
|
|
246
|
+
};
|
|
247
|
+
/**
|
|
248
|
+
* The editors this machine could have an entry written for, with their files.
|
|
249
|
+
*
|
|
250
|
+
* Everything outside the workspace that `carrick init` would touch is in this
|
|
251
|
+
* list, so the question it is printed under names every file the answer covers.
|
|
252
|
+
* An editor whose configuration directory is not there is not offered: it is
|
|
253
|
+
* not on this machine, and a question about it is a question about nothing.
|
|
254
|
+
*/
|
|
255
|
+
export function offeredFileClients(env = realEnvironment()) {
|
|
256
|
+
const offered = [];
|
|
257
|
+
for (const client of FILE_CLIENTS) {
|
|
258
|
+
const directory = client.directory(env);
|
|
259
|
+
const file = client.file(env);
|
|
260
|
+
if (directory === null || file === null)
|
|
261
|
+
continue;
|
|
262
|
+
if (!env.exists(directory) && !env.exists(file))
|
|
263
|
+
continue;
|
|
264
|
+
const command = CLIENT_COMMANDS[client.name];
|
|
265
|
+
offered.push({ name: client.name, file, installed: command !== undefined && env.onPath(command) });
|
|
266
|
+
}
|
|
267
|
+
return offered;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Configure Claude Code, and the editors that were named in the answer.
|
|
271
|
+
*
|
|
272
|
+
* `editors` is the set of [`offeredFileClients`] names this run may write for.
|
|
273
|
+
* It is a parameter and not a detection because the detection is what the
|
|
274
|
+
* question was asked about: `~/.cursor/mcp.json` is somebody's file, outside
|
|
275
|
+
* the workspace, for an editor they may not use, and it used to be written on
|
|
276
|
+
* the strength of a yes to "Write the proposal and configure hooks?"
|
|
277
|
+
* (carrick#1365).
|
|
278
|
+
*/
|
|
279
|
+
export function connectMcpClients(editors, env = realEnvironment()) {
|
|
291
280
|
const outcomes = [];
|
|
292
281
|
const claude = configureClaudeCode(env);
|
|
293
282
|
if (claude)
|
|
294
283
|
outcomes.push(claude);
|
|
295
284
|
for (const client of FILE_CLIENTS) {
|
|
285
|
+
if (!editors.includes(client.name))
|
|
286
|
+
continue;
|
|
296
287
|
const outcome = configureFileClient(env, client);
|
|
297
288
|
if (outcome)
|
|
298
289
|
outcomes.push(outcome);
|
|
@@ -304,30 +295,6 @@ function entryUrl(entry) {
|
|
|
304
295
|
const url = entry["url"] ?? entry["serverUrl"];
|
|
305
296
|
return typeof url === "string" ? url : null;
|
|
306
297
|
}
|
|
307
|
-
/** Whether an entry carries an install id the server would accept. */
|
|
308
|
-
function hasInstallId(entry) {
|
|
309
|
-
if (!isRecord(entry) || !isRecord(entry["headers"]))
|
|
310
|
-
return false;
|
|
311
|
-
const value = entry["headers"][INSTALL_ID_HEADER];
|
|
312
|
-
return typeof value === "string" && INSTALL_ID_PATTERN.test(value);
|
|
313
|
-
}
|
|
314
|
-
/**
|
|
315
|
-
* What is said about an entry with no install id, and what to do about it.
|
|
316
|
-
*
|
|
317
|
-
* An entry written before this release answers questions perfectly well; the
|
|
318
|
-
* only thing wrong with it is that nothing it asks can be attributed to this
|
|
319
|
-
* machine. For a client whose file is merged in place, the repair is the setup
|
|
320
|
-
* command. For Claude Code, whose entry can only be stamped by writing it
|
|
321
|
-
* again, it is the pair of commands that does that — printed, never run
|
|
322
|
-
* (`claudeRestampLine`). A machine with no id yet is told to run the setup,
|
|
323
|
-
* because that is what mints one.
|
|
324
|
-
*/
|
|
325
|
-
const UNSTAMPED = "MCP entry has no install id; run carrick init";
|
|
326
|
-
function unstampedRepair(installId) {
|
|
327
|
-
return installId === null
|
|
328
|
-
? UNSTAMPED
|
|
329
|
-
: `MCP entry has no install id. To add it: ${claudeRestampLine(installId)}`;
|
|
330
|
-
}
|
|
331
298
|
/** Whether a URL points at the Carrick MCP server this package installs. */
|
|
332
299
|
function isCarrickUrl(url) {
|
|
333
300
|
if (url === null)
|
|
@@ -470,10 +437,6 @@ export function inspectMcpClients(env = realEnvironment()) {
|
|
|
470
437
|
detail: `"${MCP_NAME}" there does not point at ${MCP_HOST}`,
|
|
471
438
|
});
|
|
472
439
|
}
|
|
473
|
-
else if (!read.stdout.includes(INSTALL_ID_HEADER)) {
|
|
474
|
-
// Read, never minted: `carrick doctor` runs this one.
|
|
475
|
-
found.push({ client: "Claude Code", state: "unstamped", detail: unstampedRepair(env.storedInstallId()) });
|
|
476
|
-
}
|
|
477
440
|
else {
|
|
478
441
|
found.push({ client: "Claude Code", state: "connected", detail: MCP_URL });
|
|
479
442
|
}
|
|
@@ -520,10 +483,6 @@ export function inspectMcpClients(env = realEnvironment()) {
|
|
|
520
483
|
});
|
|
521
484
|
continue;
|
|
522
485
|
}
|
|
523
|
-
if (client.headers && !hasInstallId(entry)) {
|
|
524
|
-
found.push({ client: client.name, state: "unstamped", detail: UNSTAMPED });
|
|
525
|
-
continue;
|
|
526
|
-
}
|
|
527
486
|
found.push({ client: client.name, state: "connected", detail: url ?? MCP_URL });
|
|
528
487
|
}
|
|
529
488
|
return found;
|
package/dist/init/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/init/mcp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/init/mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/** What is installed here and is not what this version writes. */
|
|
2
|
+
export type Outdated = {
|
|
3
|
+
/** Skill files still ours, carrying a body an older version rendered. */
|
|
4
|
+
skills: string[];
|
|
5
|
+
/** Hook files whose entries are not the ones this version installs. */
|
|
6
|
+
hooks: string[];
|
|
7
|
+
};
|
|
8
|
+
/** Every file in it, for a caller that only needs the count and the names. */
|
|
9
|
+
export declare function outdatedFiles(found: Outdated): string[];
|
|
10
|
+
/**
|
|
11
|
+
* What an upgrade left behind in this workspace.
|
|
12
|
+
*
|
|
13
|
+
* Reads files and nothing else: no network, no subprocess, no client
|
|
14
|
+
* inspection — it runs from any command, so it has to cost nothing. The MCP
|
|
15
|
+
* entry is deliberately not here: reading it can spawn an agent client's own
|
|
16
|
+
* command, and `carrick doctor` is where that belongs.
|
|
17
|
+
*/
|
|
18
|
+
export declare function outdatedInstall(workspace: string): Outdated;
|
|
19
|
+
/**
|
|
20
|
+
* The nearest folder at or above this one that `carrick init` has run in.
|
|
21
|
+
*
|
|
22
|
+
* The same marker every other surface roots on — the `.carrick` directory, not
|
|
23
|
+
* a settings file or a git repository — so a command typed inside one repo of
|
|
24
|
+
* a folder asks about the folder's install, which is the install there is.
|
|
25
|
+
* Null where there is none, and a machine that never ran init never hears from
|
|
26
|
+
* this.
|
|
27
|
+
*/
|
|
28
|
+
export declare function initialisedRoot(from: string): string | null;
|
|
29
|
+
/**
|
|
30
|
+
* The one line, and how often it is allowed to be said.
|
|
31
|
+
*
|
|
32
|
+
* Once a day, from any command that prints for a person to read. It is a
|
|
33
|
+
* sentence about the install, not about the command somebody typed, so it goes
|
|
34
|
+
* to stderr and never into an answer.
|
|
35
|
+
*/
|
|
36
|
+
export declare function noticeFile(home?: string): string;
|
|
37
|
+
/** Delete the throttle file, as `carrick remove` does. True when there was one. */
|
|
38
|
+
export declare function removeNotice(home?: string): boolean;
|
|
39
|
+
export type NoticeEnvironment = {
|
|
40
|
+
home: string;
|
|
41
|
+
now: Date;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* The line to print here, or null.
|
|
45
|
+
*
|
|
46
|
+
* Null covers every ordinary run: a folder Carrick was never set up in, an
|
|
47
|
+
* install that is current, a day this has already been said on, and anything
|
|
48
|
+
* at all going wrong while asking. A command's real work must never fail
|
|
49
|
+
* because of a notice about it.
|
|
50
|
+
*
|
|
51
|
+
* The day is only recorded when there was something to say, so an install that
|
|
52
|
+
* goes out of date an hour from now is still named an hour from now.
|
|
53
|
+
*/
|
|
54
|
+
export declare function refreshNotice(workspace: string, environment?: NoticeEnvironment): string | null;
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
// Files this package installed, and whether they are the ones it installs now.
|
|
2
|
+
//
|
|
3
|
+
// `npm install -g carrick@latest` changes the binary and nothing else. The
|
|
4
|
+
// hook entries in a settings file, the Codex ones, and the eight task skill
|
|
5
|
+
// bodies were written by whichever version first ran `carrick init` here, and
|
|
6
|
+
// nothing re-reads them: a repo can carry a hook that was replaced three
|
|
7
|
+
// releases ago and never be told (carrick#1333).
|
|
8
|
+
//
|
|
9
|
+
// What identifies a file as ours, and as current, is its content — not a
|
|
10
|
+
// version number written into it:
|
|
11
|
+
//
|
|
12
|
+
// * A **skill** carries a digest of the body this package rendered, and
|
|
13
|
+
// `inspectTaskSkills` compares it against the body this version renders. A
|
|
14
|
+
// release that does not change a skill leaves that skill current, which a
|
|
15
|
+
// version stamp could not say.
|
|
16
|
+
// * A **hook entry** is identified by what it runs: its event, matcher,
|
|
17
|
+
// command and timeout, which is exactly what `expectedCarrickHooks` states
|
|
18
|
+
// and what survives any formatter run over somebody's settings file. That
|
|
19
|
+
// is also why nothing here writes a marker into those files: a settings
|
|
20
|
+
// document belongs to the agent that validates it, and a key it does not
|
|
21
|
+
// know is a key it may one day reject — at which point every hook in the
|
|
22
|
+
// file stops running, silently, because the hooks are built never to fail an
|
|
23
|
+
// edit (carrick#837).
|
|
24
|
+
//
|
|
25
|
+
// The cost of reading content rather than a version is one consequence, and it
|
|
26
|
+
// is the right one: a hook entry somebody edited by hand reads the same as one
|
|
27
|
+
// an older version wrote, and `carrick init` rewrites it either way. Their
|
|
28
|
+
// file keeps everything else in it.
|
|
29
|
+
//
|
|
30
|
+
// The refresh is `carrick init` run again. It writes only what is still ours —
|
|
31
|
+
// an edited skill is named and left — so it is safe to run unattended.
|
|
32
|
+
// Reference: `docs/reference/task-skills.md`.
|
|
33
|
+
import fs from "node:fs";
|
|
34
|
+
import os from "node:os";
|
|
35
|
+
import path from "node:path";
|
|
36
|
+
import { ancestors, hasMarker } from "../root.js";
|
|
37
|
+
import { CODEX_HOOKS_FILE, codexInUse, expectedCodexHooks, readHooksFile } from "./codex.js";
|
|
38
|
+
import { expectedCarrickHooks, installedCarrickHooks, SETTINGS_FILES, } from "./settings.js";
|
|
39
|
+
import { inspectTaskSkills } from "./task-skills.js";
|
|
40
|
+
/** Every file in it, for a caller that only needs the count and the names. */
|
|
41
|
+
export function outdatedFiles(found) {
|
|
42
|
+
return [...found.hooks, ...found.skills];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Whether a hook document holds entries this version no longer writes.
|
|
46
|
+
*
|
|
47
|
+
* The prefix is the file's own, as `carrick doctor` reads it: an install on a
|
|
48
|
+
* machine with no `carrick` on PATH wrote absolute paths, and comparing those
|
|
49
|
+
* against a bare `carrick` would report every entry as wrong on every run.
|
|
50
|
+
* A file holding no entry of ours is not out of date — it is a file init has
|
|
51
|
+
* never written to, which is a different finding and not this one.
|
|
52
|
+
*/
|
|
53
|
+
function entriesAreStale(body, expected) {
|
|
54
|
+
let installed;
|
|
55
|
+
try {
|
|
56
|
+
installed = installedCarrickHooks(body);
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// Not JSON. `carrick doctor` says so in its own words; a line printed by
|
|
60
|
+
// an unrelated command must not be the way somebody learns it.
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
if (installed.length === 0)
|
|
64
|
+
return false;
|
|
65
|
+
const prefix = installed[0].command.split(/\s+hook\s+/)[0];
|
|
66
|
+
return expected(prefix).some((want) => !installed.some((have) => have.event === want.event &&
|
|
67
|
+
have.command === want.command &&
|
|
68
|
+
have.matcher === want.matcher &&
|
|
69
|
+
have.timeout === want.timeout));
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* What an upgrade left behind in this workspace.
|
|
73
|
+
*
|
|
74
|
+
* Reads files and nothing else: no network, no subprocess, no client
|
|
75
|
+
* inspection — it runs from any command, so it has to cost nothing. The MCP
|
|
76
|
+
* entry is deliberately not here: reading it can spawn an agent client's own
|
|
77
|
+
* command, and `carrick doctor` is where that belongs.
|
|
78
|
+
*/
|
|
79
|
+
export function outdatedInstall(workspace) {
|
|
80
|
+
const skills = inspectTaskSkills(workspace)
|
|
81
|
+
.filter((skill) => skill.state === "ours" && !skill.current)
|
|
82
|
+
.map((skill) => skill.path);
|
|
83
|
+
const hooks = [];
|
|
84
|
+
for (const relative of SETTINGS_FILES) {
|
|
85
|
+
let body;
|
|
86
|
+
try {
|
|
87
|
+
body = fs.readFileSync(path.join(workspace, relative), "utf8");
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
if (entriesAreStale(body, expectedCarrickHooks))
|
|
93
|
+
hooks.push(relative);
|
|
94
|
+
}
|
|
95
|
+
if (codexInUse(workspace)) {
|
|
96
|
+
const body = readHooksFile(workspace);
|
|
97
|
+
if (body !== null && entriesAreStale(body, expectedCodexHooks))
|
|
98
|
+
hooks.push(CODEX_HOOKS_FILE);
|
|
99
|
+
}
|
|
100
|
+
return { skills, hooks };
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* The nearest folder at or above this one that `carrick init` has run in.
|
|
104
|
+
*
|
|
105
|
+
* The same marker every other surface roots on — the `.carrick` directory, not
|
|
106
|
+
* a settings file or a git repository — so a command typed inside one repo of
|
|
107
|
+
* a folder asks about the folder's install, which is the install there is.
|
|
108
|
+
* Null where there is none, and a machine that never ran init never hears from
|
|
109
|
+
* this.
|
|
110
|
+
*/
|
|
111
|
+
export function initialisedRoot(from) {
|
|
112
|
+
return ancestors(from).find((directory) => hasMarker(directory)) ?? null;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* The one line, and how often it is allowed to be said.
|
|
116
|
+
*
|
|
117
|
+
* Once a day, from any command that prints for a person to read. It is a
|
|
118
|
+
* sentence about the install, not about the command somebody typed, so it goes
|
|
119
|
+
* to stderr and never into an answer.
|
|
120
|
+
*/
|
|
121
|
+
export function noticeFile(home = os.homedir()) {
|
|
122
|
+
return path.join(home, ".carrick", "last-notice");
|
|
123
|
+
}
|
|
124
|
+
/** Today, as the throttle file spells it. */
|
|
125
|
+
function today(now) {
|
|
126
|
+
return now.toISOString().slice(0, 10);
|
|
127
|
+
}
|
|
128
|
+
/** Delete the throttle file, as `carrick remove` does. True when there was one. */
|
|
129
|
+
export function removeNotice(home) {
|
|
130
|
+
try {
|
|
131
|
+
fs.rmSync(noticeFile(home));
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* The line to print here, or null.
|
|
140
|
+
*
|
|
141
|
+
* Null covers every ordinary run: a folder Carrick was never set up in, an
|
|
142
|
+
* install that is current, a day this has already been said on, and anything
|
|
143
|
+
* at all going wrong while asking. A command's real work must never fail
|
|
144
|
+
* because of a notice about it.
|
|
145
|
+
*
|
|
146
|
+
* The day is only recorded when there was something to say, so an install that
|
|
147
|
+
* goes out of date an hour from now is still named an hour from now.
|
|
148
|
+
*/
|
|
149
|
+
export function refreshNotice(workspace, environment = { home: os.homedir(), now: new Date() }) {
|
|
150
|
+
try {
|
|
151
|
+
const file = noticeFile(environment.home);
|
|
152
|
+
let last;
|
|
153
|
+
try {
|
|
154
|
+
last = fs.readFileSync(file, "utf8").trim();
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
last = null;
|
|
158
|
+
}
|
|
159
|
+
if (last === today(environment.now))
|
|
160
|
+
return null;
|
|
161
|
+
const found = outdatedInstall(workspace);
|
|
162
|
+
const files = outdatedFiles(found);
|
|
163
|
+
if (files.length === 0)
|
|
164
|
+
return null;
|
|
165
|
+
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
166
|
+
fs.writeFileSync(file, `${today(environment.now)}\n`);
|
|
167
|
+
return `${files.length} file(s) here were written by an older carrick (${files
|
|
168
|
+
.slice(0, 2)
|
|
169
|
+
.join(", ")}${files.length > 2 ? ", …" : ""}). Run \`carrick init\` to refresh them.`;
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=outdated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outdated.js","sourceRoot":"","sources":["../../src/init/outdated.ts"],"names":[],"mappings":"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"}
|
package/dist/init/output.d.ts
CHANGED
|
@@ -1,8 +1,52 @@
|
|
|
1
|
-
import type { Writable } from "node:stream";
|
|
1
|
+
import type { Readable, Writable } from "node:stream";
|
|
2
2
|
export declare const DONE = "\u25C7";
|
|
3
3
|
export declare const WARN = "\u25B2";
|
|
4
4
|
export declare const REFUSE = "\u25A0";
|
|
5
5
|
export declare const DOCS = "https://docs.carrick.tools/quickstart";
|
|
6
|
+
/**
|
|
7
|
+
* A question the user ended rather than answered: Ctrl-C, Escape, or an input
|
|
8
|
+
* that closed under them.
|
|
9
|
+
*
|
|
10
|
+
* It is an error and not a value because every caller would otherwise have to
|
|
11
|
+
* remember that one of its answers means "stop", and one that forgot carried
|
|
12
|
+
* on with the wrong one: a cancelled project question was read as "leave it to
|
|
13
|
+
* the browser" and the run continued into the steps that question governed
|
|
14
|
+
* (carrick#1338). Thrown, it ends the run wherever it is asked, and `init`
|
|
15
|
+
* asks everything before it writes anything.
|
|
16
|
+
*/
|
|
17
|
+
export declare class PromptCancelled extends Error {
|
|
18
|
+
constructor();
|
|
19
|
+
}
|
|
20
|
+
/** One row of a `choose`: what it is called, and what it is worth knowing. */
|
|
21
|
+
export type Choice = {
|
|
22
|
+
value: string;
|
|
23
|
+
label: string;
|
|
24
|
+
hint?: string;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* How a `choose` opens, and whether it may be answered with nothing.
|
|
28
|
+
*
|
|
29
|
+
* `initial` is the set that starts selected, and it is a parameter rather than
|
|
30
|
+
* "all of them" because a default is a claim: the repos this install covers
|
|
31
|
+
* are preselected where something already says so, and an editor's
|
|
32
|
+
* configuration file outside the workspace is not preselected on the strength
|
|
33
|
+
* of a directory (carrick#1365).
|
|
34
|
+
*/
|
|
35
|
+
export type ChoiceSet = {
|
|
36
|
+
initial: string[];
|
|
37
|
+
required: boolean;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* The line that says what the keys do and where the answer stands.
|
|
41
|
+
*
|
|
42
|
+
* Said in words because the glyphs cannot say it: clack 1.8.1 draws the row
|
|
43
|
+
* under the cursor and an unselected row with the SAME character
|
|
44
|
+
* (`S_CHECKBOX_ACTIVE` and `S_CHECKBOX_INACTIVE` are both `◻`), so "the
|
|
45
|
+
* highlighted one" and "the ones that are in" are told apart by fill and
|
|
46
|
+
* colour alone. The picker below marks every row `[x]` or `[ ]` instead, and
|
|
47
|
+
* this line carries the count (carrick#1365).
|
|
48
|
+
*/
|
|
49
|
+
export declare function chooseSentence(noun: string, selected: number, total: number): string;
|
|
6
50
|
/**
|
|
7
51
|
* What a step's work turned out to be: the line, and the marker it carries.
|
|
8
52
|
*
|
|
@@ -57,13 +101,38 @@ export type InitOutput = {
|
|
|
57
101
|
confirm(question: string): Promise<boolean>;
|
|
58
102
|
/** A typed answer, for the questions whose answer is not yes or no. */
|
|
59
103
|
ask(question: string): Promise<string>;
|
|
104
|
+
/**
|
|
105
|
+
* Which of these, opening on the set `config.initial` names.
|
|
106
|
+
*
|
|
107
|
+
* `config.required` decides whether an empty answer is one: the repos this
|
|
108
|
+
* install covers must include one repo, and "no editors" is an ordinary
|
|
109
|
+
* answer (carrick#1338, carrick#1365). `noun` is what a row is, for the
|
|
110
|
+
* sentence that says what the keys do.
|
|
111
|
+
*/
|
|
112
|
+
choose(question: string, noun: string, options: Choice[], config: ChoiceSet): Promise<string[]>;
|
|
60
113
|
/** Dim a fragment, where this rendering has colour to dim it with. */
|
|
61
114
|
accent(text: string): string;
|
|
62
115
|
/** Whether the work under `step` may write to the terminal itself. */
|
|
63
116
|
readonly quiet: boolean;
|
|
64
117
|
};
|
|
118
|
+
/**
|
|
119
|
+
* The numbers an answer names, or null when it names none of them.
|
|
120
|
+
*
|
|
121
|
+
* Empty is the marked set, not "all of them": the marks are what the rows
|
|
122
|
+
* above the question already state, and a reader pressing Enter is accepting
|
|
123
|
+
* what they can see (carrick#1365). `all` and `none` are the two words that
|
|
124
|
+
* say the whole and the empty set; `none` is refused where an empty answer is
|
|
125
|
+
* not one, which is the same refusal an out-of-range number gets.
|
|
126
|
+
*/
|
|
127
|
+
export declare function chosenNumbers(answer: string, count: number, config: {
|
|
128
|
+
initial: number[];
|
|
129
|
+
required: boolean;
|
|
130
|
+
}): number[] | null;
|
|
65
131
|
/** Plain text: the same lines, no spinner, no colour, no gutter. */
|
|
66
|
-
export declare function plainOutput(write?: (text: string) => void
|
|
132
|
+
export declare function plainOutput(write?: (text: string) => void, io?: {
|
|
133
|
+
input?: Readable;
|
|
134
|
+
output?: Writable;
|
|
135
|
+
}): InitOutput;
|
|
67
136
|
/**
|
|
68
137
|
* clack's rendering, for a terminal.
|
|
69
138
|
*
|
|
@@ -74,7 +143,7 @@ export declare function plainOutput(write?: (text: string) => void): InitOutput;
|
|
|
74
143
|
* with different lines. A test that hands this a stream is the only thing that
|
|
75
144
|
* sees the interactive markers at all (carrick#1032).
|
|
76
145
|
*/
|
|
77
|
-
export declare function interactiveOutput(output?: Writable): InitOutput;
|
|
146
|
+
export declare function interactiveOutput(output?: Writable, keys?: Readable): InitOutput;
|
|
78
147
|
/**
|
|
79
148
|
* The rendering this terminal gets.
|
|
80
149
|
*
|