@descryy/mcp 0.6.0 → 0.7.0
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/dist/action-handshake.d.ts +8 -75
- package/dist/action-handshake.d.ts.map +1 -1
- package/dist/action-handshake.js +9 -79
- package/dist/action-handshake.js.map +1 -1
- package/dist/bin/descry-mcp.d.ts +4 -15
- package/dist/bin/descry-mcp.d.ts.map +1 -1
- package/dist/bin/descry-mcp.js +12 -42
- package/dist/bin/descry-mcp.js.map +1 -1
- package/dist/browser/driver.d.ts +59 -224
- package/dist/browser/driver.d.ts.map +1 -1
- package/dist/browser/driver.js +9 -55
- package/dist/browser/driver.js.map +1 -1
- package/dist/browser/evidence.d.ts +10 -43
- package/dist/browser/evidence.d.ts.map +1 -1
- package/dist/browser/evidence.js +20 -54
- package/dist/browser/evidence.js.map +1 -1
- package/dist/browser/fake-driver.d.ts +4 -16
- package/dist/browser/fake-driver.d.ts.map +1 -1
- package/dist/browser/fake-driver.js +6 -20
- package/dist/browser/fake-driver.js.map +1 -1
- package/dist/browser/graph-write.d.ts +4 -45
- package/dist/browser/graph-write.d.ts.map +1 -1
- package/dist/browser/graph-write.js +8 -53
- package/dist/browser/graph-write.js.map +1 -1
- package/dist/browser/playwright-driver.d.ts +7 -91
- package/dist/browser/playwright-driver.d.ts.map +1 -1
- package/dist/browser/playwright-driver.js +40 -194
- package/dist/browser/playwright-driver.js.map +1 -1
- package/dist/browser/provider.d.ts +5 -34
- package/dist/browser/provider.d.ts.map +1 -1
- package/dist/browser/provider.js +4 -24
- package/dist/browser/provider.js.map +1 -1
- package/dist/browser/registry.d.ts +26 -106
- package/dist/browser/registry.d.ts.map +1 -1
- package/dist/browser/registry.js +20 -77
- package/dist/browser/registry.js.map +1 -1
- package/dist/browser/scenario-resolve.d.ts +10 -44
- package/dist/browser/scenario-resolve.d.ts.map +1 -1
- package/dist/browser/scenario-resolve.js +10 -41
- package/dist/browser/scenario-resolve.js.map +1 -1
- package/dist/browser/scenario-runner.d.ts +12 -70
- package/dist/browser/scenario-runner.d.ts.map +1 -1
- package/dist/browser/scenario-runner.js +30 -90
- package/dist/browser/scenario-runner.js.map +1 -1
- package/dist/browser/stack-parser.d.ts +4 -28
- package/dist/browser/stack-parser.d.ts.map +1 -1
- package/dist/browser/stack-parser.js +12 -39
- package/dist/browser/stack-parser.js.map +1 -1
- package/dist/browser/tool-support.d.ts +20 -67
- package/dist/browser/tool-support.d.ts.map +1 -1
- package/dist/browser/tool-support.js +21 -65
- package/dist/browser/tool-support.js.map +1 -1
- package/dist/browser/url-scheme.d.ts +14 -0
- package/dist/browser/url-scheme.d.ts.map +1 -0
- package/dist/browser/url-scheme.js +38 -0
- package/dist/browser/url-scheme.js.map +1 -0
- package/dist/cancellation.d.ts +11 -46
- package/dist/cancellation.d.ts.map +1 -1
- package/dist/cancellation.js +11 -46
- package/dist/cancellation.js.map +1 -1
- package/dist/capped.d.ts +9 -33
- package/dist/capped.d.ts.map +1 -1
- package/dist/capped.js +7 -27
- package/dist/capped.js.map +1 -1
- package/dist/disclosure-ledger.d.ts +6 -30
- package/dist/disclosure-ledger.d.ts.map +1 -1
- package/dist/disclosure-ledger.js +4 -26
- package/dist/disclosure-ledger.js.map +1 -1
- package/dist/index.d.ts +10 -26
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -17
- package/dist/index.js.map +1 -1
- package/dist/module-trust.d.ts +24 -0
- package/dist/module-trust.d.ts.map +1 -0
- package/dist/module-trust.js +60 -0
- package/dist/module-trust.js.map +1 -0
- package/dist/path-confinement.d.ts +31 -0
- package/dist/path-confinement.d.ts.map +1 -0
- package/dist/path-confinement.js +44 -0
- package/dist/path-confinement.js.map +1 -0
- package/dist/protocol.d.ts +10 -53
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +14 -60
- package/dist/protocol.js.map +1 -1
- package/dist/registry.d.ts +10 -58
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +38 -90
- package/dist/registry.js.map +1 -1
- package/dist/render.d.ts +42 -11
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +74 -10
- package/dist/render.js.map +1 -1
- package/dist/runtime-registry.d.ts +7 -66
- package/dist/runtime-registry.d.ts.map +1 -1
- package/dist/runtime-registry.js +39 -114
- package/dist/runtime-registry.js.map +1 -1
- package/dist/scenarios/index.d.ts +1 -1
- package/dist/scenarios/index.d.ts.map +1 -1
- package/dist/scenarios/index.js +1 -1
- package/dist/scenarios/index.js.map +1 -1
- package/dist/scenarios/parse.d.ts +4 -18
- package/dist/scenarios/parse.d.ts.map +1 -1
- package/dist/scenarios/parse.js +14 -34
- package/dist/scenarios/parse.js.map +1 -1
- package/dist/scenarios/scenario.d.ts +18 -74
- package/dist/scenarios/scenario.d.ts.map +1 -1
- package/dist/scenarios/scenario.js +7 -34
- package/dist/scenarios/scenario.js.map +1 -1
- package/dist/scenarios/storage.d.ts +11 -41
- package/dist/scenarios/storage.d.ts.map +1 -1
- package/dist/scenarios/storage.js +57 -47
- package/dist/scenarios/storage.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +37 -17
- package/dist/server.js.map +1 -1
- package/dist/session.d.ts +67 -259
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +69 -250
- package/dist/session.js.map +1 -1
- package/dist/tools/analyze.d.ts +24 -118
- package/dist/tools/analyze.d.ts.map +1 -1
- package/dist/tools/analyze.js +44 -166
- package/dist/tools/analyze.js.map +1 -1
- package/dist/tools/browser-click.d.ts +3 -21
- package/dist/tools/browser-click.d.ts.map +1 -1
- package/dist/tools/browser-click.js +10 -31
- package/dist/tools/browser-click.js.map +1 -1
- package/dist/tools/browser-close-session.d.ts +4 -13
- package/dist/tools/browser-close-session.d.ts.map +1 -1
- package/dist/tools/browser-close-session.js +4 -13
- package/dist/tools/browser-close-session.js.map +1 -1
- package/dist/tools/browser-fill.d.ts +5 -36
- package/dist/tools/browser-fill.d.ts.map +1 -1
- package/dist/tools/browser-fill.js +9 -44
- package/dist/tools/browser-fill.js.map +1 -1
- package/dist/tools/browser-navigate.d.ts +6 -27
- package/dist/tools/browser-navigate.d.ts.map +1 -1
- package/dist/tools/browser-navigate.js +6 -23
- package/dist/tools/browser-navigate.js.map +1 -1
- package/dist/tools/browser-run-scenario.d.ts +5 -31
- package/dist/tools/browser-run-scenario.d.ts.map +1 -1
- package/dist/tools/browser-run-scenario.js +10 -46
- package/dist/tools/browser-run-scenario.js.map +1 -1
- package/dist/tools/browser-save-scenario.d.ts +3 -28
- package/dist/tools/browser-save-scenario.d.ts.map +1 -1
- package/dist/tools/browser-save-scenario.js +15 -74
- package/dist/tools/browser-save-scenario.js.map +1 -1
- package/dist/tools/browser-snapshot.d.ts +6 -39
- package/dist/tools/browser-snapshot.d.ts.map +1 -1
- package/dist/tools/browser-snapshot.js +4 -31
- package/dist/tools/browser-snapshot.js.map +1 -1
- package/dist/tools/browser-start-session.d.ts +4 -23
- package/dist/tools/browser-start-session.d.ts.map +1 -1
- package/dist/tools/browser-start-session.js +33 -55
- package/dist/tools/browser-start-session.js.map +1 -1
- package/dist/tools/browser-type.d.ts +5 -35
- package/dist/tools/browser-type.d.ts.map +1 -1
- package/dist/tools/browser-type.js +10 -45
- package/dist/tools/browser-type.js.map +1 -1
- package/dist/tools/contracts.d.ts +9 -86
- package/dist/tools/contracts.d.ts.map +1 -1
- package/dist/tools/contracts.js +24 -80
- package/dist/tools/contracts.js.map +1 -1
- package/dist/tools/cross-pr.d.ts +42 -30
- package/dist/tools/cross-pr.d.ts.map +1 -1
- package/dist/tools/cross-pr.js +81 -62
- package/dist/tools/cross-pr.js.map +1 -1
- package/dist/tools/git-diff.d.ts +18 -2
- package/dist/tools/git-diff.d.ts.map +1 -1
- package/dist/tools/git-diff.js +118 -26
- package/dist/tools/git-diff.js.map +1 -1
- package/dist/tools/git-history.d.ts +5 -16
- package/dist/tools/git-history.d.ts.map +1 -1
- package/dist/tools/git-history.js +3 -10
- package/dist/tools/git-history.js.map +1 -1
- package/dist/tools/history.d.ts +4 -33
- package/dist/tools/history.d.ts.map +1 -1
- package/dist/tools/history.js +6 -31
- package/dist/tools/history.js.map +1 -1
- package/dist/tools/impact.d.ts +7 -51
- package/dist/tools/impact.d.ts.map +1 -1
- package/dist/tools/impact.js +15 -67
- package/dist/tools/impact.js.map +1 -1
- package/dist/tools/index.d.ts +3 -8
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -8
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/kit.d.ts +66 -113
- package/dist/tools/kit.d.ts.map +1 -1
- package/dist/tools/kit.js +60 -28
- package/dist/tools/kit.js.map +1 -1
- package/dist/tools/link-workspace.d.ts +7 -45
- package/dist/tools/link-workspace.d.ts.map +1 -1
- package/dist/tools/link-workspace.js +10 -48
- package/dist/tools/link-workspace.js.map +1 -1
- package/dist/tools/lookup.d.ts +4 -14
- package/dist/tools/lookup.d.ts.map +1 -1
- package/dist/tools/lookup.js +4 -14
- package/dist/tools/lookup.js.map +1 -1
- package/dist/tools/mark-incident.d.ts +7 -54
- package/dist/tools/mark-incident.d.ts.map +1 -1
- package/dist/tools/mark-incident.js +15 -68
- package/dist/tools/mark-incident.js.map +1 -1
- package/dist/tools/observe-runtime.d.ts +27 -210
- package/dist/tools/observe-runtime.d.ts.map +1 -1
- package/dist/tools/observe-runtime.js +257 -435
- package/dist/tools/observe-runtime.js.map +1 -1
- package/dist/tools/observe-tests.d.ts +9 -100
- package/dist/tools/observe-tests.d.ts.map +1 -1
- package/dist/tools/observe-tests.js +24 -152
- package/dist/tools/observe-tests.js.map +1 -1
- package/dist/tools/pr-analysis.d.ts +18 -2
- package/dist/tools/pr-analysis.d.ts.map +1 -1
- package/dist/tools/pr-analysis.js +73 -23
- package/dist/tools/pr-analysis.js.map +1 -1
- package/dist/tools/pre-push.d.ts +68 -16
- package/dist/tools/pre-push.d.ts.map +1 -1
- package/dist/tools/pre-push.js +98 -35
- package/dist/tools/pre-push.js.map +1 -1
- package/dist/tools/propagation.d.ts +11 -53
- package/dist/tools/propagation.d.ts.map +1 -1
- package/dist/tools/propagation.js +14 -57
- package/dist/tools/propagation.js.map +1 -1
- package/dist/tools/questions.d.ts +13 -63
- package/dist/tools/questions.d.ts.map +1 -1
- package/dist/tools/questions.js +33 -105
- package/dist/tools/questions.js.map +1 -1
- package/dist/tools/refusal-fetch.d.ts +4 -40
- package/dist/tools/refusal-fetch.d.ts.map +1 -1
- package/dist/tools/refusal-fetch.js +4 -40
- package/dist/tools/refusal-fetch.js.map +1 -1
- package/dist/tools/runtime-incident.d.ts +4 -63
- package/dist/tools/runtime-incident.d.ts.map +1 -1
- package/dist/tools/runtime-incident.js +10 -87
- package/dist/tools/runtime-incident.js.map +1 -1
- package/dist/tools/scope.d.ts +7 -25
- package/dist/tools/scope.d.ts.map +1 -1
- package/dist/tools/scope.js +10 -29
- package/dist/tools/scope.js.map +1 -1
- package/dist/tools/similar-incidents.d.ts +11 -86
- package/dist/tools/similar-incidents.d.ts.map +1 -1
- package/dist/tools/similar-incidents.js +7 -71
- package/dist/tools/similar-incidents.js.map +1 -1
- package/dist/tools/validate.d.ts +14 -69
- package/dist/tools/validate.d.ts.map +1 -1
- package/dist/tools/validate.js +23 -74
- package/dist/tools/validate.js.map +1 -1
- package/dist/tools/verification-status.d.ts +9 -64
- package/dist/tools/verification-status.d.ts.map +1 -1
- package/dist/tools/verification-status.js +9 -62
- package/dist/tools/verification-status.js.map +1 -1
- package/dist/tools/verify-claim.d.ts +5 -52
- package/dist/tools/verify-claim.d.ts.map +1 -1
- package/dist/tools/verify-claim.js +6 -56
- package/dist/tools/verify-claim.js.map +1 -1
- package/dist/transport.d.ts +15 -52
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +16 -60
- package/dist/transport.js.map +1 -1
- package/package.json +30 -21
package/dist/tools/analyze.d.ts
CHANGED
|
@@ -1,48 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* never told about, and this is where the gaps become known.
|
|
7
|
-
*
|
|
8
|
-
* ## What is disclosed, and why each one earns its line
|
|
9
|
-
*
|
|
10
|
-
* - **Sources that would not load.** "No problem found in your Python service"
|
|
11
|
-
* and "your Python adapter did not import" are different statements (§20.2).
|
|
12
|
-
* - **Sources that loaded and did not claim the repository.** The same
|
|
13
|
-
* distinction, one level up: an unanalysed language is *not analysable*, not
|
|
14
|
-
* clean.
|
|
15
|
-
* - **The resolution each source reached.** A run that degraded to R0 because a
|
|
16
|
-
* virtualenv was missing produces a graph that looks identical to a healthy
|
|
17
|
-
* one until you read this number. Principle 3 then caps everything above it.
|
|
18
|
-
* - **Identity collisions.** Two things arrived under one id. There is no
|
|
19
|
-
* correct merge, so the builder reports rather than picks (DEC-024).
|
|
20
|
-
* - **Evicted files.** Rows a previous run owned and this one did not re-supply.
|
|
21
|
-
* They are gone from the graph; a query over them will now find nothing, and
|
|
22
|
-
* nothing would otherwise say why.
|
|
23
|
-
* - **The workspace join.** Zero cross-repo joins looks exactly like success — and, on the ordinary
|
|
24
|
-
* single-repository run every shipped call actually makes, is the *only* value possible, which is
|
|
25
|
-
* narrated too (`crossRepoJoinNote`) rather than left for a reader to infer from `repos.length`.
|
|
26
|
-
*
|
|
27
|
-
* ## The repo identity warning
|
|
28
|
-
*
|
|
29
|
-
* With no `.descry/config.json`, `repo` defaults to the directory name — and
|
|
30
|
-
* every repo-scoped node id is a hash over it. Clone into a differently-named
|
|
31
|
-
* folder and every id changes, which silently destroys incident links and
|
|
32
|
-
* `CHANGES_WITH` weights. That is DEC-004's failure arriving through the one
|
|
33
|
-
* field a default cannot get right, so it is stated on every unconfigured run.
|
|
34
|
-
*/
|
|
1
|
+
/** `analyze` — the only tool that writes to the graph. Disclosures matter most: a
|
|
2
|
+
* query can't report a gap it wasn't told about. Discloses: sources that failed or
|
|
3
|
+
* didn't claim the repo (§20.2 — not-analysable ≠ clean), each source's resolution
|
|
4
|
+
* reached (caps reliability, rule 3), id collisions (DEC-024), evicted files, and the
|
|
5
|
+
* cross-repo join count. No config → `repo` defaults to dir name, hashed into every id (DEC-004). */
|
|
35
6
|
import type { IRBatch, UnresolvedRef } from "@descryy/ir";
|
|
36
7
|
import type { BuildResult, JoinMetric, StoreCounts } from "@descryy/core";
|
|
37
8
|
import { type ToolDefinition } from "./kit.ts";
|
|
38
9
|
import { type DescryConfig } from "../session.ts";
|
|
39
|
-
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* `reachedResolution` is the number principle 3 caps everything above it by. A
|
|
43
|
-
* run that degraded to R0 because a dependency was missing produces a graph
|
|
44
|
-
* that looks identical to a healthy one until this field is read.
|
|
45
|
-
*/
|
|
10
|
+
/** What one source read, and how well. `reachedResolution` is what rule 3 caps everything
|
|
11
|
+
* above it by — a run degraded to R0 looks identical to a healthy one until this is read. */
|
|
46
12
|
export interface SourceRun {
|
|
47
13
|
readonly source: string;
|
|
48
14
|
readonly files: number;
|
|
@@ -50,55 +16,23 @@ export interface SourceRun {
|
|
|
50
16
|
readonly edges: number;
|
|
51
17
|
/** Refusal-ledger rows: gaps this source disclosed rather than guessed at. */
|
|
52
18
|
readonly unresolved: number;
|
|
53
|
-
/**
|
|
54
|
-
*
|
|
55
|
-
* entirely, not confirmed clean. Never counted in `files`; see
|
|
56
|
-
* `IRBatch.skippedFiles`.
|
|
57
|
-
*/
|
|
19
|
+
/** Files attempted but not parsed — absent from the graph, not confirmed clean. Never
|
|
20
|
+
* counted in `files`; see `IRBatch.skippedFiles`. */
|
|
58
21
|
readonly skippedFiles: number;
|
|
59
22
|
readonly reachedResolution: number;
|
|
60
23
|
/** Wall-clock time this source took, including the git-history reader. */
|
|
61
24
|
readonly ms: number;
|
|
62
25
|
}
|
|
63
|
-
/**
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
* `normaliseBatch` — every batch's gatekeeper on the way to the store — treats
|
|
67
|
-
* `skippedFiles` and `unresolved` as absent-means-none, and says why in its own
|
|
68
|
-
* comment: absent is what a producer not yet updated to report them sends. That
|
|
69
|
-
* is a deliberate compatibility promise to adapters compiled against an older
|
|
70
|
-
* `@descryy/ir`, and adapters are versioned and released on their own cadence
|
|
71
|
-
* precisely so that can happen.
|
|
72
|
-
*
|
|
73
|
-
* This function is that promise, applied one layer earlier. `analyze` used to
|
|
74
|
-
* read `.length` off both directly, which meant an adapter the Normaliser would
|
|
75
|
-
* have happily accepted crashed the run before it ever got there — reported as
|
|
76
|
-
* the *adapter* failing, taking a whole language into "not analysable". A real
|
|
77
|
-
* shipped adapter did exactly that while returning over a thousand perfectly
|
|
78
|
-
* good nodes.
|
|
79
|
-
*
|
|
80
|
-
* Absent and malformed stay different, which is the line the Normaliser draws
|
|
81
|
-
* too: a missing field is an older producer, a field holding a string is a
|
|
82
|
-
* broken one, and defaulting the second away would hide a real defect.
|
|
83
|
-
*/
|
|
26
|
+
/** `skippedFiles`/`unresolved`: absent means an adapter compiled against an older
|
|
27
|
+
* `@descryy/ir`, not malformed — a real adapter once crashed here on `.length` of
|
|
28
|
+
* undefined despite returning 1000+ good nodes. Absent ⇒ old producer; wrong type ⇒ broken, never defaulted away. */
|
|
84
29
|
export declare function optionalBatchLists(batch: IRBatch): {
|
|
85
30
|
readonly skippedFiles: IRBatch["skippedFiles"];
|
|
86
31
|
readonly unresolved: IRBatch["unresolved"];
|
|
87
32
|
};
|
|
88
|
-
/**
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
* The original note said "<source> failed while reading this repository" for
|
|
92
|
-
* anything thrown anywhere in the loop, including inside Descry's own code
|
|
93
|
-
* after the adapter had returned successfully. That is how a `TypeError` thrown
|
|
94
|
-
* in this very file came to be reported as an adapter failing: a developer
|
|
95
|
-
* reading it would go and debug an adapter that worked.
|
|
96
|
-
*
|
|
97
|
-
* The distinction is not cosmetic. "That adapter could not read this" tells a
|
|
98
|
-
* user to look at their own toolchain; "Descry broke" tells them to report a
|
|
99
|
-
* bug. Sending the second as the first spends the user's time on the wrong
|
|
100
|
-
* thing and hides the defect from us.
|
|
101
|
-
*/
|
|
33
|
+
/** Distinguishes "the adapter failed" from "Descry's own code broke handling its
|
|
34
|
+
* output" — before this, a `TypeError` thrown in this file was reported as the
|
|
35
|
+
* adapter failing, sending users to debug working code instead of reporting our bug. */
|
|
102
36
|
export declare function sourceFailureNote(sourceId: string, error: unknown, phase: "emit" | "engine"): string;
|
|
103
37
|
export interface AnalyzeData {
|
|
104
38
|
readonly repo: string;
|
|
@@ -147,49 +81,21 @@ export interface AnalyzeData {
|
|
|
147
81
|
readonly evictedFiles: number;
|
|
148
82
|
};
|
|
149
83
|
}
|
|
150
|
-
/**
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
* sources this call just read could not resolve, so it is a fresh
|
|
154
|
-
* population every run rather than accumulated history, and honestly
|
|
155
|
-
* scoped to "what this call found" the way the field's own contract asks.
|
|
156
|
-
*
|
|
157
|
-
* `undefined` on zero rows — the envelope's `refusals` stays `null` rather
|
|
158
|
-
* than carrying a summary with no exemplar or handle to show (matching
|
|
159
|
-
* `summariseRefusals`'s own `count === 0` shape one level up).
|
|
160
|
-
*/
|
|
84
|
+
/** §5.4's `refusals` field for this run only, not the graph's whole ledger
|
|
85
|
+
* (`refusal_fetch`'s job) — a fresh population per call, honestly scoped to what
|
|
86
|
+
* this run found. `undefined` on zero rows so `refusals` stays `null`, not an empty summary. */
|
|
161
87
|
export declare function refusalSummaryField(unresolved: readonly UnresolvedRef[]): {
|
|
162
88
|
readonly count: number;
|
|
163
89
|
readonly exemplar: string;
|
|
164
90
|
readonly handle: string;
|
|
165
91
|
} | undefined;
|
|
166
|
-
/**
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
* hand edit — changes the file on disk without this process ever knowing, and
|
|
170
|
-
* without this check the notes below would tell the agent to add a "sources"
|
|
171
|
-
* array that the file has actually had since the write. Comparing the two
|
|
172
|
-
* turns a misleading "still not configured" into an accurate "restart to pick
|
|
173
|
-
* this up".
|
|
174
|
-
*/
|
|
92
|
+
/** `Session.config` loads once at startup and is held for the process's life. A write
|
|
93
|
+
* tool (or hand edit) can change the file without this process knowing — comparing
|
|
94
|
+
* on-disk vs loaded turns a misleading "still not configured" into an accurate "restart to pick this up". */
|
|
175
95
|
export declare function configDriftNote(onDisk: DescryConfig | null, loaded: DescryConfig): string | undefined;
|
|
176
|
-
/**
|
|
177
|
-
*
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
* `build.ts`'s own `NO_CROSS_REPO_JOIN` warning (folded into `notes` just
|
|
181
|
-
* above this function's call site) already narrates the alarming case: two
|
|
182
|
-
* or more repositories that emitted a workspace-scoped type and none of it
|
|
183
|
-
* joined. What it does not narrate is the ordinary case — every `analyze`
|
|
184
|
-
* call in the shipped product passes exactly one repository's batches, so
|
|
185
|
-
* every entry in `built.crossRepoJoins` has `crossRepoJoinPossible: false`
|
|
186
|
-
* and `suppliedByTwoOrMoreRepos: 0` by construction, not by failure. Left
|
|
187
|
-
* un-narrated, `{ total: 48, suppliedByTwoOrMoreRepos: 0 }` sitting beside a
|
|
188
|
-
* disclosure about 55 unrelated within-repo edges having just succeeded
|
|
189
|
-
* reads as a failure of the very thing that disclosure said worked. This
|
|
190
|
-
* states outright that one repository was in scope, so a reader is not left
|
|
191
|
-
* to infer it from `repos.length` themselves.
|
|
192
|
-
*/
|
|
96
|
+
/** Single-repo half of the joins disclosure. In the ordinary case — one repo in scope —
|
|
97
|
+
* every join metric's `suppliedByTwoOrMoreRepos: 0` looks like `NO_CROSS_REPO_JOIN`'s
|
|
98
|
+
* failure case; this states outright it's just scope, not a failed join. */
|
|
193
99
|
export declare function crossRepoJoinNote(joins: readonly JoinMetric[]): string | undefined;
|
|
194
100
|
export declare const analyzeTool: ToolDefinition;
|
|
195
101
|
//# sourceMappingURL=analyze.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/tools/analyze.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/tools/analyze.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/analyze.js
CHANGED
|
@@ -1,63 +1,16 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* never told about, and this is where the gaps become known.
|
|
7
|
-
*
|
|
8
|
-
* ## What is disclosed, and why each one earns its line
|
|
9
|
-
*
|
|
10
|
-
* - **Sources that would not load.** "No problem found in your Python service"
|
|
11
|
-
* and "your Python adapter did not import" are different statements (§20.2).
|
|
12
|
-
* - **Sources that loaded and did not claim the repository.** The same
|
|
13
|
-
* distinction, one level up: an unanalysed language is *not analysable*, not
|
|
14
|
-
* clean.
|
|
15
|
-
* - **The resolution each source reached.** A run that degraded to R0 because a
|
|
16
|
-
* virtualenv was missing produces a graph that looks identical to a healthy
|
|
17
|
-
* one until you read this number. Principle 3 then caps everything above it.
|
|
18
|
-
* - **Identity collisions.** Two things arrived under one id. There is no
|
|
19
|
-
* correct merge, so the builder reports rather than picks (DEC-024).
|
|
20
|
-
* - **Evicted files.** Rows a previous run owned and this one did not re-supply.
|
|
21
|
-
* They are gone from the graph; a query over them will now find nothing, and
|
|
22
|
-
* nothing would otherwise say why.
|
|
23
|
-
* - **The workspace join.** Zero cross-repo joins looks exactly like success — and, on the ordinary
|
|
24
|
-
* single-repository run every shipped call actually makes, is the *only* value possible, which is
|
|
25
|
-
* narrated too (`crossRepoJoinNote`) rather than left for a reader to infer from `repos.length`.
|
|
26
|
-
*
|
|
27
|
-
* ## The repo identity warning
|
|
28
|
-
*
|
|
29
|
-
* With no `.descry/config.json`, `repo` defaults to the directory name — and
|
|
30
|
-
* every repo-scoped node id is a hash over it. Clone into a differently-named
|
|
31
|
-
* folder and every id changes, which silently destroys incident links and
|
|
32
|
-
* `CHANGES_WITH` weights. That is DEC-004's failure arriving through the one
|
|
33
|
-
* field a default cannot get right, so it is stated on every unconfigured run.
|
|
34
|
-
*/
|
|
1
|
+
/** `analyze` — the only tool that writes to the graph. Disclosures matter most: a
|
|
2
|
+
* query can't report a gap it wasn't told about. Discloses: sources that failed or
|
|
3
|
+
* didn't claim the repo (§20.2 — not-analysable ≠ clean), each source's resolution
|
|
4
|
+
* reached (caps reliability, rule 3), id collisions (DEC-024), evicted files, and the
|
|
5
|
+
* cross-repo join count. No config → `repo` defaults to dir name, hashed into every id (DEC-004). */
|
|
35
6
|
import { existsSync } from "node:fs";
|
|
36
7
|
import { applyConfirmedFacts, buildGraph, counts, createConfirmedIncidentSource, createGitSource, mintEdgesFromConfirmedFacts, MINT_PRODUCED_BY, persistGraph, summariseRefusals, } from "@descryy/core";
|
|
37
8
|
import { answer, ToolInputError } from "./kit.js";
|
|
38
9
|
import { detectSources, loadSources } from "../registry.js";
|
|
39
10
|
import { loadConfig } from "../session.js";
|
|
40
|
-
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* `normaliseBatch` — every batch's gatekeeper on the way to the store — treats
|
|
44
|
-
* `skippedFiles` and `unresolved` as absent-means-none, and says why in its own
|
|
45
|
-
* comment: absent is what a producer not yet updated to report them sends. That
|
|
46
|
-
* is a deliberate compatibility promise to adapters compiled against an older
|
|
47
|
-
* `@descryy/ir`, and adapters are versioned and released on their own cadence
|
|
48
|
-
* precisely so that can happen.
|
|
49
|
-
*
|
|
50
|
-
* This function is that promise, applied one layer earlier. `analyze` used to
|
|
51
|
-
* read `.length` off both directly, which meant an adapter the Normaliser would
|
|
52
|
-
* have happily accepted crashed the run before it ever got there — reported as
|
|
53
|
-
* the *adapter* failing, taking a whole language into "not analysable". A real
|
|
54
|
-
* shipped adapter did exactly that while returning over a thousand perfectly
|
|
55
|
-
* good nodes.
|
|
56
|
-
*
|
|
57
|
-
* Absent and malformed stay different, which is the line the Normaliser draws
|
|
58
|
-
* too: a missing field is an older producer, a field holding a string is a
|
|
59
|
-
* broken one, and defaulting the second away would hide a real defect.
|
|
60
|
-
*/
|
|
11
|
+
/** `skippedFiles`/`unresolved`: absent means an adapter compiled against an older
|
|
12
|
+
* `@descryy/ir`, not malformed — a real adapter once crashed here on `.length` of
|
|
13
|
+
* undefined despite returning 1000+ good nodes. Absent ⇒ old producer; wrong type ⇒ broken, never defaulted away. */
|
|
61
14
|
export function optionalBatchLists(batch) {
|
|
62
15
|
const read = (value, field) => {
|
|
63
16
|
if (value === undefined || value === null)
|
|
@@ -72,20 +25,9 @@ export function optionalBatchLists(batch) {
|
|
|
72
25
|
unresolved: read(batch.unresolved, "unresolved"),
|
|
73
26
|
};
|
|
74
27
|
}
|
|
75
|
-
/**
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
* The original note said "<source> failed while reading this repository" for
|
|
79
|
-
* anything thrown anywhere in the loop, including inside Descry's own code
|
|
80
|
-
* after the adapter had returned successfully. That is how a `TypeError` thrown
|
|
81
|
-
* in this very file came to be reported as an adapter failing: a developer
|
|
82
|
-
* reading it would go and debug an adapter that worked.
|
|
83
|
-
*
|
|
84
|
-
* The distinction is not cosmetic. "That adapter could not read this" tells a
|
|
85
|
-
* user to look at their own toolchain; "Descry broke" tells them to report a
|
|
86
|
-
* bug. Sending the second as the first spends the user's time on the wrong
|
|
87
|
-
* thing and hides the defect from us.
|
|
88
|
-
*/
|
|
28
|
+
/** Distinguishes "the adapter failed" from "Descry's own code broke handling its
|
|
29
|
+
* output" — before this, a `TypeError` thrown in this file was reported as the
|
|
30
|
+
* adapter failing, sending users to debug working code instead of reporting our bug. */
|
|
89
31
|
export function sourceFailureNote(sourceId, error, phase) {
|
|
90
32
|
const message = error instanceof Error ? error.message : String(error);
|
|
91
33
|
return phase === "emit"
|
|
@@ -112,32 +54,18 @@ const SCHEMA = {
|
|
|
112
54
|
},
|
|
113
55
|
additionalProperties: false,
|
|
114
56
|
};
|
|
115
|
-
/**
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
* sources this call just read could not resolve, so it is a fresh
|
|
119
|
-
* population every run rather than accumulated history, and honestly
|
|
120
|
-
* scoped to "what this call found" the way the field's own contract asks.
|
|
121
|
-
*
|
|
122
|
-
* `undefined` on zero rows — the envelope's `refusals` stays `null` rather
|
|
123
|
-
* than carrying a summary with no exemplar or handle to show (matching
|
|
124
|
-
* `summariseRefusals`'s own `count === 0` shape one level up).
|
|
125
|
-
*/
|
|
57
|
+
/** §5.4's `refusals` field for this run only, not the graph's whole ledger
|
|
58
|
+
* (`refusal_fetch`'s job) — a fresh population per call, honestly scoped to what
|
|
59
|
+
* this run found. `undefined` on zero rows so `refusals` stays `null`, not an empty summary. */
|
|
126
60
|
export function refusalSummaryField(unresolved) {
|
|
127
61
|
const summary = summariseRefusals(unresolved);
|
|
128
62
|
if (summary.count === 0 || summary.exemplar === null || summary.handle === null)
|
|
129
63
|
return undefined;
|
|
130
64
|
return { count: summary.count, exemplar: summary.exemplar, handle: summary.handle };
|
|
131
65
|
}
|
|
132
|
-
/**
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
* hand edit — changes the file on disk without this process ever knowing, and
|
|
136
|
-
* without this check the notes below would tell the agent to add a "sources"
|
|
137
|
-
* array that the file has actually had since the write. Comparing the two
|
|
138
|
-
* turns a misleading "still not configured" into an accurate "restart to pick
|
|
139
|
-
* this up".
|
|
140
|
-
*/
|
|
66
|
+
/** `Session.config` loads once at startup and is held for the process's life. A write
|
|
67
|
+
* tool (or hand edit) can change the file without this process knowing — comparing
|
|
68
|
+
* on-disk vs loaded turns a misleading "still not configured" into an accurate "restart to pick this up". */
|
|
141
69
|
export function configDriftNote(onDisk, loaded) {
|
|
142
70
|
if (onDisk === null)
|
|
143
71
|
return undefined;
|
|
@@ -152,23 +80,9 @@ export function configDriftNote(onDisk, loaded) {
|
|
|
152
80
|
"server for on-disk changes to take effect; the notes below describe the stale, running " +
|
|
153
81
|
"configuration, not what is actually on disk now.");
|
|
154
82
|
}
|
|
155
|
-
/**
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
* `build.ts`'s own `NO_CROSS_REPO_JOIN` warning (folded into `notes` just
|
|
160
|
-
* above this function's call site) already narrates the alarming case: two
|
|
161
|
-
* or more repositories that emitted a workspace-scoped type and none of it
|
|
162
|
-
* joined. What it does not narrate is the ordinary case — every `analyze`
|
|
163
|
-
* call in the shipped product passes exactly one repository's batches, so
|
|
164
|
-
* every entry in `built.crossRepoJoins` has `crossRepoJoinPossible: false`
|
|
165
|
-
* and `suppliedByTwoOrMoreRepos: 0` by construction, not by failure. Left
|
|
166
|
-
* un-narrated, `{ total: 48, suppliedByTwoOrMoreRepos: 0 }` sitting beside a
|
|
167
|
-
* disclosure about 55 unrelated within-repo edges having just succeeded
|
|
168
|
-
* reads as a failure of the very thing that disclosure said worked. This
|
|
169
|
-
* states outright that one repository was in scope, so a reader is not left
|
|
170
|
-
* to infer it from `repos.length` themselves.
|
|
171
|
-
*/
|
|
83
|
+
/** Single-repo half of the joins disclosure. In the ordinary case — one repo in scope —
|
|
84
|
+
* every join metric's `suppliedByTwoOrMoreRepos: 0` looks like `NO_CROSS_REPO_JOIN`'s
|
|
85
|
+
* failure case; this states outright it's just scope, not a failed join. */
|
|
172
86
|
export function crossRepoJoinNote(joins) {
|
|
173
87
|
const singleRepo = joins.filter((j) => !j.crossRepoJoinPossible);
|
|
174
88
|
if (singleRepo.length === 0)
|
|
@@ -188,9 +102,8 @@ async function run(args, ctx) {
|
|
|
188
102
|
}
|
|
189
103
|
const root = await session.root();
|
|
190
104
|
const notes = [];
|
|
191
|
-
// MK-4: analyze
|
|
192
|
-
//
|
|
193
|
-
// see Session.repairStaleGraph's own doc for why only this tool does this.
|
|
105
|
+
// MK-4: analyze rebuilds from source regardless, so a stale IR schema is repaired
|
|
106
|
+
// here rather than refused — see `Session.repairStaleGraph` for why only this tool does this.
|
|
194
107
|
const { rebuilt } = session.repairStaleGraph();
|
|
195
108
|
if (rebuilt) {
|
|
196
109
|
notes.push("The stored graph was written under an older IR schema version. Its derived tables were " +
|
|
@@ -224,10 +137,8 @@ async function run(args, ctx) {
|
|
|
224
137
|
}
|
|
225
138
|
if (session.config.sources.length === 0) {
|
|
226
139
|
notes.push(
|
|
227
|
-
// No example package name here
|
|
228
|
-
//
|
|
229
|
-
// language — the exact inversion `registry.ts` exists to prevent — and the
|
|
230
|
-
// list of installed adapters is not something this process can see.
|
|
140
|
+
// No example package name here — naming one would leak a specific language into
|
|
141
|
+
// this engine, the inversion `registry.ts` exists to prevent (rule 1: IR boundary).
|
|
231
142
|
"No language adapters are configured, so nothing was read from source. Add a \"sources\" " +
|
|
232
143
|
`array to ${".descry/config.json"} listing the adapter packages to load, as module ` +
|
|
233
144
|
"specifiers. This engine does not know the name of any adapter: the IR boundary is a " +
|
|
@@ -246,30 +157,17 @@ async function run(args, ctx) {
|
|
|
246
157
|
};
|
|
247
158
|
const batches = [];
|
|
248
159
|
const perSource = [];
|
|
249
|
-
/**
|
|
250
|
-
*
|
|
251
|
-
*
|
|
252
|
-
* The floor is drawn from these alone, and the git-history reader is why. It
|
|
253
|
-
* reaches R0 and always will: R0 is what reading a commit log *is*, not a
|
|
254
|
-
* degradation of it. Folding it into a single graph-wide minimum pinned every
|
|
255
|
-
* analyse reply at R0 and therefore at reliability class C — which then
|
|
256
|
-
* described a set of directly counted rows as "a behavioural prediction".
|
|
257
|
-
*
|
|
258
|
-
* DEC-058 already settled the general form of this: an edge carries the
|
|
259
|
-
* resolution of *its own evidence*, not of the run, so a graph has no single
|
|
260
|
-
* floor and each answer computes its own. This is that rule applied one level
|
|
261
|
-
* up. Every source's level is still reported individually in `sources`, and a
|
|
262
|
-
* source that fell short of its own declared ceiling is disclosed separately.
|
|
263
|
-
*/
|
|
160
|
+
/** Resolution floor comes from code-reading sources only — git history is always R0
|
|
161
|
+
* by nature, not degradation; folding it in would cap every reply at class C. DEC-058:
|
|
162
|
+
* an edge carries its own evidence's resolution, not the run's; each source still reported individually. */
|
|
264
163
|
const codeResolutions = [];
|
|
265
164
|
const total = applicable.length + (includeHistory ? 1 : 0);
|
|
266
165
|
let done = 0;
|
|
267
166
|
for (const entry of applicable) {
|
|
268
167
|
ctx.progress(`Reading ${entry.source.id}`, done, total);
|
|
269
168
|
const started = Date.now();
|
|
270
|
-
//
|
|
271
|
-
//
|
|
272
|
-
// TypeError in the lines below be reported as the adapter failing.
|
|
169
|
+
// Adapter's own work and Descry's handling of its output are separate phases with
|
|
170
|
+
// separate blame — folding them into one `try` let a `TypeError` here be blamed on the adapter.
|
|
273
171
|
let batch;
|
|
274
172
|
try {
|
|
275
173
|
batch = await entry.source.emit(context);
|
|
@@ -293,9 +191,8 @@ async function run(args, ctx) {
|
|
|
293
191
|
reachedResolution: batch.reachedResolution,
|
|
294
192
|
ms: Date.now() - started,
|
|
295
193
|
});
|
|
296
|
-
//
|
|
297
|
-
//
|
|
298
|
-
// repository stopped it.
|
|
194
|
+
// Declared ceiling vs what this run reached — a gap is honest degradation (rule 7):
|
|
195
|
+
// the adapter can do better but something in this repo stopped it.
|
|
299
196
|
const ceiling = entry.adapter?.capabilities().maxResolution;
|
|
300
197
|
if (ceiling !== undefined)
|
|
301
198
|
codeResolutions.push(batch.reachedResolution);
|
|
@@ -315,15 +212,12 @@ async function run(args, ctx) {
|
|
|
315
212
|
}
|
|
316
213
|
}
|
|
317
214
|
catch (error) {
|
|
318
|
-
// Reached only when Descry's own handling threw
|
|
319
|
-
// returned, so blaming it here would send the user to debug working code.
|
|
215
|
+
// Reached only when Descry's own handling threw — the adapter already returned successfully.
|
|
320
216
|
notes.push(sourceFailureNote(entry.source.id, error, "engine"));
|
|
321
217
|
}
|
|
322
218
|
finally {
|
|
323
|
-
// `dispose` is a `LanguageAdapter` obligation, not
|
|
324
|
-
//
|
|
325
|
-
// hundreds of megabytes per repo. Sources with no processes to release
|
|
326
|
-
// (the git reader) have no method and need none.
|
|
219
|
+
// `dispose` is a `LanguageAdapter` obligation, not `IRSource`'s — a leaked language
|
|
220
|
+
// server costs hundreds of MB per repo. Sources with none to release (git reader) need no method.
|
|
327
221
|
await entry.adapter?.dispose();
|
|
328
222
|
done += 1;
|
|
329
223
|
}
|
|
@@ -359,13 +253,9 @@ async function run(args, ctx) {
|
|
|
359
253
|
notes.push("Git history was skipped by request, so no CHANGES_WITH edges were produced and the blast " +
|
|
360
254
|
"radius will miss files that historically change together.");
|
|
361
255
|
}
|
|
362
|
-
// Developer-confirmed incidents, re-projected
|
|
363
|
-
//
|
|
364
|
-
//
|
|
365
|
-
// exists nowhere else (DEC-223's storage decision); the graph holds a
|
|
366
|
-
// projection. Re-emitting it here is what makes "a rebuild never loses it"
|
|
367
|
-
// true rather than merely intended — a store is derived data and every
|
|
368
|
-
// derived table is dropped on a schema bump.
|
|
256
|
+
// Developer-confirmed incidents, re-projected every analyze run. The record lives in
|
|
257
|
+
// `.descry/config.json` (testimony, DEC-223) — the graph only holds a derived projection,
|
|
258
|
+
// dropped on every schema bump, so re-emitting here is what keeps a rebuild from losing it.
|
|
369
259
|
const confirmedIncidents = session.config.confirmedIncidents ?? [];
|
|
370
260
|
if (confirmedIncidents.length > 0) {
|
|
371
261
|
const projected = await createConfirmedIncidentSource({
|
|
@@ -424,11 +314,9 @@ async function run(args, ctx) {
|
|
|
424
314
|
}
|
|
425
315
|
// --- mint edges from confirmed facts --------------------------------------
|
|
426
316
|
//
|
|
427
|
-
// DEC-223
|
|
428
|
-
//
|
|
429
|
-
//
|
|
430
|
-
// backed by the SQL reader, not by `built`'s in-memory result, so the
|
|
431
|
-
// endpoint has to already exist as a row for the lookup to find it.
|
|
317
|
+
// DEC-223/DEC-138 minting, sequenced after the graph is persisted: a confirmed answer
|
|
318
|
+
// joins against a stored `API_ENDPOINT` row via the SQL-backed `EndpointLookup`, not
|
|
319
|
+
// `built`'s in-memory result, so the row must already exist for the lookup to find it.
|
|
432
320
|
ctx.progress("Minting edges from confirmed facts", done, total);
|
|
433
321
|
const provider = session.provider();
|
|
434
322
|
const { refs: ledgerRefs } = provider.unresolvedRefs();
|
|
@@ -438,18 +326,9 @@ async function run(args, ctx) {
|
|
|
438
326
|
...(session.config.workspace === undefined ? {} : { workspace: session.config.workspace }),
|
|
439
327
|
};
|
|
440
328
|
const mintResult = mintEdgesFromConfirmedFacts(answered, provider, scope, MINT_PRODUCED_BY, root.commitSha);
|
|
441
|
-
//
|
|
442
|
-
//
|
|
443
|
-
//
|
|
444
|
-
// a re-run after a changed or removed answer safe: the run id is derived
|
|
445
|
-
// from (producedBy, repo, commitSha, sourceFiles), so a re-run at the same
|
|
446
|
-
// commit with the same askable domain lands on the *same* run id, and the
|
|
447
|
-
// writer's own self-clean pass (`writer.ts` rule 3) retires whatever this
|
|
448
|
-
// run no longer supplies — the edge from a superseded answer does not
|
|
449
|
-
// survive next to a new one. Scoping to the *answered* subset instead
|
|
450
|
-
// would let a file drop out of `sourceFiles` the moment its one answer was
|
|
451
|
-
// removed, and a stale edge for it would then never be found as a
|
|
452
|
-
// prior-run to retire at all.
|
|
329
|
+
// Invalidation key (DEC-015: producedBy+sourceFiles), scoped to every *askable* file this
|
|
330
|
+
// run, not just answered ones — else a file dropping its one answer would vanish from
|
|
331
|
+
// sourceFiles and its stale edge could never be found by the writer's self-clean pass to retire.
|
|
453
332
|
const mintFiles = [
|
|
454
333
|
...new Set(ledgerRefs.flatMap((ref) => ref.attrs?.["refusalClass"] === "value-unknown" && typeof ref.file === "string" ? [ref.file] : [])),
|
|
455
334
|
].sort();
|
|
@@ -499,8 +378,7 @@ async function run(args, ctx) {
|
|
|
499
378
|
"changed) — the edges they previously grounded have been retired, not left to coexist with " +
|
|
500
379
|
"whatever this run minted instead.");
|
|
501
380
|
}
|
|
502
|
-
// No code-reading source ran
|
|
503
|
-
// rest a claim on. R0 rather than a cheerful default.
|
|
381
|
+
// No code-reading source ran — R0, not a cheerful default.
|
|
504
382
|
const floor = (codeResolutions.length === 0
|
|
505
383
|
? 0
|
|
506
384
|
: Math.min(...codeResolutions));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/tools/analyze.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/tools/analyze.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `browser_click
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* `DEC-380` grants consent once, at
|
|
7
|
-
* `browser_start_session`, bound to that call's origin. So this tool declares
|
|
8
|
-
* `class: "action"` — it does change a running application, and pretending
|
|
9
|
-
* otherwise would be the lie — while its `describeAction` returns `undefined`,
|
|
10
|
-
* the existing "this particular call has nothing to confirm" path that
|
|
11
|
-
* `questions` uses when asked to read rather than write.
|
|
12
|
-
*
|
|
13
|
-
* The property that makes that safe rather than merely cheap: **a verb cannot
|
|
14
|
-
* mint consent for itself.** Called against a session with no consent record,
|
|
15
|
-
* it refuses. There is deliberately no path from a click to a token.
|
|
16
|
-
*
|
|
17
|
-
* ## A ref, never a selector
|
|
18
|
-
*
|
|
19
|
-
* The element is named by a ref from a snapshot the calling agent actually
|
|
20
|
-
* saw. A raw selector would let an agent act on an element it never looked
|
|
21
|
-
* at, and a ref from a superseded snapshot refuses rather than resolving
|
|
22
|
-
* against whatever now matches — that is the same mistake, arriving later.
|
|
2
|
+
* `browser_click`: clicks a ref the agent has seen from a snapshot, never a
|
|
3
|
+
* raw selector. Consent (DEC-380) is granted once at
|
|
4
|
+
* `browser_start_session` — a verb cannot mint consent for itself, and refuses with none on record. A stale ref (superseded snapshot) also refuses.
|
|
23
5
|
*/
|
|
24
6
|
import type { BrowserEvidenceReport } from "../browser/evidence.ts";
|
|
25
7
|
import { type BrowserGraphWrite } from "../browser/graph-write.ts";
|