@credibledata/cred-cli 0.0.105 → 0.0.107

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +12 -4
  2. package/dist/agent-contract.spec.js +21 -6
  3. package/dist/agent-contract.spec.js.map +1 -1
  4. package/dist/client/api.js +900 -521
  5. package/dist/client/api.js.map +1 -1
  6. package/dist/client-codeassist/api.js.map +1 -1
  7. package/dist/commands/misc/mcp.boot.harness.js +14 -0
  8. package/dist/commands/misc/mcp.boot.harness.js.map +1 -0
  9. package/dist/commands/misc/mcp.harness.js +9 -0
  10. package/dist/commands/misc/mcp.harness.js.map +1 -0
  11. package/dist/commands/misc/mcp.js +258 -0
  12. package/dist/commands/misc/mcp.js.map +1 -0
  13. package/dist/commands/misc/mcp.spec.js +213 -0
  14. package/dist/commands/misc/mcp.spec.js.map +1 -0
  15. package/dist/commands/misc/setup.js +72 -3
  16. package/dist/commands/misc/setup.js.map +1 -1
  17. package/dist/commands/misc/setup.spec.js +51 -6
  18. package/dist/commands/misc/setup.spec.js.map +1 -1
  19. package/dist/commands/misc/status.js +7 -1
  20. package/dist/commands/misc/status.js.map +1 -1
  21. package/dist/commands/misc/status.spec.js +34 -0
  22. package/dist/commands/misc/status.spec.js.map +1 -1
  23. package/dist/index.js +52 -11
  24. package/dist/index.js.map +1 -1
  25. package/dist/setup-core/briefing.d.ts +68 -0
  26. package/dist/setup-core/briefing.js +20 -11
  27. package/dist/setup-core/briefing.js.map +1 -1
  28. package/dist/setup-core/credstore.d.ts +229 -0
  29. package/dist/setup-core/environments.d.ts +112 -0
  30. package/dist/setup-core/flow.d.ts +171 -0
  31. package/dist/setup-core/flow.js +54 -28
  32. package/dist/setup-core/flow.js.map +1 -1
  33. package/dist/setup-core/flow.spec.js +135 -54
  34. package/dist/setup-core/flow.spec.js.map +1 -1
  35. package/dist/setup-core/folderconfig.d.ts +184 -0
  36. package/dist/setup-core/folderconfig.js +82 -21
  37. package/dist/setup-core/folderconfig.js.map +1 -1
  38. package/dist/setup-core/git.d.ts +57 -0
  39. package/dist/setup-core/git.js +37 -0
  40. package/dist/setup-core/git.js.map +1 -1
  41. package/dist/setup-core/host.d.ts +121 -0
  42. package/dist/setup-core/importconnections.d.ts +171 -0
  43. package/dist/setup-core/liveness.d.ts +17 -0
  44. package/dist/setup-core/localpublisherconfig.d.ts +10 -0
  45. package/dist/setup-core/mcpconfig.d.ts +132 -0
  46. package/dist/setup-core/mcpconfig.js +41 -17
  47. package/dist/setup-core/mcpconfig.js.map +1 -1
  48. package/dist/setup-core/mcpconfig.spec.js +17 -6
  49. package/dist/setup-core/mcpconfig.spec.js.map +1 -1
  50. package/dist/setup-core/packagemanifest.d.ts +28 -0
  51. package/dist/setup-core/ports.d.ts +95 -0
  52. package/dist/setup-core/ports.js +6 -5
  53. package/dist/setup-core/ports.js.map +1 -1
  54. package/dist/setup-core/publisherconfig.d.ts +163 -0
  55. package/dist/setup-core/publisherversion.d.ts +22 -0
  56. package/dist/setup-core/publisherversion.js +1 -1
  57. package/dist/setup-core/readylines.d.ts +109 -0
  58. package/dist/setup-core/refresh.d.ts +80 -0
  59. package/dist/setup-core/skills.d.ts +114 -0
  60. package/dist/setup-core/skills.js +34 -11
  61. package/dist/setup-core/skills.js.map +1 -1
  62. package/dist/setup-core/skills.spec.js +20 -0
  63. package/dist/setup-core/skills.spec.js.map +1 -1
  64. package/dist/setup-core/staleservers.d.ts +27 -0
  65. package/dist/setup-core/staleservers.js +97 -0
  66. package/dist/setup-core/staleservers.js.map +1 -0
  67. package/dist/setup-core/staleservers.spec.js +63 -0
  68. package/dist/setup-core/staleservers.spec.js.map +1 -0
  69. package/dist/setup-core/supervisor.d.ts +187 -0
  70. package/dist/setup-core/supervisor.js +1 -0
  71. package/dist/setup-core/supervisor.js.map +1 -1
  72. package/dist/setup-core/writefile.d.ts +27 -0
  73. package/package.json +4 -3
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Reading the Publisher server's boot signals.
3
+ *
4
+ * ## Use the machine-readable line, not the log lines
5
+ *
6
+ * The server prints human log lines per listener:
7
+ *
8
+ * info: Publisher server listening at http://127.0.0.1:4000
9
+ * info: MCP server listening at http://127.0.0.1:4040
10
+ *
11
+ * and, once initialization finishes, one line meant for exactly this purpose:
12
+ *
13
+ * PUBLISHER_READY url=http://127.0.0.1:4000 mcp=http://127.0.0.1:4040 environments=1 packages=1 load_errors=0
14
+ * PUBLISHER_INIT_FAILED error="..." (on stderr)
15
+ *
16
+ * The counts are the point. Both listeners bind and both log lines print even
17
+ * when every configured environment failed to load — a server that is running
18
+ * and serving nothing. Waiting on the log lines alone would have setup announce
19
+ * success over an empty server, which is the single most misleading thing it
20
+ * could do. `load_errors` and `packages` are what distinguish the two, and
21
+ * upstream added them for that reason.
22
+ *
23
+ * One caveat on the readiness line's URLs: they are built from the *requested*
24
+ * port, not the bound one. That is safe for us only because we never ask for an
25
+ * ephemeral port (see `ports.ts`); the log lines carry the truly-bound ports and
26
+ * remain the source for those.
27
+ *
28
+ * Treating another project's stdout as an API is a real coupling, so it lives in
29
+ * this one file with fixture tests taken from a real run. If upstream changes
30
+ * the wording, one file breaks and its test says which line moved.
31
+ */
32
+ /**
33
+ * Strip ANSI SGR sequences — the server colourises its log level.
34
+ *
35
+ * The escape introducer is not optional in this pattern. Matching only `[32m`
36
+ * leaves the escape byte behind: parsing still works, but the "cleaned" line
37
+ * carries a control character into anything that echoes it.
38
+ */
39
+ export declare function stripAnsi(line: string): string;
40
+ export interface ReadyEndpoint {
41
+ which: "ui" | "mcp";
42
+ host: string;
43
+ port: number;
44
+ }
45
+ /**
46
+ * Extract a bound listener address from one output line.
47
+ *
48
+ * Use this for the ports actually bound. Use {@link parseReadinessLine} to
49
+ * decide whether the server is usable.
50
+ */
51
+ export declare function parseReadyLine(line: string): ReadyEndpoint | undefined;
52
+ export interface Readiness {
53
+ url: string;
54
+ mcpUrl: string;
55
+ environments: number;
56
+ packages: number;
57
+ loadErrors: number;
58
+ }
59
+ /** Parse the `PUBLISHER_READY` line, or `undefined` for any other line. */
60
+ export declare function parseReadinessLine(line: string): Readiness | undefined;
61
+ /**
62
+ * Parse the `PUBLISHER_INIT_FAILED` line, returning the error it reports.
63
+ *
64
+ * Upstream emits this so a script waiting on `PUBLISHER_READY` fails fast rather
65
+ * than hanging on a broken config — which is exactly what a supervisor watching
66
+ * only for success would do.
67
+ */
68
+ export declare function parseInitFailedLine(line: string): string | undefined;
69
+ /**
70
+ * What a server that reported this readiness is good for.
71
+ *
72
+ * "The process is alive" is not readiness — that is what these counts are for.
73
+ * But not every unhealthy server is unusable, and the two cases need opposite
74
+ * responses:
75
+ *
76
+ * environments=0 packages=0 load_errors=1
77
+ * The environment itself did not load — a reserved connection name, a
78
+ * rejected package path, a missing manifest. Nothing the user can edit in a
79
+ * `.malloy` file changes it, so there is no point leaving a server up: it
80
+ * has no connections and no packages. Fatal.
81
+ *
82
+ * environments=1 packages=0 load_errors=1
83
+ * The environment is up, its connections are live, and a package failed to
84
+ * compile. That is the normal state of a model mid-edit, and it is the state
85
+ * the session is most useful in: watch mode is active, `malloy_compile` over
86
+ * MCP works, and saving the file reloads it. Killing the server here means a
87
+ * model that does not compile cannot be worked on at all.
88
+ *
89
+ * The counts tell these apart, so the verdict does too.
90
+ */
91
+ export type ReadinessVerdict = {
92
+ kind: "serving";
93
+ } | {
94
+ kind: "fatal";
95
+ reason: string;
96
+ } | {
97
+ kind: "degraded";
98
+ reason: string;
99
+ };
100
+ export declare function readinessVerdict(readiness: Readiness): ReadinessVerdict;
101
+ /**
102
+ * The address to dial, given what the server bound.
103
+ *
104
+ * A wildcard bind (`0.0.0.0` / `::`) is not dialable, and the server prints the
105
+ * bind address deliberately — it is how a mistyped `--hostt`, which silently
106
+ * falls back to `0.0.0.0`, gets noticed. So we map the wildcard to loopback for
107
+ * the dialable form while leaving the printed line alone.
108
+ */
109
+ export declare function dialableHost(boundHost: string): string;
@@ -0,0 +1,80 @@
1
+ import { ClientConfiguration } from "./credstore";
2
+ /**
3
+ * Refresh the stored Auth0 tokens before they expire.
4
+ *
5
+ * Ported from the VS Code extension's `user.ts::refreshAccessTokensIfExpired`,
6
+ * which until now was the only implementation — the CLI persisted a refresh
7
+ * token and never exchanged it, so `getRefreshToken()` had no non-test callers
8
+ * and every session died at the access token's `exp`.
9
+ *
10
+ * One deliberate behavioural change from the extension: refresh happens BEFORE
11
+ * expiry, not after. The extension only acts once a token has already expired,
12
+ * which turns the first request after the deadline into a failure the user sees.
13
+ * A local publisher session holds a token for hours, so proactive refresh is
14
+ * required rather than nicer — and once it exists there is no reason for
15
+ * anything else to wait for a 401.
16
+ */
17
+ /**
18
+ * How long before `exp` to refresh. Two minutes covers a slow request that
19
+ * started while the token was still valid, plus modest clock skew between this
20
+ * machine and Auth0.
21
+ */
22
+ export declare const REFRESH_SKEW_SECONDS = 120;
23
+ /**
24
+ * A refresh lock older than this belongs to a process that died holding it.
25
+ * A live holder keeps it for one token request, which gives up after
26
+ * {@link REFRESH_TIMEOUT_MS}, so twice that leaves room for the file read and
27
+ * write on either side.
28
+ */
29
+ export declare const REFRESH_LOCK_STALE_MS: number;
30
+ export type RefreshOutcome =
31
+ /** Token was already fresh, or has been refreshed successfully. */
32
+ {
33
+ status: "fresh";
34
+ }
35
+ /**
36
+ * No usable credentials. Tokens are cleared only when Auth0 rejected the
37
+ * refresh token, and the organization and environment are kept either way,
38
+ * for the `cred login` that fixes it. An expired token with no refresh token
39
+ * is left in place.
40
+ */
41
+ | {
42
+ status: "logged-out";
43
+ reason: string;
44
+ }
45
+ /**
46
+ * Could not reach Auth0. The session is deliberately kept — being offline is
47
+ * not being logged out — so callers should warn and carry on with the token
48
+ * on disk while it is still valid, and stop once it has expired.
49
+ *
50
+ * `retry` is what to tell the user once the token has expired, when that is
51
+ * not "wait for Auth0": a lock timeout is another `cred` process, and
52
+ * neither Auth0 nor a login has anything to do with it.
53
+ */
54
+ | {
55
+ status: "offline";
56
+ reason: string;
57
+ retry?: string;
58
+ }
59
+ /**
60
+ * A token that is still valid but has no refresh token to renew it with — the
61
+ * client-credentials token `cred login` stores on `e2e-test`. Nothing is
62
+ * cleared: callers should warn and carry on until it actually expires.
63
+ */
64
+ | {
65
+ status: "not-renewable";
66
+ reason: string;
67
+ }
68
+ /** A service-account token, which has no refresh flow. */
69
+ | {
70
+ status: "service-account";
71
+ };
72
+ /**
73
+ * Ensure the stored API access token is valid for at least
74
+ * {@link REFRESH_SKEW_SECONDS} more seconds, exchanging the refresh token if not.
75
+ *
76
+ * Never throws: every failure mode is a returned outcome, because the callers
77
+ * are command entry points that need to decide between "stop and tell the user
78
+ * to log in" and "warn and continue".
79
+ */
80
+ export declare function ensureFreshTokens(store: ClientConfiguration): Promise<RefreshOutcome>;
@@ -0,0 +1,114 @@
1
+ import { Host } from "./host";
2
+ /**
3
+ * Installing the modeling skills into a wired directory.
4
+ *
5
+ * A port of the VS Code extension's `agentSkillsService.ts`, with one deliberate
6
+ * departure. The extension split the manifest into `.claude/skills/`
7
+ * (auto-discovered) and `.credible/skills/` ("supporting", reached only through
8
+ * a `skill:` reference from another skill). In practice agents did not follow
9
+ * those references, so the supporting tier was installed and unused. Everything
10
+ * the manifest lists now goes to `.claude/skills/`, which is also what the
11
+ * Publisher's own scaffolder (`create-malloy-package`) does, so the two agree
12
+ * on where skills live. The manifest's `auto_discovered` list still means
13
+ * something: those are the entry points the rule file names.
14
+ *
15
+ * The skills come from the code-assist API (`GET /agent_skills?manifest=
16
+ * modeling-ide`), whose version is resolved server-side, so nothing here pins
17
+ * one. The extension kept its install state in `workspaceState`; here it is the
18
+ * `skills` block of `.credible/config.json`, the one per-directory file setup
19
+ * already owns.
20
+ *
21
+ * Skills are the judgement half of the local loop — which journey the user is
22
+ * in, which `cred` commands to run and in what order — and they live in the
23
+ * agent-skills repo rather than in this CLI, so the CLI stays the mechanism.
24
+ */
25
+ /** The manifest the local modeling loop uses. The extension's default too. */
26
+ export declare const SKILLS_MANIFEST = "modeling-ide";
27
+ /** Where every skill goes, and where Claude Code discovers them. */
28
+ export declare const SKILLS_DIR = ".claude/skills";
29
+ /** The cross-tool copy for Codex, Gemini and friends. */
30
+ export declare const AGENTS_DIR = ".agents/skills";
31
+ export declare const RULE_FILE_CLAUDE = ".claude/rules/credible-modeling.md";
32
+ export declare const RULE_FILE_CURSOR = ".cursor/rules/credible-modeling.mdc";
33
+ /**
34
+ * What to do with skills already in `.claude/skills/` that we did not install
35
+ * — the scaffolder's set, most often. `--skills` on the command line.
36
+ */
37
+ export type SkillsPolicy = "replace" | "keep" | "none";
38
+ export declare const SKILLS_FLAG = "--skills <replace|keep|none>";
39
+ /** One file of a skill, as the API returns it. */
40
+ export interface SkillFile {
41
+ relative_filepath: string;
42
+ file_contents: string;
43
+ }
44
+ export interface AgentSkill {
45
+ name: string;
46
+ files: SkillFile[];
47
+ }
48
+ /** `AgentSkillsResponse` in `apis/code-assist-public-api.yaml`. */
49
+ export interface AgentSkillsResponse {
50
+ manifest: string;
51
+ /** The agent-skills tag: the manifest and the `credible-*` skills. */
52
+ version: string;
53
+ /**
54
+ * The `@malloy-publisher/skills` version that supplied the `malloy-*`
55
+ * skills. Absent when the manifest names none.
56
+ */
57
+ publisher_skills_version?: string;
58
+ description?: string;
59
+ trigger_hint?: string;
60
+ /** The index skill a rule file names. Always one of `auto_discovered`. */
61
+ entry_skill?: string;
62
+ auto_discovered: AgentSkill[];
63
+ supporting: AgentSkill[];
64
+ }
65
+ /**
66
+ * Fetch a manifest's skills. `undefined` means the server has no skills
67
+ * endpoint (a 404), which is a reason to skip the step, not to fail setup.
68
+ */
69
+ export type SkillsFetcher = (manifest: string) => Promise<AgentSkillsResponse | undefined>;
70
+ /** What a previous install left behind; the `skills` block of the pin. */
71
+ export interface InstalledSkills {
72
+ manifest: string;
73
+ version: string;
74
+ /** `publisher_skills_version` when installed; see {@link AgentSkillsResponse}. */
75
+ publisherVersion?: string;
76
+ /** Every path written, relative to the directory, so an update can clean up. */
77
+ files: string[];
78
+ }
79
+ export interface InstallResult {
80
+ action: "installed" | "updated" | "current";
81
+ state: InstalledSkills;
82
+ }
83
+ /**
84
+ * Write the skills, replacing whatever a previous install wrote.
85
+ *
86
+ * Only files listed in `previous` are ever deleted: a user's own skill under
87
+ * `.claude/skills/` is not ours to touch. A directory already on this version
88
+ * with every file present is left alone, so `cred dev` re-running this each
89
+ * session costs one API call and no writes.
90
+ */
91
+ export declare function installSkills(directory: string, response: AgentSkillsResponse, host: Host, previous?: InstalledSkills): InstallResult;
92
+ /** Both halves' versions, as `cred init` and `cred status` print them. */
93
+ export declare function describeVersion(state: InstalledSkills): string;
94
+ /**
95
+ * The paths a `.gitignore` should carry for an install: the skill directories
96
+ * and the rule files, never the user's own files beside them.
97
+ */
98
+ export declare function skillsGitignoreEntries(state: InstalledSkills): string[];
99
+ /**
100
+ * Skill directories under `.claude/skills/` and `.agents/skills/` that a
101
+ * previous install did not write — the scaffolder's set, or the user's own.
102
+ */
103
+ export declare function foreignSkills(directory: string, previous?: InstalledSkills): string[];
104
+ /**
105
+ * Move the named skill directories, from both roots, into
106
+ * `.credible/replaced-skills/<timestamp>/` — returned relative to `directory`.
107
+ * Only ever called after the user chose `replace`.
108
+ *
109
+ * Moved rather than deleted: on a first install "not ours" cannot tell the
110
+ * scaffolder's skills from ones the user wrote, so `replace` is a choice made
111
+ * about files we cannot identify. `.credible/` is gitignored, so the move
112
+ * takes them out of the agent's way without putting them in anyone's commit.
113
+ */
114
+ export declare function moveForeignSkills(directory: string, names: string[]): string;
@@ -59,7 +59,10 @@ function installSkills(directory, response, host, previous) {
59
59
  // The two halves version independently, so a `skills_version` bump
60
60
  // alone changes every `malloy-*` skill under the same agent-skills tag.
61
61
  previous.publisherVersion === response.publisher_skills_version &&
62
- previous.files.every((file) => fs_1.default.existsSync(path_1.default.join(directory, file)))) {
62
+ previous.files.every((file) => fs_1.default.existsSync(path_1.default.join(directory, file))) &&
63
+ // The rule's text can change with the response alone (a server that
64
+ // starts sending `entry_skill`), with no skills version bump.
65
+ ruleFilesCurrent(directory, response)) {
63
66
  return { action: "current", state: previous };
64
67
  }
65
68
  if (previous)
@@ -224,21 +227,41 @@ function moveForeignSkills(directory, names) {
224
227
  * CLI cannot, so the directory is the observable signal.
225
228
  */
226
229
  function writeRuleFiles(directory, response) {
230
+ const written = [];
231
+ for (const [file, content] of ruleFiles(directory, response)) {
232
+ (0, writefile_1.writeFileAtomic)(path_1.default.join(directory, file), content);
233
+ written.push(file);
234
+ }
235
+ return written;
236
+ }
237
+ /** Whether every rule file already says what {@link writeRuleFiles} would. */
238
+ function ruleFilesCurrent(directory, response) {
239
+ return ruleFiles(directory, response).every(([file, content]) => {
240
+ try {
241
+ return (fs_1.default.readFileSync(path_1.default.join(directory, file), "utf-8") === content);
242
+ }
243
+ catch (_a) {
244
+ return false;
245
+ }
246
+ });
247
+ }
248
+ /** Each rule file to write, with its content. */
249
+ function ruleFiles(directory, response) {
227
250
  const hint = response.trigger_hint || response.description || "";
228
251
  if (!hint)
229
252
  return [];
230
- const skillList = response.auto_discovered
231
- .map((skill) => `\`./${exports.SKILLS_DIR}/${skill.name}/SKILL.md\``)
232
- .join(", ");
233
- const rule = `${hint}, first read the workspace skill at ${skillList} and follow its guidance before proceeding.\n`;
234
- const written = [];
235
- (0, writefile_1.writeFileAtomic)(path_1.default.join(directory, exports.RULE_FILE_CLAUDE), rule);
236
- written.push(exports.RULE_FILE_CLAUDE);
253
+ const skillPath = (name) => `\`./${exports.SKILLS_DIR}/${name}/SKILL.md\``;
254
+ // One index skill rather than every skill: the list ran to 26 files, and an
255
+ // agent told to read all of them first did, whatever the task. The full
256
+ // list stays for a server that predates `entry_skill`.
257
+ const rule = response.entry_skill
258
+ ? `${hint}, first read ${skillPath(response.entry_skill)}. It says which of the other skills in \`./${exports.SKILLS_DIR}/\` to read for which task.\n`
259
+ : `${hint}, first read the workspace skill at ${response.auto_discovered.map((skill) => skillPath(skill.name)).join(", ")} and follow its guidance before proceeding.\n`;
260
+ const files = [[exports.RULE_FILE_CLAUDE, rule]];
237
261
  if (fs_1.default.existsSync(path_1.default.join(directory, ".cursor"))) {
238
- (0, writefile_1.writeFileAtomic)(path_1.default.join(directory, exports.RULE_FILE_CURSOR), `---\nalwaysApply: true\n---\n${rule}`);
239
- written.push(exports.RULE_FILE_CURSOR);
262
+ files.push([exports.RULE_FILE_CURSOR, `---\nalwaysApply: true\n---\n${rule}`]);
240
263
  }
241
- return written;
264
+ return files;
242
265
  }
243
266
  /** Remove a previous install's files, then any directories that emptied. */
244
267
  function deleteFiles(directory, files) {
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/setup-core/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/setup-core/skills.ts"],"names":[],"mappings":"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"}
@@ -125,6 +125,26 @@ describe("installing skills", () => {
125
125
  (0, skills_1.installSkills)(workDir, response, quietHost());
126
126
  (0, chai_1.expect)(read(".claude/rules/credible-modeling.md")).to.equal("When modeling data with Malloy, first read the workspace skill at `./.claude/skills/malloy-modeling/SKILL.md` and follow its guidance before proceeding.\n");
127
127
  });
128
+ it("names only the entry skill in the rule when the manifest has one", () => {
129
+ (0, skills_1.installSkills)(workDir, Object.assign(Object.assign({}, response), { entry_skill: "malloy-modeling", auto_discovered: [
130
+ ...response.auto_discovered,
131
+ {
132
+ name: "malloy-queries",
133
+ files: [
134
+ { relative_filepath: "SKILL.md", file_contents: "# q" },
135
+ ],
136
+ },
137
+ ] }), quietHost());
138
+ (0, chai_1.expect)(read(".claude/rules/credible-modeling.md")).to.equal("When modeling data with Malloy, first read `./.claude/skills/malloy-modeling/SKILL.md`. It says which of the other skills in `./.claude/skills/` to read for which task.\n");
139
+ });
140
+ // A server that starts sending entry_skill changes the rule with no
141
+ // skills version bump, so an existing directory must not keep the old one.
142
+ it("rewrites the rule when only the response's entry skill changed", () => {
143
+ const first = (0, skills_1.installSkills)(workDir, response, quietHost());
144
+ const again = (0, skills_1.installSkills)(workDir, Object.assign(Object.assign({}, response), { entry_skill: "malloy-modeling" }), quietHost(), first.state);
145
+ (0, chai_1.expect)(again.action).to.not.equal("current");
146
+ (0, chai_1.expect)(read(".claude/rules/credible-modeling.md")).to.equal("When modeling data with Malloy, first read `./.claude/skills/malloy-modeling/SKILL.md`. It says which of the other skills in `./.claude/skills/` to read for which task.\n");
147
+ });
128
148
  it("writes the Cursor rule only when a .cursor directory already exists", () => {
129
149
  const without = (0, skills_1.installSkills)(workDir, response, quietHost());
130
150
  (0, chai_1.expect)(without.state.files).to.not.include(".cursor/rules/credible-modeling.mdc");
@@ -1 +1 @@
1
- {"version":3,"file":"skills.spec.js","sourceRoot":"","sources":["../../src/setup-core/skills.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.spec.js","sourceRoot":"","sources":["../../src/setup-core/skills.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Finding `.mcp.json` entries that point at a local port nothing listens on.
3
+ *
4
+ * The old editor extension, and `cred init` before `cred mcp`, wrote a local
5
+ * port into `.mcp.json`. The file outlives the server, and Claude Code also
6
+ * reads `.mcp.json` from parent directories, so one dead entry a level up
7
+ * shows as a failed server in every session below it.
8
+ *
9
+ * This only reports. A file outside the directory cred set up belongs to
10
+ * whatever wrote it, and the user may still run that tool there.
11
+ */
12
+ export interface DeadMcpEntry {
13
+ /** Absolute path of the `.mcp.json` holding it. */
14
+ file: string;
15
+ /** The server's name in that file. */
16
+ name: string;
17
+ url: string;
18
+ }
19
+ /** Does something accept a TCP connection on host:port? */
20
+ export declare function isListening(host: string, port: number, timeoutMs?: number): Promise<boolean>;
21
+ /**
22
+ * The loopback entries in `directory`'s `.mcp.json` and its parents' that
23
+ * nothing answers.
24
+ */
25
+ export declare function findDeadMcpEntries(directory: string, listening?: (host: string, port: number) => Promise<boolean>): Promise<DeadMcpEntry[]>;
26
+ /** One warning line per dead entry, naming the file to edit. */
27
+ export declare function describeDeadMcpEntry(entry: DeadMcpEntry): string;
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.isListening = isListening;
16
+ exports.findDeadMcpEntries = findDeadMcpEntries;
17
+ exports.describeDeadMcpEntry = describeDeadMcpEntry;
18
+ const fs_1 = __importDefault(require("fs"));
19
+ const net_1 = __importDefault(require("net"));
20
+ const path_1 = __importDefault(require("path"));
21
+ const mcpconfig_1 = require("./mcpconfig");
22
+ const LOOPBACK_HOSTS = new Set(["127.0.0.1", "localhost", "[::1]"]);
23
+ /** Does something accept a TCP connection on host:port? */
24
+ function isListening(host, port, timeoutMs = 500) {
25
+ return new Promise((resolve) => {
26
+ const socket = net_1.default.connect({ host, port });
27
+ const done = (answer) => {
28
+ socket.destroy();
29
+ resolve(answer);
30
+ };
31
+ socket.setTimeout(timeoutMs, () => done(false));
32
+ socket.once("connect", () => done(true));
33
+ socket.once("error", () => done(false));
34
+ });
35
+ }
36
+ /** Every `.mcp.json` from `directory` up to the filesystem root. */
37
+ function mcpConfigsUpFrom(directory) {
38
+ const files = [];
39
+ let current = path_1.default.resolve(directory);
40
+ for (;;) {
41
+ const candidate = path_1.default.join(current, mcpconfig_1.MCP_CONFIG_FILENAME);
42
+ if (fs_1.default.existsSync(candidate))
43
+ files.push(candidate);
44
+ const parent = path_1.default.dirname(current);
45
+ if (parent === current)
46
+ return files;
47
+ current = parent;
48
+ }
49
+ }
50
+ /** The loopback HTTP entries in one file, skipping anything unreadable. */
51
+ function loopbackEntries(file) {
52
+ var _a;
53
+ let servers;
54
+ try {
55
+ servers = (_a = JSON.parse(fs_1.default.readFileSync(file, "utf-8").replace(/^\uFEFF/, ""))) === null || _a === void 0 ? void 0 : _a.mcpServers;
56
+ }
57
+ catch (_b) {
58
+ return [];
59
+ }
60
+ if (!servers || typeof servers !== "object")
61
+ return [];
62
+ const entries = [];
63
+ for (const [name, entry] of Object.entries(servers)) {
64
+ const url = entry === null || entry === void 0 ? void 0 : entry.url;
65
+ if (typeof url !== "string")
66
+ continue;
67
+ try {
68
+ if (LOOPBACK_HOSTS.has(new URL(url).hostname)) {
69
+ entries.push({ file, name, url });
70
+ }
71
+ }
72
+ catch (_c) {
73
+ // Not a URL; not ours to judge.
74
+ }
75
+ }
76
+ return entries;
77
+ }
78
+ /**
79
+ * The loopback entries in `directory`'s `.mcp.json` and its parents' that
80
+ * nothing answers.
81
+ */
82
+ function findDeadMcpEntries(directory_1) {
83
+ return __awaiter(this, arguments, void 0, function* (directory, listening = isListening) {
84
+ const entries = mcpConfigsUpFrom(directory).flatMap(loopbackEntries);
85
+ const alive = yield Promise.all(entries.map((entry) => {
86
+ const url = new URL(entry.url);
87
+ const port = Number(url.port || (url.protocol === "https:" ? 443 : 80));
88
+ return listening(url.hostname.replace(/^\[|\]$/g, ""), port);
89
+ }));
90
+ return entries.filter((_, index) => !alive[index]);
91
+ });
92
+ }
93
+ /** One warning line per dead entry, naming the file to edit. */
94
+ function describeDeadMcpEntry(entry) {
95
+ return `${entry.file} has an MCP server "${entry.name}" at ${entry.url}, and nothing is listening there. An agent started in this directory or below shows it as failed; remove the entry if you no longer run the tool that wrote it.`;
96
+ }
97
+ //# sourceMappingURL=staleservers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staleservers.js","sourceRoot":"","sources":["../../src/setup-core/staleservers.ts"],"names":[],"mappings":"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"}