carrick 0.3.58 → 0.3.59

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 (58) hide show
  1. package/README.md +94 -26
  2. package/bin/carrick.mjs +13 -2
  3. package/dist/auth/credentials.d.ts +14 -0
  4. package/dist/auth/credentials.js +86 -0
  5. package/dist/auth/credentials.js.map +1 -0
  6. package/dist/auth/oauth.d.ts +11 -0
  7. package/dist/auth/oauth.js +119 -0
  8. package/dist/auth/oauth.js.map +1 -0
  9. package/dist/auth/read.d.ts +139 -0
  10. package/dist/auth/read.js +44 -0
  11. package/dist/auth/read.js.map +1 -0
  12. package/dist/auth/run.d.ts +12 -0
  13. package/dist/auth/run.js +68 -0
  14. package/dist/auth/run.js.map +1 -0
  15. package/dist/contract.d.ts +10 -0
  16. package/dist/contract.js +3 -0
  17. package/dist/contract.js.map +1 -1
  18. package/dist/definition.js +2 -2
  19. package/dist/definition.js.map +1 -1
  20. package/dist/diagnostics.d.ts +35 -1
  21. package/dist/diagnostics.js +52 -11
  22. package/dist/diagnostics.js.map +1 -1
  23. package/dist/hook/refresh.d.ts +32 -0
  24. package/dist/hook/refresh.js +138 -0
  25. package/dist/hook/refresh.js.map +1 -0
  26. package/dist/hook/session-start.js +13 -0
  27. package/dist/hook/session-start.js.map +1 -1
  28. package/dist/init/connect.d.ts +17 -0
  29. package/dist/init/connect.js +120 -0
  30. package/dist/init/connect.js.map +1 -0
  31. package/dist/init/mcp.d.ts +50 -0
  32. package/dist/init/mcp.js +235 -0
  33. package/dist/init/mcp.js.map +1 -0
  34. package/dist/init/projects.d.ts +46 -0
  35. package/dist/init/projects.js +137 -0
  36. package/dist/init/projects.js.map +1 -0
  37. package/dist/init/repos.d.ts +113 -19
  38. package/dist/init/repos.js +60 -39
  39. package/dist/init/repos.js.map +1 -1
  40. package/dist/init/run.d.ts +16 -0
  41. package/dist/init/run.js +243 -61
  42. package/dist/init/run.js.map +1 -1
  43. package/dist/init/settings.d.ts +1 -1
  44. package/dist/init/settings.js +1 -1
  45. package/dist/init/settings.js.map +1 -1
  46. package/dist/server.js +173 -16
  47. package/dist/server.js.map +1 -1
  48. package/package.json +6 -6
  49. package/sidecar/dist/src/capture/deno-project.d.ts +41 -0
  50. package/sidecar/dist/src/capture/deno-project.js +513 -0
  51. package/sidecar/dist/src/capture/index.d.ts +1 -0
  52. package/sidecar/dist/src/capture/index.js +60 -19
  53. package/sidecar/dist/src/capture/self-check.d.ts +2 -0
  54. package/sidecar/dist/src/capture/self-check.js +3 -2
  55. package/sidecar/dist/src/project-loader.js +22 -1
  56. package/dist/init/identity.d.ts +0 -20
  57. package/dist/init/identity.js +0 -60
  58. package/dist/init/identity.js.map +0 -1
package/dist/server.js CHANGED
@@ -23,6 +23,7 @@
23
23
  // sites go in both places (see diagnostics.ts).
24
24
  //
25
25
  // stdout is protocol only. Every log line goes to stderr.
26
+ import fs from "node:fs";
26
27
  import path from "node:path";
27
28
  import { fileURLToPath, pathToFileURL } from "node:url";
28
29
  import { check } from "./cli.js";
@@ -55,8 +56,27 @@ let clientName = "an unnamed client";
55
56
  let clientRefreshesLenses = false;
56
57
  /** One off switch per surface (carrick#879), as the client stated them. */
57
58
  let surfaces = DEFAULT_SURFACES;
58
- /** What each checked file last published to, so a clear is scoped to it. */
59
- const publishedBy = new Map();
59
+ /**
60
+ * What each check pass contributed, per pass, per file it landed rows in
61
+ * (carrick#923).
62
+ *
63
+ * A check of one file publishes rows on that file AND on its counterparts, so
64
+ * two open files on either side of one contract are two passes with an opinion
65
+ * about the same URI, and neither is the whole answer: the producer's pass
66
+ * knows every route in the producer, the consumer's pass knows only the one
67
+ * route it calls. `publishDiagnostics` replaces per URI, so whichever pass ran
68
+ * last used to erase the other's rows. What is published for a URI is the merge
69
+ * of every pass that has an opinion about it, computed here, and a pass is
70
+ * replaced whole when it re-runs.
71
+ *
72
+ * Uncapped on purpose. Evicting a pass would clear rows on a file that is still
73
+ * open and still wrong, and an entry is a handful of diagnostics.
74
+ */
75
+ const contributions = new Map();
76
+ /** The last diagnostics sent per URI, so an unchanged merge is not re-sent. */
77
+ const published = new Map();
78
+ /** The text of every document the client has open, by absolute path. */
79
+ const openDocuments = new Map();
60
80
  const debounces = new Map();
61
81
  /** Ids for the requests this server makes of the client. */
62
82
  let nextServerId = 1;
@@ -81,6 +101,106 @@ function publish(uriPath, diagnostics) {
81
101
  params: { uri: pathToFileURL(uriPath).toString(), diagnostics },
82
102
  });
83
103
  }
104
+ /**
105
+ * One row's identity within a file: what it says and the line it says it on.
106
+ *
107
+ * Used only to drop a row a second pass would repeat. A finding that is a
108
+ * file's own is also mirrored onto that file by the counterpart's pass, at the
109
+ * same line and under the same code, and the two sentences differ only in the
110
+ * "producer in X of Y." the mirrored one leads with. The code and the line are
111
+ * what a reader would call the same row.
112
+ */
113
+ function rowKey(diagnostic) {
114
+ return `${diagnostic.code ?? ""}|${diagnostic.range.start.line}`;
115
+ }
116
+ /**
117
+ * Every pass's rows for one file, the file's own pass first.
118
+ *
119
+ * Own-pass rows go in unconditionally: two findings on one line are two rows
120
+ * and only the passes DISAGREE about a file, never a pass with itself. Another
121
+ * pass's mirrored row is added only when nothing already said the same thing
122
+ * there, which is what stops the same finding rendering twice.
123
+ */
124
+ function mergedFor(uriPath) {
125
+ const rows = [];
126
+ const seen = new Set();
127
+ const own = contributions.get(uriPath)?.get(uriPath);
128
+ if (own) {
129
+ rows.push(...own);
130
+ for (const row of own)
131
+ seen.add(rowKey(row));
132
+ }
133
+ for (const [checked, byFile] of contributions) {
134
+ if (checked === uriPath)
135
+ continue;
136
+ for (const row of byFile.get(uriPath) ?? []) {
137
+ const key = rowKey(row);
138
+ if (seen.has(key))
139
+ continue;
140
+ seen.add(key);
141
+ rows.push(row);
142
+ }
143
+ }
144
+ return rows;
145
+ }
146
+ /**
147
+ * Replace one pass's rows and re-publish every file the change can reach.
148
+ *
149
+ * That is the files this pass touched now plus the ones it touched before: a
150
+ * file it has dropped needs the merge without it, which is often empty and
151
+ * clears the file. A URI whose merged set is what the client already has is not
152
+ * sent again, so opening the second file of a pair is silent where its rows
153
+ * agree with the first pass's.
154
+ */
155
+ function republish(checkedAbs, byFile) {
156
+ const touched = new Set([
157
+ ...(contributions.get(checkedAbs)?.keys() ?? []),
158
+ ...byFile.keys(),
159
+ ]);
160
+ contributions.set(checkedAbs, byFile);
161
+ for (const file of touched) {
162
+ const rows = mergedFor(file);
163
+ const body = JSON.stringify(rows);
164
+ if (published.get(file) === body)
165
+ continue;
166
+ published.set(file, body);
167
+ publish(file, rows);
168
+ }
169
+ }
170
+ /**
171
+ * The text of one 1-based line, for the span a diagnostic underlines (#922).
172
+ *
173
+ * The open document first, because that is the text in front of the user and
174
+ * an editor with unsaved changes has no other source for it, and the file on
175
+ * disk second, because a finding is mirrored onto counterpart files nobody has
176
+ * opened. A client that sends an empty `text` on `didOpen` has told us nothing,
177
+ * so that reads as "not open" rather than as an empty file.
178
+ *
179
+ * Fresh per check: within one check the same file is read once, and between two
180
+ * checks the text may have moved.
181
+ */
182
+ function lineTextReader() {
183
+ const cache = new Map();
184
+ return (file, line) => {
185
+ const key = path.resolve(file);
186
+ if (!cache.has(key)) {
187
+ let text = openDocuments.get(key);
188
+ if (!text) {
189
+ try {
190
+ text = fs.readFileSync(key, "utf8");
191
+ }
192
+ catch {
193
+ text = undefined;
194
+ }
195
+ }
196
+ cache.set(key, text === undefined ? null : text.split(/\r?\n/));
197
+ }
198
+ const lines = cache.get(key);
199
+ if (!lines)
200
+ return null;
201
+ return lines[line - 1] ?? null;
202
+ };
203
+ }
84
204
  /**
85
205
  * The check answer for a file: the cached one, or one run now and cached.
86
206
  *
@@ -125,17 +245,12 @@ async function checkAndPublish(absFile) {
125
245
  log("check", relFile, "->", result.error);
126
246
  return;
127
247
  }
128
- const byFile = toDiagnostics(result, root, relFile, { surfaces });
248
+ const byFile = toDiagnostics(result, root, relFile, { surfaces, lineText: lineTextReader() });
129
249
  log(`check ${relFile} -> ${[...byFile.values()].reduce((n, list) => n + list.length, 0)} diagnostic(s) across ${byFile.size} file(s) in ${Date.now() - started}ms`);
130
- // Clear only what THIS file's previous check flagged and no longer does: a
131
- // check of another file legitimately returns nothing while its findings stand.
132
- const previous = publishedBy.get(relFile) ?? new Set();
133
- for (const stale of previous)
134
- if (!byFile.has(stale))
135
- byFile.set(stale, []);
136
- publishedBy.set(relFile, new Set([...byFile.keys()].filter((file) => (byFile.get(file) ?? []).length > 0)));
137
- for (const [file, diagnostics] of byFile)
138
- publish(file, diagnostics);
250
+ // This pass's whole opinion, replacing the one it had before. What a file
251
+ // ends up with is the merge of every pass that has an opinion about it, so a
252
+ // check that returns nothing for a file clears only its own rows there.
253
+ republish(path.resolve(absFile), byFile);
139
254
  publishBoundary(result);
140
255
  }
141
256
  /**
@@ -187,6 +302,29 @@ function pathOf(params) {
187
302
  return null;
188
303
  }
189
304
  }
305
+ /**
306
+ * The document's text as this notification states it, or null when it does not.
307
+ *
308
+ * `didOpen` carries the whole document. `didChange` carries whole documents too
309
+ * here, because the sync kind this server declares is Full, and an incremental
310
+ * change (one carrying a `range`) is ignored rather than applied to the wrong
311
+ * text. `didSave` carries none: `includeText` is false, and what is on disk is
312
+ * then the same text anyway.
313
+ */
314
+ function textOf(params) {
315
+ const document = params?.["textDocument"];
316
+ if (typeof document?.text === "string")
317
+ return document.text;
318
+ const changes = params?.["contentChanges"];
319
+ if (!Array.isArray(changes))
320
+ return null;
321
+ for (const change of [...changes].reverse()) {
322
+ const entry = change;
323
+ if (entry.range === undefined && typeof entry.text === "string")
324
+ return entry.text;
325
+ }
326
+ return null;
327
+ }
190
328
  // ------------------------------------------------------------------ protocol
191
329
  function onInitialize(id, params) {
192
330
  const folders = params["workspaceFolders"];
@@ -273,6 +411,11 @@ function handle(message) {
273
411
  const file = pathOf(params);
274
412
  if (!file)
275
413
  return;
414
+ // The text the client has, kept for the span every row underlines: the
415
+ // buffer is what the user is looking at, and an unsaved one is on no disk.
416
+ const text = textOf(params);
417
+ if (text !== null)
418
+ openDocuments.set(path.resolve(file), text);
276
419
  // The text moved, so the lines in the cached answer are about text that
277
420
  // is gone. Dropped on every channel: in the hook channel nothing
278
421
  // re-checks the file, and a jump off a stale line is the worst answer
@@ -283,13 +426,22 @@ function handle(message) {
283
426
  scheduleCheck(file, method === "textDocument/didChange" ? DEBOUNCE_MS : 0);
284
427
  return;
285
428
  }
429
+ case "textDocument/didClose": {
430
+ // The buffer is gone, so the file on disk is the text from here on. The
431
+ // rows stay: an editor keeps a closed file's diagnostics in the Problems
432
+ // list, and this server has not stopped believing them.
433
+ const file = pathOf(params);
434
+ if (file)
435
+ openDocuments.delete(path.resolve(file));
436
+ return;
437
+ }
286
438
  case "workspace/didChangeConfiguration": {
287
439
  // A switch turned off takes its rows away on the next publish, not at the
288
440
  // next restart, so every file this server has flagged is re-checked here.
289
441
  surfaces = readSurfaces(params, surfaces);
290
442
  log(`surfaces: ${JSON.stringify(surfaces)}`);
291
- for (const relFile of publishedBy.keys())
292
- scheduleCheck(path.resolve(root, relFile), 0);
443
+ for (const checked of contributions.keys())
444
+ scheduleCheck(checked, 0);
293
445
  // A lens is pulled, not pushed, so `carrick.codeLens` off only clears the
294
446
  // screen once the client asks again. It is asked to.
295
447
  if (clientRefreshesLenses)
@@ -344,9 +496,14 @@ function handle(message) {
344
496
  }
345
497
  void enqueue(async () => {
346
498
  const result = await resultFor(file);
499
+ // This file's own pass and no other: a request answers what a check of
500
+ // this file says, and a pull must not rewrite what the push path has
501
+ // published to other files.
347
502
  const items = result
348
- ? (toDiagnostics(result, root, relative(file), { surfaces }).get(path.resolve(file)) ??
349
- [])
503
+ ? (toDiagnostics(result, root, relative(file), {
504
+ surfaces,
505
+ lineText: lineTextReader(),
506
+ }).get(path.resolve(file)) ?? [])
350
507
  : [];
351
508
  send({ id, result: { kind: "full", items } });
352
509
  });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "carrick",
3
- "version": "0.3.58",
3
+ "version": "0.3.59",
4
4
  "description": "The API contract index for a TypeScript workspace: what the other services do with the routes and calls in the file you are editing, in your editor and in your agent's context",
5
5
  "keywords": [
6
6
  "typescript",
@@ -55,11 +55,11 @@
55
55
  "zod": "^3.23.0"
56
56
  },
57
57
  "optionalDependencies": {
58
- "@carrick-tools/cli-darwin-arm64": "0.3.58",
59
- "@carrick-tools/cli-darwin-x64": "0.3.58",
60
- "@carrick-tools/cli-linux-arm64": "0.3.58",
61
- "@carrick-tools/cli-linux-x64": "0.3.58",
62
- "@carrick-tools/cli-win32-x64": "0.3.58"
58
+ "@carrick-tools/cli-darwin-arm64": "0.3.59",
59
+ "@carrick-tools/cli-darwin-x64": "0.3.59",
60
+ "@carrick-tools/cli-linux-arm64": "0.3.59",
61
+ "@carrick-tools/cli-linux-x64": "0.3.59",
62
+ "@carrick-tools/cli-win32-x64": "0.3.59"
63
63
  },
64
64
  "devDependencies": {
65
65
  "@types/node": "^24.13.3",
@@ -0,0 +1,41 @@
1
+ /** Deno owns module resolution; both compiler frontends consume its graph. */
2
+ import ts from 'typescript';
3
+ export interface DenoConfig {
4
+ configPath: string;
5
+ workspaceRoot: string;
6
+ compilerOptions: Record<string, unknown>;
7
+ exclude: string[];
8
+ }
9
+ /** Explicit TS configs keep their existing behaviour, including mixed repos. */
10
+ export declare function findDenoConfig(repoRoot: string, explicit?: string): DenoConfig | undefined;
11
+ /** One request's immutable graph, shared by analysis, emit and relocation. */
12
+ export declare class DenoProject {
13
+ readonly config: DenoConfig;
14
+ readonly repoRoot: string;
15
+ readonly cacheDir: string;
16
+ readonly parsed: ts.ParsedCommandLine;
17
+ readonly globals: string[];
18
+ readonly diagnostics: string[];
19
+ readonly pinned: Record<string, string>;
20
+ private readonly modules;
21
+ private readonly localPaths;
22
+ private readonly edges;
23
+ private readonly redirects;
24
+ private readonly npmPackages;
25
+ private readonly externalNames;
26
+ constructor(config: DenoConfig, repoRoot: string);
27
+ private targetPath;
28
+ resolve(spec: string, from: string, options: ts.CompilerOptions, host?: ts.ModuleResolutionHost): ts.ResolvedModule | undefined;
29
+ private npmOwner;
30
+ private isNpmFile;
31
+ /** Let TypeScript interpret real package exports/types using Deno's exact
32
+ * dependency graph. Only the resolution host sees virtual node_modules;
33
+ * every returned source path points at the existing Deno cache. */
34
+ private resolveNpm;
35
+ host(options: ts.CompilerOptions): ts.CompilerHost;
36
+ resolveTypeReference(spec: string, from: string, options: ts.CompilerOptions, host?: ts.ModuleResolutionHost): ts.ResolvedTypeReferenceDirective | undefined;
37
+ /** Turn a Deno npm alias into its real package export, with the exact pin. */
38
+ private externalName;
39
+ /** Relocate Deno's per-file resolutions into the portable declaration tree. */
40
+ rewrite(typesDir: string, files: string[], sourceByEmitted: Map<string, string>): number;
41
+ }