@descryy/mcp 0.4.0 → 0.6.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/bin/descry-mcp.js +16 -2
- package/dist/bin/descry-mcp.js.map +1 -1
- package/dist/browser/driver.d.ts +105 -6
- package/dist/browser/driver.d.ts.map +1 -1
- package/dist/browser/driver.js +17 -3
- package/dist/browser/driver.js.map +1 -1
- package/dist/browser/evidence.d.ts +11 -0
- package/dist/browser/evidence.d.ts.map +1 -1
- package/dist/browser/evidence.js +64 -8
- package/dist/browser/evidence.js.map +1 -1
- package/dist/browser/fake-driver.d.ts +8 -0
- package/dist/browser/fake-driver.d.ts.map +1 -1
- package/dist/browser/fake-driver.js +26 -3
- package/dist/browser/fake-driver.js.map +1 -1
- package/dist/browser/playwright-driver.d.ts +68 -14
- package/dist/browser/playwright-driver.d.ts.map +1 -1
- package/dist/browser/playwright-driver.js +318 -38
- package/dist/browser/playwright-driver.js.map +1 -1
- package/dist/browser/provider.d.ts +10 -4
- package/dist/browser/provider.d.ts.map +1 -1
- package/dist/browser/provider.js +10 -4
- package/dist/browser/provider.js.map +1 -1
- package/dist/browser/scenario-runner.d.ts +9 -0
- package/dist/browser/scenario-runner.d.ts.map +1 -1
- package/dist/browser/scenario-runner.js +32 -2
- package/dist/browser/scenario-runner.js.map +1 -1
- package/dist/browser/tool-support.js +1 -1
- package/dist/browser/tool-support.js.map +1 -1
- package/dist/cancellation.d.ts +55 -0
- package/dist/cancellation.d.ts.map +1 -0
- package/dist/cancellation.js +76 -0
- package/dist/cancellation.js.map +1 -0
- package/dist/capped.d.ts +41 -0
- package/dist/capped.d.ts.map +1 -0
- package/dist/capped.js +35 -0
- package/dist/capped.js.map +1 -0
- package/dist/registry.d.ts +20 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +71 -4
- package/dist/registry.js.map +1 -1
- package/dist/render.d.ts +92 -0
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +250 -5
- package/dist/render.js.map +1 -1
- package/dist/runtime-registry.d.ts +19 -1
- package/dist/runtime-registry.d.ts.map +1 -1
- package/dist/runtime-registry.js +88 -4
- package/dist/runtime-registry.js.map +1 -1
- package/dist/server.d.ts +19 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +135 -11
- package/dist/server.js.map +1 -1
- package/dist/session.d.ts +22 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +27 -1
- package/dist/session.js.map +1 -1
- package/dist/tools/analyze.d.ts +23 -3
- package/dist/tools/analyze.d.ts.map +1 -1
- package/dist/tools/analyze.js +35 -3
- package/dist/tools/analyze.js.map +1 -1
- package/dist/tools/browser-click.d.ts.map +1 -1
- package/dist/tools/browser-click.js +14 -0
- package/dist/tools/browser-click.js.map +1 -1
- package/dist/tools/browser-fill.d.ts.map +1 -1
- package/dist/tools/browser-fill.js +14 -0
- package/dist/tools/browser-fill.js.map +1 -1
- package/dist/tools/browser-navigate.d.ts.map +1 -1
- package/dist/tools/browser-navigate.js +14 -0
- package/dist/tools/browser-navigate.js.map +1 -1
- package/dist/tools/browser-run-scenario.d.ts.map +1 -1
- package/dist/tools/browser-run-scenario.js +12 -3
- package/dist/tools/browser-run-scenario.js.map +1 -1
- package/dist/tools/browser-save-scenario.d.ts.map +1 -1
- package/dist/tools/browser-save-scenario.js +109 -3
- package/dist/tools/browser-save-scenario.js.map +1 -1
- package/dist/tools/browser-start-session.d.ts.map +1 -1
- package/dist/tools/browser-start-session.js +43 -0
- package/dist/tools/browser-start-session.js.map +1 -1
- package/dist/tools/browser-type.d.ts.map +1 -1
- package/dist/tools/browser-type.js +14 -0
- package/dist/tools/browser-type.js.map +1 -1
- package/dist/tools/contracts.d.ts +41 -10
- package/dist/tools/contracts.d.ts.map +1 -1
- package/dist/tools/contracts.js +117 -17
- package/dist/tools/contracts.js.map +1 -1
- package/dist/tools/cross-pr.d.ts +39 -10
- package/dist/tools/cross-pr.d.ts.map +1 -1
- package/dist/tools/cross-pr.js +113 -29
- package/dist/tools/cross-pr.js.map +1 -1
- package/dist/tools/git-diff.d.ts.map +1 -1
- package/dist/tools/git-diff.js +30 -2
- package/dist/tools/git-diff.js.map +1 -1
- package/dist/tools/impact.d.ts.map +1 -1
- package/dist/tools/impact.js +50 -2
- package/dist/tools/impact.js.map +1 -1
- package/dist/tools/observe-runtime.d.ts.map +1 -1
- package/dist/tools/observe-runtime.js +84 -4
- package/dist/tools/observe-runtime.js.map +1 -1
- package/dist/tools/observe-tests.d.ts +12 -0
- package/dist/tools/observe-tests.d.ts.map +1 -1
- package/dist/tools/observe-tests.js +92 -8
- package/dist/tools/observe-tests.js.map +1 -1
- package/dist/tools/pre-push.d.ts +40 -7
- package/dist/tools/pre-push.d.ts.map +1 -1
- package/dist/tools/pre-push.js +65 -23
- package/dist/tools/pre-push.js.map +1 -1
- package/dist/tools/scope.d.ts.map +1 -1
- package/dist/tools/scope.js +20 -4
- package/dist/tools/scope.js.map +1 -1
- package/dist/tools/validate.d.ts +40 -1
- package/dist/tools/validate.d.ts.map +1 -1
- package/dist/tools/validate.js +150 -27
- package/dist/tools/validate.js.map +1 -1
- package/dist/tools/verification-status.d.ts.map +1 -1
- package/dist/tools/verification-status.js +3 -3
- package/dist/tools/verification-status.js.map +1 -1
- package/dist/transport.d.ts +12 -1
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +30 -16
- package/dist/transport.js.map +1 -1
- package/package.json +22 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario-runner.d.ts","sourceRoot":"","sources":["../../src/browser/scenario-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAqB,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACpH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,EAAuB,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAkD,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErG,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,8KAA8K;IAC9K,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,YAAY,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,YAAY,CAAC;IACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,CAAC;IACpE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,4FAA4F;IAC5F,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACxD,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,2HAA2H;IAC3H,QAAQ,CAAC,YAAY,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAID,kHAAkH;AAClH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAEnD;
|
|
1
|
+
{"version":3,"file":"scenario-runner.d.ts","sourceRoot":"","sources":["../../src/browser/scenario-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAqB,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACpH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,EAAuB,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAkD,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErG,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,8KAA8K;IAC9K,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,YAAY,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,YAAY,CAAC;IACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,CAAC;IACpE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,4FAA4F;IAC5F,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACxD,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,2HAA2H;IAC3H,QAAQ,CAAC,YAAY,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1C;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAID,kHAAkH;AAClH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAEnD;AA4BD,wBAAsB,cAAc,CAClC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,sBAAsB,EAChC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,cAAc,CAAC,CAoOzB"}
|
|
@@ -70,22 +70,27 @@ export async function replayScenario(ctx, registry, sessionId, scenario) {
|
|
|
70
70
|
resolution: null,
|
|
71
71
|
}));
|
|
72
72
|
const assertionResults = scenario.assertions.map(() => null);
|
|
73
|
-
const acc = { consoleErrors: [], failedRequests: [], actions: [], totalRequests: 0 };
|
|
73
|
+
const acc = { consoleErrors: [], failedRequests: [], pendingRequests: [], actions: [], unsettled: [], totalRequests: 0 };
|
|
74
74
|
let graph = NO_GRAPH_WRITE;
|
|
75
75
|
const notes = [];
|
|
76
76
|
let sessionEnded = null;
|
|
77
77
|
let stopped = false;
|
|
78
|
+
let cancelled = false;
|
|
78
79
|
function absorb(evidence) {
|
|
79
80
|
acc.consoleErrors.push(...evidence.consoleErrors);
|
|
80
81
|
acc.failedRequests.push(...evidence.failedRequests);
|
|
82
|
+
acc.pendingRequests.push(...evidence.pendingRequests);
|
|
81
83
|
acc.actions.push(...evidence.actions);
|
|
84
|
+
acc.unsettled.push(...evidence.unsettled);
|
|
82
85
|
acc.totalRequests += evidence.totalRequests;
|
|
83
86
|
}
|
|
84
87
|
function cumulative() {
|
|
85
88
|
return {
|
|
86
89
|
consoleErrors: [...acc.consoleErrors],
|
|
87
90
|
failedRequests: [...acc.failedRequests],
|
|
91
|
+
pendingRequests: [...acc.pendingRequests],
|
|
88
92
|
actions: [...acc.actions],
|
|
93
|
+
unsettled: [...acc.unsettled],
|
|
89
94
|
totalRequests: acc.totalRequests,
|
|
90
95
|
};
|
|
91
96
|
}
|
|
@@ -110,6 +115,19 @@ export async function replayScenario(ctx, registry, sessionId, scenario) {
|
|
|
110
115
|
});
|
|
111
116
|
}
|
|
112
117
|
for (const [index, step] of scenario.steps.entries()) {
|
|
118
|
+
// Trap 4. Between steps, before anything is driven into the application.
|
|
119
|
+
// A cancelled replay that ran to the end would keep clicking through a
|
|
120
|
+
// live system on behalf of a caller who has gone — the reply is
|
|
121
|
+
// suppressed, the mutations are not. The step in flight when the signal
|
|
122
|
+
// fired finishes and its evidence is kept; nothing after it starts.
|
|
123
|
+
if (ctx.signal.aborted) {
|
|
124
|
+
cancelled = true;
|
|
125
|
+
stopped = true;
|
|
126
|
+
notes.push(`The replay was cancelled after ${index} of ${scenario.steps.length} step(s). The remaining steps ` +
|
|
127
|
+
"were not run, so this scenario neither passed nor failed — it stopped. Everything observed up " +
|
|
128
|
+
"to that point is below.");
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
113
131
|
// Trap 1. Per step, always: `use` is the crash detector and the idle
|
|
114
132
|
// clock, and a five-minute scenario that resolved the session once would
|
|
115
133
|
// be reaped out from under itself halfway through.
|
|
@@ -224,7 +242,18 @@ export async function replayScenario(ctx, registry, sessionId, scenario) {
|
|
|
224
242
|
// so it can add it to the other two.
|
|
225
243
|
const unverified = scenario.assertions.length === 0 ? 1 : 0;
|
|
226
244
|
const passed = assertions.filter((a) => a.status === "passed").length;
|
|
227
|
-
|
|
245
|
+
// `cancelled` sits beside `sessionEnded` for a reason that is easy to miss:
|
|
246
|
+
// a replay stopped early leaves its assertions `notReached`, and
|
|
247
|
+
// `notReached` counts toward neither `failed` nor `unresolved`. Without this
|
|
248
|
+
// term a run cancelled after one step of twenty reports exactly the same
|
|
249
|
+
// `passed` as a run that verified every one of them.
|
|
250
|
+
const outcome = failed > 0
|
|
251
|
+
? "failed"
|
|
252
|
+
: unresolved > 0 || sessionEnded !== null || cancelled
|
|
253
|
+
? "unresolved"
|
|
254
|
+
: unverified > 0
|
|
255
|
+
? "unverified"
|
|
256
|
+
: "passed";
|
|
228
257
|
return {
|
|
229
258
|
scenario: scenario.name,
|
|
230
259
|
sessionId,
|
|
@@ -238,6 +267,7 @@ export async function replayScenario(ctx, registry, sessionId, scenario) {
|
|
|
238
267
|
evidence: cumulative(),
|
|
239
268
|
graph,
|
|
240
269
|
sessionEnded,
|
|
270
|
+
cancelled,
|
|
241
271
|
notes,
|
|
242
272
|
};
|
|
243
273
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario-runner.js","sourceRoot":"","sources":["../../src/browser/scenario-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scenario-runner.js","sourceRoot":"","sources":["../../src/browser/scenario-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAMH,OAAO,EAAE,cAAc,EAA0B,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,aAAa,EAA0B,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AA2ErG,MAAM,QAAQ,GAAkC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE1E,kHAAkH;AAClH,MAAM,UAAU,OAAO,CAAC,QAAkB;IACxC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACvE,CAAC;AAgBD,SAAS,UAAU,CAAC,IAAuB,EAAE,IAAuB;IAClE,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO;QAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9G,OAAO;QACL,OAAO;QACP,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5D,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACzD,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACzD,cAAc,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;KAC/E,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAgB,EAChB,QAAgC,EAChC,SAAiB,EACjB,QAAkB;IAElB,MAAM,KAAK,GAAyB,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACvE,KAAK;QACL,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,SAAS;QACjB,GAAG,EAAE,EAAE;QACP,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC,CAAC;IACJ,MAAM,gBAAgB,GAAuC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAEjG,MAAM,GAAG,GAAgB,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;IACtI,IAAI,KAAK,GAAsB,cAAc,CAAC;IAC9C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,YAAY,GAAuB,IAAI,CAAC;IAC5C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,SAAS,MAAM,CAAC,QAA+B;QAC7C,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;QAClD,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;QACpD,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;QACtD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1C,GAAG,CAAC,aAAa,IAAI,QAAQ,CAAC,aAAa,CAAC;IAC9C,CAAC;IAED,SAAS,UAAU;QACjB,OAAO;YACL,aAAa,EAAE,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC;YACrC,cAAc,EAAE,CAAC,GAAG,GAAG,CAAC,cAAc,CAAC;YACvC,eAAe,EAAE,CAAC,GAAG,GAAG,CAAC,eAAe,CAAC;YACzC,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;YACzB,SAAS,EAAE,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC;YAC7B,aAAa,EAAE,GAAG,CAAC,aAAa;SACjC,CAAC;IACJ,CAAC;IAED,SAAS,UAAU,CAAC,MAAqB;QACvC,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,KAAK,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IAC5H,CAAC;IAED;;;;;;OAMG;IACH,KAAK,UAAU,gBAAgB,CAAC,MAAqB,EAAE,KAA0B;QAC/E,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO;QAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7C,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YAC/C,IAAI,SAAS,CAAC,SAAS,KAAK,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,KAAK,IAAI;gBAAE,OAAO;YAC/E,gBAAgB,CAAC,KAAK,CAAC,GAAG,iBAAiB,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACrD,yEAAyE;QACzE,uEAAuE;QACvE,gEAAgE;QAChE,wEAAwE;QACxE,oEAAoE;QACpE,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,SAAS,GAAG,IAAI,CAAC;YACjB,OAAO,GAAG,IAAI,CAAC;YACf,KAAK,CAAC,IAAI,CACR,kCAAkC,KAAK,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,gCAAgC;gBACjG,gGAAgG;gBAChG,yBAAyB,CAC5B,CAAC;YACF,MAAM;QACR,CAAC;QAED,qEAAqE;QACrE,yEAAyE;QACzE,mDAAmD;QACnD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,OAAO,GAAG,IAAI,CAAC;YACf,MAAM;QACR,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QAExB,GAAG,CAAC,QAAQ,CAAC,kBAAkB,KAAK,GAAG,CAAC,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE1G,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC/B,KAAK,CAAC,KAAK,CAAC,GAAG;oBACb,KAAK;oBACL,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,YAAY;oBACpB,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE;oBAC5B,UAAU,EAAE;wBACV,IAAI,EAAE,MAAM;wBACZ,SAAS,EAAE,EAAE;wBACb,OAAO,EACL,QAAQ,KAAK,mBAAmB,GAAG,gBAAgB,KAAK,CAAC,eAAe,oBAAoB;4BAC5F,gGAAgG;4BAChG,4CAA4C;qBAC/C;iBACF,CAAC;gBACF,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;YACR,CAAC;YACD,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,uEAAuE;YACvE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,KAAK,CAAC,KAAK,CAAC,GAAG;oBACb,KAAK;oBACL,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,YAAY;oBACpB,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,UAAU,EAAE;wBACV,IAAI,EAAE,MAAM;wBACZ,SAAS,EAAE,EAAE;wBACb,OAAO,EAAE,QAAQ,KAAK,OAAO,IAAI,CAAC,MAAM,2EAA2E;qBACpH;iBACF,CAAC;gBACF,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;YACR,CAAC;YAED,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAClE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACvB,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrH,qEAAqE;gBACrE,+DAA+D;gBAC/D,mEAAmE;gBACnE,0BAA0B;gBAC1B,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACvD,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC1B,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC1C,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC9B,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;YACR,CAAC;YAED,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;YACjC,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;gBAAE,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACpD,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;gBAAE,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;;gBACxE,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,wEAAwE;QACxE,sEAAsE;QACtE,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvD,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1B,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE9B,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAE7G,MAAM,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,+DAA+D;IAC/D,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACpD,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAA8B,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CACzF,gBAAgB,CAAC,KAAK,CAAC,IAAI;QACzB,KAAK;QACL,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,MAAM,EAAE,YAAY;QACpB,MAAM,EACJ,mGAAmG;YACnG,yEAAyE;KAC5E,CACF,CAAC;IAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IACtE,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,MAAM,CAAC;IAChF,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,MAAM,CAAC;IAC9E,MAAM,UAAU,GAAG,eAAe,GAAG,WAAW,CAAC;IACjD,6EAA6E;IAC7E,6EAA6E;IAC7E,qCAAqC;IACrC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IAEtE,4EAA4E;IAC5E,iEAAiE;IACjE,6EAA6E;IAC7E,yEAAyE;IACzE,qDAAqD;IACrD,MAAM,OAAO,GACX,MAAM,GAAG,CAAC;QACR,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,YAAY,KAAK,IAAI,IAAI,SAAS;YACpD,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,UAAU,GAAG,CAAC;gBACd,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,QAAQ,CAAC;IAEnB,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,IAAI;QACvB,SAAS;QACT,OAAO;QACP,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE;QAClD,0CAA0C;QAC1C,aAAa,EAAE,MAAM;QACrB,QAAQ,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,KAAK;QACL,UAAU;QACV,QAAQ,EAAE,UAAU,EAAE;QACtB,KAAK;QACL,YAAY;QACZ,SAAS;QACT,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CACxB,SAA4B,EAC5B,KAAa,EACb,KAA0B,EAC1B,QAAsB,EACtB,QAA+B;IAE/B,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;IAE7E,MAAM,WAAW,GAAG,CAAC,MAAc,EAA2B,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9G,MAAM,MAAM,GAAG,CAAC,MAAc,EAA2B,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACpG,MAAM,MAAM,GAAG,CAAC,MAAc,EAA2B,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAEpG,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBAC9B,OAAO,WAAW,CAAC,aAAa,KAAK,0EAA0E,CAAC,CAAC;YACnH,CAAC;YACD,MAAM,KAAK,GAAG,aAAa,CAAC,aAAa,KAAK,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC9E,IAAI,KAAK,CAAC,QAAQ;gBAAE,OAAO,MAAM,CAAC,aAAa,KAAK,uBAAuB,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;YAC5F,sEAAsE;YACtE,sEAAsE;YACtE,qEAAqE;YACrE,wCAAwC;YACxC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;gBAAE,OAAO,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAClF,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC7D,OAAO,WAAW,CAChB,aAAa,KAAK,kFAAkF;oBAClG,2DAA2D,CAC9D,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,aAAa,CAAC,aAAa,KAAK,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC9E,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACpB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACjH,CAAC;YACD,kEAAkE;YAClE,iEAAiE;YACjE,2DAA2D;YAC3D,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ;gBAC9C,CAAC,CAAC,MAAM,CAAC,aAAa,KAAK,uCAAuC,SAAS,CAAC,QAAQ,IAAI,CAAC;gBACzF,CAAC,CAAC,MAAM,CACJ,aAAa,KAAK,mDAAmD,SAAS,CAAC,QAAQ,YAAY;oBACjG,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAChC,CAAC;QACR,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAChC,OAAO,WAAW,CAAC,aAAa,KAAK,2EAA2E,CAAC,CAAC;YACpH,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,OAAO,MAAM,KAAK,SAAS,CAAC,QAAQ;gBAClC,CAAC,CAAC,MAAM,CAAC,aAAa,KAAK,oBAAoB,MAAM,GAAG,CAAC;gBACzD,CAAC,CAAC,MAAM,CAAC,aAAa,KAAK,gCAAgC,SAAS,CAAC,QAAQ,kBAAkB,MAAM,GAAG,CAAC,CAAC;QAC9G,CAAC;QACD,KAAK,iBAAiB;YACpB,OAAO,QAAQ,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;gBACxC,CAAC,CAAC,MAAM,CAAC,aAAa,KAAK,oCAAoC,CAAC;gBAChE,CAAC,CAAC,MAAM,CACJ,aAAa,KAAK,KAAK,QAAQ,CAAC,aAAa,CAAC,MAAM,6CAA6C;oBAC/F,UAAU,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,gDAAgD;oBAC/F,4FAA4F,CAC/F,CAAC;QACR,KAAK,kBAAkB;YACrB,OAAO,QAAQ,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC;gBACzC,CAAC,CAAC,MAAM,CAAC,aAAa,KAAK,qCAAqC,CAAC;gBACjE,CAAC,CAAC,MAAM,CACJ,aAAa,KAAK,KAAK,QAAQ,CAAC,cAAc,CAAC,MAAM,sCAAsC;oBACzF,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,EAAE,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa;oBACjG,4FAA4F;oBAC5F,gBAAgB,CACnB,CAAC;IACV,CAAC;AACH,CAAC"}
|
|
@@ -134,7 +134,7 @@ export async function observeAndCorrelate(ctx, entry) {
|
|
|
134
134
|
return { evidence, graph, notes: [...evidenceNotes(evidence), ...notes] };
|
|
135
135
|
}
|
|
136
136
|
export function emptyEvidence() {
|
|
137
|
-
return { consoleErrors: [], failedRequests: [], totalRequests: 0, actions: [] };
|
|
137
|
+
return { consoleErrors: [], failedRequests: [], pendingRequests: [], totalRequests: 0, actions: [], unsettled: [] };
|
|
138
138
|
}
|
|
139
139
|
export function reportOf(observation) {
|
|
140
140
|
return evidenceReport(observation);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-support.js","sourceRoot":"","sources":["../../src/browser/tool-support.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tool-support.js","sourceRoot":"","sources":["../../src/browser/tool-support.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a tool does when the caller has already gone.
|
|
3
|
+
*
|
|
4
|
+
* `notifications/cancelled` makes the *server* stop waiting and suppress the
|
|
5
|
+
* response. It cannot make the work stop, and for the tools that hold
|
|
6
|
+
* something real — a browser, an application, a test runner — the work
|
|
7
|
+
* continuing after the reply is discarded is the whole problem: a Chromium
|
|
8
|
+
* nothing will ever close, an application still being driven, a scenario
|
|
9
|
+
* still clicking through a live system on behalf of a caller who cancelled.
|
|
10
|
+
*
|
|
11
|
+
* So `ctx.signal` is checked at the points where a tool is about to *start*
|
|
12
|
+
* something, and whatever the tool already started is released. Three rules
|
|
13
|
+
* hold everywhere it is used:
|
|
14
|
+
*
|
|
15
|
+
* 1. **Release what this call started, and nothing else.** A cancelled verb
|
|
16
|
+
* does not close the session `browser_start_session` opened, and a
|
|
17
|
+
* cancelled run does not kill a process it merely attached to. Cancellation
|
|
18
|
+
* stops the work it was asked to stop; tearing down a caller's own state
|
|
19
|
+
* because one call was cancelled is a second failure, not a cleanup.
|
|
20
|
+
* 2. **Keep the evidence.** Nothing witnessed before the cancellation is
|
|
21
|
+
* thrown away. Evidence captured and then dropped is worse than evidence
|
|
22
|
+
* never captured, because nothing discloses it.
|
|
23
|
+
* 3. **Never let a cancelled run render as a clean one.** A check that stopped
|
|
24
|
+
* a third of the way through has not passed, and the reply says so even
|
|
25
|
+
* though nobody is expected to read it — the reply is suppressed only when
|
|
26
|
+
* the cancellation arrived over the wire, and this same path is reachable
|
|
27
|
+
* when a signal is aborted for any other reason.
|
|
28
|
+
*
|
|
29
|
+
* The state is `refused`: cancellation is a fact about Descry — it stopped
|
|
30
|
+
* looking — and never a fact about the user's code. `empty` would say the run
|
|
31
|
+
* looked and found nothing, which is the one thing it must not say.
|
|
32
|
+
*/
|
|
33
|
+
/** The reply state for a call that stopped because its signal was aborted. */
|
|
34
|
+
export declare const CANCELLED_STATE: "refused";
|
|
35
|
+
export declare function cancellationHeadline(what: string): string;
|
|
36
|
+
/**
|
|
37
|
+
* @param stopped What this call stopped doing, in the caller's terms.
|
|
38
|
+
* @param released What it tore down, when it had started something. Omitted
|
|
39
|
+
* when there was nothing to release — claiming a teardown that did not happen
|
|
40
|
+
* is the same class of false statement as hiding one that did.
|
|
41
|
+
*/
|
|
42
|
+
export declare function cancellationNotes(stopped: string, released?: string): readonly string[];
|
|
43
|
+
/**
|
|
44
|
+
* A promise that settles when the signal aborts, and a way to stop listening.
|
|
45
|
+
*
|
|
46
|
+
* The disposal half is the point. `Promise.race` leaves the losing promise
|
|
47
|
+
* pending forever, so a listener added per call and never removed accumulates
|
|
48
|
+
* on a signal that outlives the call — the standard leak this shape exists to
|
|
49
|
+
* avoid. Callers race and then dispose in a `finally`.
|
|
50
|
+
*/
|
|
51
|
+
export declare function whenAborted(signal: AbortSignal): {
|
|
52
|
+
readonly promise: Promise<void>;
|
|
53
|
+
dispose(): void;
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=cancellation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancellation.d.ts","sourceRoot":"","sources":["../src/cancellation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,8EAA8E;AAC9E,eAAO,MAAM,eAAe,EAAG,SAAkB,CAAC;AAElD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAMvF;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,OAAO,IAAI,IAAI,CAAA;CAAE,CAgBrG"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a tool does when the caller has already gone.
|
|
3
|
+
*
|
|
4
|
+
* `notifications/cancelled` makes the *server* stop waiting and suppress the
|
|
5
|
+
* response. It cannot make the work stop, and for the tools that hold
|
|
6
|
+
* something real — a browser, an application, a test runner — the work
|
|
7
|
+
* continuing after the reply is discarded is the whole problem: a Chromium
|
|
8
|
+
* nothing will ever close, an application still being driven, a scenario
|
|
9
|
+
* still clicking through a live system on behalf of a caller who cancelled.
|
|
10
|
+
*
|
|
11
|
+
* So `ctx.signal` is checked at the points where a tool is about to *start*
|
|
12
|
+
* something, and whatever the tool already started is released. Three rules
|
|
13
|
+
* hold everywhere it is used:
|
|
14
|
+
*
|
|
15
|
+
* 1. **Release what this call started, and nothing else.** A cancelled verb
|
|
16
|
+
* does not close the session `browser_start_session` opened, and a
|
|
17
|
+
* cancelled run does not kill a process it merely attached to. Cancellation
|
|
18
|
+
* stops the work it was asked to stop; tearing down a caller's own state
|
|
19
|
+
* because one call was cancelled is a second failure, not a cleanup.
|
|
20
|
+
* 2. **Keep the evidence.** Nothing witnessed before the cancellation is
|
|
21
|
+
* thrown away. Evidence captured and then dropped is worse than evidence
|
|
22
|
+
* never captured, because nothing discloses it.
|
|
23
|
+
* 3. **Never let a cancelled run render as a clean one.** A check that stopped
|
|
24
|
+
* a third of the way through has not passed, and the reply says so even
|
|
25
|
+
* though nobody is expected to read it — the reply is suppressed only when
|
|
26
|
+
* the cancellation arrived over the wire, and this same path is reachable
|
|
27
|
+
* when a signal is aborted for any other reason.
|
|
28
|
+
*
|
|
29
|
+
* The state is `refused`: cancellation is a fact about Descry — it stopped
|
|
30
|
+
* looking — and never a fact about the user's code. `empty` would say the run
|
|
31
|
+
* looked and found nothing, which is the one thing it must not say.
|
|
32
|
+
*/
|
|
33
|
+
/** The reply state for a call that stopped because its signal was aborted. */
|
|
34
|
+
export const CANCELLED_STATE = "refused";
|
|
35
|
+
export function cancellationHeadline(what) {
|
|
36
|
+
return `The call was cancelled; ${what}.`;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @param stopped What this call stopped doing, in the caller's terms.
|
|
40
|
+
* @param released What it tore down, when it had started something. Omitted
|
|
41
|
+
* when there was nothing to release — claiming a teardown that did not happen
|
|
42
|
+
* is the same class of false statement as hiding one that did.
|
|
43
|
+
*/
|
|
44
|
+
export function cancellationNotes(stopped, released) {
|
|
45
|
+
return [
|
|
46
|
+
`This call was cancelled before it finished. ${stopped} Nothing here is a finding about your ` +
|
|
47
|
+
"application: the run stopped, it did not conclude.",
|
|
48
|
+
...(released === undefined ? [] : [released]),
|
|
49
|
+
];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* A promise that settles when the signal aborts, and a way to stop listening.
|
|
53
|
+
*
|
|
54
|
+
* The disposal half is the point. `Promise.race` leaves the losing promise
|
|
55
|
+
* pending forever, so a listener added per call and never removed accumulates
|
|
56
|
+
* on a signal that outlives the call — the standard leak this shape exists to
|
|
57
|
+
* avoid. Callers race and then dispose in a `finally`.
|
|
58
|
+
*/
|
|
59
|
+
export function whenAborted(signal) {
|
|
60
|
+
if (signal.aborted)
|
|
61
|
+
return { promise: Promise.resolve(), dispose: () => { } };
|
|
62
|
+
let onAbort = () => { };
|
|
63
|
+
const promise = new Promise((resolve) => {
|
|
64
|
+
onAbort = () => {
|
|
65
|
+
resolve();
|
|
66
|
+
};
|
|
67
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
68
|
+
});
|
|
69
|
+
return {
|
|
70
|
+
promise,
|
|
71
|
+
dispose: () => {
|
|
72
|
+
signal.removeEventListener("abort", onAbort);
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=cancellation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancellation.js","sourceRoot":"","sources":["../src/cancellation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,eAAe,GAAG,SAAkB,CAAC;AAElD,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,2BAA2B,IAAI,GAAG,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,QAAiB;IAClE,OAAO;QACL,+CAA+C,OAAO,wCAAwC;YAC5F,oDAAoD;QACtD,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,MAAmB;IAC7C,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IAE7E,IAAI,OAAO,GAAe,GAAG,EAAE,GAAE,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAC5C,OAAO,GAAG,GAAG,EAAE;YACb,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,OAAO;QACL,OAAO;QACP,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/capped.d.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `capped(items, limit) → { shown, detail }` — B6's fix, part 2.
|
|
3
|
+
*
|
|
4
|
+
* `render.ts`'s envelope carries a `truncated` field precisely so a caller
|
|
5
|
+
* does not have to guess whether a short list is short because that is all
|
|
6
|
+
* there was, or because the reply was cut. Before this helper existed, three
|
|
7
|
+
* tools computed that cut three different ways: one sliced and remembered to
|
|
8
|
+
* report `shown`/`total` by hand, one sliced and forgot, one never sliced at
|
|
9
|
+
* all but discarded rows anyway. Two of the three left `render.ts` with
|
|
10
|
+
* nothing to report and it filled the gap with a sentinel
|
|
11
|
+
* (`{shown:-1,total:-1}`) that is worse than reporting nothing, because it
|
|
12
|
+
* passes a presence check and then poisons arithmetic.
|
|
13
|
+
*
|
|
14
|
+
* This is the fix: the slice and the fact that a slice happened are computed
|
|
15
|
+
* together, in one call, so a tool cannot hold one without the other. A tool
|
|
16
|
+
* that caps a list calls this instead of `.slice(0, limit)`, and then has a
|
|
17
|
+
* `detail` sitting right next to `shown` with nothing further to remember.
|
|
18
|
+
*/
|
|
19
|
+
import type { TruncationDetail } from "./render.ts";
|
|
20
|
+
export interface Capped<T> {
|
|
21
|
+
/** The first `limit` items, in their original order. */
|
|
22
|
+
readonly shown: readonly T[];
|
|
23
|
+
/**
|
|
24
|
+
* `null` when nothing was withheld — `shown` already holds everything
|
|
25
|
+
* `items` had. Non-null exactly when `shown.length < items.length`, and
|
|
26
|
+
* carries the same `{shown, total}` shape `render.ts` puts on the wire, so
|
|
27
|
+
* a tool can pass it straight through as `truncatedDetail`.
|
|
28
|
+
*/
|
|
29
|
+
readonly detail: TruncationDetail | null;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Slice `items` to `limit` and report what that cost in the same call.
|
|
33
|
+
*
|
|
34
|
+
* A negative or fractional `limit` is treated as zero rather than thrown —
|
|
35
|
+
* the callers here already validate `limit` as a positive integer at the
|
|
36
|
+
* schema boundary (`optionalInteger(..., 1)`), so a non-positive value
|
|
37
|
+
* reaching this function is defensive, not an expected input to reject
|
|
38
|
+
* loudly.
|
|
39
|
+
*/
|
|
40
|
+
export declare function capped<T>(items: readonly T[], limit: number): Capped<T>;
|
|
41
|
+
//# sourceMappingURL=capped.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capped.d.ts","sourceRoot":"","sources":["../src/capped.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAKvE"}
|
package/dist/capped.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `capped(items, limit) → { shown, detail }` — B6's fix, part 2.
|
|
3
|
+
*
|
|
4
|
+
* `render.ts`'s envelope carries a `truncated` field precisely so a caller
|
|
5
|
+
* does not have to guess whether a short list is short because that is all
|
|
6
|
+
* there was, or because the reply was cut. Before this helper existed, three
|
|
7
|
+
* tools computed that cut three different ways: one sliced and remembered to
|
|
8
|
+
* report `shown`/`total` by hand, one sliced and forgot, one never sliced at
|
|
9
|
+
* all but discarded rows anyway. Two of the three left `render.ts` with
|
|
10
|
+
* nothing to report and it filled the gap with a sentinel
|
|
11
|
+
* (`{shown:-1,total:-1}`) that is worse than reporting nothing, because it
|
|
12
|
+
* passes a presence check and then poisons arithmetic.
|
|
13
|
+
*
|
|
14
|
+
* This is the fix: the slice and the fact that a slice happened are computed
|
|
15
|
+
* together, in one call, so a tool cannot hold one without the other. A tool
|
|
16
|
+
* that caps a list calls this instead of `.slice(0, limit)`, and then has a
|
|
17
|
+
* `detail` sitting right next to `shown` with nothing further to remember.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Slice `items` to `limit` and report what that cost in the same call.
|
|
21
|
+
*
|
|
22
|
+
* A negative or fractional `limit` is treated as zero rather than thrown —
|
|
23
|
+
* the callers here already validate `limit` as a positive integer at the
|
|
24
|
+
* schema boundary (`optionalInteger(..., 1)`), so a non-positive value
|
|
25
|
+
* reaching this function is defensive, not an expected input to reject
|
|
26
|
+
* loudly.
|
|
27
|
+
*/
|
|
28
|
+
export function capped(items, limit) {
|
|
29
|
+
const bound = Number.isFinite(limit) && limit > 0 ? Math.floor(limit) : 0;
|
|
30
|
+
const shown = items.slice(0, bound);
|
|
31
|
+
if (shown.length >= items.length)
|
|
32
|
+
return { shown, detail: null };
|
|
33
|
+
return { shown, detail: { shown: shown.length, total: items.length, more: null } };
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=capped.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capped.js","sourceRoot":"","sources":["../src/capped.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAgBH;;;;;;;;GAQG;AACH,MAAM,UAAU,MAAM,CAAI,KAAmB,EAAE,KAAa;IAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACjE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;AACrF,CAAC"}
|
package/dist/registry.d.ts
CHANGED
|
@@ -27,6 +27,20 @@
|
|
|
27
27
|
* `SourceLoadFailure` carrying the specifier and the reason, and the caller is
|
|
28
28
|
* structurally unable to take the loaded sources without also taking the list of
|
|
29
29
|
* ones that are missing.
|
|
30
|
+
*
|
|
31
|
+
* ## Two places to look, because the server and the repository are not the same tree
|
|
32
|
+
*
|
|
33
|
+
* `import(spec.module)` resolves relative to *this package's* location. That is
|
|
34
|
+
* right for a side-by-side install — `npm i @descryy/mcp @descryy/adapter-x` puts
|
|
35
|
+
* both under the repository's own `node_modules` — and useless under `npx -y
|
|
36
|
+
* @descryy/mcp <repo>`, where the server runs out of an isolated npx cache
|
|
37
|
+
* directory that contains no adapter the user ever installed. So a specifier is
|
|
38
|
+
* resolved from the **repository root first** when one is known: that is where the
|
|
39
|
+
* user installed the adapter and where their lockfile pins its version. The
|
|
40
|
+
* server's own closure stays as the fallback, so the side-by-side install and the
|
|
41
|
+
* absolute-path and `file:` specifiers that never needed a repository keep working
|
|
42
|
+
* unchanged. When both fail, both are disclosed — a resolution nobody attempted is
|
|
43
|
+
* the worst thing to make somebody debug.
|
|
30
44
|
*/
|
|
31
45
|
import type { IRSource, LanguageAdapter, RepoRoot } from "@descryy/ir";
|
|
32
46
|
/** One entry in the configured source list. A bare string is `{ module }`. */
|
|
@@ -52,7 +66,12 @@ export interface RegistryResult {
|
|
|
52
66
|
readonly failed: readonly SourceLoadFailure[];
|
|
53
67
|
}
|
|
54
68
|
export declare function normaliseSpec(entry: string | SourceSpec): SourceSpec;
|
|
55
|
-
|
|
69
|
+
/**
|
|
70
|
+
* @param repoPath Repository being analysed, when one is known. Specifiers are
|
|
71
|
+
* resolved from here first; without it only the server's own closure is searched,
|
|
72
|
+
* which is correct for callers that name modules by absolute path or `file:` URL.
|
|
73
|
+
*/
|
|
74
|
+
export declare function loadSources(entries: readonly (string | SourceSpec)[], repoPath?: string): Promise<RegistryResult>;
|
|
56
75
|
/**
|
|
57
76
|
* Ask each loaded adapter whether it claims this repository.
|
|
58
77
|
*
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvE,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAC/C;AAID,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,CAEpE;AAyBD;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE,EACzC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,CAczB;AAwFD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC;IACT,QAAQ,CAAC,UAAU,EAAE,SAAS,YAAY,EAAE,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACvE,CAAC,CAuBD"}
|
package/dist/registry.js
CHANGED
|
@@ -27,6 +27,20 @@
|
|
|
27
27
|
* `SourceLoadFailure` carrying the specifier and the reason, and the caller is
|
|
28
28
|
* structurally unable to take the loaded sources without also taking the list of
|
|
29
29
|
* ones that are missing.
|
|
30
|
+
*
|
|
31
|
+
* ## Two places to look, because the server and the repository are not the same tree
|
|
32
|
+
*
|
|
33
|
+
* `import(spec.module)` resolves relative to *this package's* location. That is
|
|
34
|
+
* right for a side-by-side install — `npm i @descryy/mcp @descryy/adapter-x` puts
|
|
35
|
+
* both under the repository's own `node_modules` — and useless under `npx -y
|
|
36
|
+
* @descryy/mcp <repo>`, where the server runs out of an isolated npx cache
|
|
37
|
+
* directory that contains no adapter the user ever installed. So a specifier is
|
|
38
|
+
* resolved from the **repository root first** when one is known: that is where the
|
|
39
|
+
* user installed the adapter and where their lockfile pins its version. The
|
|
40
|
+
* server's own closure stays as the fallback, so the side-by-side install and the
|
|
41
|
+
* absolute-path and `file:` specifiers that never needed a repository keep working
|
|
42
|
+
* unchanged. When both fail, both are disclosed — a resolution nobody attempted is
|
|
43
|
+
* the worst thing to make somebody debug.
|
|
30
44
|
*/
|
|
31
45
|
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
32
46
|
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
@@ -36,6 +50,9 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
36
50
|
}
|
|
37
51
|
return path;
|
|
38
52
|
};
|
|
53
|
+
import { createRequire } from "node:module";
|
|
54
|
+
import { join } from "node:path";
|
|
55
|
+
import { pathToFileURL } from "node:url";
|
|
39
56
|
const FACTORY_PATTERN = /^create[A-Za-z0-9]*Adapter$/;
|
|
40
57
|
export function normaliseSpec(entry) {
|
|
41
58
|
return typeof entry === "string" ? { module: entry } : entry;
|
|
@@ -61,13 +78,18 @@ function describe(error) {
|
|
|
61
78
|
}
|
|
62
79
|
return String(error);
|
|
63
80
|
}
|
|
64
|
-
|
|
81
|
+
/**
|
|
82
|
+
* @param repoPath Repository being analysed, when one is known. Specifiers are
|
|
83
|
+
* resolved from here first; without it only the server's own closure is searched,
|
|
84
|
+
* which is correct for callers that name modules by absolute path or `file:` URL.
|
|
85
|
+
*/
|
|
86
|
+
export async function loadSources(entries, repoPath) {
|
|
65
87
|
const loaded = [];
|
|
66
88
|
const failed = [];
|
|
67
89
|
for (const entry of entries) {
|
|
68
90
|
const spec = normaliseSpec(entry);
|
|
69
91
|
try {
|
|
70
|
-
loaded.push({ ...(await instantiate(spec)), spec });
|
|
92
|
+
loaded.push({ ...(await instantiate(spec, repoPath)), spec });
|
|
71
93
|
}
|
|
72
94
|
catch (error) {
|
|
73
95
|
failed.push({ spec, reason: describe(error) });
|
|
@@ -75,8 +97,31 @@ export async function loadSources(entries) {
|
|
|
75
97
|
}
|
|
76
98
|
return { loaded, failed };
|
|
77
99
|
}
|
|
78
|
-
|
|
79
|
-
|
|
100
|
+
/**
|
|
101
|
+
* Resolve a specifier as the repository itself would, from its own `node_modules`.
|
|
102
|
+
*
|
|
103
|
+
* `createRequire` anchored at the repository's `package.json` is the resolution a
|
|
104
|
+
* script run inside that repository would get. It is CommonJS resolution, so it
|
|
105
|
+
* reads `exports` under the `require`/`default` conditions — every adapter here
|
|
106
|
+
* publishes a `default`, and one that did not would fall through to the server's
|
|
107
|
+
* closure rather than fail the load. The resolved path is imported as a URL, so
|
|
108
|
+
* the module itself is still loaded as ESM.
|
|
109
|
+
*
|
|
110
|
+
* Returns the reason on failure rather than throwing: a specifier the repository
|
|
111
|
+
* cannot see is not yet a failure, only a fact worth disclosing if the second
|
|
112
|
+
* attempt fails too.
|
|
113
|
+
*/
|
|
114
|
+
function resolveFromRepo(specifier, repoPath) {
|
|
115
|
+
try {
|
|
116
|
+
const require = createRequire(pathToFileURL(join(repoPath, "package.json")));
|
|
117
|
+
return { url: pathToFileURL(require.resolve(specifier)).href };
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
return { reason: describe(error) };
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
async function instantiate(spec, repoPath) {
|
|
124
|
+
const module = (await importSource(spec.module, repoPath));
|
|
80
125
|
let factoryName = spec.export;
|
|
81
126
|
if (factoryName === undefined) {
|
|
82
127
|
const candidates = Object.keys(module).filter((key) => FACTORY_PATTERN.test(key) && typeof module[key] === "function");
|
|
@@ -100,6 +145,28 @@ async function instantiate(spec) {
|
|
|
100
145
|
}
|
|
101
146
|
return { source, adapter: asAdapter(source) };
|
|
102
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* Repository root first, the server's own closure second.
|
|
150
|
+
*
|
|
151
|
+
* Only a *resolution* failure falls through. A module that resolves and then
|
|
152
|
+
* throws while evaluating is that module's failure, and reporting it as "could
|
|
153
|
+
* not be found" — or quietly loading a different copy from the server's closure
|
|
154
|
+
* instead — would hide a broken adapter behind a wrong explanation.
|
|
155
|
+
*/
|
|
156
|
+
async function importSource(specifier, repoPath) {
|
|
157
|
+
const fromRepo = repoPath === undefined ? { reason: "no repository root" } : resolveFromRepo(specifier, repoPath);
|
|
158
|
+
if ("url" in fromRepo)
|
|
159
|
+
return await import(__rewriteRelativeImportExtension(fromRepo.url));
|
|
160
|
+
try {
|
|
161
|
+
return await import(__rewriteRelativeImportExtension(specifier));
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
if (repoPath === undefined)
|
|
165
|
+
throw error;
|
|
166
|
+
throw new Error(`${describe(error)} — and it did not resolve from the repository root ${repoPath} either ` +
|
|
167
|
+
`(${fromRepo.reason})`, { cause: error });
|
|
168
|
+
}
|
|
169
|
+
}
|
|
103
170
|
/**
|
|
104
171
|
* Ask each loaded adapter whether it claims this repository.
|
|
105
172
|
*
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|