carrick 0.3.82 → 0.3.84
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -30
- package/bin/carrick.mjs +45 -2
- package/dist/contract.d.ts +17 -0
- package/dist/contract.js.map +1 -1
- package/dist/hook/apply-patch.d.ts +13 -0
- package/dist/hook/apply-patch.js +100 -0
- package/dist/hook/apply-patch.js.map +1 -0
- package/dist/hook/post-edit.d.ts +30 -1
- package/dist/hook/post-edit.js +95 -24
- package/dist/hook/post-edit.js.map +1 -1
- package/dist/hook/reuse.d.ts +97 -0
- package/dist/hook/reuse.js +245 -0
- package/dist/hook/reuse.js.map +1 -0
- package/dist/hook/stop.d.ts +3 -0
- package/dist/hook/stop.js +76 -0
- package/dist/hook/stop.js.map +1 -0
- package/dist/hook/user-prompt.d.ts +9 -0
- package/dist/hook/user-prompt.js +79 -0
- package/dist/hook/user-prompt.js.map +1 -0
- package/dist/init/codex.d.ts +51 -0
- package/dist/init/codex.js +167 -0
- package/dist/init/codex.js.map +1 -0
- package/dist/init/connect.d.ts +13 -0
- package/dist/init/connect.js +21 -15
- package/dist/init/connect.js.map +1 -1
- package/dist/init/doctor.d.ts +57 -0
- package/dist/init/doctor.js +132 -3
- package/dist/init/doctor.js.map +1 -1
- package/dist/init/files.d.ts +15 -0
- package/dist/init/files.js +20 -1
- package/dist/init/files.js.map +1 -1
- package/dist/init/hosted.d.ts +30 -5
- package/dist/init/hosted.js +75 -9
- package/dist/init/hosted.js.map +1 -1
- package/dist/init/mcp.d.ts +45 -30
- package/dist/init/mcp.js +47 -88
- package/dist/init/mcp.js.map +1 -1
- package/dist/init/outdated.d.ts +54 -0
- package/dist/init/outdated.js +175 -0
- package/dist/init/outdated.js.map +1 -0
- package/dist/init/output.d.ts +72 -3
- package/dist/init/output.js +187 -23
- package/dist/init/output.js.map +1 -1
- package/dist/init/projects.d.ts +27 -13
- package/dist/init/projects.js +48 -50
- package/dist/init/projects.js.map +1 -1
- package/dist/init/remove.d.ts +0 -2
- package/dist/init/remove.js +61 -15
- package/dist/init/remove.js.map +1 -1
- package/dist/init/repos.d.ts +34 -0
- package/dist/init/repos.js +77 -0
- package/dist/init/repos.js.map +1 -1
- package/dist/init/run.d.ts +148 -26
- package/dist/init/run.js +577 -125
- package/dist/init/run.js.map +1 -1
- package/dist/init/settings.d.ts +20 -0
- package/dist/init/settings.js +42 -4
- package/dist/init/settings.js.map +1 -1
- package/dist/init/task-skills.d.ts +27 -0
- package/dist/init/task-skills.js +64 -1
- package/dist/init/task-skills.js.map +1 -1
- package/dist/init/workspace-file.d.ts +73 -0
- package/dist/init/workspace-file.js +173 -0
- package/dist/init/workspace-file.js.map +1 -0
- package/dist/render.d.ts +16 -0
- package/dist/render.js +57 -6
- package/dist/render.js.map +1 -1
- package/package.json +7 -6
- package/plugin/hooks/hooks.json +11 -0
- package/sidecar/dist/src/capture/api.d.ts +23 -1
- package/sidecar/dist/src/capture/check-classify.d.ts +10 -1
- package/sidecar/dist/src/capture/check-classify.js +96 -9
- package/sidecar/dist/src/capture/check-deep.d.ts +16 -4
- package/sidecar/dist/src/capture/check-deep.js +21 -17
- package/sidecar/dist/src/capture/check-fields.d.ts +112 -0
- package/sidecar/dist/src/capture/check-fields.js +311 -0
- package/sidecar/dist/src/capture/check-probe.d.ts +21 -1
- package/sidecar/dist/src/capture/check-probe.js +39 -0
- package/sidecar/dist/src/capture/check.js +14 -2
- package/sidecar/dist/src/capture/index.js +6 -1
- package/sidecar/dist/src/capture/self-check.d.ts +6 -1
- package/sidecar/dist/src/capture/self-check.js +65 -11
- package/sidecar/dist/src/validators.d.ts +40 -40
- package/sidecar/dist/src/validators.js +6 -1
- package/templates/skills/carrick-census.md +18 -9
- package/templates/skills/carrick-drift.md +7 -1
- package/templates/skills/carrick-impact.md +3 -1
- package/templates/skills/carrick-reuse.md +43 -26
|
@@ -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/render.d.ts
CHANGED
|
@@ -99,3 +99,19 @@ export declare function repoLine(repo: StatusRepo): string | null;
|
|
|
99
99
|
* contract holds.
|
|
100
100
|
*/
|
|
101
101
|
export declare function renderSessionStart(status: StatusResult): string;
|
|
102
|
+
/** Up to this many services, a session start states every one of them. */
|
|
103
|
+
export declare const DETAILED_SERVICES = 3;
|
|
104
|
+
/** Above that, at most this many of the ones with something to do. */
|
|
105
|
+
export declare const LISTED_SERVICES = 8;
|
|
106
|
+
/** Where the per-service boundary report lives, for the session that wants it. */
|
|
107
|
+
export declare const BOUNDARY_POINTER = "Per-service detail, including what each scan could not classify: `carrick status`.";
|
|
108
|
+
/**
|
|
109
|
+
* Whether a service is worth a line at the start of a session.
|
|
110
|
+
*
|
|
111
|
+
* Three things a reader can act on now: the tree has moved past the index for
|
|
112
|
+
* this service's files, the service is holding candidates that only
|
|
113
|
+
* `carrick index` resolves, or the hosted rows are not the ones being answered from. A
|
|
114
|
+
* service that is none of those is in the total on the first line and nowhere
|
|
115
|
+
* else.
|
|
116
|
+
*/
|
|
117
|
+
export declare function hasSomethingToDo(service: StatusService): boolean;
|
package/dist/render.js
CHANGED
|
@@ -460,22 +460,73 @@ export function renderSessionStart(status) {
|
|
|
460
460
|
const version = status.scanner_version ? `, scanner ${status.scanner_version}` : "";
|
|
461
461
|
const where = status.workspace ? ` in ${status.workspace}` : "";
|
|
462
462
|
const when = status.indexed_at ? ` at ${status.indexed_at}` : "";
|
|
463
|
+
// Every service, with its boundary, is what this printed: on a workspace of
|
|
464
|
+
// fifteen that was about ninety lines in every session's context, most of
|
|
465
|
+
// them counts of things nobody acts on when a session opens — SDK calls that
|
|
466
|
+
// produced no edge, examples of types that did not resolve, rows the model
|
|
467
|
+
// alone states (carrick#1365). A small workspace keeps all of it, because
|
|
468
|
+
// there it IS the orientation; a large one gets the services with something
|
|
469
|
+
// to do about them, and one line naming the command that prints the rest.
|
|
470
|
+
// The totals go on the first line only where the services below it are the
|
|
471
|
+
// exceptions; where every service is listed, each line carries its own.
|
|
472
|
+
const detailed = status.services.length <= DETAILED_SERVICES;
|
|
463
473
|
const lines = [
|
|
464
|
-
`Carrick indexed ${status.services.length} service(s)${where}${when}${version}.`,
|
|
474
|
+
`Carrick indexed ${status.services.length} service(s)${where}${when}${version}${detailed ? "" : totals(status)}.`,
|
|
465
475
|
...scans,
|
|
466
476
|
];
|
|
467
|
-
|
|
468
|
-
|
|
477
|
+
if (detailed) {
|
|
478
|
+
for (const service of status.services)
|
|
479
|
+
lines.push(serviceLine(service));
|
|
480
|
+
}
|
|
481
|
+
else {
|
|
482
|
+
const actionable = status.services.filter(hasSomethingToDo);
|
|
483
|
+
for (const service of actionable.slice(0, LISTED_SERVICES))
|
|
484
|
+
lines.push(serviceLine(service));
|
|
485
|
+
if (actionable.length > LISTED_SERVICES) {
|
|
486
|
+
lines.push(`- +${actionable.length - LISTED_SERVICES} more service(s) with something to act on`);
|
|
487
|
+
}
|
|
469
488
|
}
|
|
470
489
|
for (const repo of status.repos ?? []) {
|
|
471
490
|
const line = repoLine(repo);
|
|
472
491
|
if (line)
|
|
473
492
|
lines.push(line);
|
|
474
493
|
}
|
|
475
|
-
|
|
476
|
-
for (const
|
|
477
|
-
|
|
494
|
+
if (detailed) {
|
|
495
|
+
for (const service of status.services) {
|
|
496
|
+
for (const line of serviceBoundary(service))
|
|
497
|
+
lines.push(line);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
else {
|
|
501
|
+
lines.push(BOUNDARY_POINTER);
|
|
478
502
|
}
|
|
479
503
|
return lines.join("\n");
|
|
480
504
|
}
|
|
505
|
+
/** Up to this many services, a session start states every one of them. */
|
|
506
|
+
export const DETAILED_SERVICES = 3;
|
|
507
|
+
/** Above that, at most this many of the ones with something to do. */
|
|
508
|
+
export const LISTED_SERVICES = 8;
|
|
509
|
+
/** Where the per-service boundary report lives, for the session that wants it. */
|
|
510
|
+
export const BOUNDARY_POINTER = "Per-service detail, including what each scan could not classify: `carrick status`.";
|
|
511
|
+
/**
|
|
512
|
+
* Whether a service is worth a line at the start of a session.
|
|
513
|
+
*
|
|
514
|
+
* Three things a reader can act on now: the tree has moved past the index for
|
|
515
|
+
* this service's files, the service is holding candidates that only
|
|
516
|
+
* `carrick index` resolves, or the hosted rows are not the ones being answered from. A
|
|
517
|
+
* service that is none of those is in the total on the first line and nowhere
|
|
518
|
+
* else.
|
|
519
|
+
*/
|
|
520
|
+
export function hasSomethingToDo(service) {
|
|
521
|
+
if (service.changed_since_index > 0)
|
|
522
|
+
return true;
|
|
523
|
+
if ((service.boundary?.candidates_awaiting_model ?? 0) > 0)
|
|
524
|
+
return true;
|
|
525
|
+
return service.hosted_state !== undefined && service.hosted_state !== "enriched";
|
|
526
|
+
}
|
|
527
|
+
/** What the whole index holds, so the services below it can be the exceptions. */
|
|
528
|
+
function totals(status) {
|
|
529
|
+
const sum = (pick) => status.services.reduce((total, service) => total + pick(service), 0);
|
|
530
|
+
return `: ${sum((service) => service.routes)} route(s), ${sum((service) => service.calls)} call(s)`;
|
|
531
|
+
}
|
|
481
532
|
//# sourceMappingURL=render.js.map
|
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,EAAE;AACF,4EAA4E;AAC5E,sEAAsE;AACtE,8EAA8E;AAC9E,wDAAwD;AAExD,OAAO,EACL,cAAc,EACd,YAAY,GAUb,MAAM,eAAe,CAAC;AAEvB,qFAAqF;AACrF,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,sEAAsE;AACtE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAElC,MAAM,UAAU,SAAS,CAAC,MAA0B;IAClD,IAAI,CAAC,MAAM;QAAE,OAAO,mBAAmB,CAAC;IACxC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,QAA8B,EAAE,OAA2B;IACvF,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,OAAO,IAAI,gBAAgB,CAAC;IACxC,4EAA4E;IAC5E,0EAA0E;IAC1E,qDAAqD;IACrD,MAAM,SAAS,GAAG,QAAQ,CAAC,eAAe,IAAI,CAAC,CAAC;IAChD,MAAM,GAAG,GAAa;QACpB,SAAS,GAAG,CAAC;YACX,CAAC,CAAC,GAAG,GAAG,OAAO,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,SAAS,+BAA+B;YAC3F,CAAC,CAAC,GAAG,GAAG,OAAO,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;KACnD,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,KAA0B,EAAE,IAAY,EAAQ,EAAE;QAC9D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC;YAAE,OAAO;QACxC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,IAAI,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,yCAAyC,CAAC,CAAC;IACrE,IAAI,CACF,QAAQ,CAAC,sBAAsB,EAC/B,mEAAmE,CACpE,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,mCAAmC,CAAC,CAAC;IACnE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kDAAkD,CAAC,CAAC;IACtF,IAAI,CAAC,QAAQ,CAAC,4BAA4B,EAAE,yCAAyC,CAAC,CAAC;IACvF,IAAI,CAAC,QAAQ,CAAC,2BAA2B,EAAE,wCAAwC,CAAC,CAAC;IACrF,IAAI,CAAC,QAAQ,CAAC,4BAA4B,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,uBAAuB,IAAI,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM;YACxB,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,4BAA4B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG;YACpF,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CACN,KAAK,QAAQ,CAAC,4BAA4B,qDAAqD,KAAK,EAAE,CACvG,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,GAAG,CAAC,IAAI,CACN,KAAK,QAAQ,CAAC,eAAe,mCAAmC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,8BAA8B,CAC9H,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,4CAA4C,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,IAAI,CACN,KAAK,QAAQ,CAAC,4CAA4C,mEAAmE,CAC9H,CAAC;IACJ,CAAC;IACD,2EAA2E;IAC3E,+DAA+D;IAC/D,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC5B,GAAG,CAAC,IAAI,CACN,uBAAuB,QAAQ,CAAC,cAAc,CAAC,KAAK,IAAI,kBAAkB,KAAK,QAAQ,CAAC,cAAc,CAAC,MAAM,IAAI,WAAW,EAAE,CAC/H,CAAC;IACJ,CAAC;SAAM,IAAI,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QAC3C,GAAG,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,MAAmB;IAC7C,IAAI,MAAM,CAAC,cAAc,EAAE,MAAM;QAAE,OAAO,MAAM,CAAC,cAAc,CAAC;IAChE,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9D,0EAA0E;IAC1E,gEAAgE;IAChE,IAAI,MAAM,CAAC,aAAa;QAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,MAAM,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,qBAAqB,CAAC,MAAmB;IACvD,OAAO,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,eAAe,CAAC,YAA2B;IAClD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,KAAK;SACnB,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;QACnB,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI;YAC5B,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YACxE,CAAC,CAAC,iBAAiB,CAAC;QACtB,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACzE,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAChD,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,YAA2B;IAC5C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO,WAAW,CAAC;IAClE,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO,WAAW,CAAC;IAClE,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,kBAAkB,CAAC;IACrE,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,gFAAgF;AAChF,SAAS,WAAW,CAAC,IAAe;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,iBAAiB;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC/D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAyB;IACjD,IAAI,KAAK,KAAK,aAAa;QAAE,OAAO,iBAAiB,CAAC;IACtD,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,mDAAmD,CAAC;IACvF,IAAI,KAAK,KAAK,UAAU;QAAE,OAAO,mBAAmB,CAAC;IACrD,OAAO,KAAK,IAAI,EAAE,CAAC;AACrB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAe;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;IACpC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IACrE,2EAA2E;IAC3E,6EAA6E;IAC7E,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,eAAe;QAAE,OAAO,IAAI,CAAC;IAEhG,MAAM,IAAI,GAAG,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,MAAM,MAAM,GAAG,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IAClE,MAAM,MAAM,GAAG,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IAClE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9F,MAAM,OAAO,GAAG,GAAG,SAAS,OAAO,MAAM,EAAE,CAAC;IAE5C,MAAM,IAAI,GAAG,CAAC,IAAY,EAAiB,EAAE;QAC3C,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC3F,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,EAAE,IAAI;YAAE,OAAO,IAAI,CAAC;QAC7B,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3D,CAAC,CAAC;IAEF,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,SAAS,MAAM,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACrE,OAAO,GAAG,IAAI,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;IAC1D,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,EAAE;QACP,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,OAAO,EAAE,IAAI,IAAI,IAAI,QAAQ,EAAE;QACtD,CAAC,CAAC,GAAG,OAAO,OAAO,MAAM,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;AACpD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,IAAe;IAClC,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACxC,2EAA2E;IAC3E,+DAA+D;IAC/D,IAAI,KAAK;QAAE,OAAO,IAAI,KAAK,EAAE,CAAC;IAC9B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;IAC/C,MAAM,IAAI,GACR,MAAM,IAAI,IAAI;QACZ,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;QAClB,CAAC,CAAC,KAAK,KAAK,UAAU;YACpB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,GAAG,MAAM,KAAK,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;IAC1C,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;AACrD,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,QAAQ,CAAC,IAAe,EAAE,IAAwB;IAChE,MAAM,KAAK,GAAG,GAAG,IAAI,IAAI,WAAW,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IAC1E,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAG;QACf,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE;KACrG,CAAC;IACF,6EAA6E;IAC7E,+DAA+D;IAC/D,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM;QAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1F,IAAI,IAAI,CAAC,QAAQ;QAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,KAAK,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3E,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,MAAM,MAAM,GAAG,CAAC,CAAY,EAAE,CAAY,EAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACrF,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC;SACrC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC1C,IAAI,CAAC,MAAM,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,QAAQ,EAAE,GAAG,SAAS,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,WAAW,CAAC,MAAmB;IACtC,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAC3C,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,EACzD,CAAC,CACF,CAAC;IACF,OAAO,yDAAyD,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,wBAAwB,SAAS,0CAA0C,CAAC;AACzK,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,KAAe,EAAE,MAAmB,EAAE,QAAkB;IAC5E,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO;IAC7B,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,SAAS,CAAC,MAAmB;IACpC,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC;IAC3C,MAAM,MAAM,GACV,OAAO,OAAO,KAAK,QAAQ;QACzB,CAAC,CAAC,IAAI,OAAO,gDAAgD,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG;QAC9F,CAAC,CAAC,EAAE,CAAC;IACT,yEAAyE;IACzE,0EAA0E;IAC1E,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC;IAChC,IAAI,GAAG,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,6DAA6D,MAAM,CAAC,OAAO,EAAE,UAAU,OAAO,MAAM,EAAE,CAAC;IAChH,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC;IAC1C,MAAM,MAAM,GAAG,KAAK;QAClB,CAAC,CAAC,qFAAqF,KAAK,GAAG;QAC/F,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,yFAAyF,MAAM,GAAG,MAAM,EAAE,CAAC;AACpH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAmB,EAAE,WAAoB;IACzE,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,8EAA8E;IAC9E,6EAA6E;IAC7E,wEAAwE;IACxE,iCAAiC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7D,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,KAAK,GAAG,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,KAAK,GAAa;QACtB,mBAAmB,KAAK,IAAI,WAAW,iCAAiC,OAAO,cAAc,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI;KAChI,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrE,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,iEAAiE,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAsB;IACpD,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM;QAAE,OAAO,OAAO,CAAC,cAAc,CAAC;IAClE,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,aAAa;QAAE,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,MAAM,CAAC,CAAC;IACrE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC,SAAS,SAAS,CAAC,OAAsB;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IACvE,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClF,OAAO,KAAK,MAAM,GAAG,CAAC;AACxB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,OAAsB;IAChD,MAAM,IAAI,GAAG,KAAK,OAAO,CAAC,OAAO,OAAO,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,OAAO,CAAC,MAAM,cAAc,OAAO,CAAC,KAAK,UAAU,CAAC;IAChI,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,6CAA6C,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1F,OAAO,GAAG,IAAI,0BAA0B,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,QAAQ,EAAE,CAAC;AACxG,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAiB;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK;QACjC,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,OAAO,EAAE;QAC5F,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,0EAA0E;QAC1E,sEAAsE;QACtE,wBAAwB;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;QAC3E,OAAO,UAAU,IAAI,CAAC,OAAO,UAAU,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACvE,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,UAAU,IAAI,CAAC,OAAO,kCAAkC,CAAC;IAClE,CAAC;IACD,0EAA0E;IAC1E,0EAA0E;IAC1E,4EAA4E;IAC5E,SAAS;IACT,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QACjC,OAAO,UAAU,IAAI,CAAC,OAAO,0GAA0G,CAAC;IAC1I,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,OAAO,UAAU,IAAI,CAAC,OAAO,cAAc,KAAK,GAAG,MAAM,GAAG,IAAI,oCAAoC,IAAI,CAAC,OAAO,MAAM,CAAC;AACzH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAgB;IACvC,IAAI,CAAC,IAAI,CAAC,qBAAqB;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,MAAM,CAAC;IACvD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;QACzB,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC5E,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,qBAAqB,yCAAyC,MAAM,EAAE,CAAC;AACxG,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAoB;IACrD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;IAClG,IAAI,MAAM,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;QACnC,0EAA0E;QAC1E,yEAAyE;QACzE,yDAAyD;QACzD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO;gBACL,0EAA0E;gBAC1E,GAAG,KAAK;aACT,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;QACD,OAAO,0JAA0J,CAAC;IACpK,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,uEAAuE;QACvE,0EAA0E;QAC1E,0EAA0E;QAC1E,OAAO,wDAAwD,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;IAClG,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC5B,OAAO,2BAA2B,MAAM,CAAC,SAAS,IAAI,gBAAgB,4BAA4B,CAAC;IACrG,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjE,4EAA4E;IAC5E,0EAA0E;IAC1E,6EAA6E;IAC7E,2EAA2E;IAC3E,0EAA0E;IAC1E,4EAA4E;IAC5E,0EAA0E;IAC1E,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,iBAAiB,CAAC;IAC7D,MAAM,KAAK,GAAa;QACtB,mBAAmB,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc,KAAK,GAAG,IAAI,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG;QACjH,GAAG,KAAK;KACT,CAAC;IACF,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC5D,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7F,IAAI,UAAU,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,MAAM,GAAG,eAAe,2CAA2C,CAAC,CAAC;QACnG,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,KAAK,MAAM,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,0EAA0E;AAC1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC,sEAAsE;AACtE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC,kFAAkF;AAClF,MAAM,CAAC,MAAM,gBAAgB,GAC3B,oFAAoF,CAAC;AAEvF;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAsB;IACrD,IAAI,OAAO,CAAC,mBAAmB,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,yBAAyB,IAAI,CAAC,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACxE,OAAO,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,OAAO,CAAC,YAAY,KAAK,UAAU,CAAC;AACnF,CAAC;AAED,kFAAkF;AAClF,SAAS,MAAM,CAAC,MAAoB;IAClC,MAAM,GAAG,GAAG,CAAC,IAAwC,EAAU,EAAE,CAC/D,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,OAAO,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;AACtG,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "carrick",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.84",
|
|
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",
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"build": "tsc -p tsconfig.build.json"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
+
"@clack/core": "1.5.1",
|
|
52
53
|
"@clack/prompts": "1.8.1",
|
|
53
54
|
"picocolors": "1.1.1",
|
|
54
55
|
"pnpm": "10.34.5",
|
|
@@ -57,11 +58,11 @@
|
|
|
57
58
|
"zod": "^3.23.0"
|
|
58
59
|
},
|
|
59
60
|
"optionalDependencies": {
|
|
60
|
-
"@carrick-tools/cli-darwin-arm64": "0.3.
|
|
61
|
-
"@carrick-tools/cli-darwin-x64": "0.3.
|
|
62
|
-
"@carrick-tools/cli-linux-arm64": "0.3.
|
|
63
|
-
"@carrick-tools/cli-linux-x64": "0.3.
|
|
64
|
-
"@carrick-tools/cli-win32-x64": "0.3.
|
|
61
|
+
"@carrick-tools/cli-darwin-arm64": "0.3.84",
|
|
62
|
+
"@carrick-tools/cli-darwin-x64": "0.3.84",
|
|
63
|
+
"@carrick-tools/cli-linux-arm64": "0.3.84",
|
|
64
|
+
"@carrick-tools/cli-linux-x64": "0.3.84",
|
|
65
|
+
"@carrick-tools/cli-win32-x64": "0.3.84"
|
|
65
66
|
},
|
|
66
67
|
"devDependencies": {
|
|
67
68
|
"@types/node": "^24.13.3",
|
package/plugin/hooks/hooks.json
CHANGED
|
@@ -13,7 +13,11 @@
|
|
|
13
13
|
* (Named anchor_origin because `provenance` is taken by the op-level
|
|
14
14
|
* producer-provenance fields in src/eval_output.rs.)
|
|
15
15
|
*/
|
|
16
|
-
export type AnchorOrigin = 'llm-symbol' | 'deterministic-infer' | 'anchor-backfill'
|
|
16
|
+
export type AnchorOrigin = 'llm-symbol' | 'deterministic-infer' | 'anchor-backfill'
|
|
17
|
+
/** No type request reached capture for a manifest alias, so the driver sent
|
|
18
|
+
* an `unknown` placeholder: the surface carries every alias the check will
|
|
19
|
+
* probe, and the check's IsUnknown gate answers for it (cloud#1184). */
|
|
20
|
+
| 'manifest-placeholder';
|
|
17
21
|
/**
|
|
18
22
|
* Serialization tier of a captured alias (design doc, Capture step 5):
|
|
19
23
|
* - emitted: compiler declaration emit of an addressable symbol (best)
|
|
@@ -367,6 +371,24 @@ export interface CheckVerdict {
|
|
|
367
371
|
resolved: boolean;
|
|
368
372
|
/** Why `resolved` is false. Absent exactly when `resolved` is true. */
|
|
369
373
|
unresolved_reason?: string;
|
|
374
|
+
/**
|
|
375
|
+
* Statements about THIS comparison that are neither the verdict nor an
|
|
376
|
+
* unresolution (carrick#1341).
|
|
377
|
+
*
|
|
378
|
+
* Two things the check can find are true of a pair it called COMPATIBLE, so
|
|
379
|
+
* neither can ride on `diagnostic`: an optionality gap (the sending side
|
|
380
|
+
* always provides a field the receiving side declares optional — legal,
|
|
381
|
+
* assigns, and still a drift between two sources), and the note that the
|
|
382
|
+
* comparison was made against the JSON wire form rather than the declared
|
|
383
|
+
* one (carrick#1340), which is why a producer `Date` read as a `string` is
|
|
384
|
+
* not reported.
|
|
385
|
+
*
|
|
386
|
+
* Written on EVERY bucket, empty when there is nothing to add. A note never
|
|
387
|
+
* changes `bucket` or `resolved` and is never a substitute for
|
|
388
|
+
* `diagnostic`: a reader that renders notes as a mismatch is reading an
|
|
389
|
+
* observation as a verdict.
|
|
390
|
+
*/
|
|
391
|
+
notes: string[];
|
|
370
392
|
}
|
|
371
393
|
/**
|
|
372
394
|
* A service degraded SERVICE-WIDE: install failure, or a stub-tree diagnostic
|
|
@@ -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
|
|
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 {
|
|
24
|
+
import { decisiveAssignmentLine } from './check-probe.js';
|
|
25
|
+
import { scrubDiagnostic, scrubPaths } from './check-scrub.js';
|
|
26
|
+
import { describeFieldReport, fieldReportNotes, } 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) {
|
|
@@ -67,7 +69,17 @@ function endpointAliasFor(side, plan) {
|
|
|
67
69
|
export function classifyPair(input) {
|
|
68
70
|
const { plan, probeDiags, poisonReason, scrubCtx } = input;
|
|
69
71
|
const codes = [...new Set(probeDiags.map((d) => d.code))].sort((a, b) => a - b);
|
|
70
|
-
|
|
72
|
+
// `notes` sits on `base` so EVERY bucket carries it, including the
|
|
73
|
+
// compatible one (carrick#1341). The two statements it holds are true of a
|
|
74
|
+
// pair that agreed — an optionality gap assigns, and the wire allowance is
|
|
75
|
+
// exactly what made the pair agree — so a channel only reachable from the
|
|
76
|
+
// mismatch branch would be the same missing channel the ticket is about.
|
|
77
|
+
const base = {
|
|
78
|
+
pair_id: plan.pairId,
|
|
79
|
+
pair_key: plan.spec.pair_key,
|
|
80
|
+
codes,
|
|
81
|
+
notes: pairNotes(input, scrubCtx),
|
|
82
|
+
};
|
|
71
83
|
// Every branch below this point except the last two returns a verdict about
|
|
72
84
|
// a type nobody could read; each states that in one place rather than
|
|
73
85
|
// repeating the reasoning.
|
|
@@ -155,31 +167,106 @@ export function classifyPair(input) {
|
|
|
155
167
|
...notAFact(`the ${side} sends a form-encoded body`),
|
|
156
168
|
};
|
|
157
169
|
}
|
|
158
|
-
// 5. Assignment-class error on the
|
|
159
|
-
|
|
170
|
+
// 5. Assignment-class error on the DECISIVE assignment line -> incompatible.
|
|
171
|
+
//
|
|
172
|
+
// On an `http` pair that line is the JSON wire assignment, not the declared
|
|
173
|
+
// one (carrick-tools/carrick-cloud#1119). The two cannot disagree in the
|
|
174
|
+
// direction that matters: the wire comparand short-circuits to the declared
|
|
175
|
+
// type whenever that already assigns, so an error there means the shapes
|
|
176
|
+
// disagree as declared AND as serialised. A pair whose declared forms
|
|
177
|
+
// disagree only over what serialisation changes (a producer `Date` read as
|
|
178
|
+
// the `string` it becomes) has no error on this line and is not a drift.
|
|
179
|
+
const decisiveLine = decisiveAssignmentLine(plan);
|
|
180
|
+
const assignDiag = probeDiags.find((d) => d.line === decisiveLine && ASSIGNMENT_CODES.has(d.code));
|
|
160
181
|
if (assignDiag) {
|
|
182
|
+
const text = scrubDiagnostic(assignDiag.message, scrubCtx, plan.sentEndpoint.alias, plan.expectedEndpoint.alias);
|
|
161
183
|
return {
|
|
162
184
|
...base,
|
|
163
185
|
bucket: 'incompatible',
|
|
164
|
-
diagnostic:
|
|
186
|
+
diagnostic: text + namedFields(input, scrubCtx),
|
|
165
187
|
...factness(input),
|
|
166
188
|
};
|
|
167
189
|
}
|
|
168
|
-
// Any other diagnostic on the assignment line that is not a known
|
|
169
|
-
// code still means the pair could not be cleanly verified.
|
|
170
|
-
|
|
190
|
+
// Any other diagnostic on the DECLARED assignment line that is not a known
|
|
191
|
+
// assignment code still means the pair could not be cleanly verified.
|
|
192
|
+
// A mismatch there with none on the wire line is not one of these: it is the
|
|
193
|
+
// pair the wire rule just cleared, and it falls through to `compatible`.
|
|
194
|
+
const scrub = (text) => scrubDiagnostic(text, scrubCtx, plan.sentEndpoint.alias, plan.expectedEndpoint.alias);
|
|
195
|
+
const otherAssign = probeDiags.find((d) => d.line === plan.assignmentLine && !ASSIGNMENT_CODES.has(d.code));
|
|
171
196
|
if (otherAssign) {
|
|
172
197
|
return {
|
|
173
198
|
...base,
|
|
174
199
|
bucket: 'unverifiable',
|
|
175
200
|
gate: 'assignment:other',
|
|
176
|
-
diagnostic:
|
|
201
|
+
diagnostic: scrub(otherAssign.message),
|
|
202
|
+
...notAFact('the probe raised a diagnostic that is not an assignment mismatch'),
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
// The same on the WIRE line: the serialised form was never judged (a type too
|
|
206
|
+
// deep to instantiate the transform over, say). What the DECLARED forms say
|
|
207
|
+
// is then the only judgment there is, and a mismatch in them is still a
|
|
208
|
+
// mismatch — reporting it as unverifiable would hide a real one. The
|
|
209
|
+
// unjudged wire form is named, because it is the reason the usual
|
|
210
|
+
// serialisation allowance did not apply.
|
|
211
|
+
const wireOther = plan.wireAssignmentLine === undefined
|
|
212
|
+
? undefined
|
|
213
|
+
: probeDiags.find((d) => d.line === plan.wireAssignmentLine && !ASSIGNMENT_CODES.has(d.code));
|
|
214
|
+
if (wireOther) {
|
|
215
|
+
const declaredMismatch = probeDiags.find((d) => d.line === plan.assignmentLine && ASSIGNMENT_CODES.has(d.code));
|
|
216
|
+
if (declaredMismatch) {
|
|
217
|
+
return {
|
|
218
|
+
...base,
|
|
219
|
+
bucket: 'incompatible',
|
|
220
|
+
diagnostic: scrub(declaredMismatch.message) +
|
|
221
|
+
' The serialised form of the sent type could not be computed, so this' +
|
|
222
|
+
' compares the types as declared.' +
|
|
223
|
+
namedFields(input, scrubCtx),
|
|
224
|
+
...factness(input),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
return {
|
|
228
|
+
...base,
|
|
229
|
+
bucket: 'unverifiable',
|
|
230
|
+
gate: 'assignment:other',
|
|
231
|
+
diagnostic: scrub(wireOther.message),
|
|
177
232
|
...notAFact('the probe raised a diagnostic that is not an assignment mismatch'),
|
|
178
233
|
};
|
|
179
234
|
}
|
|
180
235
|
// 6. No diagnostics -> compatible.
|
|
181
236
|
return { ...base, bucket: 'compatible', ...factness(input) };
|
|
182
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* The field-level sentence appended to a mismatch diagnostic
|
|
240
|
+
* (carrick-tools/carrick-cloud#1118), or `''` when the walk found nothing to
|
|
241
|
+
* name. Scrubbed on the same terms as the tsc text: a printed member type can
|
|
242
|
+
* carry a stub-absolute `import("...")` path.
|
|
243
|
+
*/
|
|
244
|
+
/**
|
|
245
|
+
* The observations this pair states that are not its verdict (carrick#1341):
|
|
246
|
+
* the note that the comparison was made against the serialised form, and each
|
|
247
|
+
* optionality gap the walk found. Empty when the walk did not run or found
|
|
248
|
+
* nothing to add — never a claim that the two sides agree.
|
|
249
|
+
*
|
|
250
|
+
* Scrubbed on the same terms as the diagnostic: a printed member type can
|
|
251
|
+
* carry a stub-absolute `import("...")` path.
|
|
252
|
+
*
|
|
253
|
+
* A note is an OBSERVATION and never moves a bucket. Nothing in this function
|
|
254
|
+
* reaches `bucket`, `resolved` or `unresolved_reason`, and the pair's verdict
|
|
255
|
+
* is decided above before this is read.
|
|
256
|
+
*/
|
|
257
|
+
function pairNotes(input, scrubCtx) {
|
|
258
|
+
const report = input.fieldReport;
|
|
259
|
+
if (!report)
|
|
260
|
+
return [];
|
|
261
|
+
return fieldReportNotes(report, input.plan.direction.sent, input.plan.direction.expected).map((note) => scrubPaths(note, scrubCtx));
|
|
262
|
+
}
|
|
263
|
+
function namedFields(input, scrubCtx) {
|
|
264
|
+
const report = input.fieldReport;
|
|
265
|
+
if (!report)
|
|
266
|
+
return '';
|
|
267
|
+
const text = describeFieldReport(report, input.plan.direction.sent, input.plan.direction.expected);
|
|
268
|
+
return text === '' ? '' : scrubPaths(text, scrubCtx);
|
|
269
|
+
}
|
|
183
270
|
/**
|
|
184
271
|
* Whether a compared pair is a FACT about two known types (carrick#707, R1d).
|
|
185
272
|
*
|