carrick 0.3.81 → 0.3.83

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 (79) hide show
  1. package/README.md +46 -19
  2. package/bin/carrick.mjs +45 -2
  3. package/dist/contract.d.ts +17 -0
  4. package/dist/contract.js.map +1 -1
  5. package/dist/hook/apply-patch.d.ts +13 -0
  6. package/dist/hook/apply-patch.js +100 -0
  7. package/dist/hook/apply-patch.js.map +1 -0
  8. package/dist/hook/post-edit.d.ts +30 -1
  9. package/dist/hook/post-edit.js +95 -24
  10. package/dist/hook/post-edit.js.map +1 -1
  11. package/dist/hook/reuse.d.ts +97 -0
  12. package/dist/hook/reuse.js +245 -0
  13. package/dist/hook/reuse.js.map +1 -0
  14. package/dist/hook/stop.d.ts +3 -0
  15. package/dist/hook/stop.js +76 -0
  16. package/dist/hook/stop.js.map +1 -0
  17. package/dist/hook/user-prompt.d.ts +9 -0
  18. package/dist/hook/user-prompt.js +79 -0
  19. package/dist/hook/user-prompt.js.map +1 -0
  20. package/dist/init/codex.d.ts +51 -0
  21. package/dist/init/codex.js +167 -0
  22. package/dist/init/codex.js.map +1 -0
  23. package/dist/init/connect.d.ts +13 -0
  24. package/dist/init/connect.js +21 -15
  25. package/dist/init/connect.js.map +1 -1
  26. package/dist/init/doctor.d.ts +36 -0
  27. package/dist/init/doctor.js +97 -2
  28. package/dist/init/doctor.js.map +1 -1
  29. package/dist/init/files.d.ts +16 -0
  30. package/dist/init/files.js +35 -0
  31. package/dist/init/files.js.map +1 -0
  32. package/dist/init/outdated.d.ts +54 -0
  33. package/dist/init/outdated.js +175 -0
  34. package/dist/init/outdated.js.map +1 -0
  35. package/dist/init/output.d.ts +35 -3
  36. package/dist/init/output.js +115 -23
  37. package/dist/init/output.js.map +1 -1
  38. package/dist/init/projects.d.ts +27 -13
  39. package/dist/init/projects.js +48 -50
  40. package/dist/init/projects.js.map +1 -1
  41. package/dist/init/remove.d.ts +0 -2
  42. package/dist/init/remove.js +91 -23
  43. package/dist/init/remove.js.map +1 -1
  44. package/dist/init/repos.d.ts +34 -0
  45. package/dist/init/repos.js +77 -0
  46. package/dist/init/repos.js.map +1 -1
  47. package/dist/init/run.d.ts +73 -6
  48. package/dist/init/run.js +382 -101
  49. package/dist/init/run.js.map +1 -1
  50. package/dist/init/settings.d.ts +20 -0
  51. package/dist/init/settings.js +42 -4
  52. package/dist/init/settings.js.map +1 -1
  53. package/dist/init/task-skills.d.ts +97 -0
  54. package/dist/init/task-skills.js +267 -0
  55. package/dist/init/task-skills.js.map +1 -0
  56. package/dist/init/workspace-file.d.ts +73 -0
  57. package/dist/init/workspace-file.js +173 -0
  58. package/dist/init/workspace-file.js.map +1 -0
  59. package/dist/scan.d.ts +13 -5
  60. package/dist/scan.js +21 -10
  61. package/dist/scan.js.map +1 -1
  62. package/dist/templates.d.ts +9 -0
  63. package/dist/templates.js +9 -1
  64. package/dist/templates.js.map +1 -1
  65. package/package.json +6 -6
  66. package/plugin/hooks/hooks.json +11 -0
  67. package/sidecar/dist/src/capture/check-classify.d.ts +10 -1
  68. package/sidecar/dist/src/capture/check-classify.js +66 -8
  69. package/sidecar/dist/src/capture/check-deep.d.ts +16 -4
  70. package/sidecar/dist/src/capture/check-deep.js +21 -17
  71. package/sidecar/dist/src/capture/check-fields.d.ts +83 -0
  72. package/sidecar/dist/src/capture/check-fields.js +259 -0
  73. package/sidecar/dist/src/capture/check-probe.d.ts +21 -1
  74. package/sidecar/dist/src/capture/check-probe.js +39 -0
  75. package/sidecar/dist/src/capture/check.js +9 -2
  76. package/templates/skills/carrick-census.md +89 -0
  77. package/templates/skills/carrick-drift.md +107 -0
  78. package/templates/skills/carrick-impact.md +108 -0
  79. package/templates/skills/carrick-reuse.md +106 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-skills.js","sourceRoot":"","sources":["../../src/init/task-skills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /** The file, in the folder that holds the repos. */
2
+ export declare const WORKSPACE_FILE = "carrick-workspace.json";
3
+ /** The file as it is, or null when the folder has none. */
4
+ export declare function readWorkspaceFile(workspace: string): string | null;
5
+ /**
6
+ * The repos this folder's workspace file leaves out.
7
+ *
8
+ * Read by `carrick init` before it derives anything: the scanner has already
9
+ * dropped an excluded repo by the time the proposal arrives, so this is the
10
+ * only way the command can say which repo a `--repo` flag is asking for and
11
+ * where the answer was written down. An unreadable or unparseable file
12
+ * excludes nothing here; the scanner reports it.
13
+ */
14
+ export declare function excludedRepos(workspace: string): string[];
15
+ export type SelectionWrite = {
16
+ /** The file body to write. */
17
+ body: string;
18
+ /** True when it differs from what was there. */
19
+ changed: boolean;
20
+ /** The names this call added, which is what `carrick remove` takes back. */
21
+ added: string[];
22
+ };
23
+ /**
24
+ * The document with these repos excluded, and the record of what we added.
25
+ *
26
+ * Idempotent: a name the file already excludes is left where it is and not
27
+ * claimed, whether a user put it there or an earlier run did. Everything else
28
+ * in the file — a `repos` list, a key this version knows nothing about, the
29
+ * order they are in — is kept as it was found.
30
+ *
31
+ * Throws on a file that is not JSON, exactly as the hook writers do: a file
32
+ * somebody hand-edited into something unparseable is reported, never
33
+ * overwritten.
34
+ */
35
+ export declare function withExclusions(existing: string | null, exclude: string[]): SelectionWrite;
36
+ export type SelectionRemoval = {
37
+ body: string;
38
+ changed: boolean;
39
+ /** The names taken back out. */
40
+ removed: string[];
41
+ /** True when nothing of anyone else's is left, so the file itself can go. */
42
+ empty: boolean;
43
+ };
44
+ /**
45
+ * The inverse: our exclusions out, everything else kept.
46
+ *
47
+ * `carrick remove` undoes an install, and an install is the only thing this
48
+ * takes back. A name a user excluded by hand stays excluded, and a file that
49
+ * holds their repo list stays a file — it was theirs before init ran. Only a
50
+ * document that is nothing but what init put there is reported as one the
51
+ * caller may delete.
52
+ */
53
+ export declare function withoutOurExclusions(existing: string): SelectionRemoval;
54
+ /**
55
+ * Write the selection into the folder, and say what was recorded.
56
+ *
57
+ * Null when there was nothing to exclude, which is the ordinary case: a single
58
+ * repo is not a choice, and a folder whose repos are all covered has no
59
+ * selection to persist and must not get a file it did not have.
60
+ */
61
+ export declare function writeSelection(workspace: string, exclude: string[]): SelectionWrite | null;
62
+ /**
63
+ * Take our exclusions back out of the folder's file. Null when there was none.
64
+ *
65
+ * The file goes with them when init is the reason it exists; a file holding a
66
+ * user's own repo list or their own exclusions is rewritten without ours and
67
+ * left where it is.
68
+ */
69
+ export declare function removeSelection(workspace: string): {
70
+ file: string;
71
+ removed: string[];
72
+ deleted: boolean;
73
+ } | null;
@@ -0,0 +1,173 @@
1
+ // The repo selection, written where every later command reads it.
2
+ //
3
+ // `carrick init` asks which repos in a folder this install covers
4
+ // (carrick#1338). The answer used to last exactly as long as the run: the
5
+ // proposal, the project and the connection were scoped to it, and then
6
+ // `carrick refresh`, `carrick index`, the editor hooks and the next `init` all
7
+ // went back to deriving every repo in the folder. So a repo somebody had said
8
+ // no to was scanned by the command that ran after the one they said it in
9
+ // (carrick#1344).
10
+ //
11
+ // `carrick-workspace.json` is where that answer belongs. The scanner already
12
+ // reads it (`src/local_mode/workspace.rs`): `exclude` names directories to
13
+ // leave out, `Workspace::load` honours it, and the read path behind
14
+ // `carrick check` asks the same question of the same file, so the folder's
15
+ // hooks stop answering for a repo that is not covered. It sits in the folder
16
+ // holding the repos, which is not itself a repository, so nothing tracked is
17
+ // touched.
18
+ //
19
+ // What this file adds is the record of who wrote what. The list is shared: a
20
+ // user can exclude a repo by hand, and `carrick remove` must not take that
21
+ // away with ours. So every name init adds is also recorded under `carrick`,
22
+ // and the remove path subtracts exactly that list and nothing else. The
23
+ // scanner declares the same key (`WrittenByInit`) so a round trip through its
24
+ // struct cannot drop it.
25
+ import fs from "node:fs";
26
+ import path from "node:path";
27
+ /** The file, in the folder that holds the repos. */
28
+ export const WORKSPACE_FILE = "carrick-workspace.json";
29
+ function parse(existing) {
30
+ if (existing === null || existing.trim() === "")
31
+ return {};
32
+ const parsed = JSON.parse(existing);
33
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
34
+ throw new Error(`${WORKSPACE_FILE} is not a JSON object`);
35
+ }
36
+ return parsed;
37
+ }
38
+ function names(value) {
39
+ return Array.isArray(value) ? value.filter((entry) => typeof entry === "string") : [];
40
+ }
41
+ /** The half of the document init owns, as it is written. */
42
+ function ours(document) {
43
+ const section = document["carrick"];
44
+ if (typeof section !== "object" || section === null)
45
+ return [];
46
+ return names(section["exclude"]);
47
+ }
48
+ function serialize(document) {
49
+ return `${JSON.stringify(document, null, 2)}\n`;
50
+ }
51
+ /** The file as it is, or null when the folder has none. */
52
+ export function readWorkspaceFile(workspace) {
53
+ try {
54
+ return fs.readFileSync(path.join(workspace, WORKSPACE_FILE), "utf8");
55
+ }
56
+ catch {
57
+ return null;
58
+ }
59
+ }
60
+ /**
61
+ * The repos this folder's workspace file leaves out.
62
+ *
63
+ * Read by `carrick init` before it derives anything: the scanner has already
64
+ * dropped an excluded repo by the time the proposal arrives, so this is the
65
+ * only way the command can say which repo a `--repo` flag is asking for and
66
+ * where the answer was written down. An unreadable or unparseable file
67
+ * excludes nothing here; the scanner reports it.
68
+ */
69
+ export function excludedRepos(workspace) {
70
+ const existing = readWorkspaceFile(workspace);
71
+ if (existing === null)
72
+ return [];
73
+ try {
74
+ return names(parse(existing)["exclude"]);
75
+ }
76
+ catch {
77
+ return [];
78
+ }
79
+ }
80
+ /**
81
+ * The document with these repos excluded, and the record of what we added.
82
+ *
83
+ * Idempotent: a name the file already excludes is left where it is and not
84
+ * claimed, whether a user put it there or an earlier run did. Everything else
85
+ * in the file — a `repos` list, a key this version knows nothing about, the
86
+ * order they are in — is kept as it was found.
87
+ *
88
+ * Throws on a file that is not JSON, exactly as the hook writers do: a file
89
+ * somebody hand-edited into something unparseable is reported, never
90
+ * overwritten.
91
+ */
92
+ export function withExclusions(existing, exclude) {
93
+ const document = parse(existing);
94
+ const current = names(document["exclude"]);
95
+ const added = exclude.filter((name) => !current.includes(name));
96
+ const claimed = [...ours(document), ...added];
97
+ const next = { ...document, exclude: [...current, ...added] };
98
+ if (claimed.length > 0)
99
+ next["carrick"] = { exclude: claimed };
100
+ const body = serialize(next);
101
+ return { body, changed: body !== existing, added };
102
+ }
103
+ /**
104
+ * The inverse: our exclusions out, everything else kept.
105
+ *
106
+ * `carrick remove` undoes an install, and an install is the only thing this
107
+ * takes back. A name a user excluded by hand stays excluded, and a file that
108
+ * holds their repo list stays a file — it was theirs before init ran. Only a
109
+ * document that is nothing but what init put there is reported as one the
110
+ * caller may delete.
111
+ */
112
+ export function withoutOurExclusions(existing) {
113
+ const document = parse(existing);
114
+ const removed = ours(document);
115
+ const kept = names(document["exclude"]).filter((name) => !removed.includes(name));
116
+ const next = {};
117
+ for (const [key, value] of Object.entries(document)) {
118
+ if (key === "carrick")
119
+ continue;
120
+ // An emptied list is dropped rather than left as `[]`: it is a key init
121
+ // added, and a file left holding one reads as a decision somebody made.
122
+ if (key === "exclude") {
123
+ if (kept.length > 0)
124
+ next["exclude"] = kept;
125
+ continue;
126
+ }
127
+ next[key] = value;
128
+ }
129
+ // Nothing of anyone else's left: no keys at all, or an empty `repos` list
130
+ // and nothing beside it.
131
+ const left = Object.keys(next);
132
+ const empty = left.length === 0 || (left.length === 1 && left[0] === "repos" && names(next["repos"]).length === 0);
133
+ return { body: serialize(next), changed: serialize(next) !== existing, removed, empty };
134
+ }
135
+ /**
136
+ * Write the selection into the folder, and say what was recorded.
137
+ *
138
+ * Null when there was nothing to exclude, which is the ordinary case: a single
139
+ * repo is not a choice, and a folder whose repos are all covered has no
140
+ * selection to persist and must not get a file it did not have.
141
+ */
142
+ export function writeSelection(workspace, exclude) {
143
+ if (exclude.length === 0)
144
+ return null;
145
+ const target = path.join(workspace, WORKSPACE_FILE);
146
+ const written = withExclusions(readWorkspaceFile(workspace), exclude);
147
+ if (written.changed)
148
+ fs.writeFileSync(target, written.body);
149
+ return written;
150
+ }
151
+ /**
152
+ * Take our exclusions back out of the folder's file. Null when there was none.
153
+ *
154
+ * The file goes with them when init is the reason it exists; a file holding a
155
+ * user's own repo list or their own exclusions is rewritten without ours and
156
+ * left where it is.
157
+ */
158
+ export function removeSelection(workspace) {
159
+ const existing = readWorkspaceFile(workspace);
160
+ if (existing === null)
161
+ return null;
162
+ const cleaned = withoutOurExclusions(existing);
163
+ if (cleaned.removed.length === 0)
164
+ return null;
165
+ const target = path.join(workspace, WORKSPACE_FILE);
166
+ if (cleaned.empty) {
167
+ fs.rmSync(target, { force: true });
168
+ return { file: WORKSPACE_FILE, removed: cleaned.removed, deleted: true };
169
+ }
170
+ fs.writeFileSync(target, cleaned.body);
171
+ return { file: WORKSPACE_FILE, removed: cleaned.removed, deleted: false };
172
+ }
173
+ //# sourceMappingURL=workspace-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-file.js","sourceRoot":"","sources":["../../src/init/workspace-file.ts"],"names":[],"mappings":"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"}
package/dist/scan.d.ts CHANGED
@@ -20,6 +20,9 @@ export type ServiceSummary = {
20
20
  name: string;
21
21
  routes: number;
22
22
  calls: number;
23
+ /** Absent on a summary from a binary older than carrick#1321. */
24
+ functions?: number;
25
+ types?: number;
23
26
  routes_without_response_type: number;
24
27
  };
25
28
  /** Mirrors `progress::Summary`: what a finished build amounts to. */
@@ -64,12 +67,17 @@ export declare function isRendered(command: string | undefined, args: string[]):
64
67
  /** `169.4` as `2m49s`, `32.7` as `32.7s`. Under a minute keeps its tenth. */
65
68
  export declare function elapsed(seconds: number): string;
66
69
  /**
67
- * The one line a finished build is worth: how many routes, how many calls,
68
- * and how many of those routes have nothing on the producer side of a
69
- * compatibility check.
70
+ * The one line a finished build is worth: what the index holds, then the one
71
+ * shortfall in it.
70
72
  *
71
- * The third count is dropped when it is zero. A line states how many, of
72
- * which thing, and what to do about it; nothing to do is nothing to say
73
+ * Routes and calls alone were the whole line, and a service of 111 routes,
74
+ * 363 functions and 175 types read as `111 routes · 1 call` — which to a
75
+ * developer, and to an agent, is a nearly empty index (carrick#1321). The two
76
+ * largest things it holds are named before the shortfall, because the line's
77
+ * subject is what was built.
78
+ *
79
+ * The shortfall is dropped when it is zero. A line states how many, of which
80
+ * thing, and what to do about it; nothing to do is nothing to say
73
81
  * (carrick#1284).
74
82
  */
75
83
  export declare function summaryLine(summary: Summary): string;
package/dist/scan.js CHANGED
@@ -114,21 +114,32 @@ function plural(count, noun) {
114
114
  return `${count} ${noun}${count === 1 ? "" : "s"}`;
115
115
  }
116
116
  /**
117
- * The one line a finished build is worth: how many routes, how many calls,
118
- * and how many of those routes have nothing on the producer side of a
119
- * compatibility check.
117
+ * The one line a finished build is worth: what the index holds, then the one
118
+ * shortfall in it.
120
119
  *
121
- * The third count is dropped when it is zero. A line states how many, of
122
- * which thing, and what to do about it; nothing to do is nothing to say
120
+ * Routes and calls alone were the whole line, and a service of 111 routes,
121
+ * 363 functions and 175 types read as `111 routes · 1 call` — which to a
122
+ * developer, and to an agent, is a nearly empty index (carrick#1321). The two
123
+ * largest things it holds are named before the shortfall, because the line's
124
+ * subject is what was built.
125
+ *
126
+ * The shortfall is dropped when it is zero. A line states how many, of which
127
+ * thing, and what to do about it; nothing to do is nothing to say
123
128
  * (carrick#1284).
124
129
  */
125
130
  export function summaryLine(summary) {
126
- const total = (pick) => summary.services.reduce((sum, service) => sum + pick(service), 0);
131
+ const total = (pick) => summary.services.reduce((sum, service) => sum + (pick(service) ?? 0), 0);
127
132
  const untyped = total((service) => service.routes_without_response_type);
128
- const parts = [
129
- plural(total((service) => service.routes), "route"),
130
- plural(total((service) => service.calls), "call"),
131
- ];
133
+ const functions = total((service) => service.functions);
134
+ const types = total((service) => service.types);
135
+ const parts = [plural(total((service) => service.routes), "route")];
136
+ if (functions > 0)
137
+ parts.push(plural(functions, "function"));
138
+ if (types > 0)
139
+ parts.push(plural(types, "type"));
140
+ // Named for what it is. Every call in the index crosses a service boundary,
141
+ // and "1 call" beside 363 functions reads as one function call.
142
+ parts.push(plural(total((service) => service.calls), "external call"));
132
143
  if (untyped > 0)
133
144
  parts.push(`${plural(untyped, "route")} without a response type`);
134
145
  return parts.join(" · ");
package/dist/scan.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,0EAA0E;AAC1E,yEAAyE;AACzE,6EAA6E;AAC7E,0EAA0E;AAC1E,sEAAsE;AACtE,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,2EAA2E;AAC3E,0EAA0E;AAC1E,2BAA2B;AAC3B,EAAE;AACF,gEAAgE;AAChE,EAAE;AACF,0EAA0E;AAC1E,oCAAoC;AACpC,yEAAyE;AACzE,8EAA8E;AAC9E,4EAA4E;AAC5E,4EAA4E;AAC5E,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,+EAA+E;AAE/E,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,YAAY,GAIb,MAAM,kBAAkB,CAAC;AAwC1B,MAAM,QAAQ,GAAG;IACf,KAAK,EAAE,iBAAiB;IACxB,QAAQ,EAAE,oBAAoB;IAC9B,OAAO,EAAE,mBAAmB;IAC5B,MAAM,EAAE,kBAAkB;CAClB,CAAC;AAEX;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,SAAS;QACvC,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACjE,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,OAAsB,CAAC;YACrC,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YACjD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,OAAyB,CAAC;YACzC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAClD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,OAAkB,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAAE,OAAO,IAAI,CAAC;YAClD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QACtC,CAAC;QACD,MAAM,MAAM,GAAG,OAA6B,CAAC;QAC7C,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACjD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,OAA2B,EAAE,IAAc;IACpE,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,OAAO,CAAC,IAAI,CAAC,IAAI,CACf,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,KAAK,WAAW;QACnB,GAAG,KAAK,IAAI;QACZ,GAAG,KAAK,UAAU;QAClB,GAAG,KAAK,QAAQ;QAChB,GAAG,KAAK,IAAI,CACf,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5D,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC;AAC7D,CAAC;AAED,SAAS,MAAM,CAAC,KAAa,EAAE,IAAY;IACzC,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACrD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,MAAM,KAAK,GAAG,CAAC,IAAyC,EAAU,EAAE,CAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG;QACZ,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;KAClD,CAAC;IACF,IAAI,OAAO,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACnF,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,SAAS,CAAC,OAAgB;IACxC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;IAChC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,gFAAgF,CAAC;AAC1F,CAAC;AAaD;;;;;;;GAOG;AACH,MAAM,OAAO,UAAU;IACJ,MAAM,CAAa;IACnB,OAAO,CAAS;IACjC,4DAA4D;IACpD,KAAK,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IACjD;;;;;;OAMG;IACK,QAAQ,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/C,IAAI,GAAqB,IAAI,CAAC;IACtC,qEAAqE;IAC7D,OAAO,GAAkB,IAAI,CAAC;IACtC,gFAAgF;IACxE,IAAI,GAAsB,IAAI,CAAC;IAC/B,MAAM,GAAG,KAAK,CAAC;IACf,UAAU,GAAG,KAAK,CAAC;IAC3B,iEAAiE;IAChD,QAAQ,GAAa,EAAE,CAAC;IACzC,6DAA6D;IAC5C,QAAQ,GAAa,EAAE,CAAC;IAEzC,YAAY,MAAkB,EAAE,OAAe;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,4CAA4C;IAC5C,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,sDAAsD;IACtD,IAAI,UAAU;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,sCAAsC;IACtC,MAAM,CAAC,IAAY;QACjB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO;QAC/B,uEAAuE;QACvE,mEAAmE;QACnE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,sCAAsC;IACtC,MAAM,CAAC,IAAY;QACjB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO;QAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEO,OAAO,CAAC,IAAY;QAC1B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;YAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACjD,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU;YAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;aAC7D,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;;YACvD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK;QACX,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,MAAmB;QAC/B,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,OAAO,GAAiC,GAAG,EAAE,GAAE,CAAC,CAAC;YACrD,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAa,CAAC,MAAM,EAAE,EAAE;gBAClD,OAAO,GAAG,MAAM,CAAC;YACnB,CAAC,CAAC,CAAC;YACH,MAAM,KAAK,GAAc;gBACvB,KAAK;gBACL,SAAS;gBACT,OAAO;gBACP,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;gBACb,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI;aACb,CAAC;YACF,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;gBACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAC9B,KAAK,EACL,CAAC,GAAG,EAAE,EAAE;oBACN,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;oBAChB,OAAO,QAAQ,CAAC;gBAClB,CAAC,EACD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CACnB,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,wEAAwE;QACxE,sDAAsD;QACtD,IAAI,CAAC,IAAI,GAAG;YACV,IAAI,EAAE,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YACjD,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE;SACvB,CAAC;IACJ,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;YACtB,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YACtD,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;IACrC,CAAC;IAED,6EAA6E;IACrE,KAAK,CAAC,MAAmB;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,OAAO,GAAG,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QAChF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,2EAA2E;QAC3E,+DAA+D;QAC/D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAEO,QAAQ,CAAC,MAAsB;QACrC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;QACvB,uEAAuE;QACvE,yEAAyE;QACzE,iCAAiC;QACjC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACtD,IAAI,CAAC,OAAO,GAAG,GAAG,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACnE,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,mEAAmE;IAC3D,MAAM;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAEO,OAAO,CAAC,OAAgB;QAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,oEAAoE;QACpE,mCAAmC;QACnC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,MAAe;QAC1B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CACR,MAAM;gBACJ,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,qBAAqB,EAAE;gBACnE,CAAC,CAAC,SAAS,CACd,CAAC;YACF,IAAI,MAAM;gBAAE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACtC,CAAC;QACD,oEAAoE;QACpE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACxB,MAAM,IAAI,CAAC,KAAK,CAAC;QACjB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC;IACxC,CAAC;IAEO,QAAQ,CAAC,IAAmC;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;aACpB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;aACzB,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,CACH,GAAG,EAAE,GAAE,CAAC,EACR,GAAG,EAAE,GAAE,CAAC,CACT,CAAC;IACN,CAAC;CACF;AAED,6DAA6D;AAC7D,SAAS,YAAY,CAAC,KAAe;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAMhC;IACC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,YAAY,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE;QAChD,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;QAClC,qEAAqE;QACrE,4EAA4E;QAC5E,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE;KAC/C,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,CACX,MAA6B,EAC7B,IAA4B,EACb,EAAE,CACjB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACtB,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAClC,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACpB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEL,MAAM,KAAK,GAAG,IAAI,OAAO,CACvB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAClB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,EAAE,AAAD,EAAG,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,KAAK;KACN,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;IAC7D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,sEAAsE;IACtE,6DAA6D;IAC7D,IAAI,CAAC,IAAI;QAAE,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACtC,IAAI,MAAM;QAAE,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,15 @@ export declare const TEMPLATE_NAMES: TemplateName[];
3
3
  /** Where a repo puts each one. */
4
4
  export declare const TEMPLATE_PATHS: Record<TemplateName, string>;
5
5
  export declare const DEFAULTS: Record<string, string>;
6
+ /**
7
+ * The directory the shipped template files sit in.
8
+ *
9
+ * Resolved from this module rather than from the process, because the same
10
+ * resolution has to hold in the checkout (`src/../templates`) and in the
11
+ * published emit (`dist/../templates`). `init/task-skills.ts` reads the skill
12
+ * bodies from a subdirectory of it.
13
+ */
14
+ export declare function templatesDir(): string;
6
15
  export declare function templateSource(name: TemplateName): string;
7
16
  /**
8
17
  * Render one template.
package/dist/templates.js CHANGED
@@ -27,7 +27,15 @@ export const DEFAULTS = {
27
27
  ACTION_REF: "carrick-tools/carrick@v1",
28
28
  DEFAULT_BRANCH: "main",
29
29
  };
30
- function templatesDir() {
30
+ /**
31
+ * The directory the shipped template files sit in.
32
+ *
33
+ * Resolved from this module rather than from the process, because the same
34
+ * resolution has to hold in the checkout (`src/../templates`) and in the
35
+ * published emit (`dist/../templates`). `init/task-skills.ts` reads the skill
36
+ * bodies from a subdirectory of it.
37
+ */
38
+ export function templatesDir() {
31
39
  return path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "templates");
32
40
  }
33
41
  export function templateSource(name) {
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,+EAA+E;AAC/E,0EAA0E;AAC1E,kEAAkE;AAClE,EAAE;AACF,sEAAsE;AACtE,uDAAuD;AAEvD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAMzC,MAAM,SAAS,GAAmC;IAChD,4CAA4C;IAC5C,QAAQ,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAE;IAC9E,+DAA+D;IAC/D,cAAc,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,EAAE;CACxD,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAmB,CAAC;AAEvE,kCAAkC;AAClC,MAAM,CAAC,MAAM,cAAc,GAAiC;IAC1D,QAAQ,EAAE,+BAA+B;IACzC,cAAc,EAAE,cAAc;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAA2B;IAC9C,UAAU,EAAE,0BAA0B;IACtC,cAAc,EAAE,MAAM;CACvB,CAAC;AAEF,SAAS,YAAY;IACnB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAkB;IAC/C,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AAClF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAkB,EAClB,YAAoC,EAAE;IAEtC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,SAAS,EAAE,CAAC;IAC7C,IAAI,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,sBAAsB,GAAG,EAAE,CAAC,CAAC;QAC7E,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,gBAAgB,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC5E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,aAAa,CAC3B,YAAoC,EAAE;IAEtC,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;QAC1B,QAAQ,EAAE,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC;KAC1C,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,+EAA+E;AAC/E,0EAA0E;AAC1E,kEAAkE;AAClE,EAAE;AACF,sEAAsE;AACtE,uDAAuD;AAEvD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAMzC,MAAM,SAAS,GAAmC;IAChD,4CAA4C;IAC5C,QAAQ,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAE;IAC9E,+DAA+D;IAC/D,cAAc,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,EAAE;CACxD,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAmB,CAAC;AAEvE,kCAAkC;AAClC,MAAM,CAAC,MAAM,cAAc,GAAiC;IAC1D,QAAQ,EAAE,+BAA+B;IACzC,cAAc,EAAE,cAAc;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAA2B;IAC9C,UAAU,EAAE,0BAA0B;IACtC,cAAc,EAAE,MAAM;CACvB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAkB;IAC/C,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AAClF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAkB,EAClB,YAAoC,EAAE;IAEtC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,SAAS,EAAE,CAAC;IAC7C,IAAI,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,sBAAsB,GAAG,EAAE,CAAC,CAAC;QAC7E,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,gBAAgB,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC5E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,aAAa,CAC3B,YAAoC,EAAE;IAEtC,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;QAC1B,QAAQ,EAAE,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC;KAC1C,CAAC,CAAC,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "carrick",
3
- "version": "0.3.81",
3
+ "version": "0.3.83",
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",
@@ -57,11 +57,11 @@
57
57
  "zod": "^3.23.0"
58
58
  },
59
59
  "optionalDependencies": {
60
- "@carrick-tools/cli-darwin-arm64": "0.3.81",
61
- "@carrick-tools/cli-darwin-x64": "0.3.81",
62
- "@carrick-tools/cli-linux-arm64": "0.3.81",
63
- "@carrick-tools/cli-linux-x64": "0.3.81",
64
- "@carrick-tools/cli-win32-x64": "0.3.81"
60
+ "@carrick-tools/cli-darwin-arm64": "0.3.83",
61
+ "@carrick-tools/cli-darwin-x64": "0.3.83",
62
+ "@carrick-tools/cli-linux-arm64": "0.3.83",
63
+ "@carrick-tools/cli-linux-x64": "0.3.83",
64
+ "@carrick-tools/cli-win32-x64": "0.3.83"
65
65
  },
66
66
  "devDependencies": {
67
67
  "@types/node": "^24.13.3",
@@ -22,6 +22,17 @@
22
22
  }
23
23
  ]
24
24
  }
25
+ ],
26
+ "Stop": [
27
+ {
28
+ "hooks": [
29
+ {
30
+ "type": "command",
31
+ "command": "carrick hook stop",
32
+ "timeout": 5
33
+ }
34
+ ]
35
+ }
25
36
  ]
26
37
  }
27
38
  }
@@ -22,9 +22,10 @@
22
22
  * Seam: node builtins + this bundle only.
23
23
  */
24
24
  import type { CheckVerdict } from './api.js';
25
- import type { ProbePlan } from './check-probe.js';
25
+ import { type ProbePlan } from './check-probe.js';
26
26
  import { type ScrubContext } from './check-scrub.js';
27
27
  import type { PairDeepFindings } from './check-deep.js';
28
+ import { type PairFieldReport } from './check-fields.js';
28
29
  export interface RawDiagnostic {
29
30
  /** Workspace-relative, forward-slash file path (empty for global errors). */
30
31
  file: string;
@@ -55,6 +56,14 @@ export interface ClassifyInput {
55
56
  * verdict is then not a fact either.
56
57
  */
57
58
  deepFindings?: PairDeepFindings;
59
+ /**
60
+ * The differing fields of the two types the judge compared
61
+ * (carrick-tools/carrick-cloud#1118), walked in the same program. Read only
62
+ * on a mismatch, and only to NAME what the judge already decided: it never
63
+ * moves a bucket and never sets `resolved`. Absent when the walk could not
64
+ * run, in which case the tsc text stands alone.
65
+ */
66
+ fieldReport?: PairFieldReport;
58
67
  }
59
68
  /** Classify one pair into exactly one bucket, honouring the precedence order. */
60
69
  export declare function classifyPair(input: ClassifyInput): CheckVerdict;
@@ -21,7 +21,9 @@
21
21
  *
22
22
  * Seam: node builtins + this bundle only.
23
23
  */
24
- import { scrubDiagnostic } from './check-scrub.js';
24
+ import { decisiveAssignmentLine } from './check-probe.js';
25
+ import { scrubDiagnostic, scrubPaths } from './check-scrub.js';
26
+ import { describeFieldReport } from './check-fields.js';
25
27
  const PRIMARY_RE = /^(?<file>(?:[a-zA-Z]:)?[^(]*?)\((?<line>\d+),(?<col>\d+)\): error TS(?<code>\d+): (?<msg>.*)$/;
26
28
  /** Parse `tsc --pretty false` output into structured diagnostics. */
27
29
  export function parseTscOutput(stdout) {
@@ -155,31 +157,87 @@ export function classifyPair(input) {
155
157
  ...notAFact(`the ${side} sends a form-encoded body`),
156
158
  };
157
159
  }
158
- // 5. Assignment-class error on the value assignment line -> incompatible.
159
- const assignDiag = probeDiags.find((d) => d.line === plan.assignmentLine && ASSIGNMENT_CODES.has(d.code));
160
+ // 5. Assignment-class error on the DECISIVE assignment line -> incompatible.
161
+ //
162
+ // On an `http` pair that line is the JSON wire assignment, not the declared
163
+ // one (carrick-tools/carrick-cloud#1119). The two cannot disagree in the
164
+ // direction that matters: the wire comparand short-circuits to the declared
165
+ // type whenever that already assigns, so an error there means the shapes
166
+ // disagree as declared AND as serialised. A pair whose declared forms
167
+ // disagree only over what serialisation changes (a producer `Date` read as
168
+ // the `string` it becomes) has no error on this line and is not a drift.
169
+ const decisiveLine = decisiveAssignmentLine(plan);
170
+ const assignDiag = probeDiags.find((d) => d.line === decisiveLine && ASSIGNMENT_CODES.has(d.code));
160
171
  if (assignDiag) {
172
+ const text = scrubDiagnostic(assignDiag.message, scrubCtx, plan.sentEndpoint.alias, plan.expectedEndpoint.alias);
161
173
  return {
162
174
  ...base,
163
175
  bucket: 'incompatible',
164
- diagnostic: scrubDiagnostic(assignDiag.message, scrubCtx, plan.sentEndpoint.alias, plan.expectedEndpoint.alias),
176
+ diagnostic: text + namedFields(input, scrubCtx),
165
177
  ...factness(input),
166
178
  };
167
179
  }
168
- // Any other diagnostic on the assignment line that is not a known assignment
169
- // code still means the pair could not be cleanly verified.
170
- const otherAssign = probeDiags.find((d) => d.line === plan.assignmentLine);
180
+ // Any other diagnostic on the DECLARED assignment line that is not a known
181
+ // assignment code still means the pair could not be cleanly verified.
182
+ // A mismatch there with none on the wire line is not one of these: it is the
183
+ // pair the wire rule just cleared, and it falls through to `compatible`.
184
+ const scrub = (text) => scrubDiagnostic(text, scrubCtx, plan.sentEndpoint.alias, plan.expectedEndpoint.alias);
185
+ const otherAssign = probeDiags.find((d) => d.line === plan.assignmentLine && !ASSIGNMENT_CODES.has(d.code));
171
186
  if (otherAssign) {
172
187
  return {
173
188
  ...base,
174
189
  bucket: 'unverifiable',
175
190
  gate: 'assignment:other',
176
- diagnostic: scrubDiagnostic(otherAssign.message, scrubCtx, plan.sentEndpoint.alias, plan.expectedEndpoint.alias),
191
+ diagnostic: scrub(otherAssign.message),
192
+ ...notAFact('the probe raised a diagnostic that is not an assignment mismatch'),
193
+ };
194
+ }
195
+ // The same on the WIRE line: the serialised form was never judged (a type too
196
+ // deep to instantiate the transform over, say). What the DECLARED forms say
197
+ // is then the only judgment there is, and a mismatch in them is still a
198
+ // mismatch — reporting it as unverifiable would hide a real one. The
199
+ // unjudged wire form is named, because it is the reason the usual
200
+ // serialisation allowance did not apply.
201
+ const wireOther = plan.wireAssignmentLine === undefined
202
+ ? undefined
203
+ : probeDiags.find((d) => d.line === plan.wireAssignmentLine && !ASSIGNMENT_CODES.has(d.code));
204
+ if (wireOther) {
205
+ const declaredMismatch = probeDiags.find((d) => d.line === plan.assignmentLine && ASSIGNMENT_CODES.has(d.code));
206
+ if (declaredMismatch) {
207
+ return {
208
+ ...base,
209
+ bucket: 'incompatible',
210
+ diagnostic: scrub(declaredMismatch.message) +
211
+ ' The serialised form of the sent type could not be computed, so this' +
212
+ ' compares the types as declared.' +
213
+ namedFields(input, scrubCtx),
214
+ ...factness(input),
215
+ };
216
+ }
217
+ return {
218
+ ...base,
219
+ bucket: 'unverifiable',
220
+ gate: 'assignment:other',
221
+ diagnostic: scrub(wireOther.message),
177
222
  ...notAFact('the probe raised a diagnostic that is not an assignment mismatch'),
178
223
  };
179
224
  }
180
225
  // 6. No diagnostics -> compatible.
181
226
  return { ...base, bucket: 'compatible', ...factness(input) };
182
227
  }
228
+ /**
229
+ * The field-level sentence appended to a mismatch diagnostic
230
+ * (carrick-tools/carrick-cloud#1118), or `''` when the walk found nothing to
231
+ * name. Scrubbed on the same terms as the tsc text: a printed member type can
232
+ * carry a stub-absolute `import("...")` path.
233
+ */
234
+ function namedFields(input, scrubCtx) {
235
+ const report = input.fieldReport;
236
+ if (!report)
237
+ return '';
238
+ const text = describeFieldReport(report, input.plan.direction.sent, input.plan.direction.expected);
239
+ return text === '' ? '' : scrubPaths(text, scrubCtx);
240
+ }
183
241
  /**
184
242
  * Whether a compared pair is a FACT about two known types (carrick#707, R1d).
185
243
  *